<?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>195420</bug_id>
          
          <creation_ts>2019-03-07 10:50:33 -0800</creation_ts>
          <short_desc>Enable LayoutTests using ResourceLoadStatistics SQLite backend</short_desc>
          <delta_ts>2019-09-26 12:16:51 -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>WebKit Misc.</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>
          
          <blocked>195419</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Kate Cheney">katherine_cheney</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fujii</cc>
    
    <cc>jbedard</cc>
    
    <cc>katherine_cheney</cc>
    
    <cc>millay.moede</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1513590</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-03-07 10:50:33 -0800</bug_when>
    <thetext>This bug tracks the work of getting the ITP-related LayoutTests working when running with the ResourceLoadStatistics database backend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560447</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-12 10:00:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/54213551&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569373</commentid>
    <comment_count>2</comment_count>
      <attachid>378422</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-09-09 18:15:44 -0700</bug_when>
    <thetext>Created attachment 378422
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569662</commentid>
    <comment_count>3</comment_count>
      <attachid>378489</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-09-10 14:16:01 -0700</bug_when>
    <thetext>Created attachment 378489
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570069</commentid>
    <comment_count>4</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-09-11 17:24:06 -0700</bug_when>
    <thetext>I ran the failing iOS tests on both the memory store and database store and they seem to be failing in both cases (all 4 memory-store-versions are skipped in the layout test expectations). I am happy to look into why they are failing, but I wanted to add a comment because I don&apos;t think the fails necessarily have to do with the logic of the database store.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570274</commentid>
    <comment_count>6</comment_count>
      <attachid>378649</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-09-12 09:39:29 -0700</bug_when>
    <thetext>Created attachment 378649
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570277</commentid>
    <comment_count>7</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-09-12 09:42:02 -0700</bug_when>
    <thetext>(In reply to Katherine_cheney from comment #4)
&gt; I ran the failing iOS tests on both the memory store and database store and
&gt; they seem to be failing in both cases (all 4 memory-store-versions are
&gt; skipped in the layout test expectations). I am happy to look into why they
&gt; are failing, but I wanted to add a comment because I don&apos;t think the fails
&gt; necessarily have to do with the logic of the database store.

These tests rely on functions not supported by iOS. I changed the layout test expectations to reflect this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570281</commentid>
    <comment_count>8</comment_count>
      <attachid>378649</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-12 09:52:19 -0700</bug_when>
    <thetext>Comment on attachment 378649
Patch

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

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:862
&gt; +    for (auto&amp; regDomain : domains)

No abbreviations please. regDomain == :(

&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:158
&gt; +    initializeStatisticsStore(RuntimeEnabledFeatures::sharedFeatures().isITPDatabaseEnabled(), resourceLoadStatisticsDirectory.isolatedCopy(), shouldIncludeLocalhost);

No .isolatedCopy() here, see comment below.

Also, this is the first time I see RuntimeEnabledFeatures::sharedFeatures() used in the network process, this is usually for WebProcesses.

&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:172
&gt; +    postTask([this, databaseEnabled = databaseEnabled, resourceLoadStatisticsDirectory = resourceLoadStatisticsDirectory, shouldIncludeLocalhost] {

This is not thread-safe:
resourceLoadStatisticsDirectory = resourceLoadStatisticsDirectory.isolatedCopy()
Also, no need for &quot;= databaseEnabled&quot;, please omit.

&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:193
&gt; +    void initializeStatisticsStore(bool, const String&amp; resourceLoadStatisticsDirectory, ShouldIncludeLocalhost);

Can&apos;t we re-construct the whole WebResourceLoadStatisticsStore instead of making such a method public?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570292</commentid>
    <comment_count>9</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-09-12 10:22:35 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #8)
&gt; Comment on attachment 378649 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=378649&amp;action=review
&gt; 
&gt; Also, this is the first time I see RuntimeEnabledFeatures::sharedFeatures()
&gt; used in the network process, this is usually for WebProcesses.

Is there another way to check if the ITPDatabase flag is set? 
 
&gt; &gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:193
&gt; &gt; +    void initializeStatisticsStore(bool, const String&amp; resourceLoadStatisticsDirectory, ShouldIncludeLocalhost);
&gt; 
&gt; Can&apos;t we re-construct the whole WebResourceLoadStatisticsStore instead of
&gt; making such a method public?

Maybe. How would the NetworkProcess be able to change the NetworkSession&apos;s m_resourceLoadStatistics value to make it refer to the new store? I think the variable is protected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570297</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-12 10:28:36 -0700</bug_when>
    <thetext>(In reply to Katherine_cheney from comment #9)
&gt; (In reply to Chris Dumez from comment #8)
&gt; &gt; Comment on attachment 378649 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=378649&amp;action=review
&gt; &gt; 
&gt; &gt; Also, this is the first time I see RuntimeEnabledFeatures::sharedFeatures()
&gt; &gt; used in the network process, this is usually for WebProcesses.
&gt; 
&gt; Is there another way to check if the ITPDatabase flag is set? 

I doubt this flag is even set in the NetworkProcess in the first place, although I have not checked. Somebody probably needs to tell the network process at some point, and we need to store the information.

&gt;  
&gt; &gt; &gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:193
&gt; &gt; &gt; +    void initializeStatisticsStore(bool, const String&amp; resourceLoadStatisticsDirectory, ShouldIncludeLocalhost);
&gt; &gt; 
&gt; &gt; Can&apos;t we re-construct the whole WebResourceLoadStatisticsStore instead of
&gt; &gt; making such a method public?
&gt; 
&gt; Maybe. How would the NetworkProcess be able to change the NetworkSession&apos;s
&gt; m_resourceLoadStatistics value to make it refer to the new store? I think
&gt; the variable is protected.

A NetworkSession method, like it is already done for NetworkSession::setResourceLoadStatisticsEnabled().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570298</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-12 10:31:03 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #10)
&gt; (In reply to Katherine_cheney from comment #9)
&gt; &gt; (In reply to Chris Dumez from comment #8)
&gt; &gt; &gt; Comment on attachment 378649 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=378649&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; Also, this is the first time I see RuntimeEnabledFeatures::sharedFeatures()
&gt; &gt; &gt; used in the network process, this is usually for WebProcesses.
&gt; &gt; 
&gt; &gt; Is there another way to check if the ITPDatabase flag is set? 
&gt; 
&gt; I doubt this flag is even set in the NetworkProcess in the first place,
&gt; although I have not checked. Somebody probably needs to tell the network
&gt; process at some point, and we need to store the information.

I see now that the flag is set here:
    WebCore::RuntimeEnabledFeatures::sharedFeatures().setIsITPDatabaseEnabled(parameters.shouldEnableITPDatabase);

That said, only ITP does this at the moment and I am not sure this is good practice to use RuntimeEnabledFeatures in the NetworkProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571244</commentid>
    <comment_count>12</comment_count>
      <attachid>378891</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-09-16 13:29:56 -0700</bug_when>
    <thetext>Created attachment 378891
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571247</commentid>
    <comment_count>13</comment_count>
      <attachid>378891</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-16 13:39:54 -0700</bug_when>
    <thetext>Comment on attachment 378891
Patch

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

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:458
&gt; +    auto registrableDomainID = domainID(loadStatistics.registrableDomain).value();

Why this change? The code looked a bit safer before? However, it is unconditionally de-refing an optional.

&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:162
&gt; +            FileSystem::makeAllDirectories(resourceLoadStatisticsDirectory);

It feels like this should be in the ResourceLoadStatisticsDatabaseStore, right before opening.

&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:192
&gt; +    void flushAndDestroyPersistentStore();

Why is this public now?

&gt; Source/WebKit/NetworkProcess/NetworkSession.cpp:166
&gt; +    m_resourceLoadStatistics-&gt;flushAndDestroyPersistentStore();

This seems wrong, you should be calling destroyResourceLoadStatistics() instead.

&gt; Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp:270
&gt; +void WKWebsiteDataStoreSetUseITPDatabase(WKWebsiteDataStoreRef dataStoreRef, bool value)

Something is odd here, why use a completion handler internally but not expose it on your SPI. Either you need a completion handler (and you should expose it here), or you don&apos;t and the implementation should stop passing a completion handler around.

&gt; Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:59
&gt; +

Unnecessary change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571251</commentid>
    <comment_count>14</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-09-16 13:47:39 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #13)
&gt; Comment on attachment 378891 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=378891&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:458
&gt; &gt; +    auto registrableDomainID = domainID(loadStatistics.registrableDomain).value();
&gt; 
&gt; Why this change? The code looked a bit safer before? However, it is
&gt; unconditionally de-refing an optional.

the domainID() function could get called on a domain that hasn&apos;t been inserted into the database yet and returns an unsigned. I could alternatively ensure() the domain before every call to domainID() but I thought that would be adding a value to the database that was never supposed to be inserted. 

&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:162
&gt; &gt; +            FileSystem::makeAllDirectories(resourceLoadStatisticsDirectory);
&gt; 
&gt; It feels like this should be in the ResourceLoadStatisticsDatabaseStore,
&gt; right before opening.
&gt; 

forgot to take this out from debugging.

&gt; &gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:192
&gt; &gt; +    void flushAndDestroyPersistentStore();
&gt; 
&gt; Why is this public now?
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/NetworkSession.cpp:166
&gt; &gt; +    m_resourceLoadStatistics-&gt;flushAndDestroyPersistentStore();
&gt; 
&gt; This seems wrong, you should be calling destroyResourceLoadStatistics()
&gt; instead.
&gt; 

changing now.

&gt; &gt; Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp:270
&gt; &gt; +void WKWebsiteDataStoreSetUseITPDatabase(WKWebsiteDataStoreRef dataStoreRef, bool value)
&gt; 
&gt; Something is odd here, why use a completion handler internally but not
&gt; expose it on your SPI. Either you need a completion handler (and you should
&gt; expose it here), or you don&apos;t and the implementation should stop passing a
&gt; completion handler around.
&gt; 

I don&apos;t think one is necessary. I&apos;ll take it out. 


Is it failing the gtk/wpe builds because of the # if ENABLED(RESOURCE_LOAD_STATISTICS) check surrounding the variable in the header?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571255</commentid>
    <comment_count>15</comment_count>
      <attachid>378891</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-16 13:50:19 -0700</bug_when>
    <thetext>Comment on attachment 378891
Patch

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

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:317
&gt; +    m_ITPDatabaseEnabled = parameters.shouldEnableITPDatabase;

You likely want to protect this with:
#if ENABLE(RESOURCE_LOAD_STATISTICS)
#endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571263</commentid>
    <comment_count>16</comment_count>
      <attachid>378893</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-09-16 14:19:35 -0700</bug_when>
    <thetext>Created attachment 378893
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571269</commentid>
    <comment_count>17</comment_count>
      <attachid>378893</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-16 14:26:14 -0700</bug_when>
    <thetext>Comment on attachment 378893
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Enable LayoutTests using ResourceLoadStatistics SQLite backend (195420)

As explained offline, I am a bit perplexed about how this is working given that resourceLoadStatisticsUpdated() is being ignored by the SQLite backend. Our is the SQLite backend supposed to get new statistics from the WebContent process?

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:371
&gt; +    if (firstDomainID == WTF::nullopt)

if (!firstDomainID)

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:460
&gt; +    if (registrableDomainID == WTF::nullopt)

if (!registrableDomainID)

&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:194
&gt; +    void flushAndDestroyPersistentStore();

Could you please put it back where it was? :)

&gt; Source/WebKit/NetworkProcess/NetworkProcess.h:556
&gt; +    bool m_ITPDatabaseEnabled;

Needs a default initializer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571303</commentid>
    <comment_count>18</comment_count>
      <attachid>378906</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-09-16 15:53:14 -0700</bug_when>
    <thetext>Created attachment 378906
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571549</commentid>
    <comment_count>19</comment_count>
      <attachid>378906</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-17 08:54:02 -0700</bug_when>
    <thetext>Comment on attachment 378906
Patch

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

The code change looks sane but an ITP expert should take a look too. I do have a few more improvement ideas:

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:376
&gt; +    if (statement.bindInt(1, firstDomainID.value()) != SQLITE_OK

FYI, this can be written as *firstDomainID, which is shorter but your call. Some people prefer value().

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:457
&gt; +    

nit: Unnecessary change.

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:489
&gt; +    m_observedDomainCount.prepare();

I personally find it confusing that this is not part of prepareStatement(). Could we move it back to prepareStatements() and move the call to prepareStatements() before the call to isEmpty()?

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:509
&gt;      m_database.runVacuumCommand();

I think we should move this to the constructor, right after opening the database. Alternatively, we could turn-on auto-vacuum (via turnOnIncrementalAutoVacuum(), also in the constructor) since WebKit may be running for a long time.
We should check with Brent what the actual reason for this vacuuming and if auto-vacuum would suffice.

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:511
&gt; +    if (!prepareStatements()) {

I would also avoid having to call prepareStatements() in 2 places.

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:563
&gt; +    SQLiteStatement findSubresources(m_database, makeString(&quot;SELECT SubresourceUniqueRedirectsFrom.fromDomainID from SubresourceUniqueRedirectsFrom INNER JOIN ObservedDomains ON ObservedDomains.domainID = SubresourceUniqueRedirectsFrom.fromDomainID WHERE subresourceDomainID = &quot;, String::number(primaryDomainID), &quot; AND ObservedDomains.isPrevalent = 0&quot;));

I don&apos;t think we should be using makeString() in SQLiteStatement. Rather, we should use ? in the string and then the appropriate bind function.

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:573
&gt; +    SQLiteStatement findTopFrames(m_database, makeString(&quot;SELECT TopFrameUniqueRedirectsFrom.fromDomainID from TopFrameUniqueRedirectsFrom INNER JOIN ObservedDomains ON ObservedDomains.domainID = TopFrameUniqueRedirectsFrom.fromDomainID WHERE targetDomainID = &quot;, String::number(primaryDomainID), &quot; AND ObservedDomains.isPrevalent = 0&quot;));

ditto.

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:674
&gt; +    SQLiteStatement subframeUnderTopFrameDomainsCountStatement(m_database, makeString(&quot;SELECT subframeDomainID, COUNT(topFrameDomainID) FROM SubframeUnderTopFrameDomains WHERE subframeDomainID IN (&quot;, domainIDsOfInterest, &quot;) GROUP BY subframeDomainID&quot;));

ditto.

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:1306
&gt; +    if (!m_database.tableExists(&quot;ObservedDomains&quot;_s)) {

Do we really need this check given the call to clearAllTables() above?

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:706
&gt; +        networkSession-&gt;createNewResourceLoadStatisticStore();

We should probably only call this if m_ITPDatabaseEnabled has actually changed.

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:1257
&gt; +bool NetworkProcess::isITPDatabaseEnabled()

Should be const.

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:1259
&gt; +    return m_ITPDatabaseEnabled;

Should probably be inlined in the header.

&gt; Source/WebKit/NetworkProcess/NetworkProcess.h:556
&gt; +    bool m_ITPDatabaseEnabled = false;

We like this format better:
bool m_isITPDatabaseEnabled { false };

Both the curly brackets for initialization, and the &quot;is&quot; prefix. As per WebKit coding style, Boolean variables need a is/has/... prefix.

&gt; Source/WebKit/NetworkProcess/NetworkSession.cpp:164
&gt; +void NetworkSession::createNewResourceLoadStatisticStore()

Given what this does, I would name it recreateResourceLoadStatisticStore()

&gt; LayoutTests/ChangeLog:22
&gt; +        * http/tests/resourceLoadStatistics/add-blocking-to-redirect-database-expected.txt: Added.

I did not review the tests. I think Brent and/or John should also take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571689</commentid>
    <comment_count>20</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-09-17 14:32:10 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #19)
&gt; Comment on attachment 378906 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=378906&amp;action=review

Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:489
&gt; &gt; +    m_observedDomainCount.prepare();
&gt; 
&gt; I personally find it confusing that this is not part of prepareStatement().
&gt; Could we move it back to prepareStatements() and move the call to
&gt; prepareStatements() before the call to isEmpty()?
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:509
&gt; &gt;      m_database.runVacuumCommand();
&gt; 
&gt; I think we should move this to the constructor, right after opening the
&gt; database. Alternatively, we could turn-on auto-vacuum (via
&gt; turnOnIncrementalAutoVacuum(), also in the constructor) since WebKit may be
&gt; running for a long time.
&gt; We should check with Brent what the actual reason for this vacuuming and if
&gt; auto-vacuum would suffice.
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:511
&gt; &gt; +    if (!prepareStatements()) {
&gt; 
&gt; I would also avoid having to call prepareStatements() in 2 places.
&gt; 

I agree its maybe not the best situation. The reasoning for the weird prepareStatements() placement is that statements prepared before a vacuum have to be re-prepared after the vacuum before they can be used. So I could prepare all the statements before the isEmpty() call, but might end up having to prepare them again after the vacuum if isEmpty() is false. And I think that I would also have to call finalize() on all the statements before preparing again because calling prepare() on an already-prepared statement crashes. Not sure if that&apos;s any better, what do you think?


&gt; &gt; LayoutTests/ChangeLog:22
&gt; &gt; +        * http/tests/resourceLoadStatistics/add-blocking-to-redirect-database-expected.txt: Added.
&gt; 
&gt; I did not review the tests. I think Brent and/or John should also take a
&gt; look.

+1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571690</commentid>
    <comment_count>21</comment_count>
      <attachid>378906</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-17 14:34:46 -0700</bug_when>
    <thetext>Comment on attachment 378906
Patch

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

&gt;&gt;&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:509
&gt;&gt;&gt;      m_database.runVacuumCommand();
&gt;&gt; 
&gt;&gt; I think we should move this to the constructor, right after opening the database. Alternatively, we could turn-on auto-vacuum (via turnOnIncrementalAutoVacuum(), also in the constructor) since WebKit may be running for a long time.
&gt;&gt; We should check with Brent what the actual reason for this vacuuming and if auto-vacuum would suffice.
&gt; 
&gt; I agree its maybe not the best situation. The reasoning for the weird prepareStatements() placement is that statements prepared before a vacuum have to be re-prepared after the vacuum before they can be used. So I could prepare all the statements before the isEmpty() call, but might end up having to prepare them again after the vacuum if isEmpty() is false. And I think that I would also have to call finalize() on all the statements before preparing again because calling prepare() on an already-prepared statement crashes. Not sure if that&apos;s any better, what do you think?

My proposal is to move vacuuming to the constructor, right after opening, as I mentioned. Once this is done, there is no longer any issue with doing prepareStatements() only in one place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571728</commentid>
    <comment_count>22</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-09-17 16:13:58 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #21)
&gt; Comment on attachment 378906 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=378906&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:509
&gt; &gt;&gt;&gt;      m_database.runVacuumCommand();
&gt; &gt;&gt; 
&gt; &gt;&gt; I think we should move this to the constructor, right after opening the database. Alternatively, we could turn-on auto-vacuum (via turnOnIncrementalAutoVacuum(), also in the constructor) since WebKit may be running for a long time.
&gt; &gt;&gt; We should check with Brent what the actual reason for this vacuuming and if auto-vacuum would suffice.
&gt; &gt; 
&gt; &gt; I agree its maybe not the best situation. The reasoning for the weird prepareStatements() placement is that statements prepared before a vacuum have to be re-prepared after the vacuum before they can be used. So I could prepare all the statements before the isEmpty() call, but might end up having to prepare them again after the vacuum if isEmpty() is false. And I think that I would also have to call finalize() on all the statements before preparing again because calling prepare() on an already-prepared statement crashes. Not sure if that&apos;s any better, what do you think?
&gt; 
&gt; My proposal is to move vacuuming to the constructor, right after opening, as
&gt; I mentioned. Once this is done, there is no longer any issue with doing
&gt; prepareStatements() only in one place.


Which works unless the vacuum command is needed more than once, in which case it might take some more restructuring to call prepareStatements() each time. We can wait to see what Brent and/or John says about vacuuming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571730</commentid>
    <comment_count>23</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-17 16:21:17 -0700</bug_when>
    <thetext>(In reply to Katherine_cheney from comment #22)
&gt; (In reply to Chris Dumez from comment #21)
&gt; &gt; Comment on attachment 378906 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=378906&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt;&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:509
&gt; &gt; &gt;&gt;&gt;      m_database.runVacuumCommand();
&gt; &gt; &gt;&gt; 
&gt; &gt; &gt;&gt; I think we should move this to the constructor, right after opening the database. Alternatively, we could turn-on auto-vacuum (via turnOnIncrementalAutoVacuum(), also in the constructor) since WebKit may be running for a long time.
&gt; &gt; &gt;&gt; We should check with Brent what the actual reason for this vacuuming and if auto-vacuum would suffice.
&gt; &gt; &gt; 
&gt; &gt; &gt; I agree its maybe not the best situation. The reasoning for the weird prepareStatements() placement is that statements prepared before a vacuum have to be re-prepared after the vacuum before they can be used. So I could prepare all the statements before the isEmpty() call, but might end up having to prepare them again after the vacuum if isEmpty() is false. And I think that I would also have to call finalize() on all the statements before preparing again because calling prepare() on an already-prepared statement crashes. Not sure if that&apos;s any better, what do you think?
&gt; &gt; 
&gt; &gt; My proposal is to move vacuuming to the constructor, right after opening, as
&gt; &gt; I mentioned. Once this is done, there is no longer any issue with doing
&gt; &gt; prepareStatements() only in one place.
&gt; 
&gt; 
&gt; Which works unless the vacuum command is needed more than once, in which
&gt; case it might take some more restructuring to call prepareStatements() each
&gt; time. We can wait to see what Brent and/or John says about vacuuming.

I don&apos;t understand your comment. Vacuuming already only happens once, since it is called in populateFromMemoryStore() which is only called once from the constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571731</commentid>
    <comment_count>24</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-09-17 16:23:29 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #23)
&gt; (In reply to Katherine_cheney from comment #22)
&gt; &gt; (In reply to Chris Dumez from comment #21)
&gt; &gt; &gt; Comment on attachment 378906 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=378906&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt;&gt;&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:509
&gt; &gt; &gt; &gt;&gt;&gt;      m_database.runVacuumCommand();
&gt; &gt; &gt; &gt;&gt; 
&gt; &gt; &gt; &gt;&gt; I think we should move this to the constructor, right after opening the database. Alternatively, we could turn-on auto-vacuum (via turnOnIncrementalAutoVacuum(), also in the constructor) since WebKit may be running for a long time.
&gt; &gt; &gt; &gt;&gt; We should check with Brent what the actual reason for this vacuuming and if auto-vacuum would suffice.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I agree its maybe not the best situation. The reasoning for the weird prepareStatements() placement is that statements prepared before a vacuum have to be re-prepared after the vacuum before they can be used. So I could prepare all the statements before the isEmpty() call, but might end up having to prepare them again after the vacuum if isEmpty() is false. And I think that I would also have to call finalize() on all the statements before preparing again because calling prepare() on an already-prepared statement crashes. Not sure if that&apos;s any better, what do you think?
&gt; &gt; &gt; 
&gt; &gt; &gt; My proposal is to move vacuuming to the constructor, right after opening, as
&gt; &gt; &gt; I mentioned. Once this is done, there is no longer any issue with doing
&gt; &gt; &gt; prepareStatements() only in one place.
&gt; &gt; 
&gt; &gt; 
&gt; &gt; Which works unless the vacuum command is needed more than once, in which
&gt; &gt; case it might take some more restructuring to call prepareStatements() each
&gt; &gt; time. We can wait to see what Brent and/or John says about vacuuming.
&gt; 
&gt; I don&apos;t understand your comment. Vacuuming already only happens once, since
&gt; it is called in populateFromMemoryStore() which is only called once from the
&gt; constructor.

Thats what I originally thought, but I checked and noticed it is also is called in syncStorageIfNeeded() and syncStorageImmediately()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571733</commentid>
    <comment_count>25</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-17 16:28:44 -0700</bug_when>
    <thetext>(In reply to Katherine_cheney from comment #24)
&gt; (In reply to Chris Dumez from comment #23)
&gt; &gt; (In reply to Katherine_cheney from comment #22)
&gt; &gt; &gt; (In reply to Chris Dumez from comment #21)
&gt; &gt; &gt; &gt; Comment on attachment 378906 [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; View in context:
&gt; &gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=378906&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt;&gt;&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:509
&gt; &gt; &gt; &gt; &gt;&gt;&gt;      m_database.runVacuumCommand();
&gt; &gt; &gt; &gt; &gt;&gt; 
&gt; &gt; &gt; &gt; &gt;&gt; I think we should move this to the constructor, right after opening the database. Alternatively, we could turn-on auto-vacuum (via turnOnIncrementalAutoVacuum(), also in the constructor) since WebKit may be running for a long time.
&gt; &gt; &gt; &gt; &gt;&gt; We should check with Brent what the actual reason for this vacuuming and if auto-vacuum would suffice.
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; I agree its maybe not the best situation. The reasoning for the weird prepareStatements() placement is that statements prepared before a vacuum have to be re-prepared after the vacuum before they can be used. So I could prepare all the statements before the isEmpty() call, but might end up having to prepare them again after the vacuum if isEmpty() is false. And I think that I would also have to call finalize() on all the statements before preparing again because calling prepare() on an already-prepared statement crashes. Not sure if that&apos;s any better, what do you think?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; My proposal is to move vacuuming to the constructor, right after opening, as
&gt; &gt; &gt; &gt; I mentioned. Once this is done, there is no longer any issue with doing
&gt; &gt; &gt; &gt; prepareStatements() only in one place.
&gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; Which works unless the vacuum command is needed more than once, in which
&gt; &gt; &gt; case it might take some more restructuring to call prepareStatements() each
&gt; &gt; &gt; time. We can wait to see what Brent and/or John says about vacuuming.
&gt; &gt; 
&gt; &gt; I don&apos;t understand your comment. Vacuuming already only happens once, since
&gt; &gt; it is called in populateFromMemoryStore() which is only called once from the
&gt; &gt; constructor.
&gt; 
&gt; Thats what I originally thought, but I checked and noticed it is also is
&gt; called in syncStorageIfNeeded() and syncStorageImmediately()

Ah, there are more calls to runVacuumCommand() (not more calls to populateFromMemoryStore()). I personally think we should drop these calls and enable auto-vacuum, unless Brent had a specific reason for manual vacuuming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571734</commentid>
    <comment_count>26</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-17 16:33:19 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #25)

&gt; &gt; Thats what I originally thought, but I checked and noticed it is also is
&gt; &gt; called in syncStorageIfNeeded() and syncStorageImmediately()
&gt; 
&gt; Ah, there are more calls to runVacuumCommand() (not more calls to
&gt; populateFromMemoryStore()). I personally think we should drop these calls
&gt; and enable auto-vacuum, unless Brent had a specific reason for manual
&gt; vacuuming.

I am fine with auto-vacuuming. I don&apos;t recall having any specific reason for doing it manually. I think I was just mechanically converting all file-based operations into equivalent SQLite things, and this fell out of that process.

I support following Chris&apos;s suggestion here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572178</commentid>
    <comment_count>27</comment_count>
      <attachid>379091</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-09-18 17:54:26 -0700</bug_when>
    <thetext>Created attachment 379091
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572179</commentid>
    <comment_count>28</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-09-18 17:58:18 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #19)
&gt; Comment on attachment 378906 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=378906&amp;action=review
&gt; 
Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:573
&gt; &gt; +    SQLiteStatement findTopFrames(m_database, makeString(&quot;SELECT TopFrameUniqueRedirectsFrom.fromDomainID from TopFrameUniqueRedirectsFrom INNER JOIN ObservedDomains ON ObservedDomains.domainID = TopFrameUniqueRedirectsFrom.fromDomainID WHERE targetDomainID = &quot;, String::number(primaryDomainID), &quot; AND ObservedDomains.isPrevalent = 0&quot;));
&gt; 
&gt; ditto.
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:674
&gt; &gt; +    SQLiteStatement subframeUnderTopFrameDomainsCountStatement(m_database, makeString(&quot;SELECT subframeDomainID, COUNT(topFrameDomainID) FROM SubframeUnderTopFrameDomains WHERE subframeDomainID IN (&quot;, domainIDsOfInterest, &quot;) GROUP BY subframeDomainID&quot;));
&gt; 
&gt; ditto.
&gt; 
&gt; &gt; 

I don&apos;t think you can bind lists, even if they are in string format. But I updated the domainID check!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572361</commentid>
    <comment_count>29</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-19 08:22:39 -0700</bug_when>
    <thetext>This crash on EWS is concerning:
Thread 23 Crashed:: Dispatch queue: WebResourceLoadStatisticsStore Process Data Queue
0   com.apple.WebKit              	0x00000001068f5ef4 WebKit::ResourceLoadStatisticsDatabaseStore::setPrevalentResource(WebCore::RegistrableDomain const&amp;, WebKit::ResourceLoadPrevalence) + 528
1   com.apple.WebKit              	0x0000000106917dcc WTF::Detail::CallableWrapper&lt;WebKit::WebResourceLoadStatisticsStore::setPrevalentResource(WebCore::RegistrableDomain const&amp;, WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;)::$_43, void&gt;::call() + 40
2   libdispatch.dylib             	0x0000000109efdccf _dispatch_call_block_and_release + 12
3   libdispatch.dylib             	0x0000000109efed02 _dispatch_client_callout + 8
4   libdispatch.dylib             	0x0000000109f05720 _dispatch_lane_serial_drain + 705
5   libdispatch.dylib             	0x0000000109f06261 _dispatch_lane_invoke + 398
6   libdispatch.dylib             	0x0000000109f0efcb _dispatch_workloop_worker_thread + 645
7   libsystem_pthread.dylib       	0x000000010a2e0611 _pthread_wqthread + 421
8   libsystem_pthread.dylib       	0x000000010a2e03fd start_wqthread + 13</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572362</commentid>
    <comment_count>30</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-19 08:23:04 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #29)
&gt; This crash on EWS is concerning:
&gt; Thread 23 Crashed:: Dispatch queue: WebResourceLoadStatisticsStore Process
&gt; Data Queue
&gt; 0   com.apple.WebKit              	0x00000001068f5ef4
&gt; WebKit::ResourceLoadStatisticsDatabaseStore::setPrevalentResource(WebCore::
&gt; RegistrableDomain const&amp;, WebKit::ResourceLoadPrevalence) + 528
&gt; 1   com.apple.WebKit              	0x0000000106917dcc
&gt; WTF::Detail::CallableWrapper&lt;WebKit::WebResourceLoadStatisticsStore::
&gt; setPrevalentResource(WebCore::RegistrableDomain const&amp;,
&gt; WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;)::$_43, void&gt;::call() + 40
&gt; 2   libdispatch.dylib             	0x0000000109efdccf
&gt; _dispatch_call_block_and_release + 12
&gt; 3   libdispatch.dylib             	0x0000000109efed02
&gt; _dispatch_client_callout + 8
&gt; 4   libdispatch.dylib             	0x0000000109f05720
&gt; _dispatch_lane_serial_drain + 705
&gt; 5   libdispatch.dylib             	0x0000000109f06261 _dispatch_lane_invoke
&gt; + 398
&gt; 6   libdispatch.dylib             	0x0000000109f0efcb
&gt; _dispatch_workloop_worker_thread + 645
&gt; 7   libsystem_pthread.dylib       	0x000000010a2e0611 _pthread_wqthread + 421
&gt; 8   libsystem_pthread.dylib       	0x000000010a2e03fd start_wqthread + 13

That was from the iOS WK2 EWS:
https://ews-build.webkit.org/results/iOS-12-Simulator-WK2-Tests-EWS/r379091-3948/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572363</commentid>
    <comment_count>31</comment_count>
      <attachid>379091</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-19 08:23:23 -0700</bug_when>
    <thetext>Comment on attachment 379091
Patch

r- given the crash on EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572368</commentid>
    <comment_count>32</comment_count>
      <attachid>379091</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-19 08:41:43 -0700</bug_when>
    <thetext>Comment on attachment 379091
Patch

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

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:556
&gt; +    SQLiteStatement findSubresources(m_database, makeString(&quot;SELECT SubresourceUniqueRedirectsFrom.fromDomainID from SubresourceUniqueRedirectsFrom INNER JOIN ObservedDomains ON ObservedDomains.domainID = SubresourceUniqueRedirectsFrom.fromDomainID WHERE subresourceDomainID = ? AND ObservedDomains.isPrevalent = 0&quot;));

Same as below, why is this calling makeString() ?

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:560
&gt; +        ASSERT_NOT_REACHED();

Shouldn&apos;t this return early?

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:564
&gt; +        auto newDomainID = findSubresources.getColumnInt(0);

Usually, I am all for using auto, but int is actually shorter than auto here.

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:570
&gt; +    SQLiteStatement findTopFrames(m_database, makeString(&quot;SELECT TopFrameUniqueRedirectsFrom.fromDomainID from TopFrameUniqueRedirectsFrom INNER JOIN ObservedDomains ON ObservedDomains.domainID = TopFrameUniqueRedirectsFrom.fromDomainID WHERE targetDomainID = ? AND ObservedDomains.isPrevalent = 0&quot;));

Why is this calling makeString()? Looks like you&apos;re passing it a single literal?
Why not simply &quot;SELECT TopFrameUniqueRedirectsFrom.fromDomainID from TopFrameUniqueRedirectsFrom INNER JOIN ObservedDomains ON ObservedDomains.domainID = TopFrameUniqueRedirectsFrom.fromDomainID WHERE targetDomainID = ? AND ObservedDomains.isPrevalent = 0&quot;_s ?

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:575
&gt; +        ASSERT_NOT_REACHED();

Shouldn&apos;t this return early?

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:579
&gt; +        auto newDomainID = findTopFrames.getColumnInt(0);

int ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572917</commentid>
    <comment_count>33</comment_count>
      <attachid>379274</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-09-20 15:05:53 -0700</bug_when>
    <thetext>Created attachment 379274
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573710</commentid>
    <comment_count>34</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-24 11:18:47 -0700</bug_when>
    <thetext>The WinCairo and Mac-wk2 failures do not seem related to this patch. I am hitting the same test failures (on Mac-wk2) without this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573712</commentid>
    <comment_count>35</comment_count>
      <attachid>379274</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-24 11:30:43 -0700</bug_when>
    <thetext>Comment on attachment 379274
Patch

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

I think this looks great! I did realize while reviewing that we log a number of errors that could leak private data in the form of visited domains. Please switch to using RELEASE_LOG_IF_ALLOWED for messages that involve the domain strings. r- to fix the log statements, but everything else looks great!

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:389
&gt;          RELEASE_LOG_ERROR(Network, &quot;%p - ResourceLoadStatisticsDatabaseStore::m_insertDomainRelationshipStatement failed to bind, error message: %{public}s&quot;, this, m_database.lastErrorMsg());

This might leak private data (the secondDomain.string() could be interesting to someone). I recommend switching to RELEASE_LOG_IF_ALLOWED (see later review comment for details).

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:394
&gt; +    bool relationshipExists = !!statement.getColumnInt(0);

Oh boy. I think I did that. :-|

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:451
&gt;          RELEASE_LOG_ERROR(Network, &quot;%p - ResourceLoadStatisticsDatabaseStore::domainIDFromString failed, error message: %{public}s&quot;, this, m_database.lastErrorMsg());

RELEASE_LOG_IF_ALLOWED

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:579
&gt; +        RELEASE_LOG_ERROR(Network, &quot;%p - ResourceLoadStatisticsDatabaseStore::recursivelyFindNonPrevalentDomainsThatRedirectedToThisDomain failed, error message: %{public}s&quot;, this, m_database.lastErrorMsg());

This could be a privacy issue, since the JOIN result will contain the strings of the visited domains.

Please switch to &apos;RELEASE_LOG_IF_ALLOWED&quot;

(see WebCore/Modules/applepay/PaymentCoordinator.cpp for an example)

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:981
&gt; +    if (m_mostRecentUserInteractionStatement.bindInt(1, hadUserInteraction) != SQLITE_OK

Good catch!

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:1024
&gt; +        RELEASE_LOG_ERROR(Network, &quot;%p - ResourceLoadStatisticsDatabaseStore::m_hadUserInteractionStatement failed, error message: %{public}s&quot;, this, m_database.lastErrorMsg());

RELEASE_LOG_IF_ALLOWED (because of domain.string())

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:1121
&gt;          RELEASE_LOG_ERROR(Network, &quot;%p - ResourceLoadStatisticsDatabaseStore::predicateValueForDomain failed to bind, error message: %{public}s&quot;, this, m_database.lastErrorMsg());

Ditto RELEASE_LOG_IF_ALLOWED, since the log message might show the domain that was bound to the predicate.

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:1291
&gt; +        RELEASE_LOG_ERROR(Network, &quot;%p - ResourceLoadStatisticsDatabaseStore::ensureResourceStatisticsForRegistrableDomain failed, error message: %{public}s&quot;, this, m_database.lastErrorMsg());

RELEASE_LOG_IF_ALLOWED

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:1346
&gt; +        || statement.bindText(1, domain.string()) != SQLITE_OK

Check error messages related to this statement (domain.string()) and use RELEASE_LOG_IF_ALLOWED if logging.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573811</commentid>
    <comment_count>36</comment_count>
      <attachid>379487</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-09-24 13:43:02 -0700</bug_when>
    <thetext>Created attachment 379487
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573845</commentid>
    <comment_count>37</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-24 14:36:18 -0700</bug_when>
    <thetext>It looks like your patch is out-of-sync with trunk:

In file included from /Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/Release-iphoneos/DerivedSources/WebKit2/unified-sources/UnifiedSource45.cpp:5:
/Volumes/Data/worker/iOS-13-Build-EWS/build/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp:274:35: error: no member named &apos;websiteDataStore&apos; in &apos;WebKit::WebsiteDataStore&apos;
    WebKit::toImpl(dataStoreRef)-&gt;websiteDataStore().setUseITPDatabase(value);
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ^
1 error generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573866</commentid>
    <comment_count>38</comment_count>
      <attachid>379505</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-09-24 15:38:04 -0700</bug_when>
    <thetext>Created attachment 379505
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573883</commentid>
    <comment_count>39</comment_count>
      <attachid>379505</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-24 16:24:12 -0700</bug_when>
    <thetext>Comment on attachment 379505
Patch

Awesome. Thank you! r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573901</commentid>
    <comment_count>40</comment_count>
      <attachid>379505</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-24 16:55:01 -0700</bug_when>
    <thetext>Comment on attachment 379505
Patch

Clearing flags on attachment: 379505

Committed r250324: &lt;https://trac.webkit.org/changeset/250324&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573902</commentid>
    <comment_count>41</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-24 16:55:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573952</commentid>
    <comment_count>42</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-09-24 23:00:44 -0700</bug_when>
    <thetext>All Mac WK2 test buildbots are failing since this change.

Apple High Sierra Debug WK2 (Tests)
https://build.webkit.org/builders/Apple%20High%20Sierra%20Debug%20WK2%20%28Tests%29/builds/9636

Apple High Sierra Release WK2 (Tests)
https://build.webkit.org/builders/Apple%20High%20Sierra%20Release%20WK2%20%28Tests%29/builds/13308

Apple Mojave Debug WK2 (Tests)
https://build.webkit.org/builders/Apple%20Mojave%20Debug%20WK2%20%28Tests%29/builds/4885

Apple Mojave Release WK2 (Tests)
https://build.webkit.org/builders/Apple%20Mojave%20Release%20WK2%20%28Tests%29/builds/6901</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573959</commentid>
    <comment_count>43</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-24 23:44:16 -0700</bug_when>
    <thetext>The test failures seem to be due to WKTR not outputting text output. It seems to be writing out the render tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574025</commentid>
    <comment_count>44</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-09-25 05:54:18 -0700</bug_when>
    <thetext>This breaks the mac WK2 EWS as well (https://ews-build.webkit.org/#/builders/15). With so many test failures on trunk, EWS can&apos;t determine if a patch introduce any new test failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574055</commentid>
    <comment_count>45</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-09-25 07:57:01 -0700</bug_when>
    <thetext>Rolled out in r250344: &lt;https://trac.webkit.org/changeset/250344&gt; since this broke a ton of testing....looks like EWS had flagged the change too https://ews-build.webkit.org/#/builders/15/builds/3975</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574135</commentid>
    <comment_count>46</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-09-25 11:36:47 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574136</commentid>
    <comment_count>47</comment_count>
      <attachid>379565</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-09-25 11:36:49 -0700</bug_when>
    <thetext>Created attachment 379565
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574137</commentid>
    <comment_count>48</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-09-25 11:37:11 -0700</bug_when>
    <thetext>Sorry about this... I should have been more aware of why the mac-wk2 tests were failing. 

I think this patch should fix it, but I’m going to leave the review flag off until we see what the bots say.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574224</commentid>
    <comment_count>49</comment_count>
      <attachid>379582</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-09-25 15:07:10 -0700</bug_when>
    <thetext>Created attachment 379582
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574247</commentid>
    <comment_count>50</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-25 15:30:47 -0700</bug_when>
    <thetext>(In reply to Katherine_cheney from comment #48)
&gt; Sorry about this... I should have been more aware of why the mac-wk2 tests
&gt; were failing. 
&gt; 
&gt; I think this patch should fix it, but I’m going to leave the review flag off
&gt; until we see what the bots say.

We need to see why having the sandbox consumption step here caused this issue. I&apos;m worried that we may not cleanly destroy these extensions on the UIProcess side when the client side (WebContent or Network processes) shut down.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574469</commentid>
    <comment_count>51</comment_count>
      <attachid>379582</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-26 08:57:48 -0700</bug_when>
    <thetext>Comment on attachment 379582
Patch for landing

r=me. Relanding after correcting test issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574470</commentid>
    <comment_count>52</comment_count>
      <attachid>379582</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-26 09:00:44 -0700</bug_when>
    <thetext>Comment on attachment 379582
Patch for landing

Rejecting attachment 379582 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 379582, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 5000 characters of output:
s/http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/prevalent-resource-without-user-interaction-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/prevalent-resource-without-user-interaction-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/prune-statistics-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/prune-statistics-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-ip-to-localhost-to-ip-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-ip-to-localhost-to-ip-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/set-custom-prevalent-resource-in-debug-mode-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/set-custom-prevalent-resource-in-debug-mode-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-redirects-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-redirects-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-requests-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-requests-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/telemetry-generation.html
patching file LayoutTests/http/tests/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/user-interaction-only-reported-once-within-short-period-of-time-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/user-interaction-only-reported-once-within-short-period-of-time-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/user-interaction-reported-after-website-data-removal-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/user-interaction-reported-after-website-data-removal-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html
patching file LayoutTests/platform/ios/TestExpectations

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Brent Fulgham&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: https://webkit-queues.webkit.org/results/13070834</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574487</commentid>
    <comment_count>53</comment_count>
      <attachid>379649</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-09-26 09:47:24 -0700</bug_when>
    <thetext>Created attachment 379649
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574488</commentid>
    <comment_count>54</comment_count>
      <attachid>379649</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-26 09:48:04 -0700</bug_when>
    <thetext>Comment on attachment 379649
Patch for landing

r=me (rebased patch upload)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574493</commentid>
    <comment_count>55</comment_count>
      <attachid>379649</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-26 09:52:23 -0700</bug_when>
    <thetext>Comment on attachment 379649
Patch for landing

Rejecting attachment 379649 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 379649, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 5000 characters of output:
s/http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/prevalent-resource-without-user-interaction-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/prevalent-resource-without-user-interaction-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/prune-statistics-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/prune-statistics-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-ip-to-localhost-to-ip-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-ip-to-localhost-to-ip-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/set-custom-prevalent-resource-in-debug-mode-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/set-custom-prevalent-resource-in-debug-mode-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-redirects-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-redirects-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-requests-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-requests-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/telemetry-generation.html
patching file LayoutTests/http/tests/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/user-interaction-only-reported-once-within-short-period-of-time-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/user-interaction-only-reported-once-within-short-period-of-time-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/user-interaction-reported-after-website-data-removal-database-expected.txt
patching file LayoutTests/http/tests/resourceLoadStatistics/user-interaction-reported-after-website-data-removal-database.html
patching file LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html
patching file LayoutTests/platform/ios/TestExpectations

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Brent Fulgham&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: https://webkit-queues.webkit.org/results/13070992</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574519</commentid>
    <comment_count>56</comment_count>
      <attachid>379658</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-09-26 10:24:22 -0700</bug_when>
    <thetext>Created attachment 379658
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574535</commentid>
    <comment_count>57</comment_count>
      <attachid>379658</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-09-26 11:03:25 -0700</bug_when>
    <thetext>Comment on attachment 379658
Patch

Another attempt to land! r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574580</commentid>
    <comment_count>58</comment_count>
      <attachid>379658</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-26 12:16:48 -0700</bug_when>
    <thetext>Comment on attachment 379658
Patch

Clearing flags on attachment: 379658

Committed r250393: &lt;https://trac.webkit.org/changeset/250393&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574581</commentid>
    <comment_count>59</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-26 12:16:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378422</attachid>
            <date>2019-09-09 18:15:44 -0700</date>
            <delta_ts>2019-09-10 09:32:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195420-20190909181543.patch</filename>
            <type>text/plain</type>
            <size>355687</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NDMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2E1ZTE4NzYyNmYzMGUw
ZjQxOTIzOTQwYjMzOGUyYTg0MzkyOTM4OS4uZDU0Nzg5MTEyYmNkYTUwODQ0ZjVlMTRiMTI4YWM4
ZmFmMjRhZTFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDE5LTA5LTA5ICBLYXRo
ZXJpbmUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5h
YmxlIExheW91dFRlc3RzIHVzaW5nIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgU1FMaXRlIGJhY2tl
bmQgKDE5NTQyMCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NTQyMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQyMTM1NTE+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2Uu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Js
b2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0LWltcG9ydC1kYXRhYmFzZS5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1h
Z2UtZm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMt
d2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9y
LWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291
cmNlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5r
LXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVk
LWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZh
bGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LXdpdGhvdXQtbGluay1kZWNvcmF0aW9uLWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJh
c2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1m
cmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1
YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24t
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJh
c2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1v
cmlnaW5zLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2Ut
cmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
c3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJh
c2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJl
Y3RzLXRvLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJl
ZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRv
cC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXIt
aW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5k
LXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAg
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFz
ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1z
Y3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5h
dmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJl
Y3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVu
dC13aXRob3V0LWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZp
Z2F0aW9uLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5h
YmxlLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50
LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAg
ICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNv
dXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3Vy
Y2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2Uu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
bi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFz
ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9z
dC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hl
ZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2Fs
aG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1k
YXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1wcmV2
YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVkLWtleWRvd24t
ZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFs
ZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291
cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3Vy
Y2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFi
YXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFz
ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRh
dGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlm
cmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10
by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hl
ZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQt
bmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10
by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0b20tcHJldmFsZW50LXJlc291cmNlLWlu
LWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50
LXN1YnJlc291cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZv
ci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9u
LW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50
ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlv
bi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91
c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFi
YXNlLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oOgorICAg
ICAgIEFkZGVkIFdFQkNPUkVfRVhQT1JUIHByZWZpeCB0byBhIGZ1bmN0aW9uIG5lZWRlZCBpbiB0
aGUgRGF0YWJhc2UKKyAgICAgICBiYWNrZW5kIHRvIGNsZWFyIG91dCB0aGUgZGF0YWJhc2UuCisK
IDIwMTktMDktMDMgIENocmlzIExvcmQgIDxjbG9yZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtH
U3RyZWFtZXJdIEFkZCBzdXBwb3J0IHRvIGNvcHkgWVVWIHZpZGVvIHRleHR1cmVzIGludG8gaW1h
Z2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDdjNDhmMDhjN2IzYTNjMGMwZmYxYTY5Y2M1OTJlNWU5NjViYzc2MWYu
LjBkZmFkNTgwMWM2MzY2Y2ZkZDRhY2NlMmI1NzMzZGE3MzBhN2U3ZjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTE3IEBACisyMDE5LTA5LTA5ICBLYXRoZXJpbmUgQ2hlbmV5ICA8a2F0aGVyaW5lX2No
ZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIExheW91dFRlc3RzIHVzaW5nIFJlc291
cmNlTG9hZFN0YXRpc3RpY3MgU1FMaXRlIGJhY2tlbmQgKDE5NTQyMCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTQyMAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTQyMTM1NTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
KToKKyAgICAgICAgUmVtb3ZlZCBwcmVwYXJlU3RhdGVtZW50cygpIGNhbGwgZnJvbSB0aGUgY29u
c3RydWN0b3IuIFByZXBhcmluZworICAgICAgICBzdGF0ZW1lbnRzIHRoZW4gcnVubmluZyBhIHZh
Y3V1bSBjb21tYW5kIG9uIHRoZSBkYXRhYmFzZSByZXN1bHRzIGluIGFuCisgICAgICAgIGVycm9y
ICh0aGUgdmFjdXVtIGNvbW1hbmQgaXMgY2FsbGVkIGludCBoZSBwb3B1bGF0ZUZyb21NZW1vcnlT
dG9yZSgpIAorICAgICAgICBmdW5jdGlvbikKKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMpOgorICAgICAgICBB
ZGRlZCAzIHN0YXRlbWVudHMgdGhhdCB3ZXJlIG5vdCBiZWluZyBwcmVwYXJlZC4KKworICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVsYXRpb25z
aGlwRXhpc3RzIGNvbnN0KToKKyAgICAgICAgQ29ycmVjdGVkIGluY29ycmVjdCBjYXBpdGFsaXph
dGlvbi4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6cG9wdWxhdGVGcm9tTWVtb3J5U3RvcmUpOgorICAgICAgICBNb3ZlZCB0aGUgcHJlcGFy
ZVN0YXRlbWVudHMoKSBjYWxsIGFmdGVyIHRoZSB2YWN1dW0gY29tbWFuZCBpbiB0aGUgY2FzZQor
ICAgICAgICB3aGVyZSB0aGUgZGF0YWJhc2UgaXMgZW1wdHkuIE90aGVyd2lzZSBjYWxsZWQgaXQg
YmVmb3JlIHJldHVybmluZy4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6cmVjdXJzaXZlbHlGaW5kTm9uUHJldmFsZW50RG9tYWluc1RoYXRS
ZWRpcmVjdGVkVG9UaGlzRG9tYWluKToKKyAgICAgICAgQWRkZWQgYSBzcGFjZSB0byB0aGUgU1FM
IGNvbW1hbmRzIHRvIGNvcnJlY3QgdGhlIHN5bnRheC4KKworICAgICAgICAoV2ViS2l0OjpSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZmluZE5vdFZlcnlQcmV2YWxlbnRSZXNv
dXJjZXMpOgorICAgICAgICBDb3JyZWN0ZWQgYSBidWcgaW4gdGhlIFNRTCBjb21tYW5kIGZvciBx
dWVyeWluZworICAgICAgICBzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW4uIFRoZSBvbGQgcXVl
cnkgd2FzIGFza2luZyBmb3Igc3VicmVzb3VyY2UuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW5kZmF0aGVyRGF0YUZvckRvbWFpbnMp
OgorICAgICAgICBUaGUgZ3JhbmRmYXRoZXJpbmcuaHRtbCB0ZXN0IHdhcyBmYWlsaW5nIGJlY2F1
c2UgZG9tYWlucyB3ZXJlIGJlaW5nCisgICAgICAgICJzZXQiIHRvIGdyYW5kZmF0aGVyZWQgaW4g
dGhlIGRhdGFiYXNlIGJlZm9yZSBiZWluZyBpbnNlcnRlZC4gVGhpcyBmaXgKKyAgICAgICAgZW5z
dXJlcyBhbGwgZG9tYWlucyBiZWZvcmUgc2V0dGluZyB0aGUgZ3JhbmRmYXRoZXJpbmcgZmxhZy4K
KworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
bG9nRnJhbWVOYXZpZ2F0aW9uKToKKyAgICAgICAgTXVsdGlwbGUgdGVzdHMgd2VyZSBmYWlsaW5n
IGJlY2F1c2UgdGhlIHF1ZXJ5IHRvIGluc2VydCB0aGUgcmVsYXRpb25zaGlwCisgICAgICAgIGZv
ciB0aGUgc291cmNlIGRvbWFpbiByZWxpZXMgb24gdGhlIHRhcmdldCBkb21haW4gYmVpbmcgaW4g
dGhlIAorICAgICAgICBPYnNlcnZlZERvbWFpbnMgdGFibGUuIFRoaXMgcGF0Y2ggZW5zdXJlcyBh
bGwgZG9tYWlucyBhcmUgYWRkZWQgYmVmb3JlCisgICAgICAgIHBlcmZvcm1pbmcgdGhlIHF1ZXJ5
LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpoYXNIYWRVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICBUaGUgU1FMIHN0YXRlbWVudCB3YXMg
YmVpbmcgYm91bmQgdG8gYSB2YWx1ZSBhbmQgbm90IGJlaW5nIHJlc2V0LiBUaGlzCisgICAgICAg
IHBhdGNoIHJlc2V0cyB0aGUgc3RhdGVtZW50IGFmdGVyIGJpbmRpbmcuCisKKyAgICAgICAgKFdl
YktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZWRpY2F0ZVZhbHVl
Rm9yRG9tYWluIGNvbnN0KToKKyAgICAgICAgVGhlIFNRTCBzdGF0ZW1lbnQgd2FzIGJlaW5nIGJv
dW5kIHRvIGEgdmFsdWUgYW5kIG5vdCBiZWluZyByZXNldC4gVGhpcworICAgICAgICBwYXRjaCBy
ZXNldHMgdGhlIHN0YXRlbWVudCBhZnRlciBiaW5kaW5nLgorCisgICAgICAgIChXZWJLaXQ6OlJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjplbnN1cmVSZXNvdXJjZVN0YXRpc3Rp
Y3NGb3JSZWdpc3RyYWJsZURvbWFpbik6CisgICAgICAgIEZpeGVkIHRoZSByZWxlYXNlIGxvZyBz
dGF0ZW1lbnQgd2hpY2ggd2FzIGxvZ2dpbmcgdGhlIHdyb25nIGZ1bmN0aW9uCisgICAgICAgIG5h
bWUuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OmNsZWFyRGF0YWJhc2VDb250ZW50cyk6CisgICAgICAgIENsZWFycyB0aGUgZGF0YWJhc2Ug
YW5kIHJlYnVpbGRzIHRoZSB0YWJsZXMgb24gYSBjbGVhciBjb21tYW5kIHRvCisgICAgICAgIG1h
dGNoIHRoZSBmdW5jdGlvbmFsaXR5IGluIHRoZSBNZW1vcnkgU3RvcmUuCisKKyAgICAgICAgKFdl
YktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyKToKKyAgICAg
ICAgQ2FsbCB0aGUgY2xlYXJEYXRhYmFzZUNvbnRlbnRzIGZ1bmN0aW9uIHRvIG1hdGNoIHRoZSBm
dW5jdGlvbmFsaXR5CisgICAgICAgIGluIHRoZSBNZW1vcnkgU3RvcmUuCisKKyAgICAgICAgKFdl
YktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc0hhZFVuZXhwaXJl
ZFJlY2VudFVzZXJJbnRlcmFjdGlvbik6CisgICAgICAgIFRlc3RzIHdlcmUgZmFpbGluZyBiZWNh
dXNlIHNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9yKCkgd2FzIG5vdAorICAgICAgICBjaGVj
a2luZyBmb3IgZXhwaXJlZCB1c2VyIGludGVyYWN0aW9uLiBNYXRjaGVkIGZ1bmN0aW9uYWxpdHkg
aW4gdGhlCisgICAgICAgIE1lbW9yeSBTdG9yZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFG
b3IpOgorICAgICAgICBUZXN0cyB3ZXJlIGZhaWxpbmcgYmVjYXVzZSBzaG91bGRSZW1vdmVBbGxX
ZWJzaXRlRGF0YUZvcigpIHdhcyBub3QKKyAgICAgICAgY2hlY2tpbmcgZm9yIGV4cGlyZWQgdXNl
ciBpbnRlcmFjdGlvbi4gTWF0Y2hlZCBmdW5jdGlvbmFsaXR5IGluIHRoZQorICAgICAgICBNZW1v
cnkgU3RvcmUuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OnBydW5lU3RhdGlzdGljc0lmTmVlZGVkKToKKyAgICAgICAgTGFzdCBzZWVuIHNo
b3VsZCBiZSBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyIGJlY2F1c2UgeW91IHdhbnQgdG8KKyAg
ICAgICAgcHJ1bmUgdGhlIG9sZGVyIHN0YXRpc3RpY3MgZmlyc3QsIHdoaWNoIHdpbGwgaGF2ZSBh
IGxvd2VyIGxhc3RTZWVuCisgICAgICAgIGZpZWxkIChzZWNvbmRzU2luY2VFcG9jaCgpIHdpbGwg
YmUgbG93ZXIgZm9yIG9sZGVyIHZhbHVlcykuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9y
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgRGVsZXRlZCBjb25zdCBzcGVjaWZpZXIgYmVjYXVz
ZSB0aGUgZnVuY3Rpb24gbmVlZHMgdG8gY2xlYXIgdGhlCisgICAgICAgIGRhdGFiYXNlLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZS5oOgorICAgICAgICBEZWNsYXJlZCBuZXcgZnVuY3Rpb25zLgorCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSk6CisgICAgICAgIFNlcGFyYXRlZCB0
aGUgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIGNyZWF0aW9uIHByb2Nlc3MgaW50byBpdHMK
KyAgICAgICAgb3duIG1ldGhvZCBzbyBpdCBjYW4gYmUgY2FsbGVkIGJ5IHRoZSB0ZXN0LgorCisg
ICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aW5pdGlhbGl6
ZVN0YXRpc3RpY3NTdG9yZSk6CisgICAgICAgIFNlcGFyYXRlZCB0aGUgcmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlIGNyZWF0aW9uIHByb2Nlc3MgaW50byBpdHMKKyAgICAgICAgb3duIG1ldGhv
ZCBzbyBpdCBjYW4gYmUgY2FsbGVkIGJ5IHRoZSB0ZXN0LgorCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAg
ICAgRGVjbGFyZWQgbmV3IGZ1bmN0aW9uLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0VXNl
SVRQRGF0YWJhc2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHA6CisgICAg
ICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRVc2VJVFBEYXRhYmFzZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpzZXRVc2VJVFBEYXRhYmFzZSk6CisgICAgICAgICogVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURh
dGFTdG9yZTo6c2V0VXNlSVRQRGF0YWJhc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgIFBhc3NlZCB0aGUgc2V0VXNlSVRQRGF0
YWJhc2UgZmxhZyB0byB0aGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24KKyAgICAgICAgb2YgdGhl
IHN0YXRpc3RpY3Mgc3RvcmUgdG8gZW5hYmxlIHRoZSBkYXRhYmFzZSBiYWNrZW5kLgorCisKIDIw
MTktMDgtMjggIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAg
W21hY09TXSBDb3JyZWN0IHNhbmRib3ggdmlvbGF0aW9uIGluIEZsYXNoIHBsdWdpbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAppbmRleCAxNDk4NjZmYmMx
MTk3YmEwOWRhMjE1NzVmMWNlYWZhZDY0MTlmZTZiLi4wMTRkZTBlOWI0ODAzNDRmMTc3YzMwZDNk
MDgxYmI1OWZkN2RmM2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwv
U1FMaXRlRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCByZXR1cm5zQXRM
ZWFzdE9uZVJlc3VsdChjb25zdCBTdHJpbmcmKTsKICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIHRhYmxlRXhpc3RzKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgY2xlYXJBbGxUYWJsZXMo
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyQWxsVGFibGVzKCk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgaW50IHJ1blZhY3V1bUNvbW1hbmQoKTsKICAgICBpbnQgcnVuSW5jcmVtZW50YWxW
YWN1dW1Db21tYW5kKCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAppbmRleCBkNGVjODRjN2M3ZDJlMTViNGU3OGMwMjli
YTE2ZjIyNjY3ZGMyMzY2Li5mNTI3Yzk1OGJkOGNhNjM2Y2FlOWY4Mzc2OTlmMzMxY2FjZjZjMmEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZS5jcHAKQEAgLTIxMywxMiArMjEzLDYgQEAgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlKFdlYlJlc28KICAg
ICAgICAgfQogICAgIH0KIAotICAgIGlmICghcHJlcGFyZVN0YXRlbWVudHMoKSkgewotICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAl
e3B1YmxpY31zLCBkYXRhYmFzZSBwYXRoOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5s
YXN0RXJyb3JNc2coKSwgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aC51dGY4KCkuZGF0YSgpKTsKLSAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAg
ICB3b3JrUXVldWUuZGlzcGF0Y2hBZnRlcig1X3MsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKV0gewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+Y2Fs
Y3VsYXRlQW5kU3VibWl0VGVsZW1ldHJ5KCk7CkBAIC0zMDAsOCArMjk0LDcgQEAgYm9vbCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMoKQogewog
ICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICAKLSAgICBpZiAobV9vYnNl
cnZlZERvbWFpbkNvdW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgfHwgbV9pbnNl
cnRPYnNlcnZlZERvbWFpblN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgaWYg
KG1faW5zZXJ0T2JzZXJ2ZWREb21haW5TdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwog
ICAgICAgICB8fCBtX2luc2VydFRvcExldmVsRG9tYWluU3RhdGVtZW50LnByZXBhcmUoKSAhPSBT
UUxJVEVfT0sKICAgICAgICAgfHwgbV9kb21haW5JREZyb21TdHJpbmdTdGF0ZW1lbnQucHJlcGFy
ZSgpICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX3N0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1l
RG9tYWluc1N0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCkBAIC0zMjgsNyArMzIxLDgg
QEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRl
bWVudHMoKQogICAgICAgICB8fCBtX3VwZGF0ZUdyYW5kZmF0aGVyZWRTdGF0ZW1lbnQucHJlcGFy
ZSgpICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX2lzR3JhbmRmYXRoZXJlZFN0YXRlbWVudC5w
cmVwYXJlKCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fZmluZEV4cGlyZWRVc2VySW50ZXJh
Y3Rpb25TdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwotICAgICAgICApIHsKKyAgICAg
ICAgfHwgbV90b3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb20ucHJlcGFyZSgpICE9IFNRTElURV9P
SworICAgICAgICB8fCBtX3RvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbUV4aXN0cy5wcmVwYXJl
KCkgIT0gU1FMSVRFX09LKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIl
cCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJlU3RhdGVtZW50
cyBmYWlsZWQgdG8gcHJlcGFyZSwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1f
ZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzg0LDEyICszNzgsMTIgQEAgYm9vbCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVsYXRpb25zaGlwRXhpc3RzKFdlYkNvcmU6
OlNRTGl0ZVN0YXQKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICAKLSAgICBib29s
IHJlbGF0aW9uU2hpcEV4aXN0cyA9ICEhc3RhdGVtZW50LmdldENvbHVtbkludCgwKTsKKyAgICBi
b29sIHJlbGF0aW9uc2hpcEV4aXN0cyA9ICEhc3RhdGVtZW50LmdldENvbHVtbkludCgwKTsKIAog
ICAgIGludCByZXNldFJlc3VsdCA9IHN0YXRlbWVudC5yZXNldCgpOwogICAgIEFTU0VSVF9VTlVT
RUQocmVzZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNRTElURV9PSyk7CiAgICAgCi0gICAgcmV0
dXJuIHJlbGF0aW9uU2hpcEV4aXN0czsKKyAgICByZXR1cm4gcmVsYXRpb25zaGlwRXhpc3RzOwog
fQogCiBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNlcnREb21h
aW5SZWxhdGlvbnNoaXAoV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50JiBzdGF0ZW1lbnQsIHVuc2ln
bmVkIGRvbWFpbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWUpCkBAIC00ODYs
OCArNDgwLDE2IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBv
cHVsYXRlRnJvbU1lbW9yeVN0b3JlKGNvbnN0IFJlc291cmNlCiB7CiAgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7CiAKLSAgICBpZiAoIWlzRW1wdHkoKSkKKyAgICBtX29ic2VydmVkRG9t
YWluQ291bnQucHJlcGFyZSgpOworCisgICAgaWYgKCFpc0VtcHR5KCkpIHsKKyAgICAgICAgaWYg
KCFwcmVwYXJlU3RhdGVtZW50cygpKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihO
ZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFy
ZVN0YXRlbWVudHMgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zLCBkYXRhYmFzZSBw
YXRoOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSwgbV9zdG9y
YWdlRGlyZWN0b3J5UGF0aC51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAgICAgIHJldHVy
bjsKKyAgICB9CiAKICAgICBhdXRvJiBzdGF0aXN0aWNzTWFwID0gbWVtb3J5U3RvcmUuZGF0YSgp
OwogICAgIGZvciAoY29uc3QgYXV0byYgc3RhdGlzdGljIDogc3RhdGlzdGljc01hcCkKQEAgLTQ5
OSw2ICs1MDEsMTIgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
cG9wdWxhdGVGcm9tTWVtb3J5U3RvcmUoY29uc3QgUmVzb3VyY2UKICAgICAgICAgaW5zZXJ0RG9t
YWluUmVsYXRpb25zaGlwcyhzdGF0aXN0aWMudmFsdWUpOwogCiAgICAgbV9kYXRhYmFzZS5ydW5W
YWN1dW1Db21tYW5kKCk7CisKKyAgICBpZiAoIXByZXBhcmVTdGF0ZW1lbnRzKCkpIHsKKyAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OnByZXBhcmVTdGF0ZW1lbnRzIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTog
JXtwdWJsaWN9cywgZGF0YWJhc2UgcGF0aDogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2Uu
bGFzdEVycm9yTXNnKCksIG1fc3RvcmFnZURpcmVjdG9yeVBhdGgudXRmOCgpLmRhdGEoKSk7Cisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQogfQog
CiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjYWxjdWxhdGVBbmRT
dWJtaXRUZWxlbWV0cnkoKSBjb25zdApAQCAtNTQ2LDcgKzU1NCw3IEBAIHVuc2lnbmVkIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWN1cnNpdmVseUZpbmROb25QcmV2YWxl
bnREb21haW5zCiAgICAgKytudW1iZXJPZlJlY3Vyc2l2ZUNhbGxzOwogCiAgICAgU3RkU2V0PHVu
c2lnbmVkPiBuZXdseUlkZW50aWZpZWREb21haW5zOwotICAgIFNRTGl0ZVN0YXRlbWVudCBmaW5k
U3VicmVzb3VyY2VzKG1fZGF0YWJhc2UsIG1ha2VTdHJpbmcoIlNFTEVDVCBTdWJyZXNvdXJjZVVu
aXF1ZVJlZGlyZWN0c0Zyb20uZnJvbURvbWFpbklEIGZyb20gU3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdHNGcm9tIElOTkVSIEpPSU4gT2JzZXJ2ZWREb21haW5zIE9OIE9ic2VydmVkRG9tYWlucy5k
b21haW5JRCA9IFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQgV0hF
UkUgc3VicmVzb3VyY2VEb21haW5JRCA9ICIsIFN0cmluZzo6bnVtYmVyKHByaW1hcnlEb21haW5J
RCksICJBTkQgT2JzZXJ2ZWREb21haW5zLmlzUHJldmFsZW50ID0gMCIpKTsKKyAgICBTUUxpdGVT
dGF0ZW1lbnQgZmluZFN1YnJlc291cmNlcyhtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1Qg
U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5JRCBmcm9tIFN1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSBJTk5FUiBKT0lOIE9ic2VydmVkRG9tYWlucyBPTiBPYnNl
cnZlZERvbWFpbnMuZG9tYWluSUQgPSBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20uZnJv
bURvbWFpbklEIFdIRVJFIHN1YnJlc291cmNlRG9tYWluSUQgPSAiLCBTdHJpbmc6Om51bWJlcihw
cmltYXJ5RG9tYWluSUQpLCAiIEFORCBPYnNlcnZlZERvbWFpbnMuaXNQcmV2YWxlbnQgPSAwIikp
OwogICAgIGlmIChmaW5kU3VicmVzb3VyY2VzLnByZXBhcmUoKSA9PSBTUUxJVEVfT0spIHsKICAg
ICAgICAgd2hpbGUgKGZpbmRTdWJyZXNvdXJjZXMuc3RlcCgpID09IFNRTElURV9ST1cpIHsKICAg
ICAgICAgICAgIGF1dG8gbmV3RG9tYWluSUQgPSBmaW5kU3VicmVzb3VyY2VzLmdldENvbHVtbklu
dCgwKTsKQEAgLTU1Niw3ICs1NjQsNyBAQCB1bnNpZ25lZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6cmVjdXJzaXZlbHlGaW5kTm9uUHJldmFsZW50RG9tYWlucwogICAgICAg
ICB9CiAgICAgfQogCi0gICAgU1FMaXRlU3RhdGVtZW50IGZpbmRUb3BGcmFtZXMobV9kYXRhYmFz
ZSwgbWFrZVN0cmluZygiU0VMRUNUIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9t
YWluSUQgZnJvbSBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20gSU5ORVIgSk9JTiBPYnNlcnZl
ZERvbWFpbnMgT04gT2JzZXJ2ZWREb21haW5zLmRvbWFpbklEID0gVG9wRnJhbWVVbmlxdWVSZWRp
cmVjdHNGcm9tLmZyb21Eb21haW5JRCBXSEVSRSB0YXJnZXREb21haW5JRCA9ICIsIFN0cmluZzo6
bnVtYmVyKHByaW1hcnlEb21haW5JRCksICJBTkQgT2JzZXJ2ZWREb21haW5zLmlzUHJldmFsZW50
ID0gMCIpKTsKKyAgICBTUUxpdGVTdGF0ZW1lbnQgZmluZFRvcEZyYW1lcyhtX2RhdGFiYXNlLCBt
YWtlU3RyaW5nKCJTRUxFQ1QgVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5J
RCBmcm9tIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSBJTk5FUiBKT0lOIE9ic2VydmVkRG9t
YWlucyBPTiBPYnNlcnZlZERvbWFpbnMuZG9tYWluSUQgPSBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0
c0Zyb20uZnJvbURvbWFpbklEIFdIRVJFIHRhcmdldERvbWFpbklEID0gIiwgU3RyaW5nOjpudW1i
ZXIocHJpbWFyeURvbWFpbklEKSwgIiBBTkQgT2JzZXJ2ZWREb21haW5zLmlzUHJldmFsZW50ID0g
MCIpKTsKICAgICBpZiAoZmluZFRvcEZyYW1lcy5wcmVwYXJlKCkgPT0gU1FMSVRFX09LKSB7CiAg
ICAgICAgIHdoaWxlIChmaW5kVG9wRnJhbWVzLnN0ZXAoKSA9PSBTUUxJVEVfUk9XKSB7CiAgICAg
ICAgICAgICBhdXRvIG5ld0RvbWFpbklEID0gZmluZFRvcEZyYW1lcy5nZXRDb2x1bW5JbnQoMCk7
CkBAIC02NTcsNyArNjY1LDcgQEAgSGFzaE1hcDx1bnNpZ25lZCwgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6Ok5vdFZlcnlQcmV2YWxlbnRSZXNvdXJjZXMKICAgICAgICAgfQog
ICAgIH0KIAotICAgIFNRTGl0ZVN0YXRlbWVudCBzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5z
Q291bnRTdGF0ZW1lbnQobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIHN1YnJlc291cmNl
RG9tYWluSUQsIENPVU5UKHRvcEZyYW1lRG9tYWluSUQpIEZST00gU3VicmVzb3VyY2VVbmRlclRv
cEZyYW1lRG9tYWlucyBXSEVSRSBzdWJyZXNvdXJjZURvbWFpbklEIElOICgiLCBkb21haW5JRHNP
ZkludGVyZXN0LCAiKSBHUk9VUCBCWSBzdWJyZXNvdXJjZURvbWFpbklEIikpOworICAgIFNRTGl0
ZVN0YXRlbWVudCBzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnRTdGF0ZW1lbnQobV9k
YXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIHN1YmZyYW1lRG9tYWluSUQsIENPVU5UKHRvcEZy
YW1lRG9tYWluSUQpIEZST00gU3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlucyBXSEVSRSBzdWJm
cmFtZURvbWFpbklEIElOICgiLCBkb21haW5JRHNPZkludGVyZXN0LCAiKSBHUk9VUCBCWSBzdWJm
cmFtZURvbWFpbklEIikpOwogICAgIGlmIChzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zQ291
bnRTdGF0ZW1lbnQucHJlcGFyZSgpID09IFNRTElURV9PSykgewogICAgICAgICB3aGlsZSAoc3Vi
ZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluc0NvdW50U3RhdGVtZW50LnN0ZXAoKSA9PSBTUUxJVEVf
Uk9XKSB7CiAgICAgICAgICAgICB1bnNpZ25lZCBkb21haW5JRCA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkPihzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnRTdGF0ZW1lbnQuZ2V0Q29sdW1u
SW50KDApKTsKQEAgLTg1MSw2ICs4NTksOSBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpncmFuZGZhdGhlckRhdGFGb3JEb21haW5zKGNvbnN0IEhhc2hTZQogewog
ICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAgZm9yIChhdXRvJiByZWdEb21h
aW4gOiBkb21haW5zKQorICAgICAgICBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3Ry
YWJsZURvbWFpbihyZWdEb21haW4pOworCiAgICAgU1FMaXRlU3RhdGVtZW50IGRvbWFpbnNUb1Vw
ZGF0ZVN0YXRlbWVudChtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJVUERBVEUgT2JzZXJ2ZWREb21h
aW5zIFNFVCBncmFuZGZhdGhlcmVkID0gMSBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiBJTiAoIiwg
ZG9tYWluc1RvU3RyaW5nKGRvbWFpbnMpLCAiKSIpKTsKICAgICBpZiAoZG9tYWluc1RvVXBkYXRl
U3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgZG9tYWluc1RvVXBk
YXRlU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewpAQCAtODk0LDcgKzkwNSw3IEBA
IHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmxvZ0ZyYW1lTmF2aWdh
dGlvbihjb25zdCBSZWdpc3RyYWJsZURvCiAgICAgaWYgKCFpc01haW5GcmFtZSAmJiAhKGFyZVRh
cmdldEFuZFRvcEZyYW1lRG9tYWluc1NhbWVTaXRlIHx8IGFyZVRhcmdldEFuZFNvdXJjZURvbWFp
bnNTYW1lU2l0ZSkpIHsKICAgICAgICAgYXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJj
ZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0YXJnZXREb21haW4pOwogICAgICAgICB1
cGRhdGVMYXN0U2Vlbih0YXJnZXREb21haW4sIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OnJlZHVj
ZVRpbWVSZXNvbHV0aW9uKFdhbGxUaW1lOjpub3coKSkpOwotCisgICAgICAgIGVuc3VyZVJlc291
cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHRvcEZyYW1lRG9tYWluKTsKICAgICAg
ICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV9zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5F
eGlzdHMsIHRhcmdldFJlc3VsdC5zZWNvbmQsIHRvcEZyYW1lRG9tYWluKSkgewogICAgICAgICAg
ICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlu
cywgdGFyZ2V0UmVzdWx0LnNlY29uZCwgdG9wRnJhbWVEb21haW4pOwogICAgICAgICAgICAgc3Rh
dGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKQEAgLTkwNCwyNCArOTE1LDI1IEBAIHZvaWQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25z
dCBSZWdpc3RyYWJsZURvCiAgICAgaWYgKGlzUmVkaXJlY3QgJiYgIWFyZVRhcmdldEFuZFNvdXJj
ZURvbWFpbnNTYW1lU2l0ZSkgewogICAgICAgICBpZiAoaXNNYWluRnJhbWUpIHsKICAgICAgICAg
ICAgIGF1dG8gcmVkaXJlY3RpbmdEb21haW5SZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3Rp
Y3NGb3JSZWdpc3RyYWJsZURvbWFpbihzb3VyY2VEb21haW4pOworICAgICAgICAgICAgYXV0byB0
YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFp
bih0YXJnZXREb21haW4pOworCiAgICAgICAgICAgICBpZiAoIXJlbGF0aW9uc2hpcEV4aXN0cyht
X3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9FeGlzdHMsIHJlZGlyZWN0aW5nRG9tYWluUmVzdWx0
LnNlY29uZCwgdGFyZ2V0RG9tYWluKSkgewogICAgICAgICAgICAgICAgIGluc2VydERvbWFpblJl
bGF0aW9uc2hpcChtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8sIHJlZGlyZWN0aW5nRG9tYWlu
UmVzdWx0LnNlY29uZCwgdGFyZ2V0RG9tYWluKTsKICAgICAgICAgICAgICAgICBzdGF0aXN0aWNz
V2VyZVVwZGF0ZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBhdXRvIHRh
cmdldFJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWlu
KHRhcmdldERvbWFpbik7CiAgICAgICAgICAgICBpZiAoIXJlbGF0aW9uc2hpcEV4aXN0cyhtX3Rv
cEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbUV4aXN0cywgdGFyZ2V0UmVzdWx0LnNlY29uZCwgc291
cmNlRG9tYWluKSkgewogICAgICAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcCht
X3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSwgdGFyZ2V0UmVzdWx0LnNlY29uZCwgc291cmNl
RG9tYWluKTsKICAgICAgICAgICAgICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVlOwog
ICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgYXV0byByZWRpcmVj
dGluZ0RvbWFpblJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxl
RG9tYWluKHNvdXJjZURvbWFpbik7CisgICAgICAgICAgICBhdXRvIHRhcmdldFJlc3VsdCA9IGVu
c3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHRhcmdldERvbWFpbik7
CiAgICAgICAgICAgICBpZiAoIXJlbGF0aW9uc2hpcEV4aXN0cyhtX3N1YnJlc291cmNlVW5pcXVl
UmVkaXJlY3RzVG9FeGlzdHMsIHJlZGlyZWN0aW5nRG9tYWluUmVzdWx0LnNlY29uZCwgdGFyZ2V0
RG9tYWluKSkgewogICAgICAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1
YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8sIHJlZGlyZWN0aW5nRG9tYWluUmVzdWx0LnNlY29u
ZCwgdGFyZ2V0RG9tYWluKTsKICAgICAgICAgICAgICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQg
PSB0cnVlOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBhdXRvIHRhcmdldFJlc3VsdCA9
IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHRhcmdldERvbWFp
bik7CiAgICAgICAgICAgICBpZiAoIXJlbGF0aW9uc2hpcEV4aXN0cyhtX3N1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RzRnJvbUV4aXN0cywgdGFyZ2V0UmVzdWx0LnNlY29uZCwgc291cmNlRG9tYWlu
KSkgewogICAgICAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSwgdGFyZ2V0UmVzdWx0LnNlY29uZCwgc291cmNlRG9tYWlu
KTsKICAgICAgICAgICAgICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVlOwpAQCAtOTkx
LDE1ICsxMDAzLDIxIEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
Omhhc0hhZFVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsCiAgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7CiAKICAgICBpZiAobV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQu
YmluZFRleHQoMSwgZG9tYWluLnN0cmluZygpKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgfHwgbV9o
YWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjptX3VwZGF0ZVByZXZhbGVudFJlc291cmNlU3RhdGVtZW50IGZhaWxl
ZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9y
TXNnKCkpOwotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfHwgbV9oYWRV
c2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ST1cpIHsKKyAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6Om1faGFkVXNlckludGVyYWN0aW9uU3RhdGVtZW50IGZhaWxlZCwgZXJyb3Ig
bWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwor
CisgICAgICAgIGludCByZXNldFJlc3VsdCA9IG1faGFkVXNlckludGVyYWN0aW9uU3RhdGVtZW50
LnJlc2V0KCk7CisgICAgICAgIEFTU0VSVF9VTlVTRUQocmVzZXRSZXN1bHQsIHJlc2V0UmVzdWx0
ID09IFNRTElURV9PSyk7CisgICAgICAgIExPR19FUlJPUigiREFUQUJBU0UgJXMgZG9lcyBub3Qg
aGF2ZSBVSSIsIGRvbWFpbi5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CiAKICAgICBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiA9ICEhbV9oYWRV
c2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDApOwotICAgIGlmICghaGFkVXNl
ckludGVyYWN0aW9uKQorICAgIGlmICghaGFkVXNlckludGVyYWN0aW9uKSB7CisgICAgICAgIGlu
dCByZXNldFJlc3VsdCA9IG1faGFkVXNlckludGVyYWN0aW9uU3RhdGVtZW50LnJlc2V0KCk7Cisg
ICAgICAgIEFTU0VSVF9VTlVTRUQocmVzZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNRTElURV9P
Syk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgCiAgICAgV2FsbFRpbWUgbW9z
dFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMobV9o
YWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuZ2V0Q29sdW1uRG91YmxlKDEpKTsKIApAQCAtMTAx
MSw2ICsxMDI5LDkgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
aGFzSGFkVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmwKICAgICAgICAgaGFkVXNlcklu
dGVyYWN0aW9uID0gZmFsc2U7CiAgICAgfQogICAgIAorICAgIGludCByZXNldFJlc3VsdCA9IG1f
aGFkVXNlckludGVyYWN0aW9uU3RhdGVtZW50LnJlc2V0KCk7CisgICAgQVNTRVJUX1VOVVNFRChy
ZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQgPT0gU1FMSVRFX09LKTsKKwogICAgIHJldHVybiBoYWRV
c2VySW50ZXJhY3Rpb247CiB9CiAKQEAgLTEwNzYsOSArMTA5NywxMiBAQCBib29sIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVkaWNhdGVWYWx1ZUZvckRvbWFpbihXZWJD
b3JlOjpTUUxpdAogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIAogICAgIGlm
IChwcmVkaWNhdGVTdGF0ZW1lbnQuYmluZFRleHQoMSwgZG9tYWluLnN0cmluZygpKSAhPSBTUUxJ
VEVfT0sKLSAgICAgICAgfHwgcHJlZGljYXRlU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9O
RSkgeworICAgICAgICB8fCBwcmVkaWNhdGVTdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ST1cp
IHsKKworICAgICAgICBpbnQgcmVzZXRSZXN1bHQgPSBwcmVkaWNhdGVTdGF0ZW1lbnQucmVzZXQo
KTsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChyZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQgPT0gU1FM
SVRFX09LKTsKKwogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlZGljYXRlVmFsdWVGb3JEb21haW4g
ZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFi
YXNlLmxhc3RFcnJvck1zZygpKTsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTEyNDgsNyArMTI3Miw3IEBAIHN0ZDo6cGFp
cjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6QWRkZWRSZWNvcmQsIHVuc2ln
bmVkPiBSZXNvdXJjZUxvCiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBp
ZiAobV9kb21haW5JREZyb21TdHJpbmdTdGF0ZW1lbnQuYmluZFRleHQoMSwgZG9tYWluLnN0cmlu
ZygpKSAhPSBTUUxJVEVfT0spIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywg
IiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNyZWF0ZVNjaGVtYSBm
YWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RF
cnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmVuc3VyZVJlc291cmNlU3RhdGlzdGlj
c0ZvclJlZ2lzdHJhYmxlRG9tYWluIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIs
IHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgcmV0dXJuIHsgQWRkZWRSZWNvcmQ6Ok5vLCAwIH07CiAgICAgfQpA
QCAtMTI3MCwxMCArMTI5NCwyNCBAQCBzdGQ6OnBhaXI8UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OkFkZGVkUmVjb3JkLCB1bnNpZ25lZD4gUmVzb3VyY2VMbwogICAgIHJldHVy
biB7IEFkZGVkUmVjb3JkOjpZZXMsIGRvbWFpbklEKGRvbWFpbikgfTsKIH0KIAordm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJEYXRhYmFzZUNvbnRlbnRzKCkK
K3sKKyAgICBtX2RhdGFiYXNlLmNsZWFyQWxsVGFibGVzKCk7CisKKyAgICBpZiAoIW1fZGF0YWJh
c2UudGFibGVFeGlzdHMoIk9ic2VydmVkRG9tYWlucyJfcykpIHsKKyAgICAgICAgaWYgKCFjcmVh
dGVTY2hlbWEoKSkgeworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVw
IC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyRGF0YWJhc2VDb250
ZW50cyBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMsIGRhdGFiYXNlIHBhdGg6ICV7
cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpLCBtX3N0b3JhZ2VEaXJl
Y3RvcnlQYXRoLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9Cit9CisKIHZvaWQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6Omlz
TWFpbigpKTsKIAorICAgIGNsZWFyRGF0YWJhc2VDb250ZW50cygpOwogICAgIGNsZWFyT3BlcmF0
aW5nRGF0ZXMoKTsKIAogICAgIGF1dG8gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dy
ZWdhdG9yOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwpAQCAtMTQ2Miw5ICsx
NTAwLDE5IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFy
R3JhbmRmYXRoZXJpbmcoVmVjdG9yPHVuc2lnbmVkPiYmCiAgICAgfQogfQogCi1ib29sIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0
YUZvcihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiByZXNvdXJjZVN0YXRpc3RpYywgYm9vbCBz
aG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSBjb25zdAorYm9vbCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVW5leHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9u
KGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmIHJlc291cmNlU3RhdGlzdGljLCBPcGVyYXRpbmdE
YXRlc1dpbmRvdyBvcGVyYXRpbmdEYXRlc1dpbmRvdykKK3sKKyAgICBpZiAocmVzb3VyY2VTdGF0
aXN0aWMuaGFkVXNlckludGVyYWN0aW9uICYmIGhhc1N0YXRpc3RpY3NFeHBpcmVkKHJlc291cmNl
U3RhdGlzdGljLm1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lLCBvcGVyYXRpbmdEYXRlc1dp
bmRvdykpIHsKKyAgICAgICAgY2xlYXJVc2VySW50ZXJhY3Rpb24ocmVzb3VyY2VTdGF0aXN0aWMu
cmVnaXN0ZXJhYmxlRG9tYWluKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAg
IHJldHVybiByZXNvdXJjZVN0YXRpc3RpYy5oYWRVc2VySW50ZXJhY3Rpb247Cit9CisKK2Jvb2wg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNob3VsZFJlbW92ZUFsbFdlYnNp
dGVEYXRhRm9yKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmIHJlc291cmNlU3RhdGlzdGljLCBi
b29sIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpCiB7Ci0gICAgcmV0dXJuICFyZXNvdXJj
ZVN0YXRpc3RpYy5oYWRVc2VySW50ZXJhY3Rpb24gJiYgKCFzaG91bGRDaGVja0ZvckdyYW5kZmF0
aGVyaW5nIHx8ICFyZXNvdXJjZVN0YXRpc3RpYy5ncmFuZGZhdGhlcmVkKTsKKyAgICByZXR1cm4g
IWhhc0hhZFVuZXhwaXJlZFJlY2VudFVzZXJJbnRlcmFjdGlvbihyZXNvdXJjZVN0YXRpc3RpYywg
T3BlcmF0aW5nRGF0ZXNXaW5kb3c6OkxvbmcpICYmICghc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhl
cmluZyB8fCAhcmVzb3VyY2VTdGF0aXN0aWMuZ3JhbmRmYXRoZXJlZCk7CiB9CiAKIGJvb2wgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNob3VsZFJlbW92ZUFsbEJ1dENvb2tp
ZXNGb3IoY29uc3QgUHJldmFsZW50RG9tYWluRGF0YSYgcmVzb3VyY2VTdGF0aXN0aWMsIGJvb2wg
c2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZykgY29uc3QKQEAgLTE1MjQsNyArMTU3Miw3IEBA
IHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBydW5lU3RhdGlzdGlj
c0lmTmVlZGVkKCkKICAgICBzaXplX3QgY291bnRMZWZ0VG9QcnVuZSA9IGNvdW50IC0gcGFyYW1l
dGVycygpLnBydW5lRW50cmllc0Rvd25UbzsKICAgICBBU1NFUlQoY291bnRMZWZ0VG9QcnVuZSk7
CiAKLSAgICBTUUxpdGVTdGF0ZW1lbnQgcmVjb3Jkc1RvUHJ1bmUobV9kYXRhYmFzZSwgbWFrZVN0
cmluZygiU0VMRUNUIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIE9SREVSIEJZIGhhZFVz
ZXJJbnRlcmFjdGlvbiwgaXNQcmV2YWxlbnQsIGxhc3RTZWVuIERFU0MgTElNSVQgIiwgU3RyaW5n
OjpudW1iZXIoY291bnRMZWZ0VG9QcnVuZSkpKTsKKyAgICBTUUxpdGVTdGF0ZW1lbnQgcmVjb3Jk
c1RvUHJ1bmUobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIGRvbWFpbklEIEZST00gT2Jz
ZXJ2ZWREb21haW5zIE9SREVSIEJZIGhhZFVzZXJJbnRlcmFjdGlvbiwgaXNQcmV2YWxlbnQsIGxh
c3RTZWVuIExJTUlUICIsIFN0cmluZzo6bnVtYmVyKGNvdW50TGVmdFRvUHJ1bmUpKSk7CiAgICAg
aWYgKHJlY29yZHNUb1BydW5lLnByZXBhcmUoKSAhPSBTUUxJVEVfT0spIHsKICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OnBydW5lU3RhdGlzdGljc0lmTmVlZGVkIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTog
JXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlLmgKaW5kZXggMGZiMjRhZDA2NzA0NWM5YWQzMTRmMjNjZmI0NDQw
ZDhhZjg0NWZlYy4uM2VhYmFhYTk2MGM5MjljYjE4ZThiMTc1NmMwMmY0ZjcxNjAxZDg3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgK
QEAgLTEwNSw2ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYsIFNlY29uZHMpIG92ZXJyaWRlOwogCiBwcml2YXRlOgorICAgIHZv
aWQgY2xlYXJEYXRhYmFzZUNvbnRlbnRzKCk7CiAgICAgYm9vbCBpbnNlcnRPYnNlcnZlZERvbWFp
bihjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJik7CiAgICAgdm9pZCBpbnNlcnREb21haW5S
ZWxhdGlvbnNoaXBzKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsKICAgICBib29sIGlu
c2VydERvbWFpblJlbGF0aW9uc2hpcChXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQmLCB1bnNpZ25l
ZCBkb21haW5JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluKTsKQEAg
LTEyNiw2ICsxMjcsNyBAQCBwcml2YXRlOgogICAgICAgICBib29sIGdyYW5kZmF0aGVyZWQ7CiAg
ICAgfTsKICAgICBWZWN0b3I8UHJldmFsZW50RG9tYWluRGF0YT4gcHJldmFsZW50RG9tYWlucygp
IGNvbnN0OworICAgIGJvb2wgaGFzSGFkVW5leHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9uKGNv
bnN0IFByZXZhbGVudERvbWFpbkRhdGEmLCBPcGVyYXRpbmdEYXRlc1dpbmRvdyk7CiAgICAgVmVj
dG9yPHVuc2lnbmVkPiBmaW5kRXhwaXJlZFVzZXJJbnRlcmFjdGlvbnMoKSBjb25zdDsKICAgICB2
b2lkIGNsZWFyRXhwaXJlZFVzZXJJbnRlcmFjdGlvbnMoKTsKICAgICB2b2lkIGNsZWFyR3JhbmRm
YXRoZXJpbmcoVmVjdG9yPHVuc2lnbmVkPiYmKTsKQEAgLTE1OCwxMyArMTYwLDE0IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBwcnVuZVN0YXRpc3RpY3NJZk5lZWRlZCgpIG92ZXJyaWRlOwogICAgIGVu
dW0gY2xhc3MgQWRkZWRSZWNvcmQgeyBObywgWWVzIH07CiAgICAgc3RkOjpwYWlyPEFkZGVkUmVj
b3JkLCB1bnNpZ25lZD4gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21h
aW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mKTsKLSAgICBib29sIHNob3VsZFJlbW92ZUFsbFdl
YnNpdGVEYXRhRm9yKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmLCBib29sIHNob3VsZENoZWNr
Rm9yR3JhbmRmYXRoZXJpbmcpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkUmVtb3ZlQWxsV2Vic2l0
ZURhdGFGb3IoY29uc3QgUHJldmFsZW50RG9tYWluRGF0YSYsIGJvb2wgc2hvdWxkQ2hlY2tGb3JH
cmFuZGZhdGhlcmluZyk7CiAgICAgYm9vbCBzaG91bGRSZW1vdmVBbGxCdXRDb29raWVzRm9yKGNv
bnN0IFByZXZhbGVudERvbWFpbkRhdGEmLCBib29sIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJp
bmcpIGNvbnN0OwogICAgIFZlY3RvcjxzdGQ6OnBhaXI8UmVnaXN0cmFibGVEb21haW4sIFdlYnNp
dGVEYXRhVG9SZW1vdmU+PiByZWdpc3RyYWJsZURvbWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9y
KCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0RhdGFiYXNlU3RvcmUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiB0cnVlOyB9CiAKICAgICBib29sIGNyZWF0ZVNjaGVtYSgpOwogICAgIGJvb2wgcHJlcGFy
ZVN0YXRlbWVudHMoKTsKKyAgICBib29sIGZpbmFsaXplU3RhdGVtZW50cygpOwogICAgIAogICAg
IGNvbnN0IFN0cmluZyBtX3N0b3JhZ2VEaXJlY3RvcnlQYXRoOwogICAgIG11dGFibGUgV2ViQ29y
ZTo6U1FMaXRlRGF0YWJhc2UgbV9kYXRhYmFzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXggZjAwMWU5ZGNkYWJkZTlkMjgxZmZiNTU1ZDcz
YzEyN2U3YWM5MTA2OS4uOGJhOWQ1ODZkNDAwYWEwNzQ4NGY3OWU5ZDIxZmVhYTMzMTZjYjdmNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAg
LTE1NCwxMSArMTU0LDIzIEBAIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6V2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKE5ldHdvcmtTZXNzaW9uJiBuCiAgICAgOiBtX25ldHdv
cmtTZXNzaW9uKG1ha2VXZWFrUHRyKG5ldHdvcmtTZXNzaW9uKSkKICAgICAsIG1fc3RhdGlzdGlj
c1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUg
UHJvY2VzcyBEYXRhIFF1ZXVlIiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6
UU9TOjpVdGlsaXR5KSkKICAgICAsIG1fZGFpbHlUYXNrc1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwg
dGhpcywgJldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cGVyZm9ybURhaWx5VGFza3Mp
Cit7CisgICAgaW5pdGlhbGl6ZVN0YXRpc3RpY3NTdG9yZShSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLmlzSVRQRGF0YWJhc2VFbmFibGVkKCksIHJlc291cmNlTG9hZFN0
YXRpc3RpY3NEaXJlY3RvcnkuaXNvbGF0ZWRDb3B5KCksIHNob3VsZEluY2x1ZGVMb2NhbGhvc3Qp
OworfQorCitXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6On5XZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUoKQogewogICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKLSAgICAKLSAgICBwb3N0VGFzayhbdGhpcywgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVj
dG9yeSA9IHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkuaXNvbGF0ZWRDb3B5KCksIHNo
b3VsZEluY2x1ZGVMb2NhbGhvc3RdIHsKLSAgICAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYXJlZEZlYXR1cmVzKCkuaXNJVFBEYXRhYmFzZUVuYWJsZWQoKSkgeworICAgIFJFTEVB
U0VfQVNTRVJUKCFtX3N0YXRpc3RpY3NTdG9yZSk7CisgICAgUkVMRUFTRV9BU1NFUlQoIW1fcGVy
c2lzdGVudFN0b3JhZ2UpOworfQorCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6aW5pdGlhbGl6ZVN0YXRpc3RpY3NTdG9yZShib29sIGRhdGFiYXNlRW5hYmxlZCwgY29uc3Qg
U3RyaW5nJiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBTaG91bGRJbmNsdWRlTG9j
YWxob3N0IHNob3VsZEluY2x1ZGVMb2NhbGhvc3QpCit7CisgICAgUkVMRUFTRV9BU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOworCisgICAgcG9zdFRhc2soW3RoaXMsIGRhdGFiYXNlRW5hYmxlZCA9
IGRhdGFiYXNlRW5hYmxlZCwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9IHJlc291
cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIHNob3VsZEluY2x1ZGVMb2NhbGhvc3RdIHsKKyAg
ICAgICAgaWYgKGRhdGFiYXNlRW5hYmxlZCkgewogICAgICAgICAgICAgbV9zdGF0aXN0aWNzU3Rv
cmUgPSBtYWtlVW5pcXVlPFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlPigqdGhp
cywgbV9zdGF0aXN0aWNzUXVldWUsIHNob3VsZEluY2x1ZGVMb2NhbGhvc3QsIHJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEaXJlY3RvcnkpOwogCiAgICAgICAgICAgICBhdXRvIG1lbW9yeVN0b3JlID0g
bWFrZVVuaXF1ZTxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU+KCp0aGlzLCBtX3N0
YXRpc3RpY3NRdWV1ZSwgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCk7CkBAIC0xNzcsMTMgKzE4OSw2
IEBAIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6V2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlKE5ldHdvcmtTZXNzaW9uJiBuCiAgICAgbV9kYWlseVRhc2tzVGltZXIuc3RhcnRS
ZXBlYXRpbmcoMjRfaCk7CiB9CiAKLVdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6fldl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSgpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOwotICAgIFJFTEVBU0VfQVNTRVJUKCFtX3N0YXRpc3RpY3NTdG9yZSk7
Ci0gICAgUkVMRUFTRV9BU1NFUlQoIW1fcGVyc2lzdGVudFN0b3JhZ2UpOwotfQotCiB2b2lkIFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6ZGlkRGVzdHJveU5ldHdvcmtTZXNzaW9uKCkK
IHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IDExMDNiZjIwMmYwZTNlYTFiYjBiZjY1NGRi
ZDUwMmJkY2ZlZGVlNzUuLmI1ZWJlYmI2OGNlZWM4YTBkYzg3YzhhYjc0MmFlMDg1YTlhNTg4OWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTEz
MCw2ICsxMzAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRWZXJ5UHJldmFsZW50UmVzb3Vy
Y2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OworICAgIHZvaWQgc2V0VXNlSVRQRGF0YWJhc2UoYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJik7CiAgICAgdm9pZCBpc1ByZXZhbGVudFJlc291
cmNlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJik7CiAgICAgdm9pZCBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwpAQCAtMTg4LDYgKzE4
OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZl
Y3RvcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiYmKTsKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdl
QWNjZXNzVW5kZXJPcGVuZXIoRG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzJiYsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyIG9wZW5lcklELCBPcGVuZXJEb21haW4mJik7CiAKKyAgICB2b2lkIGlu
aXRpYWxpemVTdGF0aXN0aWNzU3RvcmUoYm9vbCwgY29uc3QgU3RyaW5nJiByZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGlyZWN0b3J5LCBTaG91bGRJbmNsdWRlTG9jYWxob3N0KTsKIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKE5ldHdvcmtTZXNzaW9u
JiwgY29uc3QgU3RyaW5nJiwgU2hvdWxkSW5jbHVkZUxvY2FsaG9zdCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMmEzNjY2YjNl
OTJmNTJmZjQ2MGQxMTFiNzUyZTJlNDRhYThhZjYwYy4uNjM5YTE0MzE2MmM5MjUzOGU5NTc4OTM0
YzNhZmNmZDQ4MDk5OGU2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTY5Nyw2ICs2OTcsMTggQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
czo6c2V0R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lz
dHJhYmwKICAgICB9CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFVzZUlUUERhdGFiYXNl
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBwYXRoLCBib29sIHZhbHVl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAg
aWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklE
KSkgeworICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG5ldHdvcmtT
ZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCisgICAgICAgICAgICByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzLT5pbml0aWFsaXplU3RhdGlzdGljc1N0b3JlKHZhbHVlLCBwYXRoLCBTaG91
bGRJbmNsdWRlTG9jYWxob3N0OjpZZXMpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOworICAgIH0KK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UHJl
dmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgZG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nl
c3Npb24oc2Vzc2lvbklEKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oCmluZGV4IDdmNGI1ZDJlNmVjOGU0YmNiNDcxZWNlZWQ1OTIyNGVlOTBjY2U2
NjEuLjA2NzIzMjU3ZTg3NjllYjk4YTJhNGU2N2U1NjAwZGFkOTU1MzYyZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTIyMiw2ICsyMjIs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBpc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIGlzUmVnaXN0ZXJlZEFz
U3VicmVzb3VyY2VVbmRlcihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3ViUmVzb3VyY2VEb21haW4m
LCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OwogICAgIHZvaWQgc2V0R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKKyAgICB2b2lkIHNldFVzZUlUUERhdGFiYXNlKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBTdHJpbmcmIHBhdGgsIGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBzZXRNYXhTdGF0aXN0aWNzRW50cmllcyhQQUw6OlNlc3Npb25JRCwgdWludDY0
X3QgbWF4aW11bUVudHJ5Q291bnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0UHJl
dmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmlu
ZGV4IGNhNjRmNTkzNzFhZjAxNDYxMDIxOWIwZTk1ZDc4ODNlM2RiZjJkZGEuLjlhN2FiOWJkMGU4
Yjk0ZTFhM2QyZDY3MjIzN2QxMTY5NTFiOTFlMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTE1LDYg
KzExNSw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAg
ICBTdWJtaXRUZWxlbWV0cnkoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwog
ICAgIFNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzKSAtPiAoKSBBc3luYwogICAgIFNldEdyYW5kZmF0
aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biByZXNvdXJjZURvbWFpbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQpIC0+ICgpIEFzeW5jCisgICAg
U2V0VXNlSVRQRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgcGF0aCwg
Ym9vbCB2YWx1ZSkgLT4gKCkgQXN5bmMKICAgICBTZXRHcmFuZGZhdGhlcmluZ1RpbWUoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCiAgICAgU2V0
TWF4U3RhdGlzdGljc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBt
YXhpbXVtRW50cnlDb3VudCkgLT4gKCkgQXN5bmMKICAgICBTZXRNaW5pbXVtVGltZUJldHdlZW5E
YXRhUmVjb3Jkc1JlbW92YWwoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTZWNvbmRzIHNlY29u
ZHMpIC0+ICgpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAppbmRleCBjOTkwNDE2MmZjZGE2MTFhMzM2OTMx
ZWY1YjEyMWJhMDAwMzQxOWY0Li5iMjJhOGI1MzMyODE5NTZkNGZiOGNkZTNlOWFlM2M2MDExZWQz
YmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVE
YXRhU3RvcmVSZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vi
c2l0ZURhdGFTdG9yZVJlZi5jcHAKQEAgLTI1Niw2ICsyNTYsMTMgQEAgdm9pZCBXS1dlYnNpdGVE
YXRhU3RvcmVJc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBk
YXRhU3RvcmUKICNlbmRpZgogfQogCit2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFVzZUlUUERh
dGFiYXNlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIHBh
dGgsIGJvb2wgdmFsdWUpCit7CisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2V0
VXNlSVRQRGF0YWJhc2UoV2ViS2l0Ojp0b0ltcGwocGF0aCktPnN0cmluZygpLCB2YWx1ZSwgW10g
eyB9KTsKKyNlbmRpZgorfQorCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NT
dWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9y
ZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0KQogewogI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oCmluZGV4IDdkZWM5MmEy
YjE3YzZlZGM3OTM5MDNjZDgzYTg4Y2YxNzVkYzNiYWQuLjMyMGUzNTA0Mjk0MmEwMDNhYTY3Nzk4
YzZjZGZiZDUzNWIyNzYyNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oCkBAIC02Nyw2ICs2Nyw3IEBAIFdLX0VYUE9S
VCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bihXS1dlYnNpdGVEYXRhCiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0
aXN0aWNzR3JhbmRmYXRoZXJlZChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBX
S1N0cmluZ1JlZiBob3N0LCBib29sIHZhbHVlKTsKIHR5cGVkZWYgdm9pZCAoKldLV2Vic2l0ZURh
dGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWRGdW5jdGlvbikoYm9vbCBpc0dyYW5kZmF0
aGVyZWQsIHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVE
YXRhU3RvcmVJc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBk
YXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURh
dGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWRGdW5jdGlvbiBjYWxsYmFjayk7CitXS19F
WFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRVc2VJVFBEYXRhYmFzZShXS1dlYnNpdGVE
YXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBwYXRoLCBib29sIHZhbHVlKTsK
IFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTdWJmcmFtZVVu
ZGVyVG9wRnJhbWVPcmlnaW4oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tT
dHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0KTsKIFdLX0VYUE9SVCB2b2lk
IFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVP
cmlnaW4oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9z
dCwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0KTsKIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURh
dGFTdG9yZVNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oV0tXZWJzaXRl
RGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYg
aG9zdFJlZGlyZWN0ZWRUbyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBmNzllMTRjNTEzMTdjOTkwNWJi
YWE0MTFmNDAyYTRkZDlkMjg0YWU3Li45YzIwZTc4Y2Y3YTY2NGEzZjJiOGRhYjg0MWVkNGQyYTk4
N2VjZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTc4Miw2ICs3ODIsMTUgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgUmVnaXMKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzOjpTZXRHcmFuZGZhdGhlcmVkKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4sIGlzR3JhbmRm
YXRoZXJlZCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpzZXRVc2VJVFBEYXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFN0cmluZyYgcGF0aCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghY2FuU2VuZE1lc3NhZ2UoKSkgewor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFVzZUlUUERh
dGFiYXNlKHNlc3Npb25JRCwgcGF0aCwgdmFsdWUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7Cit9CisKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3ND
b25maXJtKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHRvcEZyYW1lRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQ
cm94eTo6d2ViUGFnZUZyb21Db3JlUGFnZUlkZW50aWZpZXIocGFnZUlEKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5k
ZXggMjlkMDUwNDEwMmM5YzNjOTA4N2I1N2RjOTNiZGNiZDlmOGQ2ZTRkNy4uZmJhZTdhMzQ3YmRh
ZWJmMDk3NzA5OGI5YzQ5ZTk1YmUxMzMyNjA3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTExNiw2ICsxMTYs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyhQQUw6
OlNlc3Npb25JRCwgT3B0aW9uYWw8U2Vjb25kcz4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCBzZXRDYWNoZU1heEFnZUNhcChQQUw6OlNlc3Npb25JRCwgU2Vjb25kcywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldEdyYW5kZmF0aGVyZWQo
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgYm9vbCBpc0dyYW5kZmF0
aGVyZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRVc2VJVFBE
YXRhYmFzZShQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBwYXRoLCBib29sIHZhbHVlLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Tm90aWZ5UGFnZXNXaGVu
RGF0YVJlY29yZHNXZXJlU2Nhbm5lZChQQUw6OlNlc3Npb25JRCwgYm9vbCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldElzUnVubmluZ1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NUZXN0KFBBTDo6U2Vzc2lvbklELCBib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogICAgIHZvaWQgc2V0Tm90aWZ5UGFnZXNXaGVuVGVsZW1ldHJ5V2FzQ2FwdHVyZWQoUEFM
OjpTZXNzaW9uSUQsIGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuY3BwCmluZGV4IDk1YWVkZmUxNDM3OGU2YTU4NDI0ZTc1ZTViM2RlNWE4ZGY4ZWNiNmYuLjhi
YmYxNzZhNjZlODdlZTg0YTVhY2NiYWM1YWE4Y2JiZjdjZjU3ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3Bw
CkBAIC0xNjQxLDYgKzE2NDEsMTggQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRHcmFuZGZh
dGhlcmVkKGNvbnN0IFVSTCYgdXJsLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgQ28KICAgICB9CiB9
CiAKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0VXNlSVRQRGF0YWJhc2UoY29uc3QgU3RyaW5n
JiBwYXRoLCBib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGF1dG8g
Y2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOworCisgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IHByb2Nl
c3NQb29scygpKSB7CisgICAgICAgIGlmIChhdXRvKiBwcm9jZXNzID0gcHJvY2Vzc1Bvb2wtPm5l
dHdvcmtQcm9jZXNzKCkpCisgICAgICAgICAgICBwcm9jZXNzLT5zZXRVc2VJVFBEYXRhYmFzZSht
X3Nlc3Npb25JRCwgcGF0aCwgdmFsdWUsIFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0Fn
Z3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOworICAgIH0KK30KKwogdm9pZCBXZWJzaXRlRGF0YVN0
b3JlOjpzZXRDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhjb25zdCBV
UkwmIGZyb21VUkwsIGNvbnN0IFVSTCYgdG9VUkwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5oCmluZGV4IGY1MmZhZGVlOGM4NmJjMWFmYzVkNzE4OGNlYWEyNTFkYWRhOWRjNjMu
LjcyNjNlY2I1MThlYjBlYzU0NzE4YWY1ZTY1ODNiMjE5ODBiNjE3ZWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgK
QEAgLTE1NCw2ICsxNTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY2hlZHVsZVN0YXRpc3RpY3NB
bmREYXRhUmVjb3Jkc1Byb2Nlc3NpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAg
ICB2b2lkIHN1Ym1pdFRlbGVtZXRyeSgpOwogICAgIHZvaWQgc2V0R3JhbmRmYXRoZXJlZChjb25z
dCBVUkwmLCBib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0
VXNlSVRQRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBwYXRoLCBib29sLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0R3JhbmRmYXRoZXJpbmdUaW1lKFNlY29uZHMsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBV
UkwmLCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0
Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChib29sLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGY5NTI2NjAwN2IxZWM5MjIwMzg2MTRhYWU0NDMyNzE4NTNiNzFkMzAuLjg5
MzcyYTU0OTAzYzljM2ZjMjMyMTNhY2UzMjVkZGFjMDZlYjkzODAgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxOS0w
OS0wOSAgS2F0aGVyaW5lIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisg
ICAgICAgIEVuYWJsZSBMYXlvdXRUZXN0cyB1c2luZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFNR
TGl0ZSBiYWNrZW5kICgxOTU0MjApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTU0MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjEzNTUxPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGlu
IGxvZ2ljIHRvIHNlbmQgYSBtZXNzYWdlIGZyb20gdGhlIFVJUHJvY2VzcyB0byB0aGUgTmV0d29y
aworICAgICAgICBQcm9jZXNzIHdoaWNoIHdpbGwgaW5pdGFsaXplIHRoZSBJVFAgRGF0YWJhc2Ug
YmFja2VuZCB0byBhbGxvdyBmb3IKKyAgICAgICAgbGF5b3V0IHRlc3RpbmcuCisKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRs
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldFVzZUlUUERhdGFiYXNlKToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OnNldFVzZUlUUERhdGFiYXNlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0
SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZl
U3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAxOS0wOS0wMyAgWmFu
IERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV0gTWluaUJy
b3dzZXIgc2hvdWxkIGhhbmRsZSB0aGUgV2ViS2l0V2ViVmlldzo6Y3JlYXRlIHNpZ25hbApkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggMDc1MDk2Mjg5NjdmZmZjZjIzMzJiZGVlYzMzNGYy
ZGY1OTFkNDdhMi4uYjUxNDBjZGI3NTQyY2UwNjVjNTgxNGM0OTA2NDM1NmMxM2NjMmEyMiAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0zMDcsNiArMzA3LDcgQEAgaW50ZXJmYWNlIFRl
c3RSdW5uZXIgewogICAgIGJvb2xlYW4gaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KERPTVN0cmluZyBob3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJl
ZChET01TdHJpbmcgaG9zdE5hbWUsIGJvb2xlYW4gdmFsdWUpOwogICAgIGJvb2xlYW4gaXNTdGF0
aXN0aWNzR3JhbmRmYXRoZXJlZChET01TdHJpbmcgaG9zdE5hbWUpOworICAgIHZvaWQgc2V0VXNl
SVRQRGF0YWJhc2UoYm9vbGVhbiB2YWx1ZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3ViZnJh
bWVVbmRlclRvcEZyYW1lT3JpZ2luKERPTVN0cmluZyBob3N0TmFtZSwgRE9NU3RyaW5nIHRvcEZy
YW1lSG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BG
cmFtZU9yaWdpbihET01TdHJpbmcgaG9zdE5hbWUsIERPTVN0cmluZyB0b3BGcmFtZUhvc3ROYW1l
KTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oRE9N
U3RyaW5nIGhvc3ROYW1lLCBET01TdHJpbmcgaG9zdE5hbWVSZWRpcmVjdGVkVG8pOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAK
aW5kZXggZjY2YzJhYzMyYWUyODU0OGY0ZmM0YTM2OWI0NWE4MjE5YjBlNmY2Yi4uZTk3ZjQ2NjVh
ZGRiN2ZkOGY5YmUwMmJhZjc2N2Y3ODVjMGRhNzZlNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xNjgyLDcgKzE2
ODIsMTUgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChKU1N0
cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSkKICAgICAKICAgICBXS0J1bmRsZVBvc3RTeW5j
aHJvbm91c01lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmJ1bmRsZSgpLCBtZXNz
YWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCksIG51bGxwdHIpOwogfQorCit2b2lkIFRl
c3RSdW5uZXI6OnNldFVzZUlUUERhdGFiYXNlKGJvb2wgdmFsdWUpCit7CisgICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiU2V0VXNlSVRQRGF0YWJhc2UiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tCb29s
ZWFuUmVmPiBtZXNzYWdlQm9keSA9IGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKHZhbHVlKSk7CiAg
ICAgCisgICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpz
aW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgp
LCBudWxscHRyKTsKK30KKwogYm9vbCBUZXN0UnVubmVyOjppc1N0YXRpc3RpY3NHcmFuZGZhdGhl
cmVkKEpTU3RyaW5nUmVmIGhvc3ROYW1lKQogewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVm
PiBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIklz
U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDE0NmU5MWY0Nzg1YmZkMDdiNjYx
MDM3M2JhMDdiNzg5MmQ3ZGFmNmIuLjNhOWQ0MDE4ZjYzMWU4NjExMDVmMGNhYTJiMGY2ZWVkNjIx
N2MzNTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5oCkBAIC00MDksNiArNDA5LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKEpTU3RyaW5nUmVmIGhvc3ROYW1lKTsKICAgICB2
b2lkIHNldFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBib29s
IHZhbHVlKTsKICAgICBib29sIGlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoSlNTdHJpbmdSZWYg
aG9zdE5hbWUpOworICAgIHZvaWQgc2V0VXNlSVRQRGF0YWJhc2UoYm9vbCB2YWx1ZSk7CiAgICAg
dm9pZCBzZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKEpTU3RyaW5nUmVm
IGhvc3ROYW1lLCBKU1N0cmluZ1JlZiB0b3BGcmFtZUhvc3ROYW1lKTsKICAgICB2b2lkIHNldFN0
YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oSlNTdHJpbmdSZWYgaG9zdE5h
bWUsIEpTU3RyaW5nUmVmIHRvcEZyYW1lSG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGlj
c1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhKU1N0cmluZ1JlZiBob3N0TmFtZSwgSlNTdHJp
bmdSZWYgaG9zdE5hbWVSZWRpcmVjdGVkVG8pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcAppbmRleCBmYjRiZDQ3ODNjMGIyOWM1NTQ1ZTA5YTU4MTVjZTdmN2Y3OWIx
ZWI3Li5lMjVhMWY5MzcyYWZiNTUwMDVhN2I1ZjA5ZWMzZDEwMDhmYWMxNTgwIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMzM0Myw2ICszMzQzLDEyIEBA
IGJvb2wgVGVzdENvbnRyb2xsZXI6OmlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tTdHJpbmdS
ZWYgaG9zdCkKICAgICByZXR1cm4gY29udGV4dC5yZXN1bHQ7CiB9CiAKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OnNldFVzZUlUUERhdGFiYXNlKGJvb2wgdmFsdWUpCit7CisgICAgYXV0byogZGF0YVN0
b3JlID0gV0tDb250ZXh0R2V0V2Vic2l0ZURhdGFTdG9yZShwbGF0Zm9ybUNvbnRleHQoKSk7Cisg
ICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0VXNlSVRQRGF0YWJhc2UoZGF0YVN0b3JlLCB0b1dLKFN0
cmluZzo6ZnJvbVVURjgoZ2V0ZW52KCJEVU1QUkVOREVSVFJFRV9URU1QIikpICsgcGF0aFNlcGFy
YXRvciArICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIikuZ2V0KCksIHZhbHVlKTsKK30KKwogdm9p
ZCBUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdp
bihXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3QpCiB7CiAgICAgYXV0
byogZGF0YVN0b3JlID0gV0tDb250ZXh0R2V0V2Vic2l0ZURhdGFTdG9yZShwbGF0Zm9ybUNvbnRl
eHQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggZTU2OWM3
MjFlYTg0MzNiOWEyOTYyODM0YjllMjRkZjk0YTJjMmNlYS4uY2NhNGZhYWQzNmU2Zjc2ODYyMzJk
NDM4ZmUyZGE1NTMzNzkzZjdkNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaApAQCAtMjE5LDYgKzIxOSw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzU3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbihXS1N0cmluZ1JlZiBob3N0TmFtZSk7CiAgICAgdm9pZCBzZXRT
dGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1N0cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSk7
CiAgICAgYm9vbCBpc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLU3RyaW5nUmVmIGhvc3ROYW1l
KTsKKyAgICB2b2lkIHNldFVzZUlUUERhdGFiYXNlKGJvb2wgdmFsdWUpOwogICAgIHZvaWQgc2V0
U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihXS1N0cmluZ1JlZiBob3N0TmFt
ZSwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNz
U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKFdLU3RyaW5nUmVmIGhvc3ROYW1lLCBXS1N0
cmluZ1JlZiB0b3BGcmFtZUhvc3ROYW1lKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NTdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0VG8oV0tTdHJpbmdSZWYgaG9zdE5hbWUsIFdLU3RyaW5nUmVmIGhv
c3ROYW1lUmVkaXJlY3RlZFRvKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlv
bi5jcHAKaW5kZXggOWY4N2RiMmYyMWMwYWMxMWE3ZTkxYWQxY2MzMjFmNmJkOGMwZGQ3Yi4uZGJm
YzRlZDlmMmE1NDA1NDAxZTM4NGY2YTFjZjQ0MzRjNjBlZWZjZCAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTEyMzEsNiArMTIzMSwxNCBAQCBXS1JldGFp
blB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNz
YWdlRnJvbUluamVjdGVkQgogICAgICAgICBXS1JldGFpblB0cjxXS1R5cGVSZWY+IHJlc3VsdCA9
IGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKGlzR3JhbmRmYXRoZXJlZCkpOwogICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgIH0KKworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5n
KG1lc3NhZ2VOYW1lLCAiU2V0VXNlSVRQRGF0YWJhc2UiKSkgeworICAgICAgICBBU1NFUlQoV0tH
ZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsKKworICAgICAg
ICBXS0Jvb2xlYW5SZWYgdmFsdWUgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KG1lc3NhZ2VC
b2R5KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFVzZUlUUERhdGFi
YXNlKFdLQm9vbGVhbkdldFZhbHVlKHZhbHVlKSk7CisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIH0KICAgICAKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdl
TmFtZSwgIlNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4iKSkgewogICAg
ICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLRGljdGlvbmFyeUdldFR5
cGVJRCgpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA0OGE0NTU1ZjE3MDdkYWM0OTc0MGMwMDQ2OTNhYzhmYThlZTFmMmNi
Li4xNmVkMzdlYWVlNDIxZDYwZDMyODAyODA0MjY3N2RhYTg5ZmQ4YWYyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQ2IEBACisyMDE5LTA5LTA5ICBLYXRoZXJpbmUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5l
eUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIExheW91dFRlc3RzIHVzaW5nIFJlc291cmNl
TG9hZFN0YXRpc3RpY3MgU1FMaXRlIGJhY2tlbmQgKDE5NTQyMCkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTQyMAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTQyMTM1NTE+CisKKyAgICAgICAgUmV2aWVhZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkZWQgYSBmbGFnIHRvIGFsbCBJVFAgdGVzdHMgdG8gZW5hYmxlIHRoZSBJVFAg
ZGF0YWJhc2UgYmFja2VuZCB0bworICAgICAgICBhbGxvdyBmb3IgdGVzdGluZyBmdW5jdGlvbmFs
aXR5IGFnYWluc3QgdGhlIG1lbW9yeSBzdG9yZS4gVGVzdHMgd2VyZQorICAgICAgICBub3QgY3Jl
YXRlZCBmb3IgdGVsZW1ldHJ5LWdlbmVyYXRpb24uaHRtbCwKKyAgICAgICAgbG9nLWNyb3NzLXNp
dGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sLAorICAgICAgICB3ZWJzaXRlLWRhdGEt
cmVtb3ZhbC1mb3Itc2l0ZS1uYXZpZ2F0ZWQtdG8td2l0aC1saW5rLWRlY29yYXRpb24uaHRtbCwK
KyAgICAgICAgb3IgZG8tbm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxlLXRvcC1uYXZp
Z2F0aW9ucy5odG1sIGJlY2F1c2UKKyAgICAgICAgdGhlc2UgcmVseSBvbiBmdW5jdGlvbnMgbm90
IHlldCBpbXBsZW1lbnRlZCBpbiB0aGUgSVRQIGRhdGFiYXNlLgorCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRh
YmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Jsb2NraW5n
LWluLXdlYi13b3JrZXItc2NyaXB0LWltcG9ydC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1p
bi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZv
ci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1hZ2Ut
Zm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2ll
LXNldC1pbi1qcy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQt
bGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1z
aXRlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1s
aW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nh
cHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJv
bS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2ll
LXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJl
c291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1p
bi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNl
LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5r
LXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1s
aWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxl
bnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1q
cy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1s
aW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3Mt
ZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVu
ZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1w
cmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFi
YXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVy
LXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2
YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJh
c2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVl
LXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50
LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFi
YXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1m
cmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNl
ZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0
YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNl
LXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJl
dmFsZW50LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3Vy
Y2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRh
dGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVl
LXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRp
cmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10
b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRh
dGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1y
ZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12
ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0
YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFzZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFy
LWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2Uu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJh
c2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUtY29va2llcy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxl
dGUtc2NyaXB0LWFjY2Vzc2libGUtY29va2llcy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1s
ZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10
b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9j
a2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5n
LWluLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlv
bi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1u
b3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRl
cmFjdGlvbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRo
LWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93
bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2
YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13
aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNv
dXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3Vy
Y2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxl
bnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFs
ZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29v
a2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24t
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2Uu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhv
c3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxo
b3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlm
cmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10
by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgt
bm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFi
YXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJh
bWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRi
b3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8t
bG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1p
ZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1p
cC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXBy
ZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZhbGVudC1yZXNv
dXJjZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9w
cmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJl
dmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVz
b3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1y
ZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJj
ZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxl
bnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZh
bGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1
bmUtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1p
cC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8t
bG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9j
YWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZy
YW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRv
LWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94
ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2Nh
bGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1k
YXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVk
LW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3Qt
dG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlm
cmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxv
Y2FsaG9zdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4tZGVidWct
bW9kZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1k
ZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVu
dC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXIt
dG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
dHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0
cy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVu
dC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdh
dGlvbi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0
Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRh
dGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRh
dGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQt
cGVyaW9kLW9mLXRpbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJl
cG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWlu
dGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92
YWwtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisKIDIwMTktMDktMDMgIFJvYiBCdWlzICA8cmJ1aXNA
aWdhbGlhLmNvbT4KIAogICAgICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgbG9hZC9lcnJvciBvbiBs
aW5rPXByZWZldGNoCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQt
YmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFm
ZWY5Y2QyNmU4NjFiMGZkYjE0ZjVkYzBiMGExNjAwZjRlOGRhZDQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJsb2Nr
aW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYzIEBACitU
ZXN0cyB0aGF0IGJsb2NraW5nIGlzIGFkZGVkIG1pZC1mbGlnaHQgaW4gcmVkaXJlY3RzLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUx
LS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK1JlY2Vp
dmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29v
a2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29r
aWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1l
Mi0tPicKKy0tLS0tLS0tCitSZWRpcmVjdCBjYXNlIDEsIHNob3VsZCByZWNlaXZlIGZpcnN0LXBh
cnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitE
aWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitDbGllbnQt
c2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUKKworLS0tLS0tLS0K
K0ZyYW1lOiAnPCEtLWZyYW1lMy0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBubyBjb29r
aWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitE
aWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitDbGllbnQt
c2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTQtLT4n
CistLS0tLS0tLQorUmVkaXJlY3QgY2FzZSAyLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWUuCitE
aWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3Qg
cmVjZWl2ZSBjb29raWUgbmFtZWQgJ3BhcnRpdGlvbmVkQ29va2llJy4KK0NsaWVudC1zaWRlIGRv
Y3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNS0tPicKKy0tLS0t
LS0tCitUcnkgdG8gc2V0IHRoaXJkLXBhcnR5IGNvb2tpZSBpbiBibG9ja2VkIG1vZGUuCisKKwor
LS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNi0tPicKKy0tLS0tLS0tCitBZnRlciBhdHRlbXB0
ZWQgY29va2llIGNyZWF0aW9uLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWUuCitEaWQgbm90IHJl
Y2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBj
b29raWUgbmFtZWQgJ3BhcnRpdGlvbmVkQ29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNv
b2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNy0tPicKKy0tLS0tLS0tCitSZWRp
cmVjdCBjYXNlIDMsIGFmdGVyIGF0dGVtcHRlZCBjb29raWUgY3JlYXRpb24sIHNob3VsZCByZWNl
aXZlIG5vIGNvb2tpZS4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlD
b29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9uZWRDb29raWUn
LgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVj
dC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjAxZDYzYTUxNjg3OGEwODM4ZDI5OGU3NjNlMDNkMmViODQ2YTA5OWQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJs
b2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMDQgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0i
VVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBi
bG9ja2luZyBpcyBhZGRlZCBtaWQtZmxpZ2h0IGluIHJlZGlyZWN0cy4iKTsKKyAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgw
MDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
IjsKKyAgICBjb25zdCByZXNvdXJjZVBhdGggPSAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVz
b3VyY2VzIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4g
KyByZXNvdXJjZVBhdGg7CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgPSAiZmlyc3RQ
YXJ0eUNvb2tpZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSA9ICIv
c2V0LWNvb2tpZS5waHA/bmFtZT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZh
bHVlIjsKKyAgICBjb25zdCBwYXJ0aXRpb25lZENvb2tpZU5hbWUgPSAicGFydGl0aW9uZWRDb29r
aWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldFBhcnRpdGlvbmVkQ29va2llID0gIi9zZXQtY29v
a2llLnBocD9uYW1lPSIgKyBwYXJ0aXRpb25lZENvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsK
KyAgICBjb25zdCByZXR1cm5VcmwgPSAiaHR0cDovLyIgKyBwYXJ0aXRpb25Ib3N0ICsgIi9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC5odG1sIjsKKyAgICBj
b25zdCBzdWJQYXRoVG9HZXRDb29raWVzID0gIi9nZXQtY29va2llcy5waHA/bmFtZTE9IiArIGZp
cnN0UGFydHlDb29raWVOYW1lICsgIiZuYW1lMj0iICsgcGFydGl0aW9uZWRDb29raWVOYW1lOwor
ICAgIGNvbnN0IHJlZGlyZWN0Q2hhaW5VcmwgPSAiaHR0cDovLyIgKyBwYXJ0aXRpb25Ib3N0ICsg
cmVzb3VyY2VQYXRoICsgIi9yZWRpcmVjdC5waHA/cmVkaXJlY3RUbz0iICsgdGhpcmRQYXJ0eUJh
c2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzOworCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1
cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAg
ICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25M
b2FkSGFuZGxlcjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGVsZW1lbnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3
aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAiI3N0ZXAx
IjoKKyAgICAgICAgICAgICAgICAvLyBTZXQgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhv
c3QuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlC
YXNlVXJsICsgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIHJldHVyblVybCAr
ICIjc3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0
ZXAyIjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBjb29raWUgZ2V0cyBzZW50
IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCBpcyBub3QgcHJl
dmFsZW50LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMi
OworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRo
VG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tp
ZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
IiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVw
NCI7CisgICAgICAgICAgICAgICAgLy8gTG9hZCBhbiBpZnJhbWUgaW4gYSByZWRpcmVjdCBjaGFp
biB0aGF0IHN0YXJ0cyB3aXRoIDEyNy4wLjAuMSBhbmQgZW5kcyB3aXRoIGxvY2FsaG9zdC4gRXhw
ZWN0IGEgY29va2llIGZvciBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAgb3BlbklmcmFtZShy
ZWRpcmVjdENoYWluVXJsICsgIiZtZXNzYWdlPVJlZGlyZWN0IGNhc2UgMSwgc2hvdWxkIHJlY2Vp
dmUgZmlyc3QtcGFydHkgY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICAvLyBTZXQgbG9j
YWxob3N0IGFzIHByZXZhbGVudCB0byBwdXQgaXQgaW4gdGhlIGJsb2NraW5nIGNhdGVnb3J5Lgor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJk
UGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAo
IXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdp
bikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0
IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0
ZXA1IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IG5vIGNvb2tpZSBnZXRzIHNlbnQg
Zm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEgc2luY2UgbG9jYWxob3N0J3MgY29va2llcyBh
cmUgYmxvY2tlZC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0
ZXA2IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3Vi
UGF0aFRvR2V0Q29va2llcyArICAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4i
LCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNz
dGVwNiI6CisgICAgICAgICAgICAgICAgLy8gTG9hZCBhbiBpZnJhbWUgaW4gYSByZWRpcmVjdCBj
aGFpbiB0aGF0IHN0YXJ0cyB3aXRoIDEyNy4wLjAuMSBhbmQgZW5kcyB3aXRoIGxvY2FsaG9zdC4g
RXhwZWN0IG5vIGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggPSAic3RlcDciOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUocmVk
aXJlY3RDaGFpblVybCArICImbWVzc2FnZT1SZWRpcmVjdCBjYXNlIDIsIHNob3VsZCByZWNlaXZl
IG5vIGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgIiNzdGVwNyI6CisgICAgICAgICAgICAgICAgLy8gVHJ5IHRvIHNldCBjb29raWUg
Zm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
bG9jYXRpb24uaGFzaCA9ICJzdGVwOCI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGly
ZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldFBhcnRpdGlvbmVkQ29va2llICsgIiZtZXNzYWdl
PVRyeSB0byBzZXQgdGhpcmQtcGFydHkgY29va2llIGluIGJsb2NrZWQgbW9kZS4iLCBydW5UZXN0
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwOCI6Cisg
ICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBubyBjb29raWUgZ2V0cyBzZW50IGZvciBsb2Nh
bGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCdzIGNvb2tpZXMgYXJlIGJsb2Nr
ZWQuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwOSI7Cisg
ICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dl
dENvb2tpZXMgKyAgIiZtZXNzYWdlPUFmdGVyIGF0dGVtcHRlZCBjb29raWUgY3JlYXRpb24sIHNo
b3VsZCByZWNlaXZlIG5vIGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwOSI6CisgICAgICAgICAgICAgICAgLy8gTG9hZCBh
biBpZnJhbWUgaW4gYSByZWRpcmVjdCBjaGFpbiB0aGF0IHN0YXJ0cyB3aXRoIDEyNy4wLjAuMSBh
bmQgZW5kcyB3aXRoIGxvY2FsaG9zdC4gRXhwZWN0IG5vIGNvb2tpZSBmb3IgbG9jYWxob3N0Lgor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEwIjsKKyAgICAg
ICAgICAgICAgICBvcGVuSWZyYW1lKHJlZGlyZWN0Q2hhaW5VcmwgKyAiJm1lc3NhZ2U9UmVkaXJl
Y3QgY2FzZSAzLCBhZnRlciBhdHRlbXB0ZWQgY29va2llIGNyZWF0aW9uLCBzaG91bGQgcmVjZWl2
ZSBubyBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlICIjc3RlcDEwIjoKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg
ICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiKSB7CisgICAgICAg
IHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCBy
ZXNvdXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9u
Lmhhc2ggPSAic3RlcDEiOworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAg
ICB9IGVsc2UgeworICAgICAgICBydW5UZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjljYjc5OTQzZWQ4YjQ5YTg0MWJkMTI5YjNmNWFjYTZlMmEzYjIx
YmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0IGZvciBjb29raWUgYmxvY2tpbmcg
d2hlbiB3ZWIgd29ya2VycyBpbXBvcnQgY3Jvc3Mtc2l0ZSBzY3JpcHRzLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBEaWQgcmVjZWl2ZSBmaXJzdFBhcnR5Q29va2llID09
IHZhbHVlCitQQVNTIERpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgZmlyc3RQYXJ0eUNvb2tp
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKwor
LS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2
ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlD
b29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZh
bHVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmct
aW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmNj
M2M3YTI5MjJkZTdjYjI0NzZmY2QwMTQwMWU3OTlkODRkMDBlYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1p
bi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDg4IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxzY3JpcHQg
c3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgY29va2llIGJsb2NraW5nIHdoZW4gd2Vi
IHdvcmtlcnMgaW1wb3J0IGNyb3NzLXNpdGUgc2NyaXB0cy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKworICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOwor
ICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAg
ICBjb25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyAiL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFt
ZSA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5
Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSAr
ICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHJldHVyblVybCA9ICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNjcmlw
dC1pbXBvcnQuaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0LWNv
b2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZTsKKworICAgIGZ1bmN0aW9u
IG9wZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMg
PSB1cmw7CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVtZW50
Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAgICBsZXQgcmVjZWl2ZWRNZXNzYWdl
cyA9IDA7CisgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgaWYg
KGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7CisKKyAg
ICAgICAgKytyZWNlaXZlZE1lc3NhZ2VzOworICAgICAgICBpZiAocmVjZWl2ZWRNZXNzYWdlcyA+
PSAyKQorICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgcnVuVGVzdCgpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkg
eworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5s
b2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5
Q29va2llICsgIiMiICsgcmV0dXJuVXJsICsgIiNzdGVwMiI7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhp
cmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCBy
ZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgbGV0IHcxID0gbmV3
IFdvcmtlcigicmVzb3VyY2VzL3dvcmtlci1pbXBvcnRpbmctbG9jYWxob3N0LXNjcmlwdC5qcyIp
OworICAgICAgICAgICAgICAgIHcxLm9ubWVzc2FnZSA9IHJlY2VpdmVNZXNzYWdlOworICAgICAg
ICAgICAgICAgIHcxLnBvc3RNZXNzYWdlKCJzaG91bGRSZWNlaXZlQ29va2llcz10cnVlIik7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlP
cmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA1IjoK
KyAgICAgICAgICAgICAgICBsZXQgdzIgPSBuZXcgV29ya2VyKCJyZXNvdXJjZXMvd29ya2VyLWlt
cG9ydGluZy1sb2NhbGhvc3Qtc2NyaXB0LmpzIik7CisgICAgICAgICAgICAgICAgdzIub25tZXNz
YWdlID0gcmVjZWl2ZU1lc3NhZ2U7CisgICAgICAgICAgICAgICAgdzIucG9zdE1lc3NhZ2UoInNo
b3VsZE5vdFJlY2VpdmVDb29raWVzIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gcGFydGl0aW9u
SG9zdCAmJiBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIiAmJiB3aW5kb3cudGVzdFJ1bm5l
ciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0
YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2lu
KSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2FzIGNsYXNzaWZpZWQg
YXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydHMuIik7CisgICAgICAg
ICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRl
c3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4
LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFn
ZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wY2NlNWFhMWMzNmE5NGQ1NTBiZGUyMjlhZGU0NDZmZjgzNTVjMWNiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1j
YWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3RzIHRoYXQgY2FjaGUgbWF4LWFnZSBpcyBjYXBwZWQgZm9y
IHByZXZhbGVudCByZXNvdXJjZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIGxvYWRlZFVybCBpcyAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPTEyMzQiCitQQVNTIGxvYWRlZFVy
bCBpcyAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3Vy
Y2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPTQzMjEiCitQQVNTIGxvYWRlZFVybCBpcyAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVl
cnkucGhwP3ZhbHVlPSIKK1BBU1MgbG9hZGVkVXJsIGlzICJodHRwOi8vbG9jYWxob3N0OjgwMDAv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9Igor
UEFTUyBsb2FkZWRVcmwgaXMgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3Jlc291cmNlcy9lY2hvLXF1ZXJ5LnBocD92YWx1ZT0iCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZv
ci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1mb3ItcHJldmFsZW50
LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjY0YTQ1MThhODMzOTQ2MDkwNzMz
MzczZjFmNjAyMTYzYWFiOTMyYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1mb3ItcHJldmFs
ZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMTMgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+CisgICAgPHRpdGxlPlRlc3RzIGZvciBDYXBwZWQgQ2FjaGUgTWF4LUFnZTwv
dGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3Rz
IHRoYXQgY2FjaGUgbWF4LWFnZSBpcyBjYXBwZWQgZm9yIHByZXZhbGVudCByZXNvdXJjZXMuIik7
CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICB2YXIgbG9hZGVkVXJsOworICAgIGZ1
bmN0aW9uIGZpcnN0RmV0Y2goKSB7CisgICAgICAgIC8vIFRoaXMgc2hvdWxkIGNyZWF0ZSBhIGNh
cHBlZCBjYWNoZSBlbnRyeS4KKyAgICAgICAgZmV0Y2goImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9jYWNoZWQtcGVybWFuZW50LXJlZGlyZWN0
LnBocCIsCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY2FjaGU6ICJyZWxvYWQiLAor
ICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgIlgtV2ViS2l0
IjogIjEyMzQiLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgKS50
aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBsb2FkZWRVcmwgPSByZXNwb25z
ZS51cmw7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxvYWRlZFVybCIsICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNo
by1xdWVyeS5waHA/dmFsdWU9MTIzNCIpOworICAgICAgICAgICAgc2Vjb25kRmV0Y2goKTsKKyAg
ICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
ZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5p
c2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZWNvbmRGZXRj
aCgpIHsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgbm90IHRyaWdnZXIgYSBzdWNjZXNzZnVsIGNh
Y2hlIGhpdCBhbmQgaW5zdGVhZCBjcmVhdGUgYW5vdGhlciBjYXBwZWQgY2FjaGUgZW50cnkuCisg
ICAgICAgIGZldGNoKCJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9yZXNvdXJjZXMvY2FjaGVkLXBlcm1hbmVudC1yZWRpcmVjdC5waHAiLAorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIGNhY2hlOiAiZm9yY2UtY2FjaGUiLAorICAgICAgICAgICAgICAg
IGhlYWRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgIlgtV2ViS2l0IjogIjQzMjEiLAorICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgKS50aGVuKGZ1bmN0aW9uKHJl
c3BvbnNlKSB7CisgICAgICAgICAgICBsb2FkZWRVcmwgPSByZXNwb25zZS51cmw7CisgICAgICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxvYWRlZFVybCIsICJodHRwOi8vbG9jYWxob3N0
OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFs
dWU9NDMyMSIpOworICAgICAgICAgICAgdGhpcmRGZXRjaCgpOworICAgICAgICB9KS5jYXRjaChm
dW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAgdGVzdEZhaWxlZChlcnJvci5tZXNzYWdlKTsK
KyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRoaXJkRmV0Y2goKSB7CisgICAgICAgIC8v
IFRoaXMgc2hvdWxkIG5vdCB0cmlnZ2VyIGEgc3VjY2Vzc2Z1bCBjYWNoZSBoaXQgYW5kIGluc3Rl
YWQgY3JlYXRlIGFub3RoZXIgY2FwcGVkIGNhY2hlIGVudHJ5LgorICAgICAgICBmZXRjaCgiaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2NhY2hl
ZC1wZXJtYW5lbnQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBjYWNoZTogImZvcmNlLWNhY2hlIiwKKyAgICAgICAgICAgIH0KKyAgICAgICAgKS50aGVuKGZ1
bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBsb2FkZWRVcmwgPSByZXNwb25zZS51cmw7
CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxvYWRlZFVybCIsICJodHRwOi8v
bG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVy
eS5waHA/dmFsdWU9Iik7CisgICAgICAgICAgICBmb3VydGhGZXRjaCgpOworICAgICAgICB9KS5j
YXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAgdGVzdEZhaWxlZChlcnJvci5tZXNz
YWdlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGZvdXJ0aEZldGNoKCkgeworICAg
ICAgICAvLyBUaGlzIHNob3VsZCBub3QgdHJpZ2dlciBhIHN1Y2Nlc3NmdWwgY2FjaGUgaGl0IGJ1
dCBjbGVhciBjYXBwaW5nLgorICAgICAgICBmZXRjaCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2NhY2hlZC1wZXJtYW5lbnQtcmVkaXJlY3Qu
cGhwIiwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjYWNoZTogImZvcmNlLWNhY2hl
IiwKKyAgICAgICAgICAgIH0KKyAgICAgICAgKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7Cisg
ICAgICAgICAgICBsb2FkZWRVcmwgPSByZXNwb25zZS51cmw7CisgICAgICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImxvYWRlZFVybCIsICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9Iik7CisgICAg
ICAgICAgICBmaWZ0aEZldGNoKCk7CisgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7
CisgICAgICAgICAgICB0ZXN0RmFpbGVkKGVycm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gZmlmdGhGZXRjaCgpIHsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgdHJp
Z2dlciBhIHJlZ3VsYXIsIHN1Y2Nlc3NmdWwgY2FjaGUgaGl0LgorICAgICAgICBmZXRjaCgiaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2NhY2hl
ZC1wZXJtYW5lbnQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBoZWFkZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICJYLVdlYktpdCI6ICIxMjM0IiwKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICkudGhlbihmdW5jdGlvbihy
ZXNwb25zZSkgeworICAgICAgICAgICAgbG9hZGVkVXJsID0gcmVzcG9uc2UudXJsOworICAgICAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsb2FkZWRVcmwiLCAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3Zh
bHVlPSIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKKyAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIHRlc3RG
YWlsZWQoZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9CisgICAgdGVzdFJ1bm5lci5zZXRV
c2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0
IHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3Rh
cnRlZC4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NDYWNoZU1heEFnZUNh
cCgwKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
Imh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKGZpcnN0RmV0Y2gpOworICAgICAg
ICB9KTsKKyAgICB9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZv
ci1jb29raWUtc2V0LWluLWpzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ODQ2
MjBkNmQzMzEyMTE2NDUxYThhNTljODRiZTYxNzY0YzQ2ZTMxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMSBAQAorQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCB3aXRoIG1h
eC1hZ2Ugb3IgZXhwaXJ5IGxvbmdlciB0aGFuIGEgd2VlayBnZXQgY2FwcGVkIHRvIGEgd2Vlay4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHR3byBzaG9ydC1saXZl
ZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gMTcyODMwIHNlY29uZHMuCitQ
QVNTIFRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRo
YW4gNjA0ODMwIHNlY29uZHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRh
YmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmUyZmZkMDQxYWUzMmRlMjg2MDNiODE5MTAzMGNlOGEzMDVkMjYyNmIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLWRhdGFiYXNlLmh0bWwKQEAgLTAs
MCArMSw4MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQg
c3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBj
b29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCB3aXRoIG1heC1hZ2Ugb3IgZXhwaXJ5IGxvbmdl
ciB0aGFuIGEgd2VlayBnZXQgY2FwcGVkIHRvIGEgd2Vlay4iKTsKKyAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKyAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworCisgICAg
aWYgKGludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NFbmFibGVkKHRydWUpOworCisgICAgbGV0IHBhc3NlZFRlc3RzID0gMDsKKyAgICBmdW5jdGlv
biBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llRGF0YSwgbWF4QWdlSW5T
ZWNvbmRzKSB7CisgICAgICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpOworICAgICAgICBsZXQgbWF4
RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93LmdldFRpbWUoKSArIChtYXhBZ2VJblNlY29u
ZHMgKiAxMDAwKTsKKworICAgICAgICBpZiAobWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID4g
Y29va2llRGF0YVsiZXhwaXJlcyJdKQorICAgICAgICAgICAgKytwYXNzZWRUZXN0czsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5hbWVkICIgKyBjb29raWVE
YXRhWyJuYW1lIl0gKyAiIGV4cGlyZXMgaW4gbW9yZSB0aGFuICIgKyBtYXhBZ2VJblNlY29uZHMg
KyAiIHNlY29uZHMuIik7CisgICAgfQorCisgICAgY29uc3QgdHdvRGF5c0luU2Vjb25kcyA9IDIg
KiAyNCAqIDYwICogNjA7CisgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFt
ZSA6ICJzaG9ydExpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdv
RGF5c0luU2Vjb25kcyArICI7IiB9OworICAgIGRvY3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRD
b29raWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENvb2tpZU1heEFnZS5s
aWZldGltZSArICIgcGF0aD0vIjsKKworICAgIGNvbnN0IHR3b0RheXNBc0V4cGlyZXNEYXRlID0g
Y3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3b0RheXNJblNlY29uZHMpOworICAgIGNvbnN0
IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogInNob3J0TGl2ZWRDb29raWVFeHBp
cmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAiOyIg
fTsKKyAgICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5uYW1lICsg
Ij1mb29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0v
IjsKKworICAgIGNvbnN0IG9uZVdlZWtJblNlY29uZHMgPSA3ICogMjQgKiA2MCAqIDYwOworICAg
IGNvbnN0IHR3b1dlZWtzSW5TZWNvbmRzID0gMiAqIG9uZVdlZWtJblNlY29uZHM7CisgICAgY29u
c3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZU1heEFn
ZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b1dlZWtzSW5TZWNvbmRzICsgIjsiIH07Cisg
ICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2Jh
cjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAg
IGNvbnN0IHR3b1dlZWtzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFn
ZSh0d29XZWVrc0luU2Vjb25kcyk7CisgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llRXhwaXJlcyA9
IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0i
ICsgdHdvV2Vla3NBc0V4cGlyZXNEYXRlICsgIjsiIH07CisgICAgZG9jdW1lbnQuY29va2llID0g
bG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29r
aWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgY29uc3Qgb3ZlclR3b0RheXNJ
blNlY29uZHMgPSB0d29EYXlzSW5TZWNvbmRzICsgMzA7CisgICAgY29uc3Qgb3Zlck9uZVdlZWtJ
blNlY29uZHMgPSBvbmVXZWVrSW5TZWNvbmRzICsgMzA7CisgICAgaWYgKGludGVybmFscykgewor
ICAgICAgICBsZXQgY29va2llcyA9IGludGVybmFscy5nZXRDb29raWVzKCk7CisgICAgICAgIGlm
ICghY29va2llcy5sZW5ndGgpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBjb29raWVzIGZv
dW5kLiIpOworICAgICAgICBmb3IgKGxldCBjb29raWUgb2YgY29va2llcykgeworICAgICAgICAg
ICAgc3dpdGNoIChjb29raWUubmFtZSkgeworICAgICAgICAgICAgICAgIGNhc2Ugc2hvcnRMaXZl
ZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVE
b2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdvRGF5c0luU2Vjb25kcyk7CisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tp
ZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05v
dEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3b0RheXNJblNlY29uZHMpOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZU1heEFn
ZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJl
QWZ0ZXIoY29va2llLCBvdmVyT25lV2Vla0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1l
OgorICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIo
Y29va2llLCBvdmVyT25lV2Vla0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmVzZXRDb29raWVzRm9yQ3Vy
cmVudE9yaWdpbigpOworCisgICAgICAgIGlmIChwYXNzZWRUZXN0cyA9PT0gNCkgeworICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBzaG9ydC1saXZlZCBjb29raWVzIGRvbid0IGV4cGly
ZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJUd29EYXlzSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIp
OworICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9u
J3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3Zlck9uZVdlZWtJblNlY29uZHMgKyAiIHNl
Y29uZHMuIik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiQXQgbGVh
c3Qgb25lIGNvb2tpZSdzIGV4cGlyeSBhdHRyaWJ1dGUgd2FzIGJleW9uZCB0aGUgdGVzdCB0aHJl
c2hvbGRzLiIpOworICAgIH0gZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMg
b2JqZWN0LiIpOworCisgICAgaWYgKGludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJl
c291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKworICAgIGZpbmlzaEpTVGVzdCgp
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9u
LXNhbWUtc2l0ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ5NTQ1YTAzNGQz
YWYyNTkwYzk5MzM3ZDIzMDVhOWJlZmRiYTQxMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9y
LWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRl
ZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgc2FtZS1zaXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIGRl
Y29yYXRpb24gZG9uJ3QgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZXhwaXJlIGFm
dGVyIG1vcmUgdGhhbiA4NjQzMCBzZWNvbmRzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQt
aW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNlLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1l
LWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRh
YmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkMDk5OTFiM2ZhOGFjZDQ4MTk5YTg1MzIzNGQyNWFiMjg5
MTVkYzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgt
bGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsODYgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvY29v
a2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlv
bigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBhZnRlciBhIHNhbWUt
c2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBkZWNvcmF0aW9uIGRvbid0IGdldCBjYXBwZWQgdG8g
MjQgaG91cnMuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBmdW5jdGlvbiB0
ZXN0Q29va2llcygpIHsKKyAgICAgICAgbGV0IHBhc3NlZFRlc3RzID0gMDsKKworICAgICAgICBm
dW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzRXhwaXJlQWZ0ZXIoY29va2llRGF0YSwgbWF4QWdl
SW5TZWNvbmRzKSB7CisgICAgICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKKyAgICAgICAg
ICAgIGxldCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPSBub3cuZ2V0VGltZSgpICsgKG1h
eEFnZUluU2Vjb25kcyAqIDEwMDApOworCisgICAgICAgICAgICBpZiAobWF4RXhwaXJ5RGF0ZUlu
TWlsbGlzZWNvbmRzIDwgY29va2llRGF0YVsiZXhwaXJlcyJdKQorICAgICAgICAgICAgICAgICsr
cGFzc2VkVGVzdHM7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiQ29va2llIG5hbWVkICIgKyBjb29raWVEYXRhWyJuYW1lIl0gKyAiIGV4cGlyZXMgaW4gbGVz
cyB0aGFuICIgKyBtYXhBZ2VJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgIH0KKwor
ICAgICAgICBjb25zdCBvbmVEYXlJblNlY29uZHMgPSAyNCAqIDYwICogNjA7CisgICAgICAgIGNv
bnN0IHR3b0RheXNJblNlY29uZHMgPSAyICogb25lRGF5SW5TZWNvbmRzOworICAgICAgICBjb25z
dCBsb25nTGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llTWF4QWdl
IiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdvRGF5c0luU2Vjb25kcyArICI7IiB9OworICAg
ICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVNYXhBZ2UubmFtZSArICI9Zm9v
YmFyOyAiICsgbG9uZ0xpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisg
ICAgICAgIGNvbnN0IHR3b0RheXNBc0V4cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9t
TWF4QWdlKHR3b0RheXNJblNlY29uZHMpOworICAgICAgICBjb25zdCBsb25nTGl2ZWRDb29raWVF
eHBpcmVzID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZUV4cGlyZXMiLCBsaWZldGltZSA6ICJF
eHBpcmVzPSIgKyB0d29EYXlzQXNFeHBpcmVzRGF0ZSArICI7IiB9OworICAgICAgICBkb2N1bWVu
dC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxv
bmdMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29u
c3Qgb3Zlck9uZURheUluU2Vjb25kcyA9IG9uZURheUluU2Vjb25kcyArIDMwOworICAgICAgICBp
ZiAoaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBsZXQgY29va2llcyA9IGludGVybmFscy5nZXRD
b29raWVzKCk7CisgICAgICAgICAgICBpZiAoIWNvb2tpZXMubGVuZ3RoKQorICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIk5vIGNvb2tpZXMgZm91bmQuIik7CisgICAgICAgICAgICBmb3IgKGxl
dCBjb29raWUgb2YgY29va2llcykgeworICAgICAgICAgICAgICAgIHN3aXRjaCAoY29va2llLm5h
bWUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29raWVNYXhBZ2UubmFt
ZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNFeHBpcmVBZnRl
cihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5u
YW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc0V4cGlyZUFm
dGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IHJlc2V0Q29va2llc0ZvckN1cnJlbnRPcmlnaW4oKTsKKworICAgICAgICAgICAgaWYgKHBhc3Nl
ZFRlc3RzID09PSAyKSB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBsb25n
LWxpdmVkIGNvb2tpZXMgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3Zlck9uZURheUluU2Vj
b25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkF0IGxlYXN0IG9uZSBjb29raWUncyBleHBpcnkgYXR0cmlidXRlIHdhcyBi
ZWxvdyB0aGUgdGVzdCB0aHJlc2hvbGRzLiIpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoIk5vIGludGVybmFscyBvYmplY3QuIik7CisKKyAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBuYXZp
Z2F0ZUNyb3NzT3JpZ2luKCkgeworICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gcHJl
dmFsZW50UmVzb3VyY2VPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxp
ZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0
ZS5odG1sP2xpbms9ZGVjb3JhdGlvbiNmcmFnbWVudCI7CisgICAgfQorCisgICAgY29uc3QgZGVz
dGluYXRpb25PcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCBwcmV2
YWxlbnRSZXNvdXJjZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09
IHByZXZhbGVudFJlc291cmNlT3JpZ2luICYmIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggIT09ICIj
ZnJhZ21lbnQiKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRy
dWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
cHJldmFsZW50UmVzb3VyY2VPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJl
dmFsZW50UmVzb3VyY2VPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhu
YXZpZ2F0ZUNyb3NzT3JpZ2luKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0Q29va2llcygpOworICAgICAg
ICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1l
LWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1y
ZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdiYWQwMzJjNmYyMjQ1NzNhMzM1ZDNmNzA0MTlkY2I0YmU0
M2ExNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1s
aW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDExIEBACitDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2Ny
aXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBmcmFnbWVudCBnZXQg
Y2FwcGVkIHRvIDI0IGhvdXJzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhh
biA0MzIzMCBzZWNvbmRzLgorUEFTUyBUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBl
eHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDg2NDMwIHNlY29uZHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29v
a2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2Ut
ZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdt
ZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWM4
NGZiODk0Zjk5YjMyN2MxNzczZTIwMDdkYzEwZDkxYzJhODc5OQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlm
ZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFs
ZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMDEgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvY29va2llcy9yZXNvdXJj
ZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91
dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhh
dCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdh
dGlvbiB3aXRoIGxpbmsgZnJhZ21lbnQgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4iKTsKKyAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0aW9uIHRlc3RDb29raWVzKCkgeworICAg
ICAgICBsZXQgcGFzc2VkVGVzdHMgPSAwOworICAgICAgICBmdW5jdGlvbiBjaGVja1RoYXRDb29r
aWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llRGF0YSwgbWF4QWdlSW5TZWNvbmRzKSB7CisgICAg
ICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKKyAgICAgICAgICAgIGxldCBtYXhFeHBpcnlE
YXRlSW5NaWxsaXNlY29uZHMgPSBub3cuZ2V0VGltZSgpICsgKG1heEFnZUluU2Vjb25kcyAqIDEw
MDApOworCisgICAgICAgICAgICBpZiAobWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID4gY29v
a2llRGF0YVsiZXhwaXJlcyJdKQorICAgICAgICAgICAgICAgICsrcGFzc2VkVGVzdHM7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5hbWVkICIg
KyBjb29raWVEYXRhWyJuYW1lIl0gKyAiIGV4cGlyZXMgaW4gbW9yZSB0aGFuICIgKyBtYXhBZ2VJ
blNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCB0d2Vs
dmVIb3Vyc0luU2Vjb25kcyA9IDEyICogNjAgKiA2MDsKKyAgICAgICAgY29uc3Qgc2hvcnRMaXZl
ZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJzaG9ydExpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRp
bWUgOiAiTWF4LUFnZT0iICsgdHdlbHZlSG91cnNJblNlY29uZHMgKyAiOyIgfTsKKyAgICAgICAg
ZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7
ICIgKyBzaG9ydExpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAg
ICAgIGNvbnN0IHR3ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJv
bU1heEFnZSh0d2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgIGNvbnN0IHNob3J0TGl2ZWRD
b29raWVFeHBpcmVzID0geyBuYW1lIDogInNob3J0TGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRp
bWUgOiAiRXhwaXJlcz0iICsgdHdlbHZlSG91cnNBc0V4cGlyZXNEYXRlICsgIjsiIH07CisgICAg
ICAgIGRvY3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAiPWZv
b2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOwor
CisgICAgICAgIGNvbnN0IG9uZURheUluU2Vjb25kcyA9IDIgKiB0d2VsdmVIb3Vyc0luU2Vjb25k
czsKKyAgICAgICAgY29uc3QgdHdvRGF5c0luU2Vjb25kcyA9IDIgKiBvbmVEYXlJblNlY29uZHM7
CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJsb25nTGl2
ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d29EYXlzSW5TZWNvbmRz
ICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZU1heEFn
ZS5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAi
IHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdvRGF5c0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVF
eHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdvRGF5c0luU2Vjb25kcyk7CisgICAgICAgIGNvbnN0IGxv
bmdMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llRXhwaXJlcyIs
IGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3b0RheXNBc0V4cGlyZXNEYXRlICsgIjsiIH07Cisg
ICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZSArICI9
Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0vIjsK
KworICAgICAgICBjb25zdCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMgPSB0d2VsdmVIb3Vyc0lu
U2Vjb25kcyArIDMwOworICAgICAgICBjb25zdCBvdmVyT25lRGF5SW5TZWNvbmRzID0gb25lRGF5
SW5TZWNvbmRzICsgMzA7CisgICAgICAgIGlmIChpbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGxl
dCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKTsKKyAgICAgICAgICAgIGlmICghY29v
a2llcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gY29va2llcyBmb3Vu
ZC4iKTsKKyAgICAgICAgICAgIGZvciAobGV0IGNvb2tpZSBvZiBjb29raWVzKSB7CisgICAgICAg
ICAgICAgICAgc3dpdGNoIChjb29raWUubmFtZSkgeworICAgICAgICAgICAgICAgICAgICBjYXNl
IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNo
ZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJUd2VsdmVIb3Vyc0lu
U2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgY2FzZSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAg
ICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3
ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAg
ICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tp
ZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIo
Y29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVz
ZXRDb29raWVzRm9yQ3VycmVudE9yaWdpbigpOworCisgICAgICAgICAgICBpZiAocGFzc2VkVGVz
dHMgPT09IDQpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIHNob3J0LWxp
dmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3ZlclR3ZWx2ZUhv
dXJzSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQo
IlRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4g
IiArIG92ZXJPbmVEYXlJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhw
aXJ5IGF0dHJpYnV0ZSB3YXMgYmV5b25kIHRoZSB0ZXN0IHRocmVzaG9sZHMuIik7CisgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gaW50ZXJuYWxzIG9iamVjdC4iKTsK
KworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIG5hdmlnYXRlQ3Jvc3NPcmlnaW4oKSB7CisgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbk9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdt
ZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWwjbGluaz1mcmFnbWVudCI7CisgICAgfQor
CisgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsK
KyAgICBjb25zdCBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5sb2Nh
dGlvbi5vcmlnaW4gPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luKSB7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4sIHRy
dWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4pKQorICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMg
cHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhuYXZpZ2F0ZUNyb3NzT3JpZ2luKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgfSk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICB0ZXN0Q29va2llcygpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgt
bGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnkt
YW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42ZTk4ZGM4ZjkwZTJkYTFiMTk4M2I0OGRjMTg2ZWFkN2E2OTY1ZDdhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVl
cnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDExIEBACitDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZh
U2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBxdWVyeSBhbmQg
ZnJhZ21lbnQgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgVGhlIHR3byBzaG9ydC1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBh
ZnRlciBtb3JlIHRoYW4gNDMyMzAgc2Vjb25kcy4KK1BBU1MgVGhlIHR3byBsb25nLWxpdmVkIGNv
b2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA4NjQzMCBzZWNvbmRzLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlm
ZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWFuZC1mcmFnbWVudC1m
cm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNl
dC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291
cmNlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzU5MWViNGU5NThmYjFiNTBkYjdmODIyYTIw
MGVjY2M2NzM4MjQxNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4t
anMtd2l0aC1saW5rLXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1k
YXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTAxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2Nvb2tpZXMvcmVzb3VyY2VzL2Nvb2tpZS11dGls
aXRpZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1blRlc3QoKScs
IDApIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkNoZWNrIHRoYXQgY29va2llcyBjcmVh
dGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aCBsaW5r
IHF1ZXJ5IGFuZCBmcmFnbWVudCBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLiIpOworICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rpb24gdGVzdENvb2tpZXMoKSB7CisgICAgICAg
IGxldCBwYXNzZWRUZXN0cyA9IDA7CisgICAgICAgIGZ1bmN0aW9uIGNoZWNrVGhhdENvb2tpZURv
ZXNOb3RFeHBpcmVBZnRlcihjb29raWVEYXRhLCBtYXhBZ2VJblNlY29uZHMpIHsKKyAgICAgICAg
ICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpOworICAgICAgICAgICAgbGV0IG1heEV4cGlyeURhdGVJ
bk1pbGxpc2Vjb25kcyA9IG5vdy5nZXRUaW1lKCkgKyAobWF4QWdlSW5TZWNvbmRzICogMTAwMCk7
CisKKyAgICAgICAgICAgIGlmIChtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPiBjb29raWVE
YXRhWyJleHBpcmVzIl0pCisgICAgICAgICAgICAgICAgKytwYXNzZWRUZXN0czsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgbmFtZWQgIiArIGNv
b2tpZURhdGFbIm5hbWUiXSArICIgZXhwaXJlcyBpbiBtb3JlIHRoYW4gIiArIG1heEFnZUluU2Vj
b25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IHR3ZWx2ZUhv
dXJzSW5TZWNvbmRzID0gMTIgKiA2MCAqIDYwOworICAgICAgICBjb25zdCBzaG9ydExpdmVkQ29v
a2llTWF4QWdlID0geyBuYW1lIDogInNob3J0TGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6
ICJNYXgtQWdlPSIgKyB0d2VsdmVIb3Vyc0luU2Vjb25kcyArICI7IiB9OworICAgICAgICBkb2N1
bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiAr
IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAg
Y29uc3QgdHdlbHZlSG91cnNBc0V4cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4
QWdlKHR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tp
ZUV4cGlyZXMgPSB7IG5hbWUgOiAic2hvcnRMaXZlZENvb2tpZUV4cGlyZXMiLCBsaWZldGltZSA6
ICJFeHBpcmVzPSIgKyB0d2VsdmVIb3Vyc0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAg
ZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFy
OyAiICsgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAg
ICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0gMiAqIHR3ZWx2ZUhvdXJzSW5TZWNvbmRzOwor
ICAgICAgICBjb25zdCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIG9uZURheUluU2Vjb25kczsKKyAg
ICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogImxvbmdMaXZlZENv
b2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b0RheXNJblNlY29uZHMgKyAi
OyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5h
bWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0
aD0vIjsKKworICAgICAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGly
ZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3QgbG9uZ0xp
dmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlm
ZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAg
ICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29i
YXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisg
ICAgICAgIGNvbnN0IG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyA9IHR3ZWx2ZUhvdXJzSW5TZWNv
bmRzICsgMzA7CisgICAgICAgIGNvbnN0IG92ZXJPbmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNl
Y29uZHMgKyAzMDsKKyAgICAgICAgaWYgKGludGVybmFscykgeworICAgICAgICAgICAgbGV0IGNv
b2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICAgICAgaWYgKCFjb29raWVz
Lmxlbmd0aCkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIp
OworICAgICAgICAgICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAg
ICAgICBzd2l0Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2Ugc2hv
cnRMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tU
aGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNv
bmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg
ICBjYXNlIHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAg
ICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdlbHZl
SG91cnNJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAg
ICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBv
dmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29r
aWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXNldENv
b2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAgICAgIGlmIChwYXNzZWRUZXN0cyA9
PT0gNCkgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gc2hvcnQtbGl2ZWQg
Y29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBvdmVyVHdlbHZlSG91cnNJ
blNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhl
IHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsg
b3Zlck9uZURheUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkF0IGxlYXN0IG9uZSBjb29raWUncyBleHBpcnkg
YXR0cmlidXRlIHdhcyBiZXlvbmQgdGhlIHRlc3QgdGhyZXNob2xkcy4iKTsKKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOworCisg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5k
LWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWw/bGluaz1xdWVyeSNsaW5rPWZy
YWdtZW50IjsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5hdGlvbk9yaWdpbiA9ICJodHRwOi8v
bG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHByZXZhbGVudFJlc291cmNlT3JpZ2luID0gImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAg
aWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4p
IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAg
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRS
ZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlm
ICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNv
dXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRp
ZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKG5hdmlnYXRlQ3Jv
c3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RDb29raWVzKCk7CisgICAgICAgIH0KKyAgICB9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tp
ZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1
ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kNDVkZDE2YzJlZTAxMDgwZTNjMWYxYjQwMjA2YjY2YTgwMmUwYWMxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nh
cHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1w
cmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAK
K0NoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1z
aXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIHF1ZXJ5IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSB0d28gc2hvcnQtbGl2ZWQg
Y29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDQzMjMwIHNlY29uZHMuCitQQVNT
IFRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4g
ODY0MzAgc2Vjb25kcy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGlu
ay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3It
Y29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2Ut
ZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODI2MjNkMWZjMzdmYzg2YjQzODdlNGFjYWVjMGUy
NDg2YWU4MzM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13
aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApAQCAt
MCwwICsxLDEwMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKSI+Cis8c2NyaXB0Pgor
ICAgIGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0
IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBxdWVyeSBnZXQgY2FwcGVk
IHRvIDI0IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rp
b24gdGVzdENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7CisgICAgICAg
IGZ1bmN0aW9uIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWVEYXRhLCBt
YXhBZ2VJblNlY29uZHMpIHsKKyAgICAgICAgICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpOworICAg
ICAgICAgICAgbGV0IG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA9IG5vdy5nZXRUaW1lKCkg
KyAobWF4QWdlSW5TZWNvbmRzICogMTAwMCk7CisKKyAgICAgICAgICAgIGlmIChtYXhFeHBpcnlE
YXRlSW5NaWxsaXNlY29uZHMgPiBjb29raWVEYXRhWyJleHBpcmVzIl0pCisgICAgICAgICAgICAg
ICAgKytwYXNzZWRUZXN0czsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJDb29raWUgbmFtZWQgIiArIGNvb2tpZURhdGFbIm5hbWUiXSArICIgZXhwaXJlcyBp
biBtb3JlIHRoYW4gIiArIG1heEFnZUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAg
fQorCisgICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzID0gMTIgKiA2MCAqIDYwOwor
ICAgICAgICBjb25zdCBzaG9ydExpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogInNob3J0TGl2
ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d2VsdmVIb3Vyc0luU2Vj
b25kcyArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29va2ll
TWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubGlmZXRp
bWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdlbHZlSG91cnNBc0V4cGlyZXNEYXRl
ID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAg
ICAgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAic2hvcnRMaXZl
ZENvb2tpZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d2VsdmVIb3Vyc0FzRXhw
aXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENv
b2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMu
bGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0g
MiAqIHR3ZWx2ZUhvdXJzSW5TZWNvbmRzOworICAgICAgICBjb25zdCB0d29EYXlzSW5TZWNvbmRz
ID0gMiAqIG9uZURheUluU2Vjb25kczsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4
QWdlID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1B
Z2U9IiArIHR3b0RheXNJblNlY29uZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2ll
ID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENv
b2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCB0d29EYXlz
QXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNv
bmRzKTsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJs
b25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0Fz
RXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVk
Q29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVz
LmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG92ZXJUd2VsdmVIb3Vyc0lu
U2Vjb25kcyA9IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgMzA7CisgICAgICAgIGNvbnN0IG92ZXJP
bmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMgKyAzMDsKKyAgICAgICAgaWYgKGludGVy
bmFscykgeworICAgICAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygp
OworICAgICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAgICAgICAgZm9yIChsZXQgY29va2ll
IG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvb2tpZS5uYW1lKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAg
ICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNv
b2tpZSwgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRDb29raWVFeHBpcmVz
Lm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhw
aXJlQWZ0ZXIoY29va2llLCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29v
a2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVE
b2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZl
ZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENv
b2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAg
ICAgICAgICAgIGlmIChwYXNzZWRUZXN0cyA9PT0gNCkgeworICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIlRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9y
ZSB0aGFuICIgKyBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAg
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9uJ3Qg
ZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3Zlck9uZURheUluU2Vjb25kcyArICIgc2Vjb25k
cy4iKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkF0
IGxlYXN0IG9uZSBjb29raWUncyBleHBpcnkgYXR0cmlidXRlIHdhcyBiZXlvbmQgdGhlIHRlc3Qg
dGhyZXNob2xkcy4iKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJO
byBpbnRlcm5hbHMgb2JqZWN0LiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2Us
IGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdp
bigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2lu
ICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNl
dC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbD9saW5r
PXF1ZXJ5IjsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5hdGlvbk9yaWdpbiA9ICJodHRwOi8v
bG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHByZXZhbGVudFJlc291cmNlT3JpZ2luID0gImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAg
aWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4p
IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAg
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRS
ZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlm
ICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNv
dXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRp
ZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKG5hdmlnYXRlQ3Jv
c3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RDb29raWVzKCk7CisgICAgICAgIH0KKyAgICB9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tp
ZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3Vy
Y2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRo
b3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JmNjQ5YTU3ZTEzNjRjMDYwNjQ1Njk0MTMwNDU0MTEzNzQ1
ODMwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91
dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0NoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEph
dmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aG91dCBsaW5rIGRlY29y
YXRpb24gZG9uJ3QgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZXhwaXJlIGFmdGVy
IG1vcmUgdGhhbiA4NjQzMCBzZWNvbmRzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4t
anMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJh
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
YXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRp
b24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMmZl
YWQ4YjQ1MDc4ZjFiMGFmNTA3ODBmM2Y3ZDZiZDg5ZDgwYTcwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXBy
ZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsODYgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvY29va2llcy9yZXNv
dXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJl
c291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGlt
ZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiQ2hlY2sg
dGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2
aWdhdGlvbiB3aXRob3V0IGxpbmsgZGVjb3JhdGlvbiBkb24ndCBnZXQgY2FwcGVkIHRvIDI0IGhv
dXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rpb24gdGVzdENv
b2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7CisKKyAgICAgICAgZnVuY3Rp
b24gY2hlY2tUaGF0Q29va2llRG9lc0V4cGlyZUFmdGVyKGNvb2tpZURhdGEsIG1heEFnZUluU2Vj
b25kcykgeworICAgICAgICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7CisgICAgICAgICAgICBs
ZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93LmdldFRpbWUoKSArIChtYXhBZ2VJ
blNlY29uZHMgKiAxMDAwKTsKKworICAgICAgICAgICAgaWYgKG1heEV4cGlyeURhdGVJbk1pbGxp
c2Vjb25kcyA8IGNvb2tpZURhdGFbImV4cGlyZXMiXSkKKyAgICAgICAgICAgICAgICArK3Bhc3Nl
ZFRlc3RzOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNv
b2tpZSBuYW1lZCAiICsgY29va2llRGF0YVsibmFtZSJdICsgIiBleHBpcmVzIGluIGxlc3MgdGhh
biAiICsgbWF4QWdlSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICB9CisKKyAgICAg
ICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0gMjQgKiA2MCAqIDYwOworICAgICAgICBjb25zdCB0
d29EYXlzSW5TZWNvbmRzID0gMiAqIG9uZURheUluU2Vjb25kczsKKyAgICAgICAgY29uc3QgbG9u
Z0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZU1heEFnZSIsIGxp
ZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b0RheXNJblNlY29uZHMgKyAiOyIgfTsKKyAgICAgICAg
ZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2Jhcjsg
IiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAg
ICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFn
ZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llRXhwaXJl
cyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJl
cz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29v
a2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2
ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG92
ZXJPbmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMgKyAzMDsKKyAgICAgICAgaWYgKGlu
dGVybmFscykgeworICAgICAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2ll
cygpOworICAgICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAgICAgICAgZm9yIChsZXQgY29v
a2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvb2tpZS5uYW1lKSB7
CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWU6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzRXhwaXJlQWZ0ZXIoY29v
a2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZToK
KyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNFeHBpcmVBZnRlcihj
b29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXNl
dENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAgICAgIGlmIChwYXNzZWRUZXN0
cyA9PT0gMikgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gbG9uZy1saXZl
ZCBjb29raWVzIGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJPbmVEYXlJblNlY29uZHMg
KyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJpYnV0ZSB3YXMgYmVsb3cg
dGhlIHRlc3QgdGhyZXNob2xkcy4iKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVD
cm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0
aW9uT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3It
Y29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1y
ZXNvdXJjZS5odG1sIjsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5hdGlvbk9yaWdpbiA9ICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHByZXZhbGVudFJlc291cmNlT3JpZ2lu
ID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAg
ICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJldmFsZW50UmVzb3VyY2VP
cmlnaW4pIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7
CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2
YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxl
bnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKG5hdmln
YXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RDb29raWVzKCk7CisgICAgICAgIH0K
KyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJl
dmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjBjMjU4YjhlMDA1ZDM1NTQxODJhZjA2ZDQ4MjU4M2FlNzdlNWEx
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRp
c3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhvc3QgZGlkIG5vdCBn
ZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24t
cHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24t
cHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40ZTAzZmQ4NzEyZWY5ZWRjOWIxODYyZjYzNmQxZTc0ZWE2ODhkODQ0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFz
ZS5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4i
PgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBm
b3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gTWl4ZWQgU3RhdGlzdGljczwvdGl0bGU+CisgICAg
PHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4w
LjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVu
ZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8x
MjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDov
LzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRw
Oi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7
CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBjbGFzc2lmaWVkIGFz
IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBh
c3NlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRl
KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dl
cmVTY2FubmVkKHRydWUpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0
IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0
b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3Vi
cmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2lu
Mik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1
ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNr
KGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nl
c3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAg
aWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRl
c3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVz
ZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUp
OworICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1l
LXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJl
dmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBjMjU4YjhlMDA1ZDM1NTQxODJhZjA2ZDQ4MjU4
M2FlNzdlNWExMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1
Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKK1BBU1MgSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNv
dXJjZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVu
ZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNl
ZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iODU0MDkwOGVkODBkMTM0ZTczODA0OTZhMjc1MDVhZDAwNWM5N2JhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1m
cmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+
CisgICAgPHRpdGxlPlRlc3RzIGZvciBDbGFzc2lmaWNhdGlvbiBCYXNlZCBvbiBTdWIgRnJhbWUg
VW5kZXIgVG9wIEZyYW1lIE9yaWdpbnM8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29u
c3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOwor
ICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7
CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1w
IjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3Rl
bXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAodGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgZGlkIG5vdCBn
ZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgdGVzdFJ1
bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKwor
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJl
c291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFt
ZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9y
aWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NV
cmwsIHRvcEZyYW1lT3JpZ2luMyk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0
YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2Fs
bGJhY2soY29tcGxldGVUZXN0KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
UHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisK
KyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5k
b3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQo
dHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJy
ZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
bm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lu
cy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBjMjU4YjhlMDA1ZDM1NTQxODJh
ZjA2ZDQ4MjU4M2FlNzdlNWExMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJh
c2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJl
dmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1z
dWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1w
cmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjExMjBhODU5MzEyMTE0MDcyZDQ3MjliMzZiYTBhMTc3
ZjNkYzQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVz
b3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDUw
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRh
IGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIENsYXNzaWZpY2F0aW9uIEJh
c2VkIG9uIFN1YnJlc291cmNlIFVuZGVyIFRvcCBGcmFtZSBPcmlnaW5zPC90aXRsZT4KKyAgICA8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAu
MC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5k
ZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEy
Ny4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8v
MTI3LjAuMC4zOjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7Cisg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRp
c3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3Nl
ZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVT
Y2FubmVkKHRydWUpOworIAorICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBh
cyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwg
dG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1
YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdp
bjIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRh
dGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9
KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVy
VGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAg
IHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgfQor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1i
YXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVj
dHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwYzI1OGI4ZTAwNWQzNTU0
MTgyYWYwNmQ0ODI1ODNhZTc3ZTVhMTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVu
dC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJl
dmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1z
dWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZh
bGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDc1OGNiMDZiNmUyYTlhZmZmYTJkNzQzZDNmZWIyYzBkYTU4ZTZlOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVu
aXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDUxIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVU
Ri04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIENsYXNzaWZpY2F0aW9uIEJhc2VkIG9uIFN1YnJl
c291cmNlIFVuaXF1ZSBSZWRpcmVjdHMgVG88L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAg
Y29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAi
OworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVt
cCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90
ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKHRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGRpZCBub3Qg
Z2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisgICAgICAgIHRl
c3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7
CisgCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1
YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVS
ZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhj
b21wbGV0ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNz
U3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlm
IChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0
UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJ
VFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cisg
ICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsK
KyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGlj
cy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRp
c3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyZGQ2OWY5NDE5ZjUxOTg5
NTdmMDkwOGRkNjc0ZDY4NDM2Y2I5YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJh
c2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQ
QVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXBy
ZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzg5NzMxOWFiMGZiMTAwMDU1YTkzNWQ0YTk1MmIyYWI5OTQ0ODMzNgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1s
CkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhl
YWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xh
c3NpZmljYXRpb24gQmFzZWQgb24gTWl4ZWQgU3RhdGlzdGljczwvdGl0bGU+CisgICAgPHNjcmlw
dCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4
MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVz
dCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4w
LjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4w
LjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3
LjAuMC40OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW40ID0gImh0dHA6Ly8x
MjcuMC4wLjU6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAg
ICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRp
c3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFz
c2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiSG9zdCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBj
bGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICBpbnRlcm5hbHMu
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAg
IGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworIAor
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJl
c291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFt
ZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9y
aWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjQpOworCisgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlz
dGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BG
cmFtZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVz
b3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luNCk7
CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVl
UmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRp
c3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5z
dGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOwor
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERh
dGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2Nh
dGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRv
dy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFs
cy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVuVGVz
dFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmln
aW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1l
LXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zMmRkNjlmOTQxOWY1MTk4OTU3ZjA5MDhkZDY3NGQ2ODQzNmNiOWM3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdp
bnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhvc3QgY2xhc3NpZmllZCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
c3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFs
ZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjdlYTc2MjAwZGEyZmZiMWEwMDU1YThhMTk4YWUyNzgzZTJlYjNmNTMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10
b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRG
LTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gU3ViIEZy
YW1lIFVuZGVyIFRvcCBGcmFtZSBPcmlnaW5zPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAg
IGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1w
IjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3Rl
bXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAv
dGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAw
MC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjQgPSAiaHR0cDovLzEyNy4wLjAuNTo4
MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAo
IXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkp
CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMg
cHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQg
YXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
cnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05v
dGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFs
c2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsK
KworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZy
YW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlz
dGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVV
bmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHND
YWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3Rp
Y3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0K
KworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdp
bmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVz
b3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxl
bnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lNGRkY2U1YjMxNGNkN2QyZDBkZWM0OGI2ZjlmOWUwZWNjYWI4
MzA5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1y
ZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAK
K1Rlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiBzdWJyZXNvdXJjZSByZWRpcmVjdCBj
b2xsdXNpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIENvbGx1ZGlu
ZyBob3N0IDEgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBo
b3N0IDIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBob3N0
IDMgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBob3N0IDQg
Z290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBsb2NhbGhvc3Qg
Z290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgYWN0dWFsIHN1YiBmcmFtZSByZWRp
cmVjdC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNv
bGx1c2lvbi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1y
ZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMWUwNDc3NDY5ZDQw
MGJhYTU3NTc4ODI5YWEyMTRlMmVkOGVkNmIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbApA
QCAtMCwwICsxLDcxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFk
PgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVz
Y3JpcHRpb24oIlRlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiBzdWJyZXNvdXJjZSBy
ZWRpcmVjdCBjb2xsdXNpb24uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBj
b25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0
aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3Qg
c3VicmVzb3VyY2VPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBj
b25zdCBzdWJyZXNvdXJjZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOwor
ICAgIGNvbnN0IHN1YnJlc291cmNlT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVt
cCI7CisgICAgY29uc3Qgc3VicmVzb3VyY2VPcmlnaW40ID0gImh0dHA6Ly8xMjcuMC4wLjU6ODAw
MC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oc3RhdGlzdGljc1VybCwgc3VicmVz
b3VyY2VPcmlnaW4xKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3Vy
Y2VVbmlxdWVSZWRpcmVjdEZyb20oc3VicmVzb3VyY2VPcmlnaW4xLCBzdWJyZXNvdXJjZU9yaWdp
bjIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJl
ZGlyZWN0RnJvbShzdWJyZXNvdXJjZU9yaWdpbjIsIHN1YnJlc291cmNlT3JpZ2luMyk7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9t
KHN1YnJlc291cmNlT3JpZ2luMywgc3VicmVzb3VyY2VPcmlnaW40KTsKKworICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJIb3N0IGV4cGxpY2l0eSBzZXQgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNv
dXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luMSkpCisgICAgICAgICAgICAgICAgdGVzdFBhc3Nl
ZCgiQ29sbHVkaW5nIGhvc3QgMSBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAg
ICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJj
ZShzdWJyZXNvdXJjZU9yaWdpbjEpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1
ZGluZyBob3N0IDEgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShzdWJyZXNvdXJjZU9yaWdpbjIpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1
ZGluZyBob3N0IDIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3VicmVz
b3VyY2VPcmlnaW4yKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9z
dCAyIGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3VicmVz
b3VyY2VPcmlnaW4zKSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9z
dCAzIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN1YnJlc291cmNlT3Jp
Z2luMykpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhvc3QgMyBnb3Qg
Y2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN1YnJlc291cmNlT3Jp
Z2luNCkpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgNCBnb3Qg
c2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjQpKQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDQgZ290IGNsYXNzaWZp
ZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdDo4MDAw
IikpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGxvY2FsaG9zdCBnb3Qg
c2V0IGFzIHByZXZhbGVudCByZXNvdXJjZSBhZnRlciBhY3R1YWwgc3ViIGZyYW1lIHJlZGlyZWN0
LiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVu
dFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSkKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJDb2xsdWRpbmcgbG9jYWxob3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFs
ZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBm
aW5pc2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9j
YXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5k
b3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1
ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCwgZmFsc2UsIGZ1bmN0aW9uKCnCoHsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZh
bGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICAgICAgICAgIGlmcmFtZUVs
ZW1lbnQub25sb2FkID0gcnVuVGVzdDsKKyAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNy
YyA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvb25jbGljay5odG1sIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXBy
ZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVj
dC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4ZmNiZDhk
OGY2ZDA1ZmM0OTRkNGVlZGRjZDljYjVlYmRkZTBjMzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJl
dmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9u
IGJhc2VkIG9uIHN1YnJlc291cmNlIHJlZGlyZWN0IHRvIG90aGVyIHByZXZhbGVudC4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZh
bGVudCByZXNvdXJjZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJl
ZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1z
dWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45NmE3Mzg5NTMyNzcyMjhjNmVmNTY5MWJmNzAzNTc5Mzk5ZDI0NjZmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxl
bnQtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDUxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
IGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2Ny
aXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNl
ZCBvbiBzdWJyZXNvdXJjZSByZWRpcmVjdCB0byBvdGhlciBwcmV2YWxlbnQuIik7CisgICAganNU
ZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAu
MTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVy
VGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcu
MC4wLjI6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAg
ICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lm
aWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZSBpZiAodGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50
IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0
IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVu
VGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UodG9wRnJhbWVPcmlnaW4xLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbjEpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxT
dGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29y
ZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhv
c3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVy
bmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5l
ZCh0cnVlKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0
IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgIHJ1blRl
c3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3Vy
Y2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZh
bGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJkZDY5Zjk0MTlmNTE5ODk1N2YwOTA4ZGQ2NzRk
Njg0MzZjYjljNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVz
b3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9y
aWdpbnMtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5k
ZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDAxZWE2YmMy
NDkzNzU5MmYwZTg5Njc2MTVjOTljNWM4ZGMzZmE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZh
bGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFz
ZS5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4i
PgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBm
b3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gU3VicmVzb3VyY2UgVW5kZXIgVG9wIEZyYW1lIE9y
aWdpbnM8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9z
dFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9
ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1l
T3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJh
bWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BG
cmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRv
cEZyYW1lT3JpZ2luNCA9ICJodHRwOi8vMTI3LjAuMC41OjgwMDAvdGVtcCI7CisKKyAgICBmdW5j
dGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJj
ZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZ290IGNsYXNz
aWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVk
KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRT
dGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29y
ZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3Rh
dGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdl
dCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJh
bWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291
cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZy
YW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhj
b21wbGV0ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNz
U3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlm
IChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0
UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJ
VFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cisg
ICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsK
KyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5p
cXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjMyZGQ2OWY5NDE5ZjUxOTg5NTdmMDkwOGRkNjc0ZDY4NDM2Y2I5YzcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1y
ZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhvc3QgY2xh
c3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQt
YmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFi
YXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhmN2YxMzkxYzYyMWRlODY2ZTFiZDIzYjAxYmRhMzMyZDBk
OWYzNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2Ut
dW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0i
VVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gU3Vi
cmVzb3VyY2UgVW5pcXVlIFJlZGlyZWN0cyBUbzwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9q
cy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAg
ICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVt
cCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90
ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAw
L3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40Ojgw
MDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW40ID0gImh0dHA6Ly8xMjcuMC4wLjU6
ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwp
KQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFz
IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVz
dEZhaWxlZCgiSG9zdCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVk
IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NO
b3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworIAorICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBm
YWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIp
OworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1
ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0
aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZy
YW1lT3JpZ2luMyk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW40KTsKKwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jk
c0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAg
fQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYg
d2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVu
bmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFi
bGVkKHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgIH0KKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3At
ZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxl
bnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZmQzOTM4Yjc2Yzk3NDRjM2FmYTdiMjU1MDVlYWViNDlkODY2YjUy
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGly
ZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVz
dHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHRvcCBmcmFtZSByZWRpcmVjdCBjb2xsdXNp
b24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIENvbGx1ZGluZyBob3N0
IDEgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBob3N0IDIg
Z290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBob3N0IDMgZ290
IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBob3N0IDQgZ290IHNl
dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBsb2NhbGhvc3QgZ290IHNl
dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgYWN0dWFsIG5hdmlnYXRpb25hbCByZWRpcmVj
dC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNp
b24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0
LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxZGEwMDBlOWNmYWE3MWE2ODU1
MTcyOTRkMmVkYmUwZGZlMGE0NDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsx
LDcxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxt
ZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24o
IlRlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0b3AgZnJhbWUgcmVkaXJlY3QgY29s
bHVzaW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgaG9zdFVu
ZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJo
dHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3Jp
Z2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVP
cmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFt
ZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZy
YW1lT3JpZ2luNCA9ICJodHRwOi8vMTI3LjAuMC41OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9w
RnJhbWVPcmlnaW41ID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC8iOworCisgICAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlx
dWVSZWRpcmVjdEZyb20oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20odG9wRnJh
bWVPcmlnaW4xLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSh0b3BGcmFtZU9yaWdpbjIsIHRvcEZyYW1l
T3JpZ2luMyk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVl
UmVkaXJlY3RGcm9tKHRvcEZyYW1lT3JpZ2luMywgdG9wRnJhbWVPcmlnaW40KTsKKworICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJs
LCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJIb3N0IGV4cGxpY2l0eSBzZXQgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMSkpCisgICAgICAgICAgICAgICAgdGVzdFBh
c3NlZCgiQ29sbHVkaW5nIGhvc3QgMSBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNv
dXJjZSh0b3BGcmFtZU9yaWdpbjEpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1
ZGluZyBob3N0IDEgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSh0b3BGcmFtZU9yaWdpbjIpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGlu
ZyBob3N0IDIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBp
ZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVP
cmlnaW4yKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCAyIGdv
dCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAg
aWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmln
aW4zKSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCAzIGdvdCBz
ZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMykpCisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhvc3QgMyBnb3QgY2xhc3NpZmllZCBh
cyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luNCkpCisgICAgICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgNCBnb3Qgc2V0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1Zl
cnlQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjQpKQorICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDQgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjUpKQorICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIkNvbGx1ZGluZyBsb2NhbGhvc3QgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Ug
YWZ0ZXIgYWN0dWFsIG5hdmlnYXRpb25hbCByZWRpcmVjdC4iKTsKKyAgICAgICAgICAgIGlmICh0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdp
bjUpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBsb2NhbGhvc3QgZ290
IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0pOworICAg
IH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIiAmJiB3aW5kb3cudGVz
dFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
aWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1Vy
bCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0
IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5ocmVmID0gdG9wRnJhbWVPcmlnaW41ICsgInJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10
b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9uLmh0bWwjY29udGludWUiOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9w
LWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJl
dmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5Zjk5NTMzODI4MGYzMTViMjIwMDNmMDA4MmQwODE0
ODQ3ZTlhYjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFt
ZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTAgQEAKK1Rlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0b3AgZnJhbWUgcmVkaXJl
Y3QgdG8gb3RoZXIgcHJldmFsZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50
LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGU4YjAxZDE3OGMzMjM5ZWIwZDE2NTg0N2RmYTI3
ZDFkNjdkNzBkNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZy
YW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTEgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hh
cnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMg
Zm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHRvcCBmcmFtZSByZWRpcmVjdCB0byBvdGhlciBw
cmV2YWxlbnQuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBob3N0
VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0g
Imh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVP
cmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNv
bXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgZWxzZSBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uo
c3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lm
aWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIp
OworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4xLCB0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVk
aXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworCisgICAgICAgICAgICB0
ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29t
cGxldGVUZXN0KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0
aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRv
Y3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5u
ZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERh
dGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0
YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworICAg
ICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAg
ICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQt
YmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1k
YXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ5MWJmOTYwMzM1NzA5Yzk5MWRmMWZm
ZDMyNDI4YmRiYWU4MDZmOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
dG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTAgQEAKK1Rlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0b3AgZnJhbWUg
dW5pcXVlIHJlZGlyZWN0cyB0by4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFs
ZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFi
YXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNWM0YzdlZTVmNmMzZmVhNjU2MTNmODU4MzYyN2E0Yzk4NTAz
MTVkYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVu
aXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU2IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVU
Ri04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZvciBjbGFz
c2lmaWNhdGlvbiBiYXNlZCBvbiB0b3AgZnJhbWUgdW5pcXVlIHJlZGlyZWN0cyB0by4iKTsKKyAg
ICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3
LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0
VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDov
LzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRw
Oi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0
dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjQgPSAi
aHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0
KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3Qg
Z2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBpZiAodGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkp
CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJl
dmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2Vk
KCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gcnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVV
bmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0
aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4z
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVj
dFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgdGVzdFJ1bm5l
ci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVz
dCk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmRE
YXRhUmVjb3JkcygpOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09
PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1
ZSk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBp
ZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJs
KSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQg
YXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3Rh
dGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24t
bWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjBmMDMx
ZGNhNWQwYzk2MDhmNGQ4ZjVhZjg5OWExNmU5ZWY1MWM1OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12
ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGZvciBjbGFzc2lmaWNhdGlvbiBhcyB2ZXJ5IHBy
ZXZhbGVudCBiYXNlZCBvbiBtaXhlZCBzdGF0aXN0aWNzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3Vy
Y2UuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0
YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRh
dGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWIwNmZhMjA5ZWRiYjZmMTE4OGFmZjdkMTYwNjMwNDAy
N2FiYjE3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhl
ZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+
CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IGZvciBjbGFzc2lmaWNh
dGlvbiBhcyB2ZXJ5IHByZXZhbGVudCBiYXNlZCBvbiBtaXhlZCBzdGF0aXN0aWNzLiIpOworICAg
IGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcu
MC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RV
bmRlclRlc3QgKyAiL3RlbXAiOworICAgIHZhciB0b3BGcmFtZU9yaWdpbnMgPSBbXTsKKyAgICBj
b25zdCBzdGFydE51bSA9IDI7CisgICAgY29uc3QgbnVtYmVyT2ZTdWJyZXNvdXJjZURvbWFpbnMg
PSAzMDsKKyAgICBmb3IgKHZhciBpID0gc3RhcnROdW07IGkgPCBudW1iZXJPZlN1YnJlc291cmNl
RG9tYWlucyArIHN0YXJ0TnVtOyArK2kpCisgICAgICAgIHRvcEZyYW1lT3JpZ2lucy5wdXNoKCJo
dHRwOi8vMTI3LjAuMC4iICsgaSArICI6ODAwMC90ZW1wIikKKworICAgIGZ1bmN0aW9uIGNvbXBs
ZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBk
aWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
aWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3Np
ZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291
cmNlLiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5u
ZWQodHJ1ZSk7CisgCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwp
KQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qgc3RhcnRlZCBvdXQgYXMgcHJldmFs
ZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB2YXIgaSA9IDA7CisgICAgICAgICAgICB3
aGlsZSAoaSA8IG51bWJlck9mU3VicmVzb3VyY2VEb21haW5zKSB7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRp
c3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpXSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NV
cmwsIHRvcEZyYW1lT3JpZ2luc1tpXSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZy
YW1lT3JpZ2luc1tpXSk7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmln
aW5zW2krMV0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJl
c291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNb
aSsxXSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3Vy
Y2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpKzFdKTsK
KworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJU
b3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaSsyXSk7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZy
YW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpKzJdKTsKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0
VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2krMl0pOworICAgICAgICAgICAgICAg
IGkgKz0gMzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxs
U3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNv
cmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5o
b3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBydW5UZXN0UnVubmVyVGVzdCk7CisgICAgfQor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0
ZW50LXN0b3JlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3Rv
cmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhZTAwMzNmZmNjYWVjMjYzYTk2
ZjJiM2Q3ODNlZGNmNzA0MDgzZDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0
ZW50LXN0b3JlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyBj
bGVhcmluZyBvZiB3ZWJzaXRlIGRhdGEgc3RvcmUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNT
IEhvc3QgaXMgbm8gbG9uZ2VyIGEgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIHRoZSBzdG9yZSB3
YXMgY2xlYXJlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXIt
aW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjE3ZWJhYmFkOTE3YWFkNDk5MDMzODFlYTM1MjNlMjA2MmJhZWIwYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1p
bi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY3
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRh
IGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdCBDbGVhcmVkIFN0b3JlPC90aXRsZT4K
KyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGNsZWFyaW5nIG9mIHdl
YnNpdGUgZGF0YSBzdG9yZS4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNv
bnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3Rp
Y3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0
b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0
IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29u
c3QgdG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKworICAg
IGZ1bmN0aW9uIHRlc3RTdGVwMigpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQg
YXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c0NsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmUoY29tcGxldGVUZXN0KTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAg
dGVzdEZhaWxlZCgiSG9zdCBpcyBzdGlsbCBhIHByZXZhbGVudCByZXNvdXJjZSBhZnRlciB0aGUg
c3RvcmUgd2FzIGNsZWFyZWQuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIkhvc3QgaXMgbm8gbG9uZ2VyIGEgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIHRoZSBzdG9y
ZSB3YXMgY2xlYXJlZC4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5p
c2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgewor
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jk
c1dlcmVTY2FubmVkKHRydWUpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRp
c3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQg
c2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJs
LCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2lu
MSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVy
VG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdp
bihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmws
IHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NT
dWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4z
KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJU
b3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJh
Y2sodGVzdFN0ZXAyKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vz
c1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBp
ZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVz
dFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICAgICAgfSk7Cisg
ICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1w
ZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5k
LXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjA3Zjk5OWM2ZmViMzI2NWRlZmYzOTUxYWMyZjgxNDBhYzFhNmVlZTAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xl
YXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyBjbGVhcmluZyBvZiB3ZWJzaXRlIGRhdGEg
c3RvcmUgKG9uZSBob3VyKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
SG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1MgSG9zdCBpcyBubyBs
b25nZXIgYSBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgdGhlIHN0b3JlIHdhcyBjbGVhcmVkLgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVh
ci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1t
ZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mYzE1ZWM4Zjk5YWEzZTM1ZGVjNTY5MmVlNjc2Mjk3ZWQ2NGYyZjliCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
ZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS5odG1s
CkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhl
YWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT48L3RpdGxlPgorICAg
IDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgY2xlYXJpbmcgb2Ygd2Vic2l0
ZSBkYXRhIHN0b3JlIChvbmUgaG91cikuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisK
KyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBz
dGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAg
Y29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAg
ICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOwor
ICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7
CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBpcyBzdGlsbCBhIHByZXZhbGVudCByZXNvdXJjZSBhZnRlciB0
aGUgc3RvcmUgd2FzIGNsZWFyZWQuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIkhvc3QgaXMgbm8gbG9uZ2VyIGEgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIHRoZSBz
dG9yZSB3YXMgY2xlYXJlZC4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBm
aW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RTdGVwMigpIHsKKyAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCkpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFs
ZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisg
ICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc0NsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3Rv
cmVNb2RpZmllZFNpbmNlSG91cnMoMSwgY29tcGxldGVUZXN0KTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJs
LCBmYWxzZSwgZnVuY3Rpb24oKSB7fSk7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZh
aWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsK
KworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVP
cmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmws
IHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJl
c291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEp
OworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJh
bWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NV
cmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1
YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMp
OworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJh
bWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKworICAgICAgICB0ZXN0
UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2sodGVzdFN0
ZXAyKTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0Fu
ZERhdGFSZWNvcmRzKCk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3Qg
PT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFs
cykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJ1blRl
c3RSdW5uZXJUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9uLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjNmY2ZhMDQ5MzgzNzk5NjJkY2Q3YTdi
ZGE0Mzk1NTAyMmVjMmU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw1NSBAQAorVGVzdCBmb3IgcGFydGl0aW9uZWQgYW5kIHVucGFydGl0
aW9uZWQgY29va2llIGRlbGV0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgIAorCist
LS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZl
IGZpcnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNv
b2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2llJy4K
K0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQYXJ0eUNvb2tpZT12YWx1ZQorCist
LS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUyLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZl
IG5vIGNvb2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29v
a2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgor
Q2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJh
bWUzLS0+JworLS0tLS0tLS0KK1RyeSB0byBzZXQgdGhpcmQgcGFydHkgY29va2llLgorCisKKy0t
LS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTQtLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUg
bm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29r
aWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitD
bGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFt
ZTUtLT4nCistLS0tLS0tLQorQWZ0ZXIgcmVtb3ZhbCwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2ll
cy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlk
IG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lk
ZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTYtLT4nCist
LS0tLS0tLQorQWZ0ZXIgZGVjbGFzc2lmaWVkLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLgor
RGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90
IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRv
Y3VtZW50LmNvb2tpZToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODM0ZTg3MzA4YTAzOGQ0MjQ2MmIxMjExMmU0ZWJjMTQ1
NTlkZWU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEs
MTE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxt
ZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24o
IlRlc3QgZm9yIHBhcnRpdGlvbmVkIGFuZCB1bnBhcnRpdGlvbmVkIGNvb2tpZSBkZWxldGlvbi4i
KTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHBhcnRpdGlvbkhvc3Qg
PSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFy
dHlPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25z
dCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBz
dWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBm
aXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHRoaXJkUGFy
dHlDb29raWVOYW1lID0gInRoaXJkUGFydHlDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1Nl
dFRoaXJkUGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIHRoaXJkUGFydHlD
b29raWVOYW1lICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgY29uc3QgZnJhZ21lbnRXaXRoUmV0dXJu
VXJsID0gImh0dHA6Ly8iICsgcGFydGl0aW9uSG9zdCArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jb29raWUtZGVsZXRpb24uaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9
ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImbmFt
ZTI9IiArIHRoaXJkUGFydHlDb29raWVOYW1lOworCisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgp
IHsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAg
ICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAg
ICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAg
ICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAg
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisKKyAgICBm
dW5jdGlvbiBmaXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXJBbmRDb250aW51ZSgpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNr
KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgc2V0VGltZW91dChydW5UZXN0LCA1MDApOworICAg
ICAgICB9KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NB
bmREYXRhUmVjb3JkcygpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNldEFzTm9uUHJldmFsZW50
QW5kQ29udGludWUoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4sIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFy
dHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qgc3RpbGwgc2V0IGFz
IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICB9KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9u
Lmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgLy8g
U2V0IGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldEZp
cnN0UGFydHlDb29raWUgKyAiIyIgKyBmcmFnbWVudFdpdGhSZXR1cm5VcmwgKyAiI3N0ZXAyIjsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAg
ICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgdGhpcmQtcGFydHkgaGFzIGFjY2VzcyB0byBp
dHMgZmlyc3QtcGFydHkgY29va2llcy4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlv
bi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlC
YXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBm
aXJzdC1wYXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAgICAgIC8vIENsYXNzaWZ5IGxv
Y2FsaG9zdCBhcyBwcmV2YWxlbnQuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tp
bmcocnVuVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRo
YXQgdGhlIHRoaXJkLXBhcnR5IG5vIGxvbmdlciBoYXMgYWNjZXNzIHRvIGl0cyBmaXJzdC1wYXJ0
eSBjb29raWVzLgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3Rl
cDUiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQ
YXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwg
cnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3Rl
cDUiOgorICAgICAgICAgICAgICAgIC8vIFRyeSBzZXR0aW5nIGEgY29va2llIGFzIHRoaXJkLXBh
cnR5LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDYiOwor
ICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9T
ZXRUaGlyZFBhcnR5Q29va2llICsgIiZtZXNzYWdlPVRyeSB0byBzZXQgdGhpcmQgcGFydHkgY29v
a2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSAiI3N0ZXA2IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSB0aGlyZC1wYXJ0
eSBzdGlsbCBoYXMgbm8gYWNjZXNzIHRvIGNvb2tpZXMgYW5kIHRoZW4gZmlyZSBkYXRhIHJlY29y
ZCByZW1vdmFsLgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3Rl
cDciOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQ
YXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwg
ZmlyZURhdGFNb2RpZmljYXRpb25IYW5kbGVyQW5kQ29udGludWUpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA3IjoKKyAgICAgICAgICAgICAgICAvLyBD
aGVjayB0aGF0IHRoZSB0aGlyZC1wYXJ0eSBzdGlsbCBoYXMgbm8gYWNjZXNzIHRvIGNvb2tpZXMg
YW5kIHRoZW4gZGVjbGFzc2lmeSBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
bG9jYXRpb24uaGFzaCA9ICJzdGVwOCI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGly
ZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9QWZ0ZXIgcmVt
b3ZhbCwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4iLCBzZXRBc05vblByZXZhbGVudEFuZENv
bnRpbnVlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVw
OCI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgdGhpcmQtcGFydHkgc3RpbGwg
aGFzIG5vIGFjY2VzcyB0byBjb29raWVzLgorICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhp
cmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPUFmdGVyIGRl
Y2xhc3NpZmllZCwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4iLCBmaW5pc2hUZXN0KTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1bWVu
dC5sb2NhdGlvbi5ob3N0ID09PSBwYXJ0aXRpb25Ib3N0ICYmIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPT09ICIiICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFs
KGZhbHNlKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1l
QmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPSAic3RlcDEiOworCisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAg
IH0gZWxzZSB7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9CisKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jb29raWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRh
YmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWQxMDkyZWZkZWVlNDZmYWM2ZTM2YWMwNzZk
ODE0ZDJiYmU1YzdiOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRl
cmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNSBAQAorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgIAorCistLS0tLS0tLQor
RnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIGZpcnN0LXBh
cnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitD
bGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUKKworLS0t
LS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMi0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBu
byBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tp
ZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwh
LS1mcmFtZTMtLT4nCistLS0tLS0tLQorQWZ0ZXIgdXNlciBpbnRlcmFjdGlvbiwgc2hvdWxkIHN0
aWxsIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2Zp
cnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMt
d2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llcy13aXRoLWFuZC13
aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzdhMzlj
NzNlOWYxNWM2NjUwYTE3NmIzZWM5MThjMWI1ZmY2NWJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1h
bmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw4NCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBj
aGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3QgZm9yIFBhcnRpdGlvbmVkIENvb2tpZXMg
V2l0aCBhbmQgV2l0aG91dCBVc2VyIEludGVyYWN0aW9uPC90aXRsZT4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CisgICAgY29uc3QgcGFydGl0aW9uSG9zdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29u
c3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0
IHRoaXJkUGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0eU9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVOYW1lID0gImZp
cnN0UGFydHlDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUg
PSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZ2YWx1
ZT12YWx1ZSI7CisgICAgY29uc3QgZnJhZ21lbnRXaXRoUmV0dXJuVXJsID0gImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91
dC11c2VyLWludGVyYWN0aW9uLmh0bWwiOworICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tpZXMg
PSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWU7CisKKyAg
ICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAg
ICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFu
ZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
aWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2Fk
SGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOwor
ICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gc2V0VXNlckludGVyYWN0aW9uQW5kQ29udGludWUoKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGly
ZFBhcnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eU9yaWdpbikp
CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhpcmQgcGFydHkgZGlkIG5vdCBnZXQgbG9n
Z2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAgcnVuVGVzdCgpOworICAg
ICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0
Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNl
VXJsICsgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIGZyYWdtZW50V2l0aFJl
dHVyblVybCArICIjc3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0g
InN0ZXAzIjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsg
c3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0
eSBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2gg
PSAic3RlcDQiOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1
blRlc3QpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlv
bi5oYXNoID0gInN0ZXA1IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlC
YXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBu
byBjb29raWVzLiIsIHNldFVzZXJJbnRlcmFjdGlvbkFuZENvbnRpbnVlKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNSI6CisgICAgICAgICAgICAgICAg
b3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1l
c3NhZ2U9QWZ0ZXIgdXNlciBpbnRlcmFjdGlvbiwgc2hvdWxkIHN0aWxsIHJlY2VpdmUgbm8gY29v
a2llcy4iLCBmaW5pc2hUZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBwYXJ0aXRpb25Ib3N0
ICYmIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT0gIiIgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYg
d2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNl
KHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2FzIGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNl
IGJlZm9yZSB0aGUgdGVzdCBzdGFydHMuIik7CisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAg
ICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUtY29va2llcy1k
YXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNvb2tpZXMtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzNDA3ZGNmM2VkZWViNjBlYzk2NDkyODUwMTQ1MWEwNTE5
Mjg0NzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNvb2tpZXMtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK0NoZWNrIHRoYXQgb25seSBIdHRwT25seSBj
b29raWVzIHJlbWFpbiBpZiBhbGwgc2NyaXB0LWFjY2Vzc2libGUgY29va2llcyBhcmUgZGVsZXRl
ZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgQmVmb3JlIHNjcmlwdC1h
Y2Nlc3NpYmxlIGRlbGV0aW9uOiBDbGllbnQtc2lkZSBjb29raWUgZXhpc3RzLgorUEFTUyBCZWZv
cmUgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246IEh0dHBPbmx5IGNvb2tpZSBleGlzdHMuCitQ
QVNTIEJlZm9yZSBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogUmVndWxhciBzZXJ2ZXItc2lk
ZSBjb29raWUgZXhpc3RzLgorUEFTUyBBZnRlciBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjog
IEh0dHBPbmx5IGNvb2tpZSBleGlzdHMuCitQQVNTIEFmdGVyIGZ1bGwgZGVsZXRpb246ICAgICAg
ICAgICAgICAgQWxsIGNvb2tpZXMgYXJlIGdvbmUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1jb29r
aWVzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNvb2tpZXMtZGF0YWJhc2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42MGZjNTM3N2Q3ZGVlNjA0Mjk5MGJlMGMyZGJmYjc0NWFlMDVjZDU5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLmh0bWwKQEAgLTAs
MCArMSw3MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQg
c3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJDaGVj
ayB0aGF0IG9ubHkgSHR0cE9ubHkgY29va2llcyByZW1haW4gaWYgYWxsIHNjcmlwdC1hY2Nlc3Np
YmxlIGNvb2tpZXMgYXJlIGRlbGV0ZWQuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisK
KyAgICBjb25zdCBodHRwT25seUNvb2tpZU5hbWUgPSAiaHR0cC1vbmx5LWNvb2tpZSI7CisgICAg
Y29uc3Qgc2VydmVyU2lkZUNvb2tpZU5hbWUgPSAic2VydmVyLXNpZGUtY29va2llIjsKKyAgICBj
b25zdCBjbGllbnRTaWRlQ29va2llTmFtZSA9ICJjbGllbnQtc2lkZS1jb29raWUiOworCisgICAg
ZnVuY3Rpb24gc29ydFN0cmluZ0FycmF5KGEsIGIpIHsKKyAgICAgICAgYSA9IGEudG9Mb3dlckNh
c2UoKTsKKyAgICAgICAgYiA9IGIudG9Mb3dlckNhc2UoKTsKKworICAgICAgICByZXR1cm4gYSA+
IGIgPyAxIDogYiA+IGEgPyAtMSA6IDA7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2hlY2tDb29r
aWVzKGlzQWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24pIHsKKyAgICAgICAgbGV0IHVuc29y
dGVkVGVzdFBhc3NlZE1lc3NhZ2VzID0gW107CisgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJu
YWxzLmdldENvb2tpZXMoKTsKKyAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAgICAg
ICAgIHRlc3RGYWlsZWQoKGlzQWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24gPyAiQWZ0ZXIi
IDogIkJlZm9yZSIpICsgIiBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogTm8gY29va2llcyBm
b3VuZC4iKTsKKyAgICAgICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAg
ICAgIHN3aXRjaCAoY29va2llLm5hbWUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIGh0dHBPbmx5
Q29va2llTmFtZToKKyAgICAgICAgICAgICAgICAgICAgdW5zb3J0ZWRUZXN0UGFzc2VkTWVzc2Fn
ZXMucHVzaCgoaXNBZnRlclNjcmlwdEFjY2Vzc2libGVEZWxldGlvbiA/ICJBZnRlciIgOiAiQmVm
b3JlIikgKyAiIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiAiICsgKGlzQWZ0ZXJTY3JpcHRB
Y2Nlc3NpYmxlRGVsZXRpb24gPyAiICIgOiAiIikgKyAiSHR0cE9ubHkgY29va2llIGV4aXN0cy4i
KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBzZXJ2
ZXJTaWRlQ29va2llTmFtZToKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzQWZ0ZXJTY3JpcHRB
Y2Nlc3NpYmxlRGVsZXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJB
ZnRlciBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogIFJlZ3VsYXIgc2VydmVyLXNpZGUgY29v
a2llIGV4aXN0cy4iKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zb3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMucHVzaCgiQmVmb3JlIHNjcmlwdC1h
Y2Nlc3NpYmxlIGRlbGV0aW9uOiBSZWd1bGFyIHNlcnZlci1zaWRlIGNvb2tpZSBleGlzdHMuIik7
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgY2xpZW50
U2lkZUNvb2tpZU5hbWU6CisgICAgICAgICAgICAgICAgICAgIGlmIChpc0FmdGVyU2NyaXB0QWNj
ZXNzaWJsZURlbGV0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQWZ0
ZXIgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246ICBDbGllbnQtc2lkZSBjb29raWUgZXhpc3Rz
LiIpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB1
bnNvcnRlZFRlc3RQYXNzZWRNZXNzYWdlcy5wdXNoKCJCZWZvcmUgc2NyaXB0LWFjY2Vzc2libGUg
ZGVsZXRpb246IENsaWVudC1zaWRlIGNvb2tpZSBleGlzdHMuIik7CisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGxldCBzb3J0ZWRU
ZXN0UGFzc2VkTWVzc2FnZXMgPSB1bnNvcnRlZFRlc3RQYXNzZWRNZXNzYWdlcy5zb3J0KHNvcnRT
dHJpbmdBcnJheSk7CisgICAgICAgIGZvciAobGV0IHRlc3RQYXNzZWRNZXNzYWdlIG9mIHNvcnRl
ZFRlc3RQYXNzZWRNZXNzYWdlcykKKyAgICAgICAgICAgIHRlc3RQYXNzZWQodGVzdFBhc3NlZE1l
c3NhZ2UpOworICAgIH0KKworICAgIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAg
IGlmICghdGVzdFJ1bm5lciB8fCAhaW50ZXJuYWxzKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJObyB0ZXN0UnVubmVyIG9yIG5vIGludGVybmFscy4iKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOwor
ICAgICAgICBhd2FpdCBmZXRjaCgiL2Nvb2tpZXMvcmVzb3VyY2VzL3NldC1odHRwLW9ubHktY29v
a2llLnBocD9jb29raWVOYW1lPSIgKyBodHRwT25seUNvb2tpZU5hbWUsIHsgY3JlZGVudGlhbHM6
ICJzYW1lLW9yaWdpbiIgfSk7CisgICAgICAgIGF3YWl0IGZldGNoKCIvY29va2llcy9yZXNvdXJj
ZXMvc2V0Q29va2llcy5jZ2kiLCB7IGhlYWRlcnM6IHsgIlNldC1Db29raWUiOiBzZXJ2ZXJTaWRl
Q29va2llTmFtZSArICI9MTsgcGF0aD0vOyIgfSwgY3JlZGVudGlhbHM6ICJzYW1lLW9yaWdpbiIg
fSk7CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGNsaWVudFNpZGVDb29raWVOYW1lICsgIj0x
IjsKKyAgICAgICAgY2hlY2tDb29raWVzKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0
aXN0aWNzRGVsZXRlQ29va2llc0Zvckhvc3QoImh0dHA6Ly8xMjcuMC4wLjEiLCBmYWxzZSk7Cisg
ICAgICAgIGNoZWNrQ29va2llcyh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
RGVsZXRlQ29va2llc0Zvckhvc3QoImh0dHA6Ly8xMjcuMC4wLjEiLCB0cnVlKTsKKyAgICAgICAg
bGV0IGNvb2tpZXNMZWZ0ID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKS5sZW5ndGg7CisgICAgICAg
IGlmIChjb29raWVzTGVmdCA9PT0gMCkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkFmdGVyIGZ1
bGwgZGVsZXRpb246ICAgICAgICAgICAgICAgQWxsIGNvb2tpZXMgYXJlIGdvbmUuIik7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkFmdGVyIGZ1bGwgZGVsZXRpb246ICAg
ICAgICAgICAgICAiICsgY29va2llc0xlZnQgKyAiIGNvb2tpZShzKSBsZWZ0LiIpOworICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9k
by1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rv
LW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRpcmVjdC1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzc0MzA2MWZmMTE5ZmFkM2Y1OTdkYzE1YWUwNGI0YjhjNjkzNzk0
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1NFRDogQ29va2llIHN1Y2Nlc3Nm
dWxseSBzZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QtZGF0
YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kMjE5ZTNkNjg5MzJiZmYxOGM1YTAxYzU2ODRjNDRmMzcxNmZkZTgxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRpcmVjdC1kYXRhYmFz
ZS5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4i
PgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIv
anMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24o
IlRlc3RzIHRoYXQgYmxvY2tpbmcgaXMgbm90IGFwcGxpZWQgdG8gdG9wLWxldmVsIG5hdmlnYXRp
b24gcmVkaXJlY3RzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgaW50ZXJu
YWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworCisgICAgZnVuY3Rp
b24gZG9SZWRpcmVjdCgpCisgICAgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFi
YXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJo
dHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGlm
ICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2Fs
aG9zdCIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBn
ZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9ICJodHRwOi8v
bG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvc2V0LWNvb2tp
ZS1vbi1yZWRpcmVjdC5waHA/c3RlcD0xIjsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsK
KyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgnZG9S
ZWRpcmVjdCgpJywgMCkiPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tp
bmctaW4tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVk
aXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhZDdkOWU1MDA3NmI2ZDE2
YmJjMjZhNTA0NmU5OTY5NmQ2ZTA3NjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1p
bi1yZWRpcmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1MSBAQAorVGVzdHMg
dGhhdCBibG9ja2luZyBpcyBub3QgcmVtb3ZlZCBtaWQtZmxpZ2h0IGluIHJlZGlyZWN0cy4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorICAKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1l
MS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIGxv
Y2FsaG9zdC4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWVJ
UCcuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWVMb2NhbGhvc3QnLgor
RGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQt
c2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWVMb2NhbGhvc3Q9bG9jYWxob3N0
CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTItLT4nCistLS0tLS0tLQorUmVkaXJlY3Qg
Y2FzZSAxLCBzaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIDEyNy4wLjAuMS4K
K1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUlQJy4KK0RpZCBub3QgcmVj
ZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWVMb2NhbGhvc3QnLgorRGlkIG5vdCBy
ZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1
bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWVJUD0xMjcuMC4wLjEKKworLS0tLS0tLS0KK0Zy
YW1lOiAnPCEtLWZyYW1lMy0tPicKKy0tLS0tLS0tCitUcnkgdG8gc2V0IHRoaXJkLXBhcnR5IGNv
b2tpZSBmb3IgbG9jYWxob3N0IGluIGJsb2NrZWQgbW9kZS4KKworCistLS0tLS0tLQorRnJhbWU6
ICc8IS0tZnJhbWU0LS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIG5vIGNvb2tpZS4KK0Rp
ZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWVJUCcuCitEaWQgbm90
IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llTG9jYWxob3N0Jy4KK0RpZCBu
b3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUg
ZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWU1LS0+JworLS0t
LS0tLS0KK1JlZGlyZWN0IGNhc2UgMiwgc2hvdWxkIG5vdCByZWNlaXZlIGZpcnN0LXBhcnR5IGNv
b2tpZSBmb3IgMTI3LjAuMC4xLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQ
YXJ0eUNvb2tpZUlQJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlD
b29raWVMb2NhbGhvc3QnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0
eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWVJ
UD0xMjcuMC4wLjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0LWRhdGFiYXNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8t
bm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmFmY2ZjODExNzJlM2U4Nzg4OWUzNWZkNWJlMmY0NzhjOGE0NGVmMWEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90
LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTAw
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRh
IGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRl
c3RzIHRoYXQgYmxvY2tpbmcgaXMgbm90IHJlbW92ZWQgbWlkLWZsaWdodCBpbiByZWRpcmVjdHMu
Iik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBwYXJ0aXRpb25Ib3N0
ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgcmVzb3VyY2VQYXRoID0gIi9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0
aGlyZFBhcnR5T3JpZ2luICsgcmVzb3VyY2VQYXRoOworICAgIGNvbnN0IGZpcnN0UGFydHlDb29r
aWVOYW1lUHJlZml4ID0gImZpcnN0UGFydHlDb29raWUiOworICAgIGNvbnN0IGZpcnN0UGFydHlD
b29raWVOYW1lSVAgPSBmaXJzdFBhcnR5Q29va2llTmFtZVByZWZpeCArICJJUCI7CisgICAgY29u
c3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWVMb2NhbGhvc3QgPSBmaXJzdFBhcnR5Q29va2llTmFtZVBy
ZWZpeCArICJMb2NhbGhvc3QiOworICAgIGNvbnN0IHRoaXJkUGFydHlDb29raWVOYW1lID0gInRo
aXJkUGFydHlDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldFRoaXJkUGFydHlDb29raWUg
PSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIHRoaXJkUGFydHlDb29raWVOYW1lICsgIiZ2YWx1
ZT12YWx1ZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMu
cGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZUlQICsgIiZuYW1lMj0iICsgZmlyc3RQ
YXJ0eUNvb2tpZU5hbWVMb2NhbGhvc3QgKyAiJm5hbWUzPSIgKyB0aGlyZFBhcnR5Q29va2llTmFt
ZTsKKyAgICBjb25zdCByZWRpcmVjdENoYWluVXJsID0gdGhpcmRQYXJ0eU9yaWdpbiArIHJlc291
cmNlUGF0aCArICIvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89aHR0cDovLyIgKyBwYXJ0aXRpb25I
b3N0ICsgcmVzb3VyY2VQYXRoICsgc3ViUGF0aFRvR2V0Q29va2llczsKKworICAgIGZ1bmN0aW9u
IG9wZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMg
PSB1cmw7CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVtZW50
Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkg
eworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgLy8gU2V0IGZpcnN0LXBhcnR5IGNvb2tp
ZXMgZm9yIDEyNy4wLjAuMSBhbmQgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGlmIChkb2N1
bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHRoaXJkUGFydHlPcmlnaW4pIHsKKyAgICAgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuY29va2llID0gZmlyc3RQYXJ0eUNvb2tpZU5hbWVMb2NhbGhvc3Qg
KyAiPWxvY2FsaG9zdDtwYXRoPScvJyI7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhyZWYgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC5odG1sI3N0ZXAyIjsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUg
PSBmaXJzdFBhcnR5Q29va2llTmFtZUlQICsgIj0xMjcuMC4wLjE7cGF0aD0nLyciOworICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVk
aXJlY3QuaHRtbCNzdGVwMSI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICAvLyBDaGVj
ayB0aGF0IHRoZSBjb29raWUgZ2V0cyBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4x
IHNpbmNlIGxvY2FsaG9zdCBpcyBub3QgcHJldmFsZW50LgorICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUo
dGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3Vs
ZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0LiIsIHJ1blRlc3QpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAzIjoKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA0IjsKKyAgICAgICAgICAg
ICAgICAvLyBMb2FkIGFuIGlmcmFtZSBpbiBhIHJlZGlyZWN0IGNoYWluIHRoYXQgc3RhcnRzIHdp
dGggbG9jYWxob3N0IGFuZCBlbmRzIHdpdGggMTI3LjAuMC4xLiBFeHBlY3QgYSBjb29raWUgZm9y
IDEyNy4wLjAuMS4KKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHJlZGlyZWN0Q2hhaW5Vcmwg
KyAiJm1lc3NhZ2U9UmVkaXJlY3QgY2FzZSAxLCBzaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBj
b29raWUgZm9yIDEyNy4wLjAuMS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgLy8gU2V0IGxvY2Fs
aG9zdCBhcyBwcmV2YWxlbnQgdG8gcHV0IGl0IGluIHRoZSBibG9ja2luZyBjYXRlZ29yeS4KKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA1IjsKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBh
cnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4p
KQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBz
ZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVw
NSI6CisgICAgICAgICAgICAgICAgLy8gVHJ5IHRvIHNldCBwYXJ0aXRpb25lZCBjb29raWUgZm9y
IGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaGFzaCA9ICJzdGVwNiI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBh
cnR5QmFzZVVybCArIHN1YlBhdGhUb1NldFRoaXJkUGFydHlDb29raWUgKyAiJm1lc3NhZ2U9VHJ5
IHRvIHNldCB0aGlyZC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdCBpbiBibG9ja2VkIG1vZGUu
IiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIj
c3RlcDYiOgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgbm8gY29va2llIGdldHMgc2Vu
dCBmb3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMSBzaW5jZSBsb2NhbGhvc3QncyBjb29raWVz
IGFyZSBibG9ja2VkLgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAi
c3RlcDciOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBz
dWJQYXRoVG9HZXRDb29raWVzICsgICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBubyBjb29raWUu
IiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIj
c3RlcDciOgorICAgICAgICAgICAgICAgIC8vIExvYWQgYW4gaWZyYW1lIGluIGEgcmVkaXJlY3Qg
Y2hhaW4gdGhhdCBzdGFydHMgd2l0aCBsb2NhbGhvc3QgYW5kIGVuZHMgd2l0aCAxMjcuMC4wLjEu
IEV4cGVjdCBhIGNvb2tpZSBmb3IgMTI3LjAuMC4xLgorICAgICAgICAgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggPSAic3RlcDgiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUocmVk
aXJlY3RDaGFpblVybCArICImbWVzc2FnZT1SZWRpcmVjdCBjYXNlIDIsIHNob3VsZCBub3QgcmVj
ZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIDEyNy4wLjAuMS4iLCBydW5UZXN0KTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwOCI6CisgICAgICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlv
bi5oYXNoID09PSAiIikgeworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAg
ICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRo
aXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3
YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0
cy4iKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Cisg
ICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAg
IHJ1blRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcnVuVGVzdCgp
OworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vz
c2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9uLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQt
d2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA1
ZGMwOWI2OTYzOWYxZDkwYzZjMzdjMjJlZDFiOTZmODYxYzQ0OQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dp
dGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlv
bi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCB0aGUg
c2Vzc2lvbiBpcyBub3Qgc3dpdGNoZWQgdXBvbiB0b3AgZnJhbWUgbmF2aWdhdGlvbiB0byBhIHBy
ZXZhbGVudCByZXNvdXJjZSB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24uCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIFNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHNlc3Npb24g
Y29va2llLgorUEFTUyBTaG91bGQgaGF2ZSBhbmQgaGFzIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4K
K1BBU1MgT3JpZ2luIGhhcyBubyBpc29sYXRlZCBzZXNzaW9uLgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24t
b24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5v
dC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWludGVy
YWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmFiZmRiOWM0MmJlMjBhNzM5NjYyMjQ0
ZWVkNGQ3MzY0OGY1YzBkMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdh
dGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsMTEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgor
ICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8
c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRoZSBzZXNzaW9uIGlzIG5vdCBz
d2l0Y2hlZCB1cG9uIHRvcCBmcmFtZSBuYXZpZ2F0aW9uIHRvIGEgcHJldmFsZW50IHJlc291cmNl
IHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KworICAgIGNvbnN0IHByZXZhbGVudE9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOwor
ICAgIGNvbnN0IG5vblByZXZhbGVudE9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOwor
ICAgIGNvbnN0IHNlc3Npb25Db29raWVOYW1lID0gInNlc3Npb25Db29raWUiOworICAgIGNvbnN0
IHBlcnNpc3RlbnRDb29raWVOYW1lID0gInBlcnNpc3RlbnRDb29raWUiOworICAgIGNvbnN0IHR3
b01pbnV0ZXNJblNlY29uZHMgPSAxMjA7CisKKyAgICBmdW5jdGlvbiBzZXRTZXNzaW9uQ29va2ll
KCkgeworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzZXNzaW9uQ29va2llTmFtZSArICI9MTsg
cGF0aD0vIjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZXRQZXJzaXN0ZW50Q29va2llKCkgewor
ICAgICAgICBkb2N1bWVudC5jb29raWUgPSBwZXJzaXN0ZW50Q29va2llTmFtZSArICI9MTsgcGF0
aD0vOyBNYXgtQWdlPSIgKyB0d29NaW51dGVzSW5TZWNvbmRzICsgIjsiOworICAgIH0KKworICAg
IGZ1bmN0aW9uIGNoZWNrQ29va2llcyhzaG91bGRIYXZlU2Vzc2lvbkNvb2tpZSwgc2hvdWxkSGF2
ZVBlcnNpc3RlbnRDb29raWUpIHsKKyAgICAgICAgbGV0IGhhc1Nlc3Npb25Db29raWUgPSAoZG9j
dW1lbnQuY29va2llICsgIiIpLmluY2x1ZGVzKHNlc3Npb25Db29raWVOYW1lKSwKKyAgICAgICAg
ICAgIGhhc1BlcnNpc3RlbnRDb29raWUgPSAoZG9jdW1lbnQuY29va2llICsgIiIpLmluY2x1ZGVz
KHBlcnNpc3RlbnRDb29raWVOYW1lKTsKKworICAgICAgICBpZiAoc2hvdWxkSGF2ZVNlc3Npb25D
b29raWUgJiYgaGFzU2Vzc2lvbkNvb2tpZSkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlNob3Vs
ZCBoYXZlIGFuZCBoYXMgdGhlIHNlc3Npb24gY29va2llLiIpOworICAgICAgICBlbHNlIGlmIChz
aG91bGRIYXZlU2Vzc2lvbkNvb2tpZSAmJiAhaGFzU2Vzc2lvbkNvb2tpZSkgeworICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiU2hvdWxkIGhhdmUgYnV0IGRvZXNuJ3QgaGF2ZSB0aGUgc2Vzc2lvbiBj
b29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rl
c3QpOworICAgICAgICB9IGVsc2UgaWYgKCFzaG91bGRIYXZlU2Vzc2lvbkNvb2tpZSAmJiBoYXNT
ZXNzaW9uQ29va2llKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTaG91bGRuJ3QgaGF2ZSBi
dXQgaGFzIHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVz
dFBhc3NlZCgiU2hvdWxkbid0IGhhdmUgYW5kIGRvZXNuJ3QgaGF2ZSB0aGUgc2Vzc2lvbiBjb29r
aWUuIik7CisKKworICAgICAgICBpZiAoc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29raWUgJiYgaGFz
UGVyc2lzdGVudENvb2tpZSkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlNob3VsZCBoYXZlIGFu
ZCBoYXMgdGhlIHBlcnNpc3RlbnQgY29va2llLiIpOworICAgICAgICBlbHNlIGlmIChzaG91bGRI
YXZlUGVyc2lzdGVudENvb2tpZSAmJiAhaGFzUGVyc2lzdGVudENvb2tpZSkgeworICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiU2hvdWxkIGhhdmUgYnV0IGRvZXNuJ3QgaGF2ZSB0aGUgcGVyc2lzdGVu
dCBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hK
U1Rlc3QpOworICAgICAgICB9IGVsc2UgaWYgKCFzaG91bGRIYXZlUGVyc2lzdGVudENvb2tpZSAm
JiBoYXNQZXJzaXN0ZW50Q29va2llKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTaG91bGRu
J3QgaGF2ZSBidXQgaGFzIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsKKyAgICAgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxkbid0IGhhdmUgYW5kIGRvZXNuJ3QgaGF2ZSB0aGUg
cGVyc2lzdGVudCBjb29raWUuIik7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
KyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBj
YXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgIHNldFNlc3Npb25Db29raWUoKTsKKyAgICAg
ICAgICAgICAgICBzZXRQZXJzaXN0ZW50Q29va2llKCk7CisgICAgICAgICAgICAgICAgY2hlY2tD
b29raWVzKHRydWUsIHRydWUpOworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmhhc1N0
YXRpc3RpY3NJc29sYXRlZFNlc3Npb24ocHJldmFsZW50T3JpZ2luKSkgeworICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJPcmlnaW4gaGFzIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAg
ICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cisg
ICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIk9y
aWdpbiBoYXMgbm8gaXNvbGF0ZWQgc2Vzc2lvbi4iKTsKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5ocmVmID0gbm9uUHJldmFsZW50T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13
aXRob3V0LWludGVyYWN0aW9uLmh0bWwjc3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2Nh
dGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRp
b24ub3JpZ2luICE9PSBub25QcmV2YWxlbnRPcmlnaW4pCisgICAgICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIlN0ZXAgMiBpcyBub3Qgb24gIiArIG5vblByZXZhbGVudE9yaWdpbiArICIuIik7
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UocHJldmFsZW50T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVu
dE9yaWdpbikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQocHJldmFsZW50
T3JpZ2luICsgIiBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHByZXZhbGVudE9yaWdp
biArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2
aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi5odG1sI3N0ZXA0IjsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAg
ICAgICAgICAgY2hlY2tDb29raWVzKHRydWUsIHRydWUpOworICAgICAgICAgICAgICAgIGlmICh0
ZXN0UnVubmVyLmhhc1N0YXRpc3RpY3NJc29sYXRlZFNlc3Npb24ocHJldmFsZW50T3JpZ2luKSkK
KyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3JpZ2luIGhhcyBpc29sYXRlZCBzZXNz
aW9uLiIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBh
c3NlZCgiT3JpZ2luIGhhcyBubyBpc29sYXRlZCBzZXNzaW9uLiIpOworICAgICAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
IlVua25vd24gaGFzaC4iKTsKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2ggPT09ICIiKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmln
aW4gIT09IHByZXZhbGVudE9yaWdpbikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRlc3QgaXMg
bm90IHN0YXJ0aW5nIG91dCBvbiAiICsgcHJldmFsZW50T3JpZ2luICsgIi4iKTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBp
ZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRPcmln
aW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQocHJldmFsZW50T3JpZ2luICsgIiB3YXMg
Y2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0cy4i
KTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEiOworICAgICAg
ICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJl
ZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNv
dXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRo
LWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBmYmE4MTAzNWUyZmVjYmExMzk0ZDAxZGYyZTliZTIwNjk1ZTg1YTUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnkt
ZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTAgQEAKK0NoZWNrIHRoYXQgZG9jdW1lbnQucmVmZXJyZXIgaXMgZG93bmdyYWRlZCB0byB0aGUg
ZVRMRCsxIGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBxdWVyeS4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHJlZmVycmVyIGlzIGRvd25n
cmFkZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZy
b20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdh
dGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45YWViZGU5NWJlOGEwNTJhZmYzNjc5YzA2ODg1YWUxNzAyZTFkNzU0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5
LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9jb29r
aWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9u
KCJDaGVjayB0aGF0IGRvY3VtZW50LnJlZmVycmVyIGlzIGRvd25ncmFkZWQgdG8gdGhlIGVUTEQr
MSBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVlcnkuIik7CisgICAg
anNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBsZXQgbnVtYmVyT2ZUcmllcyA9IDA7CisgICAg
ZnVuY3Rpb24gdGVzdFJlZmVycmVyKCkgeworICAgICAgICBpZiAoZG9jdW1lbnQucmVmZXJyZXIg
PT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luICsgIi8iKSB7CisgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJUaGUgcmVmZXJyZXIgaXMgZG93bmdyYWRlZC4iKTsKKyAgICAgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0gZWxzZSBpZiAoKytudW1i
ZXJPZlRyaWVzIDw9IDUpCisgICAgICAgICAgICBzZXRUaW1lb3V0KHRlc3RSZWZlcnJlciwgMjAw
KTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJUaGUgcmVmZXJyZXIg
aXMgbm90IGRvd25ncmFkZWQ6ICIgKyBkb2N1bWVudC5yZWZlcnJlcik7CisgICAgICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisgICAgfQor
CisgICAgZnVuY3Rpb24gbmF2aWdhdGVTYW1lT3JpZ2luVG9BZGRRdWVyeSgpIHsKKyAgICAgICAg
ZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHByZXZhbGVudFJlc291cmNlT3JpZ2luICsgIi9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0
aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWw/bGluaz1xdWVyeSI7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1
ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWwiOworICAgIH0KKworICAgIGNvbnN0IGRl
c3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgcHJl
dmFsZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBmdW5j
dGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luID09
PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiAmJiBkb2N1bWVudC5sb2NhdGlvbi5zZWFyY2ggPT09
ICIiKSB7CisgICAgICAgICAgICBuYXZpZ2F0ZVNhbWVPcmlnaW5Ub0FkZFF1ZXJ5KCk7CisgICAg
ICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luID09PSBwcmV2YWxlbnRSZXNv
dXJjZU9yaWdpbikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0
cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHByZXZhbGVudFJlc291cmNlT3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHBy
ZXZhbGVudFJlc291cmNlT3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmco
bmF2aWdhdGVDcm9zc09yaWdpbik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RSZWZlcnJlcigpOworICAgICAg
ICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5hYmxlLWRlYnVnLW1v
ZGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42NTIxOWRkM2IxMWYyYTM0YzQ1NzUzNDBlNzM4ZGFkY2ZhMGNjZmNjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACitUZXN0IGZvciBlbmFibGluZyBkZWJ1ZyBtb2RlIGFuZCB0aGF0IGl0IHBlcm1hbmVudGx5
IHRyZWF0cyAzcmRwYXJ0eXRlc3R3ZWJraXQub3JnIGFzIGEgcHJldmFsZW50IHJlc291cmNlLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBodHRwOi8vM3JkcGFydHl0ZXN0
d2Via2l0Lm9yZyBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZSBpbiBkZWJ1ZyBtb2RlLgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmFi
bGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjM3ZmY5MjI1NjdmOWE0NzI4MjczZGZhNDczMjYzN2E0ODVjYjlmNQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9l
bmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRG
LTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgZW5hYmxp
bmcgZGVidWcgbW9kZSBhbmQgdGhhdCBpdCBwZXJtYW5lbnRseSB0cmVhdHMgM3JkcGFydHl0ZXN0
d2Via2l0Lm9yZyBhcyBhIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovLzNyZHBhcnR5
dGVzdHdlYmtpdC5vcmciOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5p
bnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsK
KyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlP
cmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQodGhpcmRQYXJ0eU9yaWdpbiArICIg
YWxyZWFkeSBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRo
aXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKHRoaXJkUGFy
dHlPcmlnaW4gKyAiIGRpZG4ndCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQodGhpcmRQ
YXJ0eU9yaWdpbiArICIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgaW4gZGVidWcgbW9k
ZS4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUo
ZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dy
YW5kZmF0aGVyaW5nLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDE4MDNiZmNiNTNiMTQwNDlkNWUxZGFhZTViMjViNjI3ZmFjZTVh
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
K1BBU1MgR3JhbmRmYXRoZXJlZCBjb29raWUgd2FzIG5vdCBwdXJnZWQuCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhl
cmluZy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2JkZDA0
MWRkZDE3ZjhmNDZlY2EzNDcwZjE4MzRmZmE0MmQ2NWQ4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmlu
Zy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTE1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
IGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0
bGU+VGVzdCBmb3IgR3JhbmRmYXRoZXJpbmc8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJl
c291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAg
ICBjb25zdCBmaXJzdFBhcnR5T3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAg
Y29uc3QgZmlyc3RQYXJ0eUJhc2VVcmwgPSBmaXJzdFBhcnR5T3JpZ2luICsgIi9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWUg
PSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUNvb2tpZU5hbWUgPSAi
dGhpcmRQYXJ0eUNvb2tpZSI7CisgICAgY29uc3QgY29va2llVmFsdWUgPSAidmFsdWUiOworICAg
IGNvbnN0IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhwP25h
bWU9IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT0iICsgY29va2llVmFsdWU7Cisg
ICAgY29uc3QgcmV0dXJuVXJsID0gZmlyc3RQYXJ0eU9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ncmFuZGZhdGhlcmluZy5odG1sIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2lu
ID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwg
PSB0aGlyZFBhcnR5T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7
CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5w
aHA/bmFtZT0iICsgdGhpcmRQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPSIgKyBjb29raWVWYWx1
ZTsKKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGZpcmVEYXRhTW9kaWZpY2F0
aW9uSGFuZGxlckFuZENvbnRpbnVlKCkgeworICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0
aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQ
cm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
Y2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZUFuZENvbnRpbnVlKCkgeworICAgICAgICB0
ZXN0UnVubmVyLnN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlKGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9u
Lmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgLy8g
U2V0IGEgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAg
ZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGZpcnN0UGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0
Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIHJldHVyblVybCArICIjc3RlcDIiOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAg
ICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICAvLyBD
aGVjayB0aGF0IGxvY2FsaG9zdCdzIGNvb2tpZSBpcyB0aGVyZS4KKyAgICAgICAgICAgICAgICBp
ZiAoZG9jdW1lbnQuY29va2llICE9PSBmaXJzdFBhcnR5Q29va2llTmFtZSArICI9IiArIGNvb2tp
ZVZhbHVlKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJGaXJzdC1wYXJ0eSBjb29r
aWUgbm90IHNldC4iKTsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDQiOworICAgICAgICAgICAgICAgIC8vIENsZWFy
IHN0b3JlIHRvIHRyaWdnZXIgZ3JhbmRmYXRoZXJpbmcuCisgICAgICAgICAgICAgICAgY2xlYXJJ
bk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZUFuZENvbnRpbnVlKCk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAgICAgICAgICAgIC8vIFNldCBsb2Nh
bGhvc3QgYXMgcHJldmFsZW50IHJlc291cmNlLgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
IiNzdGVwNSI6CisgICAgICAgICAgICAgICAgLy8gU2V0IGEgZmlyc3QtcGFydHkgY29va2llIGZv
ciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRo
aXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNvb2tpZSArICIjIiArIHJl
dHVyblVybCArICIjc3RlcDYiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSAiI3N0ZXA2IjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0g
InN0ZXA3IjsKKyAgICAgICAgICAgICAgICAvLyBTZXQgMTI3LjAuMC4xIGFzIHByZXZhbGVudCBy
ZXNvdXJjZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKCJodHRwOi8vMTI3LjAuMC4xIiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSgiaHR0cDovLzEyNy4wLjAuMSIpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiMTI3LjAuMC4xIGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7Cisg
ICAgICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNyI6CisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwOCI7CisgICAgICAgICAgICAgICAg
Ly8gVHJpZ2dlciBhIHB1cmdlLgorICAgICAgICAgICAgICAgIGZpcmVEYXRhTW9kaWZpY2F0aW9u
SGFuZGxlckFuZENvbnRpbnVlKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlICIjc3RlcDgiOgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgbG9jYWxob3N0
J3MgY29va2llIGlzIHN0aWxsIHRoZXJlLgorICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5j
b29raWUgIT09IGZpcnN0UGFydHlDb29raWVOYW1lICsgIj0iICsgY29va2llVmFsdWUpCisgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkZpcnN0LXBhcnR5IGNvb2tpZSBwdXJnZWQuIik7
CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJH
cmFuZGZhdGhlcmVkIGNvb2tpZSB3YXMgbm90IHB1cmdlZC4iKTsKKyAgICAgICAgICAgICAgICBm
aW5pc2hUZXN0KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCBub3QgYmUgcmVhY2hlZC4iKTsK
KyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBp
ZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYg
d2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNl
KHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNC
ZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworCisg
ICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICBkb2N1bWVudC5sb2Nh
dGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgfSk7
CisgICAgfSBlbHNlCisgICAgICAgIHJ1blRlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRh
YmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg5Zjg1NWE3ODljZjEwYmYzMzBmNGM5MmVh
MTJiOTQxYWJlZmMwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1p
bnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgQ29va2llIG5v
dCBkZWxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rp
b24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRh
YmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5N2U4MGZkNjY0ZWUxZWE4MDM4ZDllODcyYzczOTU3Mjkw
ZjUxMWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rp
b24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
IGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0
bGU+VGVzdHMgZm9yIE5vbi1QcmV2YWxlbnQgUmVzb3VyY2UgV2l0aCBVc2VyIEludGVyYWN0aW9u
PC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIx
MjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhv
c3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IG90aGVyUHJldmFsZW50VXJsID0gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJU
ZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSAiIikKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBub3QgZW1wdHkuIik7CisgICAgICAgIGNvbnN0
IGNvb2tpZSA9ICJ0ZXN0Q29va2llPXRlc3RWYWx1ZSI7CisgICAgICAgIGRvY3VtZW50LmNvb2tp
ZSA9IGNvb2tpZSArICI7IG1heC1hZ2U9MTAwOyI7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29r
aWUgIT09IGNvb2tpZSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBk
aWQgbm90IGdldCBzZXQuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlz
dGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBz
ZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgLy8gVGhpcyBp
cyBkb25lIHRvIG5vdCBoYXZlIGFuIGVtcHR5IHNldCBvZiBwcmV2YWxlbnQgcmVzb3VyY2VzLgor
ICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIGRhdGEgcmVjb3JkcyBhcmUgbmV2ZXIgc2Nhbm5lZC4K
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKG90
aGVyUHJldmFsZW50VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAo
IXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uob3RoZXJQcmV2YWxlbnRV
cmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPdGhlciBob3N0IGRpZCBub3Qg
Z2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwg
dHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3Ig
dXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmlu
c3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llID09PSBjb29raWUpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29va2llIG5vdCBkZWxldGVk
LiIpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBkZWxldGVkIG9yIGRvY3VtZW50LmNvb2tpZSBjb250
YWlucyBvdGhlciBjb29raWVzOiAiICsgZG9jdW1lbnQuY29va2llKTsKKworICAgICAgICAgICAg
ICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVm
b3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDAp
OworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlz
dGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3Qg
PT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFs
cykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0
cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05v
dGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAgICBy
dW5UZXN0UnVubmVyVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFj
dGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50
ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4OWY4NTVhNzg5Y2Yx
MGJmMzMwZjRjOTJlYTEyYjk0MWFiZWZjMDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJj
ZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CitQQVNTIENvb2tpZSBub3QgZGVsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0
aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0
LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YmNlOTkwNDVmMGEz
ZWNjZGJhZDE4Nzg3ZWVkOGZmZjY2NTdmZjY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3Vy
Y2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2NSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBj
aGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBOb24tUHJldmFsZW50IFJlc291
cmNlIFdpdGhvdXQgVXNlciBJbnRlcmFjdGlvbjwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9q
cy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgor
ICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0
YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBj
b25zdCBvdGhlclByZXZhbGVudFVybCA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvdGVtcCI7CisK
KyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50
LmNvb2tpZSAhPT0gIiIpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUg
bm90IGVtcHR5LiIpOworICAgICAgICBjb25zdCBjb29raWUgPSAidGVzdENvb2tpZT10ZXN0VmFs
dWUiOworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBjb29raWUgKyAiOyBtYXgtYWdlPTEwMDsi
OworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSBjb29raWUpCisgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgZGlkIG5vdCBnZXQgc2V0LiIpOworCisgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmws
IGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgZG9uZSB0byBub3QgaGF2ZSBhbiBlbXB0eSBz
ZXQgb2YgcHJldmFsZW50IHJlc291cmNlcy4KKyAgICAgICAgICAgIC8vIE90aGVyd2lzZSBkYXRh
IHJlY29yZHMgYXJlIG5ldmVyIHNjYW5uZWQuCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZhbGVudFVybCwgdHJ1ZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiT3RoZXIgaG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBkaWQgbm90IGdldCBjbGVhcmVkIG9mIHVzZXIgaW50ZXJhY3Rpb24uIik7CisKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVj
b3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRv
Y3VtZW50LmNvb2tpZSA9PT0gY29va2llKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RQYXNzZWQoIkNvb2tpZSBub3QgZGVsZXRlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgZGVs
ZXRlZCBvciBkb2N1bWVudC5jb29raWUgY29udGFpbnMgb3RoZXIgY29va2llczogIiArIGRvY3Vt
ZW50LmNvb2tpZSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1l
QmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKworICAg
IGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50
ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRV
c2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVT
Y2FubmVkKHRydWUpOworICAgICAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICAgICAg
fSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1y
ZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1kYXRh
YmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEt
dGhpcmQtcGFydHktY29udGV4dC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGZi
OTdmOTFmY2QzM2NjOTc4OTc5Y2Q0OGE1NWE0OTQ3NGQyNzcxMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFs
ZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCistLS0tLS0tLQorRnJhbWU6ICc8
IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIG9uZSBjb29raWUuCitSZWNl
aXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1l
bnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJj
ZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1kYXRhYmFzZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1w
cmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNv
bnRleHQtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjRjZmNiMWYzZTM3MjBmY2EyMjNjNDJk
ODc4YzI1YTk2NjIyOWJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nl
c3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDY0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAg
IDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdCB0byBlbnN1cmUgbm9uLXBy
ZXZhbGVudCByZXNvdXJjZXMgY2FuIGFjY2VzcyB0aGVpciBjb29raWVzIGluIGEgdGhpcmQgcGFy
dHkgY29udGV4dDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IHBhcnRpdGlv
bkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRo
aXJkUGFydHlPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAg
ICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBj
b25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1l
PSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IGZy
YWdtZW50V2l0aFJldHVyblVybCA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4t
YS10aGlyZC1wYXJ0eS1jb250ZXh0Lmh0bWwiOworICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tp
ZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWU7CisK
KyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2Fk
SGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25M
b2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVy
OworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1
bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAg
ICAgICAgICAgIC8vIFNldCBhIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFzZVVybCAr
IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyBmcmFnbWVudFdpdGhSZXR1cm5V
cmwgKyAiI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
IiNzdGVwMiI6CisgICAgICAgICAgICAgICAgLy8gTG9hZCBsb2NhbGhvc3QgdW5kZXIgMTI3LjAu
MC4xIGFuZCBjaGVjayB0aGF0IGl0IGdldHMgaXRzIGNvb2tpZS4KKyAgICAgICAgICAgICAgICBv
cGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVz
c2FnZT1TaG91bGQgcmVjZWl2ZSBvbmUgY29va2llLiIsIGZpbmlzaFRlc3QpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0
aW9uLmhvc3QgPT09IHBhcnRpdGlvbkhvc3QgJiYgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PSAi
IiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgp
OworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9y
aWdpbiwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5T3JpZ2luLCBmYWxzZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2gg
PSAic3RlcDEiOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRh
dGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBydW5UZXN0KCk7Cisg
ICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg2M2M3MjAyYjAzZTc3MGQ2ZTQ0NmZiNmYzNDAwZmIzOGM1OWY1MzAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRv
LWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJl
ZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6
Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4x
IikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGly
ZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpIGlzIHRydWUK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjViZGE2ZjlmMWJjZWJmNDg5NDU1YmVjZTQ4NWY1Y2VjZDFmNjA5
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3Qt
dG8taXAtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGly
ZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsK
KyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5j
dGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJl
Y3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7
CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAg
IGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiKSB7CisgICAgICAg
ICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsK
KyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVk
IGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsK
KworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAg
ICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
Tm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3Rh
dHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3
LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6
Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAi
aHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7
CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAg
ICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5u
ZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7Cisg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxs
YmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89
aHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3Jl
ZGlyZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9yZXNvdXJjZXMvaWZyYW1lLXJlcG9ydC1iYWNrLWxvYWRlZC5odG1sIj4KKzwv
aWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2M2M3MjAyYjAzZTc3MGQ2ZTQ0NmZiNmYzNDAwZmIzOGM1
OWY1MzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRv
LWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAor
VGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50
ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2Fs
aG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0
cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdp
c3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhv
c3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10
by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3Qt
dG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGI1ZWU5OTM3MDQx
MDUyZGMyNmU4ZjZhNTg2OWEyMjEzMjAwM2EzMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKQEAg
LTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAg
ICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hl
ZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMg
PSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2Vp
dmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAg
ICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAg
IH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsK
KyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJl
Y2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRh
LmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
ZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4
cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdl
SW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNr
ZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAg
ICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hv
dWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5k
ZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAg
ICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJl
Y3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNS
ZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOwor
CisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQ
YWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsK
KyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29y
ZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAg
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0
OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwLz9yZWRp
cmVjdFRvPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291
cmNlcy9yZWRpcmVjdC5waHAvP3JlZGlyZWN0VG89aHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2lmcmFtZS1yZXBvcnQtYmFjay1sb2FkZWQuaHRt
bCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3Rpbmct
aWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0
LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9u
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjUxNmYxMzJmOWZiMTAxMzY4MjI2M2M2ZjJjODEw
YjdmYWY5ZDhmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24t
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBh
IG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdl
dCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6
Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0
IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8v
bG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNh
bmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkOWNhNTkw
MWRiODBlMGRkMDJjMjA1MjAzM2MxNTdkZGQzNmUzMWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1u
ZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxv
Y2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRo
YXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1z
YW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2Ui
LCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3Qo
KSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOwor
ICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0g
ZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5j
dGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdp
biA9PT0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZl
bnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20g
YW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAgICAgICBs
YXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3Rh
dHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigp
OworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAgICAg
ICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJG
cmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7
CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0
IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlm
IChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hU
ZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVl
KTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRh
dGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1u
b24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAuaHRtbCI+
Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZy
YW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRv
LWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRo
LW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhv
c3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliNTE2ZjEzMmY5ZmIxMDEzNjgy
MjYzYzZmMmM4MTBiN2ZhZjlkOGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFt
ZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1s
b2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRo
YXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1z
YW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1
YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRy
dWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1Rv
KCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEy
Ny4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3Rpbmct
aWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlw
LXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24t
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRh
dGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFlMzNmNjY3ZGEzNTlmM2E4MmJmM2MwYzMxMGQzNGVj
Mzc1YjM0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRh
YmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBh
IG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdl
dCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAg
ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwg
ZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAg
ICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZh
ciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2Fn
ZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQ
QVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEu
cmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmln
aW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RD
aGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAg
ICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAg
ICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgn
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8v
bG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVU
cnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0
dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91
bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdU
bygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAg
ICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJl
Y3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0K
KworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRV
c2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90
aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2so
Y2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1ub24tc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0Lmh0bWwiPgorPC9pZnJhbWU+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjcxNWM4NWViNDdlMGYwODQxNmU2MWZkMDE1ZmQ3YWUzY2I4NjZiNjkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3Qt
aXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEy
IEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBp
biBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lz
dGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAu
MSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRp
cmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVl
CitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygi
aHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVk
LW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2Nh
bGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45NzM4ZWEzYjU5YTBhNzA3NDNkMzQ1ZGYwNTJlYTYyOWQyZjZiOTNkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3Jp
cHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUgbmVzdGVk
IGluIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAg
ICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24g
ZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlz
aEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hh
aW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisg
ICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAo
ZXZlbnQub3JpZ2luID09PSAibnVsbCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0
YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5l
eHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAgICAgICBsYXN0UGFn
ZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVj
a2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNo
b3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVu
ZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAg
ICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGly
ZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAg
ICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFz
UmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsK
KworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0
UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7
CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNv
cmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAg
IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAu
MTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1zYW5kYm94
ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC5odG1sIj4KKzwvaWZyYW1l
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQxNmU2MWZkMDE1ZmQ3YWUzY2I4NjZi
NjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgc2Fu
ZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRl
ZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxo
b3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRw
Oi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lz
dGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9z
dCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJh
bWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94
ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9z
dC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41N2ZhZjAwYThm
ZDcyZjE0NGVhYWVlZTRhN2QyZDBjYjQ5YjhkOTk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVz
dGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1p
cC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0
aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5k
Ym94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBy
ZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7
CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAg
ICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFs
c2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlv
biByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9
PT0gIm51bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFT
UyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJl
cGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2lu
OiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hh
aW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAg
ICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xv
Y2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1
ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRw
Oi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxk
QmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8o
Imh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAg
IHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0
Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlm
eVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNo
ZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9wYWdlLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0Lmh0bWwiPgorPC9pZnJhbWU+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Bp
bmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41NDliZmI5MGNjMWFjNWY5MzE1ZGRmMDljZDRiOTMxYzk4Yjc0N2VmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Bpbmct
dG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI0
IEBACitUZXN0cyB0aGF0IGNvb2tpZSBibG9ja2luZyBpcyBhcHBsaWVkIHRvIHBpbmcgbG9hZHMu
CisgICAKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91
bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2Zp
cnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5
Q29va2llPXZhbHVlCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTItLT4nCistLS0tLS0t
LQorU2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFt
ZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgorCist
LS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUzLS0+JworLS0tLS0tLS0KK1BpbmcgcmVjZWl2ZWQu
CitIVFRQX0hPU1Q6IGxvY2FsaG9zdDo4MDAwCitSRVFVRVNUX1VSSTogL2NvbnRlbnRleHRlbnNp
b25zL3Jlc291cmNlcy9zYXZlLXBpbmcucGhwP3Rlc3Q9cGluZy10by1wcmV2YWxlbnQtcmVzb3Vy
Y2UKK05vIGNvb2tpZXMgaW4gcGluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZS1kYXRh
YmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2U4
ZmExMWQ5NzMxMzBkYzhiMTllMjgyODgyYTFkMzQ4YWY5ZjM5YwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXBy
ZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsOTggQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRG
LTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBjb29raWUg
YmxvY2tpbmcgaXMgYXBwbGllZCB0byBwaW5nIGxvYWRzLjwvZGl2PgorPGEgaWQ9InRhcmdldExp
bmsiIGhyZWY9IiMiIHBpbmc9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9jb250ZW50ZXh0ZW5zaW9u
cy9yZXNvdXJjZXMvc2F2ZS1waW5nLnBocD90ZXN0PXBpbmctdG8tcHJldmFsZW50LXJlc291cmNl
Ij5UaGUgbGluazwvYT4KKzxzY3JpcHQ+CisgICAgaWYgKHRlc3RSdW5uZXIpCisgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgY29uc3QgcGFydGl0aW9uSG9zdCA9ICIx
MjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9j
YWxob3N0OjgwMDAiOworICAgIGNvbnN0IHJlc291cmNlUGF0aCA9ICIvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhpcmRQ
YXJ0eU9yaWdpbiArIHJlc291cmNlUGF0aDsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFt
ZSA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5
Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSAr
ICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHJldHVyblVybCA9ICJodHRwOi8vIiArIHBhcnRp
dGlvbkhvc3QgKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1wcmV2YWxlbnQtcmVz
b3VyY2UuaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0LWNvb2tp
ZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZTsKKworICAgIGZ1bmN0aW9uIGFj
dGl2YXRlRWxlbWVudChlbGVtZW50SUQsIGNhbGxiYWNrKSB7CisgICAgICAgIHZhciBlbGVtZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKKyAgICAgICAgdmFyIGNlbnRl
clggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAg
ICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0
IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVu
KAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICApOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7Cisg
ICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsK
KyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7
CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0K
KyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9u
Lmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgLy8g
U2V0IGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldEZp
cnN0UGFydHlDb29raWUgKyAiIyIgKyByZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAg
Ly8gQ2hlY2sgdGhhdCB0aGUgY29va2llIGdldHMgc2VudCBmb3IgbG9jYWxob3N0IHVuZGVyIDEy
Ny4wLjAuMSBzaW5jZSBsb2NhbGhvc3QgaXMgbm90IHByZXZhbGVudC4KKyAgICAgICAgICAgICAg
ICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBvcGVu
SWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2Fn
ZT1TaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAg
ICAgIC8vIFNldCBsb2NhbGhvc3QgYXMgcHJldmFsZW50IHRvIHB1dCBpdCBpbiB0aGUgYmxvY2tp
bmcgY2F0ZWdvcnkuCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5n
KHJ1blRlc3QpOworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0g
InN0ZXA0IjsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBu
byBjb29raWUgZ2V0cyBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxv
Y2FsaG9zdCdzIGNvb2tpZXMgYXJlIGJsb2NrZWQuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
bG9jYXRpb24uaGFzaCA9ICJzdGVwNSI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGly
ZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAgIiZtZXNzYWdlPVNob3VsZCBy
ZWNlaXZlIG5vIGNvb2tpZXMuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlICIjc3RlcDUiOgorICAgICAgICAgICAgICAgIC8vIENsaWNrIHRoZSBs
aW5rIHRvIHRyaWdnZXIgdGhlIHBpbmcuCisgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50
KCJ0YXJnZXRMaW5rIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIG9wZW5JZnJh
bWUodGhpcmRQYXJ0eU9yaWdpbiArICIvY29udGVudGV4dGVuc2lvbnMvcmVzb3VyY2VzL2dldC1w
aW5nLWRhdGEucGhwP3Rlc3Q9cGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UiLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmZXRjaCgiL2NvbnRlbnRleHRlbnNpb25zL3Jlc291cmNlcy9kZWxldGUt
cGluZy5waHA/dGVzdD1waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZSIpLnRoZW4oKCk9PnsgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7IH0pOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9u
Lmhhc2ggPT09ICIiKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlv
bi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxl
ZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3du
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGUzMmM1OTNkZTEwZDU3NzM3MTAx
MzU3MWRkMzQ4ZjUzODUxOTZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVkLWtl
eWRvd24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQg
d2UgZ3JhbnQgVXNlciBJbnRlcmFjdGlvbiBjcmVkaXQgZm9yIGhhbmRsZWQga2V5cHJlc3Nlcy4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1NpbXVsYXRlIHVzZXIgdHlwaW5nIGxl
dHRlciAnYScgaW50byB0aGUgZmllbGQuCitQQVNTIHRlc3RJbnB1dC52YWx1ZSBpcyAiYSIKK1BB
U1MgT3JpZ2luIHdhcyBncmFudGVkIHVzZXIgaW50ZXJhY3Rpb24uCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Ut
aGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1k
YXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlNTZhNTBjY2M4NGY4MGExNzVkZjQ2N2ZmNzg4OTRj
ZTdiNTE5ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRh
YmFzZS5odG1sCkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9k
eT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgd2UgZ3JhbnQgVXNlciBJbnRlcmFj
dGlvbiBjcmVkaXQgZm9yIGhhbmRsZWQga2V5cHJlc3Nlcy4iKTsKK2pzVGVzdElzQXN5bmMgPSB0
cnVlOworCitjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC90ZW1w
IjsKKworb25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgY29uc3QgdGVzdEZyYW1lID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIpOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBE
YXRhYmFzZSh0cnVlKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NFbmFibGVkKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQ
YWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgIH0KKworICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUs
IGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0
IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmws
IGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsZWFyZWQgb2YgdXNlciBpbnRlcmFjdGlv
bi4iKTsKKworICAgICAgICAgICAgdGVzdElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRlc3RJbnB1dCIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNz
RGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRlc3RJbnB1dC52YWx1ZSIsICJhIik7CisKKyAgICAg
ICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPcmln
aW4gZGlkIG5vdCBnZXQgdXNlciBpbnRlcmFjdGlvbiBjcmVkaXQuIik7CisgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPcmlnaW4gd2FzIGdyYW50
ZWQgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGcmFtZS5zcmMgPSAiYWJvdXQ6Ymxh
bmsiOworICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRT
dGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9
LCAwKTsKKyAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVE
YXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3Jkcygp
OworCisgICAgICAgICAgICBkZWJ1ZygiU2ltdWxhdGUgdXNlciB0eXBpbmcgbGV0dGVyICdhJyBp
bnRvIHRoZSBmaWVsZC4iKTsKKyAgICAgICAgICAgIHRlc3RJbnB1dC5mb2N1cygpOworICAgICAg
ICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAgICAgICBldmVudFNlbmRl
ci5rZXlEb3duKCJhIik7CisgICAgICAgIH0pOworICAgIH0pOworfQorPC9zY3JpcHQ+Cis8aWZy
YW1lIGlkPSJ0ZXN0RnJhbWUiIHNyYz0icmVzb3VyY2VzL29uY2xpY2suaHRtbCI+PC9pZnJhbWU+
Cis8aW5wdXQgaWQ9InRlc3RJbnB1dCIgdHlwZT0idGV4dCI+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxl
bnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjM2ZTU1OWJmYTJkZDI0NjE2Nzk4OWIyNWFiODIzOWM0NTZiMTY0YjAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDExIEBACitUZXN0cyB0aGF0IHdlIGRvIG5vdCBncmFudCBVc2VyIEludGVy
YWN0aW9uIGNyZWRpdCBmb3IgdW5oYW5kbGVkIGtleXByZXNzLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworU2ltdWxhdGUgYW4gdW5oYW5kbGVkIHVzZXIga2V5IHByZXNzLgorUEFT
UyBPcmlnaW4gZGlkIG5vdCBnZXQgdXNlciBpbnRlcmFjdGlvbiBjcmVkaXQuCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNv
dXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQt
a2V5ZG93bi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhY2RlYjI4ZTRjY2I3MTI4MjUzMjE3
YmE4ODE5ZWE3ZWE2ZmIyZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1r
ZXlkb3duLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB3ZSBkbyBub3Qg
Z3JhbnQgVXNlciBJbnRlcmFjdGlvbiBjcmVkaXQgZm9yIHVuaGFuZGxlZCBrZXlwcmVzcy4iKTsK
K2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC90ZW1wIjsKKworb25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
dGVzdEZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIpOworCisgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJl
c291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOwor
ICAgIH0KKworICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJs
KSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsZWFyZWQg
b2YgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxs
U3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisKKyAg
ICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJP
cmlnaW4gZGlkIG5vdCBnZXQgdXNlciBpbnRlcmFjdGlvbiBjcmVkaXQuIik7CisKKyAgICAgICAg
ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0
RnJhbWUuc3JjID0gImFib3V0OmJsYW5rIjsKKyAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91
dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICAgICAgfSwgMCk7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENs
YXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRz
UmVtb3ZhbCgwKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0
aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKworICAgICAgICAgICAgZGVidWcoIlNpbXVsYXRlIGFu
IHVuaGFuZGxlZCB1c2VyIGtleSBwcmVzcy4iKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZl
bnRTZW5kZXIpCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiYSIsIFsibWV0
YUtleSJdKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9Cis8L3NjcmlwdD4KKzxpZnJhbWUgaWQ9
InRlc3RGcmFtZSIgc3JjPSJyZXNvdXJjZXMvb25jbGljay5odG1sIj48L2lmcmFtZT4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODlmODU1YTc4OWNmMTBiZjMzMGY0YzkyZWEx
MmI5NDFhYmVmYzA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJh
Y3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIENvb2tpZSBub3QgZGVs
ZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJh
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9w
cmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZWMxM2E1MDI3NGM2ZGQ5NGJmZThhMTY0NTljNGNiYWI4YTkwZTkwYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwK
QEAgLTAsMCArMSw2OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVh
ZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBQcmV2
YWxlbnQgUmVzb3VyY2UgV2l0aCBVc2VyIEludGVyYWN0aW9uPC90aXRsZT4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9InNldFRpbWVvdXQoJ3NldFVwQW5kUnVuKCknLCAwKSI+Cis8c2NyaXB0PgorICAgIGlmICh0
ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgIGNv
bnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3Rp
Y3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCBv
dGhlclByZXZhbGVudFVybCA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvdGVtcCI7CisgICAgZnVu
Y3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUg
IT09ICIiKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIG5vdCBlbXB0
eS4iKTsKKyAgICAgICAgY29uc3QgY29va2llID0gInRlc3RDb29raWU9dGVzdFZhbHVlIjsKKyAg
ICAgICAgZG9jdW1lbnQuY29va2llID0gY29va2llICsgIjsgbWF4LWFnZT0xMDA7IjsKKyAgICAg
ICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gY29va2llKQorICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiZG9jdW1lbnQuY29va2llIGRpZCBub3QgZ2V0IHNldC4iKTsKKworICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAg
ICAgICAgIC8vIFRoaXMgaXMgZG9uZSB0byBub3QgaGF2ZSBhbiBlbXB0eSBzZXQgb2YgcHJldmFs
ZW50IHJlc291cmNlcy4KKyAgICAgICAgICAgIC8vIE90aGVyd2lzZSBkYXRhIHJlY29yZHMgYXJl
IG5ldmVyIHNjYW5uZWQuCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShvdGhlclByZXZhbGVudFVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KG90aGVyUHJldmFsZW50VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3Ro
ZXIgaG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBp
ZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90
IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJh
Y2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29v
a2llID09PSBjb29raWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgi
Q29va2llIG5vdCBkZWxldGVkLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBkZWxldGVkIG9yIGRv
Y3VtZW50LmNvb2tpZSBjb250YWlucyBvdGhlciBjb29raWVzOiAiICsgZG9jdW1lbnQuY29va2ll
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFz
c2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFS
ZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNl
dFVwQW5kUnVuKCkgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9z
dFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAg
cnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiV3JvbmcgaG9zdCwgbm8gdGVzdFJ1bm5lciwgb3Igbm8g
aW50ZXJuYWxzLiIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
ICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVz
b3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVu
dC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjc4MDllOTFjMjNjMjNhMjM2OWNkMDg1NGViMTgxNjQ3ZGZhZWI0
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVv
dXQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIENvb2tpZSBkZWxldGVkLgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0LWRhdGFi
YXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0LWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjIwODk3MDVkMjc4ZWFhMjIxMjY4NTZkMWQ2ZDA5OWE1OWEwYTdi
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVv
dXQtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
IGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0
bGU+VGVzdHMgZm9yIFByZXZhbGVudCBSZXNvdXJjZSBXaXRoIFVzZXIgSW50ZXJhY3Rpb24gVGlt
ZW91dDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0
VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0g
Imh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgZnVuY3Rpb24gcnVuVGVz
dFJ1bm5lclRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09ICIiKQorICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIG5vdCBlbXB0eS4iKTsKKyAgICAg
ICAgY29uc3QgY29va2llID0gInRlc3RDb29raWU9dGVzdFZhbHVlIjsKKyAgICAgICAgZG9jdW1l
bnQuY29va2llID0gY29va2llICsgIjsgbWF4LWFnZT0xMDA7IjsKKyAgICAgICAgaWYgKGRvY3Vt
ZW50LmNvb2tpZSAhPT0gY29va2llKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQu
Y29va2llIGRpZCBub3QgZ2V0IHNldC4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCB0
cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRl
cmFjdGlvbi4iKTsKKworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3Rp
Y3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSAiIikKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBub3QgZGVsZXRlZDogIiArIGRvY3VtZW50LmNvb2tpZSk7
CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIkNvb2tpZSBkZWxldGVkLiIpOworICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbHMu
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3Jl
RGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVGltZVRvTGl2ZVVzZXJJbnRlcmFj
dGlvbigwKTsKKworICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdG8gZW5zdXJlIHRoZSB0aW1l
b3V0IHdlJ3JlIHRlc3RpbmcuCisgICAgICAgICAgICAgICAgc2V0VGltZW91dCgidGVzdFJ1bm5l
ci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpIiwgMTAwMCk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50Lmxv
Y2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2lu
ZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRy
dWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJu
YWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVk
KHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgIH0KKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJh
Y3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJh
Y3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ODA5ZTkxYzIzYzIzYTIz
NjljZDA4NTRlYjE4MTY0N2RmYWViNDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhv
dXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBA
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1Mg
Q29va2llIGRlbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVy
YWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1k
YXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3YjBiMmFhZTMwODRkNGM0N2Q5ZWM5ZjdjZTMyZmU0
ZDQwYjljNGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFj
dGlvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0
aXRsZT5UZXN0cyBmb3IgUHJldmFsZW50IFJlc291cmNlIFdpdGhvdXQgVXNlciBJbnRlcmFjdGlv
bjwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5k
ZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0
dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBmaW5pc2hU
ZXN0ICgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJDb29raWUgbm90IGRlbGV0ZWQ6ICIgKyBkb2N1bWVudC5jb29raWUpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb29raWUgZGVsZXRlZC4iKTsK
KyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNl
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAg
ICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJk
b2N1bWVudC5jb29raWUgbm90IGVtcHR5LiIpOworICAgICAgICBjb25zdCBjb29raWUgPSAidGVz
dENvb2tpZT10ZXN0VmFsdWUiOworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBjb29raWUgKyAi
OyBtYXgtYWdlPTEwMDsiOworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSBjb29raWUp
CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgZGlkIG5vdCBnZXQgc2V0
LiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKCF0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZGlkIG5vdCBnZXQgY2xlYXJlZCBvZiB1c2VyIGludGVyYWN0aW9uLiIpOworCisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRz
Q2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoImZp
bmlzaFRlc3QoKSIsIDEwMDApOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0
YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVj
b3JkcygpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChk
b2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVu
bmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNX
ZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzQ3
NTdiYzUyNTYwMDUyMWQ0NjE1NDVkMDM2N2MwZjA1MDFiZWYzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BydW5lLXN0YXRp
c3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3RzIHRoYXQg
c3RhdGlzdGljcyBhcmUgcHJ1bmVkIGluIHRoZSByaWdodCBvcmRlci4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGVzdCBpdGVyYXRpb24gMSBwYXNzZWQuCitQQVNTIFRl
c3QgaXRlcmF0aW9uIDIgcGFzc2VkLgorUEFTUyBUZXN0IGl0ZXJhdGlvbiAzIHBhc3NlZC4KK1BB
U1MgVGVzdCBpdGVyYXRpb24gNCBwYXNzZWQuCitQQVNTIFRlc3QgaXRlcmF0aW9uIDUgcGFzc2Vk
LgorUEFTUyBUZXN0IGl0ZXJhdGlvbiA2IHBhc3NlZC4KK1BBU1MgVGVzdCBpdGVyYXRpb24gNyBw
YXNzZWQuCitQQVNTIFRlc3QgaXRlcmF0aW9uIDggcGFzc2VkLgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFi
YXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjYWI3ZDM5MTcxZDAz
ZjQ3YjQxOWQyYWRiMGNhMTM4YWRmNzhlYjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRh
YmFzZS5odG1sCkBAIC0wLDAgKzEsMTYzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0IGZvciBSZXNv
dXJjZSBMb2FkIFN0YXRpc3RpY3MgUHJ1bmluZzwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9q
cy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBzdGF0aXN0aWNzIGFyZSBwcnVu
ZWQgaW4gdGhlIHJpZ2h0IG9yZGVyLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisg
ICAgY29uc3Qgb2xkZXJUaW1lc3RhbXAgPSBNYXRoLnJvdW5kKChuZXcgRGF0ZSgpKS5nZXRUaW1l
KCkgLyAxMDAwKTsKKyAgICBjb25zdCBuZXdlclRpbWVzdGFtcCA9IG9sZGVyVGltZXN0YW1wICsg
MTA7CisgICAgY29uc3QgbmV3ZXN0VGltZXN0YW1wID0gbmV3ZXJUaW1lc3RhbXAgKyAxMDsKKwor
ICAgIGNvbnN0IHVybHNUb0JlUHJ1bmVkID0gWworICAgICAgICB7IHVybDogImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC90ZW1wIiwgcHJldmFsZW50OiBmYWxzZSB9LAorICAgICAgICB7IHVybDogImh0
dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIiwgcHJldmFsZW50OiBmYWxzZSB9LAorICAgICAgICB7
IHVybDogImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIiwgcHJldmFsZW50OiB0cnVlIH0sCisg
ICAgICAgIHsgdXJsOiAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiLCBwcmV2YWxlbnQ6IHRy
dWUgfSwKKyAgICAgICAgeyB1cmw6ICJodHRwOi8vMTI3LjAuMC41OjgwMDAvdGVtcCIsIHByZXZh
bGVudDogZmFsc2UgfSwKKyAgICAgICAgeyB1cmw6ICJodHRwOi8vMTI3LjAuMC42OjgwMDAvdGVt
cCIsIHByZXZhbGVudDogZmFsc2UgfSwKKyAgICAgICAgeyB1cmw6ICJodHRwOi8vMTI3LjAuMC43
OjgwMDAvdGVtcCIsIHByZXZhbGVudDogdHJ1ZSB9LAorICAgICAgICB7IHVybDogImh0dHA6Ly8x
MjcuMC4wLjg6ODAwMC90ZW1wIiwgcHJldmFsZW50OiB0cnVlIH0KKyAgICBdOworCisgICAgZnVu
Y3Rpb24gY2hlY2tJZlByZXZhbGVudEFjY29yZGluZ1RvSW5pdGlhbEV4cGVjdGF0aW9uKGJlZ2lu
LCBlbmQpIHsKKyAgICAgICAgdmFyIGZhaWxlZCA9IGZhbHNlOworICAgICAgICBmb3IgKHZhciBp
ID0gYmVnaW47IGkgPCBlbmQ7ICsraSkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsc1RvQmVQcnVuZWRbaV0udXJsKSAhPT0gdXJs
c1RvQmVQcnVuZWRbaV0ucHJldmFsZW50KSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
Y2hlY2tJZlByZXZhbGVudEFjY29yZGluZ1RvSW5pdGlhbEV4cGVjdGF0aW9uOiBUZXN0IGl0ZXJh
dGlvbiAiICsgY3VycmVudFRlc3QgKyAiIGZhaWxlZC4gIiArIHVybHNUb0JlUHJ1bmVkW2ldLnVy
bCArICh1cmxzVG9CZVBydW5lZFtpXS5wcmV2YWxlbnQgPyAiIHdhc24ndCAiIDogIiB3YXMgIikg
KyAicHJldmFsZW50Iik7CisgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoZmFpbGVkKSB7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBmdW5jdGlvbiBjaGVja0lmUHJldmFsZW50KGJlZ2luLCBlbmQsIGV4cGVj
dGVkKSB7CisgICAgICAgIHZhciBmYWlsZWQgPSBmYWxzZTsKKyAgICAgICAgZm9yICh2YXIgaSA9
IGJlZ2luOyBpIDwgZW5kOyArK2kpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1bmVkW2ldLnVybCkgIT09IGV4cGVj
dGVkKSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiY2hlY2tJZlByZXZhbGVudDogVGVz
dCBpdGVyYXRpb24gIiArIGN1cnJlbnRUZXN0ICsgIiBmYWlsZWQuICIgKyB1cmxzVG9CZVBydW5l
ZFtpXS51cmwgKyAoZXhwZWN0ZWQgPyAiIHdhc24ndCAiIDogIiB3YXMgIikgKyAicHJldmFsZW50
Iik7CisgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgICAgICBpZiAoZmFpbGVkKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKHN0ZXApIHsKKyAgICAg
ICAgc3dpdGNoIChzdGVwKSB7CisgICAgICAgICAgICAvLyBOb24tcHJldmFsZW50IHdpdGhvdXQg
dXNlciBpbnRlcmFjdGlvbiB0byBiZSBwcnVuZWQgZmlyc3QuCisgICAgICAgICAgICBjYXNlIDE6
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1Rv
QmVQcnVuZWRbMF0udXJsLCBvbGRlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVT
dGF0aXN0aWNzQW5kUnVuVGVzdHMoMik7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVkWzFdLnVybCwgbmV3ZXJUaW1lc3RhbXAsIGZ1bmN0aW9u
KCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDMpOyB9KTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIC8vIFByZXZhbGVudCB3aXRob3V0IHVzZXIgaW50ZXJh
Y3Rpb24gdG8gYmUgcHJ1bmVkIHNlY29uZC4KKyAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh1cmxzVG9C
ZVBydW5lZFsyXS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0Fu
ZFJ1blRlc3RzKDQpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgNDoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1
cmxzVG9CZVBydW5lZFsyXS51cmwsIG9sZGVyVGltZXN0YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlh
bGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyg1KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsc1RvQmVQcnVuZWRbM10udXJsLCB0cnVlLCBmdW5j
dGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyg2KTsgfSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDY6CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbM10udXJsLCBuZXdl
clRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMo
Nyk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgLy8gTm9uLXByZXZh
bGVudCB3aXRoIHVzZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIHRoaXJkLgorICAgICAgICAg
ICAgY2FzZSA3OgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hh
ZFVzZXJJbnRlcmFjdGlvbih1cmxzVG9CZVBydW5lZFs0XS51cmwsIHRydWUsIGZ1bmN0aW9uKCkg
eyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDgpOyB9KTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgODoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFs0XS51cmwsIG9sZGVyVGltZXN0
YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyg5KTsgfSk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDk6CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHVybHNU
b0JlUHJ1bmVkWzVdLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNz
QW5kUnVuVGVzdHMoMTApOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgMTA6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNl
ZW4odXJsc1RvQmVQcnVuZWRbNV0udXJsLCBuZXdlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGlu
aXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTEpOyB9KTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIC8vIFByZXZhbGVudCB3aXRoIHVzZXIgaW50ZXJhY3Rpb24gdG8g
YmUgcHJ1bmVkIGxhc3QuCisgICAgICAgICAgICBjYXNlIDExOgorICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1bmVkWzZd
LnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMo
MTIpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTI6Cisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKHVybHNUb0JlUHJ1bmVkWzZdLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVT
dGF0aXN0aWNzQW5kUnVuVGVzdHMoMTMpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgMTM6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbNl0udXJsLCBvbGRlclRpbWVzdGFtcCwgZnVuY3Rp
b24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTQpOyB9KTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTQ6CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsc1RvQmVQcnVuZWRbN10u
dXJsLCB0cnVlLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygx
NSk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxNToKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rp
b24odXJsc1RvQmVQcnVuZWRbN10udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0
YXRpc3RpY3NBbmRSdW5UZXN0cygxNik7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSAxNjoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFs3XS51cmwsIG5ld2VyVGltZXN0YW1wLCBmdW5jdGlv
bigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxNyk7IH0pOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxNzoKKyAgICAgICAgICAgICAgICBjaGVj
a0lmUHJldmFsZW50QWNjb3JkaW5nVG9Jbml0aWFsRXhwZWN0YXRpb24oMCwgdXJsc1RvQmVQcnVu
ZWQubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2YXIgY3VycmVudFRlc3Q7CisgICAgZnVu
Y3Rpb24gY2hlY2tTdGF0aXN0aWNzQWZ0ZXJQcnVuaW5nKCkgeworICAgICAgICAvLyBQcnVuZWQg
ZW50cmllcyBzaG91bGQgbm90IGJlIHByZXZhbGVudC4KKyAgICAgICAgY2hlY2tJZlByZXZhbGVu
dCgwLCBjdXJyZW50VGVzdCwgZmFsc2UpOworICAgICAgICAvLyBOb24tcHJ1bmVkIGVudHJpZXMg
c2hvdWxkIGtlZXAgdGhlaXIgZXhwZWN0ZWQgc3RhdHVzLgorICAgICAgICBjaGVja0lmUHJldmFs
ZW50QWNjb3JkaW5nVG9Jbml0aWFsRXhwZWN0YXRpb24oY3VycmVudFRlc3QsIHVybHNUb0JlUHJ1
bmVkLmxlbmd0aCk7CisgICAgICAgIHRlc3RQYXNzZWQoIlRlc3QgaXRlcmF0aW9uICIgKyBjdXJy
ZW50VGVzdCArICIgcGFzc2VkLiIpOworICAgICAgICBpZiAoY3VycmVudFRlc3QgPCB1cmxzVG9C
ZVBydW5lZC5sZW5ndGgpIHsKKyAgICAgICAgICAgICsrY3VycmVudFRlc3Q7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2so
Y2hlY2tTdGF0aXN0aWNzQWZ0ZXJQcnVuaW5nKTsKKyAgICAgICAgICAgIGluaXRpYWxpemVTdGF0
aXN0aWNzQW5kUnVuVGVzdHMoMSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBsZXQgZmlsbGVyVXJsOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Cisg
ICAgICAgIGZpbGxlclVybCA9ICJodHRwOi8vMTI3LjAuIiArIGN1cnJlbnRUZXN0ICsgIi4xOjgw
MDAvdGVtcCI7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKGZpbGxlclVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oZmlsbGVyVXJsLCB0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vl
bihmaWxsZXJVcmwsIG5ld2VzdFRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29y
ZHMoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsK
KyAgICB9CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZh
bHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVu
RGF0YVJlY29yZHNSZW1vdmFsKDApOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NO
b3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NNYXhTdGF0aXN0aWNzRW50cmllcyh1cmxzVG9CZVBydW5lZC5s
ZW5ndGgpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcnVuZUVudHJpZXNEb3du
VG8odXJsc1RvQmVQcnVuZWQubGVuZ3RoKTsKKworICAgICAgICBjdXJyZW50VGVzdCA9IDE7Cisg
ICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxs
YmFjayhjaGVja1N0YXRpc3RpY3NBZnRlclBydW5pbmcpOworICAgICAgICBpbml0aWFsaXplU3Rh
dGlzdGljc0FuZFJ1blRlc3RzKDEpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1k
YXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdjMTQzOGIxODY0MDY0MmFhMTZmYzA2
YjY5ZDg0MWZkZjNiZjE2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRv
LWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAor
VGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIHNhbmRib3hlZCBpZnJhbWVzIGdldCBjb3VudGVkIHBy
b3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3Qi
LCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8x
MjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJl
ZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0Iikg
aXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRh
YmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjY3MTEyMDUwNjgxODM5MWNhOTY3ZmYyNGZmZmMwNThjOTIxOWY0
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1p
cC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3Rz
IGZvciBzYW5kYm94ZWQgaWZyYW1lcyBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAg
anNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJt
ZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5p
c2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNU
ZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUp
OworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0
YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7Cisg
ICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNl
aXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gIm51
bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09
PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2Uo
IkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsg
ZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2Fk
ZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAg
ICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9z
dCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9j
YWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVl
KCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6
Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRz
Q2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5M
b2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisgICAgPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc2NyaXB0cyIg
c3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMvcmVkaXJlY3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHAvP3JlZGlyZWN0VG89aHR0cDov
LzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2lmcmFtZS1y
ZXBvcnQtYmFjay1sb2FkZWQuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxv
Y2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdjMTQzOGIxODY0MDY0
MmFhMTZmYzA2YjY5ZDg0MWZkZjNiZjE2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGly
ZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBzYW5kYm94ZWQgaWZyYW1l
cyBnZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJo
dHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2Fs
aG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0
cDovL2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3Qt
dG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhv
c3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjAyNmJkOWMw
YzIxMmI3ZTVmMTY0OWI1OTNiOTc4ODNjZjMxNDhmYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApAQCAt
MCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlw
dCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAg
ICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3Igc2FuZGJveGVkIGlmcmFt
ZXMgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVl
OworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNz
YWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJ
VFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5
UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hl
Y2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBsYXN0
UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHNDaGVj
a2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsK
KyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikgeworICAgICAgICAgICAg
ICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAg
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1l
c3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAg
ICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAg
ICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlm
eU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkg
eworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lz
dGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAu
MSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3
LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6
Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAg
ICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAg
ICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMiIHNyYz0iaHR0cDovL2xvY2FsaG9z
dDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocC8/cmVk
aXJlY3RUbz1odHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNv
dXJjZXMvcmVkaXJlY3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9pZnJhbWUtcmVwb3J0LWJhY2stbG9hZGVkLmh0
bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZy
YW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRv
LWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIzNjU4Y2QzNDNmNTU2ZTBjMzQ0NzVlZjllZjQ1YzYyMGQ0ZDQy
N2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJv
eGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBzYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Bl
cmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAi
aHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NS
ZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcu
MC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFz
UmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMg
dHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUt
d2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAt
ZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTJkNTk5OTY0ZTdlNjJmZDA1ZmIwZDc4YWU1ZTI5
NjYwNTdhMDY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1s
CkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4K
KyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5k
Ym94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIHNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJv
cGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAg
ICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1
bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsK
KyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29y
ZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxT
dGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFp
bkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAg
ICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChl
dmVudC5vcmlnaW4gPT09ICJudWxsIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRh
LmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
ZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4
cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdl
SW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNr
ZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAg
ICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hv
dWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5k
ZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAg
ICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJl
Y3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNS
ZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOwor
CisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQ
YWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsK
KyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNhbmRi
b3g9ImFsbG93LXNjcmlwdHMiIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5k
Ym94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1s
b2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMzY1OGNkMzQzZjU1NmUwYzM0NDc1ZWY5ZWY0NWM2MjBkNGQ0MjdlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Nh
bmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZy
YW1lIG5lc3RlZCBpbiBhIHNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8v
MTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVy
ZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIp
IGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVj
dGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRi
b3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxv
Y2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUt
d2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9j
YWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGY4NmZlOGMzMjk0ZTI1MzkyMmMyNWVh
Mzc5MjdmZDVjOTQzNmZmOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1u
b24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMg
Zm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgc2FuZGJveGVkIGlmcmFtZSBn
ZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7Cisg
ICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2Us
IGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAg
ICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERh
dGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdl
c1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0
YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdl
SW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQg
PSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAg
ICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gIm51bGwiKSB7CisgICAgICAgICAgICAgICAg
aWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2Fn
ZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAg
ICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAg
aWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2Jz
ZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7Cisg
ICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJl
ZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikn
KTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdp
c3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4w
LjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xv
Y2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAg
ICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAg
ZmluaXNoVGVzdCgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc2NyaXB0cyIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgw
MDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcGFnZS13aXRoLW5vbi1zYW5kYm94
ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QuaHRtbCI+Cis8
L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0
aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjcxNWM4NWViNDdlMGYwODQxNmU2MWZkMDE1ZmQ3YWUzY2I4NjZiNjkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2Fu
ZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10
by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAK
K1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEg
bm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJl
ZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikg
aXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0
aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BB
U1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRw
Oi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5n
LWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRv
LWlwLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
NmU5NGE0NTk2OTg1NGQzZTM4OGQxMGFhZGNhZjBhMWQyYTRkYWFmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hl
ZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9j
YWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhh
dCByZWRpcmVjdHMgZm9yIGEgc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJv
eGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3lu
YyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVj
ZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewor
ICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0
cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxs
YmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAg
dmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBz
dGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShl
dmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gIm51bGwiKSB7CisgICAg
ICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIp
KTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2Vp
dmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2lu
KTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOwor
ICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0
KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNr
U3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8v
MTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0
dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEi
LCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRy
dWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAg
ICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc2NyaXB0cyIgc3JjPSJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcGFnZS13aXRo
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLmh0bWwiPgor
PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdp
dGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQxNmU2MWZkMDE1ZmQ3YWUzY2I4NjZi
NjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94
ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHBy
b3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3Qi
LCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8x
MjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJl
ZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0Iikg
aXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGly
ZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1p
ZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1s
b2NhbGhvc3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZTE5ZGQxMDAyMTE1ZDhhMTk0ZmMy
MjQxZDU4ZjRmODJlMDAyYmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRo
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1k
YXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZv
ciBhIHNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0
IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAg
ICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBm
YWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAg
ICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRh
YmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNX
aGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0
cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUlu
UmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0g
ZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAg
ICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikgeworICAgICAgICAgICAgICAgIGlm
IChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2Ug
ZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAg
ICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlm
IChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2Vy
dmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7
CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4x
IiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NS
ZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2Nh
bGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAg
ICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZp
bmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
aWZyYW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMiIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAw
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QuaHRtbCI+Cis8L2lmcmFt
ZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1k
ZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1k
ZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZGMwNzNkYTQ3Y2Jh
NDg2MDc3MjNkNGZkYjYzY2JhMTU2ZDg3ZTYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0b20tcHJldmFsZW50
LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTAgQEAKK1Rlc3QgZm9yIGVuYWJsaW5nIGRlYnVnIG1vZGUgYW5kIHRoYXQgaXQgYWxsb3dzIHNl
dHRpbmcgYSBjdXN0b20gZG9tYWluIGFzIGEgcHJldmFsZW50IHJlc291cmNlLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBodHRwOi8vbG9jYWxob3N0OjgwMDAgZ290IHNl
dCBhcyBhIGN1c3RvbSBwcmV2YWxlbnQgcmVzb3VyY2UgaW4gZGVidWcgbW9kZS4KK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1w
cmV2YWxlbnQtcmVzb3VyY2UtaW4tZGVidWctbW9kZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0b20tcHJldmFsZW50
LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZmRhODEy
MDE5YTllNzNmZjk1NTg5MTVlMGY4ODkyNmE4ZDkwNDlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0b20tcHJl
dmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDM2
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRh
IGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRl
c3QgZm9yIGVuYWJsaW5nIGRlYnVnIG1vZGUgYW5kIHRoYXQgaXQgYWxsb3dzIHNldHRpbmcgYSBj
dXN0b20gZG9tYWluIGFzIGEgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgIGpzVGVzdElzQXN5
bmMgPSB0cnVlOworCisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5h
bHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4p
KQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQodGhpcmRQYXJ0eU9yaWdpbiArICIgYWxyZWFk
eSBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZSh0aGlyZFBhcnR5T3Jp
Z2luLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NEZWJ1Z01vZGUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgh
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2lu
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQodGhpcmRQYXJ0eU9yaWdpbiAr
ICIgZGlkbid0IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKHRoaXJkUGFy
dHlPcmlnaW4gKyAiIGdvdCBzZXQgYXMgYSBjdXN0b20gcHJldmFsZW50IHJlc291cmNlIGluIGRl
YnVnIG1vZGUuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c0RlYnVnTW9kZShmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsK
KyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1v
cmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0
cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlZGlyZWN0
cy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2JkNTQzZWM5YWYzMjRiZDUwZGMx
ZDRjODZjZGIwOWU5YzRkNWIyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9y
LXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTUgQEAKK1Rlc3RzIHRoYXQgb25seSB0aGUgb3JpZ2luIGlzIHNlbnQgYXMgcmVm
ZXJyZXIgaW4gcmVkaXJlY3RzIHRvIHByZXZhbGVudCByZXNvdXJjZXMgd2l0aG91dCB1c2VyIGlu
dGVyYWN0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWZlcnJl
ciBpcyAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAt
cmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRh
dGFiYXNlLmh0bWwiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK2h0
dHA6Ly8xMjcuMC4wLjE6ODAwMC8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZh
bGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4t
Zm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iMGY4YTJmNDIwYjVhYTYyYzM3YTI1ZDRiZGRmZWQzM2EzM2JmYTVmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0
cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlZGlyZWN0
cy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
b25seSB0aGUgb3JpZ2luIGlzIHNlbnQgYXMgcmVmZXJyZXIgaW4gcmVkaXJlY3RzIHRvIHByZXZh
bGVudCByZXNvdXJjZXMgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLiIpOworICAgIGpzVGVzdElz
QXN5bmMgPSB0cnVlOworICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisK
KyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBj
b25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAg
IGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAg
ICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAg
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAgdmFyIHJl
ZmVycmVyOworICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgc2V0
RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0ZWQuIik7CisKKyAgICAgICAgZmV0Y2goInJl
c291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIpLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAg
ICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rp
b24oZGF0YSkgeworICAgICAgICAgICAgcmVmZXJyZXIgPSBkYXRhOworICAgICAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVu
dC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRtbCIpOworCisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9z
dCIsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAgICAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NV
cGRhdGVDb29raWVCbG9ja2luZyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgb3Bl
bklmcmFtZSgicmVzb3VyY2VzL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXJlZmVycmVyLnBo
cCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24o
ZXJyb3IpIHsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yLm1lc3NhZ2UpOworICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSk7
CisgICAgfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10
by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVz
dHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5Y2NiOWMyMWZmMDA3MWE5ODAy
MzliN2I3OTNmNTUxODdlYmVlNWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZv
ci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTYgQEAKK1Rlc3RzIHRoYXQgb25seSB0aGUgb3JpZ2luIGlzIHNlbnQgYXMgcmVm
ZXJyZXIgZm9yIHByZXZhbGVudCByZXNvdXJjZXMgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWZlcnJlciBpcyAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8t
b3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UuaHRtbCIK
K1BBU1MgcmVmZXJyZXIgaXMgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC8iCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCistLS0tLS0tLQorRnJhbWU6
ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC8KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJp
cC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1k
YXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJl
cXVlc3RzLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTVkNGYwMzY2Zjk3Y2ZjZTk0MjhhNmE4
NmU1MTU0ODM2MGUzMjE3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXBy
ZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjIg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cisg
ICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgb25seSB0aGUgb3JpZ2luIGlzIHNlbnQgYXMgcmVm
ZXJyZXIgZm9yIHByZXZhbGVudCByZXNvdXJjZXMgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLiIp
OworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJh
bWVzQXNUZXh0KCk7CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxl
cikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZy
YW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFu
ZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAg
ICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAg
fQorCisgICAgdmFyIHJlZmVycmVyOworICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2Uo
dHJ1ZSk7CisgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
aWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2Nh
bGhvc3QiKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3YXMgY2xhc3NpZmll
ZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0ZWQuIik7CisKKyAg
ICAgICAgZmV0Y2goInJlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIpLnRoZW4oZnVuY3Rpb24o
cmVzcG9uc2UpIHsKKyAgICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7CisgICAgICAg
IH0pLnRoZW4oZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgICAgcmVmZXJyZXIgPSBkYXRhOwor
ICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmln
aW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sIik7CisK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJo
dHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxo
b3N0IikpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQg
c2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgICBmZXRjaCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcmVzb3VyY2VzL2VjaG8tcmVmZXJyZXIucGhwIikudGhlbihmdW5jdGlvbihyZXNwb25z
ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsKKyAg
ICAgICAgICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbihkYXRhKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICByZWZlcnJlciA9IGRhdGE7CisgICAgICAgICAgICAgICAgICAgICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC8iKTsK
KworICAgICAgICAgICAgICAgICAgICAgICAgb3BlbklmcmFtZSgicmVzb3VyY2VzL3JlZGlyZWN0
LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3Jlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICAgICB9KS5j
YXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5s
b2coZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KS5jYXRjaChmdW5jdGlv
bihlcnJvcikgeworICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IubWVzc2FnZSk7CisgICAg
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9
KTsKKyAgICB9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9u
LW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rp
b24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0MzkyMmZkOTNmMWE1NDQ0ZjJj
YjA2ODg0ZWZjMzI5MGJhZTUxZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlv
bi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCB0aGUgc2Vzc2lvbiBpcyBzd2l0Y2hlZCB1cG9uIHRv
cCBmcmFtZSBuYXZpZ2F0aW9uIHRvIGEgcHJldmFsZW50IHJlc291cmNlIHdpdGggdXNlciBpbnRl
cmFjdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgU2hvdWxkIGhh
dmUgYW5kIGhhcyB0aGUgc2Vzc2lvbiBjb29raWUuCitQQVNTIFNob3VsZCBoYXZlIGFuZCBoYXMg
dGhlIHBlcnNpc3RlbnQgY29va2llLgorUEFTUyBPcmlnaW4gaGFzIGlzb2xhdGVkIHNlc3Npb24u
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3
aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24t
ZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVy
YWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTg4YzgxNTcwOTE4YjdlYTU1ODAwY2Zl
MzBmMTNmMDEwYzU5NGM2YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRv
LXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMTEg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEg
Y2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxzY3JpcHQ+Cisg
ICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdGhlIHNlc3Npb24gaXMgc3dpdGNoZWQgdXBvbiB0
b3AgZnJhbWUgbmF2aWdhdGlvbiB0byBhIHByZXZhbGVudCByZXNvdXJjZSB3aXRoIHVzZXIgaW50
ZXJhY3Rpb24uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBwcmV2
YWxlbnRPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBub25QcmV2
YWxlbnRPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCBzZXNzaW9u
Q29va2llTmFtZSA9ICJzZXNzaW9uQ29va2llIjsKKyAgICBjb25zdCBwZXJzaXN0ZW50Q29va2ll
TmFtZSA9ICJwZXJzaXN0ZW50Q29va2llIjsKKyAgICBjb25zdCB0d29NaW51dGVzSW5TZWNvbmRz
ID0gMTIwOworCisgICAgZnVuY3Rpb24gc2V0U2Vzc2lvbkNvb2tpZSgpIHsKKyAgICAgICAgZG9j
dW1lbnQuY29va2llID0gc2Vzc2lvbkNvb2tpZU5hbWUgKyAiPTE7IHBhdGg9LyI7CisgICAgfQor
CisgICAgZnVuY3Rpb24gc2V0UGVyc2lzdGVudENvb2tpZSgpIHsKKyAgICAgICAgZG9jdW1lbnQu
Y29va2llID0gcGVyc2lzdGVudENvb2tpZU5hbWUgKyAiPTE7IHBhdGg9LzsgTWF4LUFnZT0iICsg
dHdvTWludXRlc0luU2Vjb25kcyArICI7IjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjaGVja0Nv
b2tpZXMoc2hvdWxkSGF2ZVNlc3Npb25Db29raWUsIHNob3VsZEhhdmVQZXJzaXN0ZW50Q29va2ll
KSB7CisgICAgICAgIGxldCBoYXNTZXNzaW9uQ29va2llID0gKGRvY3VtZW50LmNvb2tpZSArICIi
KS5pbmNsdWRlcyhzZXNzaW9uQ29va2llTmFtZSksCisgICAgICAgICAgICBoYXNQZXJzaXN0ZW50
Q29va2llID0gKGRvY3VtZW50LmNvb2tpZSArICIiKS5pbmNsdWRlcyhwZXJzaXN0ZW50Q29va2ll
TmFtZSk7CisKKyAgICAgICAgaWYgKHNob3VsZEhhdmVTZXNzaW9uQ29va2llICYmIGhhc1Nlc3Np
b25Db29raWUpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91bGQgaGF2ZSBhbmQgaGFzIHRo
ZSBzZXNzaW9uIGNvb2tpZS4iKTsKKyAgICAgICAgZWxzZSBpZiAoc2hvdWxkSGF2ZVNlc3Npb25D
b29raWUgJiYgIWhhc1Nlc3Npb25Db29raWUpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNo
b3VsZCBoYXZlIGJ1dCBkb2Vzbid0IGhhdmUgdGhlIHNlc3Npb24gY29va2llLiIpOworICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSBl
bHNlIGlmICghc2hvdWxkSGF2ZVNlc3Npb25Db29raWUgJiYgaGFzU2Vzc2lvbkNvb2tpZSkgewor
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkbid0IGhhdmUgYnV0IGhhcyB0aGUgc2Vzc2lv
biBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hK
U1Rlc3QpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlNob3VsZG4n
dCBoYXZlIGFuZCBkb2Vzbid0IGhhdmUgdGhlIHNlc3Npb24gY29va2llLiIpOworCisKKyAgICAg
ICAgaWYgKHNob3VsZEhhdmVQZXJzaXN0ZW50Q29va2llICYmIGhhc1BlcnNpc3RlbnRDb29raWUp
CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91bGQgaGF2ZSBhbmQgaGFzIHRoZSBwZXJzaXN0
ZW50IGNvb2tpZS4iKTsKKyAgICAgICAgZWxzZSBpZiAoc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29r
aWUgJiYgIWhhc1BlcnNpc3RlbnRDb29raWUpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNo
b3VsZCBoYXZlIGJ1dCBkb2Vzbid0IGhhdmUgdGhlIHBlcnNpc3RlbnQgY29va2llLiIpOworICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAg
fSBlbHNlIGlmICghc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29raWUgJiYgaGFzUGVyc2lzdGVudENv
b2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkbid0IGhhdmUgYnV0IGhhcyB0
aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIlNob3VsZG4ndCBoYXZlIGFuZCBkb2Vzbid0IGhhdmUgdGhlIHBlcnNpc3RlbnQgY29va2ll
LiIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAo
ZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rp
b24ocHJldmFsZW50T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgc2V0U2Vzc2lvbkNvb2tpZSgpOworICAgICAgICAgICAgICAgICAgICBzZXRQZXJzaXN0ZW50
Q29va2llKCk7CisgICAgICAgICAgICAgICAgICAgIGNoZWNrQ29va2llcyh0cnVlLCB0cnVlKTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaGFzU3RhdGlzdGljc0lzb2xhdGVk
U2Vzc2lvbihwcmV2YWxlbnRPcmlnaW4pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJPcmlnaW4gaGFzIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIk9y
aWdpbiBoYXMgbm8gaXNvbGF0ZWQgc2Vzc2lvbi4iKTsKKyAgICAgICAgICAgICAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaHJlZiA9IG5vblByZXZhbGVudE9yaWdpbiArICIvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRo
LWludGVyYWN0aW9uLmh0bWwjc3RlcDIiOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAg
ICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBpZiAo
ZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luICE9PSBub25QcmV2YWxlbnRPcmlnaW4pCisgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlN0ZXAgMiBpcyBub3Qgb24gIiArIG5vblByZXZhbGVu
dE9yaWdpbiArICIuIik7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHByZXZhbGVudE9yaWdpbikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQocHJldmFsZW50T3JpZ2luICsgIiBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJl
c291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9
IHByZXZhbGVudE9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lv
bi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLmh0bWwjc3RlcDQi
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAg
ICAgICAgICAgICAgICBjaGVja0Nvb2tpZXModHJ1ZSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAg
aWYgKHRlc3RSdW5uZXIuaGFzU3RhdGlzdGljc0lzb2xhdGVkU2Vzc2lvbihwcmV2YWxlbnRPcmln
aW4pKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPcmlnaW4gaGFzIGlzb2xhdGVk
IHNlc3Npb24uIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJPcmlnaW4gaGFzIG5vIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAgICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiVW5rbm93biBoYXNoLiIpOworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1l
bnQubG9jYXRpb24uaGFzaCA9PT0gIiIpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9u
Lm9yaWdpbiAhPT0gcHJldmFsZW50T3JpZ2luKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGVz
dCBpcyBub3Qgc3RhcnRpbmcgb3V0IG9uICIgKyBwcmV2YWxlbnRPcmlnaW4gKyAiLiIpOworICAg
ICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudE9yaWdpbikpCisgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZChwcmV2YWxlbnRPcmlnaW4gKyAiIHdhcyBjbGFzc2lmaWVkIGFz
IHByZXZhbGVudCByZXNvdXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAgIH0pOworICAgIH0K
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mt
b3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1v
cmlnaW4tc3ViLWZyYW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODQyNzMw
YTQ1ZGFkZTZlYTZmMTVkZWNjMzlhN2U1YTlhMGUzMTJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rp
b24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxNCBAQAorVGVzdHMgdGhhdCB1c2VyIGludGVyYWN0aW9uIGlzIGFsd2F5cyBsb2dnZWQg
Zm9yIHRoZSB0b3AgZG9jdW1lbnQvZnJhbWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiBpcyB0b3BGcmFtZU9yaWdpbgorUEFT
UyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9y
aWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyB0cnVlCitQQVNT
IHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3Jp
Z2luKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0
YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42ZWY2MjNjMTgwZDYzZDNjNmI2MTBlZWIzNzFiZDg4NDU4NjFkZDhlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFz
ZS5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4K
KzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCJUZXN0cyB0aGF0IHVzZXIgaW50ZXJhY3Rpb24gaXMgYWx3YXlzIGxvZ2dlZCBmb3Ig
dGhlIHRvcCBkb2N1bWVudC9mcmFtZS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOwordGVzdFJ1
bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKworY29uc3QgdG9wRnJhbWVPcmlnaW4gPSAi
aHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKK2NvbnN0IHN1YkZyYW1lT3JpZ2luID0gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCI7CisKK2Z1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SWQpIHsK
KyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7Cisg
ICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRo
IC8gMjsKKyAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZz
ZXRIZWlnaHQgLyAyOworICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSk7
Cit9CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsK
KyAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKworICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2Us
IGZpbmlzaEpTVGVzdCk7Cit9CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHNldEVuYWJs
ZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVj
b3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3Rh
dGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGZpbmlzaFRlc3QpOworICAgICAgICB9
CisKKyAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiIsICJ0b3BGcmFt
ZU9yaWdpbiIpOworCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICBzaG91
bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0
b3BGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworCisg
ICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RGcmFtZSIpOworICAgICAgICB9CisgICAg
fSk7Cit9OworPC9zY3JpcHQ+Cis8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUiIHNyYz0iaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2R1bW15Lmh0bWwi
PjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBv
cnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1p
bnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1l
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDMyYmM4ZWQ3MzgxZmJjNDk4ZGIz
NGMwZmIzYmU3YTU3YmQ5MWQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRl
ZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxNyBAQAorVGVzdHMgdGhhdCB1c2VyIGludGVyYWN0aW9uIGlzIG5vdCByZXBv
cnRlZCByZXBlYXRlZGx5IHdpdGhpbiBhIHNob3J0IHBlcmlvZCBvZiB0aW1lLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gaXMg
dG9wRnJhbWVPcmlnaW4KK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFT
UyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9y
aWdpbikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbihzdWJGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNT
IHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3Jp
Z2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbihzdWJGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorVGhpcyBpcyB0aGUgdGVzdCBlbGVtZW50CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNl
ci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10
aW1lLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0
LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTVkZWI5NzI5YmQ1Yjli
OTYzN2MwOGI5OWM2MTMxNTM3YjYxYWEzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLW9ubHkt
cmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUtZGF0YWJhc2UuaHRtbApA
QCAtMCwwICsxLDY2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRp
b24oIlRlc3RzIHRoYXQgdXNlciBpbnRlcmFjdGlvbiBpcyBub3QgcmVwb3J0ZWQgcmVwZWF0ZWRs
eSB3aXRoaW4gYSBzaG9ydCBwZXJpb2Qgb2YgdGltZS4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCI7CisgICAgY29uc3Qgc3ViRnJhbWVPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsK
KworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SWQsIGNhbGxiYWNrKSB7Cisg
ICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsK
KyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNl
dFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVs
ZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50
ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOworICAg
ICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
ICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmlyc3RJbnRlcmFj
dGlvbigpIHsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NI
YXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIik7CisgICAgICAgIHNob3VsZEJl
RmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZy
YW1lT3JpZ2luKSIpOworICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RFbGVtZW50Iiwgc2Vj
b25kSW50ZXJhY3Rpb24pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNlY29uZEludGVyYWN0aW9u
KCkgeworICAgICAgICBzaG91bGRCZVRydWUoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAgICBzaG91bGRCZUZhbHNl
KCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9y
aWdpbikiKTsKKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luLCBm
YWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIik7
CisKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RFbGVtZW50IiwgZmluaXNo
VGVzdCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9u
IGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAgICBz
aG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bihzdWJGcmFtZU9yaWdpbikiKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBm
aW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIG9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAg
ICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50
LmxvY2F0aW9uLm9yaWdpbiIsICJ0b3BGcmFtZU9yaWdpbiIpOworCisgICAgICAgICAgICBmaXJz
dEludGVyYWN0aW9uKCk7CisgICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KKzxkaXYgaWQ9
InRlc3RFbGVtZW50Ij5UaGlzIGlzIHRoZSB0ZXN0IGVsZW1lbnQ8L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1v
dmFsLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUt
ZGF0YS1yZW1vdmFsLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjI4Yzk5YjMw
MjQ0NDU2MGI1MWIzNDhiOTYwMjFiMDU4NTZlYTNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24t
cmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3RzIHRoYXQgdXNlciBpbnRlcmFjdGlvbiBpcyByZXBvcnRl
ZCBhZnRlciBoaXN0b3J5IHJlbW92YWwgc2luY2UgdGhhdCBtZWFucyBhbGwgc3RhdGlzdGljcyBo
YXZlIGJlZW4gcmVzZXQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRv
Y3VtZW50LmxvY2F0aW9uLm9yaWdpbiBpcyB0b3BGcmFtZU9yaWdpbgorUEFTUyB0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFs
c2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3Vi
RnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxz
ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BG
cmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZhbHNl
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1RoaXMg
aXMgdGhlIHRlc3QgZWxlbWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vi
c2l0ZS1kYXRhLXJlbW92YWwtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdl
YnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmJlYjQyZjk0MmYx
YjY4ZmZhY2ZlMGVmYjFmZTkyMzk2MmYyMjY4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJl
cG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCAr
MSw2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9q
cy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0
cyB0aGF0IHVzZXIgaW50ZXJhY3Rpb24gaXMgcmVwb3J0ZWQgYWZ0ZXIgaGlzdG9yeSByZW1vdmFs
IHNpbmNlIHRoYXQgbWVhbnMgYWxsIHN0YXRpc3RpY3MgaGF2ZSBiZWVuIHJlc2V0LiIpOworICAg
IGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4gPSAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdWJGcmFtZU9yaWdpbiA9ICJodHRwOi8v
bG9jYWxob3N0OjgwMDAiOworCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJ
ZCwgY2FsbGJhY2spIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChlbGVtZW50SWQpOworICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVm
dCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1l
bnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBl
ci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlByb21pc2Ug
cmVqZWN0ZWQuIik7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBmaXJzdEludGVyYWN0aW9uKCkgeworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsK
KyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2Vy
SW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7CisgICAgICAgIGFjdGl2YXRlRWxlbWVudCgi
dGVzdEVsZW1lbnQiLCBjbGVhcldlYnNpdGVEYXRhKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBj
bGVhcldlYnNpdGVEYXRhKCkgeworICAgICAgICBzaG91bGRCZVRydWUoInRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAg
ICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKworICAgICAgICBpZiAodGVzdFJ1bm5lcikKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc0NsZWFyVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3Zh
bChzZWNvbmRJbnRlcmFjdGlvbik7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2Vjb25kSW50ZXJh
Y3Rpb24oKSB7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
SGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAgICBhY3RpdmF0
ZUVsZW1lbnQoInRlc3RFbGVtZW50IiwgZmluaXNoVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICAgICAg
c2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rp
b24oc3ViRnJhbWVPcmlnaW4pIik7CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBvbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHNob3VsZEJlKCJkb2N1bWVu
dC5sb2NhdGlvbi5vcmlnaW4iLCAidG9wRnJhbWVPcmlnaW4iKTsKKworICAgICAgICAgICAgZmly
c3RJbnRlcmFjdGlvbigpOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+Cis8ZGl2IGlk
PSJ0ZXN0RWxlbWVudCI+VGhpcyBpcyB0aGUgdGVzdCBlbGVtZW50PC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378489</attachid>
            <date>2019-09-10 14:16:01 -0700</date>
            <delta_ts>2019-09-12 09:39:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195420-20190910141558.patch</filename>
            <type>text/plain</type>
            <size>358747</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmRlOTQ0MjJjNzgwMGUz
Y2RlOGY1N2YyMTYyNjM1NzFhNDI0Mjc4Yi4uYzgyZDI5MTdkM2U5MDlmMWY1YWJkZmI2ODVkMGQ0
OTJjYWE0OTU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDE5LTA5LTEwICBLYXRo
ZXJpbmUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5h
YmxlIExheW91dFRlc3RzIHVzaW5nIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgU1FMaXRlIGJhY2tl
bmQgKDE5NTQyMCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NTQyMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQyMTM1NTE+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2Uu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Js
b2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0LWltcG9ydC1kYXRhYmFzZS5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1h
Z2UtZm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMt
d2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9y
LWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291
cmNlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5r
LXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVk
LWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZh
bGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LXdpdGhvdXQtbGluay1kZWNvcmF0aW9uLWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJh
c2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1m
cmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1
YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24t
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJh
c2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1v
cmlnaW5zLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2Ut
cmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
c3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJh
c2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJl
Y3RzLXRvLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJl
ZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRv
cC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXIt
aW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5k
LXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAg
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFz
ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1z
Y3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5h
dmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJl
Y3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVu
dC13aXRob3V0LWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZp
Z2F0aW9uLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5h
YmxlLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50
LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAg
ICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNv
dXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3Vy
Y2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2Uu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
bi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFz
ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9z
dC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hl
ZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2Fs
aG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1k
YXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1wcmV2
YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVkLWtleWRvd24t
ZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFs
ZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291
cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3Vy
Y2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFi
YXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFz
ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRh
dGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlm
cmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10
by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hl
ZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQt
bmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10
by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0b20tcHJldmFsZW50LXJlc291cmNlLWlu
LWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50
LXN1YnJlc291cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZv
ci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9u
LW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50
ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlv
bi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91
c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFi
YXNlLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oOgorICAg
ICAgIEFkZGVkIFdFQkNPUkVfRVhQT1JUIHByZWZpeCB0byBhIGZ1bmN0aW9uIG5lZWRlZCBpbiB0
aGUgRGF0YWJhc2UKKyAgICAgICBiYWNrZW5kIHRvIGNsZWFyIG91dCB0aGUgZGF0YWJhc2UuCisK
IDIwMTktMDktMTAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbW92ZSBNZWRpYVN0cmVhbVByaXZhdGU6OnNjaGVkdWxlRGVmZXJyZWRUYXNrCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IGE5ZjAzZTE3M2ZhNGI2OWY1MmFiNjNkYTgxNzZhNjI0MWY5Y2NhOTQuLjVkYWE3ZWFkMDE0
NmFhZjU2NWMzNjIzMjk1Zjg1MGIyOWRlN2EwODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTI3IEBA
CisyMDE5LTA5LTEwICBLYXRoZXJpbmUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5j
b20+CisKKyAgICAgICAgRW5hYmxlIExheW91dFRlc3RzIHVzaW5nIFJlc291cmNlTG9hZFN0YXRp
c3RpY3MgU1FMaXRlIGJhY2tlbmQgKDE5NTQyMCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTQyMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQy
MTM1NTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlKToKKyAgICAgICAg
UmVtb3ZlZCBwcmVwYXJlU3RhdGVtZW50cygpIGNhbGwgZnJvbSB0aGUgY29uc3RydWN0b3IuIFBy
ZXBhcmluZworICAgICAgICBzdGF0ZW1lbnRzIHRoZW4gcnVubmluZyBhIHZhY3V1bSBjb21tYW5k
IG9uIHRoZSBkYXRhYmFzZSByZXN1bHRzIGluIGFuCisgICAgICAgIGVycm9yICh0aGUgdmFjdXVt
IGNvbW1hbmQgaXMgY2FsbGVkIGludCB0aGUgcG9wdWxhdGVGcm9tTWVtb3J5U3RvcmUoKQorICAg
ICAgICBmdW5jdGlvbikKKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMpOgorICAgICAgICBBZGRlZCAyIHN0YXRl
bWVudHMgdGhhdCB3ZXJlIG5vdCBiZWluZyBwcmVwYXJlZC4gUmVtb3ZlZCBvbmUgc3RhdGVtZW50
CisgICAgICAgIHdoaWNoIGlzIGNhbGxlZCBpbiB0aGUgaXNFbXB0eSgpIGNoZWNrIChiZWZvcmUg
b3RoZXJzIGFyZSBwcmVwYXJlZCkgc28KKyAgICAgICAgaXQgY2FuIGJlIHByZXBhcmVkIHNlcGFy
YXRlbHkuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OnJlbGF0aW9uc2hpcEV4aXN0cyBjb25zdCk6CisgICAgICAgIENvcnJlY3RlZCBpbmNv
cnJlY3QgY2FwaXRhbGl6YXRpb24uCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OnBvcHVsYXRlRnJvbU1lbW9yeVN0b3JlKToKKyAgICAgICAg
TW92ZWQgdGhlIHByZXBhcmVTdGF0ZW1lbnRzKCkgY2FsbCBhZnRlciB0aGUgdmFjdXVtIGNvbW1h
bmQgaW4gdGhlIGNhc2UKKyAgICAgICAgd2hlcmUgdGhlIGRhdGFiYXNlIGlzIGVtcHR5LiBPdGhl
cndpc2UgY2FsbGVkIGl0IGJlZm9yZSByZXR1cm5pbmcuCisKKyAgICAgICAgKFdlYktpdDo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlY3Vyc2l2ZWx5RmluZE5vblByZXZh
bGVudERvbWFpbnNUaGF0UmVkaXJlY3RlZFRvVGhpc0RvbWFpbik6CisgICAgICAgIEFkZGVkIGEg
c3BhY2UgdG8gdGhlIFNRTCBjb21tYW5kcyB0byBjb3JyZWN0IHRoZSBzeW50YXguCisKKyAgICAg
ICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmZpbmROb3RW
ZXJ5UHJldmFsZW50UmVzb3VyY2VzKToKKyAgICAgICAgQ29ycmVjdGVkIGEgYnVnIGluIHRoZSBT
UUwgY29tbWFuZCBmb3IgcXVlcnlpbmcKKyAgICAgICAgc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9t
YWluLiBUaGUgb2xkIHF1ZXJ5IHdhcyBhc2tpbmcgZm9yIHN1YnJlc291cmNlLgorCisgICAgICAg
IChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFuZGZhdGhl
ckRhdGFGb3JEb21haW5zKToKKyAgICAgICAgVGhlIGdyYW5kZmF0aGVyaW5nLmh0bWwgdGVzdCB3
YXMgZmFpbGluZyBiZWNhdXNlIGRvbWFpbnMgd2VyZSBiZWluZworICAgICAgICAic2V0IiB0byBn
cmFuZGZhdGhlcmVkIGluIHRoZSBkYXRhYmFzZSBiZWZvcmUgYmVpbmcgaW5zZXJ0ZWQuIFRoaXMg
Zml4CisgICAgICAgIGVuc3VyZXMgYWxsIGRvbWFpbnMgYmVmb3JlIHNldHRpbmcgdGhlIGdyYW5k
ZmF0aGVyaW5nIGZsYWcuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbik6CisgICAgICAgIE11bHRpcGxlIHRl
c3RzIHdlcmUgZmFpbGluZyBiZWNhdXNlIHRoZSBxdWVyeSB0byBpbnNlcnQgdGhlIHJlbGF0aW9u
c2hpcAorICAgICAgICBmb3IgdGhlIHNvdXJjZSBkb21haW4gcmVsaWVzIG9uIHRoZSB0YXJnZXQg
ZG9tYWluIGJlaW5nIGluIHRoZQorICAgICAgICBPYnNlcnZlZERvbWFpbnMgdGFibGUuIFRoaXMg
cGF0Y2ggZW5zdXJlcyBhbGwgZG9tYWlucyBhcmUgYWRkZWQgYmVmb3JlCisgICAgICAgIHBlcmZv
cm1pbmcgdGhlIHF1ZXJ5LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpoYXNIYWRVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICBUaGUgU1FM
IHN0YXRlbWVudCB3YXMgYmVpbmcgYm91bmQgdG8gYSB2YWx1ZSBhbmQgbm90IGJlaW5nIHJlc2V0
LiBUaGlzCisgICAgICAgIHBhdGNoIHJlc2V0cyB0aGUgc3RhdGVtZW50IGFmdGVyIGJpbmRpbmcu
IEFkZGl0aW9uYWxseSwgdGhlIHN0ZXAoKQorICAgICAgICBmdW5jdGlvbiB3YXMgYmVpbmcgY29t
cGFyZWQgdG8gU1FMSVRFX0RPTkUgaW5zdGVhZCBvZiBTUUxJVEVfUk9XLAorICAgICAgICBjYXVz
aW5nIGFuIGVycm9yIGlmIHRoZSBxdWVyeSByZXR1cm5lZCByZXN1bHRzLiBUaGUKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCkgd2FzIGNhdXNpbmcgbnVsbCBzZWFyY2hlcyB0byBjcmFzaCBp
bnN0ZWFkIG9mCisgICAgICAgIHJldHVybmluZyBmYWxzZSAoaS5lLiBpZiBhIGRvbWFpbiBpcyBu
b3QgaW4gdGhlIGRhdGFiYXNlIGl0IHNob3VsZAorICAgICAgICByZXR1cm4gdGhhdCBpdCBoYXMg
bm8gdXNlciBpbnRlcmFjdGlvbiBpbnN0ZWFkIG9mIGNyYXNoaW5nKS4KKworICAgICAgICAoV2Vi
S2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlZGljYXRlVmFsdWVG
b3JEb21haW4gY29uc3QpOgorICAgICAgICBUaGUgU1FMIHN0YXRlbWVudCB3YXMgYmVpbmcgYm91
bmQgdG8gYSB2YWx1ZSBhbmQgbm90IGJlaW5nIHJlc2V0LiBUaGlzCisgICAgICAgIHBhdGNoIHJl
c2V0cyB0aGUgc3RhdGVtZW50IGFmdGVyIGJpbmRpbmcuIFNRTElURV9ET05FIGNoYW5nZWQgdG8K
KyAgICAgICAgU1FMSVRFX1JPVyB0byByZXR1cm4gbm9uLWVtcHR5IHF1ZXJ5IHJlc3VsdHMuIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpCisgICAgICAgIHJlbW92ZWQgZm9yIHRoZSBzYW1lIHJlYXNvbnMg
YXMgYWJvdmUuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OmVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKToK
KyAgICAgICAgRml4ZWQgdGhlIHJlbGVhc2UgbG9nIHN0YXRlbWVudCB3aGljaCB3YXMgbG9nZ2lu
ZyB0aGUgd3JvbmcgZnVuY3Rpb24KKyAgICAgICAgbmFtZS4KKworICAgICAgICAoV2ViS2l0OjpS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJEYXRhYmFzZUNvbnRlbnRz
KToKKyAgICAgICAgQ2xlYXJzIHRoZSBkYXRhYmFzZSBhbmQgcmVidWlsZHMgdGhlIHRhYmxlcyBv
biBhIGNsZWFyIGNvbW1hbmQgdG8KKyAgICAgICAgbWF0Y2ggdGhlIGZ1bmN0aW9uYWxpdHkgaW4g
dGhlIE1lbW9yeSBTdG9yZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXIpOgorICAgICAgICBDYWxsIHRoZSBjbGVhckRhdGFiYXNl
Q29udGVudHMgZnVuY3Rpb24gdG8gbWF0Y2ggdGhlIGZ1bmN0aW9uYWxpdHkKKyAgICAgICAgaW4g
dGhlIE1lbW9yeSBTdG9yZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVW5leHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9uKToK
KyAgICAgICAgVGVzdHMgd2VyZSBmYWlsaW5nIGJlY2F1c2Ugc2hvdWxkUmVtb3ZlQWxsV2Vic2l0
ZURhdGFGb3IoKSB3YXMgbm90CisgICAgICAgIGNoZWNraW5nIGZvciBleHBpcmVkIHVzZXIgaW50
ZXJhY3Rpb24uIE1hdGNoZWQgZnVuY3Rpb25hbGl0eSBpbiB0aGUKKyAgICAgICAgTWVtb3J5IFN0
b3JlLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvcik6CisgICAgICAgIFRlc3RzIHdlcmUg
ZmFpbGluZyBiZWNhdXNlIHNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9yKCkgd2FzIG5vdAor
ICAgICAgICBjaGVja2luZyBmb3IgZXhwaXJlZCB1c2VyIGludGVyYWN0aW9uLiBNYXRjaGVkIGZ1
bmN0aW9uYWxpdHkgaW4gdGhlCisgICAgICAgIE1lbW9yeSBTdG9yZS4KKworICAgICAgICAoV2Vi
S2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJ1bmVTdGF0aXN0aWNz
SWZOZWVkZWQpOgorICAgICAgICBMYXN0IHNlZW4gc2hvdWxkIGJlIHNvcnRlZCBpbiBhc2NlbmRp
bmcgb3JkZXIgYmVjYXVzZSB5b3Ugd2FudCB0bworICAgICAgICBwcnVuZSB0aGUgb2xkZXIgc3Rh
dGlzdGljcyBmaXJzdCwgd2hpY2ggd2lsbCBoYXZlIGEgbG93ZXIgbGFzdFNlZW4KKyAgICAgICAg
ZmllbGQgKHNlY29uZHNTaW5jZUVwb2NoKCkgd2lsbCBiZSBsb3dlciBmb3Igb2xkZXIgdmFsdWVz
KS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6c2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3IgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICBEZWxldGVkIGNvbnN0IHNwZWNpZmllciBiZWNhdXNlIHRoZSBmdW5jdGlvbiBuZWVkcyB0byBj
bGVhciB0aGUKKyAgICAgICAgZGF0YWJhc2UuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmg6CisgICAgICAg
IERlY2xhcmVkIG5ldyBmdW5jdGlvbnMuIFVwZGF0ZWQgc3BlbGxpbmcgZXJyb3IgKHJlZ2lzdGVy
YWJsZSAtLT4KKyAgICAgICAgcmVnaXN0cmFibGUpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZSk6CisgICAgICAgIFNlcGFyYXRlZCB0aGUgcmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlIGNyZWF0aW9uIHByb2Nlc3MgaW50byBpdHMKKyAgICAgICAgb3duIG1ldGhv
ZCBzbyBpdCBjYW4gYmUgY2FsbGVkIGJ5IHRoZSB0ZXN0LgorCisgICAgICAgIChXZWJLaXQ6Oldl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aW5pdGlhbGl6ZVN0YXRpc3RpY3NTdG9yZSk6
CisgICAgICAgIFNlcGFyYXRlZCB0aGUgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIGNyZWF0
aW9uIHByb2Nlc3MgaW50byBpdHMKKyAgICAgICAgb3duIG1ldGhvZCBzbyBpdCBjYW4gYmUgY2Fs
bGVkIGJ5IHRoZSB0ZXN0LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAgRGVjbGFyZWQgbmV3IGZ1
bmN0aW9uLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0VXNlSVRQRGF0YWJhc2UpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHA6CisgICAgICAgIChXS1dlYnNpdGVEYXRh
U3RvcmVTZXRVc2VJVFBEYXRhYmFzZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vi
c2l0ZURhdGFTdG9yZVJlZi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpz
ZXRVc2VJVFBEYXRhYmFzZSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0VXNlSVRQ
RGF0YWJhc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmg6CisgICAgICAgIFBhc3NlZCB0aGUgc2V0VXNlSVRQRGF0YWJhc2UgZmxhZyB0byB0aGUg
aW5pdGlhbGl6YXRpb24gZnVuY3Rpb24KKyAgICAgICAgb2YgdGhlIHN0YXRpc3RpY3Mgc3RvcmUg
dG8gZW5hYmxlIHRoZSBkYXRhYmFzZSBiYWNrZW5kLgorCisKIDIwMTktMDktMTAgIEFkcmlhbiBQ
ZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVd
IEZpeGVzIGZvciBub24tdW5pZmllZCBidWlsZHMgYWZ0ZXIgcjI0OTAyMgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAppbmRleCAxNDk4NjZmYmMxMTk3YmEw
OWRhMjE1NzVmMWNlYWZhZDY0MTlmZTZiLi4wMTRkZTBlOWI0ODAzNDRmMTc3YzMwZDNkMDgxYmI1
OWZkN2RmM2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJh
c2UuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCByZXR1cm5zQXRMZWFzdE9u
ZVJlc3VsdChjb25zdCBTdHJpbmcmKTsKICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHRh
YmxlRXhpc3RzKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgY2xlYXJBbGxUYWJsZXMoKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyQWxsVGFibGVzKCk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgaW50IHJ1blZhY3V1bUNvbW1hbmQoKTsKICAgICBpbnQgcnVuSW5jcmVtZW50YWxWYWN1dW1D
b21tYW5kKCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmNwcAppbmRleCBkNGVjODRjN2M3ZDJlMTViNGU3OGMwMjliYTE2ZjIy
NjY3ZGMyMzY2Li45YTRjYzc0NGMxMTU5OGYwMjI5OWQ0NzQ0ODZmMThlZDAxN2E4YjVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5j
cHAKQEAgLTIxMywxMiArMjEzLDYgQEAgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlKFdlYlJlc28KICAgICAgICAg
fQogICAgIH0KIAotICAgIGlmICghcHJlcGFyZVN0YXRlbWVudHMoKSkgewotICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1Ymxp
Y31zLCBkYXRhYmFzZSBwYXRoOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSwgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aC51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICB3b3Jr
UXVldWUuZGlzcGF0Y2hBZnRlcig1X3MsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0g
ewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+Y2FsY3VsYXRl
QW5kU3VibWl0VGVsZW1ldHJ5KCk7CkBAIC0zMDAsOCArMjk0LDcgQEAgYm9vbCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMoKQogewogICAgIEFT
U0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICAKLSAgICBpZiAobV9vYnNlcnZlZERv
bWFpbkNvdW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgfHwgbV9pbnNlcnRPYnNl
cnZlZERvbWFpblN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgaWYgKG1faW5z
ZXJ0T2JzZXJ2ZWREb21haW5TdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwogICAgICAg
ICB8fCBtX2luc2VydFRvcExldmVsRG9tYWluU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVf
T0sKICAgICAgICAgfHwgbV9kb21haW5JREZyb21TdHJpbmdTdGF0ZW1lbnQucHJlcGFyZSgpICE9
IFNRTElURV9PSwogICAgICAgICB8fCBtX3N0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWlu
c1N0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCkBAIC0zMjgsNyArMzIxLDggQEAgYm9v
bCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMo
KQogICAgICAgICB8fCBtX3VwZGF0ZUdyYW5kZmF0aGVyZWRTdGF0ZW1lbnQucHJlcGFyZSgpICE9
IFNRTElURV9PSwogICAgICAgICB8fCBtX2lzR3JhbmRmYXRoZXJlZFN0YXRlbWVudC5wcmVwYXJl
KCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fZmluZEV4cGlyZWRVc2VySW50ZXJhY3Rpb25T
dGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwotICAgICAgICApIHsKKyAgICAgICAgfHwg
bV90b3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb20ucHJlcGFyZSgpICE9IFNRTElURV9PSworICAg
ICAgICB8fCBtX3RvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbUV4aXN0cy5wcmVwYXJlKCkgIT0g
U1FMSVRFX09LKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJlU3RhdGVtZW50cyBmYWls
ZWQgdG8gcHJlcGFyZSwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJh
c2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtMzg0LDEyICszNzgsMTIgQEAgYm9vbCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVsYXRpb25zaGlwRXhpc3RzKFdlYkNvcmU6OlNRTGl0
ZVN0YXQKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICAKLSAgICBib29sIHJlbGF0
aW9uU2hpcEV4aXN0cyA9ICEhc3RhdGVtZW50LmdldENvbHVtbkludCgwKTsKKyAgICBib29sIHJl
bGF0aW9uc2hpcEV4aXN0cyA9ICEhc3RhdGVtZW50LmdldENvbHVtbkludCgwKTsKIAogICAgIGlu
dCByZXNldFJlc3VsdCA9IHN0YXRlbWVudC5yZXNldCgpOwogICAgIEFTU0VSVF9VTlVTRUQocmVz
ZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNRTElURV9PSyk7CiAgICAgCi0gICAgcmV0dXJuIHJl
bGF0aW9uU2hpcEV4aXN0czsKKyAgICByZXR1cm4gcmVsYXRpb25zaGlwRXhpc3RzOwogfQogCiBi
b29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNlcnREb21haW5SZWxh
dGlvbnNoaXAoV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50JiBzdGF0ZW1lbnQsIHVuc2lnbmVkIGRv
bWFpbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWUpCkBAIC00ODYsOCArNDgw
LDE2IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBvcHVsYXRl
RnJvbU1lbW9yeVN0b3JlKGNvbnN0IFJlc291cmNlCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjpp
c01haW4oKSk7CiAKLSAgICBpZiAoIWlzRW1wdHkoKSkKKyAgICBtX29ic2VydmVkRG9tYWluQ291
bnQucHJlcGFyZSgpOworCisgICAgaWYgKCFpc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKCFwcmVw
YXJlU3RhdGVtZW50cygpKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3Jr
LCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRl
bWVudHMgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zLCBkYXRhYmFzZSBwYXRoOiAl
e3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSwgbV9zdG9yYWdlRGly
ZWN0b3J5UGF0aC51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKKyAg
ICB9CiAKICAgICBhdXRvJiBzdGF0aXN0aWNzTWFwID0gbWVtb3J5U3RvcmUuZGF0YSgpOwogICAg
IGZvciAoY29uc3QgYXV0byYgc3RhdGlzdGljIDogc3RhdGlzdGljc01hcCkKQEAgLTQ5OSw2ICs1
MDEsMTIgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cG9wdWxh
dGVGcm9tTWVtb3J5U3RvcmUoY29uc3QgUmVzb3VyY2UKICAgICAgICAgaW5zZXJ0RG9tYWluUmVs
YXRpb25zaGlwcyhzdGF0aXN0aWMudmFsdWUpOwogCiAgICAgbV9kYXRhYmFzZS5ydW5WYWN1dW1D
b21tYW5kKCk7CisKKyAgICBpZiAoIXByZXBhcmVTdGF0ZW1lbnRzKCkpIHsKKyAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OnByZXBhcmVTdGF0ZW1lbnRzIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJs
aWN9cywgZGF0YWJhc2UgcGF0aDogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVy
cm9yTXNnKCksIG1fc3RvcmFnZURpcmVjdG9yeVBhdGgudXRmOCgpLmRhdGEoKSk7CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQogfQogCiB2b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjYWxjdWxhdGVBbmRTdWJtaXRU
ZWxlbWV0cnkoKSBjb25zdApAQCAtNTQ2LDcgKzU1NCw3IEBAIHVuc2lnbmVkIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWN1cnNpdmVseUZpbmROb25QcmV2YWxlbnREb21h
aW5zCiAgICAgKytudW1iZXJPZlJlY3Vyc2l2ZUNhbGxzOwogCiAgICAgU3RkU2V0PHVuc2lnbmVk
PiBuZXdseUlkZW50aWZpZWREb21haW5zOwotICAgIFNRTGl0ZVN0YXRlbWVudCBmaW5kU3VicmVz
b3VyY2VzKG1fZGF0YWJhc2UsIG1ha2VTdHJpbmcoIlNFTEVDVCBTdWJyZXNvdXJjZVVuaXF1ZVJl
ZGlyZWN0c0Zyb20uZnJvbURvbWFpbklEIGZyb20gU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNG
cm9tIElOTkVSIEpPSU4gT2JzZXJ2ZWREb21haW5zIE9OIE9ic2VydmVkRG9tYWlucy5kb21haW5J
RCA9IFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQgV0hFUkUgc3Vi
cmVzb3VyY2VEb21haW5JRCA9ICIsIFN0cmluZzo6bnVtYmVyKHByaW1hcnlEb21haW5JRCksICJB
TkQgT2JzZXJ2ZWREb21haW5zLmlzUHJldmFsZW50ID0gMCIpKTsKKyAgICBTUUxpdGVTdGF0ZW1l
bnQgZmluZFN1YnJlc291cmNlcyhtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgU3VicmVz
b3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5JRCBmcm9tIFN1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RzRnJvbSBJTk5FUiBKT0lOIE9ic2VydmVkRG9tYWlucyBPTiBPYnNlcnZlZERv
bWFpbnMuZG9tYWluSUQgPSBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20uZnJvbURvbWFp
bklEIFdIRVJFIHN1YnJlc291cmNlRG9tYWluSUQgPSAiLCBTdHJpbmc6Om51bWJlcihwcmltYXJ5
RG9tYWluSUQpLCAiIEFORCBPYnNlcnZlZERvbWFpbnMuaXNQcmV2YWxlbnQgPSAwIikpOwogICAg
IGlmIChmaW5kU3VicmVzb3VyY2VzLnByZXBhcmUoKSA9PSBTUUxJVEVfT0spIHsKICAgICAgICAg
d2hpbGUgKGZpbmRTdWJyZXNvdXJjZXMuc3RlcCgpID09IFNRTElURV9ST1cpIHsKICAgICAgICAg
ICAgIGF1dG8gbmV3RG9tYWluSUQgPSBmaW5kU3VicmVzb3VyY2VzLmdldENvbHVtbkludCgwKTsK
QEAgLTU1Niw3ICs1NjQsNyBAQCB1bnNpZ25lZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6cmVjdXJzaXZlbHlGaW5kTm9uUHJldmFsZW50RG9tYWlucwogICAgICAgICB9CiAg
ICAgfQogCi0gICAgU1FMaXRlU3RhdGVtZW50IGZpbmRUb3BGcmFtZXMobV9kYXRhYmFzZSwgbWFr
ZVN0cmluZygiU0VMRUNUIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQg
ZnJvbSBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20gSU5ORVIgSk9JTiBPYnNlcnZlZERvbWFp
bnMgT04gT2JzZXJ2ZWREb21haW5zLmRvbWFpbklEID0gVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNG
cm9tLmZyb21Eb21haW5JRCBXSEVSRSB0YXJnZXREb21haW5JRCA9ICIsIFN0cmluZzo6bnVtYmVy
KHByaW1hcnlEb21haW5JRCksICJBTkQgT2JzZXJ2ZWREb21haW5zLmlzUHJldmFsZW50ID0gMCIp
KTsKKyAgICBTUUxpdGVTdGF0ZW1lbnQgZmluZFRvcEZyYW1lcyhtX2RhdGFiYXNlLCBtYWtlU3Ry
aW5nKCJTRUxFQ1QgVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5JRCBmcm9t
IFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSBJTk5FUiBKT0lOIE9ic2VydmVkRG9tYWlucyBP
TiBPYnNlcnZlZERvbWFpbnMuZG9tYWluSUQgPSBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20u
ZnJvbURvbWFpbklEIFdIRVJFIHRhcmdldERvbWFpbklEID0gIiwgU3RyaW5nOjpudW1iZXIocHJp
bWFyeURvbWFpbklEKSwgIiBBTkQgT2JzZXJ2ZWREb21haW5zLmlzUHJldmFsZW50ID0gMCIpKTsK
ICAgICBpZiAoZmluZFRvcEZyYW1lcy5wcmVwYXJlKCkgPT0gU1FMSVRFX09LKSB7CiAgICAgICAg
IHdoaWxlIChmaW5kVG9wRnJhbWVzLnN0ZXAoKSA9PSBTUUxJVEVfUk9XKSB7CiAgICAgICAgICAg
ICBhdXRvIG5ld0RvbWFpbklEID0gZmluZFRvcEZyYW1lcy5nZXRDb2x1bW5JbnQoMCk7CkBAIC02
NTcsNyArNjY1LDcgQEAgSGFzaE1hcDx1bnNpZ25lZCwgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6Ok5vdFZlcnlQcmV2YWxlbnRSZXNvdXJjZXMKICAgICAgICAgfQogICAgIH0K
IAotICAgIFNRTGl0ZVN0YXRlbWVudCBzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnRT
dGF0ZW1lbnQobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIHN1YnJlc291cmNlRG9tYWlu
SUQsIENPVU5UKHRvcEZyYW1lRG9tYWluSUQpIEZST00gU3VicmVzb3VyY2VVbmRlclRvcEZyYW1l
RG9tYWlucyBXSEVSRSBzdWJyZXNvdXJjZURvbWFpbklEIElOICgiLCBkb21haW5JRHNPZkludGVy
ZXN0LCAiKSBHUk9VUCBCWSBzdWJyZXNvdXJjZURvbWFpbklEIikpOworICAgIFNRTGl0ZVN0YXRl
bWVudCBzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnRTdGF0ZW1lbnQobV9kYXRhYmFz
ZSwgbWFrZVN0cmluZygiU0VMRUNUIHN1YmZyYW1lRG9tYWluSUQsIENPVU5UKHRvcEZyYW1lRG9t
YWluSUQpIEZST00gU3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlucyBXSEVSRSBzdWJmcmFtZURv
bWFpbklEIElOICgiLCBkb21haW5JRHNPZkludGVyZXN0LCAiKSBHUk9VUCBCWSBzdWJmcmFtZURv
bWFpbklEIikpOwogICAgIGlmIChzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnRTdGF0
ZW1lbnQucHJlcGFyZSgpID09IFNRTElURV9PSykgewogICAgICAgICB3aGlsZSAoc3ViZnJhbWVV
bmRlclRvcEZyYW1lRG9tYWluc0NvdW50U3RhdGVtZW50LnN0ZXAoKSA9PSBTUUxJVEVfUk9XKSB7
CiAgICAgICAgICAgICB1bnNpZ25lZCBkb21haW5JRCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihz
dWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnRTdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDAp
KTsKQEAgLTY4NywxMiArNjk1LDEyIEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OnJlY2xhc3NpZnlSZXNvdXJjZXMoKQogICAgIGF1dG8gbm90VmVyeVByZXZhbGVu
dFJlc291cmNlcyA9IGZpbmROb3RWZXJ5UHJldmFsZW50UmVzb3VyY2VzKCk7CiAKICAgICBmb3Ig
KGF1dG8mIHJlc291cmNlU3RhdGlzdGljIDogbm90VmVyeVByZXZhbGVudFJlc291cmNlcy52YWx1
ZXMoKSkgewotICAgICAgICBpZiAoc2hvdWxkU2tpcChyZXNvdXJjZVN0YXRpc3RpYy5yZWdpc3Rl
cmFibGVEb21haW4pKQorICAgICAgICBpZiAoc2hvdWxkU2tpcChyZXNvdXJjZVN0YXRpc3RpYy5y
ZWdpc3RyYWJsZURvbWFpbikpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBhdXRv
IG5ld1ByZXZhbGVuY2UgPSBjbGFzc2lmaWVyKCkuY2FsY3VsYXRlUmVzb3VyY2VQcmV2YWxlbmNl
KHJlc291cmNlU3RhdGlzdGljLnN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnNDb3VudCwg
cmVzb3VyY2VTdGF0aXN0aWMuc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb0NvdW50LCByZXNv
dXJjZVN0YXRpc3RpYy5zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnQsIHJlc291cmNl
U3RhdGlzdGljLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9Db3VudCwgcmVzb3VyY2VTdGF0aXN0
aWMucHJldmFsZW5jZSk7CiAgICAgICAgIGlmIChuZXdQcmV2YWxlbmNlICE9IHJlc291cmNlU3Rh
dGlzdGljLnByZXZhbGVuY2UpCi0gICAgICAgICAgICBzZXRQcmV2YWxlbnRSZXNvdXJjZShyZXNv
dXJjZVN0YXRpc3RpYy5yZWdpc3RlcmFibGVEb21haW4sIG5ld1ByZXZhbGVuY2UpOworICAgICAg
ICAgICAgc2V0UHJldmFsZW50UmVzb3VyY2UocmVzb3VyY2VTdGF0aXN0aWMucmVnaXN0cmFibGVE
b21haW4sIG5ld1ByZXZhbGVuY2UpOwogICAgIH0KIH0KIApAQCAtODUxLDYgKzg1OSw5IEBAIHZv
aWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW5kZmF0aGVyRGF0YUZv
ckRvbWFpbnMoY29uc3QgSGFzaFNlCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7
CiAKKyAgICBmb3IgKGF1dG8mIHJlZ0RvbWFpbiA6IGRvbWFpbnMpCisgICAgICAgIGVuc3VyZVJl
c291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHJlZ0RvbWFpbik7CisKICAgICBT
UUxpdGVTdGF0ZW1lbnQgZG9tYWluc1RvVXBkYXRlU3RhdGVtZW50KG1fZGF0YWJhc2UsIG1ha2VT
dHJpbmcoIlVQREFURSBPYnNlcnZlZERvbWFpbnMgU0VUIGdyYW5kZmF0aGVyZWQgPSAxIFdIRVJF
IHJlZ2lzdHJhYmxlRG9tYWluIElOICgiLCBkb21haW5zVG9TdHJpbmcoZG9tYWlucyksICIpIikp
OwogICAgIGlmIChkb21haW5zVG9VcGRhdGVTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9P
SwogICAgICAgICB8fCBkb21haW5zVG9VcGRhdGVTdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9E
T05FKSB7CkBAIC04OTQsNyArOTA1LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG8KICAgICBp
ZiAoIWlzTWFpbkZyYW1lICYmICEoYXJlVGFyZ2V0QW5kVG9wRnJhbWVEb21haW5zU2FtZVNpdGUg
fHwgYXJlVGFyZ2V0QW5kU291cmNlRG9tYWluc1NhbWVTaXRlKSkgewogICAgICAgICBhdXRvIHRh
cmdldFJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWlu
KHRhcmdldERvbWFpbik7CiAgICAgICAgIHVwZGF0ZUxhc3RTZWVuKHRhcmdldERvbWFpbiwgUmVz
b3VyY2VMb2FkU3RhdGlzdGljczo6cmVkdWNlVGltZVJlc29sdXRpb24oV2FsbFRpbWU6Om5vdygp
KSk7Ci0KKyAgICAgICAgZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21h
aW4odG9wRnJhbWVEb21haW4pOwogICAgICAgICBpZiAoIXJlbGF0aW9uc2hpcEV4aXN0cyhtX3N1
YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbkV4aXN0cywgdGFyZ2V0UmVzdWx0LnNlY29uZCwgdG9w
RnJhbWVEb21haW4pKSB7CiAgICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9z
dWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zLCB0YXJnZXRSZXN1bHQuc2Vjb25kLCB0b3BGcmFt
ZURvbWFpbik7CiAgICAgICAgICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVlOwpAQCAt
OTA0LDI0ICs5MTUsMjUgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG8KICAgICBpZiAoaXNSZWRp
cmVjdCAmJiAhYXJlVGFyZ2V0QW5kU291cmNlRG9tYWluc1NhbWVTaXRlKSB7CiAgICAgICAgIGlm
IChpc01haW5GcmFtZSkgewogICAgICAgICAgICAgYXV0byByZWRpcmVjdGluZ0RvbWFpblJlc3Vs
dCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHNvdXJjZURv
bWFpbik7CisgICAgICAgICAgICBhdXRvIHRhcmdldFJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3Rh
dGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHRhcmdldERvbWFpbik7CisKICAgICAgICAgICAg
IGlmICghcmVsYXRpb25zaGlwRXhpc3RzKG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb0V4aXN0
cywgcmVkaXJlY3RpbmdEb21haW5SZXN1bHQuc2Vjb25kLCB0YXJnZXREb21haW4pKSB7CiAgICAg
ICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fdG9wRnJhbWVVbmlxdWVSZWRp
cmVjdHNUbywgcmVkaXJlY3RpbmdEb21haW5SZXN1bHQuc2Vjb25kLCB0YXJnZXREb21haW4pOwog
ICAgICAgICAgICAgICAgIHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7CiAgICAgICAgICAg
ICB9CiAKLSAgICAgICAgICAgIGF1dG8gdGFyZ2V0UmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0
aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4odGFyZ2V0RG9tYWluKTsKICAgICAgICAgICAgIGlm
ICghcmVsYXRpb25zaGlwRXhpc3RzKG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tRXhpc3Rz
LCB0YXJnZXRSZXN1bHQuc2Vjb25kLCBzb3VyY2VEb21haW4pKSB7CiAgICAgICAgICAgICAgICAg
aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLCB0
YXJnZXRSZXN1bHQuc2Vjb25kLCBzb3VyY2VEb21haW4pOwogICAgICAgICAgICAgICAgIHN0YXRp
c3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICBhdXRvIHJlZGlyZWN0aW5nRG9tYWluUmVzdWx0ID0gZW5zdXJlUmVzb3Vy
Y2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4oc291cmNlRG9tYWluKTsKKyAgICAgICAg
ICAgIGF1dG8gdGFyZ2V0UmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0
cmFibGVEb21haW4odGFyZ2V0RG9tYWluKTsKICAgICAgICAgICAgIGlmICghcmVsYXRpb25zaGlw
RXhpc3RzKG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb0V4aXN0cywgcmVkaXJlY3RpbmdE
b21haW5SZXN1bHQuc2Vjb25kLCB0YXJnZXREb21haW4pKSB7CiAgICAgICAgICAgICAgICAgaW5z
ZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbywgcmVk
aXJlY3RpbmdEb21haW5SZXN1bHQuc2Vjb25kLCB0YXJnZXREb21haW4pOwogICAgICAgICAgICAg
ICAgIHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIGF1dG8gdGFyZ2V0UmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVn
aXN0cmFibGVEb21haW4odGFyZ2V0RG9tYWluKTsKICAgICAgICAgICAgIGlmICghcmVsYXRpb25z
aGlwRXhpc3RzKG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tRXhpc3RzLCB0YXJnZXRS
ZXN1bHQuc2Vjb25kLCBzb3VyY2VEb21haW4pKSB7CiAgICAgICAgICAgICAgICAgaW5zZXJ0RG9t
YWluUmVsYXRpb25zaGlwKG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLCB0YXJnZXRS
ZXN1bHQuc2Vjb25kLCBzb3VyY2VEb21haW4pOwogICAgICAgICAgICAgICAgIHN0YXRpc3RpY3NX
ZXJlVXBkYXRlZCA9IHRydWU7CkBAIC05OTEsMTUgKzEwMDMsMjAgQEAgYm9vbCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVXNlckludGVyYWN0aW9uKGNvbnN0IFJl
Z2lzdHJhYmwKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGlmIChtX2hh
ZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5iaW5kVGV4dCgxLCBkb21haW4uc3RyaW5nKCkpICE9
IFNRTElURV9PSwotICAgICAgICB8fCBtX2hhZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5zdGVw
KCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywg
IiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1fdXBkYXRlUHJldmFs
ZW50UmVzb3VyY2VTdGF0ZW1lbnQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwg
dGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICB8fCBtX2hhZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5zdGVwKCkg
IT0gU1FMSVRFX1JPVykgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAg
LSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV9oYWRVc2VySW50ZXJhY3Rp
b25TdGF0ZW1lbnQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9k
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisKKyAgICAgICAgaW50IHJlc2V0UmVzdWx0ID0gbV9o
YWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQucmVzZXQoKTsKKyAgICAgICAgQVNTRVJUX1VOVVNF
RChyZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQgPT0gU1FMSVRFX09LKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIAogICAgIGJvb2wgaGFkVXNlckludGVyYWN0aW9uID0gISFtX2hhZFVz
ZXJJbnRlcmFjdGlvblN0YXRlbWVudC5nZXRDb2x1bW5JbnQoMCk7Ci0gICAgaWYgKCFoYWRVc2Vy
SW50ZXJhY3Rpb24pCisgICAgaWYgKCFoYWRVc2VySW50ZXJhY3Rpb24pIHsKKyAgICAgICAgaW50
IHJlc2V0UmVzdWx0ID0gbV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQucmVzZXQoKTsKKyAg
ICAgICAgQVNTRVJUX1VOVVNFRChyZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQgPT0gU1FMSVRFX09L
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KICAgICAKICAgICBXYWxsVGltZSBtb3N0
UmVjZW50VXNlckludGVyYWN0aW9uVGltZSA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhtX2hh
ZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5nZXRDb2x1bW5Eb3VibGUoMSkpOwogCkBAIC0xMDEx
LDYgKzEwMjgsOSBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpo
YXNIYWRVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0cmFibAogICAgICAgICBoYWRVc2VySW50
ZXJhY3Rpb24gPSBmYWxzZTsKICAgICB9CiAgICAgCisgICAgaW50IHJlc2V0UmVzdWx0ID0gbV9o
YWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQucmVzZXQoKTsKKyAgICBBU1NFUlRfVU5VU0VEKHJl
c2V0UmVzdWx0LCByZXNldFJlc3VsdCA9PSBTUUxJVEVfT0spOworCiAgICAgcmV0dXJuIGhhZFVz
ZXJJbnRlcmFjdGlvbjsKIH0KIApAQCAtMTA3Niw5ICsxMDk2LDEyIEBAIGJvb2wgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZWRpY2F0ZVZhbHVlRm9yRG9tYWluKFdlYkNv
cmU6OlNRTGl0CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgCiAgICAgaWYg
KHByZWRpY2F0ZVN0YXRlbWVudC5iaW5kVGV4dCgxLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElU
RV9PSwotICAgICAgICB8fCBwcmVkaWNhdGVTdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ET05F
KSB7CisgICAgICAgIHx8IHByZWRpY2F0ZVN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX1JPVykg
eworCisgICAgICAgIGludCByZXNldFJlc3VsdCA9IHByZWRpY2F0ZVN0YXRlbWVudC5yZXNldCgp
OworICAgICAgICBBU1NFUlRfVU5VU0VEKHJlc2V0UmVzdWx0LCByZXNldFJlc3VsdCA9PSBTUUxJ
VEVfT0spOworCiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVkaWNhdGVWYWx1ZUZvckRvbWFpbiBm
YWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJh
c2UubGFzdEVycm9yTXNnKCkpOwotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTI0OCw3ICsxMjcxLDcgQEAgc3RkOjpwYWly
PFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpBZGRlZFJlY29yZCwgdW5zaWdu
ZWQ+IFJlc291cmNlTG8KICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGlm
IChtX2RvbWFpbklERnJvbVN0cmluZ1N0YXRlbWVudC5iaW5kVGV4dCgxLCBkb21haW4uc3RyaW5n
KCkpICE9IFNRTElURV9PSykgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAi
JXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y3JlYXRlU2NoZW1hIGZh
aWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVy
cm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNz
Rm9yUmVnaXN0cmFibGVEb21haW4gZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwg
dGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICByZXR1cm4geyBBZGRlZFJlY29yZDo6Tm8sIDAgfTsKICAgICB9CkBA
IC0xMjcwLDEwICsxMjkzLDI0IEBAIHN0ZDo6cGFpcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6QWRkZWRSZWNvcmQsIHVuc2lnbmVkPiBSZXNvdXJjZUxvCiAgICAgcmV0dXJu
IHsgQWRkZWRSZWNvcmQ6OlllcywgZG9tYWluSUQoZG9tYWluKSB9OwogfQogCit2b2lkIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhckRhdGFiYXNlQ29udGVudHMoKQor
eworICAgIG1fZGF0YWJhc2UuY2xlYXJBbGxUYWJsZXMoKTsKKworICAgIGlmICghbV9kYXRhYmFz
ZS50YWJsZUV4aXN0cygiT2JzZXJ2ZWREb21haW5zIl9zKSkgeworICAgICAgICBpZiAoIWNyZWF0
ZVNjaGVtYSgpKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAg
LSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJEYXRhYmFzZUNvbnRl
bnRzIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cywgZGF0YWJhc2UgcGF0aDogJXtw
dWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCksIG1fc3RvcmFnZURpcmVj
dG9yeVBhdGgudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KK30KKwogdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXIoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNN
YWluKCkpOwogCisgICAgY2xlYXJEYXRhYmFzZUNvbnRlbnRzKCk7CiAgICAgY2xlYXJPcGVyYXRp
bmdEYXRlcygpOwogCiAgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3Jl
Z2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CkBAIC0xNDYyLDkgKzE0
OTksMTkgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJH
cmFuZGZhdGhlcmluZyhWZWN0b3I8dW5zaWduZWQ+JiYKICAgICB9CiB9CiAKLWJvb2wgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRh
Rm9yKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmIHJlc291cmNlU3RhdGlzdGljLCBib29sIHNo
b3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpIGNvbnN0Citib29sIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNIYWRVbmV4cGlyZWRSZWNlbnRVc2VySW50ZXJhY3Rpb24o
Y29uc3QgUHJldmFsZW50RG9tYWluRGF0YSYgcmVzb3VyY2VTdGF0aXN0aWMsIE9wZXJhdGluZ0Rh
dGVzV2luZG93IG9wZXJhdGluZ0RhdGVzV2luZG93KQoreworICAgIGlmIChyZXNvdXJjZVN0YXRp
c3RpYy5oYWRVc2VySW50ZXJhY3Rpb24gJiYgaGFzU3RhdGlzdGljc0V4cGlyZWQocmVzb3VyY2VT
dGF0aXN0aWMubW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUsIG9wZXJhdGluZ0RhdGVzV2lu
ZG93KSkgeworICAgICAgICBjbGVhclVzZXJJbnRlcmFjdGlvbihyZXNvdXJjZVN0YXRpc3RpYy5y
ZWdpc3RyYWJsZURvbWFpbik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gcmVzb3VyY2VTdGF0aXN0aWMuaGFkVXNlckludGVyYWN0aW9uOworfQorCitib29sIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRSZW1vdmVBbGxXZWJzaXRl
RGF0YUZvcihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiByZXNvdXJjZVN0YXRpc3RpYywgYm9v
bCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKQogewotICAgIHJldHVybiAhcmVzb3VyY2VT
dGF0aXN0aWMuaGFkVXNlckludGVyYWN0aW9uICYmICghc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhl
cmluZyB8fCAhcmVzb3VyY2VTdGF0aXN0aWMuZ3JhbmRmYXRoZXJlZCk7CisgICAgcmV0dXJuICFo
YXNIYWRVbmV4cGlyZWRSZWNlbnRVc2VySW50ZXJhY3Rpb24ocmVzb3VyY2VTdGF0aXN0aWMsIE9w
ZXJhdGluZ0RhdGVzV2luZG93OjpMb25nKSAmJiAoIXNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJp
bmcgfHwgIXJlc291cmNlU3RhdGlzdGljLmdyYW5kZmF0aGVyZWQpOwogfQogCiBib29sIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRSZW1vdmVBbGxCdXRDb29raWVz
Rm9yKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmIHJlc291cmNlU3RhdGlzdGljLCBib29sIHNo
b3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpIGNvbnN0CkBAIC0xNDkyLDkgKzE1MzksOSBAQCBW
ZWN0b3I8c3RkOjpwYWlyPFJlZ2lzdHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlPj4g
UmVzb3VyY2VMb2FkU3RhdGlzdGljcwogICAgIFZlY3Rvcjx1bnNpZ25lZD4gZG9tYWluSURzVG9D
bGVhckdyYW5kZmF0aGVyaW5nOwogICAgIGZvciAoYXV0byYgc3RhdGlzdGljIDogcHJldmFsZW50
RG9tYWlucykgewogICAgICAgICBpZiAoc2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3Ioc3Rh
dGlzdGljLCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSkKLSAgICAgICAgICAgIGRvbWFp
bnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihzdGF0aXN0aWMu
cmVnaXN0ZXJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlOjpBbGwpKTsKKyAgICAgICAg
ICAgIGRvbWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihz
dGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU6OkFsbCkpOwog
ICAgICAgICBlbHNlIGlmIChzaG91bGRSZW1vdmVBbGxCdXRDb29raWVzRm9yKHN0YXRpc3RpYywg
c2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZykpCi0gICAgICAgICAgICBkb21haW5zVG9SZW1v
dmVXZWJzaXRlRGF0YUZvci5hcHBlbmQoc3RkOjptYWtlX3BhaXIoc3RhdGlzdGljLnJlZ2lzdGVy
YWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZTo6QWxsQnV0Q29va2llcykpOworICAgICAg
ICAgICAgZG9tYWluc1RvUmVtb3ZlV2Vic2l0ZURhdGFGb3IuYXBwZW5kKHN0ZDo6bWFrZV9wYWly
KHN0YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZTo6QWxsQnV0
Q29va2llcykpOwogCiAgICAgICAgIGlmIChzaG91bGRDbGVhckdyYW5kZmF0aGVyaW5nICYmIHN0
YXRpc3RpYy5ncmFuZGZhdGhlcmVkKQogICAgICAgICAgICAgZG9tYWluSURzVG9DbGVhckdyYW5k
ZmF0aGVyaW5nLmFwcGVuZChzdGF0aXN0aWMuZG9tYWluSUQpOwpAQCAtMTUyNCw3ICsxNTcxLDcg
QEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJ1bmVTdGF0aXN0
aWNzSWZOZWVkZWQoKQogICAgIHNpemVfdCBjb3VudExlZnRUb1BydW5lID0gY291bnQgLSBwYXJh
bWV0ZXJzKCkucHJ1bmVFbnRyaWVzRG93blRvOwogICAgIEFTU0VSVChjb3VudExlZnRUb1BydW5l
KTsKIAotICAgIFNRTGl0ZVN0YXRlbWVudCByZWNvcmRzVG9QcnVuZShtX2RhdGFiYXNlLCBtYWtl
U3RyaW5nKCJTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgT1JERVIgQlkgaGFk
VXNlckludGVyYWN0aW9uLCBpc1ByZXZhbGVudCwgbGFzdFNlZW4gREVTQyBMSU1JVCAiLCBTdHJp
bmc6Om51bWJlcihjb3VudExlZnRUb1BydW5lKSkpOworICAgIFNRTGl0ZVN0YXRlbWVudCByZWNv
cmRzVG9QcnVuZShtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgZG9tYWluSUQgRlJPTSBP
YnNlcnZlZERvbWFpbnMgT1JERVIgQlkgaGFkVXNlckludGVyYWN0aW9uLCBpc1ByZXZhbGVudCwg
bGFzdFNlZW4gTElNSVQgIiwgU3RyaW5nOjpudW1iZXIoY291bnRMZWZ0VG9QcnVuZSkpKTsKICAg
ICBpZiAocmVjb3Jkc1RvUHJ1bmUucHJlcGFyZSgpICE9IFNRTElURV9PSykgewogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6cHJ1bmVTdGF0aXN0aWNzSWZOZWVkZWQgZmFpbGVkLCBlcnJvciBtZXNzYWdl
OiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmUuaAppbmRleCAwZmIyNGFkMDY3MDQ1YzlhZDMxNGYyM2NmYjQ0
NDBkOGFmODQ1ZmVjLi41NmU3MzQ0NjVhYzliZjk1NmU3NjdmYzJlNDllYWQwZmY3OTAyOTJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUu
aApAQCAtMTA1LDYgKzEwNSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExhc3RTZWVuKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiwgU2Vjb25kcykgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CisgICAg
dm9pZCBjbGVhckRhdGFiYXNlQ29udGVudHMoKTsKICAgICBib29sIGluc2VydE9ic2VydmVkRG9t
YWluKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsKICAgICB2b2lkIGluc2VydERvbWFp
blJlbGF0aW9uc2hpcHMoY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwogICAgIGJvb2wg
aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCYsIHVuc2ln
bmVkIGRvbWFpbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4pOwpA
QCAtMTIwLDEyICsxMjEsMTMgQEAgcHJpdmF0ZToKIAogICAgIHN0cnVjdCBQcmV2YWxlbnREb21h
aW5EYXRhIHsKICAgICAgICAgdW5zaWduZWQgZG9tYWluSUQ7Ci0gICAgICAgIFJlZ2lzdHJhYmxl
RG9tYWluIHJlZ2lzdGVyYWJsZURvbWFpbjsKKyAgICAgICAgUmVnaXN0cmFibGVEb21haW4gcmVn
aXN0cmFibGVEb21haW47CiAgICAgICAgIFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rp
b25UaW1lOwogICAgICAgICBib29sIGhhZFVzZXJJbnRlcmFjdGlvbjsKICAgICAgICAgYm9vbCBn
cmFuZGZhdGhlcmVkOwogICAgIH07CiAgICAgVmVjdG9yPFByZXZhbGVudERvbWFpbkRhdGE+IHBy
ZXZhbGVudERvbWFpbnMoKSBjb25zdDsKKyAgICBib29sIGhhc0hhZFVuZXhwaXJlZFJlY2VudFVz
ZXJJbnRlcmFjdGlvbihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiwgT3BlcmF0aW5nRGF0ZXNX
aW5kb3cpOwogICAgIFZlY3Rvcjx1bnNpZ25lZD4gZmluZEV4cGlyZWRVc2VySW50ZXJhY3Rpb25z
KCkgY29uc3Q7CiAgICAgdm9pZCBjbGVhckV4cGlyZWRVc2VySW50ZXJhY3Rpb25zKCk7CiAgICAg
dm9pZCBjbGVhckdyYW5kZmF0aGVyaW5nKFZlY3Rvcjx1bnNpZ25lZD4mJik7CkBAIC0xMzQsNyAr
MTM2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVjbGFzc2lmeVJlc291cmNlcygpOwogICAg
IHN0cnVjdCBOb3RWZXJ5UHJldmFsZW50UmVzb3VyY2VzIHsKLSAgICAgICAgUmVnaXN0cmFibGVE
b21haW4gcmVnaXN0ZXJhYmxlRG9tYWluOworICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWdp
c3RyYWJsZURvbWFpbjsKICAgICAgICAgUmVzb3VyY2VMb2FkUHJldmFsZW5jZSBwcmV2YWxlbmNl
OwogICAgICAgICB1bnNpZ25lZCBzdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnQ7
CiAgICAgICAgIHVuc2lnbmVkIHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9Db3VudDsKQEAg
LTE1OCw3ICsxNjAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJ1bmVTdGF0aXN0aWNzSWZOZWVk
ZWQoKSBvdmVycmlkZTsKICAgICBlbnVtIGNsYXNzIEFkZGVkUmVjb3JkIHsgTm8sIFllcyB9Owog
ICAgIHN0ZDo6cGFpcjxBZGRlZFJlY29yZCwgdW5zaWduZWQ+IGVuc3VyZVJlc291cmNlU3RhdGlz
dGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7Ci0gICAg
Ym9vbCBzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvcihjb25zdCBQcmV2YWxlbnREb21haW5E
YXRhJiwgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSBjb25zdDsKKyAgICBib29s
IHNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9yKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEm
LCBib29sIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpOwogICAgIGJvb2wgc2hvdWxkUmVt
b3ZlQWxsQnV0Q29va2llc0Zvcihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiwgYm9vbCBzaG91
bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSBjb25zdDsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJl
Z2lzdHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlPj4gcmVnaXN0cmFibGVEb21haW5z
VG9SZW1vdmVXZWJzaXRlRGF0YUZvcigpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNEYXRhYmFzZVN0
b3JlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCBlNDg3ZmE2MWM1OGM1NWEyMzFmZWRm
OGFlOWNjMTM5NmViNjA3MjJmLi43YTRkYWY5MDE3YWRhMzUwOGNiZTI2NjYzM2M2N2JhYTY5NGI1
YzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNw
cApAQCAtMTU0LDExICsxNTQsMjMgQEAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoTmV0d29ya1Nlc3Npb24mIG4KICAgICA6IG1f
bmV0d29ya1Nlc3Npb24obWFrZVdlYWtQdHIobmV0d29ya1Nlc3Npb24pKQogICAgICwgbV9zdGF0
aXN0aWNzUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZSBQcm9jZXNzIERhdGEgUXVldWUiLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1
ZXVlOjpRT1M6OlV0aWxpdHkpKQogICAgICwgbV9kYWlseVRhc2tzVGltZXIoUnVuTG9vcDo6bWFp
bigpLCB0aGlzLCAmV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpwZXJmb3JtRGFpbHlU
YXNrcykKK3sKKyAgICBpbml0aWFsaXplU3RhdGlzdGljc1N0b3JlKFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaXNJVFBEYXRhYmFzZUVuYWJsZWQoKSwgcmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RpcmVjdG9yeS5pc29sYXRlZENvcHkoKSwgc2hvdWxkSW5jbHVkZUxvY2Fs
aG9zdCk7Cit9CisKK1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6fldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZSgpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOwotICAgIAotICAgIHBvc3RUYXNrKFt0aGlzLCByZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGlyZWN0b3J5ID0gcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeS5pc29sYXRlZENvcHko
KSwgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdF0gewotICAgICAgICBpZiAoUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pc0lUUERhdGFiYXNlRW5hYmxlZCgpKSB7CisgICAg
UkVMRUFTRV9BU1NFUlQoIW1fc3RhdGlzdGljc1N0b3JlKTsKKyAgICBSRUxFQVNFX0FTU0VSVCgh
bV9wZXJzaXN0ZW50U3RvcmFnZSk7Cit9CisKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjppbml0aWFsaXplU3RhdGlzdGljc1N0b3JlKGJvb2wgZGF0YWJhc2VFbmFibGVkLCBj
b25zdCBTdHJpbmcmIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIFNob3VsZEluY2x1
ZGVMb2NhbGhvc3Qgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCkKK3sKKyAgICBSRUxFQVNFX0FTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBwb3N0VGFzayhbdGhpcywgZGF0YWJhc2VFbmFi
bGVkID0gZGF0YWJhc2VFbmFibGVkLCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5ID0g
cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdF0g
eworICAgICAgICBpZiAoZGF0YWJhc2VFbmFibGVkKSB7CiAgICAgICAgICAgICBtX3N0YXRpc3Rp
Y3NTdG9yZSA9IG1ha2VVbmlxdWU8UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU+
KCp0aGlzLCBtX3N0YXRpc3RpY3NRdWV1ZSwgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCwgcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSk7CiAKICAgICAgICAgICAgIGF1dG8gbWVtb3J5U3Rv
cmUgPSBtYWtlVW5pcXVlPFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZT4oKnRoaXMs
IG1fc3RhdGlzdGljc1F1ZXVlLCBzaG91bGRJbmNsdWRlTG9jYWxob3N0KTsKQEAgLTE3NywxMyAr
MTg5LDYgQEAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUoTmV0d29ya1Nlc3Npb24mIG4KICAgICBtX2RhaWx5VGFza3NUaW1lci5z
dGFydFJlcGVhdGluZygyNF9oKTsKIH0KIAotV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
Ojp+V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKCkKLXsKLSAgICBSRUxFQVNFX0FTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgUkVMRUFTRV9BU1NFUlQoIW1fc3RhdGlzdGljc1N0
b3JlKTsKLSAgICBSRUxFQVNFX0FTU0VSVCghbV9wZXJzaXN0ZW50U3RvcmFnZSk7Ci19Ci0KIHZv
aWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpkaWREZXN0cm95TmV0d29ya1Nlc3Np
b24oKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKaW5kZXggOTM1MDVhYjVhZjg0N2RkZDY2ZWJh
NThmYjc2MjcxY2U3MjVjZDVmOS4uNDYyYzEyOTA2Nzc5Njg3MmY1OWFkN2E3NGZjYmJlMGNjZmM4
YzJkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApA
QCAtMTMxLDYgKzEzMSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFZlcnlQcmV2YWxlbnRS
ZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CisgICAgdm9pZCBzZXRVc2VJVFBEYXRhYmFzZShib29sIHZhbHVlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3Mo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKTsKICAgICB2b2lkIGlzUHJldmFsZW50
UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKICAgICB2b2lkIGlzVmVyeVByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CkBAIC0xODks
NiArMTkwLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0
ZWQoVmVjdG9yPFJlc291cmNlTG9hZFN0YXRpc3RpY3M+JiYpOwogICAgIHZvaWQgcmVxdWVzdFN0
b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihEb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MmJiwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgb3BlbmVySUQsIE9wZW5lckRvbWFpbiYmKTsKIAorICAgIHZv
aWQgaW5pdGlhbGl6ZVN0YXRpc3RpY3NTdG9yZShib29sLCBjb25zdCBTdHJpbmcmIHJlc291cmNl
TG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIFNob3VsZEluY2x1ZGVMb2NhbGhvc3QpOwogcHJpdmF0
ZToKICAgICBleHBsaWNpdCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoTmV0d29ya1Nl
c3Npb24mLCBjb25zdCBTdHJpbmcmLCBTaG91bGRJbmNsdWRlTG9jYWxob3N0KTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAwNDc1
YjNiY2FmNDJiNGVjYWQ0YzhmOTAxZWNmOTViMTA0YTkzY2JiLi4wNmIyZWI5YzM0NWRlN2VhMDll
NmUzNWUyZGE2YjgyMTNlZTcyZWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNzI0LDYgKzcyNCwxOCBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjpzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
UmVnaXN0cmFibAogICAgIH0KIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0VXNlSVRQRGF0
YWJhc2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHBhdGgsIGJvb2wg
dmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSB0aGlzLT5uZXR3b3JrU2Vzc2lvbihzZXNz
aW9uSUQpKSB7CisgICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0
d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKKyAgICAgICAgICAgIHJlc291
cmNlTG9hZFN0YXRpc3RpY3MtPmluaXRpYWxpemVTdGF0aXN0aWNzU3RvcmUodmFsdWUsIHBhdGgs
IFNob3VsZEluY2x1ZGVMb2NhbGhvc3Q6Olllcyk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgfQorfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpz
ZXRQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiBkb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSB0aGlzLT5uZXR3
b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKaW5kZXggNjM1NWRkOTdkNDIyYzM3OTQwNjUxYjE1YTJlZjcxMjM1
NWYyOTcwYi4uOWViZjQxZmQxYmJiODY3YjJmZTAyMzllN2VlNTI0ZGU1YWVjN2FkMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMjI0LDYg
KzIyNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGlzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihQ
QUw6OlNlc3Npb25JRCwgY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFp
biYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgaXNSZWdpc3Rl
cmVkQXNTdWJyZXNvdXJjZVVuZGVyKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdWJSZXNvdXJjZURv
bWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJik7CiAgICAgdm9pZCBzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklELCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYsIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0VXNlSVRQRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFN0cmluZyYgcGF0aCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICAgICB2b2lkIHNldE1heFN0YXRpc3RpY3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklELCB1
aW50NjRfdCBtYXhpbXVtRW50cnlDb3VudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBz
ZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMu
aW4KaW5kZXggYzExMDIwZjBlMTg1ZDc0NzJmZGFmM2E3ZjU0MGU0MTU4ZDIxOGQxMy4uZTYxMTFl
ZDM4ZGU5N2UxOWU5NWY3MDkwMWNmZjcwZWNmNTljNTQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0x
MTMsNiArMTEzLDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIg
ewogICAgIFN1Ym1pdFRlbGVtZXRyeShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFz
eW5jCiAgICAgU2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCiAgICAgU2V0R3Jh
bmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIHJlc291cmNlRG9tYWluLCBib29sIGlzR3JhbmRmYXRoZXJlZCkgLT4gKCkgQXN5bmMK
KyAgICBTZXRVc2VJVFBEYXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyBw
YXRoLCBib29sIHZhbHVlKSAtPiAoKSBBc3luYwogICAgIFNldEdyYW5kZmF0aGVyaW5nVGltZShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25kcykgLT4gKCkgQXN5bmMKICAg
ICBTZXRNYXhTdGF0aXN0aWNzRW50cmllcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2
NF90IG1heGltdW1FbnRyeUNvdW50KSAtPiAoKSBBc3luYwogICAgIFNldE1pbmltdW1UaW1lQmV0
d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMg
c2Vjb25kcykgLT4gKCkgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCmluZGV4IDE4N2U4MWEzODZjY2I1Nzk2
MzA3ODUxNmMwOTRhMTNiMjEyZGY4MjUuLmRlMWFmNDUzYzliYWE4NzU5YTdjOTFkZjY5NTFhMTVh
OGFjN2M5MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vi
c2l0ZURhdGFTdG9yZVJlZi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcApAQCAtMjY3LDYgKzI2NywxMyBAQCB2b2lkIFdLV2Vi
c2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmIGRhdGFTdG9yZQogI2VuZGlmCiB9CiAKK3ZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0VXNl
SVRQRGF0YWJhc2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdS
ZWYgcGF0aCwgYm9vbCB2YWx1ZSkKK3sKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQorICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPndlYnNpdGVEYXRhU3RvcmUo
KS5zZXRVc2VJVFBEYXRhYmFzZShXZWJLaXQ6OnRvSW1wbChwYXRoKS0+c3RyaW5nKCksIHZhbHVl
LCBbXSB7IH0pOworI2VuZGlmCit9CisKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlz
dGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0
YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3QpCiB7
CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKaW5kZXggZTQ5
ZGUyMGI4ZjI0YWYxYjcwNmU3Nzc3ODE3NTM0MjZlZDY4NDA5Ny4uMjk4MzlhMWRkMzUxYjk2NDZl
ZGM5OTY3YjZiZjk0ZDRiMTlmMDcyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKQEAgLTcwLDYgKzcwLDcgQEAgV0tf
RVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKFdLV2Vic2l0ZURhdGEKIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNl
dFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVS
ZWYsIFdLU3RyaW5nUmVmIGhvc3QsIGJvb2wgdmFsdWUpOwogdHlwZWRlZiB2b2lkICgqV0tXZWJz
aXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZEZ1bmN0aW9uKShib29sIGlzR3Jh
bmRmYXRoZXJlZCwgdm9pZCogZnVuY3Rpb25Db250ZXh0KTsKIFdLX0VYUE9SVCB2b2lkIFdLV2Vi
c2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgdm9pZCogY29udGV4dCwgV0tXZWJz
aXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZEZ1bmN0aW9uIGNhbGxiYWNrKTsK
K1dLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFVzZUlUUERhdGFiYXNlKFdLV2Vi
c2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIHBhdGgsIGJvb2wgdmFs
dWUpOwogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YmZy
YW1lVW5kZXJUb3BGcmFtZU9yaWdpbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVm
LCBXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3QpOwogV0tfRVhQT1JU
IHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BG
cmFtZU9yaWdpbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1Jl
ZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3QpOwogV0tfRVhQT1JUIHZvaWQgV0tXZWJz
aXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhXS1dl
YnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmlu
Z1JlZiBob3N0UmVkaXJlY3RlZFRvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDMxMTQ2YmY2MWNmNzNm
OGQwMmQzNjZmNDY3NGY1ZjU3OWNjNWExODcuLjQzNzU5ZjhjZDUzMzNjMzQzNzMwZTYwMWYzMjM4
MDU5NTg2MGNmZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtNzgyLDYgKzc4MiwxNSBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OnNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBSZWdpcwogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OlNldEdyYW5kZmF0aGVyZWQoc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiwgaXNH
cmFuZGZhdGhlcmVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCit2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OnNldFVzZUlUUERhdGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgY29uc3QgU3RyaW5nJiBwYXRoLCBib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgp
KSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0VXNl
SVRQRGF0YWJhc2Uoc2Vzc2lvbklELCBwYXRoLCB2YWx1ZSksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXF1ZXN0U3RvcmFnZUFj
Y2Vzc0NvbmZpcm0oV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvKiBwYWdlID0gV2ViUHJv
Y2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDgwZGZlNjBhMjQ4NDQz
ZGQ5NWQxYmU5MGE5ZjE0MWJjMWJiYzFiYzkuLjU3MGZmNWEyYzAyYzAxMzc3Njc5MzZmZGQ5N2I2
Mzk2YWExMjllZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0xMTYsNiArMTE2LDcgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIE9wdGlv
bmFsPFNlY29uZHM+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0
Q2FjaGVNYXhBZ2VDYXAoUEFMOjpTZXNzaW9uSUQsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0VXNlSVRQRGF0YWJhc2UoUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFN0cmluZyYgcGF0aCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNj
YW5uZWQoUEFMOjpTZXNzaW9uSUQsIGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBzZXRJc1J1bm5pbmdSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVzdChQQUw6OlNl
c3Npb25JRCwgYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNl
dE5vdGlmeVBhZ2VzV2hlblRlbGVtZXRyeVdhc0NhcHR1cmVkKFBBTDo6U2Vzc2lvbklELCBib29s
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCA5NWFl
ZGZlMTQzNzhlNmE1ODQyNGU3NWU1YjNkZTVhOGRmOGVjYjZmLi44YmJmMTc2YTY2ZTg3ZWU4NGE1
YWNjYmFjNWFhOGNiYmY3Y2Y1N2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMTY0MSw2ICsxNjQx
LDE4IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0R3JhbmRmYXRoZXJlZChjb25zdCBVUkwm
IHVybCwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIENvCiAgICAgfQogfQogCit2b2lkIFdlYnNpdGVE
YXRhU3RvcmU6OnNldFVzZUlUUERhdGFiYXNlKGNvbnN0IFN0cmluZyYgcGF0aCwgYm9vbCB2YWx1
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBhdXRvIGNhbGxiYWNrQWdncmVnYXRv
ciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKKworICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBwcm9jZXNzUG9vbHMoKSkgeworICAg
ICAgICBpZiAoYXV0byogcHJvY2VzcyA9IHByb2Nlc3NQb29sLT5uZXR3b3JrUHJvY2VzcygpKQor
ICAgICAgICAgICAgcHJvY2Vzcy0+c2V0VXNlSVRQRGF0YWJhc2UobV9zZXNzaW9uSUQsIHBhdGgs
IHZhbHVlLCBbY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYo
KV0geyB9KTsKKyAgICB9Cit9CisKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0Q3Jvc3NTaXRl
TG9hZFdpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoY29uc3QgVVJMJiBmcm9tVVJMLCBjb25z
dCBVUkwmIHRvVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCBm
NTJmYWRlZThjODZiYzFhZmM1ZDcxODhjZWFhMjUxZGFkYTlkYzYzLi43MjYzZWNiNTE4ZWIwZWM1
NDcxOGFmNWU2NTgzYjIxOTgwYjYxN2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC0xNTQsNiArMTU0LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9j
ZXNzaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzdWJtaXRUZWxl
bWV0cnkoKTsKICAgICB2b2lkIHNldEdyYW5kZmF0aGVyZWQoY29uc3QgVVJMJiwgYm9vbCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFVzZUlUUERhdGFiYXNlKGNv
bnN0IFN0cmluZyYgcGF0aCwgYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAg
ICB2b2lkIHNldEdyYW5kZmF0aGVyaW5nVGltZShTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0TGFzdFNlZW4oY29uc3QgVVJMJiwgU2Vjb25kcywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldE5vdGlmeVBhZ2VzV2hlbkRh
dGFSZWNvcmRzV2VyZVNjYW5uZWQoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzMWUw
OWFiYTk0NzJmY2IxZGNhMWNhNTU5ZDkxZTY1NDZiNzMwNDFjLi45NTQxNmRjYjgwYTY2ZTA3N2Mz
ZWRmOWI0ZGM0ZGZjYTJiY2Q0NDgyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTktMDktMTAgIEthdGhlcmluZSBD
aGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgTGF5
b3V0VGVzdHMgdXNpbmcgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBTUUxpdGUgYmFja2VuZCAoMTk1
NDIwKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1
NDIwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NDIxMzU1MT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBpbiBsb2dpYyB0byBzZW5kIGEg
bWVzc2FnZSBmcm9tIHRoZSBVSVByb2Nlc3MgdG8gdGhlIE5ldHdvcmsKKyAgICAgICAgUHJvY2Vz
cyB3aGljaCB3aWxsIGluaXRhbGl6ZSB0aGUgSVRQIERhdGFiYXNlIGJhY2tlbmQgdG8gYWxsb3cg
Zm9yCisgICAgICAgIGxheW91dCB0ZXN0aW5nLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RS
OjpUZXN0UnVubmVyOjpzZXRVc2VJVFBEYXRhYmFzZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpz
ZXRVc2VJVFBEYXRhYmFzZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgor
ICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2Fn
ZUZyb21JbmplY3RlZEJ1bmRsZSk6CisKIDIwMTktMDktMTAgIE1pY2hhZWwgQ2F0YW56YXJvICA8
bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJlbW92ZSBteXNl
bGYgZnJvbSB3YXRjaGxpc3RzCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCA0MmQzNjYw
MmQyNWNiOTllMmI4ZWE2OTBhMjEyNDRmMWIzMDVhMjQ2Li5kY2Y2NGM0OTFmOGFlYWQzNTNmNDMx
OWU5Zjg1OTYxYmU2MDlhYjMxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTMxMyw2
ICszMTMsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgYm9vbGVhbiBpc1N0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oRE9NU3RyaW5nIGhvc3ROYW1lKTsKICAgICB2b2lkIHNl
dFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKERPTVN0cmluZyBob3N0TmFtZSwgYm9vbGVhbiB2YWx1
ZSk7CiAgICAgYm9vbGVhbiBpc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKERPTVN0cmluZyBob3N0
TmFtZSk7CisgICAgdm9pZCBzZXRVc2VJVFBEYXRhYmFzZShib29sZWFuIHZhbHVlKTsKICAgICB2
b2lkIHNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oRE9NU3RyaW5nIGhv
c3ROYW1lLCBET01TdHJpbmcgdG9wRnJhbWVIb3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0
aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKERPTVN0cmluZyBob3N0TmFtZSwgRE9N
U3RyaW5nIHRvcEZyYW1lSG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RUbyhET01TdHJpbmcgaG9zdE5hbWUsIERPTVN0cmluZyBob3N0TmFt
ZVJlZGlyZWN0ZWRUbyk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCAwN2NhYzYwZTE2N2NjNTQ4NmI3MzAwMDhmZGIx
MjVlN2I1YTM2ZmUwLi4xNGUzNzliMjIyOGE0N2E0NWYxNWRhNTA0NDA1OTUwZjlkMDQ4OTdlIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAKQEAgLTE3MDAsNyArMTcwMCwxNSBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFN0YXRp
c3RpY3NHcmFuZGZhdGhlcmVkKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBib29sIHZhbHVlKQogICAg
IAogICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2lu
Z2xldG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSwg
bnVsbHB0cik7CiB9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0VXNlSVRQRGF0YWJhc2UoYm9vbCB2
YWx1ZSkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9w
dFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRVc2VJVFBEYXRhYmFzZSIpKTsK
KyAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IG1lc3NhZ2VCb2R5ID0gYWRvcHRXSyhXS0Jv
b2xlYW5DcmVhdGUodmFsdWUpKTsKICAgICAKKyAgICBXS0J1bmRsZVBvc3RTeW5jaHJvbm91c01l
c3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5n
ZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCksIG51bGxwdHIpOworfQorCiBib29sIFRlc3RSdW5uZXI6
OmlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoSlNTdHJpbmdSZWYgaG9zdE5hbWUpCiB7CiAgICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiSXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZCIpKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5o
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5k
ZXggMDlhZjNiZGYyNjMyYmY4ZjZkNTM1ZTc2M2JhNjljMGNjNDc3MjYwZi4uYTQyZmEwNTY0MmI0
MzFlYTFmZDM2MTdiMzcyNWE5YzlmODVmOTVmYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTQxMSw2ICs0MTEsNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oSlNTdHJp
bmdSZWYgaG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoSlNT
dHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpOwogICAgIGJvb2wgaXNTdGF0aXN0aWNzR3Jh
bmRmYXRoZXJlZChKU1N0cmluZ1JlZiBob3N0TmFtZSk7CisgICAgdm9pZCBzZXRVc2VJVFBEYXRh
YmFzZShib29sIHZhbHVlKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9w
RnJhbWVPcmlnaW4oSlNTdHJpbmdSZWYgaG9zdE5hbWUsIEpTU3RyaW5nUmVmIHRvcEZyYW1lSG9z
dE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9y
aWdpbihKU1N0cmluZ1JlZiBob3N0TmFtZSwgSlNTdHJpbmdSZWYgdG9wRnJhbWVIb3N0TmFtZSk7
CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKEpTU3Ry
aW5nUmVmIGhvc3ROYW1lLCBKU1N0cmluZ1JlZiBob3N0TmFtZVJlZGlyZWN0ZWRUbyk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDVjNjY4NDY5ZWVmZGY2
MDQ4NTc2MGRmMDI3ZDc0Mzk3MzhjNjZmZDkuLjZiYTE4MDM0ODc3NjQwZmM3YzdhNWNjZjk5YjU5
ZDZhNjY4OTJlODUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CkBAIC0zMzUwLDYgKzMzNTAsMTIgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6aXNTdGF0aXN0aWNz
R3JhbmRmYXRoZXJlZChXS1N0cmluZ1JlZiBob3N0KQogICAgIHJldHVybiBjb250ZXh0LnJlc3Vs
dDsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0VXNlSVRQRGF0YWJhc2UoYm9vbCB2YWx1
ZSkKK3sKKyAgICBhdXRvKiBkYXRhU3RvcmUgPSBXS0NvbnRleHRHZXRXZWJzaXRlRGF0YVN0b3Jl
KHBsYXRmb3JtQ29udGV4dCgpKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRVc2VJVFBEYXRh
YmFzZShkYXRhU3RvcmUsIHRvV0soU3RyaW5nOjpmcm9tVVRGOChnZXRlbnYoIkRVTVBSRU5ERVJU
UkVFX1RFTVAiKSkgKyBwYXRoU2VwYXJhdG9yICsgIlJlc291cmNlTG9hZFN0YXRpc3RpY3MiKS5n
ZXQoKSwgdmFsdWUpOworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzU3Vi
ZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIHRv
cEZyYW1lSG9zdCkKIHsKICAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzU3ViZnJh
bWVVbmRlclRvcEZyYW1lT3JpZ2luKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCks
IGhvc3QsIHRvcEZyYW1lSG9zdCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmgKaW5kZXggODM3ZTRhYjJjYjBlNjYxNzFjZGVmNDBiZGIxNDg2YzZlMGJkNzE0OC4uNjczZjJk
Yzg4M2U5NDI1YTBmYTU5YjgxYWNjOGYyMzM4Yzc1YTEwZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMjIyLDYgKzIyMiw3IEBAIHB1YmxpYzoKICAgICBib29s
IGlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihXS1N0cmluZ1JlZiBob3N0TmFtZSk7
CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1N0cmluZ1JlZiBob3N0TmFt
ZSwgYm9vbCB2YWx1ZSk7CiAgICAgYm9vbCBpc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLU3Ry
aW5nUmVmIGhvc3ROYW1lKTsKKyAgICB2b2lkIHNldFVzZUlUUERhdGFiYXNlKGJvb2wgdmFsdWUp
OwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihXS1N0
cmluZ1JlZiBob3N0TmFtZSwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0TmFtZSk7CiAgICAgdm9p
ZCBzZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKFdLU3RyaW5nUmVm
IGhvc3ROYW1lLCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3ROYW1lKTsKICAgICB2b2lkIHNldFN0
YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oV0tTdHJpbmdSZWYgaG9zdE5hbWUs
IFdLU3RyaW5nUmVmIGhvc3ROYW1lUmVkaXJlY3RlZFRvKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggNjA3ZTViYmRiNGIwNTZlYjZiNWI2NGViMDAxN2Ri
ODA1YzA3YTk5Mi4uMzA3ZDJhYmQxZDYxYjdhZjNmMTU2Nzg5YTA4M2NlZWUzYjQ0MDVjNiAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTEyNDEsNiArMTI0
MSwxNCBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZl
U3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICBXS1JldGFpblB0cjxXS1R5
cGVSZWY+IHJlc3VsdCA9IGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKGlzR3JhbmRmYXRoZXJlZCkp
OwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KKworICAgIGlmIChXS1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0VXNlSVRQRGF0YWJhc2UiKSkgeworICAg
ICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLQm9vbGVhbkdldFR5cGVJ
RCgpKTsKKworICAgICAgICBXS0Jvb2xlYW5SZWYgdmFsdWUgPSBzdGF0aWNfY2FzdDxXS0Jvb2xl
YW5SZWY+KG1lc3NhZ2VCb2R5KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigp
LnNldFVzZUlUUERhdGFiYXNlKFdLQm9vbGVhbkdldFZhbHVlKHZhbHVlKSk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIH0KICAgICAKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4
Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVP
cmlnaW4iKSkgewogICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdL
RGljdGlvbmFyeUdldFR5cGVJRCgpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhMjVjNDUyZjVlZjc5ZWJmMTRkYTY0NmFl
YTM3ZmVlZDJmMWY0MDJiLi5kMGNmMTMxYTRkYTJlYmNlNGFjMDM5OWNhYmUzZTNmMjQ1ZmRjZThh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQ2IEBACisyMDE5LTA5LTEwICBLYXRoZXJpbmUgQ2hlbmV5ICA8
a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIExheW91dFRlc3Rz
IHVzaW5nIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgU1FMaXRlIGJhY2tlbmQgKDE5NTQyMCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTQyMAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNTQyMTM1NTE+CisKKyAgICAgICAgUmV2aWVhZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSBmbGFnIHRvIGFsbCBJVFAgdGVzdHMgdG8g
ZW5hYmxlIHRoZSBJVFAgZGF0YWJhc2UgYmFja2VuZCB0bworICAgICAgICBhbGxvdyBmb3IgdGVz
dGluZyBmdW5jdGlvbmFsaXR5IGFnYWluc3QgdGhlIG1lbW9yeSBzdG9yZS4gVGVzdHMgd2VyZQor
ICAgICAgICBub3QgY3JlYXRlZCBmb3IgdGVsZW1ldHJ5LWdlbmVyYXRpb24uaHRtbCwKKyAgICAg
ICAgbG9nLWNyb3NzLXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sLAorICAgICAg
ICB3ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS1uYXZpZ2F0ZWQtdG8td2l0aC1saW5rLWRl
Y29yYXRpb24uaHRtbCwKKyAgICAgICAgb3IgZG8tbm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3It
c2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy5odG1sIGJlY2F1c2UKKyAgICAgICAgdGhlc2UgcmVseSBv
biBmdW5jdGlvbnMgbm90IHlldCBpbXBsZW1lbnRlZCBpbiB0aGUgSVRQIGRhdGFiYXNlLgorCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10
by1yZWRpcmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0
YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2Jsb2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0LWltcG9ydC1kYXRhYmFzZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1j
YWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2Fw
LWNhY2hlLW1heC1hZ2UtZm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxp
ZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1j
b29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRl
Y29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxp
bmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZy
b20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1m
b3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJl
dmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQt
aW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVl
cnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3It
Y29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1y
ZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQt
aW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0
YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGlj
cy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1p
eGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQt
b24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFt
ZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1
YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1l
LW9yaWdpbnMtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3Vi
cmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8t
ZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNz
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1z
dGF0aXN0aWNzLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZy
YW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0
YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVj
dC1jb2xsdXNpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRh
YmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2Ut
cmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1m
cmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3Vi
cmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRh
YmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1j
b2xsdXNpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9u
LXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZh
bGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3Qt
dG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9w
LWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJhc2VkLW9uLW1peGVk
LXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9y
ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUt
ZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1k
YXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25l
LWhvdXItZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUt
ZGVsZXRpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0
aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVy
YWN0aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUtY29va2llcy1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUtY29va2llcy1kYXRhYmFzZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8t
bm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8t
bm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qt
cmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Np
b24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxl
bnQtd2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3It
bmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmst
cXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2Rl
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhl
cmluZy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZh
bGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1w
cmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFi
YXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tcHJldmFsZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGly
ZC1wYXJ0eS1jb250ZXh0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Vz
LWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2UuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
bi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3Qt
dG8taXAtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10
by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRi
b3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlw
LXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3Rp
bmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxo
b3N0LXRvLWlwLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9u
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1k
YXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRh
YmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5k
Ym94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRv
LWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13
aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9z
dC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFi
YXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRv
LXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQt
a2V5ZG93bi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlk
b3duLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3By
ZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC1kYXRhYmFzZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQt
ZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0
YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlv
bi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0
aXN0aWNzLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9z
dC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRv
LWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2Nh
bGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJh
bWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJv
eGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAt
dG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlm
cmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10
by1pcC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hl
ZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94
ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxv
Y2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUt
d2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRh
YmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRi
b3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxo
b3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVz
b3VyY2UtaW4tZGVidWctbW9kZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVu
dC1yZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmln
aW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJl
Y3RzLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJy
ZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmln
aW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNl
c3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRo
LWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1z
dWItZnJhbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmln
aW4tc3ViLWZyYW1lLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25j
ZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRl
cmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRh
dGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1v
dmFsLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vi
c2l0ZS1kYXRhLXJlbW92YWwtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisKIDIwMTktMDktMTAgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBNZWRpYVN0
cmVhbVByaXZhdGU6OnNjaGVkdWxlRGVmZXJyZWRUYXNrCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGly
ZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFmZWY5Y2QyNmU4NjFiMGZkYjE0ZjVkYzBiMGExNjAwZjRlOGRh
ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDYzIEBACitUZXN0cyB0aGF0IGJsb2NraW5nIGlzIGFkZGVkIG1pZC1mbGln
aHQgaW4gcmVkaXJlY3RzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgIAorCistLS0tLS0t
LQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIGZpcnN0
LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScu
CitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitDbGll
bnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUKKworLS0tLS0t
LS0KK0ZyYW1lOiAnPCEtLWZyYW1lMi0tPicKKy0tLS0tLS0tCitSZWRpcmVjdCBjYXNlIDEsIHNo
b3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAn
Zmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRp
b25lZENvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29r
aWU9dmFsdWUKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMy0tPicKKy0tLS0tLS0tCitT
aG91bGQgcmVjZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAn
Zmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRp
b25lZENvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitG
cmFtZTogJzwhLS1mcmFtZTQtLT4nCistLS0tLS0tLQorUmVkaXJlY3QgY2FzZSAyLCBzaG91bGQg
cmVjZWl2ZSBubyBjb29raWUuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBh
cnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3BhcnRpdGlvbmVkQ29v
a2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAn
PCEtLWZyYW1lNS0tPicKKy0tLS0tLS0tCitUcnkgdG8gc2V0IHRoaXJkLXBhcnR5IGNvb2tpZSBp
biBibG9ja2VkIG1vZGUuCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNi0tPicKKy0t
LS0tLS0tCitBZnRlciBhdHRlbXB0ZWQgY29va2llIGNyZWF0aW9uLCBzaG91bGQgcmVjZWl2ZSBu
byBjb29raWUuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2ll
Jy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3BhcnRpdGlvbmVkQ29va2llJy4KK0Ns
aWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1l
Ny0tPicKKy0tLS0tLS0tCitSZWRpcmVjdCBjYXNlIDMsIGFmdGVyIGF0dGVtcHRlZCBjb29raWUg
Y3JlYXRpb24sIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZS4KK0RpZCBub3QgcmVjZWl2ZSBjb29r
aWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1l
ZCAncGFydGl0aW9uZWRDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Fk
ZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRh
YmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxZDYzYTUxNjg3OGEwODM4ZDI5OGU3NjNlMDNkMmViODQ2
YTA5OWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwKQEAg
LTAsMCArMSwxMDQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+
CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNj
cmlwdGlvbigiVGVzdHMgdGhhdCBibG9ja2luZyBpcyBhZGRlZCBtaWQtZmxpZ2h0IGluIHJlZGly
ZWN0cy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHBhcnRpdGlv
bkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCByZXNvdXJjZVBhdGggPSAiL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVy
bCA9IHRoaXJkUGFydHlPcmlnaW4gKyByZXNvdXJjZVBhdGg7CisgICAgY29uc3QgZmlyc3RQYXJ0
eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0
Rmlyc3RQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsgZmlyc3RQYXJ0eUNv
b2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCBwYXJ0aXRpb25lZENvb2tpZU5h
bWUgPSAicGFydGl0aW9uZWRDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldFBhcnRpdGlv
bmVkQ29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBwYXJ0aXRpb25lZENvb2tpZU5h
bWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCByZXR1cm5VcmwgPSAiaHR0cDovLyIgKyBw
YXJ0aXRpb25Ib3N0ICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1y
ZWRpcmVjdC5odG1sIjsKKyAgICBjb25zdCBzdWJQYXRoVG9HZXRDb29raWVzID0gIi9nZXQtY29v
a2llcy5waHA/bmFtZTE9IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZuYW1lMj0iICsgcGFy
dGl0aW9uZWRDb29raWVOYW1lOworICAgIGNvbnN0IHJlZGlyZWN0Q2hhaW5VcmwgPSAiaHR0cDov
LyIgKyBwYXJ0aXRpb25Ib3N0ICsgcmVzb3VyY2VQYXRoICsgIi9yZWRpcmVjdC5waHA/cmVkaXJl
Y3RUbz0iICsgdGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzOworCisgICAg
ZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgY29uc3Qg
ZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBlbGVt
ZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAg
IGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsKKyAgICAgICAgfQorICAgICAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAg
ICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAgICAvLyBTZXQgZmlyc3QtcGFy
dHkgY29va2llIGZvciBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tp
ZSArICIjIiArIHJldHVyblVybCArICIjc3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0
IHRoZSBjb29raWUgZ2V0cyBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNl
IGxvY2FsaG9zdCBpcyBub3QgcHJldmFsZW50LgorICAgICAgICAgICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQ
YXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNl
aXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
bG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgLy8gTG9hZCBhbiBpZnJh
bWUgaW4gYSByZWRpcmVjdCBjaGFpbiB0aGF0IHN0YXJ0cyB3aXRoIDEyNy4wLjAuMSBhbmQgZW5k
cyB3aXRoIGxvY2FsaG9zdC4gRXhwZWN0IGEgY29va2llIGZvciBsb2NhbGhvc3QuCisgICAgICAg
ICAgICAgICAgb3BlbklmcmFtZShyZWRpcmVjdENoYWluVXJsICsgIiZtZXNzYWdlPVJlZGlyZWN0
IGNhc2UgMSwgc2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLiIsIHJ1blRlc3QpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAg
ICAgICAgICAgICAvLyBTZXQgbG9jYWxob3N0IGFzIHByZXZhbGVudCB0byBwdXQgaXQgaW4gdGhl
IGJsb2NraW5nIGNhdGVnb3J5LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPSAic3RlcDUiOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5n
KHJ1blRlc3QpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSAiI3N0ZXA1IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0
IG5vIGNvb2tpZSBnZXRzIHNlbnQgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEgc2luY2Ug
bG9jYWxob3N0J3MgY29va2llcyBhcmUgYmxvY2tlZC4KKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5oYXNoID0gInN0ZXA2IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRo
aXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICAiJm1lc3NhZ2U9U2hvdWxk
IHJlY2VpdmUgbm8gY29va2llcy4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgIiNzdGVwNiI6CisgICAgICAgICAgICAgICAgLy8gTG9hZCBhbiBp
ZnJhbWUgaW4gYSByZWRpcmVjdCBjaGFpbiB0aGF0IHN0YXJ0cyB3aXRoIDEyNy4wLjAuMSBhbmQg
ZW5kcyB3aXRoIGxvY2FsaG9zdC4gRXhwZWN0IG5vIGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDciOworICAgICAgICAg
ICAgICAgIG9wZW5JZnJhbWUocmVkaXJlY3RDaGFpblVybCArICImbWVzc2FnZT1SZWRpcmVjdCBj
YXNlIDIsIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNyI6CisgICAgICAgICAgICAgICAg
Ly8gVHJ5IHRvIHNldCBjb29raWUgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEuCisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwOCI7CisgICAgICAgICAg
ICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldFBhcnRpdGlv
bmVkQ29va2llICsgIiZtZXNzYWdlPVRyeSB0byBzZXQgdGhpcmQtcGFydHkgY29va2llIGluIGJs
b2NrZWQgbW9kZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgIiNzdGVwOCI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBubyBjb29r
aWUgZ2V0cyBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9z
dCdzIGNvb2tpZXMgYXJlIGJsb2NrZWQuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaGFzaCA9ICJzdGVwOSI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5
QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAgIiZtZXNzYWdlPUFmdGVyIGF0dGVtcHRl
ZCBjb29raWUgY3JlYXRpb24sIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZS4iLCBydW5UZXN0KTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwOSI6CisgICAg
ICAgICAgICAgICAgLy8gTG9hZCBhbiBpZnJhbWUgaW4gYSByZWRpcmVjdCBjaGFpbiB0aGF0IHN0
YXJ0cyB3aXRoIDEyNy4wLjAuMSBhbmQgZW5kcyB3aXRoIGxvY2FsaG9zdC4gRXhwZWN0IG5vIGNv
b2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPSAic3RlcDEwIjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHJlZGlyZWN0Q2hhaW5V
cmwgKyAiJm1lc3NhZ2U9UmVkaXJlY3QgY2FzZSAzLCBhZnRlciBhdHRlbXB0ZWQgY29va2llIGNy
ZWF0aW9uLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEwIjoKKyAgICAgICAgICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPT09ICIiKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7
CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0
eU9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IHdhcyBjbGFz
c2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLiIpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEiOworICAgICAgICAgICAgcnVuVGVz
dCgpOworICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBydW5UZXN0KCk7CisgICAg
fQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1z
Y3JpcHQtaW1wb3J0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNjcmlwdC1p
bXBvcnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljYjc5OTQzZWQ4YjQ5YTg0
MWJkMTI5YjNmNWFjYTZlMmEzYjIxYmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1z
Y3JpcHQtaW1wb3J0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0
IGZvciBjb29raWUgYmxvY2tpbmcgd2hlbiB3ZWIgd29ya2VycyBpbXBvcnQgY3Jvc3Mtc2l0ZSBz
Y3JpcHRzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBEaWQgcmVjZWl2
ZSBmaXJzdFBhcnR5Q29va2llID09IHZhbHVlCitQQVNTIERpZCBub3QgcmVjZWl2ZSBjb29raWUg
bmFtZWQgZmlyc3RQYXJ0eUNvb2tpZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0t
LS0tLS0tCitTaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29r
aWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2ll
OiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQt
aW1wb3J0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNmNjM2M3YTI5MjJkZTdjYjI0NzZmY2QwMTQwMWU3OTlkODRkMDBl
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2Uu
aHRtbApAQCAtMCwwICsxLDg4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4K
KzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgY29v
a2llIGJsb2NraW5nIHdoZW4gd2ViIHdvcmtlcnMgaW1wb3J0IGNyb3NzLXNpdGUgc2NyaXB0cy4i
KTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHBhcnRpdGlvbkhvc3Qg
PSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFy
dHlPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25z
dCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBz
dWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBm
aXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHJldHVyblVy
bCA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2lu
Zy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQuaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRv
R2V0Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2ll
TmFtZTsKKworICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7Cisg
ICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsK
KyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7
CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0K
KyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAg
ICBsZXQgcmVjZWl2ZWRNZXNzYWdlcyA9IDA7CisgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2Uo
ZXZlbnQpIHsKKyAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNl
KCJQQVNTICIsICIiKSk7CisKKyAgICAgICAgKytyZWNlaXZlZE1lc3NhZ2VzOworICAgICAgICBp
ZiAocmVjZWl2ZWRNZXNzYWdlcyA+PSAyKQorICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcnVuVGVzdCgp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAoZG9j
dW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBz
dWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llICsgIiMiICsgcmV0dXJuVXJsICsgIiNzdGVwMiI7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAgICAg
ICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVz
ICsgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4iLCBydW5UZXN0
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6Cisg
ICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAg
ICAgICAgICAgbGV0IHcxID0gbmV3IFdvcmtlcigicmVzb3VyY2VzL3dvcmtlci1pbXBvcnRpbmct
bG9jYWxob3N0LXNjcmlwdC5qcyIpOworICAgICAgICAgICAgICAgIHcxLm9ubWVzc2FnZSA9IHJl
Y2VpdmVNZXNzYWdlOworICAgICAgICAgICAgICAgIHcxLnBvc3RNZXNzYWdlKCJzaG91bGRSZWNl
aXZlQ29va2llcz10cnVlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAi
c3RlcDUiOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
dGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRl
c3QpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSAiI3N0ZXA1IjoKKyAgICAgICAgICAgICAgICBsZXQgdzIgPSBuZXcgV29ya2Vy
KCJyZXNvdXJjZXMvd29ya2VyLWltcG9ydGluZy1sb2NhbGhvc3Qtc2NyaXB0LmpzIik7CisgICAg
ICAgICAgICAgICAgdzIub25tZXNzYWdlID0gcmVjZWl2ZU1lc3NhZ2U7CisgICAgICAgICAgICAg
ICAgdzIucG9zdE1lc3NhZ2UoInNob3VsZE5vdFJlY2VpdmVDb29raWVzIik7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRp
b24uaG9zdCA9PT0gcGFydGl0aW9uSG9zdCAmJiBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09PSAi
IiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNo
ID0gInN0ZXAxIjsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0
KCk7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2Nh
bGhvc3Qgd2FzIGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVz
dCBzdGFydHMuIik7CisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgIH0g
ZWxzZSB7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jYXAtY2FjaGUtbWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2NlNWFhMWMzNmE5NGQ1NTBiZGUyMjlhZGU0NDZmZjgz
NTVjMWNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2Ut
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3RzIHRoYXQgY2FjaGUg
bWF4LWFnZSBpcyBjYXBwZWQgZm9yIHByZXZhbGVudCByZXNvdXJjZXMuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIGxvYWRlZFVybCBpcyAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVl
PTEyMzQiCitQQVNTIGxvYWRlZFVybCBpcyAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPTQzMjEiCitQQVNT
IGxvYWRlZFVybCBpcyAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPSIKK1BBU1MgbG9hZGVkVXJsIGlzICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNo
by1xdWVyeS5waHA/dmFsdWU9IgorUEFTUyBsb2FkZWRVcmwgaXMgImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXF1ZXJ5LnBocD92YWx1
ZT0iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcC1jYWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUt
bWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjY0YTQ1MThhODMzOTQ2MDkwNzMzMzczZjFmNjAyMTYzYWFiOTMyYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2Fj
aGUtbWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCAr
MSwxMTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHRpdGxlPlRlc3RzIGZvciBD
YXBwZWQgQ2FjaGUgTWF4LUFnZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cisg
ICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgY2FjaGUgbWF4LWFnZSBpcyBjYXBwZWQgZm9yIHBy
ZXZhbGVudCByZXNvdXJjZXMuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICB2
YXIgbG9hZGVkVXJsOworICAgIGZ1bmN0aW9uIGZpcnN0RmV0Y2goKSB7CisgICAgICAgIC8vIFRo
aXMgc2hvdWxkIGNyZWF0ZSBhIGNhcHBlZCBjYWNoZSBlbnRyeS4KKyAgICAgICAgZmV0Y2goImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9jYWNo
ZWQtcGVybWFuZW50LXJlZGlyZWN0LnBocCIsCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgY2FjaGU6ICJyZWxvYWQiLAorICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsKKyAgICAgICAg
ICAgICAgICAgICAgIlgtV2ViS2l0IjogIjEyMzQiLAorICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0KKyAgICAgICAgKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAg
ICBsb2FkZWRVcmwgPSByZXNwb25zZS51cmw7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoImxvYWRlZFVybCIsICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9MTIzNCIpOworICAgICAgICAg
ICAgc2Vjb25kRmV0Y2goKTsKKyAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAg
ICAgICAgICAgIHRlc3RGYWlsZWQoZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBzZWNvbmRGZXRjaCgpIHsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgbm90IHRy
aWdnZXIgYSBzdWNjZXNzZnVsIGNhY2hlIGhpdCBhbmQgaW5zdGVhZCBjcmVhdGUgYW5vdGhlciBj
YXBwZWQgY2FjaGUgZW50cnkuCisgICAgICAgIGZldGNoKCJodHRwOi8vbG9jYWxob3N0OjgwMDAv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvY2FjaGVkLXBlcm1hbmVudC1yZWRpcmVj
dC5waHAiLAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhY2hlOiAiZm9yY2UtY2Fj
aGUiLAorICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgIlgt
V2ViS2l0IjogIjQzMjEiLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBsb2FkZWRVcmwgPSBy
ZXNwb25zZS51cmw7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxvYWRlZFVy
bCIsICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9NDMyMSIpOworICAgICAgICAgICAgdGhpcmRGZXRjaCgp
OworICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAgdGVzdEZh
aWxlZChlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2Us
IGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRoaXJk
RmV0Y2goKSB7CisgICAgICAgIC8vIFRoaXMgc2hvdWxkIG5vdCB0cmlnZ2VyIGEgc3VjY2Vzc2Z1
bCBjYWNoZSBoaXQgYW5kIGluc3RlYWQgY3JlYXRlIGFub3RoZXIgY2FwcGVkIGNhY2hlIGVudHJ5
LgorICAgICAgICBmZXRjaCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcmVzb3VyY2VzL2NhY2hlZC1wZXJtYW5lbnQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICBjYWNoZTogImZvcmNlLWNhY2hlIiwKKyAgICAgICAgICAg
IH0KKyAgICAgICAgKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBsb2Fk
ZWRVcmwgPSByZXNwb25zZS51cmw7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
ImxvYWRlZFVybCIsICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9Iik7CisgICAgICAgICAgICBmb3VydGhG
ZXRjaCgpOworICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAg
dGVzdEZhaWxlZChlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9u
IGZvdXJ0aEZldGNoKCkgeworICAgICAgICAvLyBUaGlzIHNob3VsZCBub3QgdHJpZ2dlciBhIHN1
Y2Nlc3NmdWwgY2FjaGUgaGl0IGJ1dCBjbGVhciBjYXBwaW5nLgorICAgICAgICBmZXRjaCgiaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2NhY2hl
ZC1wZXJtYW5lbnQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBjYWNoZTogImZvcmNlLWNhY2hlIiwKKyAgICAgICAgICAgIH0KKyAgICAgICAgKS50aGVuKGZ1
bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBsb2FkZWRVcmwgPSByZXNwb25zZS51cmw7
CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxvYWRlZFVybCIsICJodHRwOi8v
bG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVy
eS5waHA/dmFsdWU9Iik7CisgICAgICAgICAgICBmaWZ0aEZldGNoKCk7CisgICAgICAgIH0pLmNh
dGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKGVycm9yLm1lc3Nh
Z2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmlmdGhGZXRjaCgpIHsKKyAgICAg
ICAgLy8gVGhpcyBzaG91bGQgdHJpZ2dlciBhIHJlZ3VsYXIsIHN1Y2Nlc3NmdWwgY2FjaGUgaGl0
LgorICAgICAgICBmZXRjaCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcmVzb3VyY2VzL2NhY2hlZC1wZXJtYW5lbnQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICBoZWFkZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICJY
LVdlYktpdCI6ICIxMjM0IiwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAg
ICAgICkudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgbG9hZGVkVXJsID0g
cmVzcG9uc2UudXJsOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsb2FkZWRV
cmwiLCAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3Vy
Y2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPSIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3Ip
IHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9
CisgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICBzZXRFbmFibGVG
ZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAgICAgICAgICAg
dGVzdEZhaWxlZCgiTG9jYWxob3N0IHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJj
ZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRlZC4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NDYWNoZU1heEFnZUNhcCgwKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5n
KGZpcnN0RmV0Y2gpOworICAgICAgICB9KTsKKyAgICB9KTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40ODQ2MjBkNmQzMzEyMTE2NDUxYThhNTljODRiZTYxNzY0YzQ2ZTMx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQg
YnkgSmF2YVNjcmlwdCB3aXRoIG1heC1hZ2Ugb3IgZXhwaXJ5IGxvbmdlciB0aGFuIGEgd2VlayBn
ZXQgY2FwcGVkIHRvIGEgd2Vlay4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgVGhlIHR3byBzaG9ydC1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRo
YW4gMTcyODMwIHNlY29uZHMuCitQQVNTIFRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0
IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gNjA0ODMwIHNlY29uZHMuCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3It
Y29va2llLXNldC1pbi1qcy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1q
cy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyZmZkMDQxYWUzMmRlMjg2MDNiODE5MTAzMGNl
OGEzMDVkMjYyNmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw4MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUtdXRp
bGl0aWVzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNj
cmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCB3aXRoIG1h
eC1hZ2Ugb3IgZXhwaXJ5IGxvbmdlciB0aGFuIGEgd2VlayBnZXQgY2FwcGVkIHRvIGEgd2Vlay4i
KTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERh
dGFiYXNlKHRydWUpOworCisgICAgaWYgKGludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworCisgICAgbGV0IHBhc3NlZFRl
c3RzID0gMDsKKyAgICBmdW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIo
Y29va2llRGF0YSwgbWF4QWdlSW5TZWNvbmRzKSB7CisgICAgICAgIGxldCBub3cgPSBuZXcgRGF0
ZSgpOworICAgICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93LmdldFRp
bWUoKSArIChtYXhBZ2VJblNlY29uZHMgKiAxMDAwKTsKKworICAgICAgICBpZiAobWF4RXhwaXJ5
RGF0ZUluTWlsbGlzZWNvbmRzID4gY29va2llRGF0YVsiZXhwaXJlcyJdKQorICAgICAgICAgICAg
KytwYXNzZWRUZXN0czsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29v
a2llIG5hbWVkICIgKyBjb29raWVEYXRhWyJuYW1lIl0gKyAiIGV4cGlyZXMgaW4gbW9yZSB0aGFu
ICIgKyBtYXhBZ2VJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgfQorCisgICAgY29uc3Qg
dHdvRGF5c0luU2Vjb25kcyA9IDIgKiAyNCAqIDYwICogNjA7CisgICAgY29uc3Qgc2hvcnRMaXZl
ZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJzaG9ydExpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRp
bWUgOiAiTWF4LUFnZT0iICsgdHdvRGF5c0luU2Vjb25kcyArICI7IiB9OworICAgIGRvY3VtZW50
LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsgc2hv
cnRMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgIGNvbnN0IHR3
b0RheXNBc0V4cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3b0RheXNJ
blNlY29uZHMpOworICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDog
InNob3J0TGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5
c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExpdmVk
Q29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llRXhwaXJl
cy5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgIGNvbnN0IG9uZVdlZWtJblNlY29uZHMgPSA3
ICogMjQgKiA2MCAqIDYwOworICAgIGNvbnN0IHR3b1dlZWtzSW5TZWNvbmRzID0gMiAqIG9uZVdl
ZWtJblNlY29uZHM7CisgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDog
ImxvbmdMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b1dlZWtz
SW5TZWNvbmRzICsgIjsiIH07CisgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2ll
TWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGlt
ZSArICIgcGF0aD0vIjsKKworICAgIGNvbnN0IHR3b1dlZWtzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0
ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d29XZWVrc0luU2Vjb25kcyk7CisgICAgY29uc3QgbG9u
Z0xpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwg
bGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvV2Vla3NBc0V4cGlyZXNEYXRlICsgIjsiIH07Cisg
ICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29i
YXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisg
ICAgY29uc3Qgb3ZlclR3b0RheXNJblNlY29uZHMgPSB0d29EYXlzSW5TZWNvbmRzICsgMzA7Cisg
ICAgY29uc3Qgb3Zlck9uZVdlZWtJblNlY29uZHMgPSBvbmVXZWVrSW5TZWNvbmRzICsgMzA7Cisg
ICAgaWYgKGludGVybmFscykgeworICAgICAgICBsZXQgY29va2llcyA9IGludGVybmFscy5nZXRD
b29raWVzKCk7CisgICAgICAgIGlmICghY29va2llcy5sZW5ndGgpCisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAgICBmb3IgKGxldCBjb29raWUgb2Yg
Y29va2llcykgeworICAgICAgICAgICAgc3dpdGNoIChjb29raWUubmFtZSkgeworICAgICAgICAg
ICAgICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAg
ICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdvRGF5
c0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IGNhc2Ugc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAg
Y2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3b0RheXNJblNl
Y29uZHMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNl
IGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICBjaGVja1Ro
YXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lV2Vla0luU2Vjb25kcyk7
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xp
dmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29r
aWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lV2Vla0luU2Vjb25kcyk7CisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAg
ICAgcmVzZXRDb29raWVzRm9yQ3VycmVudE9yaWdpbigpOworCisgICAgICAgIGlmIChwYXNzZWRU
ZXN0cyA9PT0gNCkgeworICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBzaG9ydC1saXZl
ZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJUd29EYXlzSW5T
ZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBs
b25nLWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3Zlck9u
ZVdlZWtJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiQXQgbGVhc3Qgb25lIGNvb2tpZSdzIGV4cGlyeSBhdHRyaWJ1dGUgd2Fz
IGJleW9uZCB0aGUgdGVzdCB0aHJlc2hvbGRzLiIpOworICAgIH0gZWxzZQorICAgICAgICB0ZXN0
RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOworCisgICAgaWYgKGludGVybmFscykKKyAg
ICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsK
KworICAgIGZpbmlzaEpTVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2Fw
cGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNh
bWUtc2l0ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTQ5NTQ1YTAzNGQzYWYyNTkwYzk5MzM3ZDIzMDVhOWJlZmRiYTQxMAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29yYXRp
b24tc2FtZS1zaXRlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitDaGVj
ayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgc2FtZS1zaXRlIG5h
dmlnYXRpb24gd2l0aCBsaW5rIGRlY29yYXRpb24gZG9uJ3QgZ2V0IGNhcHBlZCB0byAyNCBob3Vy
cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHR3byBsb25nLWxp
dmVkIGNvb2tpZXMgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA4NjQzMCBzZWNvbmRzLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlm
ZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1zaXRl
LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNv
cmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkMDk5OTFiM2ZhOGFj
ZDQ4MTk5YTg1MzIzNGQyNWFiMjg5MTVkYzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1j
b29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS5o
dG1sCkBAIC0wLDAgKzEsODYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNj
cmlwdD4KKyAgICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2
YVNjcmlwdCBhZnRlciBhIHNhbWUtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBkZWNvcmF0aW9u
IGRvbid0IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29va2llcygpIHsKKyAgICAgICAgbGV0IHBhc3NlZFRl
c3RzID0gMDsKKworICAgICAgICBmdW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzRXhwaXJlQWZ0
ZXIoY29va2llRGF0YSwgbWF4QWdlSW5TZWNvbmRzKSB7CisgICAgICAgICAgICBsZXQgbm93ID0g
bmV3IERhdGUoKTsKKyAgICAgICAgICAgIGxldCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMg
PSBub3cuZ2V0VGltZSgpICsgKG1heEFnZUluU2Vjb25kcyAqIDEwMDApOworCisgICAgICAgICAg
ICBpZiAobWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzIDwgY29va2llRGF0YVsiZXhwaXJlcyJd
KQorICAgICAgICAgICAgICAgICsrcGFzc2VkVGVzdHM7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5hbWVkICIgKyBjb29raWVEYXRhWyJuYW1l
Il0gKyAiIGV4cGlyZXMgaW4gbGVzcyB0aGFuICIgKyBtYXhBZ2VJblNlY29uZHMgKyAiIHNlY29u
ZHMuIik7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBvbmVEYXlJblNlY29uZHMgPSAyNCAq
IDYwICogNjA7CisgICAgICAgIGNvbnN0IHR3b0RheXNJblNlY29uZHMgPSAyICogb25lRGF5SW5T
ZWNvbmRzOworICAgICAgICBjb25zdCBsb25nTGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUgOiAi
bG9uZ0xpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdvRGF5c0lu
U2Vjb25kcyArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29r
aWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llTWF4QWdlLmxpZmV0
aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3b0RheXNBc0V4cGlyZXNEYXRlID0g
Y3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3b0RheXNJblNlY29uZHMpOworICAgICAgICBj
b25zdCBsb25nTGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZUV4
cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d29EYXlzQXNFeHBpcmVzRGF0ZSArICI7
IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5h
bWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBh
dGg9LyI7CisKKyAgICAgICAgY29uc3Qgb3Zlck9uZURheUluU2Vjb25kcyA9IG9uZURheUluU2Vj
b25kcyArIDMwOworICAgICAgICBpZiAoaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBsZXQgY29v
a2llcyA9IGludGVybmFscy5nZXRDb29raWVzKCk7CisgICAgICAgICAgICBpZiAoIWNvb2tpZXMu
bGVuZ3RoKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGNvb2tpZXMgZm91bmQuIik7
CisgICAgICAgICAgICBmb3IgKGxldCBjb29raWUgb2YgY29va2llcykgeworICAgICAgICAgICAg
ICAgIHN3aXRjaCAoY29va2llLm5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25n
TGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhh
dENvb2tpZURvZXNFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9u
Z0xpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tU
aGF0Q29va2llRG9lc0V4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIHJlc2V0Q29va2llc0ZvckN1cnJlbnRPcmlnaW4oKTsKKwor
ICAgICAgICAgICAgaWYgKHBhc3NlZFRlc3RzID09PSAyKSB7CisgICAgICAgICAgICAgICAgdGVz
dFBhc3NlZCgiVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZXhwaXJlIGFmdGVyIG1vcmUgdGhh
biAiICsgb3Zlck9uZURheUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkF0IGxlYXN0IG9uZSBjb29raWUncyBl
eHBpcnkgYXR0cmlidXRlIHdhcyBiZWxvdyB0aGUgdGVzdCB0aHJlc2hvbGRzLiIpOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGludGVybmFscyBvYmplY3QuIik7
CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBuYXZpZ2F0ZUNyb3NzT3JpZ2luKCkgeworICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5ocmVmID0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gKyAiL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGlu
ay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS5odG1sP2xpbms9ZGVjb3JhdGlvbiNmcmFnbWVudCI7Cisg
ICAgfQorCisgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwIjsKKyAgICBjb25zdCBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVu
dC5sb2NhdGlvbi5vcmlnaW4gPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luICYmIGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggIT09ICIjZnJhZ21lbnQiKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0
cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4sIHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4pKQorICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NV
cGRhdGVDb29raWVCbG9ja2luZyhuYXZpZ2F0ZUNyb3NzT3JpZ2luKTsKKyAgICAgICAgICAgICAg
ICB9KTsKKworICAgICAgICAgICAgfSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0
ZXN0Q29va2llcygpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFn
bWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1l
LWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1y
ZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdiYWQwMzJjNmYyMjQ1
NzNhMzM1ZDNmNzA0MTlkY2I0YmU0M2ExNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNv
b2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNl
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitDaGVjayB0aGF0IGNvb2tp
ZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdp
dGggbGluayBmcmFnbWVudCBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3Qg
ZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA0MzIzMCBzZWNvbmRzLgorUEFTUyBUaGUgdHdvIGxvbmct
bGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDg2NDMwIHNlY29uZHMu
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nh
cHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJv
bS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQt
aW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNWM4NGZiODk0Zjk5YjMyN2MxNzczZTIwMDdkYzEwZDkxYzJhODc5
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5r
LWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCAr
MSwxMDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAgICBk
ZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBhZnRl
ciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgZnJhZ21lbnQgZ2V0IGNhcHBlZCB0
byAyNCBob3Vycy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0aW9u
IHRlc3RDb29raWVzKCkgeworICAgICAgICBsZXQgcGFzc2VkVGVzdHMgPSAwOworICAgICAgICBm
dW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llRGF0YSwgbWF4
QWdlSW5TZWNvbmRzKSB7CisgICAgICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKKyAgICAg
ICAgICAgIGxldCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPSBub3cuZ2V0VGltZSgpICsg
KG1heEFnZUluU2Vjb25kcyAqIDEwMDApOworCisgICAgICAgICAgICBpZiAobWF4RXhwaXJ5RGF0
ZUluTWlsbGlzZWNvbmRzID4gY29va2llRGF0YVsiZXhwaXJlcyJdKQorICAgICAgICAgICAgICAg
ICsrcGFzc2VkVGVzdHM7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiQ29va2llIG5hbWVkICIgKyBjb29raWVEYXRhWyJuYW1lIl0gKyAiIGV4cGlyZXMgaW4g
bW9yZSB0aGFuICIgKyBtYXhBZ2VJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgIH0K
KworICAgICAgICBjb25zdCB0d2VsdmVIb3Vyc0luU2Vjb25kcyA9IDEyICogNjAgKiA2MDsKKyAg
ICAgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJzaG9ydExpdmVk
Q29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdlbHZlSG91cnNJblNlY29u
ZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZU1h
eEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1l
ICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0ZSA9
IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAg
ICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogInNob3J0TGl2ZWRD
b29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdlbHZlSG91cnNBc0V4cGly
ZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29r
aWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLmxp
ZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG9uZURheUluU2Vjb25kcyA9IDIg
KiB0d2VsdmVIb3Vyc0luU2Vjb25kczsKKyAgICAgICAgY29uc3QgdHdvRGF5c0luU2Vjb25kcyA9
IDIgKiBvbmVEYXlJblNlY29uZHM7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZU1heEFn
ZSA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdl
PSIgKyB0d29EYXlzSW5TZWNvbmRzICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9
IGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29r
aWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdvRGF5c0Fz
RXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdvRGF5c0luU2Vjb25k
cyk7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAibG9u
Z0xpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3b0RheXNBc0V4
cGlyZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENv
b2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5s
aWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCBvdmVyVHdlbHZlSG91cnNJblNl
Y29uZHMgPSB0d2VsdmVIb3Vyc0luU2Vjb25kcyArIDMwOworICAgICAgICBjb25zdCBvdmVyT25l
RGF5SW5TZWNvbmRzID0gb25lRGF5SW5TZWNvbmRzICsgMzA7CisgICAgICAgIGlmIChpbnRlcm5h
bHMpIHsKKyAgICAgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKTsK
KyAgICAgICAgICAgIGlmICghY29va2llcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiTm8gY29va2llcyBmb3VuZC4iKTsKKyAgICAgICAgICAgIGZvciAobGV0IGNvb2tpZSBv
ZiBjb29raWVzKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjb29raWUubmFtZSkgeworICAg
ICAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29r
aWUsIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5u
YW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGly
ZUFmdGVyKGNvb2tpZSwgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tp
ZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9l
c05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRD
b29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29r
aWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgcmVzZXRDb29raWVzRm9yQ3VycmVudE9yaWdpbigpOworCisgICAg
ICAgICAgICBpZiAocGFzc2VkVGVzdHMgPT09IDQpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUg
dGhhbiAiICsgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAg
ICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0IGV4
cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJPbmVEYXlJblNlY29uZHMgKyAiIHNlY29uZHMu
Iik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBdCBs
ZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJpYnV0ZSB3YXMgYmV5b25kIHRoZSB0ZXN0IHRo
cmVzaG9sZHMuIik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8g
aW50ZXJuYWxzIG9iamVjdC4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBm
aW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG5hdmlnYXRlQ3Jvc3NPcmlnaW4o
KSB7CisgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbk9yaWdpbiAr
ICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQt
aW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWwjbGlu
az1mcmFnbWVudCI7CisgICAgfQorCisgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiA9
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAg
ICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHByZXZhbGVudFJlc291cmNlT3Jp
Z2luKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOwor
ICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFs
ZW50UmVzb3VyY2VPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50
UmVzb3VyY2VPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhuYXZpZ2F0
ZUNyb3NzT3JpZ2luKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0Q29va2llcygpOworICAgICAgICB9Cisg
ICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1j
b29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxl
bnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1p
bi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNl
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTk4ZGM4ZjkwZTJkYTFiMTk4M2I0
OGRjMTg2ZWFkN2E2OTY1ZDdhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNl
dC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291
cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitDaGVjayB0aGF0IGNv
b2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9u
IHdpdGggbGluayBxdWVyeSBhbmQgZnJhZ21lbnQgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHR3byBzaG9ydC1saXZlZCBj
b29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gNDMyMzAgc2Vjb25kcy4KK1BBU1Mg
VGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA4
NjQzMCBzZWNvbmRzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5r
LXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1s
aWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50
LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzU5MWVi
NGU5NThmYjFiNTBkYjdmODIyYTIwMGVjY2M2NzM4MjQxNgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRp
bWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9t
LXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTAxIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2Nvb2tpZXMv
cmVzb3VyY2VzL2Nvb2tpZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNl
dFRpbWVvdXQoJ3J1blRlc3QoKScsIDApIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkNo
ZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRl
IG5hdmlnYXRpb24gd2l0aCBsaW5rIHF1ZXJ5IGFuZCBmcmFnbWVudCBnZXQgY2FwcGVkIHRvIDI0
IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rpb24gdGVz
dENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7CisgICAgICAgIGZ1bmN0
aW9uIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWVEYXRhLCBtYXhBZ2VJ
blNlY29uZHMpIHsKKyAgICAgICAgICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpOworICAgICAgICAg
ICAgbGV0IG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA9IG5vdy5nZXRUaW1lKCkgKyAobWF4
QWdlSW5TZWNvbmRzICogMTAwMCk7CisKKyAgICAgICAgICAgIGlmIChtYXhFeHBpcnlEYXRlSW5N
aWxsaXNlY29uZHMgPiBjb29raWVEYXRhWyJleHBpcmVzIl0pCisgICAgICAgICAgICAgICAgKytw
YXNzZWRUZXN0czsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJDb29raWUgbmFtZWQgIiArIGNvb2tpZURhdGFbIm5hbWUiXSArICIgZXhwaXJlcyBpbiBtb3Jl
IHRoYW4gIiArIG1heEFnZUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzID0gMTIgKiA2MCAqIDYwOworICAgICAg
ICBjb25zdCBzaG9ydExpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogInNob3J0TGl2ZWRDb29r
aWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d2VsdmVIb3Vyc0luU2Vjb25kcyAr
ICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29va2llTWF4QWdl
Lm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAi
IHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdlbHZlSG91cnNBc0V4cGlyZXNEYXRlID0gY3Jl
YXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAg
Y29uc3Qgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAic2hvcnRMaXZlZENvb2tp
ZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d2VsdmVIb3Vyc0FzRXhwaXJlc0Rh
dGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZUV4
cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRp
bWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0gMiAqIHR3
ZWx2ZUhvdXJzSW5TZWNvbmRzOworICAgICAgICBjb25zdCB0d29EYXlzSW5TZWNvbmRzID0gMiAq
IG9uZURheUluU2Vjb25kczsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0g
eyBuYW1lIDogImxvbmdMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiAr
IHR3b0RheXNJblNlY29uZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9u
Z0xpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1h
eEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCB0d29EYXlzQXNFeHBp
cmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsK
KyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2
ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJl
c0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2ll
RXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0
aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25k
cyA9IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgMzA7CisgICAgICAgIGNvbnN0IG92ZXJPbmVEYXlJ
blNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMgKyAzMDsKKyAgICAgICAgaWYgKGludGVybmFscykg
eworICAgICAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOworICAg
ICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAgICAgICAgZm9yIChsZXQgY29va2llIG9mIGNv
b2tpZXMpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAgICAg
ICAgICAgICAgICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAg
ICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwg
b3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6
CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0
ZXIoY29va2llLCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llTWF4
QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90
RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tp
ZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURv
ZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
CisgICAgICAgICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAg
ICAgIGlmIChwYXNzZWRUZXN0cyA9PT0gNCkgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQo
IlRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFu
ICIgKyBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJl
IGFmdGVyIG1vcmUgdGhhbiAiICsgb3Zlck9uZURheUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsK
KyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkF0IGxlYXN0
IG9uZSBjb29raWUncyBleHBpcnkgYXR0cmlidXRlIHdhcyBiZXlvbmQgdGhlIHRlc3QgdGhyZXNo
b2xkcy4iKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBpbnRl
cm5hbHMgb2JqZWN0LiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlz
aEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsK
KyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1q
cy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0
bWw/bGluaz1xdWVyeSNsaW5rPWZyYWdtZW50IjsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5h
dGlvbk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHByZXZhbGVu
dFJlc291cmNlT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJl
dmFsZW50UmVzb3VyY2VPcmlnaW4pIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQ
RGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tp
ZUJsb2NraW5nKG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOworCisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RDb29raWVz
KCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBw
ZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJl
dmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDVkZDE2YzJlZTAxMDgwZTNjMWYxYjQwMjA2YjY2
YTgwMmUwYWMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13
aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTEgQEAKK0NoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFT
Y3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIHF1ZXJ5IGdldCBj
YXBwZWQgdG8gMjQgaG91cnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IFRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFu
IDQzMjMwIHNlY29uZHMuCitQQVNTIFRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0IGV4
cGlyZSBhZnRlciBtb3JlIHRoYW4gODY0MzAgc2Vjb25kcy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRh
YmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJv
bS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODI2MjNkMWZj
MzdmYzg2YjQzODdlNGFjYWVjMGUyNDg2YWU4MzM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1m
b3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3Vy
Y2UtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDEwMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUt
dXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0
KCknLCAwKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IGNvb2tpZXMg
Y3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGgg
bGluayBxdWVyeSBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMg
PSB0cnVlOworCisgICAgZnVuY3Rpb24gdGVzdENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNz
ZWRUZXN0cyA9IDA7CisgICAgICAgIGZ1bmN0aW9uIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBp
cmVBZnRlcihjb29raWVEYXRhLCBtYXhBZ2VJblNlY29uZHMpIHsKKyAgICAgICAgICAgIGxldCBu
b3cgPSBuZXcgRGF0ZSgpOworICAgICAgICAgICAgbGV0IG1heEV4cGlyeURhdGVJbk1pbGxpc2Vj
b25kcyA9IG5vdy5nZXRUaW1lKCkgKyAobWF4QWdlSW5TZWNvbmRzICogMTAwMCk7CisKKyAgICAg
ICAgICAgIGlmIChtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPiBjb29raWVEYXRhWyJleHBp
cmVzIl0pCisgICAgICAgICAgICAgICAgKytwYXNzZWRUZXN0czsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgbmFtZWQgIiArIGNvb2tpZURhdGFb
Im5hbWUiXSArICIgZXhwaXJlcyBpbiBtb3JlIHRoYW4gIiArIG1heEFnZUluU2Vjb25kcyArICIg
c2Vjb25kcy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzSW5TZWNv
bmRzID0gMTIgKiA2MCAqIDYwOworICAgICAgICBjb25zdCBzaG9ydExpdmVkQ29va2llTWF4QWdl
ID0geyBuYW1lIDogInNob3J0TGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdl
PSIgKyB0d2VsdmVIb3Vyc0luU2Vjb25kcyArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29r
aWUgPSBzaG9ydExpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2
ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdl
bHZlSG91cnNBc0V4cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3ZWx2
ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMg
PSB7IG5hbWUgOiAic2hvcnRMaXZlZENvb2tpZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVz
PSIgKyB0d2VsdmVIb3Vyc0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQu
Y29va2llID0gc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgc2hv
cnRMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29u
c3Qgb25lRGF5SW5TZWNvbmRzID0gMiAqIHR3ZWx2ZUhvdXJzSW5TZWNvbmRzOworICAgICAgICBj
b25zdCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIG9uZURheUluU2Vjb25kczsKKyAgICAgICAgY29u
c3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZU1heEFn
ZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b0RheXNJblNlY29uZHMgKyAiOyIgfTsKKyAg
ICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZv
b2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKwor
ICAgICAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJv
bU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2ll
RXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAi
RXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1l
bnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBs
b25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNv
bnN0IG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyA9IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgMzA7
CisgICAgICAgIGNvbnN0IG92ZXJPbmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMgKyAz
MDsKKyAgICAgICAgaWYgKGludGVybmFscykgeworICAgICAgICAgICAgbGV0IGNvb2tpZXMgPSBp
bnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAg
ICAgICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAgICAgICBzd2l0
Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2Ugc2hvcnRMaXZlZENv
b2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2ll
RG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIHNo
b3J0TGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVj
a1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdlbHZlSG91cnNJblNl
Y29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
ICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAg
ICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5
SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJP
bmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXNldENvb2tpZXNGb3JD
dXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAgICAgIGlmIChwYXNzZWRUZXN0cyA9PT0gNCkgewor
ICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBk
b24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMg
KyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBsb25n
LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3Zlck9uZURh
eUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkF0IGxlYXN0IG9uZSBjb29raWUncyBleHBpcnkgYXR0cmlidXRl
IHdhcyBiZXlvbmQgdGhlIHRlc3QgdGhyZXNob2xkcy4iKTsKKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOworCisgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJl
ZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1s
aWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxl
bnQtcmVzb3VyY2UuaHRtbD9saW5rPXF1ZXJ5IjsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5h
dGlvbk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHByZXZhbGVu
dFJlc291cmNlT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJl
dmFsZW50UmVzb3VyY2VPcmlnaW4pIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQ
RGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tp
ZUJsb2NraW5nKG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOworCisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RDb29raWVz
KCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBw
ZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24t
ZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3It
Y29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1y
ZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JmNjQ5YTU3ZTEzNjRj
MDYwNjQ1Njk0MTMwNDU0MTEzNzQ1ODMwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNv
b2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVz
b3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0NoZWNrIHRoYXQg
Y29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRp
b24gd2l0aG91dCBsaW5rIGRlY29yYXRpb24gZG9uJ3QgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHR3byBsb25nLWxpdmVk
IGNvb2tpZXMgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA4NjQzMCBzZWNvbmRzLgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRp
bWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2
YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMt
d2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mMmZlYWQ4YjQ1MDc4ZjFiMGFmNTA3ODBmM2Y3ZDZiZDg5ZDgwYTcw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxp
bmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsODYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAg
ICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBh
ZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRob3V0IGxpbmsgZGVjb3JhdGlvbiBkb24n
dCBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwor
CisgICAgZnVuY3Rpb24gdGVzdENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRUZXN0cyA9
IDA7CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tUaGF0Q29va2llRG9lc0V4cGlyZUFmdGVyKGNv
b2tpZURhdGEsIG1heEFnZUluU2Vjb25kcykgeworICAgICAgICAgICAgbGV0IG5vdyA9IG5ldyBE
YXRlKCk7CisgICAgICAgICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93
LmdldFRpbWUoKSArIChtYXhBZ2VJblNlY29uZHMgKiAxMDAwKTsKKworICAgICAgICAgICAgaWYg
KG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA8IGNvb2tpZURhdGFbImV4cGlyZXMiXSkKKyAg
ICAgICAgICAgICAgICArK3Bhc3NlZFRlc3RzOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBuYW1lZCAiICsgY29va2llRGF0YVsibmFtZSJdICsg
IiBleHBpcmVzIGluIGxlc3MgdGhhbiAiICsgbWF4QWdlSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIp
OworICAgICAgICB9CisKKyAgICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0gMjQgKiA2MCAq
IDYwOworICAgICAgICBjb25zdCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIG9uZURheUluU2Vjb25k
czsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogImxvbmdM
aXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b0RheXNJblNlY29u
ZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llTWF4
QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSAr
ICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0
ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3Qg
bG9uZ0xpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVz
IiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsK
KyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsg
Ij1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8i
OworCisgICAgICAgIGNvbnN0IG92ZXJPbmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMg
KyAzMDsKKyAgICAgICAgaWYgKGludGVybmFscykgeworICAgICAgICAgICAgbGV0IGNvb2tpZXMg
PSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0
aCkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAg
ICAgICAgICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAgICAgICBz
d2l0Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVk
Q29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29r
aWVEb2VzRXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZl
ZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENv
b2tpZURvZXNFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fQorCisgICAgICAgICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAg
ICAgICAgIGlmIChwYXNzZWRUZXN0cyA9PT0gMikgeworICAgICAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIlRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiAr
IG92ZXJPbmVEYXlJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5
IGF0dHJpYnV0ZSB3YXMgYmVsb3cgdGhlIHRlc3QgdGhyZXNob2xkcy4iKTsKKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOworCisg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3Jh
dGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sIjsKKyAgICB9CisKKyAgICBjb25zdCBk
ZXN0aW5hdGlvbk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHBy
ZXZhbGVudFJlc291cmNlT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9
PT0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4pIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUs
IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0
ZUNvb2tpZUJsb2NraW5nKG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0p
OworCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RD
b29raWVzKCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlz
dGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBjMjU4YjhlMDA1ZDM1NTQx
ODJhZjA2ZDQ4MjU4M2FlNzdlNWExMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50
LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CitQQVNTIEhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3Mt
ZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3Mt
ZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZTAzZmQ4NzEyZWY5ZWRjOWIxODYyZjYzNmQxZTc0
ZWE2ODhkODQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4
ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgi
PgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gTWl4ZWQgU3Rh
dGlzdGljczwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBo
b3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJs
ID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJh
bWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BG
cmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRv
cEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisKKyAgICBmdW5j
dGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFz
IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NS
ZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRl
c3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQ
YWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworCisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ikhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9y
aWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVP
cmlnaW4zKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNj
YW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAg
ICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RV
bmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAg
ICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAg
IH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxl
bnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3At
ZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBjMjU4Yjhl
MDA1ZDM1NTQxODJhZjA2ZDQ4MjU4M2FlNzdlNWExMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24t
cHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRh
YmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgSG9zdCBkaWQgbm90IGdldCBjbGFzc2lm
aWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQt
YmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdp
bnMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODU0MDkwOGVkODBkMTM0ZTczODA0OTZhMjc1
MDVhZDAwNWM5N2JhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24t
c3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCAr
MSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8
bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBDbGFzc2lmaWNhdGlv
biBCYXNlZCBvbiBTdWIgRnJhbWUgVW5kZXIgVG9wIEZyYW1lIE9yaWdpbnM8L3RpdGxlPgorICAg
IDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcu
MC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RV
bmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8v
MTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6
Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0
cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkg
eworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgY2xhc3NpZmllZCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0
ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAg
ICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNX
ZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNl
dCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwg
dG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1
YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZy
YW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhj
b21wbGV0ZVRlc3QpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0Rp
ZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOwor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0g
aG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7
CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXBy
ZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRh
YmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11
bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjBjMjU4YjhlMDA1ZDM1NTQxODJhZjA2ZDQ4MjU4M2FlNzdlNWExMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1v
cmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0IGRpZCBub3Qg
Z2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9u
LXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1k
YXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXIt
dG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjExMjBhODU5MzEy
MTE0MDcyZDQ3MjliMzZiYTBhMTc3ZjNkYzQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2
YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJh
c2UuaHRtbApAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVu
Ij4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMg
Zm9yIENsYXNzaWZpY2F0aW9uIEJhc2VkIG9uIFN1YnJlc291cmNlIFVuZGVyIFRvcCBGcmFtZSBP
cmlnaW5zPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhv
c3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwg
PSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFt
ZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZy
YW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlv
biBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNl
dFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RS
dW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdl
c1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworIAorICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVP
cmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0
aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3Rh
bGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRh
UmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRp
b24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cu
aW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7
CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5hbHMu
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RS
dW5uZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3Rz
LXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJl
c291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIwYzI1OGI4ZTAwNWQzNTU0MTgyYWYwNmQ0ODI1ODNhZTc3ZTVhMTMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJl
Y3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0IGRpZCBub3Qg
Z2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9u
LXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFi
YXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVk
aXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDc1OGNiMDZiNmUyYTlhZmZmYTJk
NzQzZDNmZWIyYzBkYTU4ZTZlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJh
c2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbApAQCAt
MCwwICsxLDUxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgor
ICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIENsYXNzaWZp
Y2F0aW9uIEJhc2VkIG9uIFN1YnJlc291cmNlIFVuaXF1ZSBSZWRpcmVjdHMgVG88L3RpdGxlPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIx
MjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhv
c3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRw
Oi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0
dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgp
IHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
c3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGNsYXNzaWZpZWQg
YXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50
U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNv
cmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBn
ZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3Jp
Z2luMik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2Fu
RGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5k
ZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50
LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjMyZGQ2OWY5NDE5ZjUxOTg5NTdmMDkwOGRkNjc0ZDY4NDM2Y2I5YzcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGlj
cy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRh
dGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg5NzMxOWFiMGZiMTAwMDU1YTkzNWQ0YTk1MmIyYWI5
OTQ0ODMzNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3Rh
dGlzdGljcy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAg
IDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gTWl4ZWQgU3RhdGlzdGlj
czwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5k
ZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0
dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmln
aW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9y
aWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1l
T3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJh
bWVPcmlnaW40ID0gImh0dHA6Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9u
IGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAg
ICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBnb3QgY2xhc3NpZmll
ZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFs
c2UpOworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRl
KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dl
cmVTY2FubmVkKHRydWUpOworIAorICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNl
dCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwg
dG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1
YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjQp
OworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVy
VG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdp
bihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NV
cmwsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9y
aWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VV
bmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxs
YmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQ
cm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRv
dy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0
cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1l
LXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxl
bnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmRkNjlmOTQxOWY1MTk4OTU3ZjA5MDhkZDY3NGQ2ODQz
NmNiOWM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUt
dW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQ
QVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRh
dGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJh
bWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlYTc2MjAwZGEyZmZiMWEwMDU1
YThhMTk4YWUyNzgzZTJlYjNmNTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmlj
YXRpb24gQmFzZWQgb24gU3ViIEZyYW1lIFVuZGVyIFRvcCBGcmFtZSBPcmlnaW5zPC90aXRsZT4K
KyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAi
MTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBo
b3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0
cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJo
dHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0g
Imh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjQg
PSAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVU
ZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1Vy
bCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkg
cHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAg
IGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQo
dHJ1ZSk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3Jp
Z2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVy
VG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihz
dGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRv
cEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3Rp
Y3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7
CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09
PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3Qo
KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29s
bHVzaW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGRkY2U1YjMxNGNkN2Qy
ZDBkZWM0OGI2ZjlmOWUwZWNjYWI4MzA5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1i
YXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiBz
dWJyZXNvdXJjZSByZWRpcmVjdCBjb2xsdXNpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIENvbGx1ZGluZyBob3N0IDEgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuCitQQVNTIENvbGx1ZGluZyBob3N0IDIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
CitQQVNTIENvbGx1ZGluZyBob3N0IDMgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQ
QVNTIENvbGx1ZGluZyBob3N0IDQgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNT
IENvbGx1ZGluZyBsb2NhbGhvc3QgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIg
YWN0dWFsIHN1YiBmcmFtZSByZWRpcmVjdC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1
YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1i
YXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xMWUwNDc3NDY5ZDQwMGJhYTU3NTc4ODI5YWEyMTRlMmVkOGVkNmIzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xs
dXNpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDcxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBi
YXNlZCBvbiBzdWJyZXNvdXJjZSByZWRpcmVjdCBjb2xsdXNpb24uIik7CisgICAganNUZXN0SXNB
c3luYyA9IHRydWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAw
IjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCAr
ICIvdGVtcCI7CisgICAgY29uc3Qgc3VicmVzb3VyY2VPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4w
LjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCBzdWJyZXNvdXJjZU9yaWdpbjIgPSAiaHR0cDovLzEy
Ny4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHN1YnJlc291cmNlT3JpZ2luMyA9ICJodHRw
Oi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisgICAgY29uc3Qgc3VicmVzb3VyY2VPcmlnaW40ID0g
Imh0dHA6Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20o
c3RhdGlzdGljc1VybCwgc3VicmVzb3VyY2VPcmlnaW4xKTsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oc3VicmVzb3VyY2VPcmln
aW4xLCBzdWJyZXNvdXJjZU9yaWdpbjIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShzdWJyZXNvdXJjZU9yaWdpbjIsIHN1YnJl
c291cmNlT3JpZ2luMyk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RGcm9tKHN1YnJlc291cmNlT3JpZ2luMywgc3VicmVzb3VyY2VPcmln
aW40KTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGV4cGxpY2l0eSBzZXQgZGlkIG5vdCBnZXQg
c2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luMSkpCisgICAg
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgMSBnb3Qgc2V0IGFzIHByZXZh
bGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjEpKQorICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDEgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBw
cmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjIpKQorICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJl
dmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4yKSkKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCAyIGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50
IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4zKSkKKyAgICAgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCAzIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIp
OworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJl
c291cmNlKHN1YnJlc291cmNlT3JpZ2luMykpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
Q29sbHVkaW5nIGhvc3QgMyBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJj
ZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN1YnJlc291cmNlT3JpZ2luNCkpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgi
Q29sbHVkaW5nIGhvc3QgNCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShz
dWJyZXNvdXJjZU9yaWdpbjQpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGlu
ZyBob3N0IDQgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7Cisg
ICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIikpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29s
bHVkaW5nIGxvY2FsaG9zdCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZSBhZnRlciBhY3R1
YWwgc3ViIGZyYW1lIHJlZGlyZWN0LiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSkK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgbG9jYWxob3N0IGdvdCBjbGFz
c2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9CisK
KyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5k
b3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwg
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCnCoHsKKyAgICAgICAg
ICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90
IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICBs
ZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAg
ICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQub25sb2FkID0gcnVuVGVzdDsKKyAgICAgICAgICAg
ICAgICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89aHR0cDovLzEy
Ny4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvb25jbGljay5odG1sIjsKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVj
dC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1v
bi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmI4ZmNiZDhkOGY2ZDA1ZmM0OTRkNGVlZGRjZDljYjVlYmRkZTBjMzkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0
LXRvLXByZXZhbGVudC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVz
dHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHN1YnJlc291cmNlIHJlZGlyZWN0IHRvIG90
aGVyIHByZXZhbGVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgSG9z
dCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJh
c2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NmE3Mzg5NTMyNzcyMjhjNmVmNTY5MWJmNzAzNTc5Mzk5
ZDI0NjZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJj
ZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDUxIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZv
ciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiBzdWJyZXNvdXJjZSByZWRpcmVjdCB0byBvdGhlciBw
cmV2YWxlbnQuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBob3N0
VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0g
Imh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVP
cmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNv
bXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgZWxzZSBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uo
c3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lm
aWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIp
OworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4xLCB0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVl
UmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2so
Y29tcGxldGVUZXN0KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NT
dGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYg
KGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RS
dW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVu
RGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOwor
ICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsK
KyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxl
bnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3At
ZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJkZDY5Zjk0
MTlmNTE5ODk1N2YwOTA4ZGQ2NzRkNjg0MzZjYjljNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3Vy
Y2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yZDAxZWE2YmMyNDkzNzU5MmYwZTg5Njc2MTVjOTljNWM4ZGMzZmE2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3At
ZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgi
PgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gU3VicmVzb3Vy
Y2UgVW5kZXIgVG9wIEZyYW1lIE9yaWdpbnM8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAg
Y29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAi
OworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVt
cCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90
ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAw
L3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luNCA9ICJodHRwOi8vMTI3LjAuMC41Ojgw
MDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICgh
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBw
cmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkhvc3QgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBy
dW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90
aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFs
c2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsK
KworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRv
cEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4o
c3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJs
LCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3Jp
Z2luNCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2Fu
RGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5k
ZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8t
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyZGQ2OWY5NDE5ZjUxOTg5NTdmMDkw
OGRkNjc0ZDY4NDM2Y2I5YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9u
LXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0
cy10by1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlx
dWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhmN2YxMzkxYzYyMWRl
ODY2ZTFiZDIzYjAxYmRhMzMyZDBkOWYzNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQt
YmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sCkBA
IC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+
CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3Np
ZmljYXRpb24gQmFzZWQgb24gU3VicmVzb3VyY2UgVW5pcXVlIFJlZGlyZWN0cyBUbzwvdGl0bGU+
CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0g
IjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsg
aG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0
dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAi
aHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9
ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW40
ID0gImh0dHA6Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRl
VGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQg
bm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5
IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBh
c3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAg
ICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVk
KHRydWUpOworIAorICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24t
cHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVP
cmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRv
KHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwg
dG9wRnJhbWVPcmlnaW40KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlz
dGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMo
KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3Qg
PT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFs
cykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVz
dCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXBy
ZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1
c2lvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQzOTM4Yjc2Yzk3NDRjM2Fm
YTdiMjU1MDVlYWViNDlkODY2YjUyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxNCBAQAorVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHRvcCBm
cmFtZSByZWRpcmVjdCBjb2xsdXNpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIENvbGx1ZGluZyBob3N0IDEgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQ
QVNTIENvbGx1ZGluZyBob3N0IDIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNT
IENvbGx1ZGluZyBob3N0IDMgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENv
bGx1ZGluZyBob3N0IDQgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1
ZGluZyBsb2NhbGhvc3QgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgYWN0dWFs
IG5hdmlnYXRpb25hbCByZWRpcmVjdC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1m
cmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjMxZGEwMDBlOWNmYWE3MWE2ODU1MTcyOTRkMmVkYmUwZGZlMGE0NDAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0
YWJhc2UuaHRtbApAQCAtMCwwICsxLDcxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9
ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0
b3AgZnJhbWUgcmVkaXJlY3QgY29sbHVzaW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVl
OworCisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29u
c3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOwor
ICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7
CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1w
IjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3Rl
bXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luNCA9ICJodHRwOi8vMTI3LjAuMC41OjgwMDAv
dGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW41ID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC8iOworCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oc3RhdGlzdGljc1VybCwgdG9wRnJh
bWVPcmlnaW4xKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlx
dWVSZWRpcmVjdEZyb20odG9wRnJhbWVPcmlnaW4xLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSh0b3BG
cmFtZU9yaWdpbjIsIHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKHRvcEZyYW1lT3JpZ2luMywgdG9wRnJh
bWVPcmlnaW40KTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlm
ICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJs
KSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGV4cGxpY2l0eSBzZXQgZGlkIG5v
dCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMSkpCisg
ICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgMSBnb3Qgc2V0IGFzIHBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjEpKQorICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDEgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBw
cmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjIpKQorICAgICAgICAgICAgICAg
IHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFs
ZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4yKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJDb2xsdWRpbmcgaG9zdCAyIGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291
cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4zKSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJD
b2xsdWRpbmcgaG9zdCAzIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHRv
cEZyYW1lT3JpZ2luMykpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhv
c3QgMyBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZy
YW1lT3JpZ2luNCkpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3Qg
NCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjQp
KQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDQgZ290IGNsYXNz
aWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjUpKQor
ICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBsb2NhbGhvc3QgZ290IHNldCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgYWN0dWFsIG5hdmlnYXRpb25hbCByZWRpcmVjdC4i
KTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRS
ZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjUpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNv
bGx1ZGluZyBsb2NhbGhvc3QgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7CisKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVz
dCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNo
ID09PSAiIiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ikhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdG9wRnJhbWVPcmlnaW41ICsg
InJlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRv
PWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9uLmh0bWwjY29u
dGludWUiOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIHJ1blRl
c3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1w
cmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10
by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5Zjk5NTMzODI4
MGYzMTViMjIwMDNmMDA4MmQwODE0ODQ3ZTlhYjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFs
ZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNl
ZCBvbiB0b3AgZnJhbWUgcmVkaXJlY3QgdG8gb3RoZXIgcHJldmFsZW50LgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJl
c291cmNlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRv
LXByZXZhbGVudC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUt
cmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGU4YjAxZDE3
OGMzMjM5ZWIwZDE2NTg0N2RmYTI3ZDFkNjdkNzBkNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5o
dG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgor
PGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJl
c291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAg
ICBkZXNjcmlwdGlvbigiVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHRvcCBmcmFt
ZSByZWRpcmVjdCB0byBvdGhlciBwcmV2YWxlbnQuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBj
b25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7
CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1w
IjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZSBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NW
ZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJIb3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMg
cHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2Us
IGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmln
aW4xLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdp
bjEpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRh
dGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7
CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRl
c3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0
ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFs
ZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMt
dG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUt
dW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ5
MWJmOTYwMzM1NzA5Yzk5MWRmMWZmZDMyNDI4YmRiYWU4MDZmOAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIGZvciBjbGFzc2lmaWNhdGlv
biBiYXNlZCBvbiB0b3AgZnJhbWUgdW5pcXVlIHJlZGlyZWN0cyB0by4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNv
dXJjZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJl
Y3RzLXRvLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlx
dWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWM0YzdlZTVmNmMzZmVh
NjU2MTNmODU4MzYyN2E0Yzk4NTAzMTVkYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQt
YmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbApAQCAt
MCwwICsxLDU2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgor
ICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3Jp
cHRpb24oIlRlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0b3AgZnJhbWUgdW5pcXVl
IHJlZGlyZWN0cyB0by4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0
IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NV
cmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BG
cmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRv
cEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3Qg
dG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25z
dCB0b3BGcmFtZU9yaWdpbjQgPSAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiOworCisgICAg
ZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVz
b3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBj
bGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291
cmNlLiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZy
YW1lT3JpZ2luMSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5p
cXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGlj
c1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luNCk7
CisKKyAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jk
c0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
UHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgIH0KKworICAgIGlmIChkb2N1
bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVy
ICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRh
YmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFS
ZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAg
fQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2YWxl
bnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVy
eS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjBmMDMxZGNhNWQwYzk2MDhmNGQ4ZjVhZjg5OWExNmU5ZWY1MWM1OAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0
aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGZvciBjbGFz
c2lmaWNhdGlvbiBhcyB2ZXJ5IHByZXZhbGVudCBiYXNlZCBvbiBtaXhlZCBzdGF0aXN0aWNzLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMg
dmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJhc2VkLW9u
LW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1v
bi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWIwNmZhMjA5ZWRi
YjZmMTE4OGFmZjdkMTYwNjMwNDAyN2FiYjE3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5LXBy
ZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCAr
MSw2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8
bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9u
KCJUZXN0IGZvciBjbGFzc2lmaWNhdGlvbiBhcyB2ZXJ5IHByZXZhbGVudCBiYXNlZCBvbiBtaXhl
ZCBzdGF0aXN0aWNzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3Qg
aG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1Vy
bCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIHZhciB0b3BGcmFt
ZU9yaWdpbnMgPSBbXTsKKyAgICBjb25zdCBzdGFydE51bSA9IDI7CisgICAgY29uc3QgbnVtYmVy
T2ZTdWJyZXNvdXJjZURvbWFpbnMgPSAzMDsKKyAgICBmb3IgKHZhciBpID0gc3RhcnROdW07IGkg
PCBudW1iZXJPZlN1YnJlc291cmNlRG9tYWlucyArIHN0YXJ0TnVtOyArK2kpCisgICAgICAgIHRv
cEZyYW1lT3JpZ2lucy5wdXNoKCJodHRwOi8vMTI3LjAuMC4iICsgaSArICI6ODAwMC90ZW1wIikK
KworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFz
IHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5l
clRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hl
bkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgCisgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
c3RhcnRlZCBvdXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB2YXIg
aSA9IDA7CisgICAgICAgICAgICB3aGlsZSAoaSA8IG51bWJlck9mU3VicmVzb3VyY2VEb21haW5z
KSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRl
clRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpXSk7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZy
YW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpXSk7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRv
KHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpXSk7CisKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlz
dGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2krMV0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbnNbaSsxXSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRv
cEZyYW1lT3JpZ2luc1tpKzFdKTsKKworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbnNbaSsyXSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3Jp
Z2luc1tpKzJdKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2kr
Ml0pOworICAgICAgICAgICAgICAgIGkgKz0gMzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNr
KGNvbXBsZXRlVGVzdCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNz
U3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlm
IChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0
UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJ
VFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBydW5UZXN0
UnVubmVyVGVzdCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXIt
aW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1v
cnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmJhZTAwMzNmZmNjYWVjMjYzYTk2ZjJiM2Q3ODNlZGNmNzA0MDgzZDMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXIt
aW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDExIEBACitUZXN0cyBjbGVhcmluZyBvZiB3ZWJzaXRlIGRhdGEgc3RvcmUuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuCitQQVNTIEhvc3QgaXMgbm8gbG9uZ2VyIGEgcHJldmFsZW50IHJlc291
cmNlIGFmdGVyIHRoZSBzdG9yZSB3YXMgY2xlYXJlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0
ZW50LXN0b3JlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFi
YXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjE3ZWJhYmFkOTE3YWFkNDk5MDMzODFlYTM1MjNlMjA2MmJh
ZWIwYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJh
c2UuaHRtbApAQCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVu
Ij4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdCBD
bGVhcmVkIFN0b3JlPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24o
IlRlc3RzIGNsZWFyaW5nIG9mIHdlYnNpdGUgZGF0YSBzdG9yZS4iKTsKKyAgICBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAi
OworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsg
Ii90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4
MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4z
OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4w
LjQ6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIHRlc3RTdGVwMigpIHsKKyAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkp
CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJl
c291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRp
ZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc0NsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmUoY29t
cGxldGVUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBpcyBzdGlsbCBhIHByZXZhbGVu
dCByZXNvdXJjZSBhZnRlciB0aGUgc3RvcmUgd2FzIGNsZWFyZWQuIik7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgaXMgbm8gbG9uZ2VyIGEgcHJldmFsZW50IHJl
c291cmNlIGFmdGVyIHRoZSBzdG9yZSB3YXMgY2xlYXJlZC4iKTsKKworICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1
blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3Rp
ZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworCisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFt
ZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJh
bWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291
cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1l
T3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGlj
c1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbjMpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlk
U2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2sodGVzdFN0ZXAyKTsKKworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAg
ICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVu
ZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcnVuVGVzdFJ1bm5lclRl
c3QoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3Zjk5OWM2ZmViMzI2NWRlZmYzOTUxYWMyZjgxNDBh
YzFhNmVlZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9u
ZS1ob3VyLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyBjbGVh
cmluZyBvZiB3ZWJzaXRlIGRhdGEgc3RvcmUgKG9uZSBob3VyKS4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJj
ZS4KK1BBU1MgSG9zdCBpcyBubyBsb25nZXIgYSBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgdGhl
IHN0b3JlIHdhcyBjbGVhcmVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25l
LWhvdXItZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXIt
ZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYzE1ZWM4Zjk5YWEzZTM1ZGVjNTY5MmVlNjc2Mjk3
ZWQ2NGYyZjliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1v
bmUtaG91ci1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAg
IDx0aXRsZT48L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVz
dHMgY2xlYXJpbmcgb2Ygd2Vic2l0ZSBkYXRhIHN0b3JlIChvbmUgaG91cikuIik7CisgICAganNU
ZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAu
MTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVy
VGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcu
MC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEy
Ny4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8v
MTI3LjAuMC40OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7Cisg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRp
c3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBpcyBzdGlsbCBhIHByZXZh
bGVudCByZXNvdXJjZSBhZnRlciB0aGUgc3RvcmUgd2FzIGNsZWFyZWQuIik7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgaXMgbm8gbG9uZ2VyIGEgcHJldmFsZW50
IHJlc291cmNlIGFmdGVyIHRoZSBzdG9yZSB3YXMgY2xlYXJlZC4iKTsKKworICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHRlc3RTdGVwMigpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0
IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFs
ZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc0NsZWFySW5N
ZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmVNb2RpZmllZFNpbmNlSG91cnMoMSwgY29tcGxldGVUZXN0
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nh
bm5lZCh0cnVlKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7fSk7CisgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwp
KQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NT
dWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4x
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NT
dWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmln
aW4yKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZy
YW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NT
dWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmln
aW4zKTsKKworICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFS
ZWNvcmRzQ2FsbGJhY2sodGVzdFN0ZXAyKTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3Rp
Y3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgfQorCisgICAgaWYgKGRv
Y3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5u
ZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERh
dGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0K
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFzZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY29va2llLWRlbGV0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjNm
Y2ZhMDQ5MzgzNzk5NjJkY2Q3YTdiZGE0Mzk1NTAyMmVjMmU5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxl
dGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1NSBAQAorVGVzdCBmb3IgcGFy
dGl0aW9uZWQgYW5kIHVucGFydGl0aW9uZWQgY29va2llIGRlbGV0aW9uLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0t
LS0tLS0KK1Nob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tp
ZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVk
ICd0aGlyZFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQ
YXJ0eUNvb2tpZT12YWx1ZQorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUyLS0+JworLS0t
LS0tLS0KK1Nob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2ll
IG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQg
J3RoaXJkUGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0t
LS0tLQorRnJhbWU6ICc8IS0tZnJhbWUzLS0+JworLS0tLS0tLS0KK1RyeSB0byBzZXQgdGhpcmQg
cGFydHkgY29va2llLgorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTQtLT4nCistLS0t
LS0tLQorU2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUg
bmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAn
dGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0t
LS0tCitGcmFtZTogJzwhLS1mcmFtZTUtLT4nCistLS0tLS0tLQorQWZ0ZXIgcmVtb3ZhbCwgc2hv
dWxkIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2Zp
cnN0UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0
eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFt
ZTogJzwhLS1mcmFtZTYtLT4nCistLS0tLS0tLQorQWZ0ZXIgZGVjbGFzc2lmaWVkLCBzaG91bGQg
cmVjZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQ
YXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29v
a2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0
YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODM0ZTg3MzA4YTAz
OGQ0MjQ2MmIxMjExMmU0ZWJjMTQ1NTlkZWU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRh
YmFzZS5odG1sCkBAIC0wLDAgKzEsMTE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9
ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgZm9yIHBhcnRpdGlvbmVkIGFuZCB1bnBhcnRpdGlv
bmVkIGNvb2tpZSBkZWxldGlvbi4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAg
IGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJk
UGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBh
cnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cmVzb3VyY2VzIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5
Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQt
Y29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUi
OworICAgIGNvbnN0IHRoaXJkUGFydHlDb29raWVOYW1lID0gInRoaXJkUGFydHlDb29raWUiOwor
ICAgIGNvbnN0IHN1YlBhdGhUb1NldFRoaXJkUGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhw
P25hbWU9IiArIHRoaXJkUGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgY29u
c3QgZnJhZ21lbnRXaXRoUmV0dXJuVXJsID0gImh0dHA6Ly8iICsgcGFydGl0aW9uSG9zdCArICIv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24uaHRtbCI7CisgICAgY29uc3Qg
c3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBh
cnR5Q29va2llTmFtZSArICImbmFtZTI9IiArIHRoaXJkUGFydHlDb29raWVOYW1lOworCisgICAg
ZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25M
b2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAo
b25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5k
bGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVu
dCk7CisgICAgfQorCisKKyAgICBmdW5jdGlvbiBmaXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXJB
bmRDb250aW51ZSgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNj
YW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgc2V0VGltZW91
dChydW5UZXN0LCA1MDApOworICAgICAgICB9KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIHNldEFzTm9uUHJldmFsZW50QW5kQ29udGludWUoKSB7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4sIGZhbHNlLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3Qgc3RpbGwgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAg
ICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0
Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6
CisgICAgICAgICAgICAgICAgLy8gU2V0IGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0
LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFz
ZVVybCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyBmcmFnbWVudFdpdGhS
ZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgdGhpcmQt
cGFydHkgaGFzIGFjY2VzcyB0byBpdHMgZmlyc3QtcGFydHkgY29va2llcy4KKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBv
cGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVz
c2FnZT1TaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAg
ICAgICAgIC8vIENsYXNzaWZ5IGxvY2FsaG9zdCBhcyBwcmV2YWxlbnQuCisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwg
dHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZh
bGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzVXBkYXRlQ29va2llQmxvY2tpbmcocnVuVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAg
ICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIHRoaXJkLXBhcnR5IG5vIGxvbmdlciBoYXMgYWNj
ZXNzIHRvIGl0cyBmaXJzdC1wYXJ0eSBjb29raWVzLgorICAgICAgICAgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhp
cmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCBy
ZWNlaXZlIG5vIGNvb2tpZXMuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlICIjc3RlcDUiOgorICAgICAgICAgICAgICAgIC8vIFRyeSBzZXR0aW5n
IGEgY29va2llIGFzIHRoaXJkLXBhcnR5LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0
aW9uLmhhc2ggPSAic3RlcDYiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0
eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRUaGlyZFBhcnR5Q29va2llICsgIiZtZXNzYWdlPVRyeSB0
byBzZXQgdGhpcmQgcGFydHkgY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA2IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVj
ayB0aGF0IHRoZSB0aGlyZC1wYXJ0eSBzdGlsbCBoYXMgbm8gYWNjZXNzIHRvIGNvb2tpZXMgYW5k
IHRoZW4gZmlyZSBkYXRhIHJlY29yZCByZW1vdmFsLgorICAgICAgICAgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggPSAic3RlcDciOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhp
cmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCBy
ZWNlaXZlIG5vIGNvb2tpZXMuIiwgZmlyZURhdGFNb2RpZmljYXRpb25IYW5kbGVyQW5kQ29udGlu
dWUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA3IjoK
KyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSB0aGlyZC1wYXJ0eSBzdGlsbCBoYXMg
bm8gYWNjZXNzIHRvIGNvb2tpZXMgYW5kIHRoZW4gZGVjbGFzc2lmeSBsb2NhbGhvc3QuCisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwOCI7CisgICAgICAgICAg
ICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMg
KyAiJm1lc3NhZ2U9QWZ0ZXIgcmVtb3ZhbCwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4iLCBz
ZXRBc05vblByZXZhbGVudEFuZENvbnRpbnVlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgIiNzdGVwOCI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0
aGUgdGhpcmQtcGFydHkgc3RpbGwgaGFzIG5vIGFjY2VzcyB0byBjb29raWVzLgorICAgICAgICAg
ICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVz
ICsgIiZtZXNzYWdlPUFmdGVyIGRlY2xhc3NpZmllZCwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2ll
cy4iLCBmaW5pc2hUZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
IH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBwYXJ0aXRpb25Ib3N0ICYm
IGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdp
bmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0
cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVm
b3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAg
IGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEiOworCisgICAgICAgICAgICBydW5UZXN0
KCk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9
CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91
dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdpdGgtYW5kLXdpdGhvdXQt
dXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWQxMDky
ZWZkZWVlNDZmYWM2ZTM2YWMwNzZkODE0ZDJiYmU1YzdiOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdpdGgt
YW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1No
b3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAn
Zmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFy
dHlDb29raWU9dmFsdWUKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMi0tPicKKy0tLS0t
LS0tCitTaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBu
YW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisK
Ky0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTMtLT4nCistLS0tLS0tLQorQWZ0ZXIgdXNlciBp
bnRlcmFjdGlvbiwgc2hvdWxkIHN0aWxsIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVj
ZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1l
bnQuY29va2llOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRh
dGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45YzdhMzljNzNlOWYxNWM2NjUwYTE3NmIzZWM5MThjMWI1ZmY2NWJhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNl
Lmh0bWwKQEAgLTAsMCArMSw4NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+
Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3QgZm9y
IFBhcnRpdGlvbmVkIENvb2tpZXMgV2l0aCBhbmQgV2l0aG91dCBVc2VyIEludGVyYWN0aW9uPC90
aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgcGFydGl0aW9uSG9zdCA9ICIxMjcu
MC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0eU9yaWdp
biArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0IGZpcnN0
UGFydHlDb29raWVOYW1lID0gImZpcnN0UGFydHlDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhU
b1NldEZpcnN0UGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIGZpcnN0UGFy
dHlDb29raWVOYW1lICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgY29uc3QgZnJhZ21lbnRXaXRoUmV0
dXJuVXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nv
b2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLmh0bWwiOworICAgIGNvbnN0
IHN1YlBhdGhUb0dldENvb2tpZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQ
YXJ0eUNvb2tpZU5hbWU7CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvcGVu
SWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJs
OworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxv
YWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2V0VXNlckludGVyYWN0
aW9uQW5kQ29udGludWUoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hh
ZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rp
b24odGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhpcmQg
cGFydHkgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAg
ICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5U
ZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAg
ICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSAr
ICIjIiArIGZyYWdtZW50V2l0aFJldHVyblVybCArICIjc3RlcDIiOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1l
KHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91
bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDQiOworICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4sIHRydWUs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Vw
ZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA1IjsKKyAgICAgICAgICAgICAgICBv
cGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVz
c2FnZT1TaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLiIsIHNldFVzZXJJbnRlcmFjdGlvbkFuZENv
bnRpbnVlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVw
NSI6CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBh
dGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9QWZ0ZXIgdXNlciBpbnRlcmFjdGlvbiwgc2hvdWxk
IHN0aWxsIHJlY2VpdmUgbm8gY29va2llcy4iLCBmaW5pc2hUZXN0KTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5o
b3N0ID09PSBwYXJ0aXRpb25Ib3N0ICYmIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT0gIiIgJiYg
d2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVu
bmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRy
dWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAg
ICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2lu
KSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2FzIGNsYXNzaWZpZWQg
YXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydHMuIik7CisgICAgICAg
ICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRl
c3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0
LWFjY2Vzc2libGUtY29va2llcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxl
LWNvb2tpZXMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzNDA3ZGNmM2VkZWVi
NjBlYzk2NDkyODUwMTQ1MWEwNTE5Mjg0NzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3Np
YmxlLWNvb2tpZXMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK0NoZWNr
IHRoYXQgb25seSBIdHRwT25seSBjb29raWVzIHJlbWFpbiBpZiBhbGwgc2NyaXB0LWFjY2Vzc2li
bGUgY29va2llcyBhcmUgZGVsZXRlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgQmVmb3JlIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiBDbGllbnQtc2lkZSBjb29r
aWUgZXhpc3RzLgorUEFTUyBCZWZvcmUgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246IEh0dHBP
bmx5IGNvb2tpZSBleGlzdHMuCitQQVNTIEJlZm9yZSBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlv
bjogUmVndWxhciBzZXJ2ZXItc2lkZSBjb29raWUgZXhpc3RzLgorUEFTUyBBZnRlciBzY3JpcHQt
YWNjZXNzaWJsZSBkZWxldGlvbjogIEh0dHBPbmx5IGNvb2tpZSBleGlzdHMuCitQQVNTIEFmdGVy
IGZ1bGwgZGVsZXRpb246ICAgICAgICAgICAgICAgQWxsIGNvb2tpZXMgYXJlIGdvbmUuCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1z
Y3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNv
b2tpZXMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MGZjNTM3N2Q3ZGVlNjA0Mjk5MGJlMGMy
ZGJmYjc0NWFlMDVjZDU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1jb29raWVz
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw3MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0Pgor
ICAgIGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IG9ubHkgSHR0cE9ubHkgY29va2llcyByZW1haW4g
aWYgYWxsIHNjcmlwdC1hY2Nlc3NpYmxlIGNvb2tpZXMgYXJlIGRlbGV0ZWQuIik7CisgICAganNU
ZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBodHRwT25seUNvb2tpZU5hbWUgPSAiaHR0
cC1vbmx5LWNvb2tpZSI7CisgICAgY29uc3Qgc2VydmVyU2lkZUNvb2tpZU5hbWUgPSAic2VydmVy
LXNpZGUtY29va2llIjsKKyAgICBjb25zdCBjbGllbnRTaWRlQ29va2llTmFtZSA9ICJjbGllbnQt
c2lkZS1jb29raWUiOworCisgICAgZnVuY3Rpb24gc29ydFN0cmluZ0FycmF5KGEsIGIpIHsKKyAg
ICAgICAgYSA9IGEudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgYiA9IGIudG9Mb3dlckNhc2UoKTsK
KworICAgICAgICByZXR1cm4gYSA+IGIgPyAxIDogYiA+IGEgPyAtMSA6IDA7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gY2hlY2tDb29raWVzKGlzQWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24p
IHsKKyAgICAgICAgbGV0IHVuc29ydGVkVGVzdFBhc3NlZE1lc3NhZ2VzID0gW107CisgICAgICAg
IGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKTsKKyAgICAgICAgaWYgKCFjb29r
aWVzLmxlbmd0aCkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoKGlzQWZ0ZXJTY3JpcHRBY2Nlc3Np
YmxlRGVsZXRpb24gPyAiQWZ0ZXIiIDogIkJlZm9yZSIpICsgIiBzY3JpcHQtYWNjZXNzaWJsZSBk
ZWxldGlvbjogTm8gY29va2llcyBmb3VuZC4iKTsKKyAgICAgICAgZm9yIChsZXQgY29va2llIG9m
IGNvb2tpZXMpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoY29va2llLm5hbWUpIHsKKyAgICAgICAg
ICAgICAgICBjYXNlIGh0dHBPbmx5Q29va2llTmFtZToKKyAgICAgICAgICAgICAgICAgICAgdW5z
b3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMucHVzaCgoaXNBZnRlclNjcmlwdEFjY2Vzc2libGVEZWxl
dGlvbiA/ICJBZnRlciIgOiAiQmVmb3JlIikgKyAiIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9u
OiAiICsgKGlzQWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24gPyAiICIgOiAiIikgKyAiSHR0
cE9ubHkgY29va2llIGV4aXN0cy4iKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgY2FzZSBzZXJ2ZXJTaWRlQ29va2llTmFtZToKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKGlzQWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24pCisgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJBZnRlciBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogIFJl
Z3VsYXIgc2VydmVyLXNpZGUgY29va2llIGV4aXN0cy4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgdW5zb3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMu
cHVzaCgiQmVmb3JlIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiBSZWd1bGFyIHNlcnZlci1z
aWRlIGNvb2tpZSBleGlzdHMuIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgIGNhc2UgY2xpZW50U2lkZUNvb2tpZU5hbWU6CisgICAgICAgICAgICAgICAgICAg
IGlmIChpc0FmdGVyU2NyaXB0QWNjZXNzaWJsZURlbGV0aW9uKQorICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiQWZ0ZXIgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246ICBDbGll
bnQtc2lkZSBjb29raWUgZXhpc3RzLiIpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNvcnRlZFRlc3RQYXNzZWRNZXNzYWdlcy5wdXNoKCJCZWZv
cmUgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246IENsaWVudC1zaWRlIGNvb2tpZSBleGlzdHMu
Iik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgICAgIGxldCBzb3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMgPSB1bnNvcnRlZFRlc3RQYXNz
ZWRNZXNzYWdlcy5zb3J0KHNvcnRTdHJpbmdBcnJheSk7CisgICAgICAgIGZvciAobGV0IHRlc3RQ
YXNzZWRNZXNzYWdlIG9mIHNvcnRlZFRlc3RQYXNzZWRNZXNzYWdlcykKKyAgICAgICAgICAgIHRl
c3RQYXNzZWQodGVzdFBhc3NlZE1lc3NhZ2UpOworICAgIH0KKworICAgIGFzeW5jIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lciB8fCAhaW50ZXJuYWxzKSB7Cisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyB0ZXN0UnVubmVyIG9yIG5vIGludGVybmFscy4iKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB0ZXN0UnVubmVyLnNldFVz
ZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBhd2FpdCBmZXRjaCgiL2Nvb2tpZXMvcmVzb3Vy
Y2VzL3NldC1odHRwLW9ubHktY29va2llLnBocD9jb29raWVOYW1lPSIgKyBodHRwT25seUNvb2tp
ZU5hbWUsIHsgY3JlZGVudGlhbHM6ICJzYW1lLW9yaWdpbiIgfSk7CisgICAgICAgIGF3YWl0IGZl
dGNoKCIvY29va2llcy9yZXNvdXJjZXMvc2V0Q29va2llcy5jZ2kiLCB7IGhlYWRlcnM6IHsgIlNl
dC1Db29raWUiOiBzZXJ2ZXJTaWRlQ29va2llTmFtZSArICI9MTsgcGF0aD0vOyIgfSwgY3JlZGVu
dGlhbHM6ICJzYW1lLW9yaWdpbiIgfSk7CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGNsaWVu
dFNpZGVDb29raWVOYW1lICsgIj0xIjsKKyAgICAgICAgY2hlY2tDb29raWVzKGZhbHNlKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzRGVsZXRlQ29va2llc0Zvckhvc3QoImh0dHA6Ly8x
MjcuMC4wLjEiLCBmYWxzZSk7CisgICAgICAgIGNoZWNrQ29va2llcyh0cnVlKTsKKyAgICAgICAg
dGVzdFJ1bm5lci5zdGF0aXN0aWNzRGVsZXRlQ29va2llc0Zvckhvc3QoImh0dHA6Ly8xMjcuMC4w
LjEiLCB0cnVlKTsKKyAgICAgICAgbGV0IGNvb2tpZXNMZWZ0ID0gaW50ZXJuYWxzLmdldENvb2tp
ZXMoKS5sZW5ndGg7CisgICAgICAgIGlmIChjb29raWVzTGVmdCA9PT0gMCkKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQoIkFmdGVyIGZ1bGwgZGVsZXRpb246ICAgICAgICAgICAgICAgQWxsIGNvb2tp
ZXMgYXJlIGdvbmUuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkFm
dGVyIGZ1bGwgZGVsZXRpb246ICAgICAgICAgICAgICAiICsgY29va2llc0xlZnQgKyAiIGNvb2tp
ZShzKSBsZWZ0LiIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVk
aXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRp
cmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzc0MzA2MWZmMTE5ZmFkM2Y1
OTdkYzE1YWUwNGI0YjhjNjkzNzk0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5h
dmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BB
U1NFRDogQ29va2llIHN1Y2Nlc3NmdWxseSBzZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5h
dmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24t
cmVkaXJlY3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjE5ZTNkNjg5MzJiZmYxOGM1YTAx
YzU2ODRjNDRmMzcxNmZkZTgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdh
dGlvbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgi
PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYmxvY2tpbmcgaXMgbm90IGFwcGxpZWQg
dG8gdG9wLWxldmVsIG5hdmlnYXRpb24gcmVkaXJlY3RzLiIpOworICAgIGpzVGVzdElzQXN5bmMg
PSB0cnVlOworCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVk
KHRydWUpOworCisgICAgZnVuY3Rpb24gZG9SZWRpcmVjdCgpCisgICAgeworICAgICAgICB0ZXN0
UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSwgZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaHJlZiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9yZXNvdXJjZXMvc2V0LWNvb2tpZS1vbi1yZWRpcmVjdC5waHA/c3RlcD0xIjsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0ic2V0VGltZW91dCgnZG9SZWRpcmVjdCgpJywgMCkiPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1y
ZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjFhZDdkOWU1MDA3NmI2ZDE2YmJjMjZhNTA0NmU5OTY5NmQ2ZTA3NjgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8t
bm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw1MSBAQAorVGVzdHMgdGhhdCBibG9ja2luZyBpcyBub3QgcmVtb3ZlZCBtaWQtZmxp
Z2h0IGluIHJlZGlyZWN0cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAKKworLS0tLS0t
LS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBmaXJz
dC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdC4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFt
ZWQgJ2ZpcnN0UGFydHlDb29raWVJUCcuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFy
dHlDb29raWVMb2NhbGhvc3QnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQ
YXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29r
aWVMb2NhbGhvc3Q9bG9jYWxob3N0CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTItLT4n
CistLS0tLS0tLQorUmVkaXJlY3QgY2FzZSAxLCBzaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBj
b29raWUgZm9yIDEyNy4wLjAuMS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNv
b2tpZUlQJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWVM
b2NhbGhvc3QnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tp
ZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWVJUD0xMjcu
MC4wLjEKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMy0tPicKKy0tLS0tLS0tCitUcnkg
dG8gc2V0IHRoaXJkLXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0IGluIGJsb2NrZWQgbW9kZS4K
KworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWU0LS0+JworLS0tLS0tLS0KK1Nob3VsZCBy
ZWNlaXZlIG5vIGNvb2tpZS4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFy
dHlDb29raWVJUCcuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29v
a2llTG9jYWxob3N0Jy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlD
b29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6
ICc8IS0tZnJhbWU1LS0+JworLS0tLS0tLS0KK1JlZGlyZWN0IGNhc2UgMiwgc2hvdWxkIG5vdCBy
ZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgMTI3LjAuMC4xLgorRGlkIG5vdCByZWNlaXZl
IGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUlQJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29r
aWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWVMb2NhbGhvc3QnLgorRGlkIG5vdCByZWNlaXZlIGNv
b2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29r
aWU6IGZpcnN0UGFydHlDb29raWVJUD0xMjcuMC4wLjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5n
LWluLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRh
YmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmY2ZjODExNzJlM2U4Nzg4OWUzNWZkNWJlMmY0NzhjOGE0
NGVmMWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRhYmFz
ZS5odG1sCkBAIC0wLDAgKzEsMTAwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVu
Ij4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYmxvY2tpbmcgaXMgbm90IHJlbW92ZWQgbWlk
LWZsaWdodCBpbiByZWRpcmVjdHMuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAg
ICBjb25zdCBwYXJ0aXRpb25Ib3N0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCB0aGly
ZFBhcnR5T3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgcmVzb3Vy
Y2VQYXRoID0gIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3Qg
dGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsgcmVzb3VyY2VQYXRoOworICAg
IGNvbnN0IGZpcnN0UGFydHlDb29raWVOYW1lUHJlZml4ID0gImZpcnN0UGFydHlDb29raWUiOwor
ICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVOYW1lSVAgPSBmaXJzdFBhcnR5Q29va2llTmFtZVBy
ZWZpeCArICJJUCI7CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWVMb2NhbGhvc3QgPSBm
aXJzdFBhcnR5Q29va2llTmFtZVByZWZpeCArICJMb2NhbGhvc3QiOworICAgIGNvbnN0IHRoaXJk
UGFydHlDb29raWVOYW1lID0gInRoaXJkUGFydHlDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhU
b1NldFRoaXJkUGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIHRoaXJkUGFy
dHlDb29raWVOYW1lICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29v
a2llcyA9ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZUlQ
ICsgIiZuYW1lMj0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWVMb2NhbGhvc3QgKyAiJm5hbWUzPSIg
KyB0aGlyZFBhcnR5Q29va2llTmFtZTsKKyAgICBjb25zdCByZWRpcmVjdENoYWluVXJsID0gdGhp
cmRQYXJ0eU9yaWdpbiArIHJlc291cmNlUGF0aCArICIvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89
aHR0cDovLyIgKyBwYXJ0aXRpb25Ib3N0ICsgcmVzb3VyY2VQYXRoICsgc3ViUGF0aFRvR2V0Q29v
a2llczsKKworICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7Cisg
ICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsK
KyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7
CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0K
KyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9u
Lmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgLy8g
U2V0IGZpcnN0LXBhcnR5IGNvb2tpZXMgZm9yIDEyNy4wLjAuMSBhbmQgbG9jYWxob3N0LgorICAg
ICAgICAgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHRoaXJkUGFydHlP
cmlnaW4pIHsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gZmlyc3RQYXJ0
eUNvb2tpZU5hbWVMb2NhbGhvc3QgKyAiPWxvY2FsaG9zdDtwYXRoPScvJyI7CisgICAgICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVj
dC5odG1sI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
ICAgICBkb2N1bWVudC5jb29raWUgPSBmaXJzdFBhcnR5Q29va2llTmFtZUlQICsgIj0xMjcuMC4w
LjE7cGF0aD0nLyciOworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVm
ID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1y
ZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QuaHRtbCNzdGVwMSI7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAg
ICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBjb29raWUgZ2V0cyBzZW50IGZvciBsb2Nh
bGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCBpcyBub3QgcHJldmFsZW50Lgor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAg
ICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29r
aWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9j
YWxob3N0LiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSAiI3N0ZXAzIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0g
InN0ZXA0IjsKKyAgICAgICAgICAgICAgICAvLyBMb2FkIGFuIGlmcmFtZSBpbiBhIHJlZGlyZWN0
IGNoYWluIHRoYXQgc3RhcnRzIHdpdGggbG9jYWxob3N0IGFuZCBlbmRzIHdpdGggMTI3LjAuMC4x
LiBFeHBlY3QgYSBjb29raWUgZm9yIDEyNy4wLjAuMS4KKyAgICAgICAgICAgICAgICBvcGVuSWZy
YW1lKHJlZGlyZWN0Q2hhaW5VcmwgKyAiJm1lc3NhZ2U9UmVkaXJlY3QgY2FzZSAxLCBzaG91bGQg
cmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIDEyNy4wLjAuMS4iLCBydW5UZXN0KTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAg
ICAgICAgICAgLy8gU2V0IGxvY2FsaG9zdCBhcyBwcmV2YWxlbnQgdG8gcHV0IGl0IGluIHRoZSBi
bG9ja2luZyBjYXRlZ29yeS4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNo
ID0gInN0ZXA1IjsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhy
dW5UZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgIiNzdGVwNSI6CisgICAgICAgICAgICAgICAgLy8gVHJ5IHRvIHNldCBw
YXJ0aXRpb25lZCBjb29raWUgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEuCisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNiI7CisgICAgICAgICAgICAg
ICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldFRoaXJkUGFydHlD
b29raWUgKyAiJm1lc3NhZ2U9VHJ5IHRvIHNldCB0aGlyZC1wYXJ0eSBjb29raWUgZm9yIGxvY2Fs
aG9zdCBpbiBibG9ja2VkIG1vZGUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlICIjc3RlcDYiOgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRo
YXQgbm8gY29va2llIGdldHMgc2VudCBmb3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMSBzaW5j
ZSBsb2NhbGhvc3QncyBjb29raWVzIGFyZSBibG9ja2VkLgorICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDciOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUo
dGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgICImbWVzc2FnZT1TaG91
bGQgcmVjZWl2ZSBubyBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlICIjc3RlcDciOgorICAgICAgICAgICAgICAgIC8vIExvYWQgYW4g
aWZyYW1lIGluIGEgcmVkaXJlY3QgY2hhaW4gdGhhdCBzdGFydHMgd2l0aCBsb2NhbGhvc3QgYW5k
IGVuZHMgd2l0aCAxMjcuMC4wLjEuIEV4cGVjdCBhIGNvb2tpZSBmb3IgMTI3LjAuMC4xLgorICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDgiOworICAgICAgICAg
ICAgICAgIG9wZW5JZnJhbWUocmVkaXJlY3RDaGFpblVybCArICImbWVzc2FnZT1SZWRpcmVjdCBj
YXNlIDIsIHNob3VsZCBub3QgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIDEyNy4wLjAu
MS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
IiNzdGVwOCI6CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNo
SlNUZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAg
IGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIikgeworICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJ
VFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkxvY2FsaG9zdCB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Ug
YmVmb3JlIHRoZSB0ZXN0IHN0YXJ0cy4iKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENo
aWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0g
InN0ZXAxIjsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgcnVuVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRo
b3V0LWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2
aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDA1ZGMwOWI2OTYzOWYxZDkwYzZjMzdjMjJlZDFiOTZmODYxYzQ0
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxl
bnQtd2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MiBAQAorVGVzdHMgdGhhdCB0aGUgc2Vzc2lvbiBpcyBub3Qgc3dpdGNoZWQgdXBvbiB0b3AgZnJh
bWUgbmF2aWdhdGlvbiB0byBhIHByZXZhbGVudCByZXNvdXJjZSB3aXRob3V0IHVzZXIgaW50ZXJh
Y3Rpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFNob3VsZCBoYXZl
IGFuZCBoYXMgdGhlIHNlc3Npb24gY29va2llLgorUEFTUyBTaG91bGQgaGF2ZSBhbmQgaGFzIHRo
ZSBwZXJzaXN0ZW50IGNvb2tpZS4KK1BBU1MgT3JpZ2luIGhhcyBubyBpc29sYXRlZCBzZXNzaW9u
LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9k
by1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1p
bnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXBy
ZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmFi
ZmRiOWM0MmJlMjBhNzM5NjYyMjQ0ZWVkNGQ3MzY0OGY1YzBkMgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dp
dGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlv
bi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
IGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2Ny
aXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0
IHRoZSBzZXNzaW9uIGlzIG5vdCBzd2l0Y2hlZCB1cG9uIHRvcCBmcmFtZSBuYXZpZ2F0aW9uIHRv
IGEgcHJldmFsZW50IHJlc291cmNlIHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHByZXZhbGVudE9yaWdpbiA9ICJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IG5vblByZXZhbGVudE9yaWdpbiA9ICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHNlc3Npb25Db29raWVOYW1lID0gInNlc3Np
b25Db29raWUiOworICAgIGNvbnN0IHBlcnNpc3RlbnRDb29raWVOYW1lID0gInBlcnNpc3RlbnRD
b29raWUiOworICAgIGNvbnN0IHR3b01pbnV0ZXNJblNlY29uZHMgPSAxMjA7CisKKyAgICBmdW5j
dGlvbiBzZXRTZXNzaW9uQ29va2llKCkgeworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzZXNz
aW9uQ29va2llTmFtZSArICI9MTsgcGF0aD0vIjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZXRQ
ZXJzaXN0ZW50Q29va2llKCkgeworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBwZXJzaXN0ZW50
Q29va2llTmFtZSArICI9MTsgcGF0aD0vOyBNYXgtQWdlPSIgKyB0d29NaW51dGVzSW5TZWNvbmRz
ICsgIjsiOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNoZWNrQ29va2llcyhzaG91bGRIYXZlU2Vz
c2lvbkNvb2tpZSwgc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29raWUpIHsKKyAgICAgICAgbGV0IGhh
c1Nlc3Npb25Db29raWUgPSAoZG9jdW1lbnQuY29va2llICsgIiIpLmluY2x1ZGVzKHNlc3Npb25D
b29raWVOYW1lKSwKKyAgICAgICAgICAgIGhhc1BlcnNpc3RlbnRDb29raWUgPSAoZG9jdW1lbnQu
Y29va2llICsgIiIpLmluY2x1ZGVzKHBlcnNpc3RlbnRDb29raWVOYW1lKTsKKworICAgICAgICBp
ZiAoc2hvdWxkSGF2ZVNlc3Npb25Db29raWUgJiYgaGFzU2Vzc2lvbkNvb2tpZSkKKyAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIlNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHNlc3Npb24gY29va2llLiIp
OworICAgICAgICBlbHNlIGlmIChzaG91bGRIYXZlU2Vzc2lvbkNvb2tpZSAmJiAhaGFzU2Vzc2lv
bkNvb2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkIGhhdmUgYnV0IGRvZXNu
J3QgaGF2ZSB0aGUgc2Vzc2lvbiBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UgaWYgKCFzaG91bGRIYXZl
U2Vzc2lvbkNvb2tpZSAmJiBoYXNTZXNzaW9uQ29va2llKSB7CisgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJTaG91bGRuJ3QgaGF2ZSBidXQgaGFzIHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKKyAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxkbid0IGhhdmUgYW5kIGRvZXNuJ3Qg
aGF2ZSB0aGUgc2Vzc2lvbiBjb29raWUuIik7CisKKworICAgICAgICBpZiAoc2hvdWxkSGF2ZVBl
cnNpc3RlbnRDb29raWUgJiYgaGFzUGVyc2lzdGVudENvb2tpZSkKKyAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIlNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHBlcnNpc3RlbnQgY29va2llLiIpOworICAg
ICAgICBlbHNlIGlmIChzaG91bGRIYXZlUGVyc2lzdGVudENvb2tpZSAmJiAhaGFzUGVyc2lzdGVu
dENvb2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkIGhhdmUgYnV0IGRvZXNu
J3QgaGF2ZSB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UgaWYgKCFzaG91bGRI
YXZlUGVyc2lzdGVudENvb2tpZSAmJiBoYXNQZXJzaXN0ZW50Q29va2llKSB7CisgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJTaG91bGRuJ3QgaGF2ZSBidXQgaGFzIHRoZSBwZXJzaXN0ZW50IGNvb2tp
ZS4iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxkbid0IGhhdmUg
YW5kIGRvZXNuJ3QgaGF2ZSB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5o
YXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgIHNldFNl
c3Npb25Db29raWUoKTsKKyAgICAgICAgICAgICAgICBzZXRQZXJzaXN0ZW50Q29va2llKCk7Cisg
ICAgICAgICAgICAgICAgY2hlY2tDb29raWVzKHRydWUsIHRydWUpOworICAgICAgICAgICAgICAg
IGlmICh0ZXN0UnVubmVyLmhhc1N0YXRpc3RpY3NJc29sYXRlZFNlc3Npb24ocHJldmFsZW50T3Jp
Z2luKSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPcmlnaW4gaGFzIGlzb2xh
dGVkIHNlc3Npb24uIik7CisgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFs
c2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIk9yaWdpbiBoYXMgbm8gaXNvbGF0ZWQgc2Vzc2lvbi4iKTsKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gbm9uUHJldmFsZW50T3JpZ2lu
ICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZp
Z2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9uLmh0bWwjc3RlcDIiOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAg
ICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAg
ICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luICE9PSBub25QcmV2YWxlbnRPcmlnaW4pCisg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlN0ZXAgMiBpcyBub3Qgb24gIiArIG5vblBy
ZXZhbGVudE9yaWdpbiArICIuIik7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHByZXZhbGVudE9yaWdpbikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQocHJldmFsZW50T3JpZ2luICsgIiBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFs
ZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5U
ZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aHJlZiA9IHByZXZhbGVudE9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qt
c3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFj
dGlvbi5odG1sI3N0ZXA0IjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgY2hlY2tDb29raWVzKHRydWUsIHRydWUpOwor
ICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmhhc1N0YXRpc3RpY3NJc29sYXRlZFNlc3Np
b24ocHJldmFsZW50T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3Jp
Z2luIGhhcyBpc29sYXRlZCBzZXNzaW9uLiIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiT3JpZ2luIGhhcyBubyBpc29sYXRlZCBzZXNzaW9u
LiIpOworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVz
dCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIlVua25vd24gaGFzaC4iKTsKKyAgICAgICAgICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisgICAgfQor
CisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiKSB7CisgICAgICAgIGlmIChk
b2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gIT09IHByZXZhbGVudE9yaWdpbikKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoIlRlc3QgaXMgbm90IHN0YXJ0aW5nIG91dCBvbiAiICsgcHJldmFsZW50T3Jp
Z2luICsgIi4iKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJ
VFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShwcmV2YWxlbnRPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQocHJl
dmFsZW50T3JpZ2luICsgIiB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVm
b3JlIHRoZSB0ZXN0IHN0YXJ0cy4iKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPSAic3RlcDEiOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVy
eS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJl
ci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2Ut
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmYmE4MTAzNWUyZmVjYmExMzk0ZDAx
ZGYyZTliZTIwNjk1ZTg1YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdh
dGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0NoZWNrIHRoYXQgZG9jdW1lbnQucmVmZXJyZXIg
aXMgZG93bmdyYWRlZCB0byB0aGUgZVRMRCsxIGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9u
IHdpdGggbGluayBxdWVyeS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
VGhlIHJlZmVycmVyIGlzIGRvd25ncmFkZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRp
b24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRl
ZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQt
cmVzb3VyY2UtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YWViZGU5NWJlOGEwNTJhZmYzNjc5
YzA2ODg1YWUxNzAyZTFkNzU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmln
YXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0
bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAg
IDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKSI+Cis8c2Ny
aXB0PgorICAgIGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IGRvY3VtZW50LnJlZmVycmVyIGlzIGRv
d25ncmFkZWQgdG8gdGhlIGVUTEQrMSBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRo
IGxpbmsgcXVlcnkuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBsZXQgbnVt
YmVyT2ZUcmllcyA9IDA7CisgICAgZnVuY3Rpb24gdGVzdFJlZmVycmVyKCkgeworICAgICAgICBp
ZiAoZG9jdW1lbnQucmVmZXJyZXIgPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luICsgIi8iKSB7
CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgcmVmZXJyZXIgaXMgZG93bmdyYWRlZC4iKTsK
KyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
ICAgIH0gZWxzZSBpZiAoKytudW1iZXJPZlRyaWVzIDw9IDUpCisgICAgICAgICAgICBzZXRUaW1l
b3V0KHRlc3RSZWZlcnJlciwgMjAwKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJUaGUgcmVmZXJyZXIgaXMgbm90IGRvd25ncmFkZWQ6ICIgKyBkb2N1bWVudC5yZWZl
cnJlcik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVTYW1lT3JpZ2luVG9B
ZGRRdWVyeSgpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHByZXZhbGVudFJl
c291cmNlT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJy
ZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNl
Lmh0bWw/bGluaz1xdWVyeSI7CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09y
aWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3Jp
Z2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5h
dmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWwiOwor
ICAgIH0KKworICAgIGNvbnN0IGRlc3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCI7CisgICAgY29uc3QgcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEyNy4w
LjAuMTo4MDAwIjsKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1l
bnQubG9jYXRpb24ub3JpZ2luID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiAmJiBkb2N1bWVu
dC5sb2NhdGlvbi5zZWFyY2ggPT09ICIiKSB7CisgICAgICAgICAgICBuYXZpZ2F0ZVNhbWVPcmln
aW5Ub0FkZFF1ZXJ5KCk7CisgICAgICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3Jp
Z2luID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikgeworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
dHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luLCB0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
VXBkYXRlQ29va2llQmxvY2tpbmcobmF2aWdhdGVDcm9zc09yaWdpbik7CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRl
c3RSZWZlcnJlcigpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZW5hYmxlLWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTIxOWRkM2IxMWYyYTM0YzQ1NzUzNDBl
NzM4ZGFkY2ZhMGNjZmNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGZvciBlbmFibGluZyBkZWJ1ZyBtb2RlIGFu
ZCB0aGF0IGl0IHBlcm1hbmVudGx5IHRyZWF0cyAzcmRwYXJ0eXRlc3R3ZWJraXQub3JnIGFzIGEg
cHJldmFsZW50IHJlc291cmNlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBodHRwOi8vM3JkcGFydHl0ZXN0d2Via2l0Lm9yZyBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNv
dXJjZSBpbiBkZWJ1ZyBtb2RlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2Rl
LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjM3ZmY5MjI1NjdmOWE0NzI4MjczZGZhNDczMjYz
N2E0ODVjYjlmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlw
dGlvbigiVGVzdCBmb3IgZW5hYmxpbmcgZGVidWcgbW9kZSBhbmQgdGhhdCBpdCBwZXJtYW5lbnRs
eSB0cmVhdHMgM3JkcGFydHl0ZXN0d2Via2l0Lm9yZyBhcyBhIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHRoaXJkUGFydHlPcmln
aW4gPSAiaHR0cDovLzNyZHBhcnR5dGVzdHdlYmtpdC5vcmciOworCisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRV
c2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
dGhpcmRQYXJ0eU9yaWdpbiArICIgYWxyZWFkeSBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIp
OworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUodHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKHRoaXJkUGFydHlPcmlnaW4gKyAiIGRpZG4ndCBnZXQgc2V0IGFzIHByZXZh
bGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQodGhpcmRQYXJ0eU9yaWdpbiArICIgZ290IHNldCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UgaW4gZGVidWcgbW9kZS4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NEZWJ1Z01vZGUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhl
cmluZy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDE4MDNiZmNiNTNiMTQwNDlk
NWUxZGFhZTViMjViNjI3ZmFjZTVhNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgR3JhbmRmYXRoZXJlZCBjb29raWUgd2FzIG5vdCBw
dXJnZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uY2JkZDA0MWRkZDE3ZjhmNDZlY2EzNDcwZjE4MzRmZmE0MmQ2NWQ4Zgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTE1IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdCBmb3IgR3JhbmRmYXRoZXJpbmc8L3RpdGxlPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBmaXJzdFBhcnR5T3JpZ2luID0gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgZmlyc3RQYXJ0eUJhc2VVcmwgPSBmaXJzdFBhcnR5
T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3Qg
Zmlyc3RQYXJ0eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3QgdGhp
cmRQYXJ0eUNvb2tpZU5hbWUgPSAidGhpcmRQYXJ0eUNvb2tpZSI7CisgICAgY29uc3QgY29va2ll
VmFsdWUgPSAidmFsdWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUg
PSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZ2YWx1
ZT0iICsgY29va2llVmFsdWU7CisgICAgY29uc3QgcmV0dXJuVXJsID0gZmlyc3RQYXJ0eU9yaWdp
biArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy5odG1sIjsKKyAgICBj
b25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgY29u
c3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNv
b2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsgdGhpcmRQYXJ0eUNvb2tpZU5hbWUgKyAi
JnZhbHVlPSIgKyBjb29raWVWYWx1ZTsKKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7Cisg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0
aW9uIGZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlckFuZENvbnRpbnVlKCkgeworICAgICAgICB0
ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgICAgICB0
ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gY2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZUFuZENv
bnRpbnVlKCkgeworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5k
UGVyc2lzdGVudFN0b3JlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcnVuVGVzdCgpOworICAg
ICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0
Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6
CisgICAgICAgICAgICAgICAgLy8gU2V0IGEgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhv
c3QuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGZpcnN0UGFydHlC
YXNlVXJsICsgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIHJldHVyblVybCAr
ICIjc3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0
ZXAyIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsK
KyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IGxvY2FsaG9zdCdzIGNvb2tpZSBpcyB0aGVy
ZS4KKyAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSBmaXJzdFBhcnR5Q29v
a2llTmFtZSArICI9IiArIGNvb2tpZVZhbHVlKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJGaXJzdC1wYXJ0eSBjb29raWUgbm90IHNldC4iKTsKKyAgICAgICAgICAgICAgICBydW5U
ZXN0KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMi
OgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDQiOworICAg
ICAgICAgICAgICAgIC8vIENsZWFyIHN0b3JlIHRvIHRyaWdnZXIgZ3JhbmRmYXRoZXJpbmcuCisg
ICAgICAgICAgICAgICAgY2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZUFuZENvbnRpbnVl
KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAg
ICAgICAgICAgIC8vIFNldCBsb2NhbGhvc3QgYXMgcHJldmFsZW50IHJlc291cmNlLgorICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRw
Oi8vbG9jYWxob3N0IiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlm
ICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2Fs
aG9zdCIpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IGRp
ZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAg
ICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNSI6CisgICAgICAgICAgICAgICAgLy8gU2V0IGEg
Zmlyc3QtcGFydHkgY29va2llIGZvciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0VGhpcmRQ
YXJ0eUNvb2tpZSArICIjIiArIHJldHVyblVybCArICIjc3RlcDYiOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA2IjoKKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA3IjsKKyAgICAgICAgICAgICAgICAvLyBTZXQgMTI3
LjAuMC4xIGFzIHByZXZhbGVudCByZXNvdXJjZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vMTI3LjAuMC4xIiwgdHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovLzEyNy4wLjAuMSIpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiMTI3LjAuMC4xIGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
IiNzdGVwNyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVw
OCI7CisgICAgICAgICAgICAgICAgLy8gVHJpZ2dlciBhIHB1cmdlLgorICAgICAgICAgICAgICAg
IGZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlckFuZENvbnRpbnVlKCk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDgiOgorICAgICAgICAgICAgICAgIC8v
IENoZWNrIHRoYXQgbG9jYWxob3N0J3MgY29va2llIGlzIHN0aWxsIHRoZXJlLgorICAgICAgICAg
ICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09IGZpcnN0UGFydHlDb29raWVOYW1lICsgIj0i
ICsgY29va2llVmFsdWUpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkZpcnN0LXBh
cnR5IGNvb2tpZSBwdXJnZWQuIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgICAgICB0ZXN0UGFzc2VkKCJHcmFuZGZhdGhlcmVkIGNvb2tpZSB3YXMgbm90IHB1cmdlZC4i
KTsKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3Vs
ZCBub3QgYmUgcmVhY2hlZC4iKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIgJiYg
d2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVu
bmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRy
dWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hv
dWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJl
Y29yZHNSZW1vdmFsKDApOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAg
ICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgIHJ1
blRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlCisgICAgICAgIHJ1blRlc3QoKTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11
c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgt
dXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg5Zjg1
NWE3ODljZjEwYmYzMzBmNGM5MmVhMTJiOTQxYWJlZmMwNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50
LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKK1BBU1MgQ29va2llIG5vdCBkZWxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJj
ZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgt
dXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5N2U4MGZkNjY0ZWUx
ZWE4MDM4ZDllODcyYzczOTU3MjkwZjUxMWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJj
ZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY1IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIE5vbi1QcmV2YWxlbnQgUmVzb3VyY2Ug
V2l0aCBVc2VyIEludGVyYWN0aW9uPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29u
c3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGlj
c1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IG90
aGVyUHJldmFsZW50VXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC90ZW1wIjsKKworICAgIGZ1
bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2ll
ICE9PSAiIikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBub3QgZW1w
dHkuIik7CisgICAgICAgIGNvbnN0IGNvb2tpZSA9ICJ0ZXN0Q29va2llPXRlc3RWYWx1ZSI7Cisg
ICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZSArICI7IG1heC1hZ2U9MTAwOyI7CisgICAg
ICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09IGNvb2tpZSkKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoImRvY3VtZW50LmNvb2tpZSBkaWQgbm90IGdldCBzZXQuIik7CisKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2Us
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKwor
ICAgICAgICAgICAgLy8gVGhpcyBpcyBkb25lIHRvIG5vdCBoYXZlIGFuIGVtcHR5IHNldCBvZiBw
cmV2YWxlbnQgcmVzb3VyY2VzLgorICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIGRhdGEgcmVjb3Jk
cyBhcmUgbmV2ZXIgc2Nhbm5lZC4KKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uob3RoZXJQcmV2YWxlbnRVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJPdGhlciBob3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24oc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3Rh
dGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRp
ZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2Fs
bGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQu
Y29va2llID09PSBjb29raWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3Nl
ZCgiQ29va2llIG5vdCBkZWxldGVkLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBkZWxldGVkIG9y
IGRvY3VtZW50LmNvb2tpZSBjb250YWlucyBvdGhlciBjb29raWVzOiAiICsgZG9jdW1lbnQuY29v
a2llKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3Vs
ZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVu
RGF0YVJlY29yZHNSZW1vdmFsKDApOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRv
Y3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5u
ZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERh
dGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQo
dHJ1ZSk7CisgICAgICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgICAgICB9KTsKKyAg
ICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNl
LXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNv
dXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmM4OWY4NTVhNzg5Y2YxMGJmMzMwZjRjOTJlYTEyYjk0MWFiZWZjMDcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIENvb2tpZSBub3QgZGVsZXRlZC4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1w
cmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZh
bGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42YmNlOTkwNDVmMGEzZWNjZGJhZDE4Nzg3ZWVkOGZmZjY2NTdmZjY1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNl
Lmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+
Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZv
ciBOb24tUHJldmFsZW50IFJlc291cmNlIFdpdGhvdXQgVXNlciBJbnRlcmFjdGlvbjwvdGl0bGU+
CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4x
OjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJU
ZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCBvdGhlclByZXZhbGVudFVybCA9ICJodHRwOi8vbG9j
YWxob3N0OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsK
KyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJkb2N1bWVudC5jb29raWUgbm90IGVtcHR5LiIpOworICAgICAgICBjb25zdCBjb29raWUg
PSAidGVzdENvb2tpZT10ZXN0VmFsdWUiOworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBjb29r
aWUgKyAiOyBtYXgtYWdlPTEwMDsiOworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSBj
b29raWUpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgZGlkIG5vdCBn
ZXQgc2V0LiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwp
KQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5v
bi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgZG9uZSB0
byBub3QgaGF2ZSBhbiBlbXB0eSBzZXQgb2YgcHJldmFsZW50IHJlc291cmNlcy4KKyAgICAgICAg
ICAgIC8vIE90aGVyd2lzZSBkYXRhIHJlY29yZHMgYXJlIG5ldmVyIHNjYW5uZWQuCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZh
bGVudFVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsKSkKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3RoZXIgaG9zdCBkaWQgbm90IGdldCBzZXQg
YXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGVhcmVkIG9mIHVzZXIgaW50
ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3Rh
dGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSA9PT0gY29va2llKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvb2tpZSBub3QgZGVsZXRlZC4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJDb29raWUgZGVsZXRlZCBvciBkb2N1bWVudC5jb29raWUgY29udGFpbnMgb3Ro
ZXIgY29va2llczogIiArIGRvY3VtZW50LmNvb2tpZSk7CisKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFS
ZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmRE
YXRhUmVjb3JkcygpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0
VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdl
c1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAgcnVuVGVzdFJ1
bm5lclRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhp
cmQtcGFydHktY29udGV4dC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2Fu
LWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMGZiOTdmOTFmY2QzM2NjOTc4OTc5Y2Q0OGE1NWE0OTQ3NGQyNzcx
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4t
YS10aGlyZC1wYXJ0eS1jb250ZXh0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEx
IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwor
CistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNl
aXZlIG9uZSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUn
LgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFy
dHktY29udGV4dC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2ll
cy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjRj
ZmNiMWYzZTM3MjBmY2EyMjNjNDJkODc4YzI1YTk2NjIyOWJmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxl
bnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQt
ZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxh
bmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+
VGVzdCB0byBlbnN1cmUgbm9uLXByZXZhbGVudCByZXNvdXJjZXMgY2FuIGFjY2VzcyB0aGVpciBj
b29raWVzIGluIGEgdGhpcmQgcGFydHkgY29udGV4dDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9
Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
PgorICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0
IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCB0
aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJz
dFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0g
Ii9zZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9
dmFsdWUiOworICAgIGNvbnN0IGZyYWdtZW50V2l0aFJldHVyblVybCA9ICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlcy1j
YW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0Lmh0bWwiOworICAgIGNv
bnN0IHN1YlBhdGhUb0dldENvb2tpZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmly
c3RQYXJ0eUNvb2tpZU5hbWU7CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBv
cGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0g
dXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5v
bmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
KyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBj
YXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgIC8vIFNldCBhIGZpcnN0LXBhcnR5IGNvb2tp
ZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYg
PSB0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIg
KyBmcmFnbWVudFdpdGhSZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgLy8gTG9hZCBs
b2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIGFuZCBjaGVjayB0aGF0IGl0IGdldHMgaXRzIGNvb2tp
ZS4KKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0
aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBvbmUgY29va2llLiIsIGZp
bmlzaFRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisg
ICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IHBhcnRpdGlvbkhvc3QgJiYgZG9jdW1l
bnQubG9jYXRpb24uaGFzaCA9PSAiIiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7Cisg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB0ZXN0UnVubmVyLmR1
bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGly
ZFBhcnR5T3JpZ2luLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEiOworICAgICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBydW5UZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8t
aXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2M2M3MjAyYjAzZTc3MGQ2ZTQ0
NmZiNmYzNDAwZmIzOGM1OWY1MzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBn
ZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRw
Oi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9z
dCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDov
L2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9j
YWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9j
YWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjViZGE2ZjlmMWJjZWJmNDg5
NDU1YmVjZTQ4NWY1Y2VjZDFmNjA5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU0IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0
aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQg
Y291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAg
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZh
bHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAg
IHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIg
c3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2Uo
ZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFT
UyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJl
cGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2lu
OiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hh
aW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAg
ICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xv
Y2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1
ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRw
Oi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxk
QmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8o
Imh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAg
IHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0
Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NE
aWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVk
aXJlY3QucGhwP3JlZGlyZWN0VG89aHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAu
MC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvaWZyYW1lLXJlcG9ydC1i
YWNrLWxvYWRlZC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1s
b2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2M2M3MjAyYjAzZTc3
MGQ2ZTQ0NmZiNmYzNDAwZmIzOGM1OWY1MzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRi
b3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJh
bWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQor
UEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0
dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAu
MC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGly
ZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGI1ZWU5OTM3MDQxMDUyZGMyNmU4ZjZhNTg2OWEyMjEzMjAwM2EzMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxo
b3N0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVj
dHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7Cisg
ICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rp
b24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0
Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOwor
CisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBp
ZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikgeworICAgICAgICAg
ICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7Cisg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBh
IG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisK
KyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAg
ICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05v
dGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRz
KCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1Jl
Z2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4w
LjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8v
MTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0
dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOwor
ICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAg
ICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVy
KSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dl
cmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRp
c3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUg
c3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMvcmVkaXJlY3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHAvP3JlZGlyZWN0VG89aHR0cDov
L2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2lmcmFtZS1y
ZXBvcnQtYmFjay1sb2FkZWQuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVk
aXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5l
c3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9j
YWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjUxNmYxMzJm
OWZiMTAxMzY4MjI2M2M2ZjJjODEwYjdmYWY5ZDhmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVz
dGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2Nh
bGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3Rz
IHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5v
bi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlz
IHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGlu
Z1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNT
IHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDov
LzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3Rp
bmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxo
b3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjJkOWNhNTkwMWRiODBlMGRkMDJjMjA1MjAzM2MxNTdkZGQzNmUzMWQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAg
KzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAg
ZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZy
YW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5
LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAg
IGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5S
ZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBm
YWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAg
ICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAi
IikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVj
ZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmln
aW4pOworCisgICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7
CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRl
c3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hl
Y2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6
Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAi
aHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAu
MSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0g
dHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAg
ICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVz
dFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJl
Y29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3Rh
bGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cmVzb3VyY2VzL3BhZ2Utd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1s
b2NhbGhvc3QtdG8taXAuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24t
c2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hl
ZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2Fs
aG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjliNTE2ZjEzMmY5ZmIxMDEzNjgyMjYzYzZmMmM4MTBiN2ZhZjlkOGYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNh
bmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZy
YW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0
cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdp
c3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4w
LjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVk
aXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVk
aXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVz
dGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3Qt
dG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFlMzNmNjY3ZGEz
NTlmM2E4MmJmM2MwYzMxMGQzNGVjMzc1YjM0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3Rp
bmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRv
LWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRp
bC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3Rz
IHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5v
bi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3Nh
Z2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRl
c3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVk
ID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBm
dW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9y
aWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAo
ZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZy
b20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAgICAg
ICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAo
c3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZl
cigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAg
ICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNT
dWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOwor
ICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVy
ZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIp
Jyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVn
aXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxo
b3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAg
IGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBmaW5p
c2hUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0
cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2Nh
bkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDov
LzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0
aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxo
b3N0Lmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1u
ZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxo
b3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgt
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQxNmU2MWZkMDE1ZmQ3YWUz
Y2I4NjZiNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRi
b3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5k
Ym94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVk
IHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhv
c3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6
Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0
IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3Rp
bmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3Qt
dG8taXAtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzM4ZWEzYjU5YTBhNzA3NDNkMzQ1ZGYw
NTJlYTYyOWQyZjZiOTNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0
aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFz
ZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNh
bmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50
ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7
CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIg
bGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRz
Q2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50
KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAibnVsbCIpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOwor
ICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQg
YSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOwor
CisgICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAg
ICAgICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NO
b3RpZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0
cygpIHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NS
ZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcu
MC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDov
LzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJo
dHRwOi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsK
KyAgICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAg
ICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5l
cikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAg
ICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNX
ZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0
aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1l
IHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3Vy
Y2VzL3BhZ2Utd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10
by1pcC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQt
bmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10
by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2Nh
bGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQx
NmU2MWZkMDE1ZmQ3YWUzY2I4NjZiNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlm
cmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxv
Y2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhh
dCByZWRpcmVjdHMgZm9yIGEgc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJv
eGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFt
ZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQ
QVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0
cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4w
LjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFt
ZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2Fs
aG9zdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41N2ZhZjAwYThmZDcyZjE0NGVhYWVlZTRhN2QyZDBjYjQ5YjhkOTk1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAg
IGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQgaWZyYW1l
IG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIp
OworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1
bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRp
cmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxz
ZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAg
ICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gIm51bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2
ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9t
IGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAg
bGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0
YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIo
KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAg
ICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3Vi
RnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAg
ICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVk
QXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScp
OworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lz
dGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9z
dCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBp
ZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNo
VGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1
ZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5E
YXRhUmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9wYWdlLXdpdGgt
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0Lmh0
bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1wcmV2YWxlbnQtcmVz
b3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDliZmI5MGNjMWFjNWY5MzE1ZGRmMDljZDRiOTMxYzk4
Yjc0N2VmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDI0IEBACitUZXN0cyB0aGF0IGNvb2tpZSBibG9ja2luZyBpcyBh
cHBsaWVkIHRvIHBpbmcgbG9hZHMuCisgICAKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1l
MS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitSZWNl
aXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1l
bnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCisKKy0tLS0tLS0tCitGcmFtZTogJzwh
LS1mcmFtZTItLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBu
b3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUg
ZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUzLS0+JworLS0t
LS0tLS0KK1BpbmcgcmVjZWl2ZWQuCitIVFRQX0hPU1Q6IGxvY2FsaG9zdDo4MDAwCitSRVFVRVNU
X1VSSTogL2NvbnRlbnRleHRlbnNpb25zL3Jlc291cmNlcy9zYXZlLXBpbmcucGhwP3Rlc3Q9cGlu
Zy10by1wcmV2YWxlbnQtcmVzb3VyY2UKK05vIGNvb2tpZXMgaW4gcGluZy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXBy
ZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uN2U4ZmExMWQ5NzMxMzBkYzhiMTllMjgyODgyYTFkMzQ4YWY5ZjM5
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsOTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlv
biI+VGVzdHMgdGhhdCBjb29raWUgYmxvY2tpbmcgaXMgYXBwbGllZCB0byBwaW5nIGxvYWRzLjwv
ZGl2PgorPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9IiMiIHBpbmc9Imh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9jb250ZW50ZXh0ZW5zaW9ucy9yZXNvdXJjZXMvc2F2ZS1waW5nLnBocD90ZXN0PXBpbmct
dG8tcHJldmFsZW50LXJlc291cmNlIj5UaGUgbGluazwvYT4KKzxzY3JpcHQ+CisgICAgaWYgKHRl
c3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgY29u
c3QgcGFydGl0aW9uSG9zdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0
eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHJlc291cmNlUGF0
aCA9ICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0IHRoaXJk
UGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0eU9yaWdpbiArIHJlc291cmNlUGF0aDsKKyAgICBjb25z
dCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBz
dWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBm
aXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHJldHVyblVy
bCA9ICJodHRwOi8vIiArIHBhcnRpdGlvbkhvc3QgKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0
Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFt
ZTsKKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQsIGNhbGxiYWNrKSB7
CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElE
KTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9m
ZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCAr
IGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChj
ZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAg
ICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICAgICAgfQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUodXJs
LCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAg
IGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9h
ZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChl
bGVtZW50KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0
Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6
CisgICAgICAgICAgICAgICAgLy8gU2V0IGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0
LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFz
ZVVybCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyByZXR1cm5VcmwgKyAi
I3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVw
MiI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgY29va2llIGdldHMgc2VudCBm
b3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMSBzaW5jZSBsb2NhbGhvc3QgaXMgbm90IHByZXZh
bGVudC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsK
KyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRv
R2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUu
IiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIj
c3RlcDMiOgorICAgICAgICAgICAgICAgIC8vIFNldCBsb2NhbGhvc3QgYXMgcHJldmFsZW50IHRv
IHB1dCBpdCBpbiB0aGUgYmxvY2tpbmcgY2F0ZWdvcnkuCisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA0IjsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAg
ICAgICAgLy8gQ2hlY2sgdGhhdCBubyBjb29raWUgZ2V0cyBzZW50IGZvciBsb2NhbGhvc3QgdW5k
ZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCdzIGNvb2tpZXMgYXJlIGJsb2NrZWQuCisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNSI7CisgICAgICAgICAg
ICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMg
KyAgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwgcnVuVGVzdCk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDUiOgorICAgICAgICAg
ICAgICAgIC8vIENsaWNrIHRoZSBsaW5rIHRvIHRyaWdnZXIgdGhlIHBpbmcuCisgICAgICAgICAg
ICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIiwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eU9yaWdpbiArICIvY29udGVudGV4dGVu
c2lvbnMvcmVzb3VyY2VzL2dldC1waW5nLWRhdGEucGhwP3Rlc3Q9cGluZy10by1wcmV2YWxlbnQt
cmVzb3VyY2UiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaCgiL2NvbnRlbnRleHRlbnNp
b25zL3Jlc291cmNlcy9kZWxldGUtcGluZy5waHA/dGVzdD1waW5nLXRvLXByZXZhbGVudC1yZXNv
dXJjZSIpLnRoZW4oKCk9PnsgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7IH0pOworICAgICAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAg
aWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiKSB7CisgICAgICAgIGlmICh0ZXN0UnVu
bmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOwor
ICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgICAgICBy
dW5UZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAg
ICAgIHJ1blRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2
YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVz
b3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
NGUzMmM1OTNkZTEwZDU3NzM3MTAxMzU3MWRkMzQ4ZjUzODUxOTZkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVu
dC1yZXNvdXJjZS1oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTIgQEAKK1Rlc3RzIHRoYXQgd2UgZ3JhbnQgVXNlciBJbnRlcmFjdGlvbiBjcmVkaXQgZm9y
IGhhbmRsZWQga2V5cHJlc3Nlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Np
bXVsYXRlIHVzZXIgdHlwaW5nIGxldHRlciAnYScgaW50byB0aGUgZmllbGQuCitQQVNTIHRlc3RJ
bnB1dC52YWx1ZSBpcyAiYSIKK1BBU1MgT3JpZ2luIHdhcyBncmFudGVkIHVzZXIgaW50ZXJhY3Rp
b24uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291
cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlNTZhNTBjY2M4
NGY4MGExNzVkZjQ2N2ZmNzg4OTRjZTdiNTE5ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNl
LWhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
d2UgZ3JhbnQgVXNlciBJbnRlcmFjdGlvbiBjcmVkaXQgZm9yIGhhbmRsZWQga2V5cHJlc3Nlcy4i
KTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC90ZW1wIjsKKworb25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgdGVzdEZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIpOworCisg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgaW50ZXJuYWxzLnNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUp
OworICAgIH0KKworICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAoIXRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsZWFy
ZWQgb2YgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgdGVzdElucHV0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RJbnB1dCIpOworCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRlc3RJbnB1dC52
YWx1ZSIsICJhIik7CisKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJPcmlnaW4gZGlkIG5vdCBnZXQgdXNlciBpbnRlcmFjdGlvbiBjcmVk
aXQuIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJPcmlnaW4gd2FzIGdyYW50ZWQgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAg
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RG
cmFtZS5zcmMgPSAiYWJvdXQ6YmxhbmsiOworICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xh
c3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNS
ZW1vdmFsKDApOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRp
c3RpY3NBbmREYXRhUmVjb3JkcygpOworCisgICAgICAgICAgICBkZWJ1ZygiU2ltdWxhdGUgdXNl
ciB0eXBpbmcgbGV0dGVyICdhJyBpbnRvIHRoZSBmaWVsZC4iKTsKKyAgICAgICAgICAgIHRlc3RJ
bnB1dC5mb2N1cygpOworICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAg
ICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJhIik7CisgICAgICAgIH0pOworICAgIH0p
OworfQorPC9zY3JpcHQ+Cis8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUiIHNyYz0icmVzb3VyY2VzL29u
Y2xpY2suaHRtbCI+PC9pZnJhbWU+Cis8aW5wdXQgaWQ9InRlc3RJbnB1dCIgdHlwZT0idGV4dCI+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3du
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2ZTU1OWJmYTJkZDI0NjE2Nzk4OWIyNWFiODIz
OWM0NTZiMTY0YjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3du
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyB0aGF0IHdlIGRv
IG5vdCBncmFudCBVc2VyIEludGVyYWN0aW9uIGNyZWRpdCBmb3IgdW5oYW5kbGVkIGtleXByZXNz
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU2ltdWxhdGUgYW4gdW5oYW5kbGVk
IHVzZXIga2V5IHByZXNzLgorUEFTUyBPcmlnaW4gZGlkIG5vdCBnZXQgdXNlciBpbnRlcmFjdGlv
biBjcmVkaXQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVu
dC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVh
Y2RlYjI4ZTRjY2I3MTI4MjUzMjE3YmE4ODE5ZWE3ZWE2ZmIyZmQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50
LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigi
VGVzdHMgdGhhdCB3ZSBkbyBub3QgZ3JhbnQgVXNlciBJbnRlcmFjdGlvbiBjcmVkaXQgZm9yIHVu
aGFuZGxlZCBrZXlwcmVzcy4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitjb25zdCBzdGF0
aXN0aWNzVXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC90ZW1wIjsKKworb25sb2FkID0gZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgdGVzdEZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRlc3RGcmFtZSIpOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAg
ICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwor
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jk
c1dlcmVTY2FubmVkKHRydWUpOworICAgIH0KKworICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlz
dGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0
IGRpZCBub3QgZ2V0IGNsZWFyZWQgb2YgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJh
Y2soZnVuY3Rpb24oKSB7CisKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAg
ICAgICAgICB0ZXN0UGFzc2VkKCJPcmlnaW4gZGlkIG5vdCBnZXQgdXNlciBpbnRlcmFjdGlvbiBj
cmVkaXQuIik7CisKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICB0ZXN0RnJhbWUuc3JjID0gImFib3V0OmJsYW5rIjsKKyAgICAgICAg
ICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAg
ICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1v
dmFsKGZhbHNlKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1U
aW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKworICAgICAgICAg
ICAgZGVidWcoIlNpbXVsYXRlIGFuIHVuaGFuZGxlZCB1c2VyIGtleSBwcmVzcy4iKTsKKyAgICAg
ICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgZXZlbnRTZW5k
ZXIua2V5RG93bigiYSIsIFsibWV0YUtleSJdKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9Cis8
L3NjcmlwdD4KKzxpZnJhbWUgaWQ9InRlc3RGcmFtZSIgc3JjPSJyZXNvdXJjZXMvb25jbGljay5o
dG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0
aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11
c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODlmODU1
YTc4OWNmMTBiZjMzMGY0YzkyZWExMmI5NDFhYmVmYzA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNv
dXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CitQQVNTIENvb2tpZSBub3QgZGVsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVz
ZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0
aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWMxM2E1MDI3NGM2ZGQ5NGJmZThhMTY0NTlj
NGNiYWI4YTkwZTkwYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVy
YWN0aW9uLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAg
PHRpdGxlPlRlc3RzIGZvciBQcmV2YWxlbnQgUmVzb3VyY2UgV2l0aCBVc2VyIEludGVyYWN0aW9u
PC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3NldFVwQW5kUnVuKCknLCAwKSI+
Cis8c2NyaXB0PgorICAgIGlmICh0ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAi
OworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsg
Ii90ZW1wIjsKKyAgICBjb25zdCBvdGhlclByZXZhbGVudFVybCA9ICJodHRwOi8vbG9jYWxob3N0
OjgwMDAvdGVtcCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAg
IGlmIChkb2N1bWVudC5jb29raWUgIT09ICIiKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9j
dW1lbnQuY29va2llIG5vdCBlbXB0eS4iKTsKKyAgICAgICAgY29uc3QgY29va2llID0gInRlc3RD
b29raWU9dGVzdFZhbHVlIjsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gY29va2llICsgIjsg
bWF4LWFnZT0xMDA7IjsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gY29va2llKQor
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIGRpZCBub3QgZ2V0IHNldC4i
KTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgZG9uZSB0byBub3QgaGF2ZSBh
biBlbXB0eSBzZXQgb2YgcHJldmFsZW50IHJlc291cmNlcy4KKyAgICAgICAgICAgIC8vIE90aGVy
d2lzZSBkYXRhIHJlY29yZHMgYXJlIG5ldmVyIHNjYW5uZWQuCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZhbGVudFVybCwgdHJ1
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsKSkKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiT3RoZXIgaG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
SGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7
CisKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZE1v
ZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoZG9jdW1lbnQuY29va2llID09PSBjb29raWUpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiQ29va2llIG5vdCBkZWxldGVkLiIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
IkNvb2tpZSBkZWxldGVkIG9yIGRvY3VtZW50LmNvb2tpZSBjb250YWlucyBvdGhlciBjb29raWVz
OiAiICsgZG9jdW1lbnQuY29va2llKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3Zh
bChmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01p
bmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3Jkcygp
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHNldFVwQW5kUnVuKCkgeworICAgICAgICBpZiAoZG9jdW1lbnQu
bG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3
aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFi
YXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiV3JvbmcgaG9zdCwg
bm8gdGVzdFJ1bm5lciwgb3Igbm8gaW50ZXJuYWxzLiIpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQt
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGlt
ZW91dC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc4MDllOTFjMjNjMjNhMjM2
OWNkMDg1NGViMTgxNjQ3ZGZhZWI0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11
c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQ
QVNTIENvb2tpZSBkZWxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRl
cmFjdGlvbi10aW1lb3V0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFj
dGlvbi10aW1lb3V0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjIwODk3MDVkMjc4ZWFhMjIx
MjY4NTZkMWQ2ZDA5OWE1OWEwYTdiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11
c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU3IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIFByZXZhbGVudCBSZXNvdXJjZSBXaXRo
IFVzZXIgSW50ZXJhY3Rpb24gVGltZW91dDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBj
b25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7
CisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVu
dC5jb29raWUgIT09ICIiKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2ll
IG5vdCBlbXB0eS4iKTsKKyAgICAgICAgY29uc3QgY29va2llID0gInRlc3RDb29raWU9dGVzdFZh
bHVlIjsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gY29va2llICsgIjsgbWF4LWFnZT0xMDA7
IjsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gY29va2llKQorICAgICAgICAgICAg
dGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIGRpZCBub3QgZ2V0IHNldC4iKTsKKworICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJs
LCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbihzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0
IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSAiIikK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBub3QgZGVsZXRlZDog
IiArIGRvY3VtZW50LmNvb2tpZSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvb2tpZSBkZWxldGVkLiIpOworICAgICAgICAg
ICAgICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFs
c2UpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29u
c2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENs
YXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVj
b3Jkc1JlbW92YWwoMCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
VGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbigwKTsKKworICAgICAgICAgICAgICAgIC8vIFRoaXMg
aXMgdG8gZW5zdXJlIHRoZSB0aW1lb3V0IHdlJ3JlIHRlc3RpbmcuCisgICAgICAgICAgICAgICAg
c2V0VGltZW91dCgidGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRh
UmVjb3JkcygpIiwgMTAwMCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQor
CisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2lu
ZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVy
LnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVk
KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5E
YXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgp
OworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJj
ZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJj
ZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY3ODA5ZTkxYzIzYzIzYTIzNjljZDA4NTRlYjE4MTY0N2RmYWViNDMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJl
dmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKK1BBU1MgQ29va2llIGRlbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3Vy
Y2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhv
dXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3YjBiMmFhZTMw
ODRkNGM0N2Q5ZWM5ZjdjZTMyZmU0ZDQwYjljNGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNl
LXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTkgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hh
cnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgUHJldmFsZW50IFJlc291cmNlIFdp
dGhvdXQgVXNlciBJbnRlcmFjdGlvbjwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25z
dCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisK
KyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0ICgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tp
ZSAhPT0gIiIpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgbm90IGRlbGV0ZWQ6ICIg
KyBkb2N1bWVudC5jb29raWUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2Vk
KCJDb29raWUgZGVsZXRlZC4iKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVz
ZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0
UnVubmVyVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgbm90IGVtcHR5LiIpOworICAgICAg
ICBjb25zdCBjb29raWUgPSAidGVzdENvb2tpZT10ZXN0VmFsdWUiOworICAgICAgICBkb2N1bWVu
dC5jb29raWUgPSBjb29raWUgKyAiOyBtYXgtYWdlPTEwMDsiOworICAgICAgICBpZiAoZG9jdW1l
bnQuY29va2llICE9PSBjb29raWUpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5j
b29raWUgZGlkIG5vdCBnZXQgc2V0LiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5v
dCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZh
bHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xlYXJlZCBvZiB1c2VyIGludGVy
YWN0aW9uLiIpOworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGlj
c0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIHNldFRpbWVvdXQoImZpbmlzaFRlc3QoKSIsIDEwMDApOworICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNz
aWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jk
c1JlbW92YWwoMCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vz
c1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0p
OworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJU
ZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJ
VFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5
UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1
bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1z
dGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lNzQ3NTdiYzUyNTYwMDUyMWQ0NjE1NDVkMDM2N2MwZjA1MDFiZWYz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3BydW5lLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTcgQEAKK1Rlc3RzIHRoYXQgc3RhdGlzdGljcyBhcmUgcHJ1bmVkIGluIHRoZSByaWdodCBv
cmRlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGVzdCBpdGVyYXRp
b24gMSBwYXNzZWQuCitQQVNTIFRlc3QgaXRlcmF0aW9uIDIgcGFzc2VkLgorUEFTUyBUZXN0IGl0
ZXJhdGlvbiAzIHBhc3NlZC4KK1BBU1MgVGVzdCBpdGVyYXRpb24gNCBwYXNzZWQuCitQQVNTIFRl
c3QgaXRlcmF0aW9uIDUgcGFzc2VkLgorUEFTUyBUZXN0IGl0ZXJhdGlvbiA2IHBhc3NlZC4KK1BB
U1MgVGVzdCBpdGVyYXRpb24gNyBwYXNzZWQuCitQQVNTIFRlc3QgaXRlcmF0aW9uIDggcGFzc2Vk
LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9w
cnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjBjYWI3ZDM5MTcxZDAzZjQ3YjQxOWQyYWRiMGNhMTM4YWRmNzhlYjkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTYzIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAg
IDx0aXRsZT5UZXN0IGZvciBSZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3MgUHJ1bmluZzwvdGl0bGU+
CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhh
dCBzdGF0aXN0aWNzIGFyZSBwcnVuZWQgaW4gdGhlIHJpZ2h0IG9yZGVyLiIpOworICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3Qgb2xkZXJUaW1lc3RhbXAgPSBNYXRoLnJvdW5k
KChuZXcgRGF0ZSgpKS5nZXRUaW1lKCkgLyAxMDAwKTsKKyAgICBjb25zdCBuZXdlclRpbWVzdGFt
cCA9IG9sZGVyVGltZXN0YW1wICsgMTA7CisgICAgY29uc3QgbmV3ZXN0VGltZXN0YW1wID0gbmV3
ZXJUaW1lc3RhbXAgKyAxMDsKKworICAgIGNvbnN0IHVybHNUb0JlUHJ1bmVkID0gWworICAgICAg
ICB7IHVybDogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC90ZW1wIiwgcHJldmFsZW50OiBmYWxzZSB9
LAorICAgICAgICB7IHVybDogImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIiwgcHJldmFsZW50
OiBmYWxzZSB9LAorICAgICAgICB7IHVybDogImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIiwg
cHJldmFsZW50OiB0cnVlIH0sCisgICAgICAgIHsgdXJsOiAiaHR0cDovLzEyNy4wLjAuNDo4MDAw
L3RlbXAiLCBwcmV2YWxlbnQ6IHRydWUgfSwKKyAgICAgICAgeyB1cmw6ICJodHRwOi8vMTI3LjAu
MC41OjgwMDAvdGVtcCIsIHByZXZhbGVudDogZmFsc2UgfSwKKyAgICAgICAgeyB1cmw6ICJodHRw
Oi8vMTI3LjAuMC42OjgwMDAvdGVtcCIsIHByZXZhbGVudDogZmFsc2UgfSwKKyAgICAgICAgeyB1
cmw6ICJodHRwOi8vMTI3LjAuMC43OjgwMDAvdGVtcCIsIHByZXZhbGVudDogdHJ1ZSB9LAorICAg
ICAgICB7IHVybDogImh0dHA6Ly8xMjcuMC4wLjg6ODAwMC90ZW1wIiwgcHJldmFsZW50OiB0cnVl
IH0KKyAgICBdOworCisgICAgZnVuY3Rpb24gY2hlY2tJZlByZXZhbGVudEFjY29yZGluZ1RvSW5p
dGlhbEV4cGVjdGF0aW9uKGJlZ2luLCBlbmQpIHsKKyAgICAgICAgdmFyIGZhaWxlZCA9IGZhbHNl
OworICAgICAgICBmb3IgKHZhciBpID0gYmVnaW47IGkgPCBlbmQ7ICsraSkgeworICAgICAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsc1RvQmVQ
cnVuZWRbaV0udXJsKSAhPT0gdXJsc1RvQmVQcnVuZWRbaV0ucHJldmFsZW50KSB7CisgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiY2hlY2tJZlByZXZhbGVudEFjY29yZGluZ1RvSW5pdGlhbEV4
cGVjdGF0aW9uOiBUZXN0IGl0ZXJhdGlvbiAiICsgY3VycmVudFRlc3QgKyAiIGZhaWxlZC4gIiAr
IHVybHNUb0JlUHJ1bmVkW2ldLnVybCArICh1cmxzVG9CZVBydW5lZFtpXS5wcmV2YWxlbnQgPyAi
IHdhc24ndCAiIDogIiB3YXMgIikgKyAicHJldmFsZW50Iik7CisgICAgICAgICAgICAgICAgZmFp
bGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoZmFpbGVk
KSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0
YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBjaGVja0lmUHJldmFs
ZW50KGJlZ2luLCBlbmQsIGV4cGVjdGVkKSB7CisgICAgICAgIHZhciBmYWlsZWQgPSBmYWxzZTsK
KyAgICAgICAgZm9yICh2YXIgaSA9IGJlZ2luOyBpIDwgZW5kOyArK2kpIHsKKyAgICAgICAgICAg
IGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1
bmVkW2ldLnVybCkgIT09IGV4cGVjdGVkKSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
Y2hlY2tJZlByZXZhbGVudDogVGVzdCBpdGVyYXRpb24gIiArIGN1cnJlbnRUZXN0ICsgIiBmYWls
ZWQuICIgKyB1cmxzVG9CZVBydW5lZFtpXS51cmwgKyAoZXhwZWN0ZWQgPyAiIHdhc24ndCAiIDog
IiB3YXMgIikgKyAicHJldmFsZW50Iik7CisgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoZmFpbGVkKSB7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1
blRlc3RzKHN0ZXApIHsKKyAgICAgICAgc3dpdGNoIChzdGVwKSB7CisgICAgICAgICAgICAvLyBO
b24tcHJldmFsZW50IHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbiB0byBiZSBwcnVuZWQgZmlyc3Qu
CisgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbMF0udXJsLCBvbGRlclRpbWVzdGFtcCwgZnVu
Y3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMik7IH0pOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVkWzFdLnVybCwgbmV3
ZXJUaW1lc3RhbXAsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3Rz
KDMpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8vIFByZXZhbGVu
dCB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIHNlY29uZC4KKyAgICAgICAg
ICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZSh1cmxzVG9CZVBydW5lZFsyXS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBp
bml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDQpOyB9KTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFsyXS51cmwsIG9sZGVyVGltZXN0YW1w
LCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyg1KTsgfSk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsc1RvQmVQcnVu
ZWRbM10udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5U
ZXN0cyg2KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDY6
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1Rv
QmVQcnVuZWRbM10udXJsLCBuZXdlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVT
dGF0aXN0aWNzQW5kUnVuVGVzdHMoNyk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgLy8gTm9uLXByZXZhbGVudCB3aXRoIHVzZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1
bmVkIHRoaXJkLgorICAgICAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih1cmxzVG9CZVBydW5lZFs0XS51
cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDgp
OyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgODoKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5l
ZFs0XS51cmwsIG9sZGVyVGltZXN0YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3Rp
Y3NBbmRSdW5UZXN0cyg5KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIDk6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHVybHNUb0JlUHJ1bmVkWzVdLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7
IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTApOyB9KTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTA6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbNV0udXJsLCBuZXdlclRpbWVz
dGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTEpOyB9
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8vIFByZXZhbGVudCB3aXRo
IHVzZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIGxhc3QuCisgICAgICAgICAgICBjYXNlIDEx
OgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHVybHNUb0JlUHJ1bmVkWzZdLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVT
dGF0aXN0aWNzQW5kUnVuVGVzdHMoMTIpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgMTI6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHVybHNUb0JlUHJ1bmVkWzZdLnVybCwgdHJ1ZSwgZnVu
Y3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTMpOyB9KTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTM6CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbNl0udXJsLCBv
bGRlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVz
dHMoMTQpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTQ6
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UodXJsc1RvQmVQcnVuZWRbN10udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0
YXRpc3RpY3NBbmRSdW5UZXN0cygxNSk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSAxNToKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odXJsc1RvQmVQcnVuZWRbN10udXJsLCB0cnVlLCBmdW5j
dGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxNik7IH0pOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxNjoKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFs3XS51cmwsIG5l
d2VyVGltZXN0YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0
cygxNyk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxNzoK
KyAgICAgICAgICAgICAgICBjaGVja0lmUHJldmFsZW50QWNjb3JkaW5nVG9Jbml0aWFsRXhwZWN0
YXRpb24oMCwgdXJsc1RvQmVQcnVuZWQubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBydW5UZXN0
KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2YXIg
Y3VycmVudFRlc3Q7CisgICAgZnVuY3Rpb24gY2hlY2tTdGF0aXN0aWNzQWZ0ZXJQcnVuaW5nKCkg
eworICAgICAgICAvLyBQcnVuZWQgZW50cmllcyBzaG91bGQgbm90IGJlIHByZXZhbGVudC4KKyAg
ICAgICAgY2hlY2tJZlByZXZhbGVudCgwLCBjdXJyZW50VGVzdCwgZmFsc2UpOworICAgICAgICAv
LyBOb24tcHJ1bmVkIGVudHJpZXMgc2hvdWxkIGtlZXAgdGhlaXIgZXhwZWN0ZWQgc3RhdHVzLgor
ICAgICAgICBjaGVja0lmUHJldmFsZW50QWNjb3JkaW5nVG9Jbml0aWFsRXhwZWN0YXRpb24oY3Vy
cmVudFRlc3QsIHVybHNUb0JlUHJ1bmVkLmxlbmd0aCk7CisgICAgICAgIHRlc3RQYXNzZWQoIlRl
c3QgaXRlcmF0aW9uICIgKyBjdXJyZW50VGVzdCArICIgcGFzc2VkLiIpOworICAgICAgICBpZiAo
Y3VycmVudFRlc3QgPCB1cmxzVG9CZVBydW5lZC5sZW5ndGgpIHsKKyAgICAgICAgICAgICsrY3Vy
cmVudFRlc3Q7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2Nh
bkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0aXN0aWNzQWZ0ZXJQcnVuaW5nKTsKKyAgICAg
ICAgICAgIGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMSk7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0
YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgZmlsbGVyVXJsOworICAgIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGZpbGxlclVybCA9ICJodHRwOi8vMTI3LjAuIiAr
IGN1cnJlbnRUZXN0ICsgIi4xOjgwMDAvdGVtcCI7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKGZpbGxlclVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24o
ZmlsbGVyVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NMYXN0U2VlbihmaWxsZXJVcmwsIG5ld2VzdFRpbWVzdGFtcCwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NT
dGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3Jl
RGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVk
KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNYXhTdGF0aXN0aWNzRW50
cmllcyh1cmxzVG9CZVBydW5lZC5sZW5ndGgpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NQcnVuZUVudHJpZXNEb3duVG8odXJsc1RvQmVQcnVuZWQubGVuZ3RoKTsKKworICAgICAg
ICBjdXJyZW50VGVzdCA9IDE7CisgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NE
aWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRpc3RpY3NBZnRlclBydW5pbmcpOwor
ICAgICAgICBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDEpOworICAgIH0KKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8t
bG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlw
LXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdj
MTQzOGIxODY0MDY0MmFhMTZmYzA2YjY5ZDg0MWZkZjNiZjE2ZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIHNhbmRib3hlZCBp
ZnJhbWVzIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5k
ZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1Mg
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8v
bG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIs
ICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRv
LWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9j
YWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjY3MTEyMDUwNjgxODM5MWNh
OTY3ZmYyNGZmZmMwNThjOTIxOWY0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24o
IlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBzYW5kYm94ZWQgaWZyYW1lcyBnZXQgY291bnRlZCBw
cm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKwor
ICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0
UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUp
OworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVj
b3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFs
bFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENo
YWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKwor
ICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYg
KGV2ZW50Lm9yaWdpbiA9PT0gIm51bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRh
dGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVu
ZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBh
Z2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hl
Y2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBz
aG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVV
bmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRp
cmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7
CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFz
dFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgp
OworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2Fu
ZGJveD0iYWxsb3ctc2NyaXB0cyIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5w
aHAvP3JlZGlyZWN0VG89aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcmVzb3VyY2VzL2lmcmFtZS1yZXBvcnQtYmFjay1sb2FkZWQuaHRtbCI+Cis8L2lmcmFtZT4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10
by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3Qt
bG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjdjMTQzOGIxODY0MDY0MmFhMTZmYzA2YjY5ZDg0MWZkZjNiZjE2ZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3Rz
IGZvciBzYW5kYm94ZWQgaWZyYW1lcyBnZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3Rl
cmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEi
KSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJl
Y3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQor
UEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0
dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjAyNmJkOWMwYzIxMmI3ZTVmMTY0OWI1OTNiOTc4ODNjZjMxNDhmYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhv
c3QtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0
cyBmb3Igc2FuZGJveGVkIGlmcmFtZXMgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAg
IGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigi
bWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmlu
aXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpT
VGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVl
KTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRh
dGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOwor
ICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVj
ZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJu
dWxsIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9
PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNl
KCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiAr
IGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9h
ZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAg
ICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhv
c3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xv
Y2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1
ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRw
Oi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0
c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWlu
TG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMi
IHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3Vy
Y2VzL3JlZGlyZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9pZnJhbWUt
cmVwb3J0LWJhY2stbG9hZGVkLmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1p
ZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3Qt
dG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzNjU4Y2QzNDNmNTU2ZTBj
MzQ0NzVlZjllZjQ1YzYyMGQ0ZDQyN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1l
LXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlw
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGly
ZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBzYW5kYm94ZWQgaWZy
YW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIo
Imh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9j
YWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJo
dHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24t
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5k
Ym94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1p
cC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTJkNTk5OTY0
ZTdlNjJmZDA1ZmIwZDc4YWU1ZTI5NjYwNTdhMDY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5n
LWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9z
dC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVk
aXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIHNhbmRib3hlZCBp
ZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0
cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVN
ZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0K
KworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRV
c2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90
aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2so
Y2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBs
YXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHND
aGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQp
IHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikgeworICAgICAgICAg
ICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7Cisg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBh
IG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisK
KyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAg
ICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05v
dGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRz
KCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1Jl
Z2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4w
LjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8v
MTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0
dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOwor
ICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAg
ICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMiIHNyYz0iaHR0cDovLzEyNy4w
LjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1ub24t
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAuaHRtbCI+Cis8
L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0
aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxo
b3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzY1OGNkMzQzZjU1NmUwYzM0NDc1ZWY5ZWY0NWM2
MjBkNGQ0MjdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZv
ciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIHNhbmRib3hlZCBpZnJhbWUgZ2V0
IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDov
L2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3Qi
LCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9s
b2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94
ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5k
Ym94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1s
b2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGY4
NmZlOGMzMjk0ZTI1MzkyMmMyNWVhMzc5MjdmZDVjOTQzNmZmOAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQt
bmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhv
c3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigi
VGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGlu
IGEgc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNU
ZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNz
YWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hU
ZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJl
Y29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisK
KyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAg
ICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZl
TWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gIm51bGwi
KSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAt
MSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZB
SUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZl
bnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQg
PSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBm
aW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0
aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIs
ICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxo
b3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8x
MjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hl
Y2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2Fk
ZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisgICAgPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc2NyaXB0cyIgc3Jj
PSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMv
cGFnZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10
by1sb2NhbGhvc3QuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94
ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxv
Y2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgt
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQxNmU2MWZkMDE1ZmQ3YWUz
Y2I4NjZiNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hl
ZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJv
cGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIs
ICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEy
Ny4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVk
QXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBp
cyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdp
dGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJh
c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kNmU5NGE0NTk2OTg1NGQzZTM4OGQxMGFhZGNhZjBhMWQyYTRk
YWFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJh
bWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCAr
MSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBk
ZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgc2FuZGJveGVkIGlmcmFtZSBu
ZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsK
KyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5j
dGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2Fu
bmVkKHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NE
aWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0g
ZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5j
dGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdp
biA9PT0gIm51bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigi
UEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRh
LnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3Jp
Z2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0
Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAg
ICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUo
J3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDov
L2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJl
VHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJo
dHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hv
dWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5n
VG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAg
ICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGly
ZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9
CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2FuZGJveD0iYWxsb3ct
c2NyaXB0cyIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9yZXNvdXJjZXMvcGFnZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9j
YWxob3N0LXRvLWlwLmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJv
eGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhv
c3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2Nh
bGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQx
NmU2MWZkMDE1ZmQ3YWUzY2I4NjZiNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1l
LXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxo
b3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJl
ZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQg
aWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5k
ZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1Mg
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8v
bG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIs
ICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0
YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
ZTE5ZGQxMDAyMTE1ZDhhMTk0ZmMyMjQxZDU4ZjRmODJlMDAyYmQ4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hl
ZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0
LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRl
c3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9u
LXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2Fn
ZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVz
dCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNv
cmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisg
ICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAg
ICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1l
c3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikg
eworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEp
CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlM
ICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50
Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0g
dHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmlu
aXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlv
biBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAi
aHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9z
dCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3
LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNr
ZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVk
KQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMiIHNyYz0i
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3Bh
Z2Utd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2Nh
bGhvc3QuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXBy
ZXZhbGVudC1yZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXBy
ZXZhbGVudC1yZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yZGMwNzNkYTQ3Y2JhNDg2MDc3MjNkNGZkYjYzY2JhMTU2ZDg3ZTYyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3NldC1jdXN0b20tcHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgZm9yIGVuYWJsaW5nIGRlYnVnIG1vZGUg
YW5kIHRoYXQgaXQgYWxsb3dzIHNldHRpbmcgYSBjdXN0b20gZG9tYWluIGFzIGEgcHJldmFsZW50
IHJlc291cmNlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBodHRwOi8v
bG9jYWxob3N0OjgwMDAgZ290IHNldCBhcyBhIGN1c3RvbSBwcmV2YWxlbnQgcmVzb3VyY2UgaW4g
ZGVidWcgbW9kZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4tZGVidWctbW9kZS1kYXRh
YmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3NldC1jdXN0b20tcHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41ZmRhODEyMDE5YTllNzNmZjk1NTg5MTVlMGY4ODkyNmE4ZDkwNDlhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3NldC1jdXN0b20tcHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJh
c2UuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVu
Ij4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CisgICAgZGVzY3JpcHRpb24oIlRlc3QgZm9yIGVuYWJsaW5nIGRlYnVnIG1vZGUgYW5kIHRoYXQg
aXQgYWxsb3dzIHNldHRpbmcgYSBjdXN0b20gZG9tYWluIGFzIGEgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgdGhpcmRQYXJ0eU9y
aWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBE
YXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQodGhpcmRQ
YXJ0eU9yaWdpbiArICIgYWxyZWFkeSBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZUZvckRl
YnVnTW9kZSh0aGlyZFBhcnR5T3JpZ2luLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQodGhpcmRQYXJ0eU9yaWdpbiArICIgZGlkbid0IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291
cmNlLiIpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0UGFzc2VkKHRoaXJkUGFydHlPcmlnaW4gKyAiIGdvdCBzZXQgYXMgYSBjdXN0b20gcHJl
dmFsZW50IHJlc291cmNlIGluIGRlYnVnIG1vZGUuIik7CisgICAgICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc0RlYnVnTW9kZShmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRp
cmVjdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50
LXN1YnJlc291cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
N2JkNTQzZWM5YWYzMjRiZDUwZGMxZDRjODZjZGIwOWU5YzRkNWIyOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1y
ZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3RzIHRoYXQgb25seSB0aGUg
b3JpZ2luIGlzIHNlbnQgYXMgcmVmZXJyZXIgaW4gcmVkaXJlY3RzIHRvIHByZXZhbGVudCByZXNv
dXJjZXMgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyByZWZlcnJlciBpcyAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3Vi
cmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0bWwiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJh
bWUxLS0+JworLS0tLS0tLS0KK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC8KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJl
ci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJp
cC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMt
ZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMGY4YTJmNDIwYjVhYTYyYzM3YTI1ZDRiZGRmZWQz
M2EzM2JmYTVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50
LXN1YnJlc291cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVz
Y3JpcHRpb24oIlRlc3RzIHRoYXQgb25seSB0aGUgb3JpZ2luIGlzIHNlbnQgYXMgcmVmZXJyZXIg
aW4gcmVkaXJlY3RzIHRvIHByZXZhbGVudCByZXNvdXJjZXMgd2l0aG91dCB1c2VyIGludGVyYWN0
aW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHRlc3RSdW5uZXIuZHVtcENo
aWxkRnJhbWVzQXNUZXh0KCk7CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2Fk
SGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25M
b2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVy
OworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7
CisgICAgfQorCisgICAgdmFyIHJlZmVycmVyOworICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0
YWJhc2UodHJ1ZSk7CisgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6
Ly9sb2NhbGhvc3QiKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3YXMgY2xh
c3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0ZWQuIik7
CisKKyAgICAgICAgZmV0Y2goInJlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIpLnRoZW4oZnVu
Y3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7Cisg
ICAgICAgIH0pLnRoZW4oZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgICAgcmVmZXJyZXIgPSBk
YXRhOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10
by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRt
bCIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSgiaHR0cDovL2xvY2FsaG9zdCIsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDov
L2xvY2FsaG9zdCIpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgb3BlbklmcmFtZSgicmVzb3VyY2VzL3JlZGlyZWN0LnBocD9yZWRp
cmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291
cmNlcy9lY2hvLXJlZmVycmVyLnBocCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKGVy
cm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNo
SlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1y
ZXF1ZXN0cy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxl
bnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljg5Y2NiOWMyMWZmMDA3MWE5ODAyMzliN2I3OTNmNTUxODdlYmVlNWUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAt
cmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1Rlc3RzIHRoYXQgb25seSB0aGUg
b3JpZ2luIGlzIHNlbnQgYXMgcmVmZXJyZXIgZm9yIHByZXZhbGVudCByZXNvdXJjZXMgd2l0aG91
dCB1c2VyIGludGVyYWN0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyByZWZlcnJlciBpcyAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVx
dWVzdHMtZGF0YWJhc2UuaHRtbCIKK1BBU1MgcmVmZXJyZXIgaXMgImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC8iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK2h0dHA6Ly8x
MjcuMC4wLjE6ODAwMC8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1z
dWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJl
dmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTVk
NGYwMzY2Zjk3Y2ZjZTk0MjhhNmE4NmU1MTU0ODM2MGUzMjE3NwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZl
cnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFz
ZS5odG1sCkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgb25seSB0aGUg
b3JpZ2luIGlzIHNlbnQgYXMgcmVmZXJyZXIgZm9yIHByZXZhbGVudCByZXNvdXJjZXMgd2l0aG91
dCB1c2VyIGludGVyYWN0aW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHRl
c3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisKKyAgICBmdW5jdGlvbiBvcGVuSWZy
YW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOwor
ICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQg
PSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAgdmFyIHJlZmVycmVyOworICAgIHRlc3RSdW5u
ZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxv
Y2FsaG9zdCB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0
ZXN0IHN0YXJ0ZWQuIik7CisKKyAgICAgICAgZmV0Y2goInJlc291cmNlcy9lY2hvLXJlZmVycmVy
LnBocCIpLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIHJldHVybiByZXNw
b25zZS50ZXh0KCk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAg
ICAgcmVmZXJyZXIgPSBkYXRhOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
dHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0
cy1kYXRhYmFzZS5odG1sIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKCJodHRwOi8vbG9jYWxob3N0IikpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBmZXRjaCgiaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcmVmZXJyZXIucGhwIiku
dGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHJlc3BvbnNlLnRleHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbihk
YXRhKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZWZlcnJlciA9IGRhdGE7CisgICAgICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC8iKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgb3BlbklmcmFt
ZSgicmVzb3VyY2VzL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKworICAg
ICAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAgY29uc29sZS5sb2co
ZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5p
c2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50
ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJl
dmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM0MzkyMmZkOTNmMWE1NDQ0ZjJjYjA2ODg0ZWZjMzI5MGJhZTUxZjQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNo
LXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRh
YmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCB0aGUgc2Vzc2lv
biBpcyBzd2l0Y2hlZCB1cG9uIHRvcCBmcmFtZSBuYXZpZ2F0aW9uIHRvIGEgcHJldmFsZW50IHJl
c291cmNlIHdpdGggdXNlciBpbnRlcmFjdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgU2hvdWxkIGhhdmUgYW5kIGhhcyB0aGUgc2Vzc2lvbiBjb29raWUuCitQQVNT
IFNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHBlcnNpc3RlbnQgY29va2llLgorUEFTUyBPcmlnaW4g
aGFzIGlzb2xhdGVkIHNlc3Npb24uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFs
ZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRv
LXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI3
MGMwMGIwNDgxNjY2MGJjODFkMGQ2ZWU4OWNhYTcwZTFmNzRiYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vz
c2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNl
Lmh0bWwKQEAgLTAsMCArMSwxMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4i
PgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIv
anMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdGhlIHNlc3Np
b24gaXMgc3dpdGNoZWQgdXBvbiB0b3AgZnJhbWUgbmF2aWdhdGlvbiB0byBhIHByZXZhbGVudCBy
ZXNvdXJjZSB3aXRoIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKyAgICBjb25zdCBwcmV2YWxlbnRPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IjsKKyAgICBjb25zdCBub25QcmV2YWxlbnRPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
IjsKKyAgICBjb25zdCBzZXNzaW9uQ29va2llTmFtZSA9ICJzZXNzaW9uQ29va2llIjsKKyAgICBj
b25zdCBwZXJzaXN0ZW50Q29va2llTmFtZSA9ICJwZXJzaXN0ZW50Q29va2llIjsKKyAgICBjb25z
dCB0d29NaW51dGVzSW5TZWNvbmRzID0gMTIwOworCisgICAgZnVuY3Rpb24gc2V0U2Vzc2lvbkNv
b2tpZSgpIHsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2Vzc2lvbkNvb2tpZU5hbWUgKyAi
PTE7IHBhdGg9LyI7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2V0UGVyc2lzdGVudENvb2tpZSgp
IHsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gcGVyc2lzdGVudENvb2tpZU5hbWUgKyAiPTE7
IHBhdGg9LzsgTWF4LUFnZT0iICsgdHdvTWludXRlc0luU2Vjb25kcyArICI7IjsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBjaGVja0Nvb2tpZXMoc2hvdWxkSGF2ZVNlc3Npb25Db29raWUsIHNob3Vs
ZEhhdmVQZXJzaXN0ZW50Q29va2llKSB7CisgICAgICAgIGxldCBoYXNTZXNzaW9uQ29va2llID0g
KGRvY3VtZW50LmNvb2tpZSArICIiKS5pbmNsdWRlcyhzZXNzaW9uQ29va2llTmFtZSksCisgICAg
ICAgICAgICBoYXNQZXJzaXN0ZW50Q29va2llID0gKGRvY3VtZW50LmNvb2tpZSArICIiKS5pbmNs
dWRlcyhwZXJzaXN0ZW50Q29va2llTmFtZSk7CisKKyAgICAgICAgaWYgKHNob3VsZEhhdmVTZXNz
aW9uQ29va2llICYmIGhhc1Nlc3Npb25Db29raWUpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJT
aG91bGQgaGF2ZSBhbmQgaGFzIHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKKyAgICAgICAgZWxzZSBp
ZiAoc2hvdWxkSGF2ZVNlc3Npb25Db29raWUgJiYgIWhhc1Nlc3Npb25Db29raWUpIHsKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCBoYXZlIGJ1dCBkb2Vzbid0IGhhdmUgdGhlIHNlc3Np
b24gY29va2llLiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNo
SlNUZXN0KTsKKyAgICAgICAgfSBlbHNlIGlmICghc2hvdWxkSGF2ZVNlc3Npb25Db29raWUgJiYg
aGFzU2Vzc2lvbkNvb2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkbid0IGhh
dmUgYnV0IGhhcyB0aGUgc2Vzc2lvbiBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQoIlNob3VsZG4ndCBoYXZlIGFuZCBkb2Vzbid0IGhhdmUgdGhlIHNlc3Npb24g
Y29va2llLiIpOworCisKKyAgICAgICAgaWYgKHNob3VsZEhhdmVQZXJzaXN0ZW50Q29va2llICYm
IGhhc1BlcnNpc3RlbnRDb29raWUpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91bGQgaGF2
ZSBhbmQgaGFzIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsKKyAgICAgICAgZWxzZSBpZiAoc2hv
dWxkSGF2ZVBlcnNpc3RlbnRDb29raWUgJiYgIWhhc1BlcnNpc3RlbnRDb29raWUpIHsKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCBoYXZlIGJ1dCBkb2Vzbid0IGhhdmUgdGhlIHBlcnNp
c3RlbnQgY29va2llLiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICAgICAgfSBlbHNlIGlmICghc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29r
aWUgJiYgaGFzUGVyc2lzdGVudENvb2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hv
dWxkbid0IGhhdmUgYnV0IGhhcyB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlNob3VsZG4ndCBoYXZlIGFuZCBkb2Vzbid0IGhhdmUg
dGhlIHBlcnNpc3RlbnQgY29va2llLiIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAg
ICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24ocHJldmFsZW50T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgc2V0U2Vzc2lvbkNvb2tpZSgpOworICAgICAgICAgICAg
ICAgICAgICBzZXRQZXJzaXN0ZW50Q29va2llKCk7CisgICAgICAgICAgICAgICAgICAgIGNoZWNr
Q29va2llcyh0cnVlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIu
aGFzU3RhdGlzdGljc0lzb2xhdGVkU2Vzc2lvbihwcmV2YWxlbnRPcmlnaW4pKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPcmlnaW4gaGFzIGlzb2xhdGVkIHNlc3Npb24u
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5p
c2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIk9yaWdpbiBoYXMgbm8gaXNvbGF0ZWQgc2Vzc2lvbi4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IG5vblByZXZhbGVudE9y
aWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0
aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwjc3RlcDIiOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0g
InN0ZXAzIjsKKyAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luICE9
PSBub25QcmV2YWxlbnRPcmlnaW4pCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlN0
ZXAgMiBpcyBub3Qgb24gIiArIG5vblByZXZhbGVudE9yaWdpbiArICIuIik7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50
T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudE9yaWdpbikpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQocHJldmFsZW50T3JpZ2luICsgIiBk
aWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NV
cGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHByZXZhbGVudE9yaWdpbiArICIvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVu
dC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwjc3RlcDQiOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICBjaGVj
a0Nvb2tpZXModHJ1ZSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaGFz
U3RhdGlzdGljc0lzb2xhdGVkU2Vzc2lvbihwcmV2YWxlbnRPcmlnaW4pKQorICAgICAgICAgICAg
ICAgICAgICB0ZXN0UGFzc2VkKCJPcmlnaW4gaGFzIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPcmlnaW4g
aGFzIG5vIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVW5rbm93biBoYXNo
LiIpOworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVz
dCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9
PT0gIiIpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiAhPT0gcHJldmFs
ZW50T3JpZ2luKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGVzdCBpcyBub3Qgc3RhcnRpbmcg
b3V0IG9uICIgKyBwcmV2YWxlbnRPcmlnaW4gKyAiLiIpOworICAgICAgICB0ZXN0UnVubmVyLnNl
dFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHByZXZhbGVudE9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZChwcmV2YWxlbnRPcmlnaW4gKyAiIHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJj
ZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1k
YXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODQyNzMwYTQ1ZGFkZTZlYTZmMTVkZWNj
MzlhN2U1YTlhMGUzMTJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2lu
LXN1Yi1mcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMg
dGhhdCB1c2VyIGludGVyYWN0aW9uIGlzIGFsd2F5cyBsb2dnZWQgZm9yIHRoZSB0b3AgZG9jdW1l
bnQvZnJhbWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50
LmxvY2F0aW9uLm9yaWdpbiBpcyB0b3BGcmFtZU9yaWdpbgorUEFTUyB0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BB
U1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVP
cmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWlu
dGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9u
LWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWY2
MjNjMTgwZDYzZDNjNmI2MTBlZWIzNzFiZDg4NDU4NjFkZDhlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJh
Y3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEs
NDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0
IHVzZXIgaW50ZXJhY3Rpb24gaXMgYWx3YXlzIGxvZ2dlZCBmb3IgdGhlIHRvcCBkb2N1bWVudC9m
cmFtZS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOwordGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRh
YmFzZSh0cnVlKTsKKworY29uc3QgdG9wRnJhbWVPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4
MDAwIjsKK2NvbnN0IHN1YkZyYW1lT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisK
K2Z1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SWQpIHsKKyAgICB2YXIgZWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgdmFyIGNlbnRlclggPSBl
bGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICB2YXIgY2Vu
dGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAg
IFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSk7Cit9CisKK2Z1bmN0aW9uIGZp
bmlzaFRlc3QoKSB7CisgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICBzaG91bGRCZUZhbHNl
KCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9y
aWdpbikiKTsKKworICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cit9
CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRy
dWUpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRh
UmVjb3Jkc0NhbGxiYWNrKGZpbmlzaFRlc3QpOworICAgICAgICB9CisKKyAgICAgICAgc2hvdWxk
QmUoImRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiIsICJ0b3BGcmFtZU9yaWdpbiIpOworCisgICAg
ICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsK
KyAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworCisgICAgICAgICAgICBhY3RpdmF0
ZUVsZW1lbnQoInRlc3RGcmFtZSIpOworICAgICAgICB9CisgICAgfSk7Cit9OworPC9zY3JpcHQ+
Cis8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2R1bW15Lmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1z
aG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJl
cG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41NDMyYmM4ZWQ3MzgxZmJjNDk4ZGIzNGMwZmIzYmU3YTU3YmQ5MWQx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9y
dC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAor
VGVzdHMgdGhhdCB1c2VyIGludGVyYWN0aW9uIGlzIG5vdCByZXBvcnRlZCByZXBlYXRlZGx5IHdp
dGhpbiBhIHNob3J0IHBlcmlvZCBvZiB0aW1lLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gaXMgdG9wRnJhbWVPcmlnaW4KK1BB
U1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVP
cmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgdHJ1ZQorUEFT
UyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9y
aWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFT
UyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9y
aWdpbikgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorVGhpcyBpcyB0aGUgdGVzdCBlbGVtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5
LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRl
cmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRh
dGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTVkZWI5NzI5YmQ1YjliOTYzN2MwOGI5OWM2MTMxNTM3
YjYxYWEzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRo
aW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY2IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGls
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdXNl
ciBpbnRlcmFjdGlvbiBpcyBub3QgcmVwb3J0ZWQgcmVwZWF0ZWRseSB3aXRoaW4gYSBzaG9ydCBw
ZXJpb2Qgb2YgdGltZS4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0
IHRvcEZyYW1lT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3Vi
RnJhbWVPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKworICAgIGZ1bmN0aW9uIGFj
dGl2YXRlRWxlbWVudChlbGVtZW50SWQsIGNhbGxiYWNrKSB7CisgICAgICAgIHZhciBlbGVtZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAgdmFyIGNlbnRl
clggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAg
ICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0
IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVu
KAorICAgICAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICB9CisgICAgICAg
ICk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmlyc3RJbnRlcmFjdGlvbigpIHsKKyAgICAgICAg
c2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rp
b24odG9wRnJhbWVPcmlnaW4pIik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworICAg
ICAgICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RFbGVtZW50Iiwgc2Vjb25kSW50ZXJhY3Rpb24pOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHNlY29uZEludGVyYWN0aW9uKCkgeworICAgICAgICBzaG91
bGRCZVRydWUoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRv
cEZyYW1lT3JpZ2luKSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKworICAgICAg
ICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
SGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luLCBmYWxzZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NI
YXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIik7CisKKyAgICAgICAgICAgICAg
ICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RFbGVtZW50IiwgZmluaXNoVGVzdCk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7Cisg
ICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbiki
KTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAg
IH0KKworICAgIG9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVz
ZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiIs
ICJ0b3BGcmFtZU9yaWdpbiIpOworCisgICAgICAgICAgICBmaXJzdEludGVyYWN0aW9uKCk7Cisg
ICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KKzxkaXYgaWQ9InRlc3RFbGVtZW50Ij5UaGlz
IGlzIHRoZSB0ZXN0IGVsZW1lbnQ8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVy
YWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91
c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjI4Yzk5YjMwMjQ0NDU2MGI1MWIzNDhiOTYw
MjFiMDU4NTZlYTNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vi
c2l0ZS1kYXRhLXJlbW92YWwtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAK
K1Rlc3RzIHRoYXQgdXNlciBpbnRlcmFjdGlvbiBpcyByZXBvcnRlZCBhZnRlciBoaXN0b3J5IHJl
bW92YWwgc2luY2UgdGhhdCBtZWFucyBhbGwgc3RhdGlzdGljcyBoYXZlIGJlZW4gcmVzZXQuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50LmxvY2F0aW9uLm9y
aWdpbiBpcyB0b3BGcmFtZU9yaWdpbgorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hh
ZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZh
bHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRv
cEZyYW1lT3JpZ2luKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFs
c2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9w
RnJhbWVPcmlnaW4pIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1RoaXMgaXMgdGhlIHRlc3QgZWxlbWVu
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwt
ZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFs
LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmJlYjQyZjk0MmYxYjY4ZmZhY2ZlMGVmYjFmZTky
Mzk2MmYyMjY4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNp
dGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWkt
aGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHVzZXIgaW50ZXJh
Y3Rpb24gaXMgcmVwb3J0ZWQgYWZ0ZXIgaGlzdG9yeSByZW1vdmFsIHNpbmNlIHRoYXQgbWVhbnMg
YWxsIHN0YXRpc3RpY3MgaGF2ZSBiZWVuIHJlc2V0LiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0
cnVlOworCisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IjsKKyAgICBjb25zdCBzdWJGcmFtZU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOwor
CisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJZCwgY2FsbGJhY2spIHsKKyAg
ICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOwor
ICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0
V2lkdGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxl
bWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRl
clgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICBjYWxsYmFjaygpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlByb21pc2UgcmVqZWN0ZWQuIik7CisgICAg
ICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaXJzdEludGVyYWN0
aW9uKCkgeworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgc2hvdWxkQmVG
YWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJh
bWVPcmlnaW4pIik7CisgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGVzdEVsZW1lbnQiLCBjbGVh
cldlYnNpdGVEYXRhKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjbGVhcldlYnNpdGVEYXRhKCkg
eworICAgICAgICBzaG91bGRCZVRydWUoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdp
bikiKTsKKworICAgICAgICBpZiAodGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc0NsZWFyVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbChzZWNvbmRJbnRlcmFjdGlv
bik7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2Vjb25kSW50ZXJhY3Rpb24oKSB7CisgICAgICAg
IHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RFbGVt
ZW50IiwgZmluaXNoVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsK
KyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4p
Iik7CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAg
ICB9CisKKyAgICBvbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRV
c2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIHNob3VsZEJlKCJkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4i
LCAidG9wRnJhbWVPcmlnaW4iKTsKKworICAgICAgICAgICAgZmlyc3RJbnRlcmFjdGlvbigpOwor
ICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJ0ZXN0RWxlbWVudCI+VGhp
cyBpcyB0aGUgdGVzdCBlbGVtZW50PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378649</attachid>
            <date>2019-09-12 09:39:29 -0700</date>
            <delta_ts>2019-09-16 13:29:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195420-20190912093928.patch</filename>
            <type>text/plain</type>
            <size>364739</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmRlOTQ0MjJjNzgwMGUz
Y2RlOGY1N2YyMTYyNjM1NzFhNDI0Mjc4Yi4uYzgyZDI5MTdkM2U5MDlmMWY1YWJkZmI2ODVkMGQ0
OTJjYWE0OTU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDE5LTA5LTEwICBLYXRo
ZXJpbmUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5h
YmxlIExheW91dFRlc3RzIHVzaW5nIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgU1FMaXRlIGJhY2tl
bmQgKDE5NTQyMCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NTQyMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQyMTM1NTE+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2Uu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Js
b2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0LWltcG9ydC1kYXRhYmFzZS5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1h
Z2UtZm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMt
d2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9y
LWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291
cmNlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5r
LXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVk
LWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZh
bGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LXdpdGhvdXQtbGluay1kZWNvcmF0aW9uLWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJh
c2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1m
cmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1
YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24t
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJh
c2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1v
cmlnaW5zLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2Ut
cmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
c3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJh
c2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJl
Y3RzLXRvLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJl
ZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRv
cC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXIt
aW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5k
LXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAg
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFz
ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1z
Y3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5h
dmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJl
Y3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVu
dC13aXRob3V0LWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZp
Z2F0aW9uLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5h
YmxlLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50
LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAg
ICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNv
dXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3Vy
Y2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2Uu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
bi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFz
ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9z
dC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hl
ZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2Fs
aG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1k
YXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1wcmV2
YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVkLWtleWRvd24t
ZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFs
ZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291
cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3Vy
Y2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFi
YXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFz
ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRh
dGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlm
cmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10
by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hl
ZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQt
bmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10
by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0b20tcHJldmFsZW50LXJlc291cmNlLWlu
LWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50
LXN1YnJlc291cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZv
ci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9u
LW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50
ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlv
bi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91
c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFi
YXNlLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oOgorICAg
ICAgIEFkZGVkIFdFQkNPUkVfRVhQT1JUIHByZWZpeCB0byBhIGZ1bmN0aW9uIG5lZWRlZCBpbiB0
aGUgRGF0YWJhc2UKKyAgICAgICBiYWNrZW5kIHRvIGNsZWFyIG91dCB0aGUgZGF0YWJhc2UuCisK
IDIwMTktMDktMTAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbW92ZSBNZWRpYVN0cmVhbVByaXZhdGU6OnNjaGVkdWxlRGVmZXJyZWRUYXNrCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IGE5ZjAzZTE3M2ZhNGI2OWY1MmFiNjNkYTgxNzZhNjI0MWY5Y2NhOTQuLjVkYWE3ZWFkMDE0
NmFhZjU2NWMzNjIzMjk1Zjg1MGIyOWRlN2EwODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTI3IEBA
CisyMDE5LTA5LTEwICBLYXRoZXJpbmUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5j
b20+CisKKyAgICAgICAgRW5hYmxlIExheW91dFRlc3RzIHVzaW5nIFJlc291cmNlTG9hZFN0YXRp
c3RpY3MgU1FMaXRlIGJhY2tlbmQgKDE5NTQyMCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTQyMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQy
MTM1NTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlKToKKyAgICAgICAg
UmVtb3ZlZCBwcmVwYXJlU3RhdGVtZW50cygpIGNhbGwgZnJvbSB0aGUgY29uc3RydWN0b3IuIFBy
ZXBhcmluZworICAgICAgICBzdGF0ZW1lbnRzIHRoZW4gcnVubmluZyBhIHZhY3V1bSBjb21tYW5k
IG9uIHRoZSBkYXRhYmFzZSByZXN1bHRzIGluIGFuCisgICAgICAgIGVycm9yICh0aGUgdmFjdXVt
IGNvbW1hbmQgaXMgY2FsbGVkIGludCB0aGUgcG9wdWxhdGVGcm9tTWVtb3J5U3RvcmUoKQorICAg
ICAgICBmdW5jdGlvbikKKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMpOgorICAgICAgICBBZGRlZCAyIHN0YXRl
bWVudHMgdGhhdCB3ZXJlIG5vdCBiZWluZyBwcmVwYXJlZC4gUmVtb3ZlZCBvbmUgc3RhdGVtZW50
CisgICAgICAgIHdoaWNoIGlzIGNhbGxlZCBpbiB0aGUgaXNFbXB0eSgpIGNoZWNrIChiZWZvcmUg
b3RoZXJzIGFyZSBwcmVwYXJlZCkgc28KKyAgICAgICAgaXQgY2FuIGJlIHByZXBhcmVkIHNlcGFy
YXRlbHkuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OnJlbGF0aW9uc2hpcEV4aXN0cyBjb25zdCk6CisgICAgICAgIENvcnJlY3RlZCBpbmNv
cnJlY3QgY2FwaXRhbGl6YXRpb24uCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OnBvcHVsYXRlRnJvbU1lbW9yeVN0b3JlKToKKyAgICAgICAg
TW92ZWQgdGhlIHByZXBhcmVTdGF0ZW1lbnRzKCkgY2FsbCBhZnRlciB0aGUgdmFjdXVtIGNvbW1h
bmQgaW4gdGhlIGNhc2UKKyAgICAgICAgd2hlcmUgdGhlIGRhdGFiYXNlIGlzIGVtcHR5LiBPdGhl
cndpc2UgY2FsbGVkIGl0IGJlZm9yZSByZXR1cm5pbmcuCisKKyAgICAgICAgKFdlYktpdDo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlY3Vyc2l2ZWx5RmluZE5vblByZXZh
bGVudERvbWFpbnNUaGF0UmVkaXJlY3RlZFRvVGhpc0RvbWFpbik6CisgICAgICAgIEFkZGVkIGEg
c3BhY2UgdG8gdGhlIFNRTCBjb21tYW5kcyB0byBjb3JyZWN0IHRoZSBzeW50YXguCisKKyAgICAg
ICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmZpbmROb3RW
ZXJ5UHJldmFsZW50UmVzb3VyY2VzKToKKyAgICAgICAgQ29ycmVjdGVkIGEgYnVnIGluIHRoZSBT
UUwgY29tbWFuZCBmb3IgcXVlcnlpbmcKKyAgICAgICAgc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9t
YWluLiBUaGUgb2xkIHF1ZXJ5IHdhcyBhc2tpbmcgZm9yIHN1YnJlc291cmNlLgorCisgICAgICAg
IChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFuZGZhdGhl
ckRhdGFGb3JEb21haW5zKToKKyAgICAgICAgVGhlIGdyYW5kZmF0aGVyaW5nLmh0bWwgdGVzdCB3
YXMgZmFpbGluZyBiZWNhdXNlIGRvbWFpbnMgd2VyZSBiZWluZworICAgICAgICAic2V0IiB0byBn
cmFuZGZhdGhlcmVkIGluIHRoZSBkYXRhYmFzZSBiZWZvcmUgYmVpbmcgaW5zZXJ0ZWQuIFRoaXMg
Zml4CisgICAgICAgIGVuc3VyZXMgYWxsIGRvbWFpbnMgYmVmb3JlIHNldHRpbmcgdGhlIGdyYW5k
ZmF0aGVyaW5nIGZsYWcuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbik6CisgICAgICAgIE11bHRpcGxlIHRl
c3RzIHdlcmUgZmFpbGluZyBiZWNhdXNlIHRoZSBxdWVyeSB0byBpbnNlcnQgdGhlIHJlbGF0aW9u
c2hpcAorICAgICAgICBmb3IgdGhlIHNvdXJjZSBkb21haW4gcmVsaWVzIG9uIHRoZSB0YXJnZXQg
ZG9tYWluIGJlaW5nIGluIHRoZQorICAgICAgICBPYnNlcnZlZERvbWFpbnMgdGFibGUuIFRoaXMg
cGF0Y2ggZW5zdXJlcyBhbGwgZG9tYWlucyBhcmUgYWRkZWQgYmVmb3JlCisgICAgICAgIHBlcmZv
cm1pbmcgdGhlIHF1ZXJ5LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpoYXNIYWRVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICBUaGUgU1FM
IHN0YXRlbWVudCB3YXMgYmVpbmcgYm91bmQgdG8gYSB2YWx1ZSBhbmQgbm90IGJlaW5nIHJlc2V0
LiBUaGlzCisgICAgICAgIHBhdGNoIHJlc2V0cyB0aGUgc3RhdGVtZW50IGFmdGVyIGJpbmRpbmcu
IEFkZGl0aW9uYWxseSwgdGhlIHN0ZXAoKQorICAgICAgICBmdW5jdGlvbiB3YXMgYmVpbmcgY29t
cGFyZWQgdG8gU1FMSVRFX0RPTkUgaW5zdGVhZCBvZiBTUUxJVEVfUk9XLAorICAgICAgICBjYXVz
aW5nIGFuIGVycm9yIGlmIHRoZSBxdWVyeSByZXR1cm5lZCByZXN1bHRzLiBUaGUKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCkgd2FzIGNhdXNpbmcgbnVsbCBzZWFyY2hlcyB0byBjcmFzaCBp
bnN0ZWFkIG9mCisgICAgICAgIHJldHVybmluZyBmYWxzZSAoaS5lLiBpZiBhIGRvbWFpbiBpcyBu
b3QgaW4gdGhlIGRhdGFiYXNlIGl0IHNob3VsZAorICAgICAgICByZXR1cm4gdGhhdCBpdCBoYXMg
bm8gdXNlciBpbnRlcmFjdGlvbiBpbnN0ZWFkIG9mIGNyYXNoaW5nKS4KKworICAgICAgICAoV2Vi
S2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlZGljYXRlVmFsdWVG
b3JEb21haW4gY29uc3QpOgorICAgICAgICBUaGUgU1FMIHN0YXRlbWVudCB3YXMgYmVpbmcgYm91
bmQgdG8gYSB2YWx1ZSBhbmQgbm90IGJlaW5nIHJlc2V0LiBUaGlzCisgICAgICAgIHBhdGNoIHJl
c2V0cyB0aGUgc3RhdGVtZW50IGFmdGVyIGJpbmRpbmcuIFNRTElURV9ET05FIGNoYW5nZWQgdG8K
KyAgICAgICAgU1FMSVRFX1JPVyB0byByZXR1cm4gbm9uLWVtcHR5IHF1ZXJ5IHJlc3VsdHMuIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpCisgICAgICAgIHJlbW92ZWQgZm9yIHRoZSBzYW1lIHJlYXNvbnMg
YXMgYWJvdmUuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OmVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKToK
KyAgICAgICAgRml4ZWQgdGhlIHJlbGVhc2UgbG9nIHN0YXRlbWVudCB3aGljaCB3YXMgbG9nZ2lu
ZyB0aGUgd3JvbmcgZnVuY3Rpb24KKyAgICAgICAgbmFtZS4KKworICAgICAgICAoV2ViS2l0OjpS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJEYXRhYmFzZUNvbnRlbnRz
KToKKyAgICAgICAgQ2xlYXJzIHRoZSBkYXRhYmFzZSBhbmQgcmVidWlsZHMgdGhlIHRhYmxlcyBv
biBhIGNsZWFyIGNvbW1hbmQgdG8KKyAgICAgICAgbWF0Y2ggdGhlIGZ1bmN0aW9uYWxpdHkgaW4g
dGhlIE1lbW9yeSBTdG9yZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXIpOgorICAgICAgICBDYWxsIHRoZSBjbGVhckRhdGFiYXNl
Q29udGVudHMgZnVuY3Rpb24gdG8gbWF0Y2ggdGhlIGZ1bmN0aW9uYWxpdHkKKyAgICAgICAgaW4g
dGhlIE1lbW9yeSBTdG9yZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVW5leHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9uKToK
KyAgICAgICAgVGVzdHMgd2VyZSBmYWlsaW5nIGJlY2F1c2Ugc2hvdWxkUmVtb3ZlQWxsV2Vic2l0
ZURhdGFGb3IoKSB3YXMgbm90CisgICAgICAgIGNoZWNraW5nIGZvciBleHBpcmVkIHVzZXIgaW50
ZXJhY3Rpb24uIE1hdGNoZWQgZnVuY3Rpb25hbGl0eSBpbiB0aGUKKyAgICAgICAgTWVtb3J5IFN0
b3JlLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvcik6CisgICAgICAgIFRlc3RzIHdlcmUg
ZmFpbGluZyBiZWNhdXNlIHNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9yKCkgd2FzIG5vdAor
ICAgICAgICBjaGVja2luZyBmb3IgZXhwaXJlZCB1c2VyIGludGVyYWN0aW9uLiBNYXRjaGVkIGZ1
bmN0aW9uYWxpdHkgaW4gdGhlCisgICAgICAgIE1lbW9yeSBTdG9yZS4KKworICAgICAgICAoV2Vi
S2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJ1bmVTdGF0aXN0aWNz
SWZOZWVkZWQpOgorICAgICAgICBMYXN0IHNlZW4gc2hvdWxkIGJlIHNvcnRlZCBpbiBhc2NlbmRp
bmcgb3JkZXIgYmVjYXVzZSB5b3Ugd2FudCB0bworICAgICAgICBwcnVuZSB0aGUgb2xkZXIgc3Rh
dGlzdGljcyBmaXJzdCwgd2hpY2ggd2lsbCBoYXZlIGEgbG93ZXIgbGFzdFNlZW4KKyAgICAgICAg
ZmllbGQgKHNlY29uZHNTaW5jZUVwb2NoKCkgd2lsbCBiZSBsb3dlciBmb3Igb2xkZXIgdmFsdWVz
KS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6c2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3IgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICBEZWxldGVkIGNvbnN0IHNwZWNpZmllciBiZWNhdXNlIHRoZSBmdW5jdGlvbiBuZWVkcyB0byBj
bGVhciB0aGUKKyAgICAgICAgZGF0YWJhc2UuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmg6CisgICAgICAg
IERlY2xhcmVkIG5ldyBmdW5jdGlvbnMuIFVwZGF0ZWQgc3BlbGxpbmcgZXJyb3IgKHJlZ2lzdGVy
YWJsZSAtLT4KKyAgICAgICAgcmVnaXN0cmFibGUpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZSk6CisgICAgICAgIFNlcGFyYXRlZCB0aGUgcmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlIGNyZWF0aW9uIHByb2Nlc3MgaW50byBpdHMKKyAgICAgICAgb3duIG1ldGhv
ZCBzbyBpdCBjYW4gYmUgY2FsbGVkIGJ5IHRoZSB0ZXN0LgorCisgICAgICAgIChXZWJLaXQ6Oldl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aW5pdGlhbGl6ZVN0YXRpc3RpY3NTdG9yZSk6
CisgICAgICAgIFNlcGFyYXRlZCB0aGUgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIGNyZWF0
aW9uIHByb2Nlc3MgaW50byBpdHMKKyAgICAgICAgb3duIG1ldGhvZCBzbyBpdCBjYW4gYmUgY2Fs
bGVkIGJ5IHRoZSB0ZXN0LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAgRGVjbGFyZWQgbmV3IGZ1
bmN0aW9uLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0VXNlSVRQRGF0YWJhc2UpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHA6CisgICAgICAgIChXS1dlYnNpdGVEYXRh
U3RvcmVTZXRVc2VJVFBEYXRhYmFzZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vi
c2l0ZURhdGFTdG9yZVJlZi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpz
ZXRVc2VJVFBEYXRhYmFzZSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0VXNlSVRQ
RGF0YWJhc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmg6CisgICAgICAgIFBhc3NlZCB0aGUgc2V0VXNlSVRQRGF0YWJhc2UgZmxhZyB0byB0aGUg
aW5pdGlhbGl6YXRpb24gZnVuY3Rpb24KKyAgICAgICAgb2YgdGhlIHN0YXRpc3RpY3Mgc3RvcmUg
dG8gZW5hYmxlIHRoZSBkYXRhYmFzZSBiYWNrZW5kLgorCisKIDIwMTktMDktMTAgIEFkcmlhbiBQ
ZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVd
IEZpeGVzIGZvciBub24tdW5pZmllZCBidWlsZHMgYWZ0ZXIgcjI0OTAyMgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAppbmRleCAxNDk4NjZmYmMxMTk3YmEw
OWRhMjE1NzVmMWNlYWZhZDY0MTlmZTZiLi4wMTRkZTBlOWI0ODAzNDRmMTc3YzMwZDNkMDgxYmI1
OWZkN2RmM2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJh
c2UuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCByZXR1cm5zQXRMZWFzdE9u
ZVJlc3VsdChjb25zdCBTdHJpbmcmKTsKICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHRh
YmxlRXhpc3RzKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgY2xlYXJBbGxUYWJsZXMoKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyQWxsVGFibGVzKCk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgaW50IHJ1blZhY3V1bUNvbW1hbmQoKTsKICAgICBpbnQgcnVuSW5jcmVtZW50YWxWYWN1dW1D
b21tYW5kKCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmNwcAppbmRleCBkNGVjODRjN2M3ZDJlMTViNGU3OGMwMjliYTE2ZjIy
NjY3ZGMyMzY2Li45YTRjYzc0NGMxMTU5OGYwMjI5OWQ0NzQ0ODZmMThlZDAxN2E4YjVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5j
cHAKQEAgLTIxMywxMiArMjEzLDYgQEAgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlKFdlYlJlc28KICAgICAgICAg
fQogICAgIH0KIAotICAgIGlmICghcHJlcGFyZVN0YXRlbWVudHMoKSkgewotICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1Ymxp
Y31zLCBkYXRhYmFzZSBwYXRoOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSwgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aC51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICB3b3Jr
UXVldWUuZGlzcGF0Y2hBZnRlcig1X3MsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0g
ewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+Y2FsY3VsYXRl
QW5kU3VibWl0VGVsZW1ldHJ5KCk7CkBAIC0zMDAsOCArMjk0LDcgQEAgYm9vbCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMoKQogewogICAgIEFT
U0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICAKLSAgICBpZiAobV9vYnNlcnZlZERv
bWFpbkNvdW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgfHwgbV9pbnNlcnRPYnNl
cnZlZERvbWFpblN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgaWYgKG1faW5z
ZXJ0T2JzZXJ2ZWREb21haW5TdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwogICAgICAg
ICB8fCBtX2luc2VydFRvcExldmVsRG9tYWluU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVf
T0sKICAgICAgICAgfHwgbV9kb21haW5JREZyb21TdHJpbmdTdGF0ZW1lbnQucHJlcGFyZSgpICE9
IFNRTElURV9PSwogICAgICAgICB8fCBtX3N0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWlu
c1N0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCkBAIC0zMjgsNyArMzIxLDggQEAgYm9v
bCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMo
KQogICAgICAgICB8fCBtX3VwZGF0ZUdyYW5kZmF0aGVyZWRTdGF0ZW1lbnQucHJlcGFyZSgpICE9
IFNRTElURV9PSwogICAgICAgICB8fCBtX2lzR3JhbmRmYXRoZXJlZFN0YXRlbWVudC5wcmVwYXJl
KCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fZmluZEV4cGlyZWRVc2VySW50ZXJhY3Rpb25T
dGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwotICAgICAgICApIHsKKyAgICAgICAgfHwg
bV90b3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb20ucHJlcGFyZSgpICE9IFNRTElURV9PSworICAg
ICAgICB8fCBtX3RvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbUV4aXN0cy5wcmVwYXJlKCkgIT0g
U1FMSVRFX09LKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJlU3RhdGVtZW50cyBmYWls
ZWQgdG8gcHJlcGFyZSwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJh
c2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtMzg0LDEyICszNzgsMTIgQEAgYm9vbCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVsYXRpb25zaGlwRXhpc3RzKFdlYkNvcmU6OlNRTGl0
ZVN0YXQKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICAKLSAgICBib29sIHJlbGF0
aW9uU2hpcEV4aXN0cyA9ICEhc3RhdGVtZW50LmdldENvbHVtbkludCgwKTsKKyAgICBib29sIHJl
bGF0aW9uc2hpcEV4aXN0cyA9ICEhc3RhdGVtZW50LmdldENvbHVtbkludCgwKTsKIAogICAgIGlu
dCByZXNldFJlc3VsdCA9IHN0YXRlbWVudC5yZXNldCgpOwogICAgIEFTU0VSVF9VTlVTRUQocmVz
ZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNRTElURV9PSyk7CiAgICAgCi0gICAgcmV0dXJuIHJl
bGF0aW9uU2hpcEV4aXN0czsKKyAgICByZXR1cm4gcmVsYXRpb25zaGlwRXhpc3RzOwogfQogCiBi
b29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNlcnREb21haW5SZWxh
dGlvbnNoaXAoV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50JiBzdGF0ZW1lbnQsIHVuc2lnbmVkIGRv
bWFpbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWUpCkBAIC00ODYsOCArNDgw
LDE2IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBvcHVsYXRl
RnJvbU1lbW9yeVN0b3JlKGNvbnN0IFJlc291cmNlCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjpp
c01haW4oKSk7CiAKLSAgICBpZiAoIWlzRW1wdHkoKSkKKyAgICBtX29ic2VydmVkRG9tYWluQ291
bnQucHJlcGFyZSgpOworCisgICAgaWYgKCFpc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKCFwcmVw
YXJlU3RhdGVtZW50cygpKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3Jr
LCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRl
bWVudHMgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zLCBkYXRhYmFzZSBwYXRoOiAl
e3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSwgbV9zdG9yYWdlRGly
ZWN0b3J5UGF0aC51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKKyAg
ICB9CiAKICAgICBhdXRvJiBzdGF0aXN0aWNzTWFwID0gbWVtb3J5U3RvcmUuZGF0YSgpOwogICAg
IGZvciAoY29uc3QgYXV0byYgc3RhdGlzdGljIDogc3RhdGlzdGljc01hcCkKQEAgLTQ5OSw2ICs1
MDEsMTIgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cG9wdWxh
dGVGcm9tTWVtb3J5U3RvcmUoY29uc3QgUmVzb3VyY2UKICAgICAgICAgaW5zZXJ0RG9tYWluUmVs
YXRpb25zaGlwcyhzdGF0aXN0aWMudmFsdWUpOwogCiAgICAgbV9kYXRhYmFzZS5ydW5WYWN1dW1D
b21tYW5kKCk7CisKKyAgICBpZiAoIXByZXBhcmVTdGF0ZW1lbnRzKCkpIHsKKyAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OnByZXBhcmVTdGF0ZW1lbnRzIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJs
aWN9cywgZGF0YWJhc2UgcGF0aDogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVy
cm9yTXNnKCksIG1fc3RvcmFnZURpcmVjdG9yeVBhdGgudXRmOCgpLmRhdGEoKSk7CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQogfQogCiB2b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjYWxjdWxhdGVBbmRTdWJtaXRU
ZWxlbWV0cnkoKSBjb25zdApAQCAtNTQ2LDcgKzU1NCw3IEBAIHVuc2lnbmVkIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWN1cnNpdmVseUZpbmROb25QcmV2YWxlbnREb21h
aW5zCiAgICAgKytudW1iZXJPZlJlY3Vyc2l2ZUNhbGxzOwogCiAgICAgU3RkU2V0PHVuc2lnbmVk
PiBuZXdseUlkZW50aWZpZWREb21haW5zOwotICAgIFNRTGl0ZVN0YXRlbWVudCBmaW5kU3VicmVz
b3VyY2VzKG1fZGF0YWJhc2UsIG1ha2VTdHJpbmcoIlNFTEVDVCBTdWJyZXNvdXJjZVVuaXF1ZVJl
ZGlyZWN0c0Zyb20uZnJvbURvbWFpbklEIGZyb20gU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNG
cm9tIElOTkVSIEpPSU4gT2JzZXJ2ZWREb21haW5zIE9OIE9ic2VydmVkRG9tYWlucy5kb21haW5J
RCA9IFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQgV0hFUkUgc3Vi
cmVzb3VyY2VEb21haW5JRCA9ICIsIFN0cmluZzo6bnVtYmVyKHByaW1hcnlEb21haW5JRCksICJB
TkQgT2JzZXJ2ZWREb21haW5zLmlzUHJldmFsZW50ID0gMCIpKTsKKyAgICBTUUxpdGVTdGF0ZW1l
bnQgZmluZFN1YnJlc291cmNlcyhtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgU3VicmVz
b3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5JRCBmcm9tIFN1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RzRnJvbSBJTk5FUiBKT0lOIE9ic2VydmVkRG9tYWlucyBPTiBPYnNlcnZlZERv
bWFpbnMuZG9tYWluSUQgPSBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20uZnJvbURvbWFp
bklEIFdIRVJFIHN1YnJlc291cmNlRG9tYWluSUQgPSAiLCBTdHJpbmc6Om51bWJlcihwcmltYXJ5
RG9tYWluSUQpLCAiIEFORCBPYnNlcnZlZERvbWFpbnMuaXNQcmV2YWxlbnQgPSAwIikpOwogICAg
IGlmIChmaW5kU3VicmVzb3VyY2VzLnByZXBhcmUoKSA9PSBTUUxJVEVfT0spIHsKICAgICAgICAg
d2hpbGUgKGZpbmRTdWJyZXNvdXJjZXMuc3RlcCgpID09IFNRTElURV9ST1cpIHsKICAgICAgICAg
ICAgIGF1dG8gbmV3RG9tYWluSUQgPSBmaW5kU3VicmVzb3VyY2VzLmdldENvbHVtbkludCgwKTsK
QEAgLTU1Niw3ICs1NjQsNyBAQCB1bnNpZ25lZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6cmVjdXJzaXZlbHlGaW5kTm9uUHJldmFsZW50RG9tYWlucwogICAgICAgICB9CiAg
ICAgfQogCi0gICAgU1FMaXRlU3RhdGVtZW50IGZpbmRUb3BGcmFtZXMobV9kYXRhYmFzZSwgbWFr
ZVN0cmluZygiU0VMRUNUIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQg
ZnJvbSBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20gSU5ORVIgSk9JTiBPYnNlcnZlZERvbWFp
bnMgT04gT2JzZXJ2ZWREb21haW5zLmRvbWFpbklEID0gVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNG
cm9tLmZyb21Eb21haW5JRCBXSEVSRSB0YXJnZXREb21haW5JRCA9ICIsIFN0cmluZzo6bnVtYmVy
KHByaW1hcnlEb21haW5JRCksICJBTkQgT2JzZXJ2ZWREb21haW5zLmlzUHJldmFsZW50ID0gMCIp
KTsKKyAgICBTUUxpdGVTdGF0ZW1lbnQgZmluZFRvcEZyYW1lcyhtX2RhdGFiYXNlLCBtYWtlU3Ry
aW5nKCJTRUxFQ1QgVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5JRCBmcm9t
IFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSBJTk5FUiBKT0lOIE9ic2VydmVkRG9tYWlucyBP
TiBPYnNlcnZlZERvbWFpbnMuZG9tYWluSUQgPSBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20u
ZnJvbURvbWFpbklEIFdIRVJFIHRhcmdldERvbWFpbklEID0gIiwgU3RyaW5nOjpudW1iZXIocHJp
bWFyeURvbWFpbklEKSwgIiBBTkQgT2JzZXJ2ZWREb21haW5zLmlzUHJldmFsZW50ID0gMCIpKTsK
ICAgICBpZiAoZmluZFRvcEZyYW1lcy5wcmVwYXJlKCkgPT0gU1FMSVRFX09LKSB7CiAgICAgICAg
IHdoaWxlIChmaW5kVG9wRnJhbWVzLnN0ZXAoKSA9PSBTUUxJVEVfUk9XKSB7CiAgICAgICAgICAg
ICBhdXRvIG5ld0RvbWFpbklEID0gZmluZFRvcEZyYW1lcy5nZXRDb2x1bW5JbnQoMCk7CkBAIC02
NTcsNyArNjY1LDcgQEAgSGFzaE1hcDx1bnNpZ25lZCwgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6Ok5vdFZlcnlQcmV2YWxlbnRSZXNvdXJjZXMKICAgICAgICAgfQogICAgIH0K
IAotICAgIFNRTGl0ZVN0YXRlbWVudCBzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnRT
dGF0ZW1lbnQobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIHN1YnJlc291cmNlRG9tYWlu
SUQsIENPVU5UKHRvcEZyYW1lRG9tYWluSUQpIEZST00gU3VicmVzb3VyY2VVbmRlclRvcEZyYW1l
RG9tYWlucyBXSEVSRSBzdWJyZXNvdXJjZURvbWFpbklEIElOICgiLCBkb21haW5JRHNPZkludGVy
ZXN0LCAiKSBHUk9VUCBCWSBzdWJyZXNvdXJjZURvbWFpbklEIikpOworICAgIFNRTGl0ZVN0YXRl
bWVudCBzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnRTdGF0ZW1lbnQobV9kYXRhYmFz
ZSwgbWFrZVN0cmluZygiU0VMRUNUIHN1YmZyYW1lRG9tYWluSUQsIENPVU5UKHRvcEZyYW1lRG9t
YWluSUQpIEZST00gU3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlucyBXSEVSRSBzdWJmcmFtZURv
bWFpbklEIElOICgiLCBkb21haW5JRHNPZkludGVyZXN0LCAiKSBHUk9VUCBCWSBzdWJmcmFtZURv
bWFpbklEIikpOwogICAgIGlmIChzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnRTdGF0
ZW1lbnQucHJlcGFyZSgpID09IFNRTElURV9PSykgewogICAgICAgICB3aGlsZSAoc3ViZnJhbWVV
bmRlclRvcEZyYW1lRG9tYWluc0NvdW50U3RhdGVtZW50LnN0ZXAoKSA9PSBTUUxJVEVfUk9XKSB7
CiAgICAgICAgICAgICB1bnNpZ25lZCBkb21haW5JRCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihz
dWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnRTdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDAp
KTsKQEAgLTY4NywxMiArNjk1LDEyIEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OnJlY2xhc3NpZnlSZXNvdXJjZXMoKQogICAgIGF1dG8gbm90VmVyeVByZXZhbGVu
dFJlc291cmNlcyA9IGZpbmROb3RWZXJ5UHJldmFsZW50UmVzb3VyY2VzKCk7CiAKICAgICBmb3Ig
KGF1dG8mIHJlc291cmNlU3RhdGlzdGljIDogbm90VmVyeVByZXZhbGVudFJlc291cmNlcy52YWx1
ZXMoKSkgewotICAgICAgICBpZiAoc2hvdWxkU2tpcChyZXNvdXJjZVN0YXRpc3RpYy5yZWdpc3Rl
cmFibGVEb21haW4pKQorICAgICAgICBpZiAoc2hvdWxkU2tpcChyZXNvdXJjZVN0YXRpc3RpYy5y
ZWdpc3RyYWJsZURvbWFpbikpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBhdXRv
IG5ld1ByZXZhbGVuY2UgPSBjbGFzc2lmaWVyKCkuY2FsY3VsYXRlUmVzb3VyY2VQcmV2YWxlbmNl
KHJlc291cmNlU3RhdGlzdGljLnN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnNDb3VudCwg
cmVzb3VyY2VTdGF0aXN0aWMuc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb0NvdW50LCByZXNv
dXJjZVN0YXRpc3RpYy5zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnQsIHJlc291cmNl
U3RhdGlzdGljLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9Db3VudCwgcmVzb3VyY2VTdGF0aXN0
aWMucHJldmFsZW5jZSk7CiAgICAgICAgIGlmIChuZXdQcmV2YWxlbmNlICE9IHJlc291cmNlU3Rh
dGlzdGljLnByZXZhbGVuY2UpCi0gICAgICAgICAgICBzZXRQcmV2YWxlbnRSZXNvdXJjZShyZXNv
dXJjZVN0YXRpc3RpYy5yZWdpc3RlcmFibGVEb21haW4sIG5ld1ByZXZhbGVuY2UpOworICAgICAg
ICAgICAgc2V0UHJldmFsZW50UmVzb3VyY2UocmVzb3VyY2VTdGF0aXN0aWMucmVnaXN0cmFibGVE
b21haW4sIG5ld1ByZXZhbGVuY2UpOwogICAgIH0KIH0KIApAQCAtODUxLDYgKzg1OSw5IEBAIHZv
aWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW5kZmF0aGVyRGF0YUZv
ckRvbWFpbnMoY29uc3QgSGFzaFNlCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7
CiAKKyAgICBmb3IgKGF1dG8mIHJlZ0RvbWFpbiA6IGRvbWFpbnMpCisgICAgICAgIGVuc3VyZVJl
c291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHJlZ0RvbWFpbik7CisKICAgICBT
UUxpdGVTdGF0ZW1lbnQgZG9tYWluc1RvVXBkYXRlU3RhdGVtZW50KG1fZGF0YWJhc2UsIG1ha2VT
dHJpbmcoIlVQREFURSBPYnNlcnZlZERvbWFpbnMgU0VUIGdyYW5kZmF0aGVyZWQgPSAxIFdIRVJF
IHJlZ2lzdHJhYmxlRG9tYWluIElOICgiLCBkb21haW5zVG9TdHJpbmcoZG9tYWlucyksICIpIikp
OwogICAgIGlmIChkb21haW5zVG9VcGRhdGVTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9P
SwogICAgICAgICB8fCBkb21haW5zVG9VcGRhdGVTdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9E
T05FKSB7CkBAIC04OTQsNyArOTA1LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG8KICAgICBp
ZiAoIWlzTWFpbkZyYW1lICYmICEoYXJlVGFyZ2V0QW5kVG9wRnJhbWVEb21haW5zU2FtZVNpdGUg
fHwgYXJlVGFyZ2V0QW5kU291cmNlRG9tYWluc1NhbWVTaXRlKSkgewogICAgICAgICBhdXRvIHRh
cmdldFJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWlu
KHRhcmdldERvbWFpbik7CiAgICAgICAgIHVwZGF0ZUxhc3RTZWVuKHRhcmdldERvbWFpbiwgUmVz
b3VyY2VMb2FkU3RhdGlzdGljczo6cmVkdWNlVGltZVJlc29sdXRpb24oV2FsbFRpbWU6Om5vdygp
KSk7Ci0KKyAgICAgICAgZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21h
aW4odG9wRnJhbWVEb21haW4pOwogICAgICAgICBpZiAoIXJlbGF0aW9uc2hpcEV4aXN0cyhtX3N1
YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbkV4aXN0cywgdGFyZ2V0UmVzdWx0LnNlY29uZCwgdG9w
RnJhbWVEb21haW4pKSB7CiAgICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9z
dWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zLCB0YXJnZXRSZXN1bHQuc2Vjb25kLCB0b3BGcmFt
ZURvbWFpbik7CiAgICAgICAgICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVlOwpAQCAt
OTA0LDI0ICs5MTUsMjUgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG8KICAgICBpZiAoaXNSZWRp
cmVjdCAmJiAhYXJlVGFyZ2V0QW5kU291cmNlRG9tYWluc1NhbWVTaXRlKSB7CiAgICAgICAgIGlm
IChpc01haW5GcmFtZSkgewogICAgICAgICAgICAgYXV0byByZWRpcmVjdGluZ0RvbWFpblJlc3Vs
dCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHNvdXJjZURv
bWFpbik7CisgICAgICAgICAgICBhdXRvIHRhcmdldFJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3Rh
dGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHRhcmdldERvbWFpbik7CisKICAgICAgICAgICAg
IGlmICghcmVsYXRpb25zaGlwRXhpc3RzKG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb0V4aXN0
cywgcmVkaXJlY3RpbmdEb21haW5SZXN1bHQuc2Vjb25kLCB0YXJnZXREb21haW4pKSB7CiAgICAg
ICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fdG9wRnJhbWVVbmlxdWVSZWRp
cmVjdHNUbywgcmVkaXJlY3RpbmdEb21haW5SZXN1bHQuc2Vjb25kLCB0YXJnZXREb21haW4pOwog
ICAgICAgICAgICAgICAgIHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7CiAgICAgICAgICAg
ICB9CiAKLSAgICAgICAgICAgIGF1dG8gdGFyZ2V0UmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0
aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4odGFyZ2V0RG9tYWluKTsKICAgICAgICAgICAgIGlm
ICghcmVsYXRpb25zaGlwRXhpc3RzKG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tRXhpc3Rz
LCB0YXJnZXRSZXN1bHQuc2Vjb25kLCBzb3VyY2VEb21haW4pKSB7CiAgICAgICAgICAgICAgICAg
aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLCB0
YXJnZXRSZXN1bHQuc2Vjb25kLCBzb3VyY2VEb21haW4pOwogICAgICAgICAgICAgICAgIHN0YXRp
c3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICBhdXRvIHJlZGlyZWN0aW5nRG9tYWluUmVzdWx0ID0gZW5zdXJlUmVzb3Vy
Y2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4oc291cmNlRG9tYWluKTsKKyAgICAgICAg
ICAgIGF1dG8gdGFyZ2V0UmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0
cmFibGVEb21haW4odGFyZ2V0RG9tYWluKTsKICAgICAgICAgICAgIGlmICghcmVsYXRpb25zaGlw
RXhpc3RzKG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb0V4aXN0cywgcmVkaXJlY3RpbmdE
b21haW5SZXN1bHQuc2Vjb25kLCB0YXJnZXREb21haW4pKSB7CiAgICAgICAgICAgICAgICAgaW5z
ZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbywgcmVk
aXJlY3RpbmdEb21haW5SZXN1bHQuc2Vjb25kLCB0YXJnZXREb21haW4pOwogICAgICAgICAgICAg
ICAgIHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIGF1dG8gdGFyZ2V0UmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVn
aXN0cmFibGVEb21haW4odGFyZ2V0RG9tYWluKTsKICAgICAgICAgICAgIGlmICghcmVsYXRpb25z
aGlwRXhpc3RzKG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tRXhpc3RzLCB0YXJnZXRS
ZXN1bHQuc2Vjb25kLCBzb3VyY2VEb21haW4pKSB7CiAgICAgICAgICAgICAgICAgaW5zZXJ0RG9t
YWluUmVsYXRpb25zaGlwKG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLCB0YXJnZXRS
ZXN1bHQuc2Vjb25kLCBzb3VyY2VEb21haW4pOwogICAgICAgICAgICAgICAgIHN0YXRpc3RpY3NX
ZXJlVXBkYXRlZCA9IHRydWU7CkBAIC05OTEsMTUgKzEwMDMsMjAgQEAgYm9vbCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVXNlckludGVyYWN0aW9uKGNvbnN0IFJl
Z2lzdHJhYmwKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGlmIChtX2hh
ZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5iaW5kVGV4dCgxLCBkb21haW4uc3RyaW5nKCkpICE9
IFNRTElURV9PSwotICAgICAgICB8fCBtX2hhZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5zdGVw
KCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywg
IiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1fdXBkYXRlUHJldmFs
ZW50UmVzb3VyY2VTdGF0ZW1lbnQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwg
dGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICB8fCBtX2hhZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5zdGVwKCkg
IT0gU1FMSVRFX1JPVykgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAg
LSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV9oYWRVc2VySW50ZXJhY3Rp
b25TdGF0ZW1lbnQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9k
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisKKyAgICAgICAgaW50IHJlc2V0UmVzdWx0ID0gbV9o
YWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQucmVzZXQoKTsKKyAgICAgICAgQVNTRVJUX1VOVVNF
RChyZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQgPT0gU1FMSVRFX09LKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIAogICAgIGJvb2wgaGFkVXNlckludGVyYWN0aW9uID0gISFtX2hhZFVz
ZXJJbnRlcmFjdGlvblN0YXRlbWVudC5nZXRDb2x1bW5JbnQoMCk7Ci0gICAgaWYgKCFoYWRVc2Vy
SW50ZXJhY3Rpb24pCisgICAgaWYgKCFoYWRVc2VySW50ZXJhY3Rpb24pIHsKKyAgICAgICAgaW50
IHJlc2V0UmVzdWx0ID0gbV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQucmVzZXQoKTsKKyAg
ICAgICAgQVNTRVJUX1VOVVNFRChyZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQgPT0gU1FMSVRFX09L
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KICAgICAKICAgICBXYWxsVGltZSBtb3N0
UmVjZW50VXNlckludGVyYWN0aW9uVGltZSA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhtX2hh
ZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5nZXRDb2x1bW5Eb3VibGUoMSkpOwogCkBAIC0xMDEx
LDYgKzEwMjgsOSBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpo
YXNIYWRVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0cmFibAogICAgICAgICBoYWRVc2VySW50
ZXJhY3Rpb24gPSBmYWxzZTsKICAgICB9CiAgICAgCisgICAgaW50IHJlc2V0UmVzdWx0ID0gbV9o
YWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQucmVzZXQoKTsKKyAgICBBU1NFUlRfVU5VU0VEKHJl
c2V0UmVzdWx0LCByZXNldFJlc3VsdCA9PSBTUUxJVEVfT0spOworCiAgICAgcmV0dXJuIGhhZFVz
ZXJJbnRlcmFjdGlvbjsKIH0KIApAQCAtMTA3Niw5ICsxMDk2LDEyIEBAIGJvb2wgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZWRpY2F0ZVZhbHVlRm9yRG9tYWluKFdlYkNv
cmU6OlNRTGl0CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgCiAgICAgaWYg
KHByZWRpY2F0ZVN0YXRlbWVudC5iaW5kVGV4dCgxLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElU
RV9PSwotICAgICAgICB8fCBwcmVkaWNhdGVTdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ET05F
KSB7CisgICAgICAgIHx8IHByZWRpY2F0ZVN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX1JPVykg
eworCisgICAgICAgIGludCByZXNldFJlc3VsdCA9IHByZWRpY2F0ZVN0YXRlbWVudC5yZXNldCgp
OworICAgICAgICBBU1NFUlRfVU5VU0VEKHJlc2V0UmVzdWx0LCByZXNldFJlc3VsdCA9PSBTUUxJ
VEVfT0spOworCiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVkaWNhdGVWYWx1ZUZvckRvbWFpbiBm
YWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJh
c2UubGFzdEVycm9yTXNnKCkpOwotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTI0OCw3ICsxMjcxLDcgQEAgc3RkOjpwYWly
PFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpBZGRlZFJlY29yZCwgdW5zaWdu
ZWQ+IFJlc291cmNlTG8KICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGlm
IChtX2RvbWFpbklERnJvbVN0cmluZ1N0YXRlbWVudC5iaW5kVGV4dCgxLCBkb21haW4uc3RyaW5n
KCkpICE9IFNRTElURV9PSykgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAi
JXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y3JlYXRlU2NoZW1hIGZh
aWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVy
cm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNz
Rm9yUmVnaXN0cmFibGVEb21haW4gZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwg
dGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICByZXR1cm4geyBBZGRlZFJlY29yZDo6Tm8sIDAgfTsKICAgICB9CkBA
IC0xMjcwLDEwICsxMjkzLDI0IEBAIHN0ZDo6cGFpcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6QWRkZWRSZWNvcmQsIHVuc2lnbmVkPiBSZXNvdXJjZUxvCiAgICAgcmV0dXJu
IHsgQWRkZWRSZWNvcmQ6OlllcywgZG9tYWluSUQoZG9tYWluKSB9OwogfQogCit2b2lkIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhckRhdGFiYXNlQ29udGVudHMoKQor
eworICAgIG1fZGF0YWJhc2UuY2xlYXJBbGxUYWJsZXMoKTsKKworICAgIGlmICghbV9kYXRhYmFz
ZS50YWJsZUV4aXN0cygiT2JzZXJ2ZWREb21haW5zIl9zKSkgeworICAgICAgICBpZiAoIWNyZWF0
ZVNjaGVtYSgpKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAg
LSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJEYXRhYmFzZUNvbnRl
bnRzIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cywgZGF0YWJhc2UgcGF0aDogJXtw
dWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCksIG1fc3RvcmFnZURpcmVj
dG9yeVBhdGgudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KK30KKwogdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXIoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNN
YWluKCkpOwogCisgICAgY2xlYXJEYXRhYmFzZUNvbnRlbnRzKCk7CiAgICAgY2xlYXJPcGVyYXRp
bmdEYXRlcygpOwogCiAgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3Jl
Z2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CkBAIC0xNDYyLDkgKzE0
OTksMTkgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJH
cmFuZGZhdGhlcmluZyhWZWN0b3I8dW5zaWduZWQ+JiYKICAgICB9CiB9CiAKLWJvb2wgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRh
Rm9yKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmIHJlc291cmNlU3RhdGlzdGljLCBib29sIHNo
b3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpIGNvbnN0Citib29sIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNIYWRVbmV4cGlyZWRSZWNlbnRVc2VySW50ZXJhY3Rpb24o
Y29uc3QgUHJldmFsZW50RG9tYWluRGF0YSYgcmVzb3VyY2VTdGF0aXN0aWMsIE9wZXJhdGluZ0Rh
dGVzV2luZG93IG9wZXJhdGluZ0RhdGVzV2luZG93KQoreworICAgIGlmIChyZXNvdXJjZVN0YXRp
c3RpYy5oYWRVc2VySW50ZXJhY3Rpb24gJiYgaGFzU3RhdGlzdGljc0V4cGlyZWQocmVzb3VyY2VT
dGF0aXN0aWMubW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUsIG9wZXJhdGluZ0RhdGVzV2lu
ZG93KSkgeworICAgICAgICBjbGVhclVzZXJJbnRlcmFjdGlvbihyZXNvdXJjZVN0YXRpc3RpYy5y
ZWdpc3RyYWJsZURvbWFpbik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gcmVzb3VyY2VTdGF0aXN0aWMuaGFkVXNlckludGVyYWN0aW9uOworfQorCitib29sIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRSZW1vdmVBbGxXZWJzaXRl
RGF0YUZvcihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiByZXNvdXJjZVN0YXRpc3RpYywgYm9v
bCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKQogewotICAgIHJldHVybiAhcmVzb3VyY2VT
dGF0aXN0aWMuaGFkVXNlckludGVyYWN0aW9uICYmICghc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhl
cmluZyB8fCAhcmVzb3VyY2VTdGF0aXN0aWMuZ3JhbmRmYXRoZXJlZCk7CisgICAgcmV0dXJuICFo
YXNIYWRVbmV4cGlyZWRSZWNlbnRVc2VySW50ZXJhY3Rpb24ocmVzb3VyY2VTdGF0aXN0aWMsIE9w
ZXJhdGluZ0RhdGVzV2luZG93OjpMb25nKSAmJiAoIXNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJp
bmcgfHwgIXJlc291cmNlU3RhdGlzdGljLmdyYW5kZmF0aGVyZWQpOwogfQogCiBib29sIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRSZW1vdmVBbGxCdXRDb29raWVz
Rm9yKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmIHJlc291cmNlU3RhdGlzdGljLCBib29sIHNo
b3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpIGNvbnN0CkBAIC0xNDkyLDkgKzE1MzksOSBAQCBW
ZWN0b3I8c3RkOjpwYWlyPFJlZ2lzdHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlPj4g
UmVzb3VyY2VMb2FkU3RhdGlzdGljcwogICAgIFZlY3Rvcjx1bnNpZ25lZD4gZG9tYWluSURzVG9D
bGVhckdyYW5kZmF0aGVyaW5nOwogICAgIGZvciAoYXV0byYgc3RhdGlzdGljIDogcHJldmFsZW50
RG9tYWlucykgewogICAgICAgICBpZiAoc2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3Ioc3Rh
dGlzdGljLCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSkKLSAgICAgICAgICAgIGRvbWFp
bnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihzdGF0aXN0aWMu
cmVnaXN0ZXJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlOjpBbGwpKTsKKyAgICAgICAg
ICAgIGRvbWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihz
dGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU6OkFsbCkpOwog
ICAgICAgICBlbHNlIGlmIChzaG91bGRSZW1vdmVBbGxCdXRDb29raWVzRm9yKHN0YXRpc3RpYywg
c2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZykpCi0gICAgICAgICAgICBkb21haW5zVG9SZW1v
dmVXZWJzaXRlRGF0YUZvci5hcHBlbmQoc3RkOjptYWtlX3BhaXIoc3RhdGlzdGljLnJlZ2lzdGVy
YWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZTo6QWxsQnV0Q29va2llcykpOworICAgICAg
ICAgICAgZG9tYWluc1RvUmVtb3ZlV2Vic2l0ZURhdGFGb3IuYXBwZW5kKHN0ZDo6bWFrZV9wYWly
KHN0YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZTo6QWxsQnV0
Q29va2llcykpOwogCiAgICAgICAgIGlmIChzaG91bGRDbGVhckdyYW5kZmF0aGVyaW5nICYmIHN0
YXRpc3RpYy5ncmFuZGZhdGhlcmVkKQogICAgICAgICAgICAgZG9tYWluSURzVG9DbGVhckdyYW5k
ZmF0aGVyaW5nLmFwcGVuZChzdGF0aXN0aWMuZG9tYWluSUQpOwpAQCAtMTUyNCw3ICsxNTcxLDcg
QEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJ1bmVTdGF0aXN0
aWNzSWZOZWVkZWQoKQogICAgIHNpemVfdCBjb3VudExlZnRUb1BydW5lID0gY291bnQgLSBwYXJh
bWV0ZXJzKCkucHJ1bmVFbnRyaWVzRG93blRvOwogICAgIEFTU0VSVChjb3VudExlZnRUb1BydW5l
KTsKIAotICAgIFNRTGl0ZVN0YXRlbWVudCByZWNvcmRzVG9QcnVuZShtX2RhdGFiYXNlLCBtYWtl
U3RyaW5nKCJTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgT1JERVIgQlkgaGFk
VXNlckludGVyYWN0aW9uLCBpc1ByZXZhbGVudCwgbGFzdFNlZW4gREVTQyBMSU1JVCAiLCBTdHJp
bmc6Om51bWJlcihjb3VudExlZnRUb1BydW5lKSkpOworICAgIFNRTGl0ZVN0YXRlbWVudCByZWNv
cmRzVG9QcnVuZShtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgZG9tYWluSUQgRlJPTSBP
YnNlcnZlZERvbWFpbnMgT1JERVIgQlkgaGFkVXNlckludGVyYWN0aW9uLCBpc1ByZXZhbGVudCwg
bGFzdFNlZW4gTElNSVQgIiwgU3RyaW5nOjpudW1iZXIoY291bnRMZWZ0VG9QcnVuZSkpKTsKICAg
ICBpZiAocmVjb3Jkc1RvUHJ1bmUucHJlcGFyZSgpICE9IFNRTElURV9PSykgewogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6cHJ1bmVTdGF0aXN0aWNzSWZOZWVkZWQgZmFpbGVkLCBlcnJvciBtZXNzYWdl
OiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmUuaAppbmRleCAwZmIyNGFkMDY3MDQ1YzlhZDMxNGYyM2NmYjQ0
NDBkOGFmODQ1ZmVjLi41NmU3MzQ0NjVhYzliZjk1NmU3NjdmYzJlNDllYWQwZmY3OTAyOTJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUu
aApAQCAtMTA1LDYgKzEwNSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExhc3RTZWVuKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiwgU2Vjb25kcykgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CisgICAg
dm9pZCBjbGVhckRhdGFiYXNlQ29udGVudHMoKTsKICAgICBib29sIGluc2VydE9ic2VydmVkRG9t
YWluKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsKICAgICB2b2lkIGluc2VydERvbWFp
blJlbGF0aW9uc2hpcHMoY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwogICAgIGJvb2wg
aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCYsIHVuc2ln
bmVkIGRvbWFpbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4pOwpA
QCAtMTIwLDEyICsxMjEsMTMgQEAgcHJpdmF0ZToKIAogICAgIHN0cnVjdCBQcmV2YWxlbnREb21h
aW5EYXRhIHsKICAgICAgICAgdW5zaWduZWQgZG9tYWluSUQ7Ci0gICAgICAgIFJlZ2lzdHJhYmxl
RG9tYWluIHJlZ2lzdGVyYWJsZURvbWFpbjsKKyAgICAgICAgUmVnaXN0cmFibGVEb21haW4gcmVn
aXN0cmFibGVEb21haW47CiAgICAgICAgIFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rp
b25UaW1lOwogICAgICAgICBib29sIGhhZFVzZXJJbnRlcmFjdGlvbjsKICAgICAgICAgYm9vbCBn
cmFuZGZhdGhlcmVkOwogICAgIH07CiAgICAgVmVjdG9yPFByZXZhbGVudERvbWFpbkRhdGE+IHBy
ZXZhbGVudERvbWFpbnMoKSBjb25zdDsKKyAgICBib29sIGhhc0hhZFVuZXhwaXJlZFJlY2VudFVz
ZXJJbnRlcmFjdGlvbihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiwgT3BlcmF0aW5nRGF0ZXNX
aW5kb3cpOwogICAgIFZlY3Rvcjx1bnNpZ25lZD4gZmluZEV4cGlyZWRVc2VySW50ZXJhY3Rpb25z
KCkgY29uc3Q7CiAgICAgdm9pZCBjbGVhckV4cGlyZWRVc2VySW50ZXJhY3Rpb25zKCk7CiAgICAg
dm9pZCBjbGVhckdyYW5kZmF0aGVyaW5nKFZlY3Rvcjx1bnNpZ25lZD4mJik7CkBAIC0xMzQsNyAr
MTM2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVjbGFzc2lmeVJlc291cmNlcygpOwogICAg
IHN0cnVjdCBOb3RWZXJ5UHJldmFsZW50UmVzb3VyY2VzIHsKLSAgICAgICAgUmVnaXN0cmFibGVE
b21haW4gcmVnaXN0ZXJhYmxlRG9tYWluOworICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWdp
c3RyYWJsZURvbWFpbjsKICAgICAgICAgUmVzb3VyY2VMb2FkUHJldmFsZW5jZSBwcmV2YWxlbmNl
OwogICAgICAgICB1bnNpZ25lZCBzdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnQ7
CiAgICAgICAgIHVuc2lnbmVkIHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9Db3VudDsKQEAg
LTE1OCw3ICsxNjAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJ1bmVTdGF0aXN0aWNzSWZOZWVk
ZWQoKSBvdmVycmlkZTsKICAgICBlbnVtIGNsYXNzIEFkZGVkUmVjb3JkIHsgTm8sIFllcyB9Owog
ICAgIHN0ZDo6cGFpcjxBZGRlZFJlY29yZCwgdW5zaWduZWQ+IGVuc3VyZVJlc291cmNlU3RhdGlz
dGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7Ci0gICAg
Ym9vbCBzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvcihjb25zdCBQcmV2YWxlbnREb21haW5E
YXRhJiwgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSBjb25zdDsKKyAgICBib29s
IHNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9yKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEm
LCBib29sIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpOwogICAgIGJvb2wgc2hvdWxkUmVt
b3ZlQWxsQnV0Q29va2llc0Zvcihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiwgYm9vbCBzaG91
bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSBjb25zdDsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJl
Z2lzdHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlPj4gcmVnaXN0cmFibGVEb21haW5z
VG9SZW1vdmVXZWJzaXRlRGF0YUZvcigpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNEYXRhYmFzZVN0
b3JlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCBlNDg3ZmE2MWM1OGM1NWEyMzFmZWRm
OGFlOWNjMTM5NmViNjA3MjJmLi43YTRkYWY5MDE3YWRhMzUwOGNiZTI2NjYzM2M2N2JhYTY5NGI1
YzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNw
cApAQCAtMTU0LDExICsxNTQsMjMgQEAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoTmV0d29ya1Nlc3Npb24mIG4KICAgICA6IG1f
bmV0d29ya1Nlc3Npb24obWFrZVdlYWtQdHIobmV0d29ya1Nlc3Npb24pKQogICAgICwgbV9zdGF0
aXN0aWNzUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZSBQcm9jZXNzIERhdGEgUXVldWUiLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1
ZXVlOjpRT1M6OlV0aWxpdHkpKQogICAgICwgbV9kYWlseVRhc2tzVGltZXIoUnVuTG9vcDo6bWFp
bigpLCB0aGlzLCAmV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpwZXJmb3JtRGFpbHlU
YXNrcykKK3sKKyAgICBpbml0aWFsaXplU3RhdGlzdGljc1N0b3JlKFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaXNJVFBEYXRhYmFzZUVuYWJsZWQoKSwgcmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RpcmVjdG9yeS5pc29sYXRlZENvcHkoKSwgc2hvdWxkSW5jbHVkZUxvY2Fs
aG9zdCk7Cit9CisKK1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6fldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZSgpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOwotICAgIAotICAgIHBvc3RUYXNrKFt0aGlzLCByZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGlyZWN0b3J5ID0gcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeS5pc29sYXRlZENvcHko
KSwgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdF0gewotICAgICAgICBpZiAoUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pc0lUUERhdGFiYXNlRW5hYmxlZCgpKSB7CisgICAg
UkVMRUFTRV9BU1NFUlQoIW1fc3RhdGlzdGljc1N0b3JlKTsKKyAgICBSRUxFQVNFX0FTU0VSVCgh
bV9wZXJzaXN0ZW50U3RvcmFnZSk7Cit9CisKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjppbml0aWFsaXplU3RhdGlzdGljc1N0b3JlKGJvb2wgZGF0YWJhc2VFbmFibGVkLCBj
b25zdCBTdHJpbmcmIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIFNob3VsZEluY2x1
ZGVMb2NhbGhvc3Qgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCkKK3sKKyAgICBSRUxFQVNFX0FTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBwb3N0VGFzayhbdGhpcywgZGF0YWJhc2VFbmFi
bGVkID0gZGF0YWJhc2VFbmFibGVkLCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5ID0g
cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdF0g
eworICAgICAgICBpZiAoZGF0YWJhc2VFbmFibGVkKSB7CiAgICAgICAgICAgICBtX3N0YXRpc3Rp
Y3NTdG9yZSA9IG1ha2VVbmlxdWU8UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU+
KCp0aGlzLCBtX3N0YXRpc3RpY3NRdWV1ZSwgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCwgcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSk7CiAKICAgICAgICAgICAgIGF1dG8gbWVtb3J5U3Rv
cmUgPSBtYWtlVW5pcXVlPFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZT4oKnRoaXMs
IG1fc3RhdGlzdGljc1F1ZXVlLCBzaG91bGRJbmNsdWRlTG9jYWxob3N0KTsKQEAgLTE3NywxMyAr
MTg5LDYgQEAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUoTmV0d29ya1Nlc3Npb24mIG4KICAgICBtX2RhaWx5VGFza3NUaW1lci5z
dGFydFJlcGVhdGluZygyNF9oKTsKIH0KIAotV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
Ojp+V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKCkKLXsKLSAgICBSRUxFQVNFX0FTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgUkVMRUFTRV9BU1NFUlQoIW1fc3RhdGlzdGljc1N0
b3JlKTsKLSAgICBSRUxFQVNFX0FTU0VSVCghbV9wZXJzaXN0ZW50U3RvcmFnZSk7Ci19Ci0KIHZv
aWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpkaWREZXN0cm95TmV0d29ya1Nlc3Np
b24oKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKaW5kZXggOTM1MDVhYjVhZjg0N2RkZDY2ZWJh
NThmYjc2MjcxY2U3MjVjZDVmOS4uNDYyYzEyOTA2Nzc5Njg3MmY1OWFkN2E3NGZjYmJlMGNjZmM4
YzJkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApA
QCAtMTMxLDYgKzEzMSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFZlcnlQcmV2YWxlbnRS
ZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CisgICAgdm9pZCBzZXRVc2VJVFBEYXRhYmFzZShib29sIHZhbHVlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3Mo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKTsKICAgICB2b2lkIGlzUHJldmFsZW50
UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKICAgICB2b2lkIGlzVmVyeVByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CkBAIC0xODks
NiArMTkwLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0
ZWQoVmVjdG9yPFJlc291cmNlTG9hZFN0YXRpc3RpY3M+JiYpOwogICAgIHZvaWQgcmVxdWVzdFN0
b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihEb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MmJiwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgb3BlbmVySUQsIE9wZW5lckRvbWFpbiYmKTsKIAorICAgIHZv
aWQgaW5pdGlhbGl6ZVN0YXRpc3RpY3NTdG9yZShib29sLCBjb25zdCBTdHJpbmcmIHJlc291cmNl
TG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIFNob3VsZEluY2x1ZGVMb2NhbGhvc3QpOwogcHJpdmF0
ZToKICAgICBleHBsaWNpdCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoTmV0d29ya1Nl
c3Npb24mLCBjb25zdCBTdHJpbmcmLCBTaG91bGRJbmNsdWRlTG9jYWxob3N0KTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAwNDc1
YjNiY2FmNDJiNGVjYWQ0YzhmOTAxZWNmOTViMTA0YTkzY2JiLi4wNmIyZWI5YzM0NWRlN2VhMDll
NmUzNWUyZGE2YjgyMTNlZTcyZWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNzI0LDYgKzcyNCwxOCBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjpzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
UmVnaXN0cmFibAogICAgIH0KIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0VXNlSVRQRGF0
YWJhc2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHBhdGgsIGJvb2wg
dmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSB0aGlzLT5uZXR3b3JrU2Vzc2lvbihzZXNz
aW9uSUQpKSB7CisgICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0
d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKKyAgICAgICAgICAgIHJlc291
cmNlTG9hZFN0YXRpc3RpY3MtPmluaXRpYWxpemVTdGF0aXN0aWNzU3RvcmUodmFsdWUsIHBhdGgs
IFNob3VsZEluY2x1ZGVMb2NhbGhvc3Q6Olllcyk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgfQorfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpz
ZXRQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiBkb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSB0aGlzLT5uZXR3
b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKaW5kZXggNjM1NWRkOTdkNDIyYzM3OTQwNjUxYjE1YTJlZjcxMjM1
NWYyOTcwYi4uOWViZjQxZmQxYmJiODY3YjJmZTAyMzllN2VlNTI0ZGU1YWVjN2FkMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMjI0LDYg
KzIyNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGlzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihQ
QUw6OlNlc3Npb25JRCwgY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFp
biYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgaXNSZWdpc3Rl
cmVkQXNTdWJyZXNvdXJjZVVuZGVyKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdWJSZXNvdXJjZURv
bWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJik7CiAgICAgdm9pZCBzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklELCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYsIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0VXNlSVRQRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFN0cmluZyYgcGF0aCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICAgICB2b2lkIHNldE1heFN0YXRpc3RpY3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklELCB1
aW50NjRfdCBtYXhpbXVtRW50cnlDb3VudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBz
ZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMu
aW4KaW5kZXggYzExMDIwZjBlMTg1ZDc0NzJmZGFmM2E3ZjU0MGU0MTU4ZDIxOGQxMy4uZTYxMTFl
ZDM4ZGU5N2UxOWU5NWY3MDkwMWNmZjcwZWNmNTljNTQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0x
MTMsNiArMTEzLDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIg
ewogICAgIFN1Ym1pdFRlbGVtZXRyeShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFz
eW5jCiAgICAgU2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCiAgICAgU2V0R3Jh
bmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIHJlc291cmNlRG9tYWluLCBib29sIGlzR3JhbmRmYXRoZXJlZCkgLT4gKCkgQXN5bmMK
KyAgICBTZXRVc2VJVFBEYXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyBw
YXRoLCBib29sIHZhbHVlKSAtPiAoKSBBc3luYwogICAgIFNldEdyYW5kZmF0aGVyaW5nVGltZShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25kcykgLT4gKCkgQXN5bmMKICAg
ICBTZXRNYXhTdGF0aXN0aWNzRW50cmllcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2
NF90IG1heGltdW1FbnRyeUNvdW50KSAtPiAoKSBBc3luYwogICAgIFNldE1pbmltdW1UaW1lQmV0
d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMg
c2Vjb25kcykgLT4gKCkgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCmluZGV4IDE4N2U4MWEzODZjY2I1Nzk2
MzA3ODUxNmMwOTRhMTNiMjEyZGY4MjUuLmRlMWFmNDUzYzliYWE4NzU5YTdjOTFkZjY5NTFhMTVh
OGFjN2M5MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vi
c2l0ZURhdGFTdG9yZVJlZi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcApAQCAtMjY3LDYgKzI2NywxMyBAQCB2b2lkIFdLV2Vi
c2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmIGRhdGFTdG9yZQogI2VuZGlmCiB9CiAKK3ZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0VXNl
SVRQRGF0YWJhc2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdS
ZWYgcGF0aCwgYm9vbCB2YWx1ZSkKK3sKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQorICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPndlYnNpdGVEYXRhU3RvcmUo
KS5zZXRVc2VJVFBEYXRhYmFzZShXZWJLaXQ6OnRvSW1wbChwYXRoKS0+c3RyaW5nKCksIHZhbHVl
LCBbXSB7IH0pOworI2VuZGlmCit9CisKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlz
dGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0
YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3QpCiB7
CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKaW5kZXggZTQ5
ZGUyMGI4ZjI0YWYxYjcwNmU3Nzc3ODE3NTM0MjZlZDY4NDA5Ny4uMjk4MzlhMWRkMzUxYjk2NDZl
ZGM5OTY3YjZiZjk0ZDRiMTlmMDcyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKQEAgLTcwLDYgKzcwLDcgQEAgV0tf
RVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKFdLV2Vic2l0ZURhdGEKIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNl
dFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVS
ZWYsIFdLU3RyaW5nUmVmIGhvc3QsIGJvb2wgdmFsdWUpOwogdHlwZWRlZiB2b2lkICgqV0tXZWJz
aXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZEZ1bmN0aW9uKShib29sIGlzR3Jh
bmRmYXRoZXJlZCwgdm9pZCogZnVuY3Rpb25Db250ZXh0KTsKIFdLX0VYUE9SVCB2b2lkIFdLV2Vi
c2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgdm9pZCogY29udGV4dCwgV0tXZWJz
aXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZEZ1bmN0aW9uIGNhbGxiYWNrKTsK
K1dLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFVzZUlUUERhdGFiYXNlKFdLV2Vi
c2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIHBhdGgsIGJvb2wgdmFs
dWUpOwogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YmZy
YW1lVW5kZXJUb3BGcmFtZU9yaWdpbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVm
LCBXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3QpOwogV0tfRVhQT1JU
IHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BG
cmFtZU9yaWdpbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1Jl
ZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3QpOwogV0tfRVhQT1JUIHZvaWQgV0tXZWJz
aXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhXS1dl
YnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmlu
Z1JlZiBob3N0UmVkaXJlY3RlZFRvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDMxMTQ2YmY2MWNmNzNm
OGQwMmQzNjZmNDY3NGY1ZjU3OWNjNWExODcuLjQzNzU5ZjhjZDUzMzNjMzQzNzMwZTYwMWYzMjM4
MDU5NTg2MGNmZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtNzgyLDYgKzc4MiwxNSBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OnNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBSZWdpcwogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OlNldEdyYW5kZmF0aGVyZWQoc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiwgaXNH
cmFuZGZhdGhlcmVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCit2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OnNldFVzZUlUUERhdGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgY29uc3QgU3RyaW5nJiBwYXRoLCBib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgp
KSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0VXNl
SVRQRGF0YWJhc2Uoc2Vzc2lvbklELCBwYXRoLCB2YWx1ZSksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXF1ZXN0U3RvcmFnZUFj
Y2Vzc0NvbmZpcm0oV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvKiBwYWdlID0gV2ViUHJv
Y2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDgwZGZlNjBhMjQ4NDQz
ZGQ5NWQxYmU5MGE5ZjE0MWJjMWJiYzFiYzkuLjU3MGZmNWEyYzAyYzAxMzc3Njc5MzZmZGQ5N2I2
Mzk2YWExMjllZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0xMTYsNiArMTE2LDcgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIE9wdGlv
bmFsPFNlY29uZHM+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0
Q2FjaGVNYXhBZ2VDYXAoUEFMOjpTZXNzaW9uSUQsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0VXNlSVRQRGF0YWJhc2UoUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFN0cmluZyYgcGF0aCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNj
YW5uZWQoUEFMOjpTZXNzaW9uSUQsIGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBzZXRJc1J1bm5pbmdSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVzdChQQUw6OlNl
c3Npb25JRCwgYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNl
dE5vdGlmeVBhZ2VzV2hlblRlbGVtZXRyeVdhc0NhcHR1cmVkKFBBTDo6U2Vzc2lvbklELCBib29s
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCA5NWFl
ZGZlMTQzNzhlNmE1ODQyNGU3NWU1YjNkZTVhOGRmOGVjYjZmLi44YmJmMTc2YTY2ZTg3ZWU4NGE1
YWNjYmFjNWFhOGNiYmY3Y2Y1N2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMTY0MSw2ICsxNjQx
LDE4IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0R3JhbmRmYXRoZXJlZChjb25zdCBVUkwm
IHVybCwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIENvCiAgICAgfQogfQogCit2b2lkIFdlYnNpdGVE
YXRhU3RvcmU6OnNldFVzZUlUUERhdGFiYXNlKGNvbnN0IFN0cmluZyYgcGF0aCwgYm9vbCB2YWx1
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBhdXRvIGNhbGxiYWNrQWdncmVnYXRv
ciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKKworICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBwcm9jZXNzUG9vbHMoKSkgeworICAg
ICAgICBpZiAoYXV0byogcHJvY2VzcyA9IHByb2Nlc3NQb29sLT5uZXR3b3JrUHJvY2VzcygpKQor
ICAgICAgICAgICAgcHJvY2Vzcy0+c2V0VXNlSVRQRGF0YWJhc2UobV9zZXNzaW9uSUQsIHBhdGgs
IHZhbHVlLCBbY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYo
KV0geyB9KTsKKyAgICB9Cit9CisKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0Q3Jvc3NTaXRl
TG9hZFdpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoY29uc3QgVVJMJiBmcm9tVVJMLCBjb25z
dCBVUkwmIHRvVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCBm
NTJmYWRlZThjODZiYzFhZmM1ZDcxODhjZWFhMjUxZGFkYTlkYzYzLi43MjYzZWNiNTE4ZWIwZWM1
NDcxOGFmNWU2NTgzYjIxOTgwYjYxN2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC0xNTQsNiArMTU0LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9j
ZXNzaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzdWJtaXRUZWxl
bWV0cnkoKTsKICAgICB2b2lkIHNldEdyYW5kZmF0aGVyZWQoY29uc3QgVVJMJiwgYm9vbCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFVzZUlUUERhdGFiYXNlKGNv
bnN0IFN0cmluZyYgcGF0aCwgYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAg
ICB2b2lkIHNldEdyYW5kZmF0aGVyaW5nVGltZShTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0TGFzdFNlZW4oY29uc3QgVVJMJiwgU2Vjb25kcywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldE5vdGlmeVBhZ2VzV2hlbkRh
dGFSZWNvcmRzV2VyZVNjYW5uZWQoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzMWUw
OWFiYTk0NzJmY2IxZGNhMWNhNTU5ZDkxZTY1NDZiNzMwNDFjLi45NTQxNmRjYjgwYTY2ZTA3N2Mz
ZWRmOWI0ZGM0ZGZjYTJiY2Q0NDgyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTktMDktMTAgIEthdGhlcmluZSBD
aGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgTGF5
b3V0VGVzdHMgdXNpbmcgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBTUUxpdGUgYmFja2VuZCAoMTk1
NDIwKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1
NDIwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NDIxMzU1MT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBpbiBsb2dpYyB0byBzZW5kIGEg
bWVzc2FnZSBmcm9tIHRoZSBVSVByb2Nlc3MgdG8gdGhlIE5ldHdvcmsKKyAgICAgICAgUHJvY2Vz
cyB3aGljaCB3aWxsIGluaXRhbGl6ZSB0aGUgSVRQIERhdGFiYXNlIGJhY2tlbmQgdG8gYWxsb3cg
Zm9yCisgICAgICAgIGxheW91dCB0ZXN0aW5nLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RS
OjpUZXN0UnVubmVyOjpzZXRVc2VJVFBEYXRhYmFzZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpz
ZXRVc2VJVFBEYXRhYmFzZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgor
ICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2Fn
ZUZyb21JbmplY3RlZEJ1bmRsZSk6CisKIDIwMTktMDktMTAgIE1pY2hhZWwgQ2F0YW56YXJvICA8
bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJlbW92ZSBteXNl
bGYgZnJvbSB3YXRjaGxpc3RzCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCA0MmQzNjYw
MmQyNWNiOTllMmI4ZWE2OTBhMjEyNDRmMWIzMDVhMjQ2Li5kY2Y2NGM0OTFmOGFlYWQzNTNmNDMx
OWU5Zjg1OTYxYmU2MDlhYjMxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTMxMyw2
ICszMTMsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgYm9vbGVhbiBpc1N0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oRE9NU3RyaW5nIGhvc3ROYW1lKTsKICAgICB2b2lkIHNl
dFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKERPTVN0cmluZyBob3N0TmFtZSwgYm9vbGVhbiB2YWx1
ZSk7CiAgICAgYm9vbGVhbiBpc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKERPTVN0cmluZyBob3N0
TmFtZSk7CisgICAgdm9pZCBzZXRVc2VJVFBEYXRhYmFzZShib29sZWFuIHZhbHVlKTsKICAgICB2
b2lkIHNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oRE9NU3RyaW5nIGhv
c3ROYW1lLCBET01TdHJpbmcgdG9wRnJhbWVIb3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0
aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKERPTVN0cmluZyBob3N0TmFtZSwgRE9N
U3RyaW5nIHRvcEZyYW1lSG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RUbyhET01TdHJpbmcgaG9zdE5hbWUsIERPTVN0cmluZyBob3N0TmFt
ZVJlZGlyZWN0ZWRUbyk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCAwN2NhYzYwZTE2N2NjNTQ4NmI3MzAwMDhmZGIx
MjVlN2I1YTM2ZmUwLi4xNGUzNzliMjIyOGE0N2E0NWYxNWRhNTA0NDA1OTUwZjlkMDQ4OTdlIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAKQEAgLTE3MDAsNyArMTcwMCwxNSBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFN0YXRp
c3RpY3NHcmFuZGZhdGhlcmVkKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBib29sIHZhbHVlKQogICAg
IAogICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2lu
Z2xldG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSwg
bnVsbHB0cik7CiB9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0VXNlSVRQRGF0YWJhc2UoYm9vbCB2
YWx1ZSkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9w
dFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRVc2VJVFBEYXRhYmFzZSIpKTsK
KyAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IG1lc3NhZ2VCb2R5ID0gYWRvcHRXSyhXS0Jv
b2xlYW5DcmVhdGUodmFsdWUpKTsKICAgICAKKyAgICBXS0J1bmRsZVBvc3RTeW5jaHJvbm91c01l
c3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5n
ZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCksIG51bGxwdHIpOworfQorCiBib29sIFRlc3RSdW5uZXI6
OmlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoSlNTdHJpbmdSZWYgaG9zdE5hbWUpCiB7CiAgICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiSXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZCIpKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5o
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5k
ZXggMDlhZjNiZGYyNjMyYmY4ZjZkNTM1ZTc2M2JhNjljMGNjNDc3MjYwZi4uYTQyZmEwNTY0MmI0
MzFlYTFmZDM2MTdiMzcyNWE5YzlmODVmOTVmYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTQxMSw2ICs0MTEsNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oSlNTdHJp
bmdSZWYgaG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoSlNT
dHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpOwogICAgIGJvb2wgaXNTdGF0aXN0aWNzR3Jh
bmRmYXRoZXJlZChKU1N0cmluZ1JlZiBob3N0TmFtZSk7CisgICAgdm9pZCBzZXRVc2VJVFBEYXRh
YmFzZShib29sIHZhbHVlKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9w
RnJhbWVPcmlnaW4oSlNTdHJpbmdSZWYgaG9zdE5hbWUsIEpTU3RyaW5nUmVmIHRvcEZyYW1lSG9z
dE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9y
aWdpbihKU1N0cmluZ1JlZiBob3N0TmFtZSwgSlNTdHJpbmdSZWYgdG9wRnJhbWVIb3N0TmFtZSk7
CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKEpTU3Ry
aW5nUmVmIGhvc3ROYW1lLCBKU1N0cmluZ1JlZiBob3N0TmFtZVJlZGlyZWN0ZWRUbyk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDVjNjY4NDY5ZWVmZGY2
MDQ4NTc2MGRmMDI3ZDc0Mzk3MzhjNjZmZDkuLjZiYTE4MDM0ODc3NjQwZmM3YzdhNWNjZjk5YjU5
ZDZhNjY4OTJlODUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CkBAIC0zMzUwLDYgKzMzNTAsMTIgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6aXNTdGF0aXN0aWNz
R3JhbmRmYXRoZXJlZChXS1N0cmluZ1JlZiBob3N0KQogICAgIHJldHVybiBjb250ZXh0LnJlc3Vs
dDsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0VXNlSVRQRGF0YWJhc2UoYm9vbCB2YWx1
ZSkKK3sKKyAgICBhdXRvKiBkYXRhU3RvcmUgPSBXS0NvbnRleHRHZXRXZWJzaXRlRGF0YVN0b3Jl
KHBsYXRmb3JtQ29udGV4dCgpKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRVc2VJVFBEYXRh
YmFzZShkYXRhU3RvcmUsIHRvV0soU3RyaW5nOjpmcm9tVVRGOChnZXRlbnYoIkRVTVBSRU5ERVJU
UkVFX1RFTVAiKSkgKyBwYXRoU2VwYXJhdG9yICsgIlJlc291cmNlTG9hZFN0YXRpc3RpY3MiKS5n
ZXQoKSwgdmFsdWUpOworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzU3Vi
ZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIHRv
cEZyYW1lSG9zdCkKIHsKICAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzU3ViZnJh
bWVVbmRlclRvcEZyYW1lT3JpZ2luKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCks
IGhvc3QsIHRvcEZyYW1lSG9zdCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmgKaW5kZXggODM3ZTRhYjJjYjBlNjYxNzFjZGVmNDBiZGIxNDg2YzZlMGJkNzE0OC4uNjczZjJk
Yzg4M2U5NDI1YTBmYTU5YjgxYWNjOGYyMzM4Yzc1YTEwZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMjIyLDYgKzIyMiw3IEBAIHB1YmxpYzoKICAgICBib29s
IGlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihXS1N0cmluZ1JlZiBob3N0TmFtZSk7
CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1N0cmluZ1JlZiBob3N0TmFt
ZSwgYm9vbCB2YWx1ZSk7CiAgICAgYm9vbCBpc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLU3Ry
aW5nUmVmIGhvc3ROYW1lKTsKKyAgICB2b2lkIHNldFVzZUlUUERhdGFiYXNlKGJvb2wgdmFsdWUp
OwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihXS1N0
cmluZ1JlZiBob3N0TmFtZSwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0TmFtZSk7CiAgICAgdm9p
ZCBzZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKFdLU3RyaW5nUmVm
IGhvc3ROYW1lLCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3ROYW1lKTsKICAgICB2b2lkIHNldFN0
YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oV0tTdHJpbmdSZWYgaG9zdE5hbWUs
IFdLU3RyaW5nUmVmIGhvc3ROYW1lUmVkaXJlY3RlZFRvKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggNjA3ZTViYmRiNGIwNTZlYjZiNWI2NGViMDAxN2Ri
ODA1YzA3YTk5Mi4uMzA3ZDJhYmQxZDYxYjdhZjNmMTU2Nzg5YTA4M2NlZWUzYjQ0MDVjNiAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTEyNDEsNiArMTI0
MSwxNCBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZl
U3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICBXS1JldGFpblB0cjxXS1R5
cGVSZWY+IHJlc3VsdCA9IGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKGlzR3JhbmRmYXRoZXJlZCkp
OwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KKworICAgIGlmIChXS1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0VXNlSVRQRGF0YWJhc2UiKSkgeworICAg
ICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLQm9vbGVhbkdldFR5cGVJ
RCgpKTsKKworICAgICAgICBXS0Jvb2xlYW5SZWYgdmFsdWUgPSBzdGF0aWNfY2FzdDxXS0Jvb2xl
YW5SZWY+KG1lc3NhZ2VCb2R5KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigp
LnNldFVzZUlUUERhdGFiYXNlKFdLQm9vbGVhbkdldFZhbHVlKHZhbHVlKSk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIH0KICAgICAKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4
Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVP
cmlnaW4iKSkgewogICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdL
RGljdGlvbmFyeUdldFR5cGVJRCgpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhMjVjNDUyZjVlZjc5ZWJmMTRkYTY0NmFl
YTM3ZmVlZDJmMWY0MDJiLi5lOTJlZWUzMGI4MmMyM2RlMmU3MjUzYzA5YWQ0M2FhOGY0MTA4ZWM2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUzIEBACisyMDE5LTA5LTEwICBLYXRoZXJpbmUgQ2hlbmV5ICA8
a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIExheW91dFRlc3Rz
IHVzaW5nIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgU1FMaXRlIGJhY2tlbmQgKDE5NTQyMCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTQyMAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNTQyMTM1NTE+CisKKyAgICAgICAgUmV2aWVhZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSBmbGFnIHRvIGFsbCBJVFAgdGVzdHMgdG8g
ZW5hYmxlIHRoZSBJVFAgZGF0YWJhc2UgYmFja2VuZCB0bworICAgICAgICBhbGxvdyBmb3IgdGVz
dGluZyBmdW5jdGlvbmFsaXR5IGFnYWluc3QgdGhlIG1lbW9yeSBzdG9yZS4gVGVzdHMgd2VyZQor
ICAgICAgICBub3QgY3JlYXRlZCBmb3IgdGVsZW1ldHJ5LWdlbmVyYXRpb24uaHRtbCwKKyAgICAg
ICAgbG9nLWNyb3NzLXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sLCBvcgorICAg
ICAgICB3ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS1uYXZpZ2F0ZWQtdG8td2l0aC1saW5r
LWRlY29yYXRpb24uaHRtbCwKKyAgICAgICAgYmVjYXVzZSB0aGVzZSByZWx5IG9uIGZ1bmN0aW9u
cyBub3QgeWV0IGltcGxlbWVudGVkIGluIHRoZSBJVFAgZGF0YWJhc2UuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgQWRkZWQgdGVzdCBleHBlY3Rh
dGlvbnMgdG8gc2tpcCBkYXRhYmFzZSB0ZXN0cyB3aGljaCBkbyBub3Qgd29yayBpbgorICAgICAg
ICBpb3MgYmVjYXVzZSBvZiByZWxpYW5jZSBvbiBFdmVudFNlbmRlci5rZXlkb3duKCkgd2hpY2gg
aXMgbm90IAorICAgICAgICBzdXBwb3J0ZWQgb24gaU9TIGFuZCBhbHNvIHRob3NlIHdoaWNoIHVz
ZSBVSUhlbHBlci5hY3RpdmF0ZUF0KCkgd2hpY2gKKyAgICAgICAgZG9lcyBub3QgcHJvZHVjZSBh
IHVzZXIgZ2VzdHVyZSBjYXB0dXJlZCBieSBJVFAgaW4gaU9TLgorCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRh
YmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Jsb2NraW5n
LWluLXdlYi13b3JrZXItc2NyaXB0LWltcG9ydC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1p
bi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZv
ci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1hZ2Ut
Zm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2ll
LXNldC1pbi1qcy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQt
bGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1z
aXRlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1s
aW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nh
cHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJv
bS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2ll
LXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJl
c291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1p
bi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNl
LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5r
LXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1s
aWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxl
bnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1q
cy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1s
aW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3Mt
ZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVu
ZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1w
cmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFi
YXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVy
LXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2
YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJh
c2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVl
LXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50
LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFi
YXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1m
cmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNl
ZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0
YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNl
LXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJl
dmFsZW50LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3Vy
Y2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRh
dGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVl
LXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRp
cmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10
b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRh
dGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1y
ZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12
ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0
YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFzZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFy
LWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2Uu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJh
c2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUtY29va2llcy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxl
dGUtc2NyaXB0LWFjY2Vzc2libGUtY29va2llcy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1s
ZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10
b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWNhcHR1cmUtc3Rh
dGlzdGljcy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1u
b3QtY2FwdHVyZS1zdGF0aXN0aWNzLWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9kby1ub3QtcmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rv
LW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gt
c2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9uLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXBy
ZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVy
LWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1k
YXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgt
bGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5hYmxlLWRlYnVn
LW1vZGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5hYmxlLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5k
ZmF0aGVyaW5nLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24t
cHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24t
ZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1h
LXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNv
dXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1kYXRhYmFz
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2Fs
aG9zdC10by1pcC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxo
b3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24t
c2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQt
bmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1s
b2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0
aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxo
b3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1u
b24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0
LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3Qt
aXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZy
YW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9j
YWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0
aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3Qt
ZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Bp
bmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFu
ZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVk
LWtleWRvd24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1k
YXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0
YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFz
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0LWRhdGFi
YXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGlt
ZW91dC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlv
bi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVy
YWN0aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BydW5l
LXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9j
YWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3Qt
aXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
YW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVj
dC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3Rp
bmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxo
b3N0LXRvLWlwLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFi
YXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Nh
bmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAt
dG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlm
cmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlw
LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1s
b2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVu
dC1yZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0b20tcHJl
dmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRv
LW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1y
ZWRpcmVjdHMtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50
LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRv
LW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFiYXNlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0
Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50
LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3Jp
Z2luLXN1Yi1mcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3Nz
LW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRl
ZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2Vy
LWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9mLXRp
bWUtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRh
LXJlbW92YWwtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRl
ci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKwogMjAxOS0wOS0x
MCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIE1l
ZGlhU3RyZWFtUHJpdmF0ZTo6c2NoZWR1bGVEZWZlcnJlZFRhc2sKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8t
cmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWZlZjljZDI2ZTg2MWIwZmRiMTRmNWRjMGIwYTE2MDBm
NGU4ZGFkNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNjMgQEAKK1Rlc3RzIHRoYXQgYmxvY2tpbmcgaXMgYWRkZWQgbWlk
LWZsaWdodCBpbiByZWRpcmVjdHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAgCisKKy0t
LS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUg
Zmlyc3QtcGFydHkgY29va2llLgorUmVjZWl2ZWQgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29v
a2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3BhcnRpdGlvbmVkQ29va2llJy4K
K0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQYXJ0eUNvb2tpZT12YWx1ZQorCist
LS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUyLS0+JworLS0tLS0tLS0KK1JlZGlyZWN0IGNhc2Ug
MSwgc2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLgorUmVjZWl2ZWQgY29va2llIG5h
bWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3Bh
cnRpdGlvbmVkQ29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQYXJ0
eUNvb2tpZT12YWx1ZQorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUzLS0+JworLS0tLS0t
LS0KK1Nob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5h
bWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3Bh
cnRpdGlvbmVkQ29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0t
LS0KK0ZyYW1lOiAnPCEtLWZyYW1lNC0tPicKKy0tLS0tLS0tCitSZWRpcmVjdCBjYXNlIDIsIHNo
b3VsZCByZWNlaXZlIG5vIGNvb2tpZS4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2Zp
cnN0UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9u
ZWRDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJh
bWU6ICc8IS0tZnJhbWU1LS0+JworLS0tLS0tLS0KK1RyeSB0byBzZXQgdGhpcmQtcGFydHkgY29v
a2llIGluIGJsb2NrZWQgbW9kZS4KKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWU2LS0+
JworLS0tLS0tLS0KK0FmdGVyIGF0dGVtcHRlZCBjb29raWUgY3JlYXRpb24sIHNob3VsZCByZWNl
aXZlIG5vIGNvb2tpZS4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlD
b29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9uZWRDb29raWUn
LgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0t
ZnJhbWU3LS0+JworLS0tLS0tLS0KK1JlZGlyZWN0IGNhc2UgMywgYWZ0ZXIgYXR0ZW1wdGVkIGNv
b2tpZSBjcmVhdGlvbiwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llLgorRGlkIG5vdCByZWNlaXZl
IGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2ll
IG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0
LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDFkNjNhNTE2ODc4YTA4MzhkMjk4ZTc2M2UwM2Qy
ZWI4NDZhMDk5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2UuaHRt
bApAQCAtMCwwICsxLDEwNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8
aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAg
IGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGJsb2NraW5nIGlzIGFkZGVkIG1pZC1mbGlnaHQgaW4g
cmVkaXJlY3RzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgcGFy
dGl0aW9uSG9zdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdp
biA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHJlc291cmNlUGF0aCA9ICIv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0IHRoaXJkUGFydHlC
YXNlVXJsID0gdGhpcmRQYXJ0eU9yaWdpbiArIHJlc291cmNlUGF0aDsKKyAgICBjb25zdCBmaXJz
dFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRo
VG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBh
cnR5Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHBhcnRpdGlvbmVkQ29v
a2llTmFtZSA9ICJwYXJ0aXRpb25lZENvb2tpZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0UGFy
dGl0aW9uZWRDb29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIHBhcnRpdGlvbmVkQ29v
a2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHJldHVyblVybCA9ICJodHRwOi8v
IiArIHBhcnRpdGlvbkhvc3QgKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5n
LXRvLXJlZGlyZWN0Lmh0bWwiOworICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tpZXMgPSAiL2dl
dC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiJm5hbWUyPSIg
KyBwYXJ0aXRpb25lZENvb2tpZU5hbWU7CisgICAgY29uc3QgcmVkaXJlY3RDaGFpblVybCA9ICJo
dHRwOi8vIiArIHBhcnRpdGlvbkhvc3QgKyByZXNvdXJjZVBhdGggKyAiL3JlZGlyZWN0LnBocD9y
ZWRpcmVjdFRvPSIgKyB0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXM7CisK
KyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBj
b25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAg
IGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAg
ICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAg
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7
CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgIC8vIFNldCBmaXJz
dC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5s
b2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5
Q29va2llICsgIiMiICsgcmV0dXJuVXJsICsgIiNzdGVwMiI7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAgICAgICAgIC8vIENoZWNr
IHRoYXQgdGhlIGNvb2tpZSBnZXRzIHNlbnQgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEg
c2luY2UgbG9jYWxob3N0IGlzIG5vdCBwcmV2YWxlbnQuCisgICAgICAgICAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0
aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxk
IHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAzIjoKKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA0IjsKKyAgICAgICAgICAgICAgICAvLyBMb2FkIGFu
IGlmcmFtZSBpbiBhIHJlZGlyZWN0IGNoYWluIHRoYXQgc3RhcnRzIHdpdGggMTI3LjAuMC4xIGFu
ZCBlbmRzIHdpdGggbG9jYWxob3N0LiBFeHBlY3QgYSBjb29raWUgZm9yIGxvY2FsaG9zdC4KKyAg
ICAgICAgICAgICAgICBvcGVuSWZyYW1lKHJlZGlyZWN0Q2hhaW5VcmwgKyAiJm1lc3NhZ2U9UmVk
aXJlY3QgY2FzZSAxLCBzaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwgcnVuVGVz
dCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgor
ICAgICAgICAgICAgICAgIC8vIFNldCBsb2NhbGhvc3QgYXMgcHJldmFsZW50IHRvIHB1dCBpdCBp
biB0aGUgYmxvY2tpbmcgY2F0ZWdvcnkuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaGFzaCA9ICJzdGVwNSI7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxv
Y2tpbmcocnVuVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDUiOgorICAgICAgICAgICAgICAgIC8vIENoZWNr
IHRoYXQgbm8gY29va2llIGdldHMgc2VudCBmb3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMSBz
aW5jZSBsb2NhbGhvc3QncyBjb29raWVzIGFyZSBibG9ja2VkLgorICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDYiOworICAgICAgICAgICAgICAgIG9wZW5JZnJh
bWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgICImbWVzc2FnZT1T
aG91bGQgcmVjZWl2ZSBubyBjb29raWVzLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA2IjoKKyAgICAgICAgICAgICAgICAvLyBMb2Fk
IGFuIGlmcmFtZSBpbiBhIHJlZGlyZWN0IGNoYWluIHRoYXQgc3RhcnRzIHdpdGggMTI3LjAuMC4x
IGFuZCBlbmRzIHdpdGggbG9jYWxob3N0LiBFeHBlY3Qgbm8gY29va2llIGZvciBsb2NhbGhvc3Qu
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNyI7CisgICAg
ICAgICAgICAgICAgb3BlbklmcmFtZShyZWRpcmVjdENoYWluVXJsICsgIiZtZXNzYWdlPVJlZGly
ZWN0IGNhc2UgMiwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llLiIsIHJ1blRlc3QpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA3IjoKKyAgICAgICAgICAg
ICAgICAvLyBUcnkgdG8gc2V0IGNvb2tpZSBmb3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMS4K
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA4IjsKKyAgICAg
ICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0UGFy
dGl0aW9uZWRDb29raWUgKyAiJm1lc3NhZ2U9VHJ5IHRvIHNldCB0aGlyZC1wYXJ0eSBjb29raWUg
aW4gYmxvY2tlZCBtb2RlLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSAiI3N0ZXA4IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IG5v
IGNvb2tpZSBnZXRzIHNlbnQgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEgc2luY2UgbG9j
YWxob3N0J3MgY29va2llcyBhcmUgYmxvY2tlZC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5s
b2NhdGlvbi5oYXNoID0gInN0ZXA5IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJk
UGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICAiJm1lc3NhZ2U9QWZ0ZXIgYXR0
ZW1wdGVkIGNvb2tpZSBjcmVhdGlvbiwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llLiIsIHJ1blRl
c3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA5IjoK
KyAgICAgICAgICAgICAgICAvLyBMb2FkIGFuIGlmcmFtZSBpbiBhIHJlZGlyZWN0IGNoYWluIHRo
YXQgc3RhcnRzIHdpdGggMTI3LjAuMC4xIGFuZCBlbmRzIHdpdGggbG9jYWxob3N0LiBFeHBlY3Qg
bm8gY29va2llIGZvciBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaGFzaCA9ICJzdGVwMTAiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUocmVkaXJlY3RD
aGFpblVybCArICImbWVzc2FnZT1SZWRpcmVjdCBjYXNlIDMsIGFmdGVyIGF0dGVtcHRlZCBjb29r
aWUgY3JlYXRpb24sIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMTAiOgorICAgICAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRp
b24uaGFzaCA9PT0gIiIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0
cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAg
ICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGly
ZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2Fz
IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydHMu
Iik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAg
ICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAgICAgICBy
dW5UZXN0KCk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRlc3QoKTsK
KyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29y
a2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Jsb2NraW5nLWluLXdlYi13b3JrZXItc2Ny
aXB0LWltcG9ydC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWNiNzk5NDNlZDhi
NDlhODQxYmQxMjliM2Y1YWNhNmUyYTNiMjFiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29y
a2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAK
K1Rlc3QgZm9yIGNvb2tpZSBibG9ja2luZyB3aGVuIHdlYiB3b3JrZXJzIGltcG9ydCBjcm9zcy1z
aXRlIHNjcmlwdHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIERpZCBy
ZWNlaXZlIGZpcnN0UGFydHlDb29raWUgPT0gdmFsdWUKK1BBU1MgRGlkIG5vdCByZWNlaXZlIGNv
b2tpZSBuYW1lZCBmaXJzdFBhcnR5Q29va2llCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+
JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVk
IGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5j
b29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNj
cmlwdC1pbXBvcnQtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2MzYzdhMjkyMmRlN2NiMjQ3NmZjZDAxNDAxZTc5OWQ4
NGQwMGViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2Jsb2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0LWltcG9ydC1kYXRh
YmFzZS5odG1sCkBAIC0wLDAgKzEsODggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0i
ZW4iPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IGZv
ciBjb29raWUgYmxvY2tpbmcgd2hlbiB3ZWIgd29ya2VycyBpbXBvcnQgY3Jvc3Mtc2l0ZSBzY3Jp
cHRzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgcGFydGl0aW9u
SG9zdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhp
cmRQYXJ0eU9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMiOworICAg
IGNvbnN0IGZpcnN0UGFydHlDb29raWVOYW1lID0gImZpcnN0UGFydHlDb29raWUiOworICAgIGNv
bnN0IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9
IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgY29uc3QgcmV0
dXJuVXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Js
b2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0LWltcG9ydC5odG1sIjsKKyAgICBjb25zdCBzdWJQ
YXRoVG9HZXRDb29raWVzID0gIi9nZXQtY29va2llcy5waHA/bmFtZTE9IiArIGZpcnN0UGFydHlD
b29raWVOYW1lOworCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhhbmRsZXIp
IHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFt
ZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9hZEhhbmRs
ZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsKKyAgICAg
ICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIH0K
KworICAgIGxldCByZWNlaXZlZE1lc3NhZ2VzID0gMDsKKyAgICBmdW5jdGlvbiByZWNlaXZlTWVz
c2FnZShldmVudCkgeworICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09
IC0xKQorICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwg
IiIpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJl
cGxhY2UoIlBBU1MgIiwgIiIpKTsKKworICAgICAgICArK3JlY2VpdmVkTWVzc2FnZXM7CisgICAg
ICAgIGlmIChyZWNlaXZlZE1lc3NhZ2VzID49IDIpCisgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBydW5U
ZXN0KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNo
IChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFzZVVy
bCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyByZXR1cm5VcmwgKyAiI3N0
ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMyI7CisgICAg
ICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENv
b2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLiIsIHJ1
blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAz
IjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA0IjsKKyAg
ICAgICAgICAgICAgICBsZXQgdzEgPSBuZXcgV29ya2VyKCJyZXNvdXJjZXMvd29ya2VyLWltcG9y
dGluZy1sb2NhbGhvc3Qtc2NyaXB0LmpzIik7CisgICAgICAgICAgICAgICAgdzEub25tZXNzYWdl
ID0gcmVjZWl2ZU1lc3NhZ2U7CisgICAgICAgICAgICAgICAgdzEucG9zdE1lc3NhZ2UoInNob3Vs
ZFJlY2VpdmVDb29raWVzPXRydWUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFz
aCA9ICJzdGVwNSI7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmco
cnVuVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlICIjc3RlcDUiOgorICAgICAgICAgICAgICAgIGxldCB3MiA9IG5ldyBX
b3JrZXIoInJlc291cmNlcy93b3JrZXItaW1wb3J0aW5nLWxvY2FsaG9zdC1zY3JpcHQuanMiKTsK
KyAgICAgICAgICAgICAgICB3Mi5vbm1lc3NhZ2UgPSByZWNlaXZlTWVzc2FnZTsKKyAgICAgICAg
ICAgICAgICB3Mi5wb3N0TWVzc2FnZSgic2hvdWxkTm90UmVjZWl2ZUNvb2tpZXMiKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1bWVudC5s
b2NhdGlvbi5ob3N0ID09PSBwYXJ0aXRpb25Ib3N0ICYmIGRvY3VtZW50LmxvY2F0aW9uLmhhc2gg
PT09ICIiICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9u
Lmhhc2ggPSAic3RlcDEiOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNB
c1RleHQoKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
IkxvY2FsaG9zdCB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRo
ZSB0ZXN0IHN0YXJ0cy4iKTsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgfSk7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgcnVuVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjY2U1YWExYzM2YTk0ZDU1MGJkZTIyOWFkZTQ0
NmZmODM1NWMxY2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1hZ2UtZm9yLXByZXZhbGVudC1yZXNv
dXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMgdGhhdCBj
YWNoZSBtYXgtYWdlIGlzIGNhcHBlZCBmb3IgcHJldmFsZW50IHJlc291cmNlcy4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgbG9hZGVkVXJsIGlzICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/
dmFsdWU9MTIzNCIKK1BBU1MgbG9hZGVkVXJsIGlzICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9NDMyMSIK
K1BBU1MgbG9hZGVkVXJsIGlzICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9IgorUEFTUyBsb2FkZWRVcmwg
aXMgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNl
cy9lY2hvLXF1ZXJ5LnBocD92YWx1ZT0iCitQQVNTIGxvYWRlZFVybCBpcyAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhw
P3ZhbHVlPSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2FwLWNhY2hlLW1heC1hZ2UtZm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1j
YWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yNjRhNDUxOGE4MzM5NDYwOTA3MzMzNzNmMWY2MDIxNjNhYWI5MzJhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nh
cC1jYWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApAQCAt
MCwwICsxLDExMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8dGl0bGU+VGVzdHMg
Zm9yIENhcHBlZCBDYWNoZSBNYXgtQWdlPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBjYWNoZSBtYXgtYWdlIGlzIGNhcHBlZCBm
b3IgcHJldmFsZW50IHJlc291cmNlcy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
ICAgIHZhciBsb2FkZWRVcmw7CisgICAgZnVuY3Rpb24gZmlyc3RGZXRjaCgpIHsKKyAgICAgICAg
Ly8gVGhpcyBzaG91bGQgY3JlYXRlIGEgY2FwcGVkIGNhY2hlIGVudHJ5LgorICAgICAgICBmZXRj
aCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2Vz
L2NhY2hlZC1wZXJtYW5lbnQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICBjYWNoZTogInJlbG9hZCIsCisgICAgICAgICAgICAgICAgaGVhZGVyczogeworICAg
ICAgICAgICAgICAgICAgICAiWC1XZWJLaXQiOiAiMTIzNCIsCisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfQorICAgICAgICApLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAg
ICAgICAgIGxvYWRlZFVybCA9IHJlc3BvbnNlLnVybDsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygibG9hZGVkVXJsIiwgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXF1ZXJ5LnBocD92YWx1ZT0xMjM0Iik7CisgICAg
ICAgICAgICBzZWNvbmRGZXRjaCgpOworICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikg
eworICAgICAgICAgICAgdGVzdEZhaWxlZChlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0pOworICAgIH0K
KworICAgIGZ1bmN0aW9uIHNlY29uZEZldGNoKCkgeworICAgICAgICAvLyBUaGlzIHNob3VsZCBu
b3QgdHJpZ2dlciBhIHN1Y2Nlc3NmdWwgY2FjaGUgaGl0IGFuZCBpbnN0ZWFkIGNyZWF0ZSBhbm90
aGVyIGNhcHBlZCBjYWNoZSBlbnRyeS4KKyAgICAgICAgZmV0Y2goImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9jYWNoZWQtcGVybWFuZW50LXJl
ZGlyZWN0LnBocCIsCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY2FjaGU6ICJmb3Jj
ZS1jYWNoZSIsCisgICAgICAgICAgICAgICAgaGVhZGVyczogeworICAgICAgICAgICAgICAgICAg
ICAiWC1XZWJLaXQiOiAiNDMyMSIsCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
ICAgICAgICApLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGxvYWRlZFVy
bCA9IHJlc3BvbnNlLnVybDsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibG9h
ZGVkVXJsIiwgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jl
c291cmNlcy9lY2hvLXF1ZXJ5LnBocD92YWx1ZT00MzIxIik7CisgICAgICAgICAgICB0aGlyZEZl
dGNoKCk7CisgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgICAgICB0
ZXN0RmFpbGVkKGVycm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
dGhpcmRGZXRjaCgpIHsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgbm90IHRyaWdnZXIgYSBzdWNj
ZXNzZnVsIGNhY2hlIGhpdCBhbmQgaW5zdGVhZCBjcmVhdGUgYW5vdGhlciBjYXBwZWQgY2FjaGUg
ZW50cnkuCisgICAgICAgIGZldGNoKCJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9yZXNvdXJjZXMvY2FjaGVkLXBlcm1hbmVudC1yZWRpcmVjdC5waHAiLAorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhY2hlOiAiZm9yY2UtY2FjaGUiLAorICAgICAg
ICAgICAgfQorICAgICAgICApLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAg
IGxvYWRlZFVybCA9IHJlc3BvbnNlLnVybDsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygibG9hZGVkVXJsIiwgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3Jlc291cmNlcy9lY2hvLXF1ZXJ5LnBocD92YWx1ZT0iKTsKKyAgICAgICAgICAgIGZv
dXJ0aEZldGNoKCk7CisgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKGVycm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gZm91cnRoRmV0Y2goKSB7CisgICAgICAgIC8vIFRoaXMgc2hvdWxkIG5vdCB0cmlnZ2Vy
IGEgc3VjY2Vzc2Z1bCBjYWNoZSBoaXQgYnV0IGNsZWFyIGNhcHBpbmcuCisgICAgICAgIGZldGNo
KCJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMv
Y2FjaGVkLXBlcm1hbmVudC1yZWRpcmVjdC5waHAiLAorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIGNhY2hlOiAiZm9yY2UtY2FjaGUiLAorICAgICAgICAgICAgfQorICAgICAgICApLnRo
ZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGxvYWRlZFVybCA9IHJlc3BvbnNl
LnVybDsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibG9hZGVkVXJsIiwgImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hv
LXF1ZXJ5LnBocD92YWx1ZT0iKTsKKyAgICAgICAgICAgIGZpZnRoRmV0Y2goKTsKKyAgICAgICAg
fSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoZXJyb3Iu
bWVzc2FnZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rl
c3QpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaWZ0aEZldGNoKCkgewor
ICAgICAgICAvLyBUaGlzIHNob3VsZCB0cmlnZ2VyIGEgcmVndWxhciwgc3VjY2Vzc2Z1bCBjYWNo
ZSBoaXQuCisgICAgICAgIGZldGNoKCJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9yZXNvdXJjZXMvY2FjaGVkLXBlcm1hbmVudC1yZWRpcmVjdC5waHAiLAorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsKKyAgICAgICAgICAgICAgICAg
ICAgIlgtV2ViS2l0IjogIjEyMzQiLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0K
KyAgICAgICAgKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBsb2FkZWRV
cmwgPSByZXNwb25zZS51cmw7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxv
YWRlZFVybCIsICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9y
ZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9Iik7CisgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihl
cnJvcikgeworICAgICAgICAgICAgdGVzdEZhaWxlZChlcnJvci5tZXNzYWdlKTsKKyAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0pOwor
ICAgIH0KKyAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgIHNldEVu
YWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IikpCisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2FzIGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJl
c291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydGVkLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc0NhY2hlTWF4QWdlQ2FwKDApOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIsIHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxv
Y2tpbmcoZmlyc3RGZXRjaCk7CisgICAgICAgIH0pOworICAgIH0pOworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4NDYyMGQ2ZDMzMTIxMTY0NTFhOGE1OWM4NGJlNjE3NjRj
NDZlMzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitDaGVjayB0aGF0IGNvb2tpZXMgY3Jl
YXRlZCBieSBKYXZhU2NyaXB0IHdpdGggbWF4LWFnZSBvciBleHBpcnkgbG9uZ2VyIHRoYW4gYSB3
ZWVrIGdldCBjYXBwZWQgdG8gYSB3ZWVrLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1v
cmUgdGhhbiAxNzI4MzAgc2Vjb25kcy4KK1BBU1MgVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMg
ZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA2MDQ4MzAgc2Vjb25kcy4KK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1l
LWZvci1jb29raWUtc2V0LWluLWpzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0
LWluLWpzLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTJmZmQwNDFhZTMyZGUyODYwM2I4MTkx
MDMwY2U4YTMwNWQyNjI2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQt
aW4tanMtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDgzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2Nvb2tpZXMvcmVzb3VyY2VzL2Nvb2tp
ZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAg
IGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IHdp
dGggbWF4LWFnZSBvciBleHBpcnkgbG9uZ2VyIHRoYW4gYSB3ZWVrIGdldCBjYXBwZWQgdG8gYSB3
ZWVrLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UodHJ1ZSk7CisKKyAgICBpZiAoaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5h
bHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisKKyAgICBsZXQgcGFz
c2VkVGVzdHMgPSAwOworICAgIGZ1bmN0aW9uIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVB
ZnRlcihjb29raWVEYXRhLCBtYXhBZ2VJblNlY29uZHMpIHsKKyAgICAgICAgbGV0IG5vdyA9IG5l
dyBEYXRlKCk7CisgICAgICAgIGxldCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPSBub3cu
Z2V0VGltZSgpICsgKG1heEFnZUluU2Vjb25kcyAqIDEwMDApOworCisgICAgICAgIGlmIChtYXhF
eHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPiBjb29raWVEYXRhWyJleHBpcmVzIl0pCisgICAgICAg
ICAgICArK3Bhc3NlZFRlc3RzOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJDb29raWUgbmFtZWQgIiArIGNvb2tpZURhdGFbIm5hbWUiXSArICIgZXhwaXJlcyBpbiBtb3Jl
IHRoYW4gIiArIG1heEFnZUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICB9CisKKyAgICBj
b25zdCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIDI0ICogNjAgKiA2MDsKKyAgICBjb25zdCBzaG9y
dExpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogInNob3J0TGl2ZWRDb29raWVNYXhBZ2UiLCBs
aWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d29EYXlzSW5TZWNvbmRzICsgIjsiIH07CisgICAgZG9j
dW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIg
KyBzaG9ydExpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgY29u
c3QgdHdvRGF5c0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdv
RGF5c0luU2Vjb25kcyk7CisgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5h
bWUgOiAic2hvcnRMaXZlZENvb2tpZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0
d29EYXlzQXNFeHBpcmVzRGF0ZSArICI7IiB9OworICAgIGRvY3VtZW50LmNvb2tpZSA9IHNob3J0
TGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVF
eHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgY29uc3Qgb25lV2Vla0luU2Vjb25k
cyA9IDcgKiAyNCAqIDYwICogNjA7CisgICAgY29uc3QgdHdvV2Vla3NJblNlY29uZHMgPSAyICog
b25lV2Vla0luU2Vjb25kczsKKyAgICBjb25zdCBsb25nTGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5h
bWUgOiAibG9uZ0xpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdv
V2Vla3NJblNlY29uZHMgKyAiOyIgfTsKKyAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRD
b29raWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llTWF4QWdlLmxp
ZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgY29uc3QgdHdvV2Vla3NBc0V4cGlyZXNEYXRlID0g
Y3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3b1dlZWtzSW5TZWNvbmRzKTsKKyAgICBjb25z
dCBsb25nTGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZUV4cGly
ZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d29XZWVrc0FzRXhwaXJlc0RhdGUgKyAiOyIg
fTsKKyAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAi
PWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBhdGg9LyI7
CisKKyAgICBjb25zdCBvdmVyVHdvRGF5c0luU2Vjb25kcyA9IHR3b0RheXNJblNlY29uZHMgKyAz
MDsKKyAgICBjb25zdCBvdmVyT25lV2Vla0luU2Vjb25kcyA9IG9uZVdlZWtJblNlY29uZHMgKyAz
MDsKKyAgICBpZiAoaW50ZXJuYWxzKSB7CisgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxz
LmdldENvb2tpZXMoKTsKKyAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoIk5vIGNvb2tpZXMgZm91bmQuIik7CisgICAgICAgIGZvciAobGV0IGNvb2tp
ZSBvZiBjb29raWVzKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAg
ICAgICAgICAgICAgY2FzZSBzaG9ydExpdmVkQ29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAg
ICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJU
d29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgY2FzZSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAg
ICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdvRGF5
c0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IGNhc2UgbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgIGNo
ZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVXZWVrSW5TZWNv
bmRzKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBs
b25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhh
dENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVXZWVrSW5TZWNvbmRzKTsK
KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwor
ICAgICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAgaWYgKHBh
c3NlZFRlc3RzID09PSA0KSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIHNob3J0
LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3ZlclR3b0Rh
eXNJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUg
dHdvIGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBv
dmVyT25lV2Vla0luU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJpYnV0
ZSB3YXMgYmV5b25kIHRoZSB0ZXN0IHRocmVzaG9sZHMuIik7CisgICAgfSBlbHNlCisgICAgICAg
IHRlc3RGYWlsZWQoIk5vIGludGVybmFscyBvYmplY3QuIik7CisKKyAgICBpZiAoaW50ZXJuYWxz
KQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFs
c2UpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29yYXRp
b24tc2FtZS1zaXRlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQt
aW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hNDk1NDVhMDM0ZDNhZjI1OTBjOTkzMzdkMjMwNWE5YmVmZGJhNDEwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVj
b3JhdGlvbi1zYW1lLXNpdGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAK
K0NoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBzYW1lLXNp
dGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgZGVjb3JhdGlvbiBkb24ndCBnZXQgY2FwcGVkIHRvIDI0
IGhvdXJzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgdHdvIGxv
bmctbGl2ZWQgY29va2llcyBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDg2NDMwIHNlY29uZHMuCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBl
ZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1l
LXNpdGUtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5r
LWRlY29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWQwOTk5MWIz
ZmE4YWNkNDgxOTlhODUzMjM0ZDI1YWIyODkxNWRjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUt
Zm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1zaXRlLWRhdGFi
YXNlLmh0bWwKQEAgLTAsMCArMSw4NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVz
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKSI+
Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBi
eSBKYXZhU2NyaXB0IGFmdGVyIGEgc2FtZS1zaXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIGRlY29y
YXRpb24gZG9uJ3QgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKworICAgIGZ1bmN0aW9uIHRlc3RDb29raWVzKCkgeworICAgICAgICBsZXQgcGFz
c2VkVGVzdHMgPSAwOworCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrVGhhdENvb2tpZURvZXNFeHBp
cmVBZnRlcihjb29raWVEYXRhLCBtYXhBZ2VJblNlY29uZHMpIHsKKyAgICAgICAgICAgIGxldCBu
b3cgPSBuZXcgRGF0ZSgpOworICAgICAgICAgICAgbGV0IG1heEV4cGlyeURhdGVJbk1pbGxpc2Vj
b25kcyA9IG5vdy5nZXRUaW1lKCkgKyAobWF4QWdlSW5TZWNvbmRzICogMTAwMCk7CisKKyAgICAg
ICAgICAgIGlmIChtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPCBjb29raWVEYXRhWyJleHBp
cmVzIl0pCisgICAgICAgICAgICAgICAgKytwYXNzZWRUZXN0czsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgbmFtZWQgIiArIGNvb2tpZURhdGFb
Im5hbWUiXSArICIgZXhwaXJlcyBpbiBsZXNzIHRoYW4gIiArIG1heEFnZUluU2Vjb25kcyArICIg
c2Vjb25kcy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IG9uZURheUluU2Vjb25kcyA9
IDI0ICogNjAgKiA2MDsKKyAgICAgICAgY29uc3QgdHdvRGF5c0luU2Vjb25kcyA9IDIgKiBvbmVE
YXlJblNlY29uZHM7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFt
ZSA6ICJsb25nTGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d29E
YXlzSW5TZWNvbmRzICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZl
ZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVNYXhBZ2Uu
bGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdvRGF5c0FzRXhwaXJlc0Rh
dGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdvRGF5c0luU2Vjb25kcyk7CisgICAg
ICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29v
a2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3b0RheXNBc0V4cGlyZXNEYXRl
ICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZUV4cGly
ZXMubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSAr
ICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCBvdmVyT25lRGF5SW5TZWNvbmRzID0gb25lRGF5
SW5TZWNvbmRzICsgMzA7CisgICAgICAgIGlmIChpbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGxl
dCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKTsKKyAgICAgICAgICAgIGlmICghY29v
a2llcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gY29va2llcyBmb3Vu
ZC4iKTsKKyAgICAgICAgICAgIGZvciAobGV0IGNvb2tpZSBvZiBjb29raWVzKSB7CisgICAgICAg
ICAgICAgICAgc3dpdGNoIChjb29raWUubmFtZSkgeworICAgICAgICAgICAgICAgICAgICBjYXNl
IGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hl
Y2tUaGF0Q29va2llRG9lc0V4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7
CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBj
aGVja1RoYXRDb29raWVEb2VzRXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRz
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVzZXRDb29raWVzRm9yQ3VycmVudE9yaWdpbigp
OworCisgICAgICAgICAgICBpZiAocGFzc2VkVGVzdHMgPT09IDIpIHsKKyAgICAgICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBleHBpcmUgYWZ0ZXIgbW9y
ZSB0aGFuICIgKyBvdmVyT25lRGF5SW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQXQgbGVhc3Qgb25lIGNvb2tp
ZSdzIGV4cGlyeSBhdHRyaWJ1dGUgd2FzIGJlbG93IHRoZSB0ZXN0IHRocmVzaG9sZHMuIik7Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gaW50ZXJuYWxzIG9iamVj
dC4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIG5hdmlnYXRlQ3Jvc3NPcmlnaW4oKSB7CisgICAgICAgIGRv
Y3VtZW50LmxvY2F0aW9uLmhyZWYgPSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiArICIvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0
aC1saW5rLWRlY29yYXRpb24tc2FtZS1zaXRlLmh0bWw/bGluaz1kZWNvcmF0aW9uI2ZyYWdtZW50
IjsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5hdGlvbk9yaWdpbiA9ICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiOworICAgIGNvbnN0IHByZXZhbGVudFJlc291cmNlT3JpZ2luID0gImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKGRv
Y3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gJiYgZG9j
dW1lbnQubG9jYXRpb24uaGFzaCAhPT0gIiNmcmFnbWVudCIpIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAg
ICAgICAgIH0pOworCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIHRlc3RDb29raWVzKCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5r
LWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlm
ZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFs
ZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mN2JhZDAzMmM2
ZjIyNDU3M2EzMzVkM2Y3MDQxOWRjYjRiZTQzYTE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1m
b3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVz
b3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0NoZWNrIHRoYXQg
Y29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRp
b24gd2l0aCBsaW5rIGZyYWdtZW50IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBk
b24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDQzMjMwIHNlY29uZHMuCitQQVNTIFRoZSB0d28g
bG9uZy1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gODY0MzAgc2Vj
b25kcy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVu
dC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2ll
LXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Yzg0ZmI4OTRmOTliMzI3YzE3NzNlMjAwN2RjMTBkOTFj
MmE4Nzk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRo
LWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApAQCAt
MCwwICsxLDEwMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKSI+Cis8c2NyaXB0Pgor
ICAgIGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0
IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBmcmFnbWVudCBnZXQgY2Fw
cGVkIHRvIDI0IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgZnVu
Y3Rpb24gdGVzdENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7CisgICAg
ICAgIGZ1bmN0aW9uIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWVEYXRh
LCBtYXhBZ2VJblNlY29uZHMpIHsKKyAgICAgICAgICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpOwor
ICAgICAgICAgICAgbGV0IG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA9IG5vdy5nZXRUaW1l
KCkgKyAobWF4QWdlSW5TZWNvbmRzICogMTAwMCk7CisKKyAgICAgICAgICAgIGlmIChtYXhFeHBp
cnlEYXRlSW5NaWxsaXNlY29uZHMgPiBjb29raWVEYXRhWyJleHBpcmVzIl0pCisgICAgICAgICAg
ICAgICAgKytwYXNzZWRUZXN0czsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJDb29raWUgbmFtZWQgIiArIGNvb2tpZURhdGFbIm5hbWUiXSArICIgZXhwaXJl
cyBpbiBtb3JlIHRoYW4gIiArIG1heEFnZUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzID0gMTIgKiA2MCAqIDYw
OworICAgICAgICBjb25zdCBzaG9ydExpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogInNob3J0
TGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d2VsdmVIb3Vyc0lu
U2Vjb25kcyArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29v
a2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubGlm
ZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdlbHZlSG91cnNBc0V4cGlyZXNE
YXRlID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsK
KyAgICAgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAic2hvcnRM
aXZlZENvb2tpZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d2VsdmVIb3Vyc0Fz
RXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZl
ZENvb2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENvb2tpZUV4cGly
ZXMubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRz
ID0gMiAqIHR3ZWx2ZUhvdXJzSW5TZWNvbmRzOworICAgICAgICBjb25zdCB0d29EYXlzSW5TZWNv
bmRzID0gMiAqIG9uZURheUluU2Vjb25kczsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2ll
TWF4QWdlID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1h
eC1BZ2U9IiArIHR3b0RheXNJblNlY29uZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29v
a2llID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZl
ZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCB0d29E
YXlzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5T
ZWNvbmRzKTsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6
ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5
c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xp
dmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBp
cmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG92ZXJUd2VsdmVIb3Vy
c0luU2Vjb25kcyA9IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgMzA7CisgICAgICAgIGNvbnN0IG92
ZXJPbmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMgKyAzMDsKKyAgICAgICAgaWYgKGlu
dGVybmFscykgeworICAgICAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2ll
cygpOworICAgICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAgICAgICAgZm9yIChsZXQgY29v
a2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvb2tpZS5uYW1lKSB7
CisgICAgICAgICAgICAgICAgICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1lOgor
ICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVy
KGNvb2tpZSwgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRDb29raWVFeHBp
cmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90
RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMpOworICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVk
Q29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29r
aWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdM
aXZlZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhh
dENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisK
KyAgICAgICAgICAgIGlmIChwYXNzZWRUZXN0cyA9PT0gNCkgeworICAgICAgICAgICAgICAgIHRl
c3RQYXNzZWQoIlRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIg
bW9yZSB0aGFuICIgKyBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMgKyAiIHNlY29uZHMuIik7Cisg
ICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9u
J3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3Zlck9uZURheUluU2Vjb25kcyArICIgc2Vj
b25kcy4iKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
IkF0IGxlYXN0IG9uZSBjb29raWUncyBleHBpcnkgYXR0cmlidXRlIHdhcyBiZXlvbmQgdGhlIHRl
c3QgdGhyZXNob2xkcy4iKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFs
c2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09y
aWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3Jp
Z2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2ll
LXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRt
bCNsaW5rPWZyYWdtZW50IjsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5hdGlvbk9yaWdpbiA9
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHByZXZhbGVudFJlc291cmNlT3Jp
Z2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
KyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJldmFsZW50UmVzb3Vy
Y2VPcmlnaW4pIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1
ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShw
cmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2
YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKG5h
dmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RDb29raWVzKCk7CisgICAgICAg
IH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUt
Zm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXBy
ZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUt
c2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVz
b3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlOThkYzhmOTBlMmRhMWIx
OTgzYjQ4ZGMxODZlYWQ3YTY5NjVkN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQt
cmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0NoZWNrIHRo
YXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmln
YXRpb24gd2l0aCBsaW5rIHF1ZXJ5IGFuZCBmcmFnbWVudCBnZXQgY2FwcGVkIHRvIDI0IGhvdXJz
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgdHdvIHNob3J0LWxp
dmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA0MzIzMCBzZWNvbmRzLgor
UEFTUyBUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0
aGFuIDg2NDMwIHNlY29uZHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRo
LWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2Fw
cGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJh
Z21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
NTkxZWI0ZTk1OGZiMWI1MGRiN2Y4MjJhMjAwZWNjYzY3MzgyNDE2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1s
aWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50
LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMDEgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvY29v
a2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlv
bigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBhZnRlciBhIGNyb3Nz
LXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVlcnkgYW5kIGZyYWdtZW50IGdldCBjYXBwZWQg
dG8gMjQgaG91cnMuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBmdW5jdGlv
biB0ZXN0Q29va2llcygpIHsKKyAgICAgICAgbGV0IHBhc3NlZFRlc3RzID0gMDsKKyAgICAgICAg
ZnVuY3Rpb24gY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZURhdGEsIG1h
eEFnZUluU2Vjb25kcykgeworICAgICAgICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7CisgICAg
ICAgICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93LmdldFRpbWUoKSAr
IChtYXhBZ2VJblNlY29uZHMgKiAxMDAwKTsKKworICAgICAgICAgICAgaWYgKG1heEV4cGlyeURh
dGVJbk1pbGxpc2Vjb25kcyA+IGNvb2tpZURhdGFbImV4cGlyZXMiXSkKKyAgICAgICAgICAgICAg
ICArK3Bhc3NlZFRlc3RzOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkNvb2tpZSBuYW1lZCAiICsgY29va2llRGF0YVsibmFtZSJdICsgIiBleHBpcmVzIGlu
IG1vcmUgdGhhbiAiICsgbWF4QWdlSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICB9
CisKKyAgICAgICAgY29uc3QgdHdlbHZlSG91cnNJblNlY29uZHMgPSAxMiAqIDYwICogNjA7Cisg
ICAgICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUgOiAic2hvcnRMaXZl
ZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3ZWx2ZUhvdXJzSW5TZWNv
bmRzICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29raWVN
YXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENvb2tpZU1heEFnZS5saWZldGlt
ZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCB0d2VsdmVIb3Vyc0FzRXhwaXJlc0RhdGUg
PSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdlbHZlSG91cnNJblNlY29uZHMpOworICAg
ICAgICBjb25zdCBzaG9ydExpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJzaG9ydExpdmVk
Q29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3ZWx2ZUhvdXJzQXNFeHBp
cmVzRGF0ZSArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29v
a2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5s
aWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCBvbmVEYXlJblNlY29uZHMgPSAy
ICogdHdlbHZlSG91cnNJblNlY29uZHM7CisgICAgICAgIGNvbnN0IHR3b0RheXNJblNlY29uZHMg
PSAyICogb25lRGF5SW5TZWNvbmRzOworICAgICAgICBjb25zdCBsb25nTGl2ZWRDb29raWVNYXhB
Z2UgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFn
ZT0iICsgdHdvRGF5c0luU2Vjb25kcyArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUg
PSBsb25nTGl2ZWRDb29raWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29v
a2llTWF4QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3b0RheXNB
c0V4cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3b0RheXNJblNlY29u
ZHMpOworICAgICAgICBjb25zdCBsb25nTGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogImxv
bmdMaXZlZENvb2tpZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d29EYXlzQXNF
eHBpcmVzRGF0ZSArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRD
b29raWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMu
bGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3Qgb3ZlclR3ZWx2ZUhvdXJzSW5T
ZWNvbmRzID0gdHdlbHZlSG91cnNJblNlY29uZHMgKyAzMDsKKyAgICAgICAgY29uc3Qgb3Zlck9u
ZURheUluU2Vjb25kcyA9IG9uZURheUluU2Vjb25kcyArIDMwOworICAgICAgICBpZiAoaW50ZXJu
YWxzKSB7CisgICAgICAgICAgICBsZXQgY29va2llcyA9IGludGVybmFscy5nZXRDb29raWVzKCk7
CisgICAgICAgICAgICBpZiAoIWNvb2tpZXMubGVuZ3RoKQorICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIk5vIGNvb2tpZXMgZm91bmQuIik7CisgICAgICAgICAgICBmb3IgKGxldCBjb29raWUg
b2YgY29va2llcykgeworICAgICAgICAgICAgICAgIHN3aXRjaCAoY29va2llLm5hbWUpIHsKKyAg
ICAgICAgICAgICAgICAgICAgY2FzZSBzaG9ydExpdmVkQ29va2llTWF4QWdlLm5hbWU6CisgICAg
ICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29v
a2llLCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMu
bmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBp
cmVBZnRlcihjb29raWUsIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29r
aWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURv
ZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVk
Q29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29v
a2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIHJlc2V0Q29va2llc0ZvckN1cnJlbnRPcmlnaW4oKTsKKworICAg
ICAgICAgICAgaWYgKHBhc3NlZFRlc3RzID09PSA0KSB7CisgICAgICAgICAgICAgICAgdGVzdFBh
c3NlZCgiVGhlIHR3byBzaG9ydC1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3Jl
IHRoYW4gIiArIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBl
eHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBvdmVyT25lRGF5SW5TZWNvbmRzICsgIiBzZWNvbmRz
LiIpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQXQg
bGVhc3Qgb25lIGNvb2tpZSdzIGV4cGlyeSBhdHRyaWJ1dGUgd2FzIGJleW9uZCB0aGUgdGVzdCB0
aHJlc2hvbGRzLiIpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5v
IGludGVybmFscyBvYmplY3QuIik7CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBuYXZpZ2F0ZUNyb3NzT3JpZ2lu
KCkgeworICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gZGVzdGluYXRpb25PcmlnaW4g
KyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0
LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3Vy
Y2UuaHRtbD9saW5rPXF1ZXJ5I2xpbms9ZnJhZ21lbnQiOworICAgIH0KKworICAgIGNvbnN0IGRl
c3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgcHJl
dmFsZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBmdW5j
dGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luID09
PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRV
c2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwg
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luLCB0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNv
dXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRl
Q29va2llQmxvY2tpbmcobmF2aWdhdGVDcm9zc09yaWdpbik7CisgICAgICAgICAgICAgICAgfSk7
CisKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdENv
b2tpZXMoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJv
bS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29v
a2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0NWRkMTZjMmVlMDEwODBlM2MxZjFiNDAy
MDZiNjZhODAyZTBhYzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWlu
LWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkg
SmF2YVNjcmlwdCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVlcnkg
Z2V0IGNhcHBlZCB0byAyNCBob3Vycy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgVGhlIHR3byBzaG9ydC1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3Jl
IHRoYW4gNDMyMzAgc2Vjb25kcy4KK1BBU1MgVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9u
J3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA4NjQzMCBzZWNvbmRzLgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9y
LWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNl
LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVy
eS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4MjYy
M2QxZmMzN2ZjODZiNDM4N2U0YWNhZWMwZTI0ODZhZTgzMzUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0
aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1y
ZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTAxIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2Nvb2tpZXMvcmVzb3VyY2VzL2Nv
b2tpZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1
blRlc3QoKScsIDApIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkNoZWNrIHRoYXQgY29v
a2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24g
d2l0aCBsaW5rIHF1ZXJ5IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuIik7CisgICAganNUZXN0SXNB
c3luYyA9IHRydWU7CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29va2llcygpIHsKKyAgICAgICAgbGV0
IHBhc3NlZFRlc3RzID0gMDsKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tUaGF0Q29va2llRG9lc05v
dEV4cGlyZUFmdGVyKGNvb2tpZURhdGEsIG1heEFnZUluU2Vjb25kcykgeworICAgICAgICAgICAg
bGV0IG5vdyA9IG5ldyBEYXRlKCk7CisgICAgICAgICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWls
bGlzZWNvbmRzID0gbm93LmdldFRpbWUoKSArIChtYXhBZ2VJblNlY29uZHMgKiAxMDAwKTsKKwor
ICAgICAgICAgICAgaWYgKG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA+IGNvb2tpZURhdGFb
ImV4cGlyZXMiXSkKKyAgICAgICAgICAgICAgICArK3Bhc3NlZFRlc3RzOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBuYW1lZCAiICsgY29va2ll
RGF0YVsibmFtZSJdICsgIiBleHBpcmVzIGluIG1vcmUgdGhhbiAiICsgbWF4QWdlSW5TZWNvbmRz
ICsgIiBzZWNvbmRzLiIpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgdHdlbHZlSG91cnNJ
blNlY29uZHMgPSAxMiAqIDYwICogNjA7CisgICAgICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVN
YXhBZ2UgPSB7IG5hbWUgOiAic2hvcnRMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1h
eC1BZ2U9IiArIHR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50
LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsgc2hv
cnRMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25z
dCB0d2VsdmVIb3Vyc0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2Uo
dHdlbHZlSG91cnNJblNlY29uZHMpOworICAgICAgICBjb25zdCBzaG9ydExpdmVkQ29va2llRXhw
aXJlcyA9IHsgbmFtZSA6ICJzaG9ydExpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4
cGlyZXM9IiArIHR3ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0ZSArICI7IiB9OworICAgICAgICBkb2N1
bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIg
KyBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAg
ICBjb25zdCBvbmVEYXlJblNlY29uZHMgPSAyICogdHdlbHZlSG91cnNJblNlY29uZHM7CisgICAg
ICAgIGNvbnN0IHR3b0RheXNJblNlY29uZHMgPSAyICogb25lRGF5SW5TZWNvbmRzOworICAgICAg
ICBjb25zdCBsb25nTGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2ll
TWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdvRGF5c0luU2Vjb25kcyArICI7IiB9
OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVNYXhBZ2UubmFtZSAr
ICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8i
OworCisgICAgICAgIGNvbnN0IHR3b0RheXNBc0V4cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJlc0Rh
dGVGcm9tTWF4QWdlKHR3b0RheXNJblNlY29uZHMpOworICAgICAgICBjb25zdCBsb25nTGl2ZWRD
b29raWVFeHBpcmVzID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZUV4cGlyZXMiLCBsaWZldGlt
ZSA6ICJFeHBpcmVzPSIgKyB0d29EYXlzQXNFeHBpcmVzRGF0ZSArICI7IiB9OworICAgICAgICBk
b2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAiPWZvb2Jhcjsg
IiArIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAg
ICAgY29uc3Qgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzID0gdHdlbHZlSG91cnNJblNlY29uZHMg
KyAzMDsKKyAgICAgICAgY29uc3Qgb3Zlck9uZURheUluU2Vjb25kcyA9IG9uZURheUluU2Vjb25k
cyArIDMwOworICAgICAgICBpZiAoaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBsZXQgY29va2ll
cyA9IGludGVybmFscy5nZXRDb29raWVzKCk7CisgICAgICAgICAgICBpZiAoIWNvb2tpZXMubGVu
Z3RoKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGNvb2tpZXMgZm91bmQuIik7Cisg
ICAgICAgICAgICBmb3IgKGxldCBjb29raWUgb2YgY29va2llcykgeworICAgICAgICAgICAgICAg
IHN3aXRjaCAoY29va2llLm5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBzaG9ydExp
dmVkQ29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRD
b29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMp
OworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNh
c2Ugc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAg
IGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJUd2VsdmVIb3Vy
c0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJP
bmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAg
ICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwg
b3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJlc2V0Q29va2ll
c0ZvckN1cnJlbnRPcmlnaW4oKTsKKworICAgICAgICAgICAgaWYgKHBhc3NlZFRlc3RzID09PSA0
KSB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBzaG9ydC1saXZlZCBjb29r
aWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJUd2VsdmVIb3Vyc0luU2Vj
b25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdv
IGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBvdmVy
T25lRGF5SW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiQXQgbGVhc3Qgb25lIGNvb2tpZSdzIGV4cGlyeSBhdHRy
aWJ1dGUgd2FzIGJleW9uZCB0aGUgdGVzdCB0aHJlc2hvbGRzLiIpOworICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGludGVybmFscyBvYmplY3QuIik7CisKKyAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBuYXZpZ2F0ZUNyb3NzT3JpZ2luKCkgeworICAgICAgICBkb2N1bWVudC5sb2NhdGlv
bi5ocmVmID0gZGVzdGluYXRpb25PcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2Fw
cGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXBy
ZXZhbGVudC1yZXNvdXJjZS5odG1sP2xpbms9cXVlcnkiOworICAgIH0KKworICAgIGNvbnN0IGRl
c3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgcHJl
dmFsZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBmdW5j
dGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luID09
PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRV
c2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwg
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luLCB0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNv
dXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRl
Q29va2llQmxvY2tpbmcobmF2aWdhdGVDcm9zc09yaWdpbik7CisgICAgICAgICAgICAgICAgfSk7
CisKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdENv
b2tpZXMoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3Jh
dGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1l
LWZvci1jb29raWUtc2V0LWluLWpzLXdpdGhvdXQtbGluay1kZWNvcmF0aW9uLWZyb20tcHJldmFs
ZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYmY2NDlhNTdl
MTM2NGMwNjA2NDU2OTQxMzA0NTQxMTM3NDU4MzAxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1m
b3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVu
dC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorQ2hlY2sg
dGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2
aWdhdGlvbiB3aXRob3V0IGxpbmsgZGVjb3JhdGlvbiBkb24ndCBnZXQgY2FwcGVkIHRvIDI0IGhv
dXJzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgdHdvIGxvbmct
bGl2ZWQgY29va2llcyBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDg2NDMwIHNlY29uZHMuCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1s
aWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9t
LXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1p
bi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRh
YmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyZmVhZDhiNDUwNzhmMWIwYWY1MDc4MGYzZjdkNmJkODlk
ODBhNzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGhv
dXQtbGluay1kZWNvcmF0aW9uLWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwK
QEAgLTAsMCArMSw4NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxz
Y3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKSI+Cis8c2NyaXB0
PgorICAgIGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2Ny
aXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGhvdXQgbGluayBkZWNvcmF0aW9u
IGRvbid0IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29va2llcygpIHsKKyAgICAgICAgbGV0IHBhc3NlZFRl
c3RzID0gMDsKKworICAgICAgICBmdW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzRXhwaXJlQWZ0
ZXIoY29va2llRGF0YSwgbWF4QWdlSW5TZWNvbmRzKSB7CisgICAgICAgICAgICBsZXQgbm93ID0g
bmV3IERhdGUoKTsKKyAgICAgICAgICAgIGxldCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMg
PSBub3cuZ2V0VGltZSgpICsgKG1heEFnZUluU2Vjb25kcyAqIDEwMDApOworCisgICAgICAgICAg
ICBpZiAobWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzIDwgY29va2llRGF0YVsiZXhwaXJlcyJd
KQorICAgICAgICAgICAgICAgICsrcGFzc2VkVGVzdHM7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5hbWVkICIgKyBjb29raWVEYXRhWyJuYW1l
Il0gKyAiIGV4cGlyZXMgaW4gbGVzcyB0aGFuICIgKyBtYXhBZ2VJblNlY29uZHMgKyAiIHNlY29u
ZHMuIik7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBvbmVEYXlJblNlY29uZHMgPSAyNCAq
IDYwICogNjA7CisgICAgICAgIGNvbnN0IHR3b0RheXNJblNlY29uZHMgPSAyICogb25lRGF5SW5T
ZWNvbmRzOworICAgICAgICBjb25zdCBsb25nTGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUgOiAi
bG9uZ0xpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdvRGF5c0lu
U2Vjb25kcyArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29r
aWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llTWF4QWdlLmxpZmV0
aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3b0RheXNBc0V4cGlyZXNEYXRlID0g
Y3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3b0RheXNJblNlY29uZHMpOworICAgICAgICBj
b25zdCBsb25nTGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZUV4
cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d29EYXlzQXNFeHBpcmVzRGF0ZSArICI7
IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5h
bWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBh
dGg9LyI7CisKKyAgICAgICAgY29uc3Qgb3Zlck9uZURheUluU2Vjb25kcyA9IG9uZURheUluU2Vj
b25kcyArIDMwOworICAgICAgICBpZiAoaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBsZXQgY29v
a2llcyA9IGludGVybmFscy5nZXRDb29raWVzKCk7CisgICAgICAgICAgICBpZiAoIWNvb2tpZXMu
bGVuZ3RoKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGNvb2tpZXMgZm91bmQuIik7
CisgICAgICAgICAgICBmb3IgKGxldCBjb29raWUgb2YgY29va2llcykgeworICAgICAgICAgICAg
ICAgIHN3aXRjaCAoY29va2llLm5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25n
TGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhh
dENvb2tpZURvZXNFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9u
Z0xpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tU
aGF0Q29va2llRG9lc0V4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIHJlc2V0Q29va2llc0ZvckN1cnJlbnRPcmlnaW4oKTsKKwor
ICAgICAgICAgICAgaWYgKHBhc3NlZFRlc3RzID09PSAyKSB7CisgICAgICAgICAgICAgICAgdGVz
dFBhc3NlZCgiVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZXhwaXJlIGFmdGVyIG1vcmUgdGhh
biAiICsgb3Zlck9uZURheUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkF0IGxlYXN0IG9uZSBjb29raWUncyBl
eHBpcnkgYXR0cmlidXRlIHdhcyBiZWxvdyB0aGUgdGVzdCB0aHJlc2hvbGRzLiIpOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGludGVybmFscyBvYmplY3QuIik7
CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBuYXZpZ2F0ZUNyb3NzT3JpZ2luKCkgeworICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5ocmVmID0gZGVzdGluYXRpb25PcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGhvdXQtbGluay1k
ZWNvcmF0aW9uLWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWwiOworICAgIH0KKworICAgIGNv
bnN0IGRlc3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29u
c3QgcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAg
ICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3Jp
Z2luID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikgeworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
dHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luLCB0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
VXBkYXRlQ29va2llQmxvY2tpbmcobmF2aWdhdGVDcm9zc09yaWdpbik7CisgICAgICAgICAgICAg
ICAgfSk7CisKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
dGVzdENvb2tpZXMoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGlj
cy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1z
dGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMGMyNThiOGUwMDVk
MzU1NDE4MmFmMDZkNDgyNTgzYWU3N2U1YTEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2
YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKK1BBU1MgSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNv
dXJjZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlz
dGljcy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlz
dGljcy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlMDNmZDg3MTJlZjllZGM5YjE4NjJmNjM2
ZDFlNzRlYTY4OGQ4NDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1v
bi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJV
VEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBDbGFzc2lmaWNhdGlvbiBCYXNlZCBvbiBNaXhl
ZCBTdGF0aXN0aWNzPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNv
bnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3Rp
Y3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0
b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0
IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29u
c3QgdG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKworICAg
IGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZp
ZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
cnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05v
dGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFs
c2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsK
KworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZy
YW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3Rh
dGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BG
cmFtZU9yaWdpbjMpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNz
RGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOwor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0g
aG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7
CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXBy
ZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVy
LXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMGMy
NThiOGUwMDVkMzU1NDE4MmFmMDZkNDgyNTgzYWU3N2U1YTEzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5z
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0IGRpZCBub3QgZ2V0IGNs
YXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZh
bGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUt
b3JpZ2lucy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4NTQwOTA4ZWQ4MGQxMzRlNzM4MDQ5
NmEyNzUwNWFkMDA1Yzk3YmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNl
ZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApAQCAt
MCwwICsxLDUzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgor
ICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIENsYXNzaWZp
Y2F0aW9uIEJhc2VkIG9uIFN1YiBGcmFtZSBVbmRlciBUb3AgRnJhbWUgT3JpZ2luczwvdGl0bGU+
CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0g
IjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsg
aG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0
dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAi
aHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9
ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRl
c3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBjbGFzc2lm
aWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
dGVzdFBhc3NlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNv
dXJjZS4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVu
dFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkg
eworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVj
b3Jkc1dlcmVTY2FubmVkKHRydWUpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBn
ZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3Jp
Z2luMik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVy
VG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxi
YWNrKGNvbXBsZXRlVGVzdCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0
aWNzRGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRz
KCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0
ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5h
bHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRl
c3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1u
b24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5z
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291
cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMGMyNThiOGUwMDVkMzU1NDE4MmFmMDZkNDgyNTgzYWU3N2U1YTEzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZy
YW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhvc3QgZGlk
IG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmln
aW5zLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11
bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2MTEyMGE4
NTkzMTIxMTQwNzJkNDcyOWIzNmJhMGExNzdmM2RjNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9u
LXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1k
YXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFu
Zz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5U
ZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gU3VicmVzb3VyY2UgVW5kZXIgVG9wIEZy
YW1lIE9yaWdpbnM8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29u
c3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGlj
c1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRv
cEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3Qg
dG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKworICAgIGZ1
bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQg
YXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVu
VGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlm
eVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgCisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BG
cmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0
YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
aW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3Qp
OworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0Fu
ZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5s
b2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdp
bmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0
cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVu
VGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRp
cmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24t
c3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjBjMjU4YjhlMDA1ZDM1NTQxODJhZjA2ZDQ4MjU4M2FlNzdlNWExMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1y
ZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhvc3QgZGlk
IG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8t
ZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1
ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzU4Y2IwNmI2ZTJhOWFm
ZmZhMmQ3NDNkM2ZlYjJjMGRhNThlNmU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxl
bnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1s
CkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhl
YWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xh
c3NpZmljYXRpb24gQmFzZWQgb24gU3VicmVzb3VyY2UgVW5pcXVlIFJlZGlyZWN0cyBUbzwvdGl0
bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0
ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8i
ICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0g
Imh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIg
PSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVU
ZXN0KCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgY2xhc3Np
ZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNp
c3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVz
dCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0
YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQg
bm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRp
c3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJh
bWVPcmlnaW4yKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0Rp
ZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAg
ICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhv
c3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewor
ICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOwor
ICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzJkZDY5Zjk0MTlmNTE5ODk1N2YwOTA4ZGQ2NzRkNjg0MzZjYjljNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVu
dCByZXNvdXJjZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0
aXN0aWNzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3Rp
Y3MtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODk3MzE5YWIwZmIxMDAwNTVhOTM1ZDRhOTUy
YjJhYjk5NDQ4MzM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhl
ZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2MiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+
CisgICAgPHRpdGxlPlRlc3RzIGZvciBDbGFzc2lmaWNhdGlvbiBCYXNlZCBvbiBNaXhlZCBTdGF0
aXN0aWNzPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhv
c3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwg
PSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFt
ZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZy
YW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9w
RnJhbWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0
b3BGcmFtZU9yaWdpbjQgPSAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiOworCisgICAgZnVu
Y3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIp
OworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFz
c2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50
U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNv
cmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBn
ZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3Jp
Z2luNCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNl
VW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1l
T3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlz
dGljc1VybCwgdG9wRnJhbWVPcmlnaW40KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZy
YW1lT3JpZ2luMyk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jk
c0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAg
fQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYg
d2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVu
bmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFi
bGVkKHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgIH0KKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWIt
ZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXBy
ZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyZGQ2OWY5NDE5ZjUxOTg5NTdmMDkwOGRkNjc0
ZDY4NDM2Y2I5YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1m
cmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdp
bnMtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRv
cC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VhNzYyMDBkYTJmZmIx
YTAwNTVhOGExOThhZTI3ODNlMmViM2Y1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQt
YmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwK
QEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVh
ZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBDbGFz
c2lmaWNhdGlvbiBCYXNlZCBvbiBTdWIgRnJhbWUgVW5kZXIgVG9wIEZyYW1lIE9yaWdpbnM8L3Rp
dGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVz
dCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8v
IiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9
ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4y
ID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdp
bjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3Jp
Z2luNCA9ICJodHRwOi8vMTI3LjAuMC41OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21w
bGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
ZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
IGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZ290IGNsYXNzaWZpZWQgYXMg
dmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRl
c3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAg
ICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsK
KyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nh
bm5lZCh0cnVlKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBp
ZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJs
KSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBu
b24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJh
bWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1l
VW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3Jp
Z2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1Vy
bCwgdG9wRnJhbWVPcmlnaW40KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3Rh
dGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29y
ZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhv
c3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVy
bmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAg
ICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJl
c291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVy
VGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVj
dC1jb2xsdXNpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0ZGRjZTViMzE0
Y2Q3ZDJkMGRlYzQ4YjZmOWY5ZTBlY2NhYjgzMDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFs
ZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2Vk
IG9uIHN1YnJlc291cmNlIHJlZGlyZWN0IGNvbGx1c2lvbi4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgQ29sbHVkaW5nIGhvc3QgMSBnb3Qgc2V0IGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4KK1BBU1MgQ29sbHVkaW5nIGhvc3QgMiBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNv
dXJjZS4KK1BBU1MgQ29sbHVkaW5nIGhvc3QgMyBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJj
ZS4KK1BBU1MgQ29sbHVkaW5nIGhvc3QgNCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4K
K1BBU1MgQ29sbHVkaW5nIGxvY2FsaG9zdCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZSBh
ZnRlciBhY3R1YWwgc3ViIGZyYW1lIHJlZGlyZWN0LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFs
ZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjExZTA0Nzc0NjlkNDAwYmFhNTc1Nzg4MjlhYTIxNGUyZWQ4ZWQ2YjMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0
LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNzEgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgZm9yIGNsYXNzaWZpY2F0
aW9uIGJhc2VkIG9uIHN1YnJlc291cmNlIHJlZGlyZWN0IGNvbGx1c2lvbi4iKTsKKyAgICBqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4x
OjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJU
ZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCBzdWJyZXNvdXJjZU9yaWdpbjEgPSAiaHR0cDovLzEy
Ny4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHN1YnJlc291cmNlT3JpZ2luMiA9ICJodHRw
Oi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3Qgc3VicmVzb3VyY2VPcmlnaW4zID0g
Imh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCBzdWJyZXNvdXJjZU9yaWdp
bjQgPSAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKwor
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0
RnJvbShzdGF0aXN0aWNzVXJsLCBzdWJyZXNvdXJjZU9yaWdpbjEpOworICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShzdWJyZXNvdXJj
ZU9yaWdpbjEsIHN1YnJlc291cmNlT3JpZ2luMik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKHN1YnJlc291cmNlT3JpZ2luMiwg
c3VicmVzb3VyY2VPcmlnaW4zKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oc3VicmVzb3VyY2VPcmlnaW4zLCBzdWJyZXNvdXJj
ZU9yaWdpbjQpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwp
KQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZXhwbGljaXR5IHNldCBkaWQgbm90
IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4xKSkK
KyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCAxIGdvdCBzZXQgYXMg
cHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luMSkpCisgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhvc3QgMSBnb3QgY2xhc3NpZmllZCBhcyB2
ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luMikpCisgICAgICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgMiBnb3Qgc2V0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1Zl
cnlQcmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjIpKQorICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDIgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjMpKQorICAgICAgICAgICAgICAg
IHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDMgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFs
ZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4zKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJDb2xsdWRpbmcgaG9zdCAzIGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJl
c291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW40KSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJDb2xsdWRpbmcgaG9zdCA0IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwor
ICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291
cmNlKHN1YnJlc291cmNlT3JpZ2luNCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29s
bHVkaW5nIGhvc3QgNCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKCJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2Vk
KCJDb2xsdWRpbmcgbG9jYWxob3N0IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlIGFmdGVy
IGFjdHVhbCBzdWIgZnJhbWUgcmVkaXJlY3QuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MCIpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBsb2NhbGhvc3QgZ290
IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0pOworICAg
IH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYm
IHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0
cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKcKgeworICAg
ICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRp
ZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAg
ICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7
CisgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBydW5UZXN0OworICAgICAg
ICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/cmVkaXJlY3RUbz1odHRw
Oi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9vbmNsaWNrLmh0bWwiOwor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJl
ZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJh
c2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjhmY2JkOGQ4ZjZkMDVmYzQ5NGQ0ZWVkZGNkOWNiNWViZGRlMGMz
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVk
aXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBA
CitUZXN0cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24gc3VicmVzb3VyY2UgcmVkaXJlY3Qg
dG8gb3RoZXIgcHJldmFsZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxl
bnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVu
dC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2YTczODk1MzI3NzIyOGM2ZWY1NjkxYmY3MDM1
NzkzOTlkMjQ2NmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJl
c291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTEg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEg
Y2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVz
dHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHN1YnJlc291cmNlIHJlZGlyZWN0IHRvIG90
aGVyIHByZXZhbGVudC4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0
IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NV
cmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BG
cmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rp
b24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwor
ICAgICAgICBlbHNlIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNv
dXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZ290IGNs
YXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjEsIHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VV
bmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxs
YmFjayhjb21wbGV0ZVRlc3QpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJv
Y2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAg
ICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cu
dGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0
VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdl
c1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisgICAgICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXBy
ZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRh
YmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVy
LXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmRk
NjlmOTQxOWY1MTk4OTU3ZjA5MDhkZDY3NGQ2ODQzNmNiOWM3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1k
YXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHBy
ZXZhbGVudCByZXNvdXJjZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJy
ZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJkMDFlYTZiYzI0OTM3NTkyZjBlODk2NzYxNWM5OWM1YzhkYzNmYTYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVy
LXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJV
VEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBDbGFzc2lmaWNhdGlvbiBCYXNlZCBvbiBTdWJy
ZXNvdXJjZSBVbmRlciBUb3AgRnJhbWUgT3JpZ2luczwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9
Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsK
KyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIv
dGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAw
MC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4
MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40
OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW40ID0gImh0dHA6Ly8xMjcuMC4w
LjU6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAg
aWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVk
IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAg
dGVzdEZhaWxlZCgiSG9zdCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJj
ZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lm
aWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICBpbnRlcm5hbHMuc2V0UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0
aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworIAorICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJs
LCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNl
LiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVu
ZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9y
aWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJh
bWVPcmlnaW40KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0Rp
ZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAg
ICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhv
c3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewor
ICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOwor
ICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0
cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJkZDY5Zjk0MTlmNTE5ODk1
N2YwOTA4ZGQ2NzRkNjg0MzZjYjljNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4K
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVk
aXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNl
LXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OGY3ZjEzOTFj
NjIxZGU4NjZlMWJkMjNiMDFiZGEzMzJkMGQ5ZjM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZh
bGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0
bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8
aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBD
bGFzc2lmaWNhdGlvbiBCYXNlZCBvbiBTdWJyZXNvdXJjZSBVbmlxdWUgUmVkaXJlY3RzIFRvPC90
aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRl
c3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDov
LyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEg
PSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2lu
MiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmln
aW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9y
aWdpbjQgPSAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29t
cGxldGVUZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0
IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlz
dGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lmaWVkIGFz
IHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisg
ICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7
CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
fSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNj
YW5uZWQodHJ1ZSk7CisgCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFz
IG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BG
cmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVz
b3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGly
ZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbjQpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxT
dGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVj
b3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24u
aG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7Cisg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5u
ZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3Qt
Y29sbHVzaW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZDM5MzhiNzZjOTc0
NGMzYWZhN2IyNTUwNWVhZWI0OWQ4NjZiNTIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24g
dG9wIGZyYW1lIHJlZGlyZWN0IGNvbGx1c2lvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgQ29sbHVkaW5nIGhvc3QgMSBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJj
ZS4KK1BBU1MgQ29sbHVkaW5nIGhvc3QgMiBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4K
K1BBU1MgQ29sbHVkaW5nIGhvc3QgMyBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BB
U1MgQ29sbHVkaW5nIGhvc3QgNCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1Mg
Q29sbHVkaW5nIGxvY2FsaG9zdCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZSBhZnRlciBh
Y3R1YWwgbmF2aWdhdGlvbmFsIHJlZGlyZWN0LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
dG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1i
YXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzFkYTAwMGU5Y2ZhYTcxYTY4NTUxNzI5NGQyZWRiZTBkZmUwYTQ0MAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lv
bi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwg
bGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2Vk
IG9uIHRvcCBmcmFtZSByZWRpcmVjdCBjb2xsdXNpb24uIik7CisgICAganNUZXN0SXNBc3luYyA9
IHRydWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAg
ICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVt
cCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90
ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAw
L3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40Ojgw
MDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW40ID0gImh0dHA6Ly8xMjcuMC4wLjU6
ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjUgPSAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwLyI7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbShzdGF0aXN0aWNzVXJsLCB0
b3BGcmFtZU9yaWdpbjEpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0RnJvbSh0b3BGcmFtZU9yaWdpbjEsIHRvcEZyYW1lT3JpZ2luMik7Cisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9t
KHRvcEZyYW1lT3JpZ2luMiwgdG9wRnJhbWVPcmlnaW4zKTsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20odG9wRnJhbWVPcmlnaW4zLCB0
b3BGcmFtZU9yaWdpbjQpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZXhwbGljaXR5IHNldCBk
aWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4x
KSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCAxIGdvdCBzZXQg
YXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMSkpCisgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhvc3QgMSBnb3QgY2xhc3NpZmllZCBhcyB2
ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMikpCisgICAgICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgMiBnb3Qgc2V0IGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQ
cmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjIpKQorICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkNvbGx1ZGluZyBob3N0IDIgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjMpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIkNvbGx1ZGluZyBob3N0IDMgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7Cisg
ICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3Vy
Y2UodG9wRnJhbWVPcmlnaW4zKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRp
bmcgaG9zdCAzIGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOwor
ICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
dG9wRnJhbWVPcmlnaW40KSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcg
aG9zdCA0IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3Jp
Z2luNCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhvc3QgNCBnb3Qg
Y2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2lu
NSkpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGxvY2FsaG9zdCBnb3Qg
c2V0IGFzIHByZXZhbGVudCByZXNvdXJjZSBhZnRlciBhY3R1YWwgbmF2aWdhdGlvbmFsIHJlZGly
ZWN0LiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZh
bGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luNSkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiQ29sbHVkaW5nIGxvY2FsaG9zdCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNo
SlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9u
Lmhhc2ggPT09ICIiICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsK
KworICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0b3BGcmFtZU9yaWdp
bjUgKyAicmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3JlZGly
ZWN0VG89aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24uaHRt
bCNjb250aW51ZSI7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAg
cnVuVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRh
dGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGly
ZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTlmOTk1
MzM4MjgwZjMxNWIyMjAwM2YwMDgyZDA4MTQ4NDdlOWFiMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1w
cmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9u
IGJhc2VkIG9uIHRvcCBmcmFtZSByZWRpcmVjdCB0byBvdGhlciBwcmV2YWxlbnQuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJl
Y3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1m
cmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZThi
MDFkMTc4YzMyMzllYjBkMTY1ODQ3ZGZhMjdkMWQ2N2Q3MGQ2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFi
YXNlLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJl
biI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9
Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24gdG9w
IGZyYW1lIHJlZGlyZWN0IHRvIG90aGVyIHByZXZhbGVudC4iKTsKKyAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOwor
ICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90
ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAw
L3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAoIXRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJl
dmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkhvc3QgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmll
ZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgewor
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFt
ZU9yaWdpbjEsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1l
T3JpZ2luMSk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRT
Y2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAg
ICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVu
ZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworCisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1w
cmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGly
ZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1m
cmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hNDkxYmY5NjAzMzU3MDljOTkxZGYxZmZkMzI0MjhiZGJhZTgwNmY4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1k
YXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgZm9yIGNsYXNzaWZp
Y2F0aW9uIGJhc2VkIG9uIHRvcCBmcmFtZSB1bmlxdWUgcmVkaXJlY3RzIHRvLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50
IHJlc291cmNlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1y
ZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1l
LXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YzRjN2VlNWY2
YzNmZWE2NTYxM2Y4NTgzNjI3YTRjOTg1MDMxNWRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZh
bGVudC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1s
CkBAIC0wLDAgKzEsNTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhl
YWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBk
ZXNjcmlwdGlvbigiVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHRvcCBmcmFtZSB1
bmlxdWUgcmVkaXJlY3RzIHRvLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAg
Y29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlz
dGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0
IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29u
c3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBj
b25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworICAg
IGNvbnN0IHRvcEZyYW1lT3JpZ2luNCA9ICJodHRwOi8vMTI3LjAuMC41OjgwMDAvdGVtcCI7CisK
KyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
Z290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNU
ZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwg
dG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJh
bWVVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhzdGF0
aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmln
aW40KTsKKworICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFS
ZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgfQorCisgICAgaWYg
KGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RS
dW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVu
RGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOwor
ICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsK
KyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5LXBy
ZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iMGYwMzFkY2E1ZDBjOTYwOGY0ZDhmNWFmODk5YTE2ZTllZjUx
YzU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0
YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgZm9y
IGNsYXNzaWZpY2F0aW9uIGFzIHZlcnkgcHJldmFsZW50IGJhc2VkIG9uIG1peGVkIHN0YXRpc3Rp
Y3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIEhvc3QgY2xhc3NpZmll
ZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFz
ZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJh
c2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjA2ZmEy
MDllZGJiNmYxMTg4YWZmN2QxNjA2MzA0MDI3YWJiMTdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZl
cnktcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbApAQCAt
MCwwICsxLDY2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgor
ICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3Jp
cHRpb24oIlRlc3QgZm9yIGNsYXNzaWZpY2F0aW9uIGFzIHZlcnkgcHJldmFsZW50IGJhc2VkIG9u
IG1peGVkIHN0YXRpc3RpY3MuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBj
b25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0
aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgdmFyIHRv
cEZyYW1lT3JpZ2lucyA9IFtdOworICAgIGNvbnN0IHN0YXJ0TnVtID0gMjsKKyAgICBjb25zdCBu
dW1iZXJPZlN1YnJlc291cmNlRG9tYWlucyA9IDMwOworICAgIGZvciAodmFyIGkgPSBzdGFydE51
bTsgaSA8IG51bWJlck9mU3VicmVzb3VyY2VEb21haW5zICsgc3RhcnROdW07ICsraSkKKyAgICAg
ICAgdG9wRnJhbWVPcmlnaW5zLnB1c2goImh0dHA6Ly8xMjcuMC4wLiIgKyBpICsgIjo4MDAwL3Rl
bXAiKQorCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFs
ZW50IHJlc291cmNlLiIpOworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVy
eVByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZp
ZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0
UnVubmVyVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFn
ZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBzdGFydGVkIG91dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAg
IHZhciBpID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChpIDwgbnVtYmVyT2ZTdWJyZXNvdXJjZURv
bWFpbnMpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFt
ZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2ldKTsK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVy
VG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2ldKTsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGly
ZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2ldKTsKKworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihz
dGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaSsxXSk7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRp
c3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpKzFdKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1Vy
bCwgdG9wRnJhbWVPcmlnaW5zW2krMV0pOworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRv
cEZyYW1lT3JpZ2luc1tpKzJdKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJh
bWVPcmlnaW5zW2krMl0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdp
bnNbaSsyXSk7CisgICAgICAgICAgICAgICAgaSArPSAzOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2Fs
bGJhY2soY29tcGxldGVUZXN0KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1By
b2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisg
ICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93
LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNl
dFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIHJ1
blRlc3RSdW5uZXJUZXN0KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWlu
LW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYmFlMDAzM2ZmY2NhZWMyNjNhOTZmMmIzZDc4M2VkY2Y3MDQwODNkMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3RzIGNsZWFyaW5nIG9mIHdlYnNpdGUgZGF0YSBzdG9yZS4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFz
IHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1MgSG9zdCBpcyBubyBsb25nZXIgYSBwcmV2YWxlbnQg
cmVzb3VyY2UgYWZ0ZXIgdGhlIHN0b3JlIHdhcyBjbGVhcmVkLgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBl
cnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUt
ZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMTdlYmFiYWQ5MTdhYWQ0OTkwMzM4MWVhMzUyM2Uy
MDYyYmFlYjBhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1k
YXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFu
Zz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5U
ZXN0IENsZWFyZWQgU3RvcmU8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlw
dGlvbigiVGVzdHMgY2xlYXJpbmcgb2Ygd2Vic2l0ZSBkYXRhIHN0b3JlLiIpOworICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6
ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRl
c3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAu
MC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcu
MC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEy
Ny4wLjAuNDo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gdGVzdFN0ZXAyKCkgeworICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAg
ICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9y
ZShjb21wbGV0ZVRlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsK
KyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3Rh
dGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGlzIHN0aWxsIGEgcHJl
dmFsZW50IHJlc291cmNlIGFmdGVyIHRoZSBzdG9yZSB3YXMgY2xlYXJlZC4iKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBpcyBubyBsb25nZXIgYSBwcmV2YWxl
bnQgcmVzb3VyY2UgYWZ0ZXIgdGhlIHN0b3JlIHdhcyBjbGVhcmVkLiIpOworCisgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwg
ZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4i
KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRv
cEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3Rh
dGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0
b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3Vi
cmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2lu
Mik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9w
RnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0
aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRv
cEZyYW1lT3JpZ2luMyk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3Rp
Y3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayh0ZXN0U3RlcDIpOworCisgICAgICAgICAgICB0
ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7Cisg
ICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBo
b3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBydW5UZXN0UnVu
bmVyVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJh
c2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRh
YmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDdmOTk5YzZmZWIzMjY1ZGVmZjM5NTFhYzJm
ODE0MGFjMWE2ZWVlMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3Rv
cmUtb25lLWhvdXItZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3Rz
IGNsZWFyaW5nIG9mIHdlYnNpdGUgZGF0YSBzdG9yZSAob25lIGhvdXIpLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJl
c291cmNlLgorUEFTUyBIb3N0IGlzIG5vIGxvbmdlciBhIHByZXZhbGVudCByZXNvdXJjZSBhZnRl
ciB0aGUgc3RvcmUgd2FzIGNsZWFyZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9y
ZS1vbmUtaG91ci1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUt
aG91ci1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjMTVlYzhmOTlhYTNlMzVkZWM1NjkyZWU2
NzYyOTdlZDY0ZjJmOWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0
b3JlLW9uZS1ob3VyLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+
CisgICAgPHRpdGxlPjwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9u
KCJUZXN0cyBjbGVhcmluZyBvZiB3ZWJzaXRlIGRhdGEgc3RvcmUgKG9uZSBob3VyKS4iKTsKKyAg
ICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3
LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0
VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDov
LzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRw
Oi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0
dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgp
IHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
c3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGlzIHN0aWxsIGEg
cHJldmFsZW50IHJlc291cmNlIGFmdGVyIHRoZSBzdG9yZSB3YXMgY2xlYXJlZC4iKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBpcyBubyBsb25nZXIgYSBwcmV2
YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgdGhlIHN0b3JlIHdhcyBjbGVhcmVkLiIpOworCisgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gdGVzdFN0ZXAyKCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQo
Ikhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBw
cmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzQ2xl
YXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZU1vZGlmaWVkU2luY2VIb3VycygxLCBjb21wbGV0
ZVRlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dl
cmVTY2FubmVkKHRydWUpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHt9KTsKKyAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBu
b24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9y
aWdpbjEpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1
ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRp
c3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbjIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVy
VG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRp
c3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbjMpOworCisgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2Fu
RGF0YVJlY29yZHNDYWxsYmFjayh0ZXN0U3RlcDIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc3Rh
dGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICB9CisKKyAgICBp
ZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVz
dFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICAgICAgfSk7Cisg
ICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9uLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhiM2ZjZmEwNDkzODM3OTk2MmRjZDdhN2JkYTQzOTU1MDIyZWMyZTkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2ll
LWRlbGV0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU1IEBACitUZXN0IGZv
ciBwYXJ0aXRpb25lZCBhbmQgdW5wYXJ0aXRpb25lZCBjb29raWUgZGVsZXRpb24uCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKyAgCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4n
CistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLgorUmVjZWl2ZWQg
Y29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUg
bmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBm
aXJzdFBhcnR5Q29va2llPXZhbHVlCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTItLT4n
CistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBj
b29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBu
YW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisK
Ky0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTMtLT4nCistLS0tLS0tLQorVHJ5IHRvIHNldCB0
aGlyZCBwYXJ0eSBjb29raWUuCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNC0tPicK
Ky0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNv
b2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5h
bWVkICd0aGlyZFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKwor
LS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNS0tPicKKy0tLS0tLS0tCitBZnRlciByZW1vdmFs
LCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1l
ZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGly
ZFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0K
K0ZyYW1lOiAnPCEtLWZyYW1lNi0tPicKKy0tLS0tLS0tCitBZnRlciBkZWNsYXNzaWZpZWQsIHNo
b3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdm
aXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFy
dHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlv
bi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4MzRlODcz
MDhhMDM4ZDQyNDYyYjEyMTEyZTRlYmMxNDU1OWRlZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9u
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwg
bGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgcGFydGl0aW9uZWQgYW5kIHVucGFy
dGl0aW9uZWQgY29va2llIGRlbGV0aW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwor
CisgICAgY29uc3QgcGFydGl0aW9uSG9zdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qg
dGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHRo
aXJkUGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0eU9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVOYW1lID0gImZpcnN0
UGFydHlDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgPSAi
L3NldC1jb29raWUucGhwP25hbWU9IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT12
YWx1ZSI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUNvb2tpZU5hbWUgPSAidGhpcmRQYXJ0eUNvb2tp
ZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tp
ZS5waHA/bmFtZT0iICsgdGhpcmRQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAg
ICBjb25zdCBmcmFnbWVudFdpdGhSZXR1cm5VcmwgPSAiaHR0cDovLyIgKyBwYXJ0aXRpb25Ib3N0
ICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi5odG1sIjsKKyAgICBj
b25zdCBzdWJQYXRoVG9HZXRDb29raWVzID0gIi9nZXQtY29va2llcy5waHA/bmFtZTE9IiArIGZp
cnN0UGFydHlDb29raWVOYW1lICsgIiZuYW1lMj0iICsgdGhpcmRQYXJ0eUNvb2tpZU5hbWU7CisK
KyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUodXJs
LCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAg
IGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9h
ZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChl
bGVtZW50KTsKKyAgICB9CisKKworICAgIGZ1bmN0aW9uIGZpcmVEYXRhTW9kaWZpY2F0aW9uSGFu
ZGxlckFuZENvbnRpbnVlKCkgeworICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNz
RGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBzZXRU
aW1lb3V0KHJ1blRlc3QsIDUwMCk7CisgICAgICAgIH0pOworICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gc2V0QXNOb25QcmV2YWxlbnRBbmRDb250aW51ZSgpIHsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgZmFs
c2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiSG9zdCBzdGlsbCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcocnVuVGVzdCk7
CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAg
IHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAiI3N0
ZXAxIjoKKyAgICAgICAgICAgICAgICAvLyBTZXQgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2Nh
bGhvc3QuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFy
dHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIGZyYWdtZW50
V2l0aFJldHVyblVybCArICIjc3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSB0
aGlyZC1wYXJ0eSBoYXMgYWNjZXNzIHRvIGl0cyBmaXJzdC1wYXJ0eSBjb29raWVzLgorICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAgICAgICAg
ICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsg
IiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4iLCBydW5UZXN0KTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAg
ICAgICAgICAgICAgLy8gQ2xhc3NpZnkgbG9jYWxob3N0IGFzIHByZXZhbGVudC4KKyAgICAgICAg
ICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA0IjsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3Jp
Z2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMg
cHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6Cisg
ICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgdGhpcmQtcGFydHkgbm8gbG9uZ2VyIGhh
cyBhY2Nlc3MgdG8gaXRzIGZpcnN0LXBhcnR5IGNvb2tpZXMuCisgICAgICAgICAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNSI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFt
ZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hv
dWxkIHJlY2VpdmUgbm8gY29va2llcy4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNSI6CisgICAgICAgICAgICAgICAgLy8gVHJ5IHNl
dHRpbmcgYSBjb29raWUgYXMgdGhpcmQtcGFydHkuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
bG9jYXRpb24uaGFzaCA9ICJzdGVwNiI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGly
ZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldFRoaXJkUGFydHlDb29raWUgKyAiJm1lc3NhZ2U9
VHJ5IHRvIHNldCB0aGlyZCBwYXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDYiOgorICAgICAgICAgICAgICAgIC8v
IENoZWNrIHRoYXQgdGhlIHRoaXJkLXBhcnR5IHN0aWxsIGhhcyBubyBhY2Nlc3MgdG8gY29va2ll
cyBhbmQgdGhlbiBmaXJlIGRhdGEgcmVjb3JkIHJlbW92YWwuCisgICAgICAgICAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNyI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFt
ZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hv
dWxkIHJlY2VpdmUgbm8gY29va2llcy4iLCBmaXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXJBbmRD
b250aW51ZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3Rl
cDciOgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIHRoaXJkLXBhcnR5IHN0aWxs
IGhhcyBubyBhY2Nlc3MgdG8gY29va2llcyBhbmQgdGhlbiBkZWNsYXNzaWZ5IGxvY2FsaG9zdC4K
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA4IjsKKyAgICAg
ICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29v
a2llcyArICImbWVzc2FnZT1BZnRlciByZW1vdmFsLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWVz
LiIsIHNldEFzTm9uUHJldmFsZW50QW5kQ29udGludWUpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSAiI3N0ZXA4IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0
aGF0IHRoZSB0aGlyZC1wYXJ0eSBzdGlsbCBoYXMgbm8gYWNjZXNzIHRvIGNvb2tpZXMuCisgICAg
ICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENv
b2tpZXMgKyAiJm1lc3NhZ2U9QWZ0ZXIgZGVjbGFzc2lmaWVkLCBzaG91bGQgcmVjZWl2ZSBubyBj
b29raWVzLiIsIGZpbmlzaFRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IHBhcnRpdGlvbkhv
c3QgJiYgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIgJiYgd2luZG93LnRlc3RSdW5uZXIg
JiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFi
YXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJj
ZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOwor
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAg
ICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisKKyAgICAgICAgICAgIHJ1
blRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcnVuVGVzdCgpOwor
ICAgIH0KKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llcy13aXRoLWFuZC13
aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0
aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
ZDEwOTJlZmRlZWU0NmZhYzZlMzZhYzA3NmQ4MTRkMmJiZTVjN2I5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMt
d2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDI1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKyAgCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0t
LQorU2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLgorUmVjZWl2ZWQgY29va2llIG5h
bWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmly
c3RQYXJ0eUNvb2tpZT12YWx1ZQorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUyLS0+Jwor
LS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29v
a2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tp
ZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMy0tPicKKy0tLS0tLS0tCitBZnRlciB1
c2VyIGludGVyYWN0aW9uLCBzaG91bGQgc3RpbGwgcmVjZWl2ZSBubyBjb29raWVzLgorRGlkIG5v
dCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBk
b2N1bWVudC5jb29raWU6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rp
b24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jb29raWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFz
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjljN2EzOWM3M2U5ZjE1YzY2NTBhMTc2YjNlYzkxOGMxYjVmZjY1
YmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0
YWJhc2UuaHRtbApAQCAtMCwwICsxLDg0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9
ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVz
dCBmb3IgUGFydGl0aW9uZWQgQ29va2llcyBXaXRoIGFuZCBXaXRob3V0IFVzZXIgSW50ZXJhY3Rp
b248L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBwYXJ0aXRpb25Ib3N0ID0g
IjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5
T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3Qg
Zmlyc3RQYXJ0eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3Qgc3Vi
UGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsgZmly
c3RQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCBmcmFnbWVudFdp
dGhSZXR1cm5VcmwgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbCI7CisgICAg
Y29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBm
aXJzdFBhcnR5Q29va2llTmFtZTsKKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9u
IG9wZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMg
PSB1cmw7CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVtZW50
Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZXRVc2VySW50
ZXJhY3Rpb25BbmRDb250aW51ZSgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
SGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbih0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJU
aGlyZCBwYXJ0eSBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7Cisg
ICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgewor
ICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2Nh
dGlvbi5ocmVmID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29v
a2llICsgIiMiICsgZnJhZ21lbnRXaXRoUmV0dXJuVXJsICsgIiNzdGVwMiI7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAgICAgICAg
IGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAgICAgICAgICAgIG9wZW5J
ZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdl
PVNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwg
dHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZh
bGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzVXBkYXRlQ29va2llQmxvY2tpbmcocnVuVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAgICAgICAg
ICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsg
IiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwgc2V0VXNlckludGVyYWN0aW9u
QW5kQ29udGludWUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAi
I3N0ZXA1IjoKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsg
c3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1BZnRlciB1c2VyIGludGVyYWN0aW9uLCBz
aG91bGQgc3RpbGwgcmVjZWl2ZSBubyBjb29raWVzLiIsIGZpbmlzaFRlc3QpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0
aW9uLmhvc3QgPT09IHBhcnRpdGlvbkhvc3QgJiYgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PSAi
IiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Cisg
ICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAg
IGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlP
cmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3YXMgY2xhc3Np
ZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0cy4iKTsKKyAg
ICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
cnVuVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1z
Y3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vz
c2libGUtY29va2llcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjM0MDdkY2Yz
ZWRlZWI2MGVjOTY0OTI4NTAxNDUxYTA1MTkyODQ3OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0LWFj
Y2Vzc2libGUtY29va2llcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAor
Q2hlY2sgdGhhdCBvbmx5IEh0dHBPbmx5IGNvb2tpZXMgcmVtYWluIGlmIGFsbCBzY3JpcHQtYWNj
ZXNzaWJsZSBjb29raWVzIGFyZSBkZWxldGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBCZWZvcmUgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246IENsaWVudC1zaWRl
IGNvb2tpZSBleGlzdHMuCitQQVNTIEJlZm9yZSBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjog
SHR0cE9ubHkgY29va2llIGV4aXN0cy4KK1BBU1MgQmVmb3JlIHNjcmlwdC1hY2Nlc3NpYmxlIGRl
bGV0aW9uOiBSZWd1bGFyIHNlcnZlci1zaWRlIGNvb2tpZSBleGlzdHMuCitQQVNTIEFmdGVyIHNj
cmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiAgSHR0cE9ubHkgY29va2llIGV4aXN0cy4KK1BBU1Mg
QWZ0ZXIgZnVsbCBkZWxldGlvbjogICAgICAgICAgICAgICBBbGwgY29va2llcyBhcmUgZ29uZS4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVs
ZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNvb2tpZXMtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vzc2li
bGUtY29va2llcy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwZmM1Mzc3ZDdkZWU2MDQyOTkw
YmUwYzJkYmZiNzQ1YWUwNWNkNTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNv
b2tpZXMtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDczIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxzY3Jp
cHQ+CisgICAgZGVzY3JpcHRpb24oIkNoZWNrIHRoYXQgb25seSBIdHRwT25seSBjb29raWVzIHJl
bWFpbiBpZiBhbGwgc2NyaXB0LWFjY2Vzc2libGUgY29va2llcyBhcmUgZGVsZXRlZC4iKTsKKyAg
ICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGh0dHBPbmx5Q29va2llTmFtZSA9
ICJodHRwLW9ubHktY29va2llIjsKKyAgICBjb25zdCBzZXJ2ZXJTaWRlQ29va2llTmFtZSA9ICJz
ZXJ2ZXItc2lkZS1jb29raWUiOworICAgIGNvbnN0IGNsaWVudFNpZGVDb29raWVOYW1lID0gImNs
aWVudC1zaWRlLWNvb2tpZSI7CisKKyAgICBmdW5jdGlvbiBzb3J0U3RyaW5nQXJyYXkoYSwgYikg
eworICAgICAgICBhID0gYS50b0xvd2VyQ2FzZSgpOworICAgICAgICBiID0gYi50b0xvd2VyQ2Fz
ZSgpOworCisgICAgICAgIHJldHVybiBhID4gYiA/IDEgOiBiID4gYSA/IC0xIDogMDsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBjaGVja0Nvb2tpZXMoaXNBZnRlclNjcmlwdEFjY2Vzc2libGVEZWxl
dGlvbikgeworICAgICAgICBsZXQgdW5zb3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMgPSBbXTsKKyAg
ICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICBpZiAo
IWNvb2tpZXMubGVuZ3RoKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgoaXNBZnRlclNjcmlwdEFj
Y2Vzc2libGVEZWxldGlvbiA/ICJBZnRlciIgOiAiQmVmb3JlIikgKyAiIHNjcmlwdC1hY2Nlc3Np
YmxlIGRlbGV0aW9uOiBObyBjb29raWVzIGZvdW5kLiIpOworICAgICAgICBmb3IgKGxldCBjb29r
aWUgb2YgY29va2llcykgeworICAgICAgICAgICAgc3dpdGNoIChjb29raWUubmFtZSkgeworICAg
ICAgICAgICAgICAgIGNhc2UgaHR0cE9ubHlDb29raWVOYW1lOgorICAgICAgICAgICAgICAgICAg
ICB1bnNvcnRlZFRlc3RQYXNzZWRNZXNzYWdlcy5wdXNoKChpc0FmdGVyU2NyaXB0QWNjZXNzaWJs
ZURlbGV0aW9uID8gIkFmdGVyIiA6ICJCZWZvcmUiKSArICIgc2NyaXB0LWFjY2Vzc2libGUgZGVs
ZXRpb246ICIgKyAoaXNBZnRlclNjcmlwdEFjY2Vzc2libGVEZWxldGlvbiA/ICIgIiA6ICIiKSAr
ICJIdHRwT25seSBjb29raWUgZXhpc3RzLiIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICBjYXNlIHNlcnZlclNpZGVDb29raWVOYW1lOgorICAgICAgICAgICAg
ICAgICAgICBpZiAoaXNBZnRlclNjcmlwdEFjY2Vzc2libGVEZWxldGlvbikKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkFmdGVyIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9u
OiAgUmVndWxhciBzZXJ2ZXItc2lkZSBjb29raWUgZXhpc3RzLiIpOworICAgICAgICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB1bnNvcnRlZFRlc3RQYXNzZWRNZXNz
YWdlcy5wdXNoKCJCZWZvcmUgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246IFJlZ3VsYXIgc2Vy
dmVyLXNpZGUgY29va2llIGV4aXN0cy4iKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgY2FzZSBjbGllbnRTaWRlQ29va2llTmFtZToKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKGlzQWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24pCisgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJBZnRlciBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjog
IENsaWVudC1zaWRlIGNvb2tpZSBleGlzdHMuIik7CisgICAgICAgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgICAgIHVuc29ydGVkVGVzdFBhc3NlZE1lc3NhZ2VzLnB1c2go
IkJlZm9yZSBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogQ2xpZW50LXNpZGUgY29va2llIGV4
aXN0cy4iKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICAgICAgbGV0IHNvcnRlZFRlc3RQYXNzZWRNZXNzYWdlcyA9IHVuc29ydGVkVGVz
dFBhc3NlZE1lc3NhZ2VzLnNvcnQoc29ydFN0cmluZ0FycmF5KTsKKyAgICAgICAgZm9yIChsZXQg
dGVzdFBhc3NlZE1lc3NhZ2Ugb2Ygc29ydGVkVGVzdFBhc3NlZE1lc3NhZ2VzKQorICAgICAgICAg
ICAgdGVzdFBhc3NlZCh0ZXN0UGFzc2VkTWVzc2FnZSk7CisgICAgfQorCisgICAgYXN5bmMgZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyIHx8ICFpbnRlcm5hbHMp
IHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIHRlc3RSdW5uZXIgb3Igbm8gaW50ZXJuYWxz
LiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIGF3YWl0IGZldGNoKCIvY29va2llcy9y
ZXNvdXJjZXMvc2V0LWh0dHAtb25seS1jb29raWUucGhwP2Nvb2tpZU5hbWU9IiArIGh0dHBPbmx5
Q29va2llTmFtZSwgeyBjcmVkZW50aWFsczogInNhbWUtb3JpZ2luIiB9KTsKKyAgICAgICAgYXdh
aXQgZmV0Y2goIi9jb29raWVzL3Jlc291cmNlcy9zZXRDb29raWVzLmNnaSIsIHsgaGVhZGVyczog
eyAiU2V0LUNvb2tpZSI6IHNlcnZlclNpZGVDb29raWVOYW1lICsgIj0xOyBwYXRoPS87IiB9LCBj
cmVkZW50aWFsczogInNhbWUtb3JpZ2luIiB9KTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0g
Y2xpZW50U2lkZUNvb2tpZU5hbWUgKyAiPTEiOworICAgICAgICBjaGVja0Nvb2tpZXMoZmFsc2Up
OworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NEZWxldGVDb29raWVzRm9ySG9zdCgiaHR0
cDovLzEyNy4wLjAuMSIsIGZhbHNlKTsKKyAgICAgICAgY2hlY2tDb29raWVzKHRydWUpOworICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NEZWxldGVDb29raWVzRm9ySG9zdCgiaHR0cDovLzEy
Ny4wLjAuMSIsIHRydWUpOworICAgICAgICBsZXQgY29va2llc0xlZnQgPSBpbnRlcm5hbHMuZ2V0
Q29va2llcygpLmxlbmd0aDsKKyAgICAgICAgaWYgKGNvb2tpZXNMZWZ0ID09PSAwKQorICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiQWZ0ZXIgZnVsbCBkZWxldGlvbjogICAgICAgICAgICAgICBBbGwg
Y29va2llcyBhcmUgZ29uZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiQWZ0ZXIgZnVsbCBkZWxldGlvbjogICAgICAgICAgICAgICIgKyBjb29raWVzTGVmdCArICIg
Y29va2llKHMpIGxlZnQuIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0KKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdhdGlv
bi1yZWRpcmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9u
LXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNzQzMDYxZmYxMTlm
YWQzZjU5N2RjMTVhZTA0YjRiOGM2OTM3OTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2
ZWwtbmF2aWdhdGlvbi1yZWRpcmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBA
QAorUEFTU0VEOiBDb29raWUgc3VjY2Vzc2Z1bGx5IHNldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2
ZWwtbmF2aWdhdGlvbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdh
dGlvbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyMTllM2Q2ODkzMmJmZjE4
YzVhMDFjNTY4NGM0NGYzNzE2ZmRlODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1u
YXZpZ2F0aW9uLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJV
VEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBibG9ja2luZyBpcyBub3QgYXBw
bGllZCB0byB0b3AtbGV2ZWwgbmF2aWdhdGlvbiByZWRpcmVjdHMuIik7CisgICAganNUZXN0SXNB
c3luYyA9IHRydWU7CisKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Vu
YWJsZWQodHJ1ZSk7CisKKyAgICBmdW5jdGlvbiBkb1JlZGlyZWN0KCkKKyAgICB7CisgICAgICAg
IHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlLCBmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IikpIHsKKyAgICAgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIp
OworICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rl
c3QpOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5ocmVmID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3Jlc291cmNlcy9zZXQtY29va2llLW9uLXJlZGlyZWN0LnBocD9zdGVwPTEiOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdkb1JlZGlyZWN0KCknLCAwKSI+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZG8tbm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9u
cy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvZG8tbm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxlLXRvcC1u
YXZpZ2F0aW9ucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDY5YzkxY2FlNmVh
YTNiZGNjODQ2MGM2MzM3YjAyZjdkNjRmMjRmZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0
aXN0aWNzLWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDExIEBACitUZXN0IHRoYXQgYSBub24tcmVkaXJlY3RlZCB0b3AgZnJhbWUgbmF2
aWdhdGlvbiBkb2Vzbid0IGdldCBjYXB0dXJlZCBpbiBzdGF0aXN0aWNzLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVy
ZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIp
IGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJh
bWVVbmRlcigiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgZmFsc2UK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8t
bm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFz
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rv
LW5vdC1jYXB0dXJlLXN0YXRpc3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2aWdhdGlvbnMtZGF0YWJh
c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iODA5MzVhMjM3MGVkYmQ3NjkyNTEzMTliYWM5NDRmNzI4YmM3
NmU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2RvLW5vdC1jYXB0dXJlLXN0YXRpc3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2
aWdhdGlvbnMtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDQ5IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBhIG5vbi1yZWRpcmVj
dGVkIHRvcCBmcmFtZSBuYXZpZ2F0aW9uIGRvZXNuJ3QgZ2V0IGNhcHR1cmVkIGluIHN0YXRpc3Rp
Y3MuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgdGVzdFJ1bm5lci5zZXRVc2VJ
VFBEYXRhYmFzZSh0cnVlKTsKKyAgICBsZXQgdGltZXJIYW5kbGUgPSAwOworCisgICAgZnVuY3Rp
b24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgaWYgKHRpbWVySGFuZGxlKQorICAgICAgICAgIGNs
ZWFyVGltZW91dCh0aW1lckhhbmRsZSk7CisKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgndGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxo
b3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICBzaG91bGRCZUZhbHNlKCd0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly8xMjcu
MC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
KyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0KSB7CisgICAgICAgICAgICBj
YXNlICIxMjcuMC4wLjE6ODAwMCI6CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0
cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IHdhcyBjbGFzc2lmaWVk
IGFzIHByZXZhbGVudCByZXNvdXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1jYXB0dXJlLXN0YXRpc3RpY3MtZm9y
LXNpbXBsZS10b3AtbmF2aWdhdGlvbnMuaHRtbCI7CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICJsb2NhbGhvc3Q6ODAwMCI6Cisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0
YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmlu
c3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soZmluaXNoVGVzdCk7Cisg
ICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigp
KQorICAgICAgICAgICAgICAgICAgICB0aW1lckhhbmRsZSA9IHNldFRpbWVvdXQoZmluaXNoVGVz
dCwgMTAwKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVW5rbm93biBob3N0OiAiICsgZG9jdW1lbnQubG9j
YXRpb24uaG9zdCk7CisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9Cisg
ICAgfQorCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgICAgIHJ1blRlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1y
ZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxv
Y2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhZDdk
OWU1MDA3NmI2ZDE2YmJjMjZhNTA0NmU5OTY5NmQ2ZTA3NjgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92
ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1
MSBAQAorVGVzdHMgdGhhdCBibG9ja2luZyBpcyBub3QgcmVtb3ZlZCBtaWQtZmxpZ2h0IGluIHJl
ZGlyZWN0cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAKKworLS0tLS0tLS0KK0ZyYW1l
OiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBj
b29raWUgZm9yIGxvY2FsaG9zdC4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0
UGFydHlDb29raWVJUCcuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWVM
b2NhbGhvc3QnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tp
ZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWVMb2NhbGhv
c3Q9bG9jYWxob3N0CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTItLT4nCistLS0tLS0t
LQorUmVkaXJlY3QgY2FzZSAxLCBzaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUgZm9y
IDEyNy4wLjAuMS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUlQJy4K
K0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWVMb2NhbGhvc3Qn
LgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGll
bnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWVJUD0xMjcuMC4wLjEKKwor
LS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMy0tPicKKy0tLS0tLS0tCitUcnkgdG8gc2V0IHRo
aXJkLXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0IGluIGJsb2NrZWQgbW9kZS4KKworCistLS0t
LS0tLQorRnJhbWU6ICc8IS0tZnJhbWU0LS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIG5v
IGNvb2tpZS4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWVJ
UCcuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llTG9jYWxo
b3N0Jy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgor
Q2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJh
bWU1LS0+JworLS0tLS0tLS0KK1JlZGlyZWN0IGNhc2UgMiwgc2hvdWxkIG5vdCByZWNlaXZlIGZp
cnN0LXBhcnR5IGNvb2tpZSBmb3IgMTI3LjAuMC4xLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBu
YW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUlQJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQg
J2ZpcnN0UGFydHlDb29raWVMb2NhbGhvc3QnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1l
ZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0
UGFydHlDb29raWVJUD0xMjcuMC4wLjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5nLWluLXJlZGly
ZWN0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmFmY2ZjODExNzJlM2U4Nzg4OWUzNWZkNWJlMmY0NzhjOGE0NGVmMWEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCkBA
IC0wLDAgKzEsMTAwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFk
PgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVz
Y3JpcHRpb24oIlRlc3RzIHRoYXQgYmxvY2tpbmcgaXMgbm90IHJlbW92ZWQgbWlkLWZsaWdodCBp
biByZWRpcmVjdHMuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBw
YXJ0aXRpb25Ib3N0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5T3Jp
Z2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgcmVzb3VyY2VQYXRoID0g
Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3QgdGhpcmRQYXJ0
eUJhc2VVcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsgcmVzb3VyY2VQYXRoOworICAgIGNvbnN0IGZp
cnN0UGFydHlDb29raWVOYW1lUHJlZml4ID0gImZpcnN0UGFydHlDb29raWUiOworICAgIGNvbnN0
IGZpcnN0UGFydHlDb29raWVOYW1lSVAgPSBmaXJzdFBhcnR5Q29va2llTmFtZVByZWZpeCArICJJ
UCI7CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWVMb2NhbGhvc3QgPSBmaXJzdFBhcnR5
Q29va2llTmFtZVByZWZpeCArICJMb2NhbGhvc3QiOworICAgIGNvbnN0IHRoaXJkUGFydHlDb29r
aWVOYW1lID0gInRoaXJkUGFydHlDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldFRoaXJk
UGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIHRoaXJkUGFydHlDb29raWVO
YW1lICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIv
Z2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZUlQICsgIiZuYW1l
Mj0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWVMb2NhbGhvc3QgKyAiJm5hbWUzPSIgKyB0aGlyZFBh
cnR5Q29va2llTmFtZTsKKyAgICBjb25zdCByZWRpcmVjdENoYWluVXJsID0gdGhpcmRQYXJ0eU9y
aWdpbiArIHJlc291cmNlUGF0aCArICIvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89aHR0cDovLyIg
KyBwYXJ0aXRpb25Ib3N0ICsgcmVzb3VyY2VQYXRoICsgc3ViUGF0aFRvR2V0Q29va2llczsKKwor
ICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNv
bnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAg
ZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAg
ICAgICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsK
KyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgLy8gU2V0IGZpcnN0
LXBhcnR5IGNvb2tpZXMgZm9yIDEyNy4wLjAuMSBhbmQgbG9jYWxob3N0LgorICAgICAgICAgICAg
ICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHRoaXJkUGFydHlPcmlnaW4pIHsK
KyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gZmlyc3RQYXJ0eUNvb2tpZU5h
bWVMb2NhbGhvc3QgKyAiPWxvY2FsaG9zdDtwYXRoPScvJyI7CisgICAgICAgICAgICAgICAgICAg
IGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC5odG1sI3N0
ZXAyIjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBkb2N1
bWVudC5jb29raWUgPSBmaXJzdFBhcnR5Q29va2llTmFtZUlQICsgIj0xMjcuMC4wLjE7cGF0aD0n
LyciOworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxv
Y2tpbmctaW4tcmVkaXJlY3QuaHRtbCNzdGVwMSI7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAg
ICAgICAvLyBDaGVjayB0aGF0IHRoZSBjb29raWUgZ2V0cyBzZW50IGZvciBsb2NhbGhvc3QgdW5k
ZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCBpcyBub3QgcHJldmFsZW50LgorICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAgICAgICAgICAg
IG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZt
ZXNzYWdlPVNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0LiIs
IHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0
ZXAzIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA0IjsK
KyAgICAgICAgICAgICAgICAvLyBMb2FkIGFuIGlmcmFtZSBpbiBhIHJlZGlyZWN0IGNoYWluIHRo
YXQgc3RhcnRzIHdpdGggbG9jYWxob3N0IGFuZCBlbmRzIHdpdGggMTI3LjAuMC4xLiBFeHBlY3Qg
YSBjb29raWUgZm9yIDEyNy4wLjAuMS4KKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHJlZGly
ZWN0Q2hhaW5VcmwgKyAiJm1lc3NhZ2U9UmVkaXJlY3QgY2FzZSAxLCBzaG91bGQgcmVjZWl2ZSBm
aXJzdC1wYXJ0eSBjb29raWUgZm9yIDEyNy4wLjAuMS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAg
Ly8gU2V0IGxvY2FsaG9zdCBhcyBwcmV2YWxlbnQgdG8gcHV0IGl0IGluIHRoZSBibG9ja2luZyBj
YXRlZ29yeS4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA1
IjsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSh0aGlyZFBhcnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJk
UGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBk
aWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwNSI6CisgICAgICAgICAgICAgICAgLy8gVHJ5IHRvIHNldCBwYXJ0aXRpb25l
ZCBjb29raWUgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAg
ZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNiI7CisgICAgICAgICAgICAgICAgb3Blbklm
cmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldFRoaXJkUGFydHlDb29raWUgKyAi
Jm1lc3NhZ2U9VHJ5IHRvIHNldCB0aGlyZC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdCBpbiBi
bG9ja2VkIG1vZGUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlICIjc3RlcDYiOgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgbm8gY29v
a2llIGdldHMgc2VudCBmb3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMSBzaW5jZSBsb2NhbGhv
c3QncyBjb29raWVzIGFyZSBibG9ja2VkLgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0
aW9uLmhhc2ggPSAic3RlcDciOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0
eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgICImbWVzc2FnZT1TaG91bGQgcmVjZWl2
ZSBubyBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlICIjc3RlcDciOgorICAgICAgICAgICAgICAgIC8vIExvYWQgYW4gaWZyYW1lIGlu
IGEgcmVkaXJlY3QgY2hhaW4gdGhhdCBzdGFydHMgd2l0aCBsb2NhbGhvc3QgYW5kIGVuZHMgd2l0
aCAxMjcuMC4wLjEuIEV4cGVjdCBhIGNvb2tpZSBmb3IgMTI3LjAuMC4xLgorICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDgiOworICAgICAgICAgICAgICAgIG9w
ZW5JZnJhbWUocmVkaXJlY3RDaGFpblVybCArICImbWVzc2FnZT1SZWRpcmVjdCBjYXNlIDIsIHNo
b3VsZCBub3QgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIDEyNy4wLjAuMS4iLCBydW5U
ZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwOCI6
CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIikgeworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRy
dWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFz
ZSh0cnVlKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
IkxvY2FsaG9zdCB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRo
ZSB0ZXN0IHN0YXJ0cy4iKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVz
QXNUZXh0KCk7CisgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsK
KyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgcnVuVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5v
dC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWludGVy
YWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10
by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDA1ZGMwOWI2OTYzOWYxZDkwYzZjMzdjMjJlZDFiOTZmODYxYzQ0OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91
dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVz
dHMgdGhhdCB0aGUgc2Vzc2lvbiBpcyBub3Qgc3dpdGNoZWQgdXBvbiB0b3AgZnJhbWUgbmF2aWdh
dGlvbiB0byBhIHByZXZhbGVudCByZXNvdXJjZSB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24uCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFNob3VsZCBoYXZlIGFuZCBoYXMg
dGhlIHNlc3Npb24gY29va2llLgorUEFTUyBTaG91bGQgaGF2ZSBhbmQgaGFzIHRoZSBwZXJzaXN0
ZW50IGNvb2tpZS4KK1BBU1MgT3JpZ2luIGhhcyBubyBpc29sYXRlZCBzZXNzaW9uLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dp
dGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlv
bi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13
aXRob3V0LWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmFiZmRiOWM0MmJl
MjBhNzM5NjYyMjQ0ZWVkNGQ3MzY0OGY1YzBkMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Np
b24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFz
ZS5odG1sCkBAIC0wLDAgKzEsMTEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVu
Ij4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRoZSBzZXNz
aW9uIGlzIG5vdCBzd2l0Y2hlZCB1cG9uIHRvcCBmcmFtZSBuYXZpZ2F0aW9uIHRvIGEgcHJldmFs
ZW50IHJlc291cmNlIHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHByZXZhbGVudE9yaWdpbiA9ICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAiOworICAgIGNvbnN0IG5vblByZXZhbGVudE9yaWdpbiA9ICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiOworICAgIGNvbnN0IHNlc3Npb25Db29raWVOYW1lID0gInNlc3Npb25Db29raWUi
OworICAgIGNvbnN0IHBlcnNpc3RlbnRDb29raWVOYW1lID0gInBlcnNpc3RlbnRDb29raWUiOwor
ICAgIGNvbnN0IHR3b01pbnV0ZXNJblNlY29uZHMgPSAxMjA7CisKKyAgICBmdW5jdGlvbiBzZXRT
ZXNzaW9uQ29va2llKCkgeworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzZXNzaW9uQ29va2ll
TmFtZSArICI9MTsgcGF0aD0vIjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZXRQZXJzaXN0ZW50
Q29va2llKCkgeworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBwZXJzaXN0ZW50Q29va2llTmFt
ZSArICI9MTsgcGF0aD0vOyBNYXgtQWdlPSIgKyB0d29NaW51dGVzSW5TZWNvbmRzICsgIjsiOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIGNoZWNrQ29va2llcyhzaG91bGRIYXZlU2Vzc2lvbkNvb2tp
ZSwgc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29raWUpIHsKKyAgICAgICAgbGV0IGhhc1Nlc3Npb25D
b29raWUgPSAoZG9jdW1lbnQuY29va2llICsgIiIpLmluY2x1ZGVzKHNlc3Npb25Db29raWVOYW1l
KSwKKyAgICAgICAgICAgIGhhc1BlcnNpc3RlbnRDb29raWUgPSAoZG9jdW1lbnQuY29va2llICsg
IiIpLmluY2x1ZGVzKHBlcnNpc3RlbnRDb29raWVOYW1lKTsKKworICAgICAgICBpZiAoc2hvdWxk
SGF2ZVNlc3Npb25Db29raWUgJiYgaGFzU2Vzc2lvbkNvb2tpZSkKKyAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIlNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHNlc3Npb24gY29va2llLiIpOworICAgICAg
ICBlbHNlIGlmIChzaG91bGRIYXZlU2Vzc2lvbkNvb2tpZSAmJiAhaGFzU2Vzc2lvbkNvb2tpZSkg
eworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkIGhhdmUgYnV0IGRvZXNuJ3QgaGF2ZSB0
aGUgc2Vzc2lvbiBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UgaWYgKCFzaG91bGRIYXZlU2Vzc2lvbkNv
b2tpZSAmJiBoYXNTZXNzaW9uQ29va2llKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTaG91
bGRuJ3QgaGF2ZSBidXQgaGFzIHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKKyAgICAgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxkbid0IGhhdmUgYW5kIGRvZXNuJ3QgaGF2ZSB0aGUg
c2Vzc2lvbiBjb29raWUuIik7CisKKworICAgICAgICBpZiAoc2hvdWxkSGF2ZVBlcnNpc3RlbnRD
b29raWUgJiYgaGFzUGVyc2lzdGVudENvb2tpZSkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlNo
b3VsZCBoYXZlIGFuZCBoYXMgdGhlIHBlcnNpc3RlbnQgY29va2llLiIpOworICAgICAgICBlbHNl
IGlmIChzaG91bGRIYXZlUGVyc2lzdGVudENvb2tpZSAmJiAhaGFzUGVyc2lzdGVudENvb2tpZSkg
eworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkIGhhdmUgYnV0IGRvZXNuJ3QgaGF2ZSB0
aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UgaWYgKCFzaG91bGRIYXZlUGVyc2lz
dGVudENvb2tpZSAmJiBoYXNQZXJzaXN0ZW50Q29va2llKSB7CisgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJTaG91bGRuJ3QgaGF2ZSBidXQgaGFzIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsKKyAg
ICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxkbid0IGhhdmUgYW5kIGRvZXNu
J3QgaGF2ZSB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgfQorCisgICAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7Cisg
ICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgIHNldFNlc3Npb25Db29r
aWUoKTsKKyAgICAgICAgICAgICAgICBzZXRQZXJzaXN0ZW50Q29va2llKCk7CisgICAgICAgICAg
ICAgICAgY2hlY2tDb29raWVzKHRydWUsIHRydWUpOworICAgICAgICAgICAgICAgIGlmICh0ZXN0
UnVubmVyLmhhc1N0YXRpc3RpY3NJc29sYXRlZFNlc3Npb24ocHJldmFsZW50T3JpZ2luKSkgewor
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPcmlnaW4gaGFzIGlzb2xhdGVkIHNlc3Np
b24uIik7CisgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlz
aEpTVGVzdCk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRl
c3RQYXNzZWQoIk9yaWdpbiBoYXMgbm8gaXNvbGF0ZWQgc2Vzc2lvbi4iKTsKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gbm9uUHJldmFsZW50T3JpZ2luICsgIi9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRv
LXByZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9uLmh0bWwjc3RlcDIiOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBpZiAoZG9j
dW1lbnQubG9jYXRpb24ub3JpZ2luICE9PSBub25QcmV2YWxlbnRPcmlnaW4pCisgICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIlN0ZXAgMiBpcyBub3Qgb24gIiArIG5vblByZXZhbGVudE9y
aWdpbiArICIuIik7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UocHJldmFsZW50T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHByZXZhbGVudE9yaWdpbikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQocHJldmFsZW50T3JpZ2luICsgIiBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291
cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHBy
ZXZhbGVudE9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNl
c3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi5odG1s
I3N0ZXA0IjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVw
NCI6CisgICAgICAgICAgICAgICAgY2hlY2tDb29raWVzKHRydWUsIHRydWUpOworICAgICAgICAg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmhhc1N0YXRpc3RpY3NJc29sYXRlZFNlc3Npb24ocHJldmFs
ZW50T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3JpZ2luIGhhcyBp
c29sYXRlZCBzZXNzaW9uLiIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiT3JpZ2luIGhhcyBubyBpc29sYXRlZCBzZXNzaW9uLiIpOworICAg
ICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIlVua25vd24gaGFzaC4iKTsKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYg
KGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5s
b2NhdGlvbi5vcmlnaW4gIT09IHByZXZhbGVudE9yaWdpbikKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoIlRlc3QgaXMgbm90IHN0YXJ0aW5nIG91dCBvbiAiICsgcHJldmFsZW50T3JpZ2luICsgIi4i
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFz
ZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShw
cmV2YWxlbnRPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQocHJldmFsZW50T3Jp
Z2luICsgIiB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0
ZXN0IHN0YXJ0cy4iKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3Rl
cDEiOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9k
b3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVyeS1mcm9tLXBy
ZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2
aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmYmE4MTAzNWUyZmVjYmExMzk0ZDAxZGYyZTliZTIw
Njk1ZTg1YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRo
LWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTAgQEAKK0NoZWNrIHRoYXQgZG9jdW1lbnQucmVmZXJyZXIgaXMgZG93bmdy
YWRlZCB0byB0aGUgZVRMRCsxIGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGlu
ayBxdWVyeS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHJlZmVy
cmVyIGlzIGRvd25ncmFkZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1s
aW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJl
ci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2Ut
ZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YWViZGU5NWJlOGEwNTJhZmYzNjc5YzA2ODg1YWUx
NzAyZTFkNzU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0
aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAs
MCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQg
c3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKSI+Cis8c2NyaXB0PgorICAg
IGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IGRvY3VtZW50LnJlZmVycmVyIGlzIGRvd25ncmFkZWQg
dG8gdGhlIGVUTEQrMSBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVl
cnkuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBsZXQgbnVtYmVyT2ZUcmll
cyA9IDA7CisgICAgZnVuY3Rpb24gdGVzdFJlZmVycmVyKCkgeworICAgICAgICBpZiAoZG9jdW1l
bnQucmVmZXJyZXIgPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luICsgIi8iKSB7CisgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJUaGUgcmVmZXJyZXIgaXMgZG93bmdyYWRlZC4iKTsKKyAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0gZWxz
ZSBpZiAoKytudW1iZXJPZlRyaWVzIDw9IDUpCisgICAgICAgICAgICBzZXRUaW1lb3V0KHRlc3RS
ZWZlcnJlciwgMjAwKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJU
aGUgcmVmZXJyZXIgaXMgbm90IGRvd25ncmFkZWQ6ICIgKyBkb2N1bWVudC5yZWZlcnJlcik7Cisg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAg
ICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVTYW1lT3JpZ2luVG9BZGRRdWVyeSgp
IHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHByZXZhbGVudFJlc291cmNlT3Jp
Z2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5h
dmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWw/bGlu
az1xdWVyeSI7CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsK
KyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24t
d2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWwiOworICAgIH0KKwor
ICAgIGNvbnN0IGRlc3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7Cisg
ICAgY29uc3QgcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IjsKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRp
b24ub3JpZ2luID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiAmJiBkb2N1bWVudC5sb2NhdGlv
bi5zZWFyY2ggPT09ICIiKSB7CisgICAgICAgICAgICBuYXZpZ2F0ZVNhbWVPcmlnaW5Ub0FkZFF1
ZXJ5KCk7CisgICAgICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luID09PSBw
cmV2YWxlbnRSZXNvdXJjZU9yaWdpbikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJ
VFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVu
Y3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJj
ZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29v
a2llQmxvY2tpbmcobmF2aWdhdGVDcm9zc09yaWdpbik7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RSZWZlcnJl
cigpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5h
YmxlLWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTIxOWRkM2IxMWYyYTM0YzQ1NzUzNDBlNzM4ZGFkY2Zh
MGNjZmNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEwIEBACitUZXN0IGZvciBlbmFibGluZyBkZWJ1ZyBtb2RlIGFuZCB0aGF0IGl0
IHBlcm1hbmVudGx5IHRyZWF0cyAzcmRwYXJ0eXRlc3R3ZWJraXQub3JnIGFzIGEgcHJldmFsZW50
IHJlc291cmNlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBodHRwOi8v
M3JkcGFydHl0ZXN0d2Via2l0Lm9yZyBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZSBpbiBk
ZWJ1ZyBtb2RlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjM3ZmY5MjI1NjdmOWE0NzI4MjczZGZhNDczMjYzN2E0ODVjYjlm
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMzQg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEg
Y2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVz
dCBmb3IgZW5hYmxpbmcgZGVidWcgbW9kZSBhbmQgdGhhdCBpdCBwZXJtYW5lbnRseSB0cmVhdHMg
M3JkcGFydHl0ZXN0d2Via2l0Lm9yZyBhcyBhIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0
cDovLzNyZHBhcnR5dGVzdHdlYmtpdC5vcmciOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
ICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRh
YmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQodGhpcmRQYXJ0
eU9yaWdpbiArICIgYWxyZWFkeSBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUodHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKHRoaXJkUGFydHlPcmlnaW4gKyAiIGRpZG4ndCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNv
dXJjZS4iKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQodGhpcmRQYXJ0eU9yaWdpbiArICIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Ug
aW4gZGVidWcgbW9kZS4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NEZWJ1Z01vZGUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRh
YmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDE4MDNiZmNiNTNiMTQwNDlkNWUxZGFhZTVi
MjViNjI3ZmFjZTVhNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKK1BBU1MgR3JhbmRmYXRoZXJlZCBjb29raWUgd2FzIG5vdCBwdXJnZWQuCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uY2JkZDA0MWRkZDE3ZjhmNDZlY2EzNDcwZjE4MzRmZmE0MmQ2NWQ4ZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9n
cmFuZGZhdGhlcmluZy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTE1IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04
Ij4KKyAgICA8dGl0bGU+VGVzdCBmb3IgR3JhbmRmYXRoZXJpbmc8L3RpdGxlPgorICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdD4KKyAgICBjb25zdCBmaXJzdFBhcnR5T3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCI7CisgICAgY29uc3QgZmlyc3RQYXJ0eUJhc2VVcmwgPSBmaXJzdFBhcnR5T3JpZ2luICsg
Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3QgZmlyc3RQYXJ0
eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUNv
b2tpZU5hbWUgPSAidGhpcmRQYXJ0eUNvb2tpZSI7CisgICAgY29uc3QgY29va2llVmFsdWUgPSAi
dmFsdWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgPSAiL3NldC1j
b29raWUucGhwP25hbWU9IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT0iICsgY29v
a2llVmFsdWU7CisgICAgY29uc3QgcmV0dXJuVXJsID0gZmlyc3RQYXJ0eU9yaWdpbiArICIvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy5odG1sIjsKKyAgICBjb25zdCB0aGly
ZFBhcnR5T3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQ
YXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3Jlc291cmNlcyI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNvb2tpZSA9ICIv
c2V0LWNvb2tpZS5waHA/bmFtZT0iICsgdGhpcmRQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPSIg
KyBjb29raWVWYWx1ZTsKKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGZpcmVE
YXRhTW9kaWZpY2F0aW9uSGFuZGxlckFuZENvbnRpbnVlKCkgeworICAgICAgICB0ZXN0UnVubmVy
Lmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgICAgICB0ZXN0UnVubmVy
LnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gY2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZUFuZENvbnRpbnVlKCkg
eworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVu
dFN0b3JlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAg
ICAgICAgICAgLy8gU2V0IGEgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3QuCisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGZpcnN0UGFydHlCYXNlVXJsICsg
c3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIHJldHVyblVybCArICIjc3RlcDIi
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAg
ICAgICAgICAvLyBDaGVjayB0aGF0IGxvY2FsaG9zdCdzIGNvb2tpZSBpcyB0aGVyZS4KKyAgICAg
ICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSBmaXJzdFBhcnR5Q29va2llTmFtZSAr
ICI9IiArIGNvb2tpZVZhbHVlKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJGaXJz
dC1wYXJ0eSBjb29raWUgbm90IHNldC4iKTsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDQiOworICAgICAgICAgICAg
ICAgIC8vIENsZWFyIHN0b3JlIHRvIHRyaWdnZXIgZ3JhbmRmYXRoZXJpbmcuCisgICAgICAgICAg
ICAgICAgY2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZUFuZENvbnRpbnVlKCk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAgICAgICAgICAg
IC8vIFNldCBsb2NhbGhvc3QgYXMgcHJldmFsZW50IHJlc291cmNlLgorICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxo
b3N0IiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IGRpZCBub3QgZ2V0
IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHJ1blRl
c3QoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgIiNzdGVwNSI6CisgICAgICAgICAgICAgICAgLy8gU2V0IGEgZmlyc3QtcGFy
dHkgY29va2llIGZvciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNvb2tp
ZSArICIjIiArIHJldHVyblVybCArICIjc3RlcDYiOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSAiI3N0ZXA2IjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2Nh
dGlvbi5oYXNoID0gInN0ZXA3IjsKKyAgICAgICAgICAgICAgICAvLyBTZXQgMTI3LjAuMC4xIGFz
IHByZXZhbGVudCByZXNvdXJjZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vMTI3LjAuMC4xIiwgdHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZSgiaHR0cDovLzEyNy4wLjAuMSIpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiMTI3LjAuMC4xIGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNyI6
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwOCI7CisgICAg
ICAgICAgICAgICAgLy8gVHJpZ2dlciBhIHB1cmdlLgorICAgICAgICAgICAgICAgIGZpcmVEYXRh
TW9kaWZpY2F0aW9uSGFuZGxlckFuZENvbnRpbnVlKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlICIjc3RlcDgiOgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRo
YXQgbG9jYWxob3N0J3MgY29va2llIGlzIHN0aWxsIHRoZXJlLgorICAgICAgICAgICAgICAgIGlm
IChkb2N1bWVudC5jb29raWUgIT09IGZpcnN0UGFydHlDb29raWVOYW1lICsgIj0iICsgY29va2ll
VmFsdWUpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkZpcnN0LXBhcnR5IGNvb2tp
ZSBwdXJnZWQuIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJHcmFuZGZhdGhlcmVkIGNvb2tpZSB3YXMgbm90IHB1cmdlZC4iKTsKKyAgICAg
ICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCBub3QgYmUg
cmVhY2hlZC4iKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIgJiYgd2luZG93LnRl
c3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVz
ZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3Np
ZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1v
dmFsKDApOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICBk
b2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsK
KyAgICAgICAgfSk7CisgICAgfSBlbHNlCisgICAgICAgIHJ1blRlc3QoKTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVy
YWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRl
cmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg5Zjg1NWE3ODljZjEw
YmYzMzBmNGM5MmVhMTJiOTQxYWJlZmMwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNl
LXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1
IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BB
U1MgQ29va2llIG5vdCBkZWxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVz
ZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRl
cmFjdGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5N2U4MGZkNjY0ZWUxZWE4MDM4ZDll
ODcyYzczOTU3MjkwZjUxMWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVz
ZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04
Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIE5vbi1QcmV2YWxlbnQgUmVzb3VyY2UgV2l0aCBVc2Vy
IEludGVyYWN0aW9uPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVu
ZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJo
dHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IG90aGVyUHJldmFs
ZW50VXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIHJ1
blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSAiIikK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBub3QgZW1wdHkuIik7Cisg
ICAgICAgIGNvbnN0IGNvb2tpZSA9ICJ0ZXN0Q29va2llPXRlc3RWYWx1ZSI7CisgICAgICAgIGRv
Y3VtZW50LmNvb2tpZSA9IGNvb2tpZSArICI7IG1heC1hZ2U9MTAwOyI7CisgICAgICAgIGlmIChk
b2N1bWVudC5jb29raWUgIT09IGNvb2tpZSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3Vt
ZW50LmNvb2tpZSBkaWQgbm90IGdldCBzZXQuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBk
aWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAg
ICAgLy8gVGhpcyBpcyBkb25lIHRvIG5vdCBoYXZlIGFuIGVtcHR5IHNldCBvZiBwcmV2YWxlbnQg
cmVzb3VyY2VzLgorICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIGRhdGEgcmVjb3JkcyBhcmUgbmV2
ZXIgc2Nhbm5lZC4KKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uob3Ro
ZXJQcmV2YWxlbnRVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPdGhlciBo
b3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3Rh
dGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgh
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1Vy
bCkpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0
IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llID09
PSBjb29raWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29va2ll
IG5vdCBkZWxldGVkLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBkZWxldGVkIG9yIGRvY3VtZW50
LmNvb2tpZSBjb250YWlucyBvdGhlciBjb29raWVzOiAiICsgZG9jdW1lbnQuY29va2llKTsKKwor
ICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5
UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29y
ZHNSZW1vdmFsKDApOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQ
cm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50Lmxv
Y2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2lu
ZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRy
dWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7Cisg
ICAgICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQt
dXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRo
b3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4
OWY4NTVhNzg5Y2YxMGJmMzMwZjRjOTJlYTEyYjk0MWFiZWZjMDcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZh
bGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCitQQVNTIENvb2tpZSBub3QgZGVsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQt
cmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNv
dXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
YmNlOTkwNDVmMGEzZWNjZGJhZDE4Nzg3ZWVkOGZmZjY2NTdmZjY1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2
YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKQEAg
LTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4K
KyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBOb24tUHJl
dmFsZW50IFJlc291cmNlIFdpdGhvdXQgVXNlciBJbnRlcmFjdGlvbjwvdGl0bGU+CisgICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOwor
ICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90
ZW1wIjsKKyAgICBjb25zdCBvdGhlclByZXZhbGVudFVybCA9ICJodHRwOi8vbG9jYWxob3N0Ojgw
MDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAg
aWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1
bWVudC5jb29raWUgbm90IGVtcHR5LiIpOworICAgICAgICBjb25zdCBjb29raWUgPSAidGVzdENv
b2tpZT10ZXN0VmFsdWUiOworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBjb29raWUgKyAiOyBt
YXgtYWdlPTEwMDsiOworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSBjb29raWUpCisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgZGlkIG5vdCBnZXQgc2V0LiIp
OworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgZG9uZSB0byBub3QgaGF2
ZSBhbiBlbXB0eSBzZXQgb2YgcHJldmFsZW50IHJlc291cmNlcy4KKyAgICAgICAgICAgIC8vIE90
aGVyd2lzZSBkYXRhIHJlY29yZHMgYXJlIG5ldmVyIHNjYW5uZWQuCisgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZhbGVudFVybCwg
dHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsKSkKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiT3RoZXIgaG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFs
ZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGVhcmVkIG9mIHVzZXIgaW50ZXJhY3Rpb24u
Iik7CisKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0Rp
ZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSA9PT0gY29va2llKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RQYXNzZWQoIkNvb2tpZSBub3QgZGVsZXRlZC4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJDb29raWUgZGVsZXRlZCBvciBkb2N1bWVudC5jb29raWUgY29udGFpbnMgb3RoZXIgY29va2ll
czogIiArIGRvY3VtZW50LmNvb2tpZSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVt
b3ZhbChmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3Jk
cygpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOwor
ICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0
ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRh
UmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3Qo
KTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHkt
Y29udGV4dC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1j
b29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMGZiOTdmOTFmY2QzM2NjOTc4OTc5Y2Q0OGE1NWE0OTQ3NGQyNzcxMQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ub24tcHJldmFsZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1w
YXJ0eS1jb250ZXh0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCistLS0tLS0t
LQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIG9uZSBj
b29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50
LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZh
bGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4
dC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRo
aXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjRjZmNiMWYzZTM3
MjBmY2EyMjNjNDJkODc4YzI1YTk2NjIyOWJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3Vy
Y2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2Uu
aHRtbApAQCAtMCwwICsxLDY0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4K
KzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdCB0byBl
bnN1cmUgbm9uLXByZXZhbGVudCByZXNvdXJjZXMgY2FuIGFjY2VzcyB0aGVpciBjb29raWVzIGlu
IGEgdGhpcmQgcGFydHkgY29udGV4dDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNv
bnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFy
dHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5
QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVz
b3VyY2VzIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29v
a2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29v
a2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOwor
ICAgIGNvbnN0IGZyYWdtZW50V2l0aFJldHVyblVybCA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlcy1jYW4tYWNjZXNz
LWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0Lmh0bWwiOworICAgIGNvbnN0IHN1YlBh
dGhUb0dldENvb2tpZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNv
b2tpZU5hbWU7CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1l
KHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAg
ICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBv
bkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoZWxlbWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAg
c3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3Rl
cDEiOgorICAgICAgICAgICAgICAgIC8vIFNldCBhIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9j
YWxob3N0LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBh
cnR5QmFzZVVybCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyBmcmFnbWVu
dFdpdGhSZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgLy8gTG9hZCBsb2NhbGhvc3Qg
dW5kZXIgMTI3LjAuMC4xIGFuZCBjaGVjayB0aGF0IGl0IGdldHMgaXRzIGNvb2tpZS4KKyAgICAg
ICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29v
a2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBvbmUgY29va2llLiIsIGZpbmlzaFRlc3Qp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRv
Y3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IHBhcnRpdGlvbkhvc3QgJiYgZG9jdW1lbnQubG9jYXRp
b24uaGFzaCA9PSAiIiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZy
YW1lc0FzVGV4dCgpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
dGhpcmRQYXJ0eU9yaWdpbiwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5T3Jp
Z2luLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2ggPSAic3RlcDEiOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBy
dW5UZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRi
b3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2M2M3MjAyYjAzZTc3MGQ2ZTQ0NmZiNmYzNDAw
ZmIzOGM1OWY1MzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8t
bG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitU
ZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRl
ZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxo
b3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRw
Oi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lz
dGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9z
dCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRv
LWlwLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRv
LWlwLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjViZGE2ZjlmMWJjZWJmNDg5NDU1YmVjZTQ4
NWY1Y2VjZDFmNjA5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10
by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0
aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0
cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBw
cm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKwor
ICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBsYXN0
UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHNDaGVj
a2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsK
KyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAi
KSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAt
MSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZB
SUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZl
bnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQg
PSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBm
aW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0
aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIs
ICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxo
b3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8x
MjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hl
Y2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2Fk
ZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJh
c2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0
YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8vMTI3
LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhw
P3JlZGlyZWN0VG89aHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cmVzb3VyY2VzL3JlZGlyZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAuMC4xOjgwMDAv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvaWZyYW1lLXJlcG9ydC1iYWNrLWxvYWRl
ZC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
bi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3Qt
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2M2M3MjAyYjAzZTc3MGQ2ZTQ0NmZi
NmYzNDAwZmIzOGM1OWY1MzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3Qt
bG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJh
bWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigi
aHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2Nh
bGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0
dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2Fs
aG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVj
dC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NGI1ZWU5OTM3MDQxMDUyZGMyNmU4ZjZhNTg2OWEyMjEzMjAwM2EzMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFi
YXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEg
bm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpz
VGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVz
c2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNo
VGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVz
dCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2Fk
ZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAg
IGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQu
b3JpZ2luID09PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikgeworICAgICAgICAgICAgICAgIGlm
IChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2Ug
ZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAg
ICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlm
IChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2Vy
dmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7
CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4x
IiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NS
ZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2Nh
bGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAg
ICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZp
bmlzaFRlc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVk
KHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRT
Y2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRw
Oi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJl
Y3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHAvP3JlZGlyZWN0VG89aHR0cDovL2xvY2FsaG9z
dDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2lmcmFtZS1yZXBvcnQtYmFj
ay1sb2FkZWQuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJv
eGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAt
dG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZy
YW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRv
LWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjUxNmYxMzJmOWZiMTAxMzY4
MjI2M2M2ZjJjODEwYjdmYWY5ZDhmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8t
aXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVk
aXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94
ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1l
VW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BB
U1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRw
Oi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAu
MSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1l
LXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlw
LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJkOWNhNTkwMWRiODBlMGRkMDJjMjA1MjAzM2MxNTdkZGQzNmUzMWQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGly
ZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRp
b24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3Rl
ZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAg
ICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9u
IGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5p
c2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENo
YWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKwor
ICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYg
KGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAg
ICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBt
ZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisg
ICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAg
ICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3Rp
ZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygp
IHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdp
c3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4w
LjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEy
Ny4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRw
Oi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAg
ICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAg
ICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikg
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJl
U2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0
aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNy
Yz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2Vz
L3BhZ2Utd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3Qt
dG8taXAuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVk
LW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxo
b3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5n
LWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1p
cC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliNTE2ZjEz
MmY5ZmIxMDEzNjgyMjYzYzZmMmM4MTBiN2ZhZjlkOGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1u
ZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9z
dC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIg
QEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3Rl
ZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1Jl
Z2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4w
LjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNS
ZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0
cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdU
bygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJv
eGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9j
YWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8t
bG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFlMzNmNjY3ZGEzNTlmM2E4MmJm
M2MwYzMxMGQzNGVjMzc1YjM0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1l
LXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxv
Y2FsaG9zdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVk
aXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94
ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNl
aXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7Cisg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAg
ICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7
CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiBy
ZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0
YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5l
eHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAgICAgICBsYXN0UGFn
ZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVj
a2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNo
b3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVu
ZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAg
ICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGly
ZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAg
ICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFz
UmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsK
KworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0
UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7
CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNv
cmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAg
IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAu
MTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1ub24tc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0Lmh0bWwi
PgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlm
cmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlw
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQxNmU2MWZkMDE1ZmQ3YWUzY2I4NjZiNjkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJh
bWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQgaWZy
YW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0
cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdp
c3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4w
LjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVk
aXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVj
dC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1l
LXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzM4ZWEzYjU5YTBhNzA3NDNkMzQ1ZGYwNTJlYTYyOWQy
ZjZiOTNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94
ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBA
IC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2Ny
aXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAg
ICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBp
ZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVy
bHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAg
ICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJ
blJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9
IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAg
ICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAibnVsbCIpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdl
IGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAg
ICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBp
ZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNl
cnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAg
ICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVk
QXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScp
OworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lz
dGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAu
MSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9j
YWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAg
ICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBm
aW5pc2hUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5l
ZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlk
U2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0
cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Ut
d2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC5odG1s
Ij4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1p
ZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1s
b2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQxNmU2MWZkMDE1
ZmQ3YWUzY2I4NjZiNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRo
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1k
YXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVj
dHMgZm9yIGEgc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlmcmFt
ZSBnZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJo
dHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2Fs
aG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0
cDovL2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRh
YmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGly
ZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41N2ZhZjAwYThmZDcyZjE0NGVhYWVlZTRhN2QyZDBjYjQ5YjhkOTk1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1z
YW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxv
Y2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0
aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBp
biBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAg
ICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
Im1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZp
bmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hK
U1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWlu
TG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAg
ICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2
ZW50Lm9yaWdpbiA9PT0gIm51bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEu
aW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChl
dmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhw
ZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJ
blJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tl
ZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91
bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRl
cigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAg
IHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVj
dGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAg
ICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1Jl
ZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisK
KyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBh
Z2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jk
c0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9wYWdlLXdpdGgtc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0Lmh0bWwiPgorPC9p
ZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41NDliZmI5MGNjMWFjNWY5MzE1ZGRmMDljZDRiOTMxYzk4Yjc0N2VmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDI0IEBACitUZXN0cyB0aGF0IGNvb2tpZSBibG9ja2luZyBpcyBhcHBsaWVkIHRv
IHBpbmcgbG9hZHMuCisgICAKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0t
LS0tLS0tCitTaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29r
aWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2ll
OiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTIt
LT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2
ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQu
Y29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUzLS0+JworLS0tLS0tLS0KK1Bp
bmcgcmVjZWl2ZWQuCitIVFRQX0hPU1Q6IGxvY2FsaG9zdDo4MDAwCitSRVFVRVNUX1VSSTogL2Nv
bnRlbnRleHRlbnNpb25zL3Jlc291cmNlcy9zYXZlLXBpbmcucGhwP3Rlc3Q9cGluZy10by1wcmV2
YWxlbnQtcmVzb3VyY2UKK05vIGNvb2tpZXMgaW4gcGluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZhbGVudC1y
ZXNvdXJjZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uN2U4ZmExMWQ5NzMxMzBkYzhiMTllMjgyODgyYTFkMzQ4YWY5ZjM5YwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsOTgg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEg
Y2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWkt
aGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMg
dGhhdCBjb29raWUgYmxvY2tpbmcgaXMgYXBwbGllZCB0byBwaW5nIGxvYWRzLjwvZGl2PgorPGEg
aWQ9InRhcmdldExpbmsiIGhyZWY9IiMiIHBpbmc9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9jb250
ZW50ZXh0ZW5zaW9ucy9yZXNvdXJjZXMvc2F2ZS1waW5nLnBocD90ZXN0PXBpbmctdG8tcHJldmFs
ZW50LXJlc291cmNlIj5UaGUgbGluazwvYT4KKzxzY3JpcHQ+CisgICAgaWYgKHRlc3RSdW5uZXIp
CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgY29uc3QgcGFydGl0
aW9uSG9zdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHJlc291cmNlUGF0aCA9ICIvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNl
VXJsID0gdGhpcmRQYXJ0eU9yaWdpbiArIHJlc291cmNlUGF0aDsKKyAgICBjb25zdCBmaXJzdFBh
cnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9T
ZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5
Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHJldHVyblVybCA9ICJodHRw
Oi8vIiArIHBhcnRpdGlvbkhvc3QgKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1w
cmV2YWxlbnQtcmVzb3VyY2UuaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9
ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZTsKKworICAg
IGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQsIGNhbGxiYWNrKSB7CisgICAgICAg
IHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKKyAgICAg
ICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRo
IC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQu
b2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBj
ZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAg
IGNhbGxiYWNrKCk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQor
ICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxvYWRI
YW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbkxv
YWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7
CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAg
ICAgICAgICAgLy8gU2V0IGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFzZVVybCArIHN1
YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyByZXR1cm5VcmwgKyAiI3N0ZXAyIjsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAg
ICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgY29va2llIGdldHMgc2VudCBmb3IgbG9jYWxo
b3N0IHVuZGVyIDEyNy4wLjAuMSBzaW5jZSBsb2NhbGhvc3QgaXMgbm90IHByZXZhbGVudC4KKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAg
ICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2ll
cyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwgcnVuVGVz
dCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgor
ICAgICAgICAgICAgICAgIC8vIFNldCBsb2NhbGhvc3QgYXMgcHJldmFsZW50IHRvIHB1dCBpdCBp
biB0aGUgYmxvY2tpbmcgY2F0ZWdvcnkuCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNv
b2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2Nh
dGlvbi5oYXNoID0gInN0ZXA0IjsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgLy8g
Q2hlY2sgdGhhdCBubyBjb29raWUgZ2V0cyBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAu
MC4xIHNpbmNlIGxvY2FsaG9zdCdzIGNvb2tpZXMgYXJlIGJsb2NrZWQuCisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNSI7CisgICAgICAgICAgICAgICAgb3Bl
bklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAgIiZtZXNz
YWdlPVNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDUiOgorICAgICAgICAgICAgICAgIC8v
IENsaWNrIHRoZSBsaW5rIHRvIHRyaWdnZXIgdGhlIHBpbmcuCisgICAgICAgICAgICAgICAgYWN0
aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eU9yaWdpbiArICIvY29udGVudGV4dGVuc2lvbnMvcmVz
b3VyY2VzL2dldC1waW5nLWRhdGEucGhwP3Rlc3Q9cGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2Ui
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVt
b3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaCgiL2NvbnRlbnRleHRlbnNpb25zL3Jlc291
cmNlcy9kZWxldGUtcGluZy5waHA/dGVzdD1waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZSIpLnRo
ZW4oKCk9PnsgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7IH0pOworICAgICAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRl
c3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVz
b3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFu
ZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGUzMmM1OTNk
ZTEwZDU3NzM3MTAxMzU3MWRkMzQ4ZjUzODUxOTZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJj
ZS1oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAK
K1Rlc3RzIHRoYXQgd2UgZ3JhbnQgVXNlciBJbnRlcmFjdGlvbiBjcmVkaXQgZm9yIGhhbmRsZWQg
a2V5cHJlc3Nlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1NpbXVsYXRlIHVz
ZXIgdHlwaW5nIGxldHRlciAnYScgaW50byB0aGUgZmllbGQuCitQQVNTIHRlc3RJbnB1dC52YWx1
ZSBpcyAiYSIKK1BBU1MgT3JpZ2luIHdhcyBncmFudGVkIHVzZXIgaW50ZXJhY3Rpb24uCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxl
bnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRs
ZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlNTZhNTBjY2M4NGY4MGExNzVk
ZjQ2N2ZmNzg4OTRjZTdiNTE5ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQt
a2V5ZG93bi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgd2UgZ3JhbnQg
VXNlciBJbnRlcmFjdGlvbiBjcmVkaXQgZm9yIGhhbmRsZWQga2V5cHJlc3Nlcy4iKTsKK2pzVGVz
dElzQXN5bmMgPSB0cnVlOworCitjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC90ZW1wIjsKKworb25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgY29uc3QgdGVzdEZy
YW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIpOworCisgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgIH0K
KworICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0
YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsZWFyZWQgb2YgdXNl
ciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgdGVzdElucHV0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRlc3RJbnB1dCIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3Rh
bGxTdGF0aXN0aWNzRGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRlc3RJbnB1dC52YWx1ZSIsICJh
Iik7CisKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJPcmlnaW4gZGlkIG5vdCBnZXQgdXNlciBpbnRlcmFjdGlvbiBjcmVkaXQuIik7Cisg
ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPcmln
aW4gd2FzIGdyYW50ZWQgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgICAgIHNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGcmFtZS5zcmMg
PSAiYWJvdXQ6YmxhbmsiOworICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRU
b0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNv
dXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDAp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmRE
YXRhUmVjb3JkcygpOworCisgICAgICAgICAgICBkZWJ1ZygiU2ltdWxhdGUgdXNlciB0eXBpbmcg
bGV0dGVyICdhJyBpbnRvIHRoZSBmaWVsZC4iKTsKKyAgICAgICAgICAgIHRlc3RJbnB1dC5mb2N1
cygpOworICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAgICAg
ICBldmVudFNlbmRlci5rZXlEb3duKCJhIik7CisgICAgICAgIH0pOworICAgIH0pOworfQorPC9z
Y3JpcHQ+Cis8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUiIHNyYz0icmVzb3VyY2VzL29uY2xpY2suaHRt
bCI+PC9pZnJhbWU+Cis8aW5wdXQgaWQ9InRlc3RJbnB1dCIgdHlwZT0idGV4dCI+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjM2ZTU1OWJmYTJkZDI0NjE2Nzk4OWIyNWFiODIzOWM0NTZiMTY0
YjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyB0aGF0IHdlIGRvIG5vdCBncmFu
dCBVc2VyIEludGVyYWN0aW9uIGNyZWRpdCBmb3IgdW5oYW5kbGVkIGtleXByZXNzLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU2ltdWxhdGUgYW4gdW5oYW5kbGVkIHVzZXIga2V5
IHByZXNzLgorUEFTUyBPcmlnaW4gZGlkIG5vdCBnZXQgdXNlciBpbnRlcmFjdGlvbiBjcmVkaXQu
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3By
ZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJj
ZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhY2RlYjI4ZTRj
Y2I3MTI4MjUzMjE3YmE4ODE5ZWE3ZWE2ZmIyZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNl
LXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhh
dCB3ZSBkbyBub3QgZ3JhbnQgVXNlciBJbnRlcmFjdGlvbiBjcmVkaXQgZm9yIHVuaGFuZGxlZCBr
ZXlwcmVzcy4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitjb25zdCBzdGF0aXN0aWNzVXJs
ID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC90ZW1wIjsKKworb25sb2FkID0gZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgdGVzdEZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFt
ZSIpOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgaW50
ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2Fu
bmVkKHRydWUpOworICAgIH0KKworICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAo
IXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkp
CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3Qg
Z2V0IGNsZWFyZWQgb2YgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgdGVzdFJ1
bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rp
b24oKSB7CisKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJPcmlnaW4gZGlkIG5vdCBnZXQgdXNlciBpbnRlcmFjdGlvbiBjcmVkaXQuIik7
CisKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICB0ZXN0RnJhbWUuc3JjID0gImFib3V0OmJsYW5rIjsKKyAgICAgICAgICAgICAgICAg
ICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICAgICAg
fSwgMCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNl
KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2Vl
bkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKworICAgICAgICAgICAgZGVidWco
IlNpbXVsYXRlIGFuIHVuaGFuZGxlZCB1c2VyIGtleSBwcmVzcy4iKTsKKyAgICAgICAgICAgIGlm
ICh3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93
bigiYSIsIFsibWV0YUtleSJdKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9Cis8L3NjcmlwdD4K
KzxpZnJhbWUgaWQ9InRlc3RGcmFtZSIgc3JjPSJyZXNvdXJjZXMvb25jbGljay5odG1sIj48L2lm
cmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWlu
dGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVy
YWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODlmODU1YTc4OWNmMTBi
ZjMzMGY0YzkyZWExMmI5NDFhYmVmYzA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRo
LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIENv
b2tpZSBub3QgZGVsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJh
Y3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFi
YXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZWMxM2E1MDI3NGM2ZGQ5NGJmZThhMTY0NTljNGNiYWI4YTkw
ZTkwYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRh
dGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5n
PSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRl
c3RzIGZvciBQcmV2YWxlbnQgUmVzb3VyY2UgV2l0aCBVc2VyIEludGVyYWN0aW9uPC90aXRsZT4K
KyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3NldFVwQW5kUnVuKCknLCAwKSI+Cis8c2NyaXB0
PgorICAgIGlmICh0ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNv
bnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsK
KyAgICBjb25zdCBvdGhlclByZXZhbGVudFVybCA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvdGVt
cCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1
bWVudC5jb29raWUgIT09ICIiKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29v
a2llIG5vdCBlbXB0eS4iKTsKKyAgICAgICAgY29uc3QgY29va2llID0gInRlc3RDb29raWU9dGVz
dFZhbHVlIjsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gY29va2llICsgIjsgbWF4LWFnZT0x
MDA7IjsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gY29va2llKQorICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIGRpZCBub3QgZ2V0IHNldC4iKTsKKworICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgZG9uZSB0byBub3QgaGF2ZSBhbiBlbXB0eSBz
ZXQgb2YgcHJldmFsZW50IHJlc291cmNlcy4KKyAgICAgICAgICAgIC8vIE90aGVyd2lzZSBkYXRh
IHJlY29yZHMgYXJlIG5ldmVyIHNjYW5uZWQuCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZhbGVudFVybCwgdHJ1ZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiT3RoZXIgaG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFS
ZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
ZG9jdW1lbnQuY29va2llID09PSBjb29raWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGVzdFBhc3NlZCgiQ29va2llIG5vdCBkZWxldGVkLiIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBk
ZWxldGVkIG9yIGRvY3VtZW50LmNvb2tpZSBjb250YWlucyBvdGhlciBjb29raWVzOiAiICsgZG9j
dW1lbnQuY29va2llKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1l
QmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKworICAg
IGZ1bmN0aW9uIHNldFVwQW5kUnVuKCkgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24u
aG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUp
OworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAg
ICAgICAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiV3JvbmcgaG9zdCwgbm8gdGVzdFJ1
bm5lciwgb3Igbm8gaW50ZXJuYWxzLiIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9w
cmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC1kYXRh
YmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc4MDllOTFjMjNjMjNhMjM2OWNkMDg1NGVi
MTgxNjQ3ZGZhZWI0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVy
YWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIENvb2tp
ZSBkZWxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10
aW1lb3V0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1l
b3V0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjIwODk3MDVkMjc4ZWFhMjIxMjY4NTZkMWQ2
ZDA5OWE1OWEwYTdiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVy
YWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU3IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04
Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIFByZXZhbGVudCBSZXNvdXJjZSBXaXRoIFVzZXIgSW50
ZXJhY3Rpb24gVGltZW91dDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAg
ICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0
aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgZnVu
Y3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUg
IT09ICIiKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIG5vdCBlbXB0
eS4iKTsKKyAgICAgICAgY29uc3QgY29va2llID0gInRlc3RDb29raWU9dGVzdFZhbHVlIjsKKyAg
ICAgICAgZG9jdW1lbnQuY29va2llID0gY29va2llICsgIjsgbWF4LWFnZT0xMDA7IjsKKyAgICAg
ICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gY29va2llKQorICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiZG9jdW1lbnQuY29va2llIGRpZCBub3QgZ2V0IHNldC4iKTsKKworICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0
aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQor
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGxvZ2dlZCBm
b3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5z
dGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSAiIikKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBub3QgZGVsZXRlZDogIiArIGRvY3Vt
ZW50LmNvb2tpZSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIkNvb2tpZSBkZWxldGVkLiIpOworICAgICAgICAgICAgICAgICAg
ICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAg
ICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0
YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVz
b3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92
YWwoMCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVGltZVRvTGl2
ZVVzZXJJbnRlcmFjdGlvbigwKTsKKworICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdG8gZW5z
dXJlIHRoZSB0aW1lb3V0IHdlJ3JlIHRlc3RpbmcuCisgICAgICAgICAgICAgICAgc2V0VGltZW91
dCgidGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3Jkcygp
IiwgMTAwMCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYg
KGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RS
dW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwor
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jk
c1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgIH0K
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0
LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0
LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ODA5
ZTkxYzIzYzIzYTIzNjljZDA4NTRlYjE4MTY0N2RmYWViNDMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJl
c291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKK1BBU1MgQ29va2llIGRlbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91
dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1p
bnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3YjBiMmFhZTMwODRkNGM0N2Q5
ZWM5ZjdjZTMyZmU0ZDQwYjljNGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQt
dXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRG
LTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgUHJldmFsZW50IFJlc291cmNlIFdpdGhvdXQgVXNl
ciBJbnRlcmFjdGlvbjwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBj
b25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0
aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisKKyAgICBmdW5j
dGlvbiBmaW5pc2hUZXN0ICgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIp
CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgbm90IGRlbGV0ZWQ6ICIgKyBkb2N1bWVu
dC5jb29raWUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb29raWUg
ZGVsZXRlZC4iKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNp
c3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVz
dCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgbm90IGVtcHR5LiIpOworICAgICAgICBjb25zdCBj
b29raWUgPSAidGVzdENvb2tpZT10ZXN0VmFsdWUiOworICAgICAgICBkb2N1bWVudC5jb29raWUg
PSBjb29raWUgKyAiOyBtYXgtYWdlPTEwMDsiOworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2ll
ICE9PSBjb29raWUpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgZGlk
IG5vdCBnZXQgc2V0LiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0
IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNI
YWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xlYXJlZCBvZiB1c2VyIGludGVyYWN0aW9uLiIp
OworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlm
eURhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHNl
dFRpbWVvdXQoImZpbmlzaFRlc3QoKSIsIDEwMDApOworICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3Vy
Y2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwo
MCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3Rp
Y3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0K
KworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdp
bmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFz
ZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVu
RGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3Qo
KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNz
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lNzQ3NTdiYzUyNTYwMDUyMWQ0NjE1NDVkMDM2N2MwZjA1MDFiZWYzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3BydW5lLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAK
K1Rlc3RzIHRoYXQgc3RhdGlzdGljcyBhcmUgcHJ1bmVkIGluIHRoZSByaWdodCBvcmRlci4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGVzdCBpdGVyYXRpb24gMSBwYXNz
ZWQuCitQQVNTIFRlc3QgaXRlcmF0aW9uIDIgcGFzc2VkLgorUEFTUyBUZXN0IGl0ZXJhdGlvbiAz
IHBhc3NlZC4KK1BBU1MgVGVzdCBpdGVyYXRpb24gNCBwYXNzZWQuCitQQVNTIFRlc3QgaXRlcmF0
aW9uIDUgcGFzc2VkLgorUEFTUyBUZXN0IGl0ZXJhdGlvbiA2IHBhc3NlZC4KK1BBU1MgVGVzdCBp
dGVyYXRpb24gNyBwYXNzZWQuCitQQVNTIFRlc3QgaXRlcmF0aW9uIDggcGFzc2VkLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0
aXN0aWNzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBj
YWI3ZDM5MTcxZDAzZjQ3YjQxOWQyYWRiMGNhMTM4YWRmNzhlYjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3Rh
dGlzdGljcy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTYzIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5U
ZXN0IGZvciBSZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3MgUHJ1bmluZzwvdGl0bGU+CisgICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBzdGF0aXN0
aWNzIGFyZSBwcnVuZWQgaW4gdGhlIHJpZ2h0IG9yZGVyLiIpOworICAgIGpzVGVzdElzQXN5bmMg
PSB0cnVlOworCisgICAgY29uc3Qgb2xkZXJUaW1lc3RhbXAgPSBNYXRoLnJvdW5kKChuZXcgRGF0
ZSgpKS5nZXRUaW1lKCkgLyAxMDAwKTsKKyAgICBjb25zdCBuZXdlclRpbWVzdGFtcCA9IG9sZGVy
VGltZXN0YW1wICsgMTA7CisgICAgY29uc3QgbmV3ZXN0VGltZXN0YW1wID0gbmV3ZXJUaW1lc3Rh
bXAgKyAxMDsKKworICAgIGNvbnN0IHVybHNUb0JlUHJ1bmVkID0gWworICAgICAgICB7IHVybDog
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC90ZW1wIiwgcHJldmFsZW50OiBmYWxzZSB9LAorICAgICAg
ICB7IHVybDogImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIiwgcHJldmFsZW50OiBmYWxzZSB9
LAorICAgICAgICB7IHVybDogImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIiwgcHJldmFsZW50
OiB0cnVlIH0sCisgICAgICAgIHsgdXJsOiAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiLCBw
cmV2YWxlbnQ6IHRydWUgfSwKKyAgICAgICAgeyB1cmw6ICJodHRwOi8vMTI3LjAuMC41OjgwMDAv
dGVtcCIsIHByZXZhbGVudDogZmFsc2UgfSwKKyAgICAgICAgeyB1cmw6ICJodHRwOi8vMTI3LjAu
MC42OjgwMDAvdGVtcCIsIHByZXZhbGVudDogZmFsc2UgfSwKKyAgICAgICAgeyB1cmw6ICJodHRw
Oi8vMTI3LjAuMC43OjgwMDAvdGVtcCIsIHByZXZhbGVudDogdHJ1ZSB9LAorICAgICAgICB7IHVy
bDogImh0dHA6Ly8xMjcuMC4wLjg6ODAwMC90ZW1wIiwgcHJldmFsZW50OiB0cnVlIH0KKyAgICBd
OworCisgICAgZnVuY3Rpb24gY2hlY2tJZlByZXZhbGVudEFjY29yZGluZ1RvSW5pdGlhbEV4cGVj
dGF0aW9uKGJlZ2luLCBlbmQpIHsKKyAgICAgICAgdmFyIGZhaWxlZCA9IGZhbHNlOworICAgICAg
ICBmb3IgKHZhciBpID0gYmVnaW47IGkgPCBlbmQ7ICsraSkgeworICAgICAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsc1RvQmVQcnVuZWRbaV0u
dXJsKSAhPT0gdXJsc1RvQmVQcnVuZWRbaV0ucHJldmFsZW50KSB7CisgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiY2hlY2tJZlByZXZhbGVudEFjY29yZGluZ1RvSW5pdGlhbEV4cGVjdGF0aW9u
OiBUZXN0IGl0ZXJhdGlvbiAiICsgY3VycmVudFRlc3QgKyAiIGZhaWxlZC4gIiArIHVybHNUb0Jl
UHJ1bmVkW2ldLnVybCArICh1cmxzVG9CZVBydW5lZFtpXS5wcmV2YWxlbnQgPyAiIHdhc24ndCAi
IDogIiB3YXMgIikgKyAicHJldmFsZW50Iik7CisgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1
ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoZmFpbGVkKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBjaGVja0lmUHJldmFsZW50KGJlZ2lu
LCBlbmQsIGV4cGVjdGVkKSB7CisgICAgICAgIHZhciBmYWlsZWQgPSBmYWxzZTsKKyAgICAgICAg
Zm9yICh2YXIgaSA9IGJlZ2luOyBpIDwgZW5kOyArK2kpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1bmVkW2ldLnVy
bCkgIT09IGV4cGVjdGVkKSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiY2hlY2tJZlBy
ZXZhbGVudDogVGVzdCBpdGVyYXRpb24gIiArIGN1cnJlbnRUZXN0ICsgIiBmYWlsZWQuICIgKyB1
cmxzVG9CZVBydW5lZFtpXS51cmwgKyAoZXhwZWN0ZWQgPyAiIHdhc24ndCAiIDogIiB3YXMgIikg
KyAicHJldmFsZW50Iik7CisgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoZmFpbGVkKSB7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBmdW5jdGlvbiBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKHN0
ZXApIHsKKyAgICAgICAgc3dpdGNoIChzdGVwKSB7CisgICAgICAgICAgICAvLyBOb24tcHJldmFs
ZW50IHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbiB0byBiZSBwcnVuZWQgZmlyc3QuCisgICAgICAg
ICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFz
dFNlZW4odXJsc1RvQmVQcnVuZWRbMF0udXJsLCBvbGRlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7
IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMik7IH0pOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVkWzFdLnVybCwgbmV3ZXJUaW1lc3Rh
bXAsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDMpOyB9KTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8vIFByZXZhbGVudCB3aXRob3V0
IHVzZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIHNlY29uZC4KKyAgICAgICAgICAgIGNhc2Ug
MzoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSh1cmxzVG9CZVBydW5lZFsyXS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXpl
U3RhdGlzdGljc0FuZFJ1blRlc3RzKDQpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFsyXS51cmwsIG9sZGVyVGltZXN0YW1wLCBmdW5jdGlv
bigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyg1KTsgfSk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsc1RvQmVQcnVuZWRbM10udXJs
LCB0cnVlLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyg2KTsg
fSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDY6CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRb
M10udXJsLCBuZXdlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNz
QW5kUnVuVGVzdHMoNyk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Ly8gTm9uLXByZXZhbGVudCB3aXRoIHVzZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIHRoaXJk
LgorICAgICAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih1cmxzVG9CZVBydW5lZFs0XS51cmwsIHRydWUs
IGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDgpOyB9KTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgODoKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFs0XS51cmws
IG9sZGVyVGltZXN0YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5U
ZXN0cyg5KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDk6
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKHVybHNUb0JlUHJ1bmVkWzVdLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxp
emVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTApOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgMTA6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbNV0udXJsLCBuZXdlclRpbWVzdGFtcCwgZnVu
Y3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTEpOyB9KTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8vIFByZXZhbGVudCB3aXRoIHVzZXIgaW50
ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIGxhc3QuCisgICAgICAgICAgICBjYXNlIDExOgorICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNU
b0JlUHJ1bmVkWzZdLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNz
QW5kUnVuVGVzdHMoMTIpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgMTI6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHVybHNUb0JlUHJ1bmVkWzZdLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7
IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTMpOyB9KTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTM6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbNl0udXJsLCBvbGRlclRpbWVz
dGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTQpOyB9
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTQ6CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsc1Rv
QmVQcnVuZWRbN10udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NB
bmRSdW5UZXN0cygxNSk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSAxNToKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24odXJsc1RvQmVQcnVuZWRbN10udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsg
aW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxNik7IH0pOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSAxNjoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFs3XS51cmwsIG5ld2VyVGltZXN0
YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxNyk7IH0p
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxNzoKKyAgICAgICAg
ICAgICAgICBjaGVja0lmUHJldmFsZW50QWNjb3JkaW5nVG9Jbml0aWFsRXhwZWN0YXRpb24oMCwg
dXJsc1RvQmVQcnVuZWQubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2YXIgY3VycmVudFRl
c3Q7CisgICAgZnVuY3Rpb24gY2hlY2tTdGF0aXN0aWNzQWZ0ZXJQcnVuaW5nKCkgeworICAgICAg
ICAvLyBQcnVuZWQgZW50cmllcyBzaG91bGQgbm90IGJlIHByZXZhbGVudC4KKyAgICAgICAgY2hl
Y2tJZlByZXZhbGVudCgwLCBjdXJyZW50VGVzdCwgZmFsc2UpOworICAgICAgICAvLyBOb24tcHJ1
bmVkIGVudHJpZXMgc2hvdWxkIGtlZXAgdGhlaXIgZXhwZWN0ZWQgc3RhdHVzLgorICAgICAgICBj
aGVja0lmUHJldmFsZW50QWNjb3JkaW5nVG9Jbml0aWFsRXhwZWN0YXRpb24oY3VycmVudFRlc3Qs
IHVybHNUb0JlUHJ1bmVkLmxlbmd0aCk7CisgICAgICAgIHRlc3RQYXNzZWQoIlRlc3QgaXRlcmF0
aW9uICIgKyBjdXJyZW50VGVzdCArICIgcGFzc2VkLiIpOworICAgICAgICBpZiAoY3VycmVudFRl
c3QgPCB1cmxzVG9CZVBydW5lZC5sZW5ndGgpIHsKKyAgICAgICAgICAgICsrY3VycmVudFRlc3Q7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNv
cmRzQ2FsbGJhY2soY2hlY2tTdGF0aXN0aWNzQWZ0ZXJQcnVuaW5nKTsKKyAgICAgICAgICAgIGlu
aXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMSk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgZmlsbGVyVXJsOworICAgIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7CisgICAgICAgIGZpbGxlclVybCA9ICJodHRwOi8vMTI3LjAuIiArIGN1cnJlbnRU
ZXN0ICsgIi4xOjgwMDAvdGVtcCI7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKGZpbGxlclVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oZmlsbGVyVXJs
LCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NMYXN0U2VlbihmaWxsZXJVcmwsIG5ld2VzdFRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNz
QW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29y
ZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11
bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOwor
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNYXhTdGF0aXN0aWNzRW50cmllcyh1cmxz
VG9CZVBydW5lZC5sZW5ndGgpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcnVu
ZUVudHJpZXNEb3duVG8odXJsc1RvQmVQcnVuZWQubGVuZ3RoKTsKKworICAgICAgICBjdXJyZW50
VGVzdCA9IDE7CisgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0
YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRpc3RpY3NBZnRlclBydW5pbmcpOworICAgICAgICBp
bml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDEpOworICAgIH0KKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0
LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2Fs
aG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdjMTQzOGIxODY0
MDY0MmFhMTZmYzA2YjY5ZDg0MWZkZjNiZjE2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIHNhbmRib3hlZCBpZnJhbWVzIGdl
dCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6
Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0
IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8v
bG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9z
dC10by1pcC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRv
LWlwLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjY3MTEyMDUwNjgxODM5MWNhOTY3ZmYyNGZm
ZmMwNThjOTIxOWY0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxv
Y2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRo
YXQgcmVkaXJlY3RzIGZvciBzYW5kYm94ZWQgaWZyYW1lcyBnZXQgY291bnRlZCBwcm9wZXJseS4i
KTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBm
dW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVT
Y2FubmVkKHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3Rp
Y3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVk
ID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBm
dW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9y
aWdpbiA9PT0gIm51bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhP
ZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5k
YXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQg
b3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGly
ZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAg
ICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQor
CisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRy
dWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0
cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1Rv
KCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAg
c2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0
aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAg
ICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJl
ZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAg
ICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2FuZGJveD0iYWxs
b3ctc2NyaXB0cyIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHAvP3JlZGly
ZWN0VG89aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3Vy
Y2VzL2lmcmFtZS1yZXBvcnQtYmFjay1sb2FkZWQuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1s
b2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0
LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdj
MTQzOGIxODY0MDY0MmFhMTZmYzA2YjY5ZDg0MWZkZjNiZjE2ZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBzYW5k
Ym94ZWQgaWZyYW1lcyBnZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJG
cmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVl
CitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygi
aHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcu
MC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVj
dC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjAyNmJkOWMwYzIxMmI3ZTVmMTY0OWI1OTNiOTc4ODNjZjMxNDhmYwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJh
c2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3Igc2Fu
ZGJveGVkIGlmcmFtZXMgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElz
QXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIs
IHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgp
IHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRz
Q2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAg
ICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2
YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3Nh
Z2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikgewor
ICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIs
ICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJS
ZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9y
aWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1
ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNo
VGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3Rh
dGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBj
aGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0
cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIs
ICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAu
MC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQg
PSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQor
ICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMiIHNyYz0iaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGly
ZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9pZnJhbWUtcmVwb3J0LWJh
Y2stbG9hZGVkLmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVk
LW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8t
bG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0
aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzNjU4Y2QzNDNmNTU2ZTBjMzQ0NzVlZjll
ZjQ1YzYyMGQ0ZDQyN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9u
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3Ig
YSBub24tc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBzYW5kYm94ZWQgaWZyYW1lIGdldCBj
b3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9s
b2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0Iiwg
Imh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9j
YWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVz
dGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2Nh
bGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTJkNTk5OTY0ZTdlNjJmZDA1
ZmIwZDc4YWU1ZTI5NjYwNTdhMDY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13
aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1k
YXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZv
ciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIHNhbmRib3hlZCBpZnJhbWUgZ2V0
IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAg
ICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBm
YWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAg
ICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRh
YmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNX
aGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0
cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUlu
UmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0g
ZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAg
ICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikgeworICAgICAgICAgICAgICAgIGlm
IChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2Ug
ZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAg
ICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlm
IChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2Vy
dmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7
CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4x
IiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NS
ZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2Nh
bGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAg
ICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZp
bmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
aWZyYW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMiIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAw
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1ub24tc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAuaHRtbCI+Cis8L2lmcmFtZT4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFi
YXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yMzY1OGNkMzQzZjU1NmUwYzM0NDc1ZWY5ZWY0NWM2MjBkNGQ0Mjdl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1z
YW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIHNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQg
cHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9z
dCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDov
LzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3Rl
cmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3Qi
KSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVz
dGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3Qt
dG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGY4NmZlOGMzMjk0
ZTI1MzkyMmMyNWVhMzc5MjdmZDVjOTQzNmZmOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1p
ZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAt
dG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhh
dCByZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgc2FuZGJv
eGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3lu
YyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVj
ZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewor
ICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0
cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxs
YmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAg
dmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBz
dGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShl
dmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gIm51bGwiKSB7CisgICAg
ICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIp
KTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2Vp
dmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2lu
KTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOwor
ICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0
KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNr
U3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8v
MTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0
dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEi
LCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRy
dWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAg
ICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc2NyaXB0cyIgc3JjPSJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcGFnZS13aXRo
LW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhv
c3QuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGlu
Zy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10
by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQxNmU2MWZkMDE1ZmQ3YWUzY2I4NjZiNjkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUg
bmVzdGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8v
MTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVy
ZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIp
IGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVj
dGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRi
b3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8t
bG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kNmU5NGE0NTk2OTg1NGQzZTM4OGQxMGFhZGNhZjBhMWQyYTRkYWFmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlv
bigiVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4g
YSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAg
anNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJt
ZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5p
c2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNU
ZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUp
OworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0
YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7Cisg
ICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNl
aXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gIm51
bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09
PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2Uo
IkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsg
ZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2Fk
ZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAg
ICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9z
dCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9j
YWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVl
KCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6
Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRz
Q2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5M
b2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisgICAgPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc2NyaXB0cyIg
c3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMvcGFnZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRv
LWlwLmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3Rp
bmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAt
dG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQxNmU2MWZkMDE1
ZmQ3YWUzY2I4NjZiNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBm
b3IgYSBzYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdl
dCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6
Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0
IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8v
bG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94
ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9z
dC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZTE5ZGQxMDAy
MTE1ZDhhMTk0ZmMyMjQxZDU4ZjRmODJlMDAyYmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5n
LWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRv
LWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
cmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hl
ZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMg
PSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2Vp
dmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAg
ICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAg
IH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJh
Y2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHZh
ciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3Rh
dHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZl
bnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikgeworICAgICAg
ICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7
CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZl
ZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7
CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAg
ICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0
YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEy
Ny4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRw
Oi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwg
Imh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVl
OworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAg
ICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMiIHNyYz0iaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QuaHRt
bCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1y
ZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1y
ZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
ZGMwNzNkYTQ3Y2JhNDg2MDc3MjNkNGZkYjYzY2JhMTU2ZDg3ZTYyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0
b20tcHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgZm9yIGVuYWJsaW5nIGRlYnVnIG1vZGUgYW5kIHRoYXQg
aXQgYWxsb3dzIHNldHRpbmcgYSBjdXN0b20gZG9tYWluIGFzIGEgcHJldmFsZW50IHJlc291cmNl
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBodHRwOi8vbG9jYWxob3N0
OjgwMDAgZ290IHNldCBhcyBhIGN1c3RvbSBwcmV2YWxlbnQgcmVzb3VyY2UgaW4gZGVidWcgbW9k
ZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4tZGVidWctbW9kZS1kYXRhYmFzZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0
b20tcHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41ZmRhODEyMDE5YTllNzNmZjk1NTg5MTVlMGY4ODkyNmE4ZDkwNDlhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Nl
dC1jdXN0b20tcHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbApA
QCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFk
PgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVz
Y3JpcHRpb24oIlRlc3QgZm9yIGVuYWJsaW5nIGRlYnVnIG1vZGUgYW5kIHRoYXQgaXQgYWxsb3dz
IHNldHRpbmcgYSBjdXN0b20gZG9tYWluIGFzIGEgcHJldmFsZW50IHJlc291cmNlLiIpOworICAg
IGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdp
bmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0
cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJk
UGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQodGhpcmRQYXJ0eU9yaWdp
biArICIgYWxyZWFkeSBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZSh0
aGlyZFBhcnR5T3JpZ2luLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGly
ZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQodGhpcmRQ
YXJ0eU9yaWdpbiArICIgZGlkbid0IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwor
ICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UGFz
c2VkKHRoaXJkUGFydHlPcmlnaW4gKyAiIGdvdCBzZXQgYXMgYSBjdXN0b20gcHJldmFsZW50IHJl
c291cmNlIGluIGRlYnVnIG1vZGUuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc0RlYnVnTW9kZShmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1y
ZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291
cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2JkNTQzZWM5
YWYzMjRiZDUwZGMxZDRjODZjZGIwOWU5YzRkNWIyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10
by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3RzIHRoYXQgb25seSB0aGUgb3JpZ2luIGlz
IHNlbnQgYXMgcmVmZXJyZXIgaW4gcmVkaXJlY3RzIHRvIHByZXZhbGVudCByZXNvdXJjZXMgd2l0
aG91dCB1c2VyIGludGVyYWN0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyByZWZlcnJlciBpcyAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2Ut
cmVkaXJlY3RzLWRhdGFiYXNlLmh0bWwiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+Jwor
LS0tLS0tLS0KK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmln
aW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJl
ci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iMGY4YTJmNDIwYjVhYTYyYzM3YTI1ZDRiZGRmZWQzM2EzM2JmYTVm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291
cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24o
IlRlc3RzIHRoYXQgb25seSB0aGUgb3JpZ2luIGlzIHNlbnQgYXMgcmVmZXJyZXIgaW4gcmVkaXJl
Y3RzIHRvIHByZXZhbGVudCByZXNvdXJjZXMgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLiIpOwor
ICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVz
QXNUZXh0KCk7CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikg
eworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1l
Iik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxl
cikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAg
ICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQor
CisgICAgdmFyIHJlZmVycmVyOworICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1
ZSk7CisgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhv
c3QiKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3YXMgY2xhc3NpZmllZCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0ZWQuIik7CisKKyAgICAg
ICAgZmV0Y2goInJlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIpLnRoZW4oZnVuY3Rpb24ocmVz
cG9uc2UpIHsKKyAgICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7CisgICAgICAgIH0p
LnRoZW4oZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgICAgcmVmZXJyZXIgPSBkYXRhOworICAg
ICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4t
Zm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRtbCIpOworCisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0
cDovL2xvY2FsaG9zdCIsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICgh
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9z
dCIpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNl
dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgb3BlbklmcmFtZSgicmVzb3VyY2VzL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRvPWh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hv
LXJlZmVycmVyLnBocCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSkuY2F0
Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yLm1lc3Nh
Z2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICAgICAgfSk7CisgICAgfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJp
cC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1k
YXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVz
b3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5Y2NiOWMy
MWZmMDA3MWE5ODAyMzliN2I3OTNmNTUxODdlYmVlNWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXIt
dG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1Rlc3RzIHRoYXQgb25seSB0aGUgb3JpZ2luIGlz
IHNlbnQgYXMgcmVmZXJyZXIgZm9yIHByZXZhbGVudCByZXNvdXJjZXMgd2l0aG91dCB1c2VyIGlu
dGVyYWN0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWZlcnJl
ciBpcyAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAt
cmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0
YWJhc2UuaHRtbCIKK1BBU1MgcmVmZXJyZXIgaXMgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC8iCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCistLS0t
LS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK2h0dHA6Ly8xMjcuMC4wLjE6
ODAwMC8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJj
ZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1
YnJlc291cmNlLXJlcXVlc3RzLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTVkNGYwMzY2Zjk3
Y2ZjZTk0MjhhNmE4NmU1MTU0ODM2MGUzMjE3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1v
cmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sCkBA
IC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2Ny
aXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgb25seSB0aGUgb3JpZ2luIGlz
IHNlbnQgYXMgcmVmZXJyZXIgZm9yIHByZXZhbGVudCByZXNvdXJjZXMgd2l0aG91dCB1c2VyIGlu
dGVyYWN0aW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHRlc3RSdW5uZXIu
ZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwg
b25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBp
ZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRI
YW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxl
bWVudCk7CisgICAgfQorCisgICAgdmFyIHJlZmVycmVyOworICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
Imh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3
YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0
ZWQuIik7CisKKyAgICAgICAgZmV0Y2goInJlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIpLnRo
ZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0
KCk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgICAgcmVmZXJy
ZXIgPSBkYXRhOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIs
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZl
cnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFz
ZS5odG1sIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJo
dHRwOi8vbG9jYWxob3N0IikpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
ZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgICAgICBmZXRjaCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcmVmZXJyZXIucGhwIikudGhlbihmdW5j
dGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNl
LnRleHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbihkYXRhKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICByZWZlcnJlciA9IGRhdGE7CisgICAgICAgICAgICAgICAg
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC8iKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgb3BlbklmcmFtZSgicmVzb3Vy
Y2VzL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAg
ICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc29sZS5sb2coZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KS5j
YXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IubWVz
c2FnZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgICAgICB9KTsKKyAgICB9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3
aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24t
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdp
dGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0MzkyMmZk
OTNmMWE1NDQ0ZjJjYjA2ODg0ZWZjMzI5MGJhZTUxZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24t
b24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCB0aGUgc2Vzc2lvbiBpcyBzd2l0
Y2hlZCB1cG9uIHRvcCBmcmFtZSBuYXZpZ2F0aW9uIHRvIGEgcHJldmFsZW50IHJlc291cmNlIHdp
dGggdXNlciBpbnRlcmFjdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgU2hvdWxkIGhhdmUgYW5kIGhhcyB0aGUgc2Vzc2lvbiBjb29raWUuCitQQVNTIFNob3VsZCBo
YXZlIGFuZCBoYXMgdGhlIHBlcnNpc3RlbnQgY29va2llLgorUEFTUyBPcmlnaW4gaGFzIGlzb2xh
dGVkIHNlc3Npb24uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgt
aW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVu
dC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI3MGMwMGIwNDgx
NjY2MGJjODFkMGQ2ZWU4OWNhYTcwZTFmNzRiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1u
YXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKQEAg
LTAsMCArMSwxMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+
CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
KzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdGhlIHNlc3Npb24gaXMgc3dp
dGNoZWQgdXBvbiB0b3AgZnJhbWUgbmF2aWdhdGlvbiB0byBhIHByZXZhbGVudCByZXNvdXJjZSB3
aXRoIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAg
ICBjb25zdCBwcmV2YWxlbnRPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBj
b25zdCBub25QcmV2YWxlbnRPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBj
b25zdCBzZXNzaW9uQ29va2llTmFtZSA9ICJzZXNzaW9uQ29va2llIjsKKyAgICBjb25zdCBwZXJz
aXN0ZW50Q29va2llTmFtZSA9ICJwZXJzaXN0ZW50Q29va2llIjsKKyAgICBjb25zdCB0d29NaW51
dGVzSW5TZWNvbmRzID0gMTIwOworCisgICAgZnVuY3Rpb24gc2V0U2Vzc2lvbkNvb2tpZSgpIHsK
KyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2Vzc2lvbkNvb2tpZU5hbWUgKyAiPTE7IHBhdGg9
LyI7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2V0UGVyc2lzdGVudENvb2tpZSgpIHsKKyAgICAg
ICAgZG9jdW1lbnQuY29va2llID0gcGVyc2lzdGVudENvb2tpZU5hbWUgKyAiPTE7IHBhdGg9Lzsg
TWF4LUFnZT0iICsgdHdvTWludXRlc0luU2Vjb25kcyArICI7IjsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBjaGVja0Nvb2tpZXMoc2hvdWxkSGF2ZVNlc3Npb25Db29raWUsIHNob3VsZEhhdmVQZXJz
aXN0ZW50Q29va2llKSB7CisgICAgICAgIGxldCBoYXNTZXNzaW9uQ29va2llID0gKGRvY3VtZW50
LmNvb2tpZSArICIiKS5pbmNsdWRlcyhzZXNzaW9uQ29va2llTmFtZSksCisgICAgICAgICAgICBo
YXNQZXJzaXN0ZW50Q29va2llID0gKGRvY3VtZW50LmNvb2tpZSArICIiKS5pbmNsdWRlcyhwZXJz
aXN0ZW50Q29va2llTmFtZSk7CisKKyAgICAgICAgaWYgKHNob3VsZEhhdmVTZXNzaW9uQ29va2ll
ICYmIGhhc1Nlc3Npb25Db29raWUpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91bGQgaGF2
ZSBhbmQgaGFzIHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKKyAgICAgICAgZWxzZSBpZiAoc2hvdWxk
SGF2ZVNlc3Npb25Db29raWUgJiYgIWhhc1Nlc3Npb25Db29raWUpIHsKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoIlNob3VsZCBoYXZlIGJ1dCBkb2Vzbid0IGhhdmUgdGhlIHNlc3Npb24gY29va2ll
LiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICAgICAgfSBlbHNlIGlmICghc2hvdWxkSGF2ZVNlc3Npb25Db29raWUgJiYgaGFzU2Vzc2lv
bkNvb2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkbid0IGhhdmUgYnV0IGhh
cyB0aGUgc2Vzc2lvbiBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIlNob3VsZG4ndCBoYXZlIGFuZCBkb2Vzbid0IGhhdmUgdGhlIHNlc3Npb24gY29va2llLiIp
OworCisKKyAgICAgICAgaWYgKHNob3VsZEhhdmVQZXJzaXN0ZW50Q29va2llICYmIGhhc1BlcnNp
c3RlbnRDb29raWUpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91bGQgaGF2ZSBhbmQgaGFz
IHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsKKyAgICAgICAgZWxzZSBpZiAoc2hvdWxkSGF2ZVBl
cnNpc3RlbnRDb29raWUgJiYgIWhhc1BlcnNpc3RlbnRDb29raWUpIHsKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoIlNob3VsZCBoYXZlIGJ1dCBkb2Vzbid0IGhhdmUgdGhlIHBlcnNpc3RlbnQgY29v
a2llLiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKKyAgICAgICAgfSBlbHNlIGlmICghc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29raWUgJiYgaGFz
UGVyc2lzdGVudENvb2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkbid0IGhh
dmUgYnV0IGhhcyB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIlNob3VsZG4ndCBoYXZlIGFuZCBkb2Vzbid0IGhhdmUgdGhlIHBlcnNp
c3RlbnQgY29va2llLiIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAg
ICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAi
I3N0ZXAxIjoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24ocHJldmFsZW50T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICAgICAgc2V0U2Vzc2lvbkNvb2tpZSgpOworICAgICAgICAgICAgICAgICAgICBz
ZXRQZXJzaXN0ZW50Q29va2llKCk7CisgICAgICAgICAgICAgICAgICAgIGNoZWNrQ29va2llcyh0
cnVlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaGFzU3RhdGlz
dGljc0lzb2xhdGVkU2Vzc2lvbihwcmV2YWxlbnRPcmlnaW4pKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJPcmlnaW4gaGFzIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RQYXNzZWQoIk9yaWdpbiBoYXMgbm8gaXNvbGF0ZWQgc2Vzc2lvbi4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IG5vblByZXZhbGVudE9yaWdpbiArICIv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXBy
ZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwjc3RlcDIiOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0
ZXAyIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsK
KyAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luICE9PSBub25QcmV2
YWxlbnRPcmlnaW4pCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlN0ZXAgMiBpcyBu
b3Qgb24gIiArIG5vblByZXZhbGVudE9yaWdpbiArICIuIik7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50T3JpZ2luLCB0
cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudE9yaWdpbikpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQocHJldmFsZW50T3JpZ2luICsgIiBkaWQgbm90IGdl
dCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29r
aWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaHJlZiA9IHByZXZhbGVudE9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWlu
dGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwjc3RlcDQiOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICBjaGVja0Nvb2tpZXMo
dHJ1ZSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaGFzU3RhdGlzdGlj
c0lzb2xhdGVkU2Vzc2lvbihwcmV2YWxlbnRPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJPcmlnaW4gaGFzIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPcmlnaW4gaGFzIG5vIGlz
b2xhdGVkIHNlc3Npb24uIik7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVW5rbm93biBoYXNoLiIpOworICAg
ICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIpIHsK
KyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiAhPT0gcHJldmFsZW50T3JpZ2lu
KQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGVzdCBpcyBub3Qgc3RhcnRpbmcgb3V0IG9uICIg
KyBwcmV2YWxlbnRPcmlnaW4gKyAiLiIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERh
dGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHByZXZhbGVudE9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChwcmV2YWxl
bnRPcmlnaW4gKyAiIHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZSBiZWZvcmUg
dGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9
ICJzdGVwMSI7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODQyNzMwYTQ1ZGFkZTZlYTZmMTVkZWNjMzlhN2U1YTlh
MGUzMTJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFt
ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMgdGhhdCB1c2Vy
IGludGVyYWN0aW9uIGlzIGFsd2F5cyBsb2dnZWQgZm9yIHRoZSB0b3AgZG9jdW1lbnQvZnJhbWUu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50LmxvY2F0aW9u
Lm9yaWdpbiBpcyB0b3BGcmFtZU9yaWdpbgorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlz
IGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHRvcEZyYW1lT3JpZ2luKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9u
LWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3Nz
LW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWY2MjNjMTgwZDYz
ZDNjNmI2MTBlZWIzNzFiZDg4NDU4NjFkZDhlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4t
Y3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHVzZXIgaW50
ZXJhY3Rpb24gaXMgYWx3YXlzIGxvZ2dlZCBmb3IgdGhlIHRvcCBkb2N1bWVudC9mcmFtZS4iKTsK
K2pzVGVzdElzQXN5bmMgPSB0cnVlOwordGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKworY29uc3QgdG9wRnJhbWVPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKK2Nv
bnN0IHN1YkZyYW1lT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisKK2Z1bmN0aW9u
IGFjdGl2YXRlRWxlbWVudChlbGVtZW50SWQpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9m
ZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICB2YXIgY2VudGVyWSA9IGVs
ZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgIFVJSGVscGVy
LmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSk7Cit9CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3Qo
KSB7CisgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsK
KworICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cit9CisKK29ubG9h
ZCA9IGZ1bmN0aW9uKCkgeworICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0Nh
bGxiYWNrKGZpbmlzaFRlc3QpOworICAgICAgICB9CisKKyAgICAgICAgc2hvdWxkQmUoImRvY3Vt
ZW50LmxvY2F0aW9uLm9yaWdpbiIsICJ0b3BGcmFtZU9yaWdpbiIpOworCisgICAgICAgIGlmICh0
ZXN0UnVubmVyKSB7CisgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworCisgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQo
InRlc3RGcmFtZSIpOworICAgICAgICB9CisgICAgfSk7Cit9OworPC9zY3JpcHQ+Cis8aWZyYW1l
IGlkPSJ0ZXN0RnJhbWUiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcmVzb3VyY2VzL2R1bW15Lmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJp
b2Qtb2YtdGltZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9u
Y2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41NDMyYmM4ZWQ3MzgxZmJjNDk4ZGIzNGMwZmIzYmU3YTU3YmQ5MWQxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qt
b2YtdGltZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGVzdHMgdGhh
dCB1c2VyIGludGVyYWN0aW9uIGlzIG5vdCByZXBvcnRlZCByZXBlYXRlZGx5IHdpdGhpbiBhIHNo
b3J0IHBlcmlvZCBvZiB0aW1lLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gaXMgdG9wRnJhbWVPcmlnaW4KK1BBU1MgdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIGlz
IGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikgaXMg
ZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24o
dG9wRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikgaXMg
ZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
VGhpcyBpcyB0aGUgdGVzdCBlbGVtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVk
LW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1v
bmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTVkZWI5NzI5YmQ1YjliOTYzN2MwOGI5OWM2MTMxNTM3YjYxYWEzMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQt
cGVyaW9kLW9mLXRpbWUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1o
ZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdXNlciBpbnRlcmFj
dGlvbiBpcyBub3QgcmVwb3J0ZWQgcmVwZWF0ZWRseSB3aXRoaW4gYSBzaG9ydCBwZXJpb2Qgb2Yg
dGltZS4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHRvcEZyYW1l
T3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3ViRnJhbWVPcmln
aW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxl
bWVudChlbGVtZW50SWQsIGNhbGxiYWNrKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVt
ZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNl
bnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAg
ICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAg
ICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gZmlyc3RJbnRlcmFjdGlvbigpIHsKKyAgICAgICAgc2hvdWxkQmVG
YWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJh
bWVPcmlnaW4pIik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworICAgICAgICBhY3Rp
dmF0ZUVsZW1lbnQoInRlc3RFbGVtZW50Iiwgc2Vjb25kSW50ZXJhY3Rpb24pOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHNlY29uZEludGVyYWN0aW9uKCkgeworICAgICAgICBzaG91bGRCZVRydWUo
InRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3Jp
Z2luKSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKworICAgICAgICBpZiAodGVz
dFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2Vy
SW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIik7CisKKyAgICAgICAgICAgICAgICBhY3RpdmF0
ZUVsZW1lbnQoInRlc3RFbGVtZW50IiwgZmluaXNoVGVzdCk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNo
b3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKworICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAg
IG9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFi
YXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiIsICJ0b3BGcmFt
ZU9yaWdpbiIpOworCisgICAgICAgICAgICBmaXJzdEludGVyYWN0aW9uKCk7CisgICAgICAgIH0p
OworICAgIH07Cis8L3NjcmlwdD4KKzxkaXYgaWQ9InRlc3RFbGVtZW50Ij5UaGlzIGlzIHRoZSB0
ZXN0IGVsZW1lbnQ8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJl
cG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVy
YWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iZjI4Yzk5YjMwMjQ0NDU2MGI1MWIzNDhiOTYwMjFiMDU4NTZl
YTNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRh
LXJlbW92YWwtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3RzIHRo
YXQgdXNlciBpbnRlcmFjdGlvbiBpcyByZXBvcnRlZCBhZnRlciBoaXN0b3J5IHJlbW92YWwgc2lu
Y2UgdGhhdCBtZWFucyBhbGwgc3RhdGlzdGljcyBoYXZlIGJlZW4gcmVzZXQuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiBpcyB0
b3BGcmFtZU9yaWdpbgorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNT
IHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3Jp
Z2luKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1Mg
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmln
aW4pIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1RoaXMgaXMgdGhlIHRlc3QgZWxlbWVudApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXIt
aW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwtZGF0YWJhc2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2Vy
LWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMmJlYjQyZjk0MmYxYjY4ZmZhY2ZlMGVmYjFmZTkyMzk2MmYyMjY4
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1y
ZW1vdmFsLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHVzZXIgaW50ZXJhY3Rpb24gaXMg
cmVwb3J0ZWQgYWZ0ZXIgaGlzdG9yeSByZW1vdmFsIHNpbmNlIHRoYXQgbWVhbnMgYWxsIHN0YXRp
c3RpY3MgaGF2ZSBiZWVuIHJlc2V0LiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisg
ICAgY29uc3QgdG9wRnJhbWVPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBj
b25zdCBzdWJGcmFtZU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworCisgICAgZnVu
Y3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJZCwgY2FsbGJhY2spIHsKKyAgICAgICAgdmFy
IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAgICAgICB2
YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAy
OworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZz
ZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRl
clkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBjYWxs
YmFjaygpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIlByb21pc2UgcmVqZWN0ZWQuIik7CisgICAgICAgICAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaXJzdEludGVyYWN0aW9uKCkgewor
ICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4p
Iik7CisgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGVzdEVsZW1lbnQiLCBjbGVhcldlYnNpdGVE
YXRhKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjbGVhcldlYnNpdGVEYXRhKCkgeworICAgICAg
ICBzaG91bGRCZVRydWUoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKwor
ICAgICAgICBpZiAodGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c0NsZWFyVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbChzZWNvbmRJbnRlcmFjdGlvbik7CisgICAg
fQorCisgICAgZnVuY3Rpb24gc2Vjb25kSW50ZXJhY3Rpb24oKSB7CisgICAgICAgIHNob3VsZEJl
RmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZy
YW1lT3JpZ2luKSIpOworICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RFbGVtZW50IiwgZmlu
aXNoVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAg
c2hvdWxkQmVUcnVlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7CisKKyAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAg
ICBvbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRh
YmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIHNob3VsZEJlKCJkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4iLCAidG9wRnJh
bWVPcmlnaW4iKTsKKworICAgICAgICAgICAgZmlyc3RJbnRlcmFjdGlvbigpOworICAgICAgICB9
KTsKKyAgICB9OworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJ0ZXN0RWxlbWVudCI+VGhpcyBpcyB0aGUg
dGVzdCBlbGVtZW50PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGU5MDBkYzVlM2MxOGQxMzAzOTE3ZjdiMDg2ODFj
N2NkNTExMzVmZDguLjEzNzJkMWJjNjcyMjU1N2E5ODdkM2ZlZmMxYTQ5M2FkMTRmMzhiNGYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC05ODUsNiArOTg1
LDggQEAgaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2tleWJvYXJkLWV2ZW50cy1kdXJpbmctcHJvdmlz
aW9uYWwtbmF2aWdhdGlvbi5odG1sIFsgU2tpcAogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2tleWJv
YXJkLWV2ZW50cy1kdXJpbmctcHJvdmlzaW9uYWwtc3ViZnJhbWUtbmF2aWdhdGlvbi5odG1sIFsg
U2tpcCBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291
cmNlLWhhbmRsZWQta2V5ZG93bi5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLmh0bWwgWyBT
a2lwIF0KK2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3Vy
Y2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24t
ZGF0YWJhc2UuaHRtbCBbIFNraXAgXQogbWVkaWEvYXVkaW8tcGxheWJhY2stdm9sdW1lLWNoYW5n
ZXMtd2l0aC1yZXN0cmljdGlvbnMtYW5kLXVzZXItZ2VzdHVyZXMuaHRtbCBbIFNraXAgXQogbWVk
aWEvYXVkaW8tcGxheWJhY2stdm9sdW1lLWNoYW5nZXMtd2l0aC1yZXN0cmljdGlvbnMuaHRtbCBb
IFNraXAgXQogbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlLWludGVycnVwdGlvbi5odG1sIFsgU2tp
cCBdCkBAIC0yNzc5LDYgKzI3ODEsOSBAQCBmYXN0L2NhbnZhcy93ZWJnbC9yZWFkUGl4ZWxzLWZs
b2F0Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNzQxMjAgaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFt
ZS5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1p
bnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1l
Lmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWlu
dGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLmh0bWwgWyBTa2lw
IF0KK3dlYmtpdC5vcmcvYi8xNzQxMjAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS5odG1s
IFsgU2tpcCBdCitodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFj
dGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFi
YXNlLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2Vy
LWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNl
Lmh0bWwgWyBTa2lwIF0KICMgU2tpcHBlZCBpbiBXSzIgZXhwZWN0YXRpb25zIGJlY2F1c2UgY29v
a2llIHBhcnRpdGlvbmluZyBpcyBvbmx5IGF2YWlsYWJsZSBpbiBtYWNPUyBIaWdoIFNpZXJyYSBh
bmQgaU9TIDExLgogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxl
dGlvbi5odG1sIFsgUGFzcyBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29v
a2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbCBbIFBhc3MgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378891</attachid>
            <date>2019-09-16 13:29:56 -0700</date>
            <delta_ts>2019-09-16 14:19:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195420-20190916132955.patch</filename>
            <type>text/plain</type>
            <size>372671</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5ODM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTlmYTg2ZjUzZTBmODYz
NjY1MDNmNTgxMDc5YjhlNDU5NDA5MjdiYS4uMzFlZTZkMjE5ZjI5N2VmZjY1YjliZDYzZDZhOWVk
NDdjNWU3M2M5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDE5LTA5LTE2ICBLYXRo
ZXJpbmUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5h
YmxlIExheW91dFRlc3RzIHVzaW5nIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgU1FMaXRlIGJhY2tl
bmQgKDE5NTQyMCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NTQyMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQyMTM1NTE+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2Uu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Js
b2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0LWltcG9ydC1kYXRhYmFzZS5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1h
Z2UtZm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMt
d2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9y
LWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291
cmNlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5r
LXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVk
LWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZh
bGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LXdpdGhvdXQtbGluay1kZWNvcmF0aW9uLWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJh
c2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1m
cmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1
YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24t
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJh
c2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1v
cmlnaW5zLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2Ut
cmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
c3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJh
c2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJl
Y3RzLXRvLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJl
ZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRv
cC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXIt
aW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5k
LXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAg
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFz
ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1z
Y3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5h
dmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJl
Y3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVu
dC13aXRob3V0LWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZp
Z2F0aW9uLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5h
YmxlLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50
LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAg
ICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNv
dXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3Vy
Y2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2Uu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
bi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFz
ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9z
dC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hl
ZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2Fs
aG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1k
YXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1wcmV2
YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVkLWtleWRvd24t
ZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFs
ZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291
cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3Vy
Y2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFi
YXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFz
ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRh
dGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlm
cmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10
by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hl
ZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQt
bmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10
by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0b20tcHJldmFsZW50LXJlc291cmNlLWlu
LWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50
LXN1YnJlc291cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZv
ci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9u
LW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50
ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlv
bi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91
c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFi
YXNlLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oOgorICAg
ICAgIEFkZGVkIFdFQkNPUkVfRVhQT1JUIHByZWZpeCB0byBhIGZ1bmN0aW9uIG5lZWRlZCBpbiB0
aGUgRGF0YWJhc2UKKyAgICAgICBiYWNrZW5kIHRvIGNsZWFyIG91dCB0aGUgZGF0YWJhc2UuCisK
IDIwMTktMDktMTMgIFJ1c3NlbGwgRXBzdGVpbiAgPHJlcHN0ZWluQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ5NzA5LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmZWRiN2Zl
ZDlkYzEzOWU2MWRjNTAyMTU4MjFiOWRjZWRhNjVjNGQyLi5hNjY2OTIwYmUwMTU2NGJlODM0ZTk3
NTQyOWQwZGE0MzUxOTM3Yjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMCBAQAorMjAxOS0wOS0x
NiAgS2F0aGVyaW5lIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAg
ICAgIEVuYWJsZSBMYXlvdXRUZXN0cyB1c2luZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFNRTGl0
ZSBiYWNrZW5kICgxOTU0MjApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTU0MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjEzNTUxPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZSk6CisgICAgICAgIFJlbW92ZWQgcHJl
cGFyZVN0YXRlbWVudHMoKSBjYWxsIGZyb20gdGhlIGNvbnN0cnVjdG9yLiBQcmVwYXJpbmcKKyAg
ICAgICAgc3RhdGVtZW50cyB0aGVuIHJ1bm5pbmcgYSB2YWN1dW0gY29tbWFuZCBvbiB0aGUgZGF0
YWJhc2UgcmVzdWx0cyBpbiBhbgorICAgICAgICBlcnJvciAodGhlIHZhY3V1bSBjb21tYW5kIGlz
IGNhbGxlZCBpbnQgdGhlIHBvcHVsYXRlRnJvbU1lbW9yeVN0b3JlKCkKKyAgICAgICAgZnVuY3Rp
b24pCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OnByZXBhcmVTdGF0ZW1lbnRzKToKKyAgICAgICAgQWRkZWQgMiBzdGF0ZW1lbnRzIHRoYXQg
d2VyZSBub3QgYmVpbmcgcHJlcGFyZWQuIFJlbW92ZWQgb25lIHN0YXRlbWVudAorICAgICAgICB3
aGljaCBpcyBjYWxsZWQgaW4gdGhlIGlzRW1wdHkoKSBjaGVjayAoYmVmb3JlIG90aGVycyBhcmUg
cHJlcGFyZWQpIHNvCisgICAgICAgIGl0IGNhbiBiZSBwcmVwYXJlZCBzZXBhcmF0ZWx5LgorCisg
ICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWxh
dGlvbnNoaXBFeGlzdHMgY29uc3QpOgorICAgICAgICBDb3JyZWN0ZWQgaW5jb3JyZWN0IGNhcGl0
YWxpemF0aW9uLiBBZGRlZCBjaGVjayBmb3IgbnVsbG9wdCBpbiBjYXNlCisgICAgICAgIGRvbWFp
bklEIGlzIGZvciBhIGRvbWFpbiBub3QgaW4gdGhlIGRhdGFiYXNlIHlldC4KKworICAgICAgICAo
V2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cG9wdWxhdGVGcm9t
TWVtb3J5U3RvcmUpOgorICAgICAgICBNb3ZlZCB0aGUgcHJlcGFyZVN0YXRlbWVudHMoKSBjYWxs
IGFmdGVyIHRoZSB2YWN1dW0gY29tbWFuZCBpbiB0aGUgY2FzZQorICAgICAgICB3aGVyZSB0aGUg
ZGF0YWJhc2UgaXMgZW1wdHkuIE90aGVyd2lzZSBjYWxsZWQgaXQgYmVmb3JlIHJldHVybmluZy4K
KworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
cmVjdXJzaXZlbHlGaW5kTm9uUHJldmFsZW50RG9tYWluc1RoYXRSZWRpcmVjdGVkVG9UaGlzRG9t
YWluKToKKyAgICAgICAgQWRkZWQgYSBzcGFjZSB0byB0aGUgU1FMIGNvbW1hbmRzIHRvIGNvcnJl
Y3QgdGhlIHN5bnRheC4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6ZmluZE5vdFZlcnlQcmV2YWxlbnRSZXNvdXJjZXMpOgorICAgICAgICBD
b3JyZWN0ZWQgYSBidWcgaW4gdGhlIFNRTCBjb21tYW5kIGZvciBxdWVyeWluZworICAgICAgICBz
dWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW4uIFRoZSBvbGQgcXVlcnkgd2FzIGFza2luZyBmb3Ig
c3VicmVzb3VyY2UuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OmdyYW5kZmF0aGVyRGF0YUZvckRvbWFpbnMpOgorICAgICAgICBUaGUgZ3Jh
bmRmYXRoZXJpbmcuaHRtbCB0ZXN0IHdhcyBmYWlsaW5nIGJlY2F1c2UgZG9tYWlucyB3ZXJlIGJl
aW5nCisgICAgICAgICJzZXQiIHRvIGdyYW5kZmF0aGVyZWQgaW4gdGhlIGRhdGFiYXNlIGJlZm9y
ZSBiZWluZyBpbnNlcnRlZC4gVGhpcyBmaXgKKyAgICAgICAgZW5zdXJlcyBhbGwgZG9tYWlucyBi
ZWZvcmUgc2V0dGluZyB0aGUgZ3JhbmRmYXRoZXJpbmcgZmxhZy4KKworICAgICAgICAoV2ViS2l0
OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9u
KToKKyAgICAgICAgTXVsdGlwbGUgdGVzdHMgd2VyZSBmYWlsaW5nIGJlY2F1c2UgdGhlIHF1ZXJ5
IHRvIGluc2VydCB0aGUgcmVsYXRpb25zaGlwCisgICAgICAgIGZvciB0aGUgc291cmNlIGRvbWFp
biByZWxpZXMgb24gdGhlIHRhcmdldCBkb21haW4gYmVpbmcgaW4gdGhlCisgICAgICAgIE9ic2Vy
dmVkRG9tYWlucyB0YWJsZS4gVGhpcyBwYXRjaCBlbnN1cmVzIGFsbCBkb21haW5zIGFyZSBhZGRl
ZCBiZWZvcmUKKyAgICAgICAgcGVyZm9ybWluZyB0aGUgcXVlcnkuCisKKyAgICAgICAgKFdlYktp
dDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc0hhZFVzZXJJbnRlcmFj
dGlvbik6CisgICAgICAgIFRoZSBTUUwgc3RhdGVtZW50IHdhcyBiZWluZyBib3VuZCB0byBhIHZh
bHVlIGFuZCBub3QgYmVpbmcgcmVzZXQuIFRoaXMKKyAgICAgICAgcGF0Y2ggcmVzZXRzIHRoZSBz
dGF0ZW1lbnQgYWZ0ZXIgYmluZGluZy4gQWRkaXRpb25hbGx5LCB0aGUgc3RlcCgpCisgICAgICAg
IGZ1bmN0aW9uIHdhcyBiZWluZyBjb21wYXJlZCB0byBTUUxJVEVfRE9ORSBpbnN0ZWFkIG9mIFNR
TElURV9ST1csCisgICAgICAgIGNhdXNpbmcgYW4gZXJyb3IgaWYgdGhlIHF1ZXJ5IHJldHVybmVk
IHJlc3VsdHMuIFRoZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKSB3YXMgY2F1c2luZyBu
dWxsIHNlYXJjaGVzIHRvIGNyYXNoIGluc3RlYWQgb2YKKyAgICAgICAgcmV0dXJuaW5nIGZhbHNl
IChpLmUuIGlmIGEgZG9tYWluIGlzIG5vdCBpbiB0aGUgZGF0YWJhc2UgaXQgc2hvdWxkCisgICAg
ICAgIHJldHVybiB0aGF0IGl0IGhhcyBubyB1c2VyIGludGVyYWN0aW9uIGluc3RlYWQgb2YgY3Jh
c2hpbmcpLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpwcmVkaWNhdGVWYWx1ZUZvckRvbWFpbiBjb25zdCk6CisgICAgICAgIFRoZSBTUUwg
c3RhdGVtZW50IHdhcyBiZWluZyBib3VuZCB0byBhIHZhbHVlIGFuZCBub3QgYmVpbmcgcmVzZXQu
IFRoaXMKKyAgICAgICAgcGF0Y2ggcmVzZXRzIHRoZSBzdGF0ZW1lbnQgYWZ0ZXIgYmluZGluZy4g
U1FMSVRFX0RPTkUgY2hhbmdlZCB0bworICAgICAgICBTUUxJVEVfUk9XIHRvIHJldHVybiBub24t
ZW1wdHkgcXVlcnkgcmVzdWx0cy4gQVNTRVJUX05PVF9SRUFDSEVEKCkKKyAgICAgICAgcmVtb3Zl
ZCBmb3IgdGhlIHNhbWUgcmVhc29ucyBhcyBhYm92ZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNz
Rm9yUmVnaXN0cmFibGVEb21haW4pOgorICAgICAgICBGaXhlZCB0aGUgcmVsZWFzZSBsb2cgc3Rh
dGVtZW50IHdoaWNoIHdhcyBsb2dnaW5nIHRoZSB3cm9uZyBmdW5jdGlvbgorICAgICAgICBuYW1l
LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpjbGVhckRhdGFiYXNlQ29udGVudHMpOgorICAgICAgICBDbGVhcnMgdGhlIGRhdGFiYXNlIGFu
ZCByZWJ1aWxkcyB0aGUgdGFibGVzIG9uIGEgY2xlYXIgY29tbWFuZCB0bworICAgICAgICBtYXRj
aCB0aGUgZnVuY3Rpb25hbGl0eSBpbiB0aGUgTWVtb3J5IFN0b3JlLgorCisgICAgICAgIChXZWJL
aXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhcik6CisgICAgICAg
IENhbGwgdGhlIGNsZWFyRGF0YWJhc2VDb250ZW50cyBmdW5jdGlvbiB0byBtYXRjaCB0aGUgZnVu
Y3Rpb25hbGl0eQorICAgICAgICBpbiB0aGUgTWVtb3J5IFN0b3JlLgorCisgICAgICAgIChXZWJL
aXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNIYWRVbmV4cGlyZWRS
ZWNlbnRVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICBUZXN0cyB3ZXJlIGZhaWxpbmcgYmVjYXVz
ZSBzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvcigpIHdhcyBub3QKKyAgICAgICAgY2hlY2tp
bmcgZm9yIGV4cGlyZWQgdXNlciBpbnRlcmFjdGlvbi4gTWF0Y2hlZCBmdW5jdGlvbmFsaXR5IGlu
IHRoZQorICAgICAgICBNZW1vcnkgU3RvcmUuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9y
KToKKyAgICAgICAgVGVzdHMgd2VyZSBmYWlsaW5nIGJlY2F1c2Ugc2hvdWxkUmVtb3ZlQWxsV2Vi
c2l0ZURhdGFGb3IoKSB3YXMgbm90CisgICAgICAgIGNoZWNraW5nIGZvciBleHBpcmVkIHVzZXIg
aW50ZXJhY3Rpb24uIE1hdGNoZWQgZnVuY3Rpb25hbGl0eSBpbiB0aGUKKyAgICAgICAgTWVtb3J5
IFN0b3JlLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpwcnVuZVN0YXRpc3RpY3NJZk5lZWRlZCk6CisgICAgICAgIExhc3Qgc2VlbiBzaG91
bGQgYmUgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlciBiZWNhdXNlIHlvdSB3YW50IHRvCisgICAg
ICAgIHBydW5lIHRoZSBvbGRlciBzdGF0aXN0aWNzIGZpcnN0LCB3aGljaCB3aWxsIGhhdmUgYSBs
b3dlciBsYXN0U2VlbgorICAgICAgICBmaWVsZCAoc2Vjb25kc1NpbmNlRXBvY2goKSB3aWxsIGJl
IGxvd2VyIGZvciBvbGRlciB2YWx1ZXMpLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvciBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIERlbGV0ZWQgY29uc3Qgc3BlY2lmaWVyIGJlY2F1c2Ug
dGhlIGZ1bmN0aW9uIG5lZWRzIHRvIGNsZWFyIHRoZQorICAgICAgICBkYXRhYmFzZS4KKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmUuaDoKKyAgICAgICAgRGVjbGFyZWQgbmV3IGZ1bmN0aW9ucy4gVXBkYXRlZCBz
cGVsbGluZyBlcnJvciAocmVnaXN0ZXJhYmxlIC0tPgorICAgICAgICByZWdpc3RyYWJsZSkuCisK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKToKKyAgICAgICAgU2VwYXJh
dGVkIHRoZSByZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgY3JlYXRpb24gcHJvY2VzcyBpbnRv
IGl0cworICAgICAgICBvd24gbWV0aG9kIHNvIGl0IGNhbiBiZSBjYWxsZWQgYnkgdGhlIHRlc3Qu
CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5oOgorICAgICAgICBEZWNsYXJlZCBmbHVzaEFuZERlc3Ryb3lQZXJzaXN0
ZW50U3RvcmUoKSBwdWJsaWMgc28gaXQgY2FuIGJlIGNhbGxlZAorICAgICAgICBieSB0aGUgTmV0
d29yayBTZXNzaW9uIGJlZm9yZSBjcmVhdGluZyBhIG5ldworICAgICAgICBXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphZGRXZWJzaXRlRGF0
YVN0b3JlKToKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5IHdh
cyBub3QgYmVpbmcgY2FsbGVkIG9uIHRoZQorICAgICAgICBXZWJLaXRUZXN0UnVubmVyIHJlc291
cmNlTG9hZFN0YXRpc3RpY3MgZGlyZWN0b3J5LgorCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpzZXRVc2VJVFBEYXRhYmFzZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmLmNwcDoKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFVzZUlUUERhdGFiYXNlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFVzZUlUUERhdGFiYXNlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpzZXRVc2VJVFBEYXRhYmFzZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgUGFzc2VkIHRo
ZSBzZXRVc2VJVFBEYXRhYmFzZSBmbGFnIHRvIHRoZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbgor
ICAgICAgICBvZiB0aGUgc3RhdGlzdGljcyBzdG9yZSB0byBlbmFibGUgdGhlIGRhdGFiYXNlIGJh
Y2tlbmQuCisKKwogMjAxOS0wOS0xMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIEF1eGlsaWFyeVByb2Nlc3NQcm94eTo6c2VuZFdpdGhBc3lu
Y1JlcGx5IHNob3VsZCBxdWV1ZSB1cCBtZXNzYWdlcyBpZiBzZW50IHdoaWxlIHRoZSBwcm9jZXNz
IGlzIHN0YXJ0aW5nIGxpa2UgaXQgZG9lcyBtZXNzYWdlcyB3aXRob3V0IHJlcGxpZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKaW5kZXggMTQ5ODY2ZmJj
MTE5N2JhMDlkYTIxNTc1ZjFjZWFmYWQ2NDE5ZmU2Yi4uMDE0ZGUwZTliNDgwMzQ0ZjE3N2MzMGQz
ZDA4MWJiNTlmZDdkZjNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3Fs
L1NRTGl0ZURhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0
ZURhdGFiYXNlLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIGJvb2wgcmV0dXJuc0F0
TGVhc3RPbmVSZXN1bHQoY29uc3QgU3RyaW5nJik7CiAgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQg
Ym9vbCB0YWJsZUV4aXN0cyhjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIGNsZWFyQWxsVGFibGVz
KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhckFsbFRhYmxlcygpOwogICAgIFdFQkNP
UkVfRVhQT1JUIGludCBydW5WYWN1dW1Db21tYW5kKCk7CiAgICAgaW50IHJ1bkluY3JlbWVudGFs
VmFjdXVtQ29tbWFuZCgpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKaW5kZXggZDRlYzg0YzdjN2QyZTE1YjRlNzhjMDI5
YmExNmYyMjY2N2RjMjM2Ni4uNDhkMWVhZWJmMGMyYjI0ZmFmZTliMWQyMDMyOWY3MTRkYTMyOTcw
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmUuY3BwCkBAIC0yMTMsMTIgKzIxMyw2IEBAIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZShXZWJSZXNvCiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIXByZXBhcmVTdGF0ZW1lbnRzKCkpIHsKLSAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OnByZXBhcmVTdGF0ZW1lbnRzIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTog
JXtwdWJsaWN9cywgZGF0YWJhc2UgcGF0aDogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2Uu
bGFzdEVycm9yTXNnKCksIG1fc3RvcmFnZURpcmVjdG9yeVBhdGgudXRmOCgpLmRhdGEoKSk7Ci0g
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAg
ICAgd29ya1F1ZXVlLmRpc3BhdGNoQWZ0ZXIoNV9zLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigq
dGhpcyldIHsKICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgd2Vha1RoaXMtPmNh
bGN1bGF0ZUFuZFN1Ym1pdFRlbGVtZXRyeSgpOwpAQCAtMzAwLDggKzI5NCw3IEBAIGJvb2wgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZXBhcmVTdGF0ZW1lbnRzKCkKIHsK
ICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAgICAgCi0gICAgaWYgKG1fb2Jz
ZXJ2ZWREb21haW5Db3VudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCi0gICAgICAgIHx8IG1faW5z
ZXJ0T2JzZXJ2ZWREb21haW5TdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgIGlm
IChtX2luc2VydE9ic2VydmVkRG9tYWluU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sK
ICAgICAgICAgfHwgbV9pbnNlcnRUb3BMZXZlbERvbWFpblN0YXRlbWVudC5wcmVwYXJlKCkgIT0g
U1FMSVRFX09LCiAgICAgICAgIHx8IG1fZG9tYWluSURGcm9tU3RyaW5nU3RhdGVtZW50LnByZXBh
cmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9zdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFt
ZURvbWFpbnNTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwpAQCAtMzI4LDcgKzMyMSw4
IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZXBhcmVTdGF0
ZW1lbnRzKCkKICAgICAgICAgfHwgbV91cGRhdGVHcmFuZGZhdGhlcmVkU3RhdGVtZW50LnByZXBh
cmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9pc0dyYW5kZmF0aGVyZWRTdGF0ZW1lbnQu
cHJlcGFyZSgpICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX2ZpbmRFeHBpcmVkVXNlckludGVy
YWN0aW9uU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgKSB7CisgICAg
ICAgIHx8IG1fdG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tLnByZXBhcmUoKSAhPSBTUUxJVEVf
T0sKKyAgICAgICAgfHwgbV90b3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb21FeGlzdHMucHJlcGFy
ZSgpICE9IFNRTElURV9PSykgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAi
JXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVu
dHMgZmFpbGVkIHRvIHByZXBhcmUsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBt
X2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM3MiwxMSArMzY2LDE0IEBAIGJvb2wgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydE9ic2VydmVkRG9tYWluKGNvbnN0
IFJlc291cmNlTG9hCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlbGF0aW9uc2hpcEV4aXN0cyhXZWJDb3JlOjpTUUxpdGVT
dGF0ZW1lbnQmIHN0YXRlbWVudCwgdW5zaWduZWQgZmlyc3REb21haW5JRCwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHNlY29uZERvbWFpbikgY29uc3QKK2Jvb2wgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OnJlbGF0aW9uc2hpcEV4aXN0cyhXZWJDb3JlOjpTUUxpdGVTdGF0
ZW1lbnQmIHN0YXRlbWVudCwgT3B0aW9uYWw8dW5zaWduZWQ+IGZpcnN0RG9tYWluSUQsIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBzZWNvbmREb21haW4pIGNvbnN0CiB7CisgICAgaWYgKGZpcnN0
RG9tYWluSUQgPT0gV1RGOjpudWxsb3B0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCiAg
ICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBpZiAoc3RhdGVtZW50LmJpbmRJ
bnQoMSwgZmlyc3REb21haW5JRCkgIT0gU1FMSVRFX09LCisgICAgaWYgKHN0YXRlbWVudC5iaW5k
SW50KDEsIGZpcnN0RG9tYWluSUQudmFsdWUoKSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHN0
YXRlbWVudC5iaW5kVGV4dCgyLCBzZWNvbmREb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSwog
ICAgICAgICB8fCBzdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ST1cpIHsKICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6Om1faW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwU3RhdGVtZW50IGZhaWxlZCB0byBi
aW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSk7CkBAIC0zODQsMTIgKzM4MSwxMiBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpyZWxhdGlvbnNoaXBFeGlzdHMoV2ViQ29yZTo6U1FMaXRlU3RhdAog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIAotICAgIGJvb2wgcmVsYXRpb25TaGlw
RXhpc3RzID0gISFzdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDApOworICAgIGJvb2wgcmVsYXRpb25z
aGlwRXhpc3RzID0gISFzdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDApOwogCiAgICAgaW50IHJlc2V0
UmVzdWx0ID0gc3RhdGVtZW50LnJlc2V0KCk7CiAgICAgQVNTRVJUX1VOVVNFRChyZXNldFJlc3Vs
dCwgcmVzZXRSZXN1bHQgPT0gU1FMSVRFX09LKTsKICAgICAKLSAgICByZXR1cm4gcmVsYXRpb25T
aGlwRXhpc3RzOworICAgIHJldHVybiByZWxhdGlvbnNoaXBFeGlzdHM7CiB9CiAKIGJvb2wgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydERvbWFpblJlbGF0aW9uc2hp
cChXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQmIHN0YXRlbWVudCwgdW5zaWduZWQgZG9tYWluSUQs
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZSkKQEAgLTQzNCw3ICs0MzEsNyBAQCBi
b29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjb25maXJtRG9tYWluRG9l
c05vdEV4aXN0KGNvbnN0IFJlZ2lzdAogfQogI2VuZGlmCiAKLXVuc2lnbmVkIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkb21haW5JRChjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgZG9tYWluKSBjb25zdAorT3B0aW9uYWw8dW5zaWduZWQ+IFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpkb21haW5JRChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWlu
KSBjb25zdAogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC00NDMsOCAr
NDQwLDcgQEAgdW5zaWduZWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmRv
bWFpbklEKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJgogICAgIGlmIChtX2RvbWFpbklERnJvbVN0
cmluZ1N0YXRlbWVudC5iaW5kVGV4dCgxLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSwog
ICAgICAgICB8fCBtX2RvbWFpbklERnJvbVN0cmluZ1N0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRF
X1JPVykgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZG9tYWluSURGcm9tU3RyaW5nIGZhaWxlZCwg
ZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNn
KCkpOwotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIGRvbWFp
bklEOworICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIAogICAgIGRvbWFpbklE
ID0gbV9kb21haW5JREZyb21TdHJpbmdTdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDApOwpAQCAtNDU4
LDggKzQ1NCw4IEBAIHVuc2lnbmVkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
Ojpkb21haW5JRChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYKIHZvaWQgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydERvbWFpblJlbGF0aW9uc2hpcHMoY29uc3QgUmVz
b3VyY2VMb2FkU3RhdGlzdGljcyYgbG9hZFN0YXRpc3RpY3MpCiB7CiAgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7Ci0KLSAgICBhdXRvIHJlZ2lzdHJhYmxlRG9tYWluSUQgPSBkb21haW5J
RChsb2FkU3RhdGlzdGljcy5yZWdpc3RyYWJsZURvbWFpbik7CisgICAgCisgICAgYXV0byByZWdp
c3RyYWJsZURvbWFpbklEID0gZG9tYWluSUQobG9hZFN0YXRpc3RpY3MucmVnaXN0cmFibGVEb21h
aW4pLnZhbHVlKCk7CiAgICAgZm9yIChhdXRvJiB0b3BGcmFtZURvbWFpbiA6IGxvYWRTdGF0aXN0
aWNzLnN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWlucykKICAgICAgICAgaW5zZXJ0RG9t
YWluUmVsYXRpb25zaGlwKG1fc3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zU3RhdGVt
ZW50LCByZWdpc3RyYWJsZURvbWFpbklELCB0b3BGcmFtZURvbWFpbik7CiAKQEAgLTQ4Niw4ICs0
ODIsMTYgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cG9wdWxh
dGVGcm9tTWVtb3J5U3RvcmUoY29uc3QgUmVzb3VyY2UKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6
OmlzTWFpbigpKTsKIAotICAgIGlmICghaXNFbXB0eSgpKQorICAgIG1fb2JzZXJ2ZWREb21haW5D
b3VudC5wcmVwYXJlKCk7CisKKyAgICBpZiAoIWlzRW1wdHkoKSkgeworICAgICAgICBpZiAoIXBy
ZXBhcmVTdGF0ZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdv
cmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJlU3Rh
dGVtZW50cyBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMsIGRhdGFiYXNlIHBhdGg6
ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpLCBtX3N0b3JhZ2VE
aXJlY3RvcnlQYXRoLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwor
ICAgIH0KIAogICAgIGF1dG8mIHN0YXRpc3RpY3NNYXAgPSBtZW1vcnlTdG9yZS5kYXRhKCk7CiAg
ICAgZm9yIChjb25zdCBhdXRvJiBzdGF0aXN0aWMgOiBzdGF0aXN0aWNzTWFwKQpAQCAtNDk5LDYg
KzUwMywxMiBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwb3B1
bGF0ZUZyb21NZW1vcnlTdG9yZShjb25zdCBSZXNvdXJjZQogICAgICAgICBpbnNlcnREb21haW5S
ZWxhdGlvbnNoaXBzKHN0YXRpc3RpYy52YWx1ZSk7CiAKICAgICBtX2RhdGFiYXNlLnJ1blZhY3V1
bUNvbW1hbmQoKTsKKworICAgIGlmICghcHJlcGFyZVN0YXRlbWVudHMoKSkgeworICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1
YmxpY31zLCBkYXRhYmFzZSBwYXRoOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0
RXJyb3JNc2coKSwgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aC51dGY4KCkuZGF0YSgpKTsKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiB9CiAKIHZv
aWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNhbGN1bGF0ZUFuZFN1Ym1p
dFRlbGVtZXRyeSgpIGNvbnN0CkBAIC01NDYsNyArNTU2LDcgQEAgdW5zaWduZWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlY3Vyc2l2ZWx5RmluZE5vblByZXZhbGVudERv
bWFpbnMKICAgICArK251bWJlck9mUmVjdXJzaXZlQ2FsbHM7CiAKICAgICBTdGRTZXQ8dW5zaWdu
ZWQ+IG5ld2x5SWRlbnRpZmllZERvbWFpbnM7Ci0gICAgU1FMaXRlU3RhdGVtZW50IGZpbmRTdWJy
ZXNvdXJjZXMobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIFN1YnJlc291cmNlVW5pcXVl
UmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQgZnJvbSBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0
c0Zyb20gSU5ORVIgSk9JTiBPYnNlcnZlZERvbWFpbnMgT04gT2JzZXJ2ZWREb21haW5zLmRvbWFp
bklEID0gU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5JRCBXSEVSRSBz
dWJyZXNvdXJjZURvbWFpbklEID0gIiwgU3RyaW5nOjpudW1iZXIocHJpbWFyeURvbWFpbklEKSwg
IkFORCBPYnNlcnZlZERvbWFpbnMuaXNQcmV2YWxlbnQgPSAwIikpOworICAgIFNRTGl0ZVN0YXRl
bWVudCBmaW5kU3VicmVzb3VyY2VzKG1fZGF0YWJhc2UsIG1ha2VTdHJpbmcoIlNFTEVDVCBTdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20uZnJvbURvbWFpbklEIGZyb20gU3VicmVzb3VyY2VV
bmlxdWVSZWRpcmVjdHNGcm9tIElOTkVSIEpPSU4gT2JzZXJ2ZWREb21haW5zIE9OIE9ic2VydmVk
RG9tYWlucy5kb21haW5JRCA9IFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9t
YWluSUQgV0hFUkUgc3VicmVzb3VyY2VEb21haW5JRCA9ICIsIFN0cmluZzo6bnVtYmVyKHByaW1h
cnlEb21haW5JRCksICIgQU5EIE9ic2VydmVkRG9tYWlucy5pc1ByZXZhbGVudCA9IDAiKSk7CiAg
ICAgaWYgKGZpbmRTdWJyZXNvdXJjZXMucHJlcGFyZSgpID09IFNRTElURV9PSykgewogICAgICAg
ICB3aGlsZSAoZmluZFN1YnJlc291cmNlcy5zdGVwKCkgPT0gU1FMSVRFX1JPVykgewogICAgICAg
ICAgICAgYXV0byBuZXdEb21haW5JRCA9IGZpbmRTdWJyZXNvdXJjZXMuZ2V0Q29sdW1uSW50KDAp
OwpAQCAtNTU2LDcgKzU2Niw3IEBAIHVuc2lnbmVkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpyZWN1cnNpdmVseUZpbmROb25QcmV2YWxlbnREb21haW5zCiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICBTUUxpdGVTdGF0ZW1lbnQgZmluZFRvcEZyYW1lcyhtX2RhdGFiYXNlLCBt
YWtlU3RyaW5nKCJTRUxFQ1QgVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5J
RCBmcm9tIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSBJTk5FUiBKT0lOIE9ic2VydmVkRG9t
YWlucyBPTiBPYnNlcnZlZERvbWFpbnMuZG9tYWluSUQgPSBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0
c0Zyb20uZnJvbURvbWFpbklEIFdIRVJFIHRhcmdldERvbWFpbklEID0gIiwgU3RyaW5nOjpudW1i
ZXIocHJpbWFyeURvbWFpbklEKSwgIkFORCBPYnNlcnZlZERvbWFpbnMuaXNQcmV2YWxlbnQgPSAw
IikpOworICAgIFNRTGl0ZVN0YXRlbWVudCBmaW5kVG9wRnJhbWVzKG1fZGF0YWJhc2UsIG1ha2VT
dHJpbmcoIlNFTEVDVCBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20uZnJvbURvbWFpbklEIGZy
b20gVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tIElOTkVSIEpPSU4gT2JzZXJ2ZWREb21haW5z
IE9OIE9ic2VydmVkRG9tYWlucy5kb21haW5JRCA9IFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJv
bS5mcm9tRG9tYWluSUQgV0hFUkUgdGFyZ2V0RG9tYWluSUQgPSAiLCBTdHJpbmc6Om51bWJlcihw
cmltYXJ5RG9tYWluSUQpLCAiIEFORCBPYnNlcnZlZERvbWFpbnMuaXNQcmV2YWxlbnQgPSAwIikp
OwogICAgIGlmIChmaW5kVG9wRnJhbWVzLnByZXBhcmUoKSA9PSBTUUxJVEVfT0spIHsKICAgICAg
ICAgd2hpbGUgKGZpbmRUb3BGcmFtZXMuc3RlcCgpID09IFNRTElURV9ST1cpIHsKICAgICAgICAg
ICAgIGF1dG8gbmV3RG9tYWluSUQgPSBmaW5kVG9wRnJhbWVzLmdldENvbHVtbkludCgwKTsKQEAg
LTY1Nyw3ICs2NjcsNyBAQCBIYXNoTWFwPHVuc2lnbmVkLCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6Tm90VmVyeVByZXZhbGVudFJlc291cmNlcwogICAgICAgICB9CiAgICAg
fQogCi0gICAgU1FMaXRlU3RhdGVtZW50IHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNDb3Vu
dFN0YXRlbWVudChtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1Qgc3VicmVzb3VyY2VEb21h
aW5JRCwgQ09VTlQodG9wRnJhbWVEb21haW5JRCkgRlJPTSBTdWJyZXNvdXJjZVVuZGVyVG9wRnJh
bWVEb21haW5zIFdIRVJFIHN1YnJlc291cmNlRG9tYWluSUQgSU4gKCIsIGRvbWFpbklEc09mSW50
ZXJlc3QsICIpIEdST1VQIEJZIHN1YnJlc291cmNlRG9tYWluSUQiKSk7CisgICAgU1FMaXRlU3Rh
dGVtZW50IHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNDb3VudFN0YXRlbWVudChtX2RhdGFi
YXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1Qgc3ViZnJhbWVEb21haW5JRCwgQ09VTlQodG9wRnJhbWVE
b21haW5JRCkgRlJPTSBTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJFIHN1YmZyYW1l
RG9tYWluSUQgSU4gKCIsIGRvbWFpbklEc09mSW50ZXJlc3QsICIpIEdST1VQIEJZIHN1YmZyYW1l
RG9tYWluSUQiKSk7CiAgICAgaWYgKHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNDb3VudFN0
YXRlbWVudC5wcmVwYXJlKCkgPT0gU1FMSVRFX09LKSB7CiAgICAgICAgIHdoaWxlIChzdWJmcmFt
ZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnRTdGF0ZW1lbnQuc3RlcCgpID09IFNRTElURV9ST1cp
IHsKICAgICAgICAgICAgIHVuc2lnbmVkIGRvbWFpbklEID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNDb3VudFN0YXRlbWVudC5nZXRDb2x1bW5JbnQo
MCkpOwpAQCAtNjg3LDEyICs2OTcsMTIgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6cmVjbGFzc2lmeVJlc291cmNlcygpCiAgICAgYXV0byBub3RWZXJ5UHJldmFs
ZW50UmVzb3VyY2VzID0gZmluZE5vdFZlcnlQcmV2YWxlbnRSZXNvdXJjZXMoKTsKIAogICAgIGZv
ciAoYXV0byYgcmVzb3VyY2VTdGF0aXN0aWMgOiBub3RWZXJ5UHJldmFsZW50UmVzb3VyY2VzLnZh
bHVlcygpKSB7Ci0gICAgICAgIGlmIChzaG91bGRTa2lwKHJlc291cmNlU3RhdGlzdGljLnJlZ2lz
dGVyYWJsZURvbWFpbikpCisgICAgICAgIGlmIChzaG91bGRTa2lwKHJlc291cmNlU3RhdGlzdGlj
LnJlZ2lzdHJhYmxlRG9tYWluKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGF1
dG8gbmV3UHJldmFsZW5jZSA9IGNsYXNzaWZpZXIoKS5jYWxjdWxhdGVSZXNvdXJjZVByZXZhbGVu
Y2UocmVzb3VyY2VTdGF0aXN0aWMuc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluc0NvdW50
LCByZXNvdXJjZVN0YXRpc3RpYy5zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvQ291bnQsIHJl
c291cmNlU3RhdGlzdGljLnN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNDb3VudCwgcmVzb3Vy
Y2VTdGF0aXN0aWMudG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb0NvdW50LCByZXNvdXJjZVN0YXRp
c3RpYy5wcmV2YWxlbmNlKTsKICAgICAgICAgaWYgKG5ld1ByZXZhbGVuY2UgIT0gcmVzb3VyY2VT
dGF0aXN0aWMucHJldmFsZW5jZSkKLSAgICAgICAgICAgIHNldFByZXZhbGVudFJlc291cmNlKHJl
c291cmNlU3RhdGlzdGljLnJlZ2lzdGVyYWJsZURvbWFpbiwgbmV3UHJldmFsZW5jZSk7CisgICAg
ICAgICAgICBzZXRQcmV2YWxlbnRSZXNvdXJjZShyZXNvdXJjZVN0YXRpc3RpYy5yZWdpc3RyYWJs
ZURvbWFpbiwgbmV3UHJldmFsZW5jZSk7CiAgICAgfQogfQogCkBAIC04NTEsNiArODYxLDkgQEAg
dm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbmRmYXRoZXJEYXRh
Rm9yRG9tYWlucyhjb25zdCBIYXNoU2UKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigp
KTsKIAorICAgIGZvciAoYXV0byYgcmVnaXN0cmFibGVEb21haW4gOiBkb21haW5zKQorICAgICAg
ICBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihyZWdpc3RyYWJs
ZURvbWFpbik7CisKICAgICBTUUxpdGVTdGF0ZW1lbnQgZG9tYWluc1RvVXBkYXRlU3RhdGVtZW50
KG1fZGF0YWJhc2UsIG1ha2VTdHJpbmcoIlVQREFURSBPYnNlcnZlZERvbWFpbnMgU0VUIGdyYW5k
ZmF0aGVyZWQgPSAxIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluIElOICgiLCBkb21haW5zVG9TdHJp
bmcoZG9tYWlucyksICIpIikpOwogICAgIGlmIChkb21haW5zVG9VcGRhdGVTdGF0ZW1lbnQucHJl
cGFyZSgpICE9IFNRTElURV9PSwogICAgICAgICB8fCBkb21haW5zVG9VcGRhdGVTdGF0ZW1lbnQu
c3RlcCgpICE9IFNRTElURV9ET05FKSB7CkBAIC04OTQsNyArOTA3LDcgQEAgdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFJl
Z2lzdHJhYmxlRG8KICAgICBpZiAoIWlzTWFpbkZyYW1lICYmICEoYXJlVGFyZ2V0QW5kVG9wRnJh
bWVEb21haW5zU2FtZVNpdGUgfHwgYXJlVGFyZ2V0QW5kU291cmNlRG9tYWluc1NhbWVTaXRlKSkg
ewogICAgICAgICBhdXRvIHRhcmdldFJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0Zv
clJlZ2lzdHJhYmxlRG9tYWluKHRhcmdldERvbWFpbik7CiAgICAgICAgIHVwZGF0ZUxhc3RTZWVu
KHRhcmdldERvbWFpbiwgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cmVkdWNlVGltZVJlc29sdXRp
b24oV2FsbFRpbWU6Om5vdygpKSk7Ci0KKyAgICAgICAgZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNz
Rm9yUmVnaXN0cmFibGVEb21haW4odG9wRnJhbWVEb21haW4pOwogICAgICAgICBpZiAoIXJlbGF0
aW9uc2hpcEV4aXN0cyhtX3N1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbkV4aXN0cywgdGFyZ2V0
UmVzdWx0LnNlY29uZCwgdG9wRnJhbWVEb21haW4pKSB7CiAgICAgICAgICAgICBpbnNlcnREb21h
aW5SZWxhdGlvbnNoaXAobV9zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zLCB0YXJnZXRSZXN1
bHQuc2Vjb25kLCB0b3BGcmFtZURvbWFpbik7CiAgICAgICAgICAgICBzdGF0aXN0aWNzV2VyZVVw
ZGF0ZWQgPSB0cnVlOwpAQCAtOTA0LDI0ICs5MTcsMjUgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFJlZ2lzdHJhYmxl
RG8KICAgICBpZiAoaXNSZWRpcmVjdCAmJiAhYXJlVGFyZ2V0QW5kU291cmNlRG9tYWluc1NhbWVT
aXRlKSB7CiAgICAgICAgIGlmIChpc01haW5GcmFtZSkgewogICAgICAgICAgICAgYXV0byByZWRp
cmVjdGluZ0RvbWFpblJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJh
YmxlRG9tYWluKHNvdXJjZURvbWFpbik7CisgICAgICAgICAgICBhdXRvIHRhcmdldFJlc3VsdCA9
IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHRhcmdldERvbWFp
bik7CisKICAgICAgICAgICAgIGlmICghcmVsYXRpb25zaGlwRXhpc3RzKG1fdG9wRnJhbWVVbmlx
dWVSZWRpcmVjdHNUb0V4aXN0cywgcmVkaXJlY3RpbmdEb21haW5SZXN1bHQuc2Vjb25kLCB0YXJn
ZXREb21haW4pKSB7CiAgICAgICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1f
dG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUbywgcmVkaXJlY3RpbmdEb21haW5SZXN1bHQuc2Vjb25k
LCB0YXJnZXREb21haW4pOwogICAgICAgICAgICAgICAgIHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9
IHRydWU7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGF1dG8gdGFyZ2V0UmVzdWx0ID0g
ZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4odGFyZ2V0RG9tYWlu
KTsKICAgICAgICAgICAgIGlmICghcmVsYXRpb25zaGlwRXhpc3RzKG1fdG9wRnJhbWVVbmlxdWVS
ZWRpcmVjdHNGcm9tRXhpc3RzLCB0YXJnZXRSZXN1bHQuc2Vjb25kLCBzb3VyY2VEb21haW4pKSB7
CiAgICAgICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fdG9wRnJhbWVVbmlx
dWVSZWRpcmVjdHNGcm9tLCB0YXJnZXRSZXN1bHQuc2Vjb25kLCBzb3VyY2VEb21haW4pOwogICAg
ICAgICAgICAgICAgIHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBhdXRvIHJlZGlyZWN0aW5nRG9tYWluUmVz
dWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4oc291cmNl
RG9tYWluKTsKKyAgICAgICAgICAgIGF1dG8gdGFyZ2V0UmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VT
dGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4odGFyZ2V0RG9tYWluKTsKICAgICAgICAgICAg
IGlmICghcmVsYXRpb25zaGlwRXhpc3RzKG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb0V4
aXN0cywgcmVkaXJlY3RpbmdEb21haW5SZXN1bHQuc2Vjb25kLCB0YXJnZXREb21haW4pKSB7CiAg
ICAgICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fc3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdHNUbywgcmVkaXJlY3RpbmdEb21haW5SZXN1bHQuc2Vjb25kLCB0YXJnZXREb21h
aW4pOwogICAgICAgICAgICAgICAgIHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7CiAgICAg
ICAgICAgICB9CiAKLSAgICAgICAgICAgIGF1dG8gdGFyZ2V0UmVzdWx0ID0gZW5zdXJlUmVzb3Vy
Y2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4odGFyZ2V0RG9tYWluKTsKICAgICAgICAg
ICAgIGlmICghcmVsYXRpb25zaGlwRXhpc3RzKG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNG
cm9tRXhpc3RzLCB0YXJnZXRSZXN1bHQuc2Vjb25kLCBzb3VyY2VEb21haW4pKSB7CiAgICAgICAg
ICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fc3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdHNGcm9tLCB0YXJnZXRSZXN1bHQuc2Vjb25kLCBzb3VyY2VEb21haW4pOwogICAgICAgICAg
ICAgICAgIHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7CkBAIC05OTEsMTUgKzEwMDUsMjAg
QEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVXNlcklu
dGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmwKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigp
KTsKIAogICAgIGlmIChtX2hhZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5iaW5kVGV4dCgxLCBk
b21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSwotICAgICAgICB8fCBtX2hhZFVzZXJJbnRlcmFj
dGlvblN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6Om1fdXBkYXRlUHJldmFsZW50UmVzb3VyY2VTdGF0ZW1lbnQgZmFpbGVkLCBlcnJvciBtZXNz
YWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7Ci0gICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB8fCBtX2hhZFVzZXJJbnRlcmFjdGlv
blN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX1JPVykgeworICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
bV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1
YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisKKyAgICAgICAgaW50
IHJlc2V0UmVzdWx0ID0gbV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQucmVzZXQoKTsKKyAg
ICAgICAgQVNTRVJUX1VOVVNFRChyZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQgPT0gU1FMSVRFX09L
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIGJvb2wgaGFkVXNlckludGVy
YWN0aW9uID0gISFtX2hhZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5nZXRDb2x1bW5JbnQoMCk7
Ci0gICAgaWYgKCFoYWRVc2VySW50ZXJhY3Rpb24pCisgICAgaWYgKCFoYWRVc2VySW50ZXJhY3Rp
b24pIHsKKyAgICAgICAgaW50IHJlc2V0UmVzdWx0ID0gbV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0
ZW1lbnQucmVzZXQoKTsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChyZXNldFJlc3VsdCwgcmVzZXRS
ZXN1bHQgPT0gU1FMSVRFX09LKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KICAgICAK
ICAgICBXYWxsVGltZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZSA9IFdhbGxUaW1lOjpm
cm9tUmF3U2Vjb25kcyhtX2hhZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5nZXRDb2x1bW5Eb3Vi
bGUoMSkpOwogCkBAIC0xMDExLDYgKzEwMzAsOSBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpoYXNIYWRVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0cmFibAog
ICAgICAgICBoYWRVc2VySW50ZXJhY3Rpb24gPSBmYWxzZTsKICAgICB9CiAgICAgCisgICAgaW50
IHJlc2V0UmVzdWx0ID0gbV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQucmVzZXQoKTsKKyAg
ICBBU1NFUlRfVU5VU0VEKHJlc2V0UmVzdWx0LCByZXNldFJlc3VsdCA9PSBTUUxJVEVfT0spOwor
CiAgICAgcmV0dXJuIGhhZFVzZXJJbnRlcmFjdGlvbjsKIH0KIApAQCAtMTA0NSw3ICsxMDY3LDcg
QEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0UHJldmFsZW50
UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGUKICAgICB9CiAKICAgICBTdGRTZXQ8dW5zaWduZWQ+
IG5vblByZXZhbGVudFJlZGlyZWN0aW9uU291cmNlczsKLSAgICByZWN1cnNpdmVseUZpbmROb25Q
cmV2YWxlbnREb21haW5zVGhhdFJlZGlyZWN0ZWRUb1RoaXNEb21haW4oZG9tYWluSUQoZG9tYWlu
KSwgbm9uUHJldmFsZW50UmVkaXJlY3Rpb25Tb3VyY2VzLCAwKTsKKyAgICByZWN1cnNpdmVseUZp
bmROb25QcmV2YWxlbnREb21haW5zVGhhdFJlZGlyZWN0ZWRUb1RoaXNEb21haW4oZG9tYWluSUQo
ZG9tYWluKS52YWx1ZSgpLCBub25QcmV2YWxlbnRSZWRpcmVjdGlvblNvdXJjZXMsIDApOwogICAg
IHNldERvbWFpbnNBc1ByZXZhbGVudChXVEZNb3ZlKG5vblByZXZhbGVudFJlZGlyZWN0aW9uU291
cmNlcykpOwogfQogCkBAIC0xMDc2LDkgKzEwOTgsMTIgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlZGljYXRlVmFsdWVGb3JEb21haW4oV2ViQ29yZTo6U1FM
aXQKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAKICAgICBpZiAocHJlZGlj
YXRlU3RhdGVtZW50LmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LCi0g
ICAgICAgIHx8IHByZWRpY2F0ZVN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKKyAg
ICAgICAgfHwgcHJlZGljYXRlU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfUk9XKSB7CisKKyAg
ICAgICAgaW50IHJlc2V0UmVzdWx0ID0gcHJlZGljYXRlU3RhdGVtZW50LnJlc2V0KCk7CisgICAg
ICAgIEFTU0VSVF9VTlVTRUQocmVzZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNRTElURV9PSyk7
CisKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZWRpY2F0ZVZhbHVlRm9yRG9tYWluIGZhaWxlZCB0
byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0
RXJyb3JNc2coKSk7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogCkBAIC0xMjQ4LDcgKzEyNzMsNyBAQCBzdGQ6OnBhaXI8UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OkFkZGVkUmVjb3JkLCB1bnNpZ25lZD4gUmVz
b3VyY2VMbwogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgaWYgKG1fZG9t
YWluSURGcm9tU3RyaW5nU3RhdGVtZW50LmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJpbmcoKSkgIT0g
U1FMSVRFX09LKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjcmVhdGVTY2hlbWEgZmFpbGVkLCBl
cnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2co
KSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjplbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdp
c3RyYWJsZURvbWFpbiBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBt
X2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgIHJldHVybiB7IEFkZGVkUmVjb3JkOjpObywgMCB9OwogICAgIH0KQEAgLTEyNjcs
MTMgKzEyOTIsMjcgQEAgc3RkOjpwYWlyPFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpBZGRlZFJlY29yZCwgdW5zaWduZWQ+IFJlc291cmNlTG8KICAgICBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzIG5ld09ic2VydmF0aW9uKGRvbWFpbik7CiAgICAgaW5zZXJ0T2JzZXJ2ZWREb21h
aW4obmV3T2JzZXJ2YXRpb24pOwogCi0gICAgcmV0dXJuIHsgQWRkZWRSZWNvcmQ6OlllcywgZG9t
YWluSUQoZG9tYWluKSB9OworICAgIHJldHVybiB7IEFkZGVkUmVjb3JkOjpZZXMsIGRvbWFpbklE
KGRvbWFpbikudmFsdWUoKSB9OworfQorCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpjbGVhckRhdGFiYXNlQ29udGVudHMoKQoreworICAgIG1fZGF0YWJhc2UuY2xl
YXJBbGxUYWJsZXMoKTsKKworICAgIGlmICghbV9kYXRhYmFzZS50YWJsZUV4aXN0cygiT2JzZXJ2
ZWREb21haW5zIl9zKSkgeworICAgICAgICBpZiAoIWNyZWF0ZVNjaGVtYSgpKSB7CisgICAgICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJEYXRhYmFzZUNvbnRlbnRzIGZhaWxlZCwgZXJyb3IgbWVz
c2FnZTogJXtwdWJsaWN9cywgZGF0YWJhc2UgcGF0aDogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0
YWJhc2UubGFzdEVycm9yTXNnKCksIG1fc3RvcmFnZURpcmVjdG9yeVBhdGgudXRmOCgpLmRhdGEo
KSk7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgIH0KIH0KIAogdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6Y2xlYXIoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAgY2xlYXJE
YXRhYmFzZUNvbnRlbnRzKCk7CiAgICAgY2xlYXJPcGVyYXRpbmdEYXRlcygpOwogCiAgICAgYXV0
byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CkBAIC0xMzA3LDcgKzEzNDYsNyBAQCBTdG9yYWdlQWNjZXNz
UHJvbXB0V2FzU2hvd24gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc1Vz
ZXJHcmFudGVkUwogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgYXV0
byBmaXJzdFBhcnR5UHJpbWFyeURvbWFpbklEID0gZG9tYWluSUQoZmlyc3RQYXJ0eURvbWFpbik7
CisgICAgYXV0byBmaXJzdFBhcnR5UHJpbWFyeURvbWFpbklEID0gZG9tYWluSUQoZmlyc3RQYXJ0
eURvbWFpbikudmFsdWUoKTsKIAogICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQobV9kYXRh
YmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIENPVU5UKCopIEZST00gU3RvcmFnZUFjY2Vzc1VuZGVy
VG9wRnJhbWVEb21haW5zIFdIRVJFIGRvbWFpbklEID0gIiwgU3RyaW5nOjpudW1iZXIocmVxdWVz
dGluZ0RvbWFpbklEKSwgIiBBTkQgdG9wTGV2ZWxEb21haW5JRCA9ICIsIFN0cmluZzo6bnVtYmVy
KGZpcnN0UGFydHlQcmltYXJ5RG9tYWluSUQpKSk7CiAgICAgaWYgKHN0YXRlbWVudC5wcmVwYXJl
KCkgIT0gU1FMSVRFX09LCkBAIC0xNDYyLDkgKzE1MDEsMTkgQEAgdm9pZCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJHcmFuZGZhdGhlcmluZyhWZWN0b3I8dW5zaWdu
ZWQ+JiYKICAgICB9CiB9CiAKLWJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OnNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9yKGNvbnN0IFByZXZhbGVudERvbWFpbkRh
dGEmIHJlc291cmNlU3RhdGlzdGljLCBib29sIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcp
IGNvbnN0Citib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNIYWRV
bmV4cGlyZWRSZWNlbnRVc2VySW50ZXJhY3Rpb24oY29uc3QgUHJldmFsZW50RG9tYWluRGF0YSYg
cmVzb3VyY2VTdGF0aXN0aWMsIE9wZXJhdGluZ0RhdGVzV2luZG93IG9wZXJhdGluZ0RhdGVzV2lu
ZG93KQoreworICAgIGlmIChyZXNvdXJjZVN0YXRpc3RpYy5oYWRVc2VySW50ZXJhY3Rpb24gJiYg
aGFzU3RhdGlzdGljc0V4cGlyZWQocmVzb3VyY2VTdGF0aXN0aWMubW9zdFJlY2VudFVzZXJJbnRl
cmFjdGlvblRpbWUsIG9wZXJhdGluZ0RhdGVzV2luZG93KSkgeworICAgICAgICBjbGVhclVzZXJJ
bnRlcmFjdGlvbihyZXNvdXJjZVN0YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbik7CisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzb3VyY2VTdGF0aXN0aWMuaGFk
VXNlckludGVyYWN0aW9uOworfQorCitib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvcihjb25zdCBQcmV2YWxlbnREb21h
aW5EYXRhJiByZXNvdXJjZVN0YXRpc3RpYywgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVy
aW5nKQogewotICAgIHJldHVybiAhcmVzb3VyY2VTdGF0aXN0aWMuaGFkVXNlckludGVyYWN0aW9u
ICYmICghc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZyB8fCAhcmVzb3VyY2VTdGF0aXN0aWMu
Z3JhbmRmYXRoZXJlZCk7CisgICAgcmV0dXJuICFoYXNIYWRVbmV4cGlyZWRSZWNlbnRVc2VySW50
ZXJhY3Rpb24ocmVzb3VyY2VTdGF0aXN0aWMsIE9wZXJhdGluZ0RhdGVzV2luZG93OjpMb25nKSAm
JiAoIXNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcgfHwgIXJlc291cmNlU3RhdGlzdGljLmdy
YW5kZmF0aGVyZWQpOwogfQogCiBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpzaG91bGRSZW1vdmVBbGxCdXRDb29raWVzRm9yKGNvbnN0IFByZXZhbGVudERvbWFpbkRh
dGEmIHJlc291cmNlU3RhdGlzdGljLCBib29sIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcp
IGNvbnN0CkBAIC0xNDkyLDkgKzE1NDEsOSBAQCBWZWN0b3I8c3RkOjpwYWlyPFJlZ2lzdHJhYmxl
RG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlPj4gUmVzb3VyY2VMb2FkU3RhdGlzdGljcwogICAg
IFZlY3Rvcjx1bnNpZ25lZD4gZG9tYWluSURzVG9DbGVhckdyYW5kZmF0aGVyaW5nOwogICAgIGZv
ciAoYXV0byYgc3RhdGlzdGljIDogcHJldmFsZW50RG9tYWlucykgewogICAgICAgICBpZiAoc2hv
dWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3Ioc3RhdGlzdGljLCBzaG91bGRDaGVja0ZvckdyYW5k
ZmF0aGVyaW5nKSkKLSAgICAgICAgICAgIGRvbWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yLmFw
cGVuZChzdGQ6Om1ha2VfcGFpcihzdGF0aXN0aWMucmVnaXN0ZXJhYmxlRG9tYWluLCBXZWJzaXRl
RGF0YVRvUmVtb3ZlOjpBbGwpKTsKKyAgICAgICAgICAgIGRvbWFpbnNUb1JlbW92ZVdlYnNpdGVE
YXRhRm9yLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihzdGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4s
IFdlYnNpdGVEYXRhVG9SZW1vdmU6OkFsbCkpOwogICAgICAgICBlbHNlIGlmIChzaG91bGRSZW1v
dmVBbGxCdXRDb29raWVzRm9yKHN0YXRpc3RpYywgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmlu
ZykpCi0gICAgICAgICAgICBkb21haW5zVG9SZW1vdmVXZWJzaXRlRGF0YUZvci5hcHBlbmQoc3Rk
OjptYWtlX3BhaXIoc3RhdGlzdGljLnJlZ2lzdGVyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1Jl
bW92ZTo6QWxsQnV0Q29va2llcykpOworICAgICAgICAgICAgZG9tYWluc1RvUmVtb3ZlV2Vic2l0
ZURhdGFGb3IuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKHN0YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFp
biwgV2Vic2l0ZURhdGFUb1JlbW92ZTo6QWxsQnV0Q29va2llcykpOwogCiAgICAgICAgIGlmIChz
aG91bGRDbGVhckdyYW5kZmF0aGVyaW5nICYmIHN0YXRpc3RpYy5ncmFuZGZhdGhlcmVkKQogICAg
ICAgICAgICAgZG9tYWluSURzVG9DbGVhckdyYW5kZmF0aGVyaW5nLmFwcGVuZChzdGF0aXN0aWMu
ZG9tYWluSUQpOwpAQCAtMTUyNCw3ICsxNTczLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6cHJ1bmVTdGF0aXN0aWNzSWZOZWVkZWQoKQogICAgIHNpemVfdCBj
b3VudExlZnRUb1BydW5lID0gY291bnQgLSBwYXJhbWV0ZXJzKCkucHJ1bmVFbnRyaWVzRG93blRv
OwogICAgIEFTU0VSVChjb3VudExlZnRUb1BydW5lKTsKIAotICAgIFNRTGl0ZVN0YXRlbWVudCBy
ZWNvcmRzVG9QcnVuZShtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgZG9tYWluSUQgRlJP
TSBPYnNlcnZlZERvbWFpbnMgT1JERVIgQlkgaGFkVXNlckludGVyYWN0aW9uLCBpc1ByZXZhbGVu
dCwgbGFzdFNlZW4gREVTQyBMSU1JVCAiLCBTdHJpbmc6Om51bWJlcihjb3VudExlZnRUb1BydW5l
KSkpOworICAgIFNRTGl0ZVN0YXRlbWVudCByZWNvcmRzVG9QcnVuZShtX2RhdGFiYXNlLCBtYWtl
U3RyaW5nKCJTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgT1JERVIgQlkgaGFk
VXNlckludGVyYWN0aW9uLCBpc1ByZXZhbGVudCwgbGFzdFNlZW4gTElNSVQgIiwgU3RyaW5nOjpu
dW1iZXIoY291bnRMZWZ0VG9QcnVuZSkpKTsKICAgICBpZiAocmVjb3Jkc1RvUHJ1bmUucHJlcGFy
ZSgpICE9IFNRTElURV9PSykgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAi
JXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJ1bmVTdGF0aXN0aWNz
SWZOZWVkZWQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRh
YmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAppbmRl
eCAwZmIyNGFkMDY3MDQ1YzlhZDMxNGYyM2NmYjQ0NDBkOGFmODQ1ZmVjLi4wOGQ5OTc4ODljYTkw
NWNjNDljZTQwYjFiMjMxZmU3MWI0ODc0NjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaApAQCAtMTA1LDExICsxMDUsMTIgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0TGFzdFNlZW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBTZWNv
bmRzKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKKyAgICB2b2lkIGNsZWFyRGF0YWJhc2VDb250ZW50
cygpOwogICAgIGJvb2wgaW5zZXJ0T2JzZXJ2ZWREb21haW4oY29uc3QgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyYpOwogICAgIHZvaWQgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwcyhjb25zdCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzJik7CiAgICAgYm9vbCBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAo
V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50JiwgdW5zaWduZWQgZG9tYWluSUQsIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbik7Ci0gICAgYm9vbCByZWxhdGlvbnNoaXBFeGlz
dHMoV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50JiwgdW5zaWduZWQgZmlyc3REb21haW5JRCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHNlY29uZERvbWFpbikgY29uc3Q7Ci0gICAgdW5zaWduZWQg
ZG9tYWluSUQoY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBjb25zdDsKKyAgICBib29sIHJlbGF0
aW9uc2hpcEV4aXN0cyhXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQmLCBPcHRpb25hbDx1bnNpZ25l
ZD4gZmlyc3REb21haW5JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHNlY29uZERvbWFpbikg
Y29uc3Q7CisgICAgT3B0aW9uYWw8dW5zaWduZWQ+IGRvbWFpbklEKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJikgY29uc3Q7CiAjaWZuZGVmIE5ERUJVRwogICAgIGJvb2wgY29uZmlybURvbWFpbkRv
ZXNOb3RFeGlzdChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIGNvbnN0OwogI2VuZGlmCkBAIC0x
MjAsMTIgKzEyMSwxMyBAQCBwcml2YXRlOgogCiAgICAgc3RydWN0IFByZXZhbGVudERvbWFpbkRh
dGEgewogICAgICAgICB1bnNpZ25lZCBkb21haW5JRDsKLSAgICAgICAgUmVnaXN0cmFibGVEb21h
aW4gcmVnaXN0ZXJhYmxlRG9tYWluOworICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWdpc3Ry
YWJsZURvbWFpbjsKICAgICAgICAgV2FsbFRpbWUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRp
bWU7CiAgICAgICAgIGJvb2wgaGFkVXNlckludGVyYWN0aW9uOwogICAgICAgICBib29sIGdyYW5k
ZmF0aGVyZWQ7CiAgICAgfTsKICAgICBWZWN0b3I8UHJldmFsZW50RG9tYWluRGF0YT4gcHJldmFs
ZW50RG9tYWlucygpIGNvbnN0OworICAgIGJvb2wgaGFzSGFkVW5leHBpcmVkUmVjZW50VXNlcklu
dGVyYWN0aW9uKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmLCBPcGVyYXRpbmdEYXRlc1dpbmRv
dyk7CiAgICAgVmVjdG9yPHVuc2lnbmVkPiBmaW5kRXhwaXJlZFVzZXJJbnRlcmFjdGlvbnMoKSBj
b25zdDsKICAgICB2b2lkIGNsZWFyRXhwaXJlZFVzZXJJbnRlcmFjdGlvbnMoKTsKICAgICB2b2lk
IGNsZWFyR3JhbmRmYXRoZXJpbmcoVmVjdG9yPHVuc2lnbmVkPiYmKTsKQEAgLTEzNCw3ICsxMzYs
NyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZWNsYXNzaWZ5UmVzb3VyY2VzKCk7CiAgICAgc3Ry
dWN0IE5vdFZlcnlQcmV2YWxlbnRSZXNvdXJjZXMgewotICAgICAgICBSZWdpc3RyYWJsZURvbWFp
biByZWdpc3RlcmFibGVEb21haW47CisgICAgICAgIFJlZ2lzdHJhYmxlRG9tYWluIHJlZ2lzdHJh
YmxlRG9tYWluOwogICAgICAgICBSZXNvdXJjZUxvYWRQcmV2YWxlbmNlIHByZXZhbGVuY2U7CiAg
ICAgICAgIHVuc2lnbmVkIHN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnNDb3VudDsKICAg
ICAgICAgdW5zaWduZWQgc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb0NvdW50OwpAQCAtMTU4
LDcgKzE2MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwcnVuZVN0YXRpc3RpY3NJZk5lZWRlZCgp
IG92ZXJyaWRlOwogICAgIGVudW0gY2xhc3MgQWRkZWRSZWNvcmQgeyBObywgWWVzIH07CiAgICAg
c3RkOjpwYWlyPEFkZGVkUmVjb3JkLCB1bnNpZ25lZD4gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNz
Rm9yUmVnaXN0cmFibGVEb21haW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mKTsKLSAgICBib29s
IHNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9yKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEm
LCBib29sIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpIGNvbnN0OworICAgIGJvb2wgc2hv
dWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3IoY29uc3QgUHJldmFsZW50RG9tYWluRGF0YSYsIGJv
b2wgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZyk7CiAgICAgYm9vbCBzaG91bGRSZW1vdmVB
bGxCdXRDb29raWVzRm9yKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmLCBib29sIHNob3VsZENo
ZWNrRm9yR3JhbmRmYXRoZXJpbmcpIGNvbnN0OwogICAgIFZlY3RvcjxzdGQ6OnBhaXI8UmVnaXN0
cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU+PiByZWdpc3RyYWJsZURvbWFpbnNUb1Jl
bW92ZVdlYnNpdGVEYXRhRm9yKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0RhdGFiYXNlU3RvcmUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IGU0ODdmYTYxYzU4YzU1YTIzMWZlZGY4YWU5
Y2MxMzk2ZWI2MDcyMmYuLmE1ZGQwZDQyOTFiY2U2OGZlMTNiMThkYjA0OGU1MGIwMDUwN2E1ZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBA
IC0xNTYsOSArMTU2LDEwIEBAIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6V2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKE5ldHdvcmtTZXNzaW9uJiBuCiAgICAgLCBtX2RhaWx5
VGFza3NUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OnBlcmZvcm1EYWlseVRhc2tzKQogewogICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxv
b3A6OmlzTWFpbigpKTsKLSAgICAKLSAgICBwb3N0VGFzayhbdGhpcywgcmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RpcmVjdG9yeSA9IHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkuaXNvbGF0
ZWRDb3B5KCksIHNob3VsZEluY2x1ZGVMb2NhbGhvc3RdIHsKLSAgICAgICAgaWYgKFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaXNJVFBEYXRhYmFzZUVuYWJsZWQoKSkg
eworCisgICAgcG9zdFRhc2soW3RoaXMsIGRhdGFiYXNlRW5hYmxlZCA9IG5ldHdvcmtTZXNzaW9u
Lm5ldHdvcmtQcm9jZXNzKCkuaXNJVFBEYXRhYmFzZUVuYWJsZWQoKSwgcmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RpcmVjdG9yeSA9IHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkuaXNvbGF0
ZWRDb3B5KCksIHNob3VsZEluY2x1ZGVMb2NhbGhvc3RdIHsKKyAgICAgICAgaWYgKGRhdGFiYXNl
RW5hYmxlZCkgeworICAgICAgICAgICAgRmlsZVN5c3RlbTo6bWFrZUFsbERpcmVjdG9yaWVzKHJl
c291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpOwogICAgICAgICAgICAgbV9zdGF0aXN0aWNz
U3RvcmUgPSBtYWtlVW5pcXVlPFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlPigq
dGhpcywgbV9zdGF0aXN0aWNzUXVldWUsIHNob3VsZEluY2x1ZGVMb2NhbGhvc3QsIHJlc291cmNl
TG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpOwogCiAgICAgICAgICAgICBhdXRvIG1lbW9yeVN0b3Jl
ID0gbWFrZVVuaXF1ZTxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU+KCp0aGlzLCBt
X3N0YXRpc3RpY3NRdWV1ZSwgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKaW5kZXggOTM1MDVhYjVhZjg0N2RkZDY2
ZWJhNThmYjc2MjcxY2U3MjVjZDVmOS4uN2FkNWJkODRhMjE4YWRiN2RmY2JiNDcxNjE3YzhmM2Y2
OWU0ODlhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
aApAQCAtMTMxLDYgKzEzMSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExhc3RTZWVuKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFZlcnlQcmV2YWxl
bnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CisgICAgdm9pZCBzZXRVc2VJVFBEYXRhYmFzZShib29sIHZhbHVlKTsKICAgICB2
b2lkIGR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Ry
aW5nKT4mJik7CiAgICAgdm9pZCBpc1ByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBpc1Zl
cnlQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpOwpAQCAtMTg4LDYgKzE4OSw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQoVmVjdG9yPFJlc291cmNlTG9hZFN0
YXRpc3RpY3M+JiYpOwogICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihE
b21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MmJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgb3Bl
bmVySUQsIE9wZW5lckRvbWFpbiYmKTsKKyAgICB2b2lkIGZsdXNoQW5kRGVzdHJveVBlcnNpc3Rl
bnRTdG9yZSgpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZShOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IFN0cmluZyYsIFNob3VsZEluY2x1ZGVM
b2NhbGhvc3QpOwpAQCAtMTk5LDggKzIwMSw2IEBAIHByaXZhdGU6CiAKICAgICBTdG9yYWdlQWNj
ZXNzU3RhdHVzIHN0b3JhZ2VBY2Nlc3NTdGF0dXMoY29uc3QgU3RyaW5nJiBzdWJGcmFtZVByaW1h
cnlEb21haW4sIGNvbnN0IFN0cmluZyYgdG9wRnJhbWVQcmltYXJ5RG9tYWluKTsKIAotICAgIHZv
aWQgZmx1c2hBbmREZXN0cm95UGVyc2lzdGVudFN0b3JlKCk7Ci0KICAgICBXZWFrUHRyPE5ldHdv
cmtTZXNzaW9uPiBtX25ldHdvcmtTZXNzaW9uOwogICAgIFJlZjxXb3JrUXVldWU+IG1fc3RhdGlz
dGljc1F1ZXVlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU+IG1fc3RhdGlzdGljc1N0b3JlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCBlYzFhYTJkODZkNjAyOWI1NGJlNmU4MThkOWZkMTI2
Yjg3ZDljOWM2Li45N2I5NTZjNWQ1NDE0ODg4NDkwOTRjMDQwZTZkZGEzZTc3NDRlMjAxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAt
MzE0LDcgKzMxNCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJv
Y2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmCiAgICAgICAgIG1fZGVmYXVs
dE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IG5ld1Rlc3RpbmdTZXNzaW9uKFBBTDo6U2Vzc2lvbklE
OjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogICAgIH0KIAotICAgIFdlYkNvcmU6OlJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0SXNJVFBEYXRhYmFzZUVuYWJsZWQocGFy
YW1ldGVycy5zaG91bGRFbmFibGVJVFBEYXRhYmFzZSk7CisgICAgbV9JVFBEYXRhYmFzZUVuYWJs
ZWQgPSBwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZUlUUERhdGFiYXNlOwogCiAgICAgV2ViQ29yZTo6
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRBZENsaWNrQXR0cmli
dXRpb25EZWJ1Z01vZGVFbmFibGVkKHBhcmFtZXRlcnMuZW5hYmxlQWRDbGlja0F0dHJpYnV0aW9u
RGVidWdNb2RlKTsKIApAQCAtNDU5LDYgKzQ1OSw4IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmFk
ZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJz
CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgYWRkSW5kZXhlZERhdGFiYXNlU2Vz
c2lvbihwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5zZXNzaW9uSUQsIHBhcmFt
ZXRlcnMuaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5LCBwYXJhbWV0ZXJzLmluZGV4ZWREYXRhYmFz
ZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAjZW5kaWYKKyAgICAKKyAgICBTYW5kYm94RXh0
ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFt
ZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAK
ICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgaWYgKHBhcmVudFByb2Nlc3NIYXNTZXJ2
aWNlV29ya2VyRW50aXRsZW1lbnQoKSkKQEAgLTY5NSw2ICs2OTcsMTggQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6c2V0R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFJlZ2lzdHJhYmwKICAgICB9CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFVzZUlUUERh
dGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChhdXRvKiBuZXR3
b3JrU2Vzc2lvbiA9IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKKyAgICAgICAg
bV9JVFBEYXRhYmFzZUVuYWJsZWQgPSB2YWx1ZTsKKyAgICAgICAgbmV0d29ya1Nlc3Npb24tPmNy
ZWF0ZU5ld1Jlc291cmNlTG9hZFN0YXRpc3RpY1N0b3JlKCk7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgfQorfQorCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpzZXRQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSB0aGlz
LT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CkBAIC0xMjQwLDYgKzEyNTQsMTIgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6aGFzSXNvbGF0ZWRTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgY29uc3QgV2ViQ29yZToKICAgICAgICAgcmVzdWx0ID0gbmV0d29ya1Nlc3Npb24tPmhh
c0lzb2xhdGVkU2Vzc2lvbihkb21haW4pOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdCk7
CiB9CisKK2Jvb2wgTmV0d29ya1Byb2Nlc3M6OmlzSVRQRGF0YWJhc2VFbmFibGVkKCkKK3sKKyAg
ICByZXR1cm4gbV9JVFBEYXRhYmFzZUVuYWJsZWQ7Cit9CisKICNlbmRpZiAvLyBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogCiBib29sIE5ldHdvcmtQcm9jZXNzOjpzZXNzaW9uSXND
b250cm9sbGVkQnlBdXRvbWF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCBiOGRk
YzhmNDU4OTE1NjA1MDMyZTIyY2ZlOTA4MjY2YjU2MDJkMjIxLi42NDQ4YjM3Mzk5MDRiNGQ4YzI2
MDk2NGNiNmZjNGY2YTVhZTk2NDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0yMjQsNiArMjI0LDcgQEAgcHVibGljOgogICAgIHZvaWQg
aXNSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdWJGcmFt
ZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJik7CiAgICAgdm9pZCBpc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIoUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFN1YlJlc291cmNlRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4m
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIHNldEdyYW5kZmF0
aGVyZWQoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgYm9vbCBpc0dy
YW5kZmF0aGVyZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRV
c2VJVFBEYXRhYmFzZShQQUw6OlNlc3Npb25JRCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldE1heFN0YXRpc3RpY3NFbnRyaWVzKFBBTDo6U2Vz
c2lvbklELCB1aW50NjRfdCBtYXhpbXVtRW50cnlDb3VudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShQQUw6OlNlc3Npb25JRCwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpA
QCAtMjY0LDYgKzI2NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENyb3NzU2l0ZUxvYWRXaXRo
TGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgZnJvbURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvRG9tYWluLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcmVzZXRDcm9zc1NpdGVMb2Fk
c1dpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBoYXNJc29sYXRlZFNlc3Npb24oUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJikgY29uc3Q7CisgICAgYm9vbCBpc0lUUERhdGFiYXNlRW5hYmxlZCgp
OwogI2VuZGlmCiAKICAgICB1c2luZyBDYWNoZVN0b3JhZ2VSb290UGF0aENhbGxiYWNrID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcmJik+OwpAQCAtNTUwLDYgKzU1MiwxMCBAQCBwcml2
YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlcj4gbV9u
ZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlcjsKICNlbmRpZgogCisjaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKKyAgICBib29sIG1fSVRQRGF0YWJhc2VFbmFibGVkOworI2VuZGlm
CisgICAgCiAgICAgY2xhc3MgU3RvcmFnZVF1b3RhTWFuYWdlcnMgewogICAgIHB1YmxpYzoKICAg
ICAgICAgdWludDY0X3QgZGVmYXVsdFF1b3RhKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYg
b3JpZ2luKSBjb25zdCB7IHJldHVybiBvcmlnaW4udG9wT3JpZ2luID09IG9yaWdpbi5jbGllbnRP
cmlnaW4gPyBtX2RlZmF1bHRRdW90YSA6IG1fZGVmYXVsdFRoaXJkUGFydHlRdW90YTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW4KaW5kZXggYTNmN2VhMzI2NGFmZjAxZDg2Y2QwNzkyYjExNzU1NDMzYWVmMmQwNi4u
NWRiOTllZmM1ODc2MjgxY2JmODFjMjE4M2VhOGMyMmEyMjYyY2E3NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmlu
CkBAIC0xMTMsNiArMTEzLDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVj
ZWl2ZXIgewogICAgIFN1Ym1pdFRlbGVtZXRyeShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+
ICgpIEFzeW5jCiAgICAgU2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCiAgICAg
U2V0R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluLCBib29sIGlzR3JhbmRmYXRoZXJlZCkgLT4gKCkg
QXN5bmMKKyAgICBTZXRVc2VJVFBEYXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJv
b2wgdmFsdWUpIC0+ICgpIEFzeW5jCiAgICAgU2V0R3JhbmRmYXRoZXJpbmdUaW1lKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzKSAtPiAoKSBBc3luYwogICAgIFNldE1h
eFN0YXRpc3RpY3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgbWF4
aW11bUVudHJ5Q291bnQpIC0+ICgpIEFzeW5jCiAgICAgU2V0TWluaW11bVRpbWVCZXR3ZWVuRGF0
YVJlY29yZHNSZW1vdmFsKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRz
KSAtPiAoKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uLmNwcAppbmRleCBjM2VlODYzMjk5ZjViY2E4NjkyMjU2OTI1MTAzODk0YWM4Y2Q0ZTBj
Li5iMzg2NTJjZWM1NDhkMjk3NTNhZWI0MjJhNDU2ODhlOWMwM2NhODQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApAQCAtMTYxLDYgKzE2
MSwxMiBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5h
YmxlZChib29sIGVuYWJsZSkKICAgICAgICAgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRQ
cmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW51
YWxQcmV2YWxlbnRSZXNvdXJjZSwgW10geyB9KTsKIH0KIAordm9pZCBOZXR3b3JrU2Vzc2lvbjo6
Y3JlYXRlTmV3UmVzb3VyY2VMb2FkU3RhdGlzdGljU3RvcmUoKQoreworICAgIG1fcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy0+Zmx1c2hBbmREZXN0cm95UGVyc2lzdGVudFN0b3JlKCk7CisgICAgbV9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpj
cmVhdGUoKnRoaXMsIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgbV9zaG91bGRJ
bmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzKTsKK30KKwogdm9pZCBOZXR3
b3JrU2Vzc2lvbjo6bm90aWZ5UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Byb2Nlc3NlZCgpCiB7CiAg
ICAgbV9uZXR3b3JrUHJvY2Vzcy0+cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6Tm90aWZ5UmVzb3VyY2VMb2FkU3RhdGlzdGljc1By
b2Nlc3NlZCgpLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nl
c3Npb24uaAppbmRleCAzMThlY2U0YTQ0YjI0YzQ1ZjFkNzA2OWQ5ODZhMzMyMmE5YTUwMjliLi5m
MzljMDQwZjFiYmNhNGY0NGY1OGNkNTkwMmZhZGVmNDk5ZTM5ZmY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCkBAIC04NCw2ICs4NCw3IEBAIHB1
YmxpYzoKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSogcmVzb3VyY2VMb2FkU3RhdGlzdGljcygpIGNvbnN0IHsg
cmV0dXJuIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcy5nZXQoKTsgfQogICAgIHZvaWQgc2V0UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoYm9vbCk7CisgICAgdm9pZCBjcmVhdGVOZXdSZXNv
dXJjZUxvYWRTdGF0aXN0aWNTdG9yZSgpOwogICAgIHZvaWQgbm90aWZ5UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1Byb2Nlc3NlZCgpOwogICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JSZWdpc3Ry
YWJsZURvbWFpbnMoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIFZlY3RvcjxzdGQ6OnBhaXI8
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU+PiYmLCBib29s
IHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgSGFzaFNldDxX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mKT4mJik7CiAgICAgdm9pZCByZWdpc3RyYWJsZURv
bWFpbnNXaXRoV2Vic2l0ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGJvb2wgc2hv
dWxkTm90aWZ5UGFnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0PFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluPiYmKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAppbmRleCAxODdlODFhMzg2Y2Ni
NTc5NjMwNzg1MTZjMDk0YTEzYjIxMmRmODI1Li4xZTRkNDRkNjcyNThiYTAxZGRjMzJhYTlmNzFk
NWU4YTIxNDQ5ZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKQEAgLTI2Nyw2ICsyNjcsMTMgQEAgdm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLV2Vic2l0ZURhdGFT
dG9yZVJlZiBkYXRhU3RvcmUKICNlbmRpZgogfQogCit2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNl
dFVzZUlUUERhdGFiYXNlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGJvb2wg
dmFsdWUpCit7CisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyAgICBXZWJL
aXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2V0VXNlSVRQRGF0
YWJhc2UodmFsdWUsICBbXSB7IH0pOworI2VuZGlmCit9CisKIHZvaWQgV0tXZWJzaXRlRGF0YVN0
b3JlU2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihXS1dlYnNpdGVEYXRh
U3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BG
cmFtZUhvc3QpCiB7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJl
Zi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVm
LmgKaW5kZXggZTQ5ZGUyMGI4ZjI0YWYxYjcwNmU3Nzc3ODE3NTM0MjZlZDY4NDA5Ny4uZjJmOWM2
MmI1MjM4MmQyMmMwNDM2Y2YxMDgzOGQyYmJjNDk1NDljNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKQEAgLTcwLDYg
KzcwLDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKFdLV2Vic2l0ZURhdGEKIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0
ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLV2Vic2l0ZURhdGFTdG9yZVJl
ZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIGJvb2wgdmFsdWUpOwogdHlwZWRlZiB2
b2lkICgqV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZEZ1bmN0aW9u
KShib29sIGlzR3JhbmRmYXRoZXJlZCwgdm9pZCogZnVuY3Rpb25Db250ZXh0KTsKIFdLX0VYUE9S
VCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tXZWJz
aXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgdm9pZCogY29u
dGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZEZ1bmN0aW9u
IGNhbGxiYWNrKTsKK1dLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFVzZUlUUERh
dGFiYXNlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGJvb2wgdmFsdWUpOwog
V0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YmZyYW1lVW5k
ZXJUb3BGcmFtZU9yaWdpbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0
cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3QpOwogV0tfRVhQT1JUIHZvaWQg
V0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9y
aWdpbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0
LCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3QpOwogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0
YVN0b3JlU2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhXS1dlYnNpdGVE
YXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiBo
b3N0UmVkaXJlY3RlZFRvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDUxYjNlOTA4MDY2ZTVmOGM0MWVk
ODAxZjYxYWU5YjEwMTdkZjQ4NWMuLjBjOGI4YjY4ZDczNTU3YTc1NWQ3NTA2NmU4MGYwMzNjY2Zi
ZmFjMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIu
aD4KIAorCiAjaWYgRU5BQkxFKFNFQ19JVEVNX1NISU0pCiAjaW5jbHVkZSAiU2VjSXRlbVNoaW1Q
cm94eS5oIgogI2VuZGlmCkBAIC03NzMsNiArNzc0LDE1IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6c2V0R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJl
Z2lzCiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0
R3JhbmRmYXRoZXJlZChzZXNzaW9uSUQsIHJlc291cmNlRG9tYWluLCBpc0dyYW5kZmF0aGVyZWQp
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6c2V0VXNlSVRQRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZh
bHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7Cisg
ICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6U2V0VXNlSVRQRGF0YWJhc2Uoc2Vzc2lvbklELCB2YWx1ZSksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdl
SUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3Vi
RnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBh
dXRvKiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmlu
ZGV4IDg4ZGE3YzA0ZjY2MmM4N2FiODMzNDkyZGI4ODkwOTY3N2M0NjM4YTAuLjgwZTAxYjE4ZDE5
YzM5ZGJkNmE0ZTc5YjlkZmNhMTliNTk3NGI0ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0xMTYsNiArMTE2
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFM
OjpTZXNzaW9uSUQsIE9wdGlvbmFsPFNlY29uZHM+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogICAgIHZvaWQgc2V0Q2FjaGVNYXhBZ2VDYXAoUEFMOjpTZXNzaW9uSUQsIFNlY29uZHMs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRHcmFuZGZhdGhlcmVk
KFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGJvb2wgaXNHcmFuZGZh
dGhlcmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0VXNlSVRQ
RGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAgICAgdm9pZCBzZXROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2Fu
bmVkKFBBTDo6U2Vzc2lvbklELCBib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgc2V0SXNSdW5uaW5nUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Rlc3QoUEFMOjpTZXNz
aW9uSUQsIGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRO
b3RpZnlQYWdlc1doZW5UZWxlbWV0cnlXYXNDYXB0dXJlZChQQUw6OlNlc3Npb25JRCwgYm9vbCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggOTVhZWRm
ZTE0Mzc4ZTZhNTg0MjRlNzVlNWIzZGU1YThkZjhlY2I2Zi4uOWRhOGU4N2U2Y2QzMmQwMTJhMTU1
MzgzOTA4YzA1OTgyNWNjNjhiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTE2NDEsNiArMTY0MSwx
NSBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldEdyYW5kZmF0aGVyZWQoY29uc3QgVVJMJiB1
cmwsIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBDbwogICAgIH0KIH0KIAordm9pZCBXZWJzaXRlRGF0
YVN0b3JlOjpzZXRVc2VJVFBEYXRhYmFzZShib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKKworICAgIGF1dG8gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9y
OjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGZvciAoYXV0byYgcHJv
Y2Vzc1Bvb2wgOiBwcm9jZXNzUG9vbHMoKSkKKyAgICAgICAgcHJvY2Vzc1Bvb2wtPmVuc3VyZU5l
dHdvcmtQcm9jZXNzKCkuc2V0VXNlSVRQRGF0YWJhc2UobV9zZXNzaW9uSUQsIHZhbHVlLCBbY2Fs
bGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0geyB9KTsKK30K
Kwogdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0
aW9uRm9yVGVzdGluZyhjb25zdCBVUkwmIGZyb21VUkwsIGNvbnN0IFVSTCYgdG9VUkwsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IGY1MmZhZGVlOGM4NmJjMWFmYzVk
NzE4OGNlYWEyNTFkYWRhOWRjNjMuLjI1ODE2N2M3MTY4ZTA1MTYwOTc1YzYyNTdjOGMxYjFkNmE2
M2JiNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTE1NCw2ICsxNTQsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzY2hlZHVsZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3NpbmcoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHN1Ym1pdFRlbGVtZXRyeSgpOwogICAgIHZvaWQg
c2V0R3JhbmRmYXRoZXJlZChjb25zdCBVUkwmLCBib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOworICAgIHZvaWQgc2V0VXNlSVRQRGF0YWJhc2UoYm9vbCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldEdyYW5kZmF0aGVyaW5nVGltZShTZWNvbmRzLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0TGFzdFNlZW4oY29uc3Qg
VVJMJiwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNl
dE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQoYm9vbCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCAzYzRmZmZkYWEzZjI5ZjI3ZWVlNjQ3Zjk1NGE5NTk2ZGM4Y2Y0NzIxLi45
NGI4NDFmMWRhYzgzZThjNzg0MzA1NjY1MTViN2ZhZTA1YzYzMDlmIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTkt
MDktMTYgIEthdGhlcmluZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKwor
ICAgICAgICBFbmFibGUgTGF5b3V0VGVzdHMgdXNpbmcgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBT
UUxpdGUgYmFja2VuZCAoMTk1NDIwKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk1NDIwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NDIxMzU1MT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBp
biBsb2dpYyB0byBzZW5kIGEgbWVzc2FnZSBmcm9tIHRoZSBVSVByb2Nlc3MgdG8gdGhlIE5ldHdv
cmsKKyAgICAgICAgUHJvY2VzcyB3aGljaCB3aWxsIGluaXRhbGl6ZSB0aGUgSVRQIERhdGFiYXNl
IGJhY2tlbmQgdG8gYWxsb3cgZm9yCisgICAgICAgIGxheW91dCB0ZXN0aW5nLgorCisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlk
bDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
Y3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRVc2VJVFBEYXRhYmFzZSk6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6
OlRlc3RDb250cm9sbGVyOjpzZXRVc2VJVFBEYXRhYmFzZSk6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2
ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisKIDIwMTktMDktMTMgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbaU9T
XSBUZXN0V2ViS2l0QVBJLldlYktpdC5UTFNWZXJzaW9uV2ViU29ja2V0IGlzIGEgZmxha3kgZmFp
bHVyZQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggZjUzNGJiMDEwYjZmNmYxMzcwYjA5
YmU1ODRmYjk4NjUwMGYzYjgyNC4uYTYzMjUyNmE5NzQ0ODE5Yzk0MThjYWVkYzNkODAwZWM5Yjk2
MTMxZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0zMDksNiArMzA5LDcgQEAgaW50
ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIGJvb2xlYW4gaXNTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKERPTVN0cmluZyBob3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzR3Jh
bmRmYXRoZXJlZChET01TdHJpbmcgaG9zdE5hbWUsIGJvb2xlYW4gdmFsdWUpOwogICAgIGJvb2xl
YW4gaXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChET01TdHJpbmcgaG9zdE5hbWUpOworICAgIHZv
aWQgc2V0VXNlSVRQRGF0YWJhc2UoYm9vbGVhbiB2YWx1ZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0
aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKERPTVN0cmluZyBob3N0TmFtZSwgRE9NU3Ry
aW5nIHRvcEZyYW1lSG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YnJlc291cmNl
VW5kZXJUb3BGcmFtZU9yaWdpbihET01TdHJpbmcgaG9zdE5hbWUsIERPTVN0cmluZyB0b3BGcmFt
ZUhvc3ROYW1lKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGly
ZWN0VG8oRE9NU3RyaW5nIGhvc3ROYW1lLCBET01TdHJpbmcgaG9zdE5hbWVSZWRpcmVjdGVkVG8p
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAKaW5kZXggMTU3NGVjNGNjNjI4NzliMDgyYWUyNzM4YTJmYzgxZDcwNDA5ZDRlNi4u
MzcyM2JmYjI2NjFhYjI0ZjliY2M1ZTk1YmI4ZDVjMmNlYmY2NjIzMiAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0x
Njk0LDcgKzE2OTQsMTUgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzR3JhbmRmYXRo
ZXJlZChKU1N0cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSkKICAgICAKICAgICBXS0J1bmRs
ZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmJ1bmRs
ZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCksIG51bGxwdHIpOwogfQor
Cit2b2lkIFRlc3RSdW5uZXI6OnNldFVzZUlUUERhdGFiYXNlKGJvb2wgdmFsdWUpCit7CisgICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2V0VXNlSVRQRGF0YWJhc2UiKSk7CisgICAgV0tSZXRhaW5Q
dHI8V0tCb29sZWFuUmVmPiBtZXNzYWdlQm9keSA9IGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKHZh
bHVlKSk7CiAgICAgCisgICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVk
QnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VC
b2R5LmdldCgpLCBudWxscHRyKTsKK30KKwogYm9vbCBUZXN0UnVubmVyOjppc1N0YXRpc3RpY3NH
cmFuZGZhdGhlcmVkKEpTU3RyaW5nUmVmIGhvc3ROYW1lKQogewogICAgIFdLUmV0YWluUHRyPFdL
U3RyaW5nUmVmPiBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoIklzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDkzOWI2YmU5ZDhl
NTFhNzA2MjU0NWQ0MzQ2ZjViNDVjN2VhYTVhZTAuLmFmMTAyZTUwNDU5MGQ5NmM1NWY4MjZjYTk3
Y2U5MTA0YzMwZmU2MjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC00MTAsNiArNDEwLDcgQEAgcHVibGljOgogICAgIGJv
b2wgaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKEpTU3RyaW5nUmVmIGhvc3ROYW1l
KTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKEpTU3RyaW5nUmVmIGhvc3RO
YW1lLCBib29sIHZhbHVlKTsKICAgICBib29sIGlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoSlNT
dHJpbmdSZWYgaG9zdE5hbWUpOworICAgIHZvaWQgc2V0VXNlSVRQRGF0YWJhc2UoYm9vbCB2YWx1
ZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKEpT
U3RyaW5nUmVmIGhvc3ROYW1lLCBKU1N0cmluZ1JlZiB0b3BGcmFtZUhvc3ROYW1lKTsKICAgICB2
b2lkIHNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oSlNTdHJpbmdS
ZWYgaG9zdE5hbWUsIEpTU3RyaW5nUmVmIHRvcEZyYW1lSG9zdE5hbWUpOwogICAgIHZvaWQgc2V0
U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhKU1N0cmluZ1JlZiBob3N0TmFt
ZSwgSlNTdHJpbmdSZWYgaG9zdE5hbWVSZWRpcmVjdGVkVG8pOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA5YTkxZjVkMmY0ODY4NGU4ZjUxZGFjOTUzY2Nm
YTA4MmIzNjgwYzUyLi4zY2U1YzY4ZjIwYTBmMmE3MWU4YWEyYWI5Yzg5NDYyYWJmMjU2OWFiIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMzM1Miw2ICsz
MzUyLDExIEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OmlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQo
V0tTdHJpbmdSZWYgaG9zdCkKICAgICByZXR1cm4gY29udGV4dC5yZXN1bHQ7CiB9CiAKK3ZvaWQg
VGVzdENvbnRyb2xsZXI6OnNldFVzZUlUUERhdGFiYXNlKGJvb2wgdmFsdWUpCit7CisgICAgV0tX
ZWJzaXRlRGF0YVN0b3JlU2V0VXNlSVRQRGF0YWJhc2UoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVE
YXRhU3RvcmUoKSwgdmFsdWUpOworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0
aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5n
UmVmIHRvcEZyYW1lSG9zdCkKIHsKICAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNz
U3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0
b3JlKCksIGhvc3QsIHRvcEZyYW1lSG9zdCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmgKaW5kZXggODM3ZTRhYjJjYjBlNjYxNzFjZGVmNDBiZGIxNDg2YzZlMGJkNzE0OC4u
NjczZjJkYzg4M2U5NDI1YTBmYTU5YjgxYWNjOGYyMzM4Yzc1YTEwZCAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMjIyLDYgKzIyMiw3IEBAIHB1YmxpYzoKICAg
ICBib29sIGlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihXS1N0cmluZ1JlZiBob3N0
TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1N0cmluZ1JlZiBo
b3N0TmFtZSwgYm9vbCB2YWx1ZSk7CiAgICAgYm9vbCBpc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVk
KFdLU3RyaW5nUmVmIGhvc3ROYW1lKTsKKyAgICB2b2lkIHNldFVzZUlUUERhdGFiYXNlKGJvb2wg
dmFsdWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdp
bihXS1N0cmluZ1JlZiBob3N0TmFtZSwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0TmFtZSk7CiAg
ICAgdm9pZCBzZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKFdLU3Ry
aW5nUmVmIGhvc3ROYW1lLCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3ROYW1lKTsKICAgICB2b2lk
IHNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oV0tTdHJpbmdSZWYgaG9z
dE5hbWUsIFdLU3RyaW5nUmVmIGhvc3ROYW1lUmVkaXJlY3RlZFRvKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggNjA3ZTViYmRiNGIwNTZlYjZiNWI2NGVi
MDAxN2RiODA1YzA3YTk5Mi4uMzA3ZDJhYmQxZDYxYjdhZjNmMTU2Nzg5YTA4M2NlZWUzYjQ0MDVj
NiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTEyNDEs
NiArMTI0MSwxNCBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRS
ZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICBXS1JldGFpblB0
cjxXS1R5cGVSZWY+IHJlc3VsdCA9IGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKGlzR3JhbmRmYXRo
ZXJlZCkpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KKworICAgIGlmIChXS1N0cmlu
Z0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0VXNlSVRQRGF0YWJhc2UiKSkg
eworICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLQm9vbGVhbkdl
dFR5cGVJRCgpKTsKKworICAgICAgICBXS0Jvb2xlYW5SZWYgdmFsdWUgPSBzdGF0aWNfY2FzdDxX
S0Jvb2xlYW5SZWY+KG1lc3NhZ2VCb2R5KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmds
ZXRvbigpLnNldFVzZUlUUERhdGFiYXNlKFdLQm9vbGVhbkdldFZhbHVlKHZhbHVlKSk7CisgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIH0KICAgICAKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFs
VG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9w
RnJhbWVPcmlnaW4iKSkgewogICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkp
ID09IFdLRGljdGlvbmFyeUdldFR5cGVJRCgpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1N2Y2YTc5MzIwMTI4NmExM2Zk
ZTk1YzdhMTg3MDBjZTZkOWUyOWZhLi42YmM2NmUxYzAwN2E0ZjNlZDFiOGI5ZjM2Nzc0MDI1MWQx
ZGUzOTM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUzIEBACisyMDE5LTA5LTE2ICBLYXRoZXJpbmUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIExheW91
dFRlc3RzIHVzaW5nIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgU1FMaXRlIGJhY2tlbmQgKDE5NTQy
MCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTQy
MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQyMTM1NTE+CisKKyAgICAgICAgUmV2aWVhZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSBmbGFnIHRvIGFsbCBJVFAgdGVz
dHMgdG8gZW5hYmxlIHRoZSBJVFAgZGF0YWJhc2UgYmFja2VuZCB0bworICAgICAgICBhbGxvdyBm
b3IgdGVzdGluZyBmdW5jdGlvbmFsaXR5IGFnYWluc3QgdGhlIG1lbW9yeSBzdG9yZS4gVGVzdHMg
d2VyZQorICAgICAgICBub3QgY3JlYXRlZCBmb3IgdGVsZW1ldHJ5LWdlbmVyYXRpb24uaHRtbCwK
KyAgICAgICAgbG9nLWNyb3NzLXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sLCBv
cgorICAgICAgICB3ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS1uYXZpZ2F0ZWQtdG8td2l0
aC1saW5rLWRlY29yYXRpb24uaHRtbCwKKyAgICAgICAgYmVjYXVzZSB0aGVzZSByZWx5IG9uIGZ1
bmN0aW9ucyBub3QgeWV0IGltcGxlbWVudGVkIGluIHRoZSBJVFAgZGF0YWJhc2UuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgQWRkZWQgdGVzdCBl
eHBlY3RhdGlvbnMgdG8gc2tpcCBkYXRhYmFzZSB0ZXN0cyB3aGljaCBkbyBub3Qgd29yayBpbgor
ICAgICAgICBpb3MgYmVjYXVzZSBvZiByZWxpYW5jZSBvbiBFdmVudFNlbmRlci5rZXlkb3duKCkg
d2hpY2ggaXMgbm90IAorICAgICAgICBzdXBwb3J0ZWQgb24gaU9TIGFuZCBhbHNvIHRob3NlIHdo
aWNoIHVzZSBVSUhlbHBlci5hY3RpdmF0ZUF0KCkgd2hpY2gKKyAgICAgICAgZG9lcyBub3QgcHJv
ZHVjZSBhIHVzZXIgZ2VzdHVyZSBjYXB0dXJlZCBieSBJVFAgaW4gaU9TLgorCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVj
dC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2UuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Js
b2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0LWltcG9ydC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9j
a2luZy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1jYWNoZS1tYXgt
YWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1h
eC1hZ2UtZm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZv
ci1jb29raWUtc2V0LWluLWpzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3It
Y29va2llLXNldC1pbi1qcy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0
LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
YXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24t
c2FtZS1zaXRlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMt
d2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21l
bnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3It
Y29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFs
ZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2ll
LXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJl
c291cmNlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0
aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nh
cHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1w
cmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNl
dC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1k
YXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0
aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRp
c3RpY3MtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZy
YW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5z
LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNl
LXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5v
bi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMt
ZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2Ut
dW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJl
dmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2Uu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNz
LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVy
LXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNp
b24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJl
c291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50
LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3Qt
dG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3Vi
cmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmln
aW5zLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2Ut
dW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxl
bnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24t
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFt
ZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNl
ZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFs
ZW50LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVu
aXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50
LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3Rp
Y3MtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2Uu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0
YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24t
ZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRh
dGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUtY29va2llcy1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUtY29va2llcy1kYXRhYmFzZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2Nr
LXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1i
bG9jay10b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWNhcHR1
cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNzLWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRh
dGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1z
d2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWludGVyYWN0
aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9u
LXRvLXByZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJl
ZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNv
dXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9u
LXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5hYmxl
LWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5hYmxlLWRlYnVnLW1vZGUtZGF0YWJhc2Uu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRh
YmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0
YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJh
Y3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2ll
cy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVu
dC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1k
YXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRv
LWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRv
LWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3Qt
bG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5k
Ym94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1p
cC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8t
bG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUt
d2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9j
YWxob3N0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVk
aXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3Rp
bmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAt
dG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2Nh
bGhvc3QtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3Vy
Y2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1o
YW5kbGVkLWtleWRvd24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5
ZG93bi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRv
d24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0
YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1k
YXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rp
b24tdGltZW91dC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRl
cmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2Vy
LWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3BydW5lLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAt
dG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVk
aXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFi
YXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVk
LW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8t
bG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1u
b24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJh
c2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0
aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0
LXRvLWlwLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXBy
ZXZhbGVudC1yZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0
b20tcHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVy
cmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlZGlyZWN0cy1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNv
dXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJl
dmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVy
cmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFiYXNl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0
aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJl
dmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jv
c3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLWlu
LWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1y
ZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9k
LW9mLXRpbWUtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0
ZS1kYXRhLXJlbW92YWwtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1yZXBvcnRl
ZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKwogMjAx
OS0wOS0xMyAgUnVzc2VsbCBFcHN0ZWluICA8cmVwc3RlaW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDk3MDkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGly
ZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFmZWY5Y2QyNmU4NjFiMGZkYjE0ZjVkYzBiMGExNjAwZjRlOGRh
ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDYzIEBACitUZXN0cyB0aGF0IGJsb2NraW5nIGlzIGFkZGVkIG1pZC1mbGln
aHQgaW4gcmVkaXJlY3RzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgIAorCistLS0tLS0t
LQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIGZpcnN0
LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScu
CitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitDbGll
bnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUKKworLS0tLS0t
LS0KK0ZyYW1lOiAnPCEtLWZyYW1lMi0tPicKKy0tLS0tLS0tCitSZWRpcmVjdCBjYXNlIDEsIHNo
b3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAn
Zmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRp
b25lZENvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29r
aWU9dmFsdWUKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMy0tPicKKy0tLS0tLS0tCitT
aG91bGQgcmVjZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAn
Zmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRp
b25lZENvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitG
cmFtZTogJzwhLS1mcmFtZTQtLT4nCistLS0tLS0tLQorUmVkaXJlY3QgY2FzZSAyLCBzaG91bGQg
cmVjZWl2ZSBubyBjb29raWUuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBh
cnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3BhcnRpdGlvbmVkQ29v
a2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAn
PCEtLWZyYW1lNS0tPicKKy0tLS0tLS0tCitUcnkgdG8gc2V0IHRoaXJkLXBhcnR5IGNvb2tpZSBp
biBibG9ja2VkIG1vZGUuCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNi0tPicKKy0t
LS0tLS0tCitBZnRlciBhdHRlbXB0ZWQgY29va2llIGNyZWF0aW9uLCBzaG91bGQgcmVjZWl2ZSBu
byBjb29raWUuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2ll
Jy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3BhcnRpdGlvbmVkQ29va2llJy4KK0Ns
aWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1l
Ny0tPicKKy0tLS0tLS0tCitSZWRpcmVjdCBjYXNlIDMsIGFmdGVyIGF0dGVtcHRlZCBjb29raWUg
Y3JlYXRpb24sIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZS4KK0RpZCBub3QgcmVjZWl2ZSBjb29r
aWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1l
ZCAncGFydGl0aW9uZWRDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Fk
ZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRh
YmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxZDYzYTUxNjg3OGEwODM4ZDI5OGU3NjNlMDNkMmViODQ2
YTA5OWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwKQEAg
LTAsMCArMSwxMDQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+
CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNj
cmlwdGlvbigiVGVzdHMgdGhhdCBibG9ja2luZyBpcyBhZGRlZCBtaWQtZmxpZ2h0IGluIHJlZGly
ZWN0cy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHBhcnRpdGlv
bkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCByZXNvdXJjZVBhdGggPSAiL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVy
bCA9IHRoaXJkUGFydHlPcmlnaW4gKyByZXNvdXJjZVBhdGg7CisgICAgY29uc3QgZmlyc3RQYXJ0
eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0
Rmlyc3RQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsgZmlyc3RQYXJ0eUNv
b2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCBwYXJ0aXRpb25lZENvb2tpZU5h
bWUgPSAicGFydGl0aW9uZWRDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldFBhcnRpdGlv
bmVkQ29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBwYXJ0aXRpb25lZENvb2tpZU5h
bWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCByZXR1cm5VcmwgPSAiaHR0cDovLyIgKyBw
YXJ0aXRpb25Ib3N0ICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1y
ZWRpcmVjdC5odG1sIjsKKyAgICBjb25zdCBzdWJQYXRoVG9HZXRDb29raWVzID0gIi9nZXQtY29v
a2llcy5waHA/bmFtZTE9IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZuYW1lMj0iICsgcGFy
dGl0aW9uZWRDb29raWVOYW1lOworICAgIGNvbnN0IHJlZGlyZWN0Q2hhaW5VcmwgPSAiaHR0cDov
LyIgKyBwYXJ0aXRpb25Ib3N0ICsgcmVzb3VyY2VQYXRoICsgIi9yZWRpcmVjdC5waHA/cmVkaXJl
Y3RUbz0iICsgdGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzOworCisgICAg
ZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgY29uc3Qg
ZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBlbGVt
ZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAg
IGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsKKyAgICAgICAgfQorICAgICAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAg
ICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAgICAvLyBTZXQgZmlyc3QtcGFy
dHkgY29va2llIGZvciBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tp
ZSArICIjIiArIHJldHVyblVybCArICIjc3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0
IHRoZSBjb29raWUgZ2V0cyBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNl
IGxvY2FsaG9zdCBpcyBub3QgcHJldmFsZW50LgorICAgICAgICAgICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQ
YXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNl
aXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
bG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgLy8gTG9hZCBhbiBpZnJh
bWUgaW4gYSByZWRpcmVjdCBjaGFpbiB0aGF0IHN0YXJ0cyB3aXRoIDEyNy4wLjAuMSBhbmQgZW5k
cyB3aXRoIGxvY2FsaG9zdC4gRXhwZWN0IGEgY29va2llIGZvciBsb2NhbGhvc3QuCisgICAgICAg
ICAgICAgICAgb3BlbklmcmFtZShyZWRpcmVjdENoYWluVXJsICsgIiZtZXNzYWdlPVJlZGlyZWN0
IGNhc2UgMSwgc2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLiIsIHJ1blRlc3QpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAg
ICAgICAgICAgICAvLyBTZXQgbG9jYWxob3N0IGFzIHByZXZhbGVudCB0byBwdXQgaXQgaW4gdGhl
IGJsb2NraW5nIGNhdGVnb3J5LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPSAic3RlcDUiOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5n
KHJ1blRlc3QpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSAiI3N0ZXA1IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0
IG5vIGNvb2tpZSBnZXRzIHNlbnQgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEgc2luY2Ug
bG9jYWxob3N0J3MgY29va2llcyBhcmUgYmxvY2tlZC4KKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5oYXNoID0gInN0ZXA2IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRo
aXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICAiJm1lc3NhZ2U9U2hvdWxk
IHJlY2VpdmUgbm8gY29va2llcy4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgIiNzdGVwNiI6CisgICAgICAgICAgICAgICAgLy8gTG9hZCBhbiBp
ZnJhbWUgaW4gYSByZWRpcmVjdCBjaGFpbiB0aGF0IHN0YXJ0cyB3aXRoIDEyNy4wLjAuMSBhbmQg
ZW5kcyB3aXRoIGxvY2FsaG9zdC4gRXhwZWN0IG5vIGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDciOworICAgICAgICAg
ICAgICAgIG9wZW5JZnJhbWUocmVkaXJlY3RDaGFpblVybCArICImbWVzc2FnZT1SZWRpcmVjdCBj
YXNlIDIsIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNyI6CisgICAgICAgICAgICAgICAg
Ly8gVHJ5IHRvIHNldCBjb29raWUgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEuCisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwOCI7CisgICAgICAgICAg
ICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldFBhcnRpdGlv
bmVkQ29va2llICsgIiZtZXNzYWdlPVRyeSB0byBzZXQgdGhpcmQtcGFydHkgY29va2llIGluIGJs
b2NrZWQgbW9kZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgIiNzdGVwOCI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBubyBjb29r
aWUgZ2V0cyBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9z
dCdzIGNvb2tpZXMgYXJlIGJsb2NrZWQuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaGFzaCA9ICJzdGVwOSI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5
QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAgIiZtZXNzYWdlPUFmdGVyIGF0dGVtcHRl
ZCBjb29raWUgY3JlYXRpb24sIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZS4iLCBydW5UZXN0KTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwOSI6CisgICAg
ICAgICAgICAgICAgLy8gTG9hZCBhbiBpZnJhbWUgaW4gYSByZWRpcmVjdCBjaGFpbiB0aGF0IHN0
YXJ0cyB3aXRoIDEyNy4wLjAuMSBhbmQgZW5kcyB3aXRoIGxvY2FsaG9zdC4gRXhwZWN0IG5vIGNv
b2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPSAic3RlcDEwIjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHJlZGlyZWN0Q2hhaW5V
cmwgKyAiJm1lc3NhZ2U9UmVkaXJlY3QgY2FzZSAzLCBhZnRlciBhdHRlbXB0ZWQgY29va2llIGNy
ZWF0aW9uLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEwIjoKKyAgICAgICAgICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPT09ICIiKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7
CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0
eU9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IHdhcyBjbGFz
c2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLiIpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEiOworICAgICAgICAgICAgcnVuVGVz
dCgpOworICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBydW5UZXN0KCk7CisgICAg
fQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1z
Y3JpcHQtaW1wb3J0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNjcmlwdC1p
bXBvcnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljYjc5OTQzZWQ4YjQ5YTg0
MWJkMTI5YjNmNWFjYTZlMmEzYjIxYmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1z
Y3JpcHQtaW1wb3J0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0
IGZvciBjb29raWUgYmxvY2tpbmcgd2hlbiB3ZWIgd29ya2VycyBpbXBvcnQgY3Jvc3Mtc2l0ZSBz
Y3JpcHRzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBEaWQgcmVjZWl2
ZSBmaXJzdFBhcnR5Q29va2llID09IHZhbHVlCitQQVNTIERpZCBub3QgcmVjZWl2ZSBjb29raWUg
bmFtZWQgZmlyc3RQYXJ0eUNvb2tpZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0t
LS0tLS0tCitTaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29r
aWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2ll
OiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQt
aW1wb3J0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNmNjM2M3YTI5MjJkZTdjYjI0NzZmY2QwMTQwMWU3OTlkODRkMDBl
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2Uu
aHRtbApAQCAtMCwwICsxLDg4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4K
KzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgY29v
a2llIGJsb2NraW5nIHdoZW4gd2ViIHdvcmtlcnMgaW1wb3J0IGNyb3NzLXNpdGUgc2NyaXB0cy4i
KTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHBhcnRpdGlvbkhvc3Qg
PSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFy
dHlPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25z
dCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBz
dWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBm
aXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHJldHVyblVy
bCA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2lu
Zy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQuaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRv
R2V0Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2ll
TmFtZTsKKworICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7Cisg
ICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsK
KyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7
CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0K
KyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAg
ICBsZXQgcmVjZWl2ZWRNZXNzYWdlcyA9IDA7CisgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2Uo
ZXZlbnQpIHsKKyAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNl
KCJQQVNTICIsICIiKSk7CisKKyAgICAgICAgKytyZWNlaXZlZE1lc3NhZ2VzOworICAgICAgICBp
ZiAocmVjZWl2ZWRNZXNzYWdlcyA+PSAyKQorICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcnVuVGVzdCgp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAoZG9j
dW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBz
dWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llICsgIiMiICsgcmV0dXJuVXJsICsgIiNzdGVwMiI7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAgICAg
ICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVz
ICsgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4iLCBydW5UZXN0
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6Cisg
ICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAg
ICAgICAgICAgbGV0IHcxID0gbmV3IFdvcmtlcigicmVzb3VyY2VzL3dvcmtlci1pbXBvcnRpbmct
bG9jYWxob3N0LXNjcmlwdC5qcyIpOworICAgICAgICAgICAgICAgIHcxLm9ubWVzc2FnZSA9IHJl
Y2VpdmVNZXNzYWdlOworICAgICAgICAgICAgICAgIHcxLnBvc3RNZXNzYWdlKCJzaG91bGRSZWNl
aXZlQ29va2llcz10cnVlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAi
c3RlcDUiOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
dGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRl
c3QpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSAiI3N0ZXA1IjoKKyAgICAgICAgICAgICAgICBsZXQgdzIgPSBuZXcgV29ya2Vy
KCJyZXNvdXJjZXMvd29ya2VyLWltcG9ydGluZy1sb2NhbGhvc3Qtc2NyaXB0LmpzIik7CisgICAg
ICAgICAgICAgICAgdzIub25tZXNzYWdlID0gcmVjZWl2ZU1lc3NhZ2U7CisgICAgICAgICAgICAg
ICAgdzIucG9zdE1lc3NhZ2UoInNob3VsZE5vdFJlY2VpdmVDb29raWVzIik7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRp
b24uaG9zdCA9PT0gcGFydGl0aW9uSG9zdCAmJiBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09PSAi
IiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNo
ID0gInN0ZXAxIjsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0
KCk7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2Nh
bGhvc3Qgd2FzIGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVz
dCBzdGFydHMuIik7CisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgIH0g
ZWxzZSB7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jYXAtY2FjaGUtbWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2NlNWFhMWMzNmE5NGQ1NTBiZGUyMjlhZGU0NDZmZjgz
NTVjMWNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2Ut
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3RzIHRoYXQgY2FjaGUg
bWF4LWFnZSBpcyBjYXBwZWQgZm9yIHByZXZhbGVudCByZXNvdXJjZXMuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIGxvYWRlZFVybCBpcyAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVl
PTEyMzQiCitQQVNTIGxvYWRlZFVybCBpcyAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPTQzMjEiCitQQVNT
IGxvYWRlZFVybCBpcyAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPSIKK1BBU1MgbG9hZGVkVXJsIGlzICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNo
by1xdWVyeS5waHA/dmFsdWU9IgorUEFTUyBsb2FkZWRVcmwgaXMgImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXF1ZXJ5LnBocD92YWx1
ZT0iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcC1jYWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUt
bWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjY0YTQ1MThhODMzOTQ2MDkwNzMzMzczZjFmNjAyMTYzYWFiOTMyYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2Fj
aGUtbWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCAr
MSwxMTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHRpdGxlPlRlc3RzIGZvciBD
YXBwZWQgQ2FjaGUgTWF4LUFnZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cisg
ICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgY2FjaGUgbWF4LWFnZSBpcyBjYXBwZWQgZm9yIHBy
ZXZhbGVudCByZXNvdXJjZXMuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICB2
YXIgbG9hZGVkVXJsOworICAgIGZ1bmN0aW9uIGZpcnN0RmV0Y2goKSB7CisgICAgICAgIC8vIFRo
aXMgc2hvdWxkIGNyZWF0ZSBhIGNhcHBlZCBjYWNoZSBlbnRyeS4KKyAgICAgICAgZmV0Y2goImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9jYWNo
ZWQtcGVybWFuZW50LXJlZGlyZWN0LnBocCIsCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgY2FjaGU6ICJyZWxvYWQiLAorICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsKKyAgICAgICAg
ICAgICAgICAgICAgIlgtV2ViS2l0IjogIjEyMzQiLAorICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0KKyAgICAgICAgKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAg
ICBsb2FkZWRVcmwgPSByZXNwb25zZS51cmw7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoImxvYWRlZFVybCIsICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9MTIzNCIpOworICAgICAgICAg
ICAgc2Vjb25kRmV0Y2goKTsKKyAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAg
ICAgICAgICAgIHRlc3RGYWlsZWQoZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBzZWNvbmRGZXRjaCgpIHsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgbm90IHRy
aWdnZXIgYSBzdWNjZXNzZnVsIGNhY2hlIGhpdCBhbmQgaW5zdGVhZCBjcmVhdGUgYW5vdGhlciBj
YXBwZWQgY2FjaGUgZW50cnkuCisgICAgICAgIGZldGNoKCJodHRwOi8vbG9jYWxob3N0OjgwMDAv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvY2FjaGVkLXBlcm1hbmVudC1yZWRpcmVj
dC5waHAiLAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhY2hlOiAiZm9yY2UtY2Fj
aGUiLAorICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgIlgt
V2ViS2l0IjogIjQzMjEiLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBsb2FkZWRVcmwgPSBy
ZXNwb25zZS51cmw7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxvYWRlZFVy
bCIsICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9NDMyMSIpOworICAgICAgICAgICAgdGhpcmRGZXRjaCgp
OworICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAgdGVzdEZh
aWxlZChlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2Us
IGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRoaXJk
RmV0Y2goKSB7CisgICAgICAgIC8vIFRoaXMgc2hvdWxkIG5vdCB0cmlnZ2VyIGEgc3VjY2Vzc2Z1
bCBjYWNoZSBoaXQgYW5kIGluc3RlYWQgY3JlYXRlIGFub3RoZXIgY2FwcGVkIGNhY2hlIGVudHJ5
LgorICAgICAgICBmZXRjaCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcmVzb3VyY2VzL2NhY2hlZC1wZXJtYW5lbnQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICBjYWNoZTogImZvcmNlLWNhY2hlIiwKKyAgICAgICAgICAg
IH0KKyAgICAgICAgKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBsb2Fk
ZWRVcmwgPSByZXNwb25zZS51cmw7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
ImxvYWRlZFVybCIsICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9Iik7CisgICAgICAgICAgICBmb3VydGhG
ZXRjaCgpOworICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAg
dGVzdEZhaWxlZChlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9u
IGZvdXJ0aEZldGNoKCkgeworICAgICAgICAvLyBUaGlzIHNob3VsZCBub3QgdHJpZ2dlciBhIHN1
Y2Nlc3NmdWwgY2FjaGUgaGl0IGJ1dCBjbGVhciBjYXBwaW5nLgorICAgICAgICBmZXRjaCgiaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2NhY2hl
ZC1wZXJtYW5lbnQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBjYWNoZTogImZvcmNlLWNhY2hlIiwKKyAgICAgICAgICAgIH0KKyAgICAgICAgKS50aGVuKGZ1
bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBsb2FkZWRVcmwgPSByZXNwb25zZS51cmw7
CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxvYWRlZFVybCIsICJodHRwOi8v
bG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVy
eS5waHA/dmFsdWU9Iik7CisgICAgICAgICAgICBmaWZ0aEZldGNoKCk7CisgICAgICAgIH0pLmNh
dGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKGVycm9yLm1lc3Nh
Z2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmlmdGhGZXRjaCgpIHsKKyAgICAg
ICAgLy8gVGhpcyBzaG91bGQgdHJpZ2dlciBhIHJlZ3VsYXIsIHN1Y2Nlc3NmdWwgY2FjaGUgaGl0
LgorICAgICAgICBmZXRjaCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcmVzb3VyY2VzL2NhY2hlZC1wZXJtYW5lbnQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICBoZWFkZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICJY
LVdlYktpdCI6ICIxMjM0IiwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAg
ICAgICkudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgbG9hZGVkVXJsID0g
cmVzcG9uc2UudXJsOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsb2FkZWRV
cmwiLCAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3Vy
Y2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPSIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3Ip
IHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9
CisgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICBzZXRFbmFibGVG
ZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAgICAgICAgICAg
dGVzdEZhaWxlZCgiTG9jYWxob3N0IHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJj
ZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRlZC4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NDYWNoZU1heEFnZUNhcCgwKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5n
KGZpcnN0RmV0Y2gpOworICAgICAgICB9KTsKKyAgICB9KTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40ODQ2MjBkNmQzMzEyMTE2NDUxYThhNTljODRiZTYxNzY0YzQ2ZTMx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQg
YnkgSmF2YVNjcmlwdCB3aXRoIG1heC1hZ2Ugb3IgZXhwaXJ5IGxvbmdlciB0aGFuIGEgd2VlayBn
ZXQgY2FwcGVkIHRvIGEgd2Vlay4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgVGhlIHR3byBzaG9ydC1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRo
YW4gMTcyODMwIHNlY29uZHMuCitQQVNTIFRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0
IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gNjA0ODMwIHNlY29uZHMuCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3It
Y29va2llLXNldC1pbi1qcy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1q
cy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyZmZkMDQxYWUzMmRlMjg2MDNiODE5MTAzMGNl
OGEzMDVkMjYyNmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw4MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUtdXRp
bGl0aWVzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNj
cmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCB3aXRoIG1h
eC1hZ2Ugb3IgZXhwaXJ5IGxvbmdlciB0aGFuIGEgd2VlayBnZXQgY2FwcGVkIHRvIGEgd2Vlay4i
KTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERh
dGFiYXNlKHRydWUpOworCisgICAgaWYgKGludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworCisgICAgbGV0IHBhc3NlZFRl
c3RzID0gMDsKKyAgICBmdW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIo
Y29va2llRGF0YSwgbWF4QWdlSW5TZWNvbmRzKSB7CisgICAgICAgIGxldCBub3cgPSBuZXcgRGF0
ZSgpOworICAgICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93LmdldFRp
bWUoKSArIChtYXhBZ2VJblNlY29uZHMgKiAxMDAwKTsKKworICAgICAgICBpZiAobWF4RXhwaXJ5
RGF0ZUluTWlsbGlzZWNvbmRzID4gY29va2llRGF0YVsiZXhwaXJlcyJdKQorICAgICAgICAgICAg
KytwYXNzZWRUZXN0czsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29v
a2llIG5hbWVkICIgKyBjb29raWVEYXRhWyJuYW1lIl0gKyAiIGV4cGlyZXMgaW4gbW9yZSB0aGFu
ICIgKyBtYXhBZ2VJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgfQorCisgICAgY29uc3Qg
dHdvRGF5c0luU2Vjb25kcyA9IDIgKiAyNCAqIDYwICogNjA7CisgICAgY29uc3Qgc2hvcnRMaXZl
ZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJzaG9ydExpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRp
bWUgOiAiTWF4LUFnZT0iICsgdHdvRGF5c0luU2Vjb25kcyArICI7IiB9OworICAgIGRvY3VtZW50
LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsgc2hv
cnRMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgIGNvbnN0IHR3
b0RheXNBc0V4cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3b0RheXNJ
blNlY29uZHMpOworICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDog
InNob3J0TGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5
c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExpdmVk
Q29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llRXhwaXJl
cy5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgIGNvbnN0IG9uZVdlZWtJblNlY29uZHMgPSA3
ICogMjQgKiA2MCAqIDYwOworICAgIGNvbnN0IHR3b1dlZWtzSW5TZWNvbmRzID0gMiAqIG9uZVdl
ZWtJblNlY29uZHM7CisgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDog
ImxvbmdMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b1dlZWtz
SW5TZWNvbmRzICsgIjsiIH07CisgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2ll
TWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGlt
ZSArICIgcGF0aD0vIjsKKworICAgIGNvbnN0IHR3b1dlZWtzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0
ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d29XZWVrc0luU2Vjb25kcyk7CisgICAgY29uc3QgbG9u
Z0xpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwg
bGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvV2Vla3NBc0V4cGlyZXNEYXRlICsgIjsiIH07Cisg
ICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29i
YXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisg
ICAgY29uc3Qgb3ZlclR3b0RheXNJblNlY29uZHMgPSB0d29EYXlzSW5TZWNvbmRzICsgMzA7Cisg
ICAgY29uc3Qgb3Zlck9uZVdlZWtJblNlY29uZHMgPSBvbmVXZWVrSW5TZWNvbmRzICsgMzA7Cisg
ICAgaWYgKGludGVybmFscykgeworICAgICAgICBsZXQgY29va2llcyA9IGludGVybmFscy5nZXRD
b29raWVzKCk7CisgICAgICAgIGlmICghY29va2llcy5sZW5ndGgpCisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAgICBmb3IgKGxldCBjb29raWUgb2Yg
Y29va2llcykgeworICAgICAgICAgICAgc3dpdGNoIChjb29raWUubmFtZSkgeworICAgICAgICAg
ICAgICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAg
ICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdvRGF5
c0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IGNhc2Ugc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAg
Y2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3b0RheXNJblNl
Y29uZHMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNl
IGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICBjaGVja1Ro
YXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lV2Vla0luU2Vjb25kcyk7
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xp
dmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29r
aWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lV2Vla0luU2Vjb25kcyk7CisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAg
ICAgcmVzZXRDb29raWVzRm9yQ3VycmVudE9yaWdpbigpOworCisgICAgICAgIGlmIChwYXNzZWRU
ZXN0cyA9PT0gNCkgeworICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBzaG9ydC1saXZl
ZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJUd29EYXlzSW5T
ZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBs
b25nLWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3Zlck9u
ZVdlZWtJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiQXQgbGVhc3Qgb25lIGNvb2tpZSdzIGV4cGlyeSBhdHRyaWJ1dGUgd2Fz
IGJleW9uZCB0aGUgdGVzdCB0aHJlc2hvbGRzLiIpOworICAgIH0gZWxzZQorICAgICAgICB0ZXN0
RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOworCisgICAgaWYgKGludGVybmFscykKKyAg
ICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsK
KworICAgIGZpbmlzaEpTVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2Fw
cGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNh
bWUtc2l0ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTQ5NTQ1YTAzNGQzYWYyNTkwYzk5MzM3ZDIzMDVhOWJlZmRiYTQxMAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29yYXRp
b24tc2FtZS1zaXRlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitDaGVj
ayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgc2FtZS1zaXRlIG5h
dmlnYXRpb24gd2l0aCBsaW5rIGRlY29yYXRpb24gZG9uJ3QgZ2V0IGNhcHBlZCB0byAyNCBob3Vy
cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHR3byBsb25nLWxp
dmVkIGNvb2tpZXMgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA4NjQzMCBzZWNvbmRzLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlm
ZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1zaXRl
LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNv
cmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkMDk5OTFiM2ZhOGFj
ZDQ4MTk5YTg1MzIzNGQyNWFiMjg5MTVkYzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1j
b29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS5o
dG1sCkBAIC0wLDAgKzEsODYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNj
cmlwdD4KKyAgICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2
YVNjcmlwdCBhZnRlciBhIHNhbWUtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBkZWNvcmF0aW9u
IGRvbid0IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29va2llcygpIHsKKyAgICAgICAgbGV0IHBhc3NlZFRl
c3RzID0gMDsKKworICAgICAgICBmdW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzRXhwaXJlQWZ0
ZXIoY29va2llRGF0YSwgbWF4QWdlSW5TZWNvbmRzKSB7CisgICAgICAgICAgICBsZXQgbm93ID0g
bmV3IERhdGUoKTsKKyAgICAgICAgICAgIGxldCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMg
PSBub3cuZ2V0VGltZSgpICsgKG1heEFnZUluU2Vjb25kcyAqIDEwMDApOworCisgICAgICAgICAg
ICBpZiAobWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzIDwgY29va2llRGF0YVsiZXhwaXJlcyJd
KQorICAgICAgICAgICAgICAgICsrcGFzc2VkVGVzdHM7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5hbWVkICIgKyBjb29raWVEYXRhWyJuYW1l
Il0gKyAiIGV4cGlyZXMgaW4gbGVzcyB0aGFuICIgKyBtYXhBZ2VJblNlY29uZHMgKyAiIHNlY29u
ZHMuIik7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBvbmVEYXlJblNlY29uZHMgPSAyNCAq
IDYwICogNjA7CisgICAgICAgIGNvbnN0IHR3b0RheXNJblNlY29uZHMgPSAyICogb25lRGF5SW5T
ZWNvbmRzOworICAgICAgICBjb25zdCBsb25nTGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUgOiAi
bG9uZ0xpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdvRGF5c0lu
U2Vjb25kcyArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29r
aWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llTWF4QWdlLmxpZmV0
aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3b0RheXNBc0V4cGlyZXNEYXRlID0g
Y3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3b0RheXNJblNlY29uZHMpOworICAgICAgICBj
b25zdCBsb25nTGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZUV4
cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d29EYXlzQXNFeHBpcmVzRGF0ZSArICI7
IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5h
bWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBh
dGg9LyI7CisKKyAgICAgICAgY29uc3Qgb3Zlck9uZURheUluU2Vjb25kcyA9IG9uZURheUluU2Vj
b25kcyArIDMwOworICAgICAgICBpZiAoaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBsZXQgY29v
a2llcyA9IGludGVybmFscy5nZXRDb29raWVzKCk7CisgICAgICAgICAgICBpZiAoIWNvb2tpZXMu
bGVuZ3RoKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGNvb2tpZXMgZm91bmQuIik7
CisgICAgICAgICAgICBmb3IgKGxldCBjb29raWUgb2YgY29va2llcykgeworICAgICAgICAgICAg
ICAgIHN3aXRjaCAoY29va2llLm5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25n
TGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhh
dENvb2tpZURvZXNFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9u
Z0xpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tU
aGF0Q29va2llRG9lc0V4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIHJlc2V0Q29va2llc0ZvckN1cnJlbnRPcmlnaW4oKTsKKwor
ICAgICAgICAgICAgaWYgKHBhc3NlZFRlc3RzID09PSAyKSB7CisgICAgICAgICAgICAgICAgdGVz
dFBhc3NlZCgiVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZXhwaXJlIGFmdGVyIG1vcmUgdGhh
biAiICsgb3Zlck9uZURheUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkF0IGxlYXN0IG9uZSBjb29raWUncyBl
eHBpcnkgYXR0cmlidXRlIHdhcyBiZWxvdyB0aGUgdGVzdCB0aHJlc2hvbGRzLiIpOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGludGVybmFscyBvYmplY3QuIik7
CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBuYXZpZ2F0ZUNyb3NzT3JpZ2luKCkgeworICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5ocmVmID0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gKyAiL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGlu
ay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS5odG1sP2xpbms9ZGVjb3JhdGlvbiNmcmFnbWVudCI7Cisg
ICAgfQorCisgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwIjsKKyAgICBjb25zdCBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVu
dC5sb2NhdGlvbi5vcmlnaW4gPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luICYmIGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggIT09ICIjZnJhZ21lbnQiKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0
cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4sIHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4pKQorICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NV
cGRhdGVDb29raWVCbG9ja2luZyhuYXZpZ2F0ZUNyb3NzT3JpZ2luKTsKKyAgICAgICAgICAgICAg
ICB9KTsKKworICAgICAgICAgICAgfSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0
ZXN0Q29va2llcygpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFn
bWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1l
LWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1y
ZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdiYWQwMzJjNmYyMjQ1
NzNhMzM1ZDNmNzA0MTlkY2I0YmU0M2ExNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNv
b2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNl
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitDaGVjayB0aGF0IGNvb2tp
ZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdp
dGggbGluayBmcmFnbWVudCBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3Qg
ZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA0MzIzMCBzZWNvbmRzLgorUEFTUyBUaGUgdHdvIGxvbmct
bGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDg2NDMwIHNlY29uZHMu
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nh
cHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJv
bS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQt
aW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNWM4NGZiODk0Zjk5YjMyN2MxNzczZTIwMDdkYzEwZDkxYzJhODc5
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5r
LWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCAr
MSwxMDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAgICBk
ZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBhZnRl
ciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgZnJhZ21lbnQgZ2V0IGNhcHBlZCB0
byAyNCBob3Vycy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0aW9u
IHRlc3RDb29raWVzKCkgeworICAgICAgICBsZXQgcGFzc2VkVGVzdHMgPSAwOworICAgICAgICBm
dW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llRGF0YSwgbWF4
QWdlSW5TZWNvbmRzKSB7CisgICAgICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKKyAgICAg
ICAgICAgIGxldCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPSBub3cuZ2V0VGltZSgpICsg
KG1heEFnZUluU2Vjb25kcyAqIDEwMDApOworCisgICAgICAgICAgICBpZiAobWF4RXhwaXJ5RGF0
ZUluTWlsbGlzZWNvbmRzID4gY29va2llRGF0YVsiZXhwaXJlcyJdKQorICAgICAgICAgICAgICAg
ICsrcGFzc2VkVGVzdHM7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiQ29va2llIG5hbWVkICIgKyBjb29raWVEYXRhWyJuYW1lIl0gKyAiIGV4cGlyZXMgaW4g
bW9yZSB0aGFuICIgKyBtYXhBZ2VJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgIH0K
KworICAgICAgICBjb25zdCB0d2VsdmVIb3Vyc0luU2Vjb25kcyA9IDEyICogNjAgKiA2MDsKKyAg
ICAgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJzaG9ydExpdmVk
Q29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdlbHZlSG91cnNJblNlY29u
ZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZU1h
eEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1l
ICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0ZSA9
IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAg
ICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogInNob3J0TGl2ZWRD
b29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdlbHZlSG91cnNBc0V4cGly
ZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29r
aWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLmxp
ZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG9uZURheUluU2Vjb25kcyA9IDIg
KiB0d2VsdmVIb3Vyc0luU2Vjb25kczsKKyAgICAgICAgY29uc3QgdHdvRGF5c0luU2Vjb25kcyA9
IDIgKiBvbmVEYXlJblNlY29uZHM7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZU1heEFn
ZSA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdl
PSIgKyB0d29EYXlzSW5TZWNvbmRzICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9
IGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29r
aWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdvRGF5c0Fz
RXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdvRGF5c0luU2Vjb25k
cyk7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAibG9u
Z0xpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3b0RheXNBc0V4
cGlyZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENv
b2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5s
aWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCBvdmVyVHdlbHZlSG91cnNJblNl
Y29uZHMgPSB0d2VsdmVIb3Vyc0luU2Vjb25kcyArIDMwOworICAgICAgICBjb25zdCBvdmVyT25l
RGF5SW5TZWNvbmRzID0gb25lRGF5SW5TZWNvbmRzICsgMzA7CisgICAgICAgIGlmIChpbnRlcm5h
bHMpIHsKKyAgICAgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKTsK
KyAgICAgICAgICAgIGlmICghY29va2llcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiTm8gY29va2llcyBmb3VuZC4iKTsKKyAgICAgICAgICAgIGZvciAobGV0IGNvb2tpZSBv
ZiBjb29raWVzKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjb29raWUubmFtZSkgeworICAg
ICAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29r
aWUsIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5u
YW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGly
ZUFmdGVyKGNvb2tpZSwgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tp
ZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9l
c05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRD
b29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29r
aWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgcmVzZXRDb29raWVzRm9yQ3VycmVudE9yaWdpbigpOworCisgICAg
ICAgICAgICBpZiAocGFzc2VkVGVzdHMgPT09IDQpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUg
dGhhbiAiICsgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAg
ICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0IGV4
cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJPbmVEYXlJblNlY29uZHMgKyAiIHNlY29uZHMu
Iik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBdCBs
ZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJpYnV0ZSB3YXMgYmV5b25kIHRoZSB0ZXN0IHRo
cmVzaG9sZHMuIik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8g
aW50ZXJuYWxzIG9iamVjdC4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBm
aW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG5hdmlnYXRlQ3Jvc3NPcmlnaW4o
KSB7CisgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbk9yaWdpbiAr
ICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQt
aW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWwjbGlu
az1mcmFnbWVudCI7CisgICAgfQorCisgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiA9
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAg
ICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHByZXZhbGVudFJlc291cmNlT3Jp
Z2luKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOwor
ICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFs
ZW50UmVzb3VyY2VPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50
UmVzb3VyY2VPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhuYXZpZ2F0
ZUNyb3NzT3JpZ2luKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0Q29va2llcygpOworICAgICAgICB9Cisg
ICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1j
b29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxl
bnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1p
bi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNl
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTk4ZGM4ZjkwZTJkYTFiMTk4M2I0
OGRjMTg2ZWFkN2E2OTY1ZDdhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNl
dC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291
cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitDaGVjayB0aGF0IGNv
b2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9u
IHdpdGggbGluayBxdWVyeSBhbmQgZnJhZ21lbnQgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHR3byBzaG9ydC1saXZlZCBj
b29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gNDMyMzAgc2Vjb25kcy4KK1BBU1Mg
VGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA4
NjQzMCBzZWNvbmRzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5r
LXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1s
aWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50
LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzU5MWVi
NGU5NThmYjFiNTBkYjdmODIyYTIwMGVjY2M2NzM4MjQxNgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRp
bWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9t
LXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTAxIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2Nvb2tpZXMv
cmVzb3VyY2VzL2Nvb2tpZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNl
dFRpbWVvdXQoJ3J1blRlc3QoKScsIDApIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkNo
ZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRl
IG5hdmlnYXRpb24gd2l0aCBsaW5rIHF1ZXJ5IGFuZCBmcmFnbWVudCBnZXQgY2FwcGVkIHRvIDI0
IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rpb24gdGVz
dENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7CisgICAgICAgIGZ1bmN0
aW9uIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWVEYXRhLCBtYXhBZ2VJ
blNlY29uZHMpIHsKKyAgICAgICAgICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpOworICAgICAgICAg
ICAgbGV0IG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA9IG5vdy5nZXRUaW1lKCkgKyAobWF4
QWdlSW5TZWNvbmRzICogMTAwMCk7CisKKyAgICAgICAgICAgIGlmIChtYXhFeHBpcnlEYXRlSW5N
aWxsaXNlY29uZHMgPiBjb29raWVEYXRhWyJleHBpcmVzIl0pCisgICAgICAgICAgICAgICAgKytw
YXNzZWRUZXN0czsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJDb29raWUgbmFtZWQgIiArIGNvb2tpZURhdGFbIm5hbWUiXSArICIgZXhwaXJlcyBpbiBtb3Jl
IHRoYW4gIiArIG1heEFnZUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzID0gMTIgKiA2MCAqIDYwOworICAgICAg
ICBjb25zdCBzaG9ydExpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogInNob3J0TGl2ZWRDb29r
aWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d2VsdmVIb3Vyc0luU2Vjb25kcyAr
ICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29va2llTWF4QWdl
Lm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAi
IHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdlbHZlSG91cnNBc0V4cGlyZXNEYXRlID0gY3Jl
YXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAg
Y29uc3Qgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAic2hvcnRMaXZlZENvb2tp
ZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d2VsdmVIb3Vyc0FzRXhwaXJlc0Rh
dGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZUV4
cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRp
bWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0gMiAqIHR3
ZWx2ZUhvdXJzSW5TZWNvbmRzOworICAgICAgICBjb25zdCB0d29EYXlzSW5TZWNvbmRzID0gMiAq
IG9uZURheUluU2Vjb25kczsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0g
eyBuYW1lIDogImxvbmdMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiAr
IHR3b0RheXNJblNlY29uZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9u
Z0xpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1h
eEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCB0d29EYXlzQXNFeHBp
cmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsK
KyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2
ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJl
c0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2ll
RXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0
aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25k
cyA9IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgMzA7CisgICAgICAgIGNvbnN0IG92ZXJPbmVEYXlJ
blNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMgKyAzMDsKKyAgICAgICAgaWYgKGludGVybmFscykg
eworICAgICAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOworICAg
ICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAgICAgICAgZm9yIChsZXQgY29va2llIG9mIGNv
b2tpZXMpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAgICAg
ICAgICAgICAgICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAg
ICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwg
b3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6
CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0
ZXIoY29va2llLCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llTWF4
QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90
RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tp
ZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURv
ZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
CisgICAgICAgICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAg
ICAgIGlmIChwYXNzZWRUZXN0cyA9PT0gNCkgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQo
IlRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFu
ICIgKyBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJl
IGFmdGVyIG1vcmUgdGhhbiAiICsgb3Zlck9uZURheUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsK
KyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkF0IGxlYXN0
IG9uZSBjb29raWUncyBleHBpcnkgYXR0cmlidXRlIHdhcyBiZXlvbmQgdGhlIHRlc3QgdGhyZXNo
b2xkcy4iKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBpbnRl
cm5hbHMgb2JqZWN0LiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlz
aEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsK
KyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1q
cy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0
bWw/bGluaz1xdWVyeSNsaW5rPWZyYWdtZW50IjsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5h
dGlvbk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHByZXZhbGVu
dFJlc291cmNlT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJl
dmFsZW50UmVzb3VyY2VPcmlnaW4pIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQ
RGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tp
ZUJsb2NraW5nKG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOworCisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RDb29raWVz
KCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBw
ZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJl
dmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDVkZDE2YzJlZTAxMDgwZTNjMWYxYjQwMjA2YjY2
YTgwMmUwYWMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13
aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTEgQEAKK0NoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFT
Y3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIHF1ZXJ5IGdldCBj
YXBwZWQgdG8gMjQgaG91cnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IFRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFu
IDQzMjMwIHNlY29uZHMuCitQQVNTIFRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0IGV4
cGlyZSBhZnRlciBtb3JlIHRoYW4gODY0MzAgc2Vjb25kcy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRh
YmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJv
bS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODI2MjNkMWZj
MzdmYzg2YjQzODdlNGFjYWVjMGUyNDg2YWU4MzM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1m
b3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3Vy
Y2UtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDEwMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUt
dXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0
KCknLCAwKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IGNvb2tpZXMg
Y3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGgg
bGluayBxdWVyeSBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMg
PSB0cnVlOworCisgICAgZnVuY3Rpb24gdGVzdENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNz
ZWRUZXN0cyA9IDA7CisgICAgICAgIGZ1bmN0aW9uIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBp
cmVBZnRlcihjb29raWVEYXRhLCBtYXhBZ2VJblNlY29uZHMpIHsKKyAgICAgICAgICAgIGxldCBu
b3cgPSBuZXcgRGF0ZSgpOworICAgICAgICAgICAgbGV0IG1heEV4cGlyeURhdGVJbk1pbGxpc2Vj
b25kcyA9IG5vdy5nZXRUaW1lKCkgKyAobWF4QWdlSW5TZWNvbmRzICogMTAwMCk7CisKKyAgICAg
ICAgICAgIGlmIChtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPiBjb29raWVEYXRhWyJleHBp
cmVzIl0pCisgICAgICAgICAgICAgICAgKytwYXNzZWRUZXN0czsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgbmFtZWQgIiArIGNvb2tpZURhdGFb
Im5hbWUiXSArICIgZXhwaXJlcyBpbiBtb3JlIHRoYW4gIiArIG1heEFnZUluU2Vjb25kcyArICIg
c2Vjb25kcy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzSW5TZWNv
bmRzID0gMTIgKiA2MCAqIDYwOworICAgICAgICBjb25zdCBzaG9ydExpdmVkQ29va2llTWF4QWdl
ID0geyBuYW1lIDogInNob3J0TGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdl
PSIgKyB0d2VsdmVIb3Vyc0luU2Vjb25kcyArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29r
aWUgPSBzaG9ydExpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2
ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdl
bHZlSG91cnNBc0V4cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3ZWx2
ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMg
PSB7IG5hbWUgOiAic2hvcnRMaXZlZENvb2tpZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVz
PSIgKyB0d2VsdmVIb3Vyc0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQu
Y29va2llID0gc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgc2hv
cnRMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29u
c3Qgb25lRGF5SW5TZWNvbmRzID0gMiAqIHR3ZWx2ZUhvdXJzSW5TZWNvbmRzOworICAgICAgICBj
b25zdCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIG9uZURheUluU2Vjb25kczsKKyAgICAgICAgY29u
c3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZU1heEFn
ZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b0RheXNJblNlY29uZHMgKyAiOyIgfTsKKyAg
ICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZv
b2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKwor
ICAgICAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJv
bU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2ll
RXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAi
RXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1l
bnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBs
b25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNv
bnN0IG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyA9IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgMzA7
CisgICAgICAgIGNvbnN0IG92ZXJPbmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMgKyAz
MDsKKyAgICAgICAgaWYgKGludGVybmFscykgeworICAgICAgICAgICAgbGV0IGNvb2tpZXMgPSBp
bnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAg
ICAgICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAgICAgICBzd2l0
Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2Ugc2hvcnRMaXZlZENv
b2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2ll
RG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIHNo
b3J0TGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVj
a1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdlbHZlSG91cnNJblNl
Y29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
ICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAg
ICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5
SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJP
bmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXNldENvb2tpZXNGb3JD
dXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAgICAgIGlmIChwYXNzZWRUZXN0cyA9PT0gNCkgewor
ICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBk
b24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMg
KyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBsb25n
LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3Zlck9uZURh
eUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkF0IGxlYXN0IG9uZSBjb29raWUncyBleHBpcnkgYXR0cmlidXRl
IHdhcyBiZXlvbmQgdGhlIHRlc3QgdGhyZXNob2xkcy4iKTsKKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOworCisgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJl
ZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1s
aWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxl
bnQtcmVzb3VyY2UuaHRtbD9saW5rPXF1ZXJ5IjsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5h
dGlvbk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHByZXZhbGVu
dFJlc291cmNlT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJl
dmFsZW50UmVzb3VyY2VPcmlnaW4pIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQ
RGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tp
ZUJsb2NraW5nKG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOworCisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RDb29raWVz
KCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBw
ZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24t
ZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3It
Y29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1y
ZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JmNjQ5YTU3ZTEzNjRj
MDYwNjQ1Njk0MTMwNDU0MTEzNzQ1ODMwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNv
b2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVz
b3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0NoZWNrIHRoYXQg
Y29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRp
b24gd2l0aG91dCBsaW5rIGRlY29yYXRpb24gZG9uJ3QgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHR3byBsb25nLWxpdmVk
IGNvb2tpZXMgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA4NjQzMCBzZWNvbmRzLgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRp
bWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2
YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMt
d2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mMmZlYWQ4YjQ1MDc4ZjFiMGFmNTA3ODBmM2Y3ZDZiZDg5ZDgwYTcw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxp
bmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsODYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAg
ICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBh
ZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRob3V0IGxpbmsgZGVjb3JhdGlvbiBkb24n
dCBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwor
CisgICAgZnVuY3Rpb24gdGVzdENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRUZXN0cyA9
IDA7CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tUaGF0Q29va2llRG9lc0V4cGlyZUFmdGVyKGNv
b2tpZURhdGEsIG1heEFnZUluU2Vjb25kcykgeworICAgICAgICAgICAgbGV0IG5vdyA9IG5ldyBE
YXRlKCk7CisgICAgICAgICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93
LmdldFRpbWUoKSArIChtYXhBZ2VJblNlY29uZHMgKiAxMDAwKTsKKworICAgICAgICAgICAgaWYg
KG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA8IGNvb2tpZURhdGFbImV4cGlyZXMiXSkKKyAg
ICAgICAgICAgICAgICArK3Bhc3NlZFRlc3RzOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBuYW1lZCAiICsgY29va2llRGF0YVsibmFtZSJdICsg
IiBleHBpcmVzIGluIGxlc3MgdGhhbiAiICsgbWF4QWdlSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIp
OworICAgICAgICB9CisKKyAgICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0gMjQgKiA2MCAq
IDYwOworICAgICAgICBjb25zdCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIG9uZURheUluU2Vjb25k
czsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogImxvbmdM
aXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b0RheXNJblNlY29u
ZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llTWF4
QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSAr
ICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0
ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3Qg
bG9uZ0xpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVz
IiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsK
KyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsg
Ij1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8i
OworCisgICAgICAgIGNvbnN0IG92ZXJPbmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMg
KyAzMDsKKyAgICAgICAgaWYgKGludGVybmFscykgeworICAgICAgICAgICAgbGV0IGNvb2tpZXMg
PSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0
aCkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAg
ICAgICAgICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAgICAgICBz
d2l0Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVk
Q29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29r
aWVEb2VzRXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZl
ZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENv
b2tpZURvZXNFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fQorCisgICAgICAgICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAg
ICAgICAgIGlmIChwYXNzZWRUZXN0cyA9PT0gMikgeworICAgICAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIlRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiAr
IG92ZXJPbmVEYXlJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5
IGF0dHJpYnV0ZSB3YXMgYmVsb3cgdGhlIHRlc3QgdGhyZXNob2xkcy4iKTsKKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOworCisg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3Jh
dGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sIjsKKyAgICB9CisKKyAgICBjb25zdCBk
ZXN0aW5hdGlvbk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHBy
ZXZhbGVudFJlc291cmNlT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9
PT0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4pIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUs
IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0
ZUNvb2tpZUJsb2NraW5nKG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0p
OworCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RD
b29raWVzKCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlz
dGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBjMjU4YjhlMDA1ZDM1NTQx
ODJhZjA2ZDQ4MjU4M2FlNzdlNWExMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50
LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CitQQVNTIEhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3Mt
ZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3Mt
ZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZTAzZmQ4NzEyZWY5ZWRjOWIxODYyZjYzNmQxZTc0
ZWE2ODhkODQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4
ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgi
PgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gTWl4ZWQgU3Rh
dGlzdGljczwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBo
b3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJs
ID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJh
bWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BG
cmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRv
cEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisKKyAgICBmdW5j
dGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFz
IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NS
ZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRl
c3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQ
YWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworCisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ikhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9y
aWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVP
cmlnaW4zKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNj
YW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAg
ICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RV
bmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAg
ICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAg
IH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxl
bnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3At
ZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBjMjU4Yjhl
MDA1ZDM1NTQxODJhZjA2ZDQ4MjU4M2FlNzdlNWExMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24t
cHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRh
YmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgSG9zdCBkaWQgbm90IGdldCBjbGFzc2lm
aWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQt
YmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdp
bnMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODU0MDkwOGVkODBkMTM0ZTczODA0OTZhMjc1
MDVhZDAwNWM5N2JhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24t
c3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCAr
MSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8
bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBDbGFzc2lmaWNhdGlv
biBCYXNlZCBvbiBTdWIgRnJhbWUgVW5kZXIgVG9wIEZyYW1lIE9yaWdpbnM8L3RpdGxlPgorICAg
IDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcu
MC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RV
bmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8v
MTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6
Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0
cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkg
eworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgY2xhc3NpZmllZCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0
ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAg
ICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNX
ZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNl
dCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwg
dG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1
YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZy
YW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhj
b21wbGV0ZVRlc3QpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0Rp
ZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOwor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0g
aG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7
CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXBy
ZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRh
YmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11
bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjBjMjU4YjhlMDA1ZDM1NTQxODJhZjA2ZDQ4MjU4M2FlNzdlNWExMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1v
cmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0IGRpZCBub3Qg
Z2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9u
LXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1k
YXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXIt
dG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjExMjBhODU5MzEy
MTE0MDcyZDQ3MjliMzZiYTBhMTc3ZjNkYzQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2
YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJh
c2UuaHRtbApAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVu
Ij4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMg
Zm9yIENsYXNzaWZpY2F0aW9uIEJhc2VkIG9uIFN1YnJlc291cmNlIFVuZGVyIFRvcCBGcmFtZSBP
cmlnaW5zPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhv
c3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwg
PSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFt
ZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZy
YW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlv
biBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNl
dFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RS
dW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdl
c1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworIAorICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVP
cmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0
aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3Rh
bGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRh
UmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRp
b24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cu
aW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7
CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5hbHMu
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RS
dW5uZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3Rz
LXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJl
c291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIwYzI1OGI4ZTAwNWQzNTU0MTgyYWYwNmQ0ODI1ODNhZTc3ZTVhMTMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJl
Y3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0IGRpZCBub3Qg
Z2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9u
LXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFi
YXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVk
aXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDc1OGNiMDZiNmUyYTlhZmZmYTJk
NzQzZDNmZWIyYzBkYTU4ZTZlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJh
c2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbApAQCAt
MCwwICsxLDUxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgor
ICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIENsYXNzaWZp
Y2F0aW9uIEJhc2VkIG9uIFN1YnJlc291cmNlIFVuaXF1ZSBSZWRpcmVjdHMgVG88L3RpdGxlPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIx
MjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhv
c3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRw
Oi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0
dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgp
IHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
c3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGNsYXNzaWZpZWQg
YXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50
U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNv
cmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBn
ZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3Jp
Z2luMik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2Fu
RGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5k
ZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50
LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjMyZGQ2OWY5NDE5ZjUxOTg5NTdmMDkwOGRkNjc0ZDY4NDM2Y2I5YzcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGlj
cy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRh
dGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg5NzMxOWFiMGZiMTAwMDU1YTkzNWQ0YTk1MmIyYWI5
OTQ0ODMzNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3Rh
dGlzdGljcy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAg
IDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gTWl4ZWQgU3RhdGlzdGlj
czwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5k
ZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0
dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmln
aW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9y
aWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1l
T3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJh
bWVPcmlnaW40ID0gImh0dHA6Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9u
IGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAg
ICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBnb3QgY2xhc3NpZmll
ZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFs
c2UpOworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRl
KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dl
cmVTY2FubmVkKHRydWUpOworIAorICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNl
dCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwg
dG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1
YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjQp
OworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVy
VG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdp
bihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NV
cmwsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9y
aWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VV
bmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxs
YmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQ
cm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRv
dy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0
cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1l
LXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxl
bnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmRkNjlmOTQxOWY1MTk4OTU3ZjA5MDhkZDY3NGQ2ODQz
NmNiOWM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUt
dW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQ
QVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRh
dGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJh
bWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlYTc2MjAwZGEyZmZiMWEwMDU1
YThhMTk4YWUyNzgzZTJlYjNmNTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmlj
YXRpb24gQmFzZWQgb24gU3ViIEZyYW1lIFVuZGVyIFRvcCBGcmFtZSBPcmlnaW5zPC90aXRsZT4K
KyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAi
MTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBo
b3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0
cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJo
dHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0g
Imh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjQg
PSAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVU
ZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1Vy
bCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkg
cHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAg
IGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQo
dHJ1ZSk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3Jp
Z2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVy
VG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihz
dGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRv
cEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3Rp
Y3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7
CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09
PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3Qo
KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29s
bHVzaW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGRkY2U1YjMxNGNkN2Qy
ZDBkZWM0OGI2ZjlmOWUwZWNjYWI4MzA5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1i
YXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiBz
dWJyZXNvdXJjZSByZWRpcmVjdCBjb2xsdXNpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIENvbGx1ZGluZyBob3N0IDEgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuCitQQVNTIENvbGx1ZGluZyBob3N0IDIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
CitQQVNTIENvbGx1ZGluZyBob3N0IDMgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQ
QVNTIENvbGx1ZGluZyBob3N0IDQgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNT
IENvbGx1ZGluZyBsb2NhbGhvc3QgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIg
YWN0dWFsIHN1YiBmcmFtZSByZWRpcmVjdC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1
YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1i
YXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xMWUwNDc3NDY5ZDQwMGJhYTU3NTc4ODI5YWEyMTRlMmVkOGVkNmIzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xs
dXNpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDcxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBi
YXNlZCBvbiBzdWJyZXNvdXJjZSByZWRpcmVjdCBjb2xsdXNpb24uIik7CisgICAganNUZXN0SXNB
c3luYyA9IHRydWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAw
IjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCAr
ICIvdGVtcCI7CisgICAgY29uc3Qgc3VicmVzb3VyY2VPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4w
LjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCBzdWJyZXNvdXJjZU9yaWdpbjIgPSAiaHR0cDovLzEy
Ny4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHN1YnJlc291cmNlT3JpZ2luMyA9ICJodHRw
Oi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisgICAgY29uc3Qgc3VicmVzb3VyY2VPcmlnaW40ID0g
Imh0dHA6Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20o
c3RhdGlzdGljc1VybCwgc3VicmVzb3VyY2VPcmlnaW4xKTsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oc3VicmVzb3VyY2VPcmln
aW4xLCBzdWJyZXNvdXJjZU9yaWdpbjIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShzdWJyZXNvdXJjZU9yaWdpbjIsIHN1YnJl
c291cmNlT3JpZ2luMyk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RGcm9tKHN1YnJlc291cmNlT3JpZ2luMywgc3VicmVzb3VyY2VPcmln
aW40KTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGV4cGxpY2l0eSBzZXQgZGlkIG5vdCBnZXQg
c2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luMSkpCisgICAg
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgMSBnb3Qgc2V0IGFzIHByZXZh
bGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjEpKQorICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDEgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBw
cmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjIpKQorICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJl
dmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4yKSkKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCAyIGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50
IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4zKSkKKyAgICAgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCAzIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIp
OworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJl
c291cmNlKHN1YnJlc291cmNlT3JpZ2luMykpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
Q29sbHVkaW5nIGhvc3QgMyBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJj
ZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN1YnJlc291cmNlT3JpZ2luNCkpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgi
Q29sbHVkaW5nIGhvc3QgNCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShz
dWJyZXNvdXJjZU9yaWdpbjQpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGlu
ZyBob3N0IDQgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7Cisg
ICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIikpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29s
bHVkaW5nIGxvY2FsaG9zdCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZSBhZnRlciBhY3R1
YWwgc3ViIGZyYW1lIHJlZGlyZWN0LiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSkK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgbG9jYWxob3N0IGdvdCBjbGFz
c2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9CisK
KyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5k
b3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwg
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCnCoHsKKyAgICAgICAg
ICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90
IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICBs
ZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAg
ICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQub25sb2FkID0gcnVuVGVzdDsKKyAgICAgICAgICAg
ICAgICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89aHR0cDovLzEy
Ny4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvb25jbGljay5odG1sIjsKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVj
dC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1v
bi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmI4ZmNiZDhkOGY2ZDA1ZmM0OTRkNGVlZGRjZDljYjVlYmRkZTBjMzkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0
LXRvLXByZXZhbGVudC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVz
dHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHN1YnJlc291cmNlIHJlZGlyZWN0IHRvIG90
aGVyIHByZXZhbGVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgSG9z
dCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJh
c2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NmE3Mzg5NTMyNzcyMjhjNmVmNTY5MWJmNzAzNTc5Mzk5
ZDI0NjZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJj
ZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDUxIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZv
ciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiBzdWJyZXNvdXJjZSByZWRpcmVjdCB0byBvdGhlciBw
cmV2YWxlbnQuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBob3N0
VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0g
Imh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVP
cmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNv
bXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgZWxzZSBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uo
c3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lm
aWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIp
OworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4xLCB0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVl
UmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2so
Y29tcGxldGVUZXN0KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NT
dGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYg
KGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RS
dW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVu
RGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOwor
ICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsK
KyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxl
bnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3At
ZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJkZDY5Zjk0
MTlmNTE5ODk1N2YwOTA4ZGQ2NzRkNjg0MzZjYjljNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3Vy
Y2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yZDAxZWE2YmMyNDkzNzU5MmYwZTg5Njc2MTVjOTljNWM4ZGMzZmE2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3At
ZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgi
PgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gU3VicmVzb3Vy
Y2UgVW5kZXIgVG9wIEZyYW1lIE9yaWdpbnM8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAg
Y29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAi
OworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVt
cCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90
ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAw
L3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luNCA9ICJodHRwOi8vMTI3LjAuMC41Ojgw
MDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICgh
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBw
cmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkhvc3QgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBy
dW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90
aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFs
c2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsK
KworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRv
cEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4o
c3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJs
LCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3Jp
Z2luNCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2Fu
RGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5k
ZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8t
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyZGQ2OWY5NDE5ZjUxOTg5NTdmMDkw
OGRkNjc0ZDY4NDM2Y2I5YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9u
LXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0
cy10by1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlx
dWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhmN2YxMzkxYzYyMWRl
ODY2ZTFiZDIzYjAxYmRhMzMyZDBkOWYzNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQt
YmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sCkBA
IC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+
CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3Np
ZmljYXRpb24gQmFzZWQgb24gU3VicmVzb3VyY2UgVW5pcXVlIFJlZGlyZWN0cyBUbzwvdGl0bGU+
CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0g
IjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsg
aG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0
dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAi
aHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9
ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW40
ID0gImh0dHA6Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRl
VGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQg
bm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5
IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBh
c3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAg
ICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVk
KHRydWUpOworIAorICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24t
cHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVP
cmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRv
KHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwg
dG9wRnJhbWVPcmlnaW40KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlz
dGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMo
KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3Qg
PT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFs
cykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVz
dCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXBy
ZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1
c2lvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQzOTM4Yjc2Yzk3NDRjM2Fm
YTdiMjU1MDVlYWViNDlkODY2YjUyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxNCBAQAorVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHRvcCBm
cmFtZSByZWRpcmVjdCBjb2xsdXNpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIENvbGx1ZGluZyBob3N0IDEgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQ
QVNTIENvbGx1ZGluZyBob3N0IDIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNT
IENvbGx1ZGluZyBob3N0IDMgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENv
bGx1ZGluZyBob3N0IDQgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1
ZGluZyBsb2NhbGhvc3QgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgYWN0dWFs
IG5hdmlnYXRpb25hbCByZWRpcmVjdC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1m
cmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjMxZGEwMDBlOWNmYWE3MWE2ODU1MTcyOTRkMmVkYmUwZGZlMGE0NDAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0
YWJhc2UuaHRtbApAQCAtMCwwICsxLDcxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9
ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0
b3AgZnJhbWUgcmVkaXJlY3QgY29sbHVzaW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVl
OworCisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29u
c3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOwor
ICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7
CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1w
IjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3Rl
bXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luNCA9ICJodHRwOi8vMTI3LjAuMC41OjgwMDAv
dGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW41ID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC8iOworCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oc3RhdGlzdGljc1VybCwgdG9wRnJh
bWVPcmlnaW4xKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlx
dWVSZWRpcmVjdEZyb20odG9wRnJhbWVPcmlnaW4xLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSh0b3BG
cmFtZU9yaWdpbjIsIHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKHRvcEZyYW1lT3JpZ2luMywgdG9wRnJh
bWVPcmlnaW40KTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlm
ICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJs
KSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGV4cGxpY2l0eSBzZXQgZGlkIG5v
dCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMSkpCisg
ICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgMSBnb3Qgc2V0IGFzIHBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjEpKQorICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDEgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBw
cmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjIpKQorICAgICAgICAgICAgICAg
IHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFs
ZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4yKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJDb2xsdWRpbmcgaG9zdCAyIGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291
cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4zKSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJD
b2xsdWRpbmcgaG9zdCAzIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHRv
cEZyYW1lT3JpZ2luMykpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhv
c3QgMyBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZy
YW1lT3JpZ2luNCkpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3Qg
NCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjQp
KQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDQgZ290IGNsYXNz
aWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjUpKQor
ICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBsb2NhbGhvc3QgZ290IHNldCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgYWN0dWFsIG5hdmlnYXRpb25hbCByZWRpcmVjdC4i
KTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRS
ZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjUpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNv
bGx1ZGluZyBsb2NhbGhvc3QgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7CisKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVz
dCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNo
ID09PSAiIiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ikhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdG9wRnJhbWVPcmlnaW41ICsg
InJlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRv
PWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9uLmh0bWwjY29u
dGludWUiOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIHJ1blRl
c3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1w
cmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10
by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5Zjk5NTMzODI4
MGYzMTViMjIwMDNmMDA4MmQwODE0ODQ3ZTlhYjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFs
ZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNl
ZCBvbiB0b3AgZnJhbWUgcmVkaXJlY3QgdG8gb3RoZXIgcHJldmFsZW50LgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJl
c291cmNlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRv
LXByZXZhbGVudC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUt
cmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGU4YjAxZDE3
OGMzMjM5ZWIwZDE2NTg0N2RmYTI3ZDFkNjdkNzBkNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5o
dG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgor
PGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJl
c291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAg
ICBkZXNjcmlwdGlvbigiVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHRvcCBmcmFt
ZSByZWRpcmVjdCB0byBvdGhlciBwcmV2YWxlbnQuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBj
b25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7
CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1w
IjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZSBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NW
ZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJIb3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMg
cHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2Us
IGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmln
aW4xLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdp
bjEpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRh
dGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7
CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRl
c3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0
ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFs
ZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMt
dG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUt
dW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ5
MWJmOTYwMzM1NzA5Yzk5MWRmMWZmZDMyNDI4YmRiYWU4MDZmOAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIGZvciBjbGFzc2lmaWNhdGlv
biBiYXNlZCBvbiB0b3AgZnJhbWUgdW5pcXVlIHJlZGlyZWN0cyB0by4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNv
dXJjZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJl
Y3RzLXRvLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlx
dWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWM0YzdlZTVmNmMzZmVh
NjU2MTNmODU4MzYyN2E0Yzk4NTAzMTVkYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQt
YmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbApAQCAt
MCwwICsxLDU2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgor
ICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3Jp
cHRpb24oIlRlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0b3AgZnJhbWUgdW5pcXVl
IHJlZGlyZWN0cyB0by4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0
IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NV
cmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BG
cmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRv
cEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3Qg
dG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25z
dCB0b3BGcmFtZU9yaWdpbjQgPSAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiOworCisgICAg
ZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVz
b3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBj
bGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291
cmNlLiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZy
YW1lT3JpZ2luMSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5p
cXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGlj
c1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luNCk7
CisKKyAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jk
c0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
UHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgIH0KKworICAgIGlmIChkb2N1
bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVy
ICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRh
YmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFS
ZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAg
fQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2YWxl
bnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVy
eS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjBmMDMxZGNhNWQwYzk2MDhmNGQ4ZjVhZjg5OWExNmU5ZWY1MWM1OAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0
aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGZvciBjbGFz
c2lmaWNhdGlvbiBhcyB2ZXJ5IHByZXZhbGVudCBiYXNlZCBvbiBtaXhlZCBzdGF0aXN0aWNzLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMg
dmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJhc2VkLW9u
LW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1v
bi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWIwNmZhMjA5ZWRi
YjZmMTE4OGFmZjdkMTYwNjMwNDAyN2FiYjE3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5LXBy
ZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCAr
MSw2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8
bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9u
KCJUZXN0IGZvciBjbGFzc2lmaWNhdGlvbiBhcyB2ZXJ5IHByZXZhbGVudCBiYXNlZCBvbiBtaXhl
ZCBzdGF0aXN0aWNzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3Qg
aG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1Vy
bCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIHZhciB0b3BGcmFt
ZU9yaWdpbnMgPSBbXTsKKyAgICBjb25zdCBzdGFydE51bSA9IDI7CisgICAgY29uc3QgbnVtYmVy
T2ZTdWJyZXNvdXJjZURvbWFpbnMgPSAzMDsKKyAgICBmb3IgKHZhciBpID0gc3RhcnROdW07IGkg
PCBudW1iZXJPZlN1YnJlc291cmNlRG9tYWlucyArIHN0YXJ0TnVtOyArK2kpCisgICAgICAgIHRv
cEZyYW1lT3JpZ2lucy5wdXNoKCJodHRwOi8vMTI3LjAuMC4iICsgaSArICI6ODAwMC90ZW1wIikK
KworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFz
IHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5l
clRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hl
bkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgCisgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
c3RhcnRlZCBvdXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB2YXIg
aSA9IDA7CisgICAgICAgICAgICB3aGlsZSAoaSA8IG51bWJlck9mU3VicmVzb3VyY2VEb21haW5z
KSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRl
clRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpXSk7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZy
YW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpXSk7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRv
KHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpXSk7CisKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlz
dGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2krMV0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbnNbaSsxXSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRv
cEZyYW1lT3JpZ2luc1tpKzFdKTsKKworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbnNbaSsyXSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3Jp
Z2luc1tpKzJdKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2kr
Ml0pOworICAgICAgICAgICAgICAgIGkgKz0gMzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNr
KGNvbXBsZXRlVGVzdCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNz
U3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlm
IChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0
UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJ
VFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBydW5UZXN0
UnVubmVyVGVzdCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXIt
aW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1v
cnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmJhZTAwMzNmZmNjYWVjMjYzYTk2ZjJiM2Q3ODNlZGNmNzA0MDgzZDMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXIt
aW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDExIEBACitUZXN0cyBjbGVhcmluZyBvZiB3ZWJzaXRlIGRhdGEgc3RvcmUuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuCitQQVNTIEhvc3QgaXMgbm8gbG9uZ2VyIGEgcHJldmFsZW50IHJlc291
cmNlIGFmdGVyIHRoZSBzdG9yZSB3YXMgY2xlYXJlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0
ZW50LXN0b3JlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFi
YXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjE3ZWJhYmFkOTE3YWFkNDk5MDMzODFlYTM1MjNlMjA2MmJh
ZWIwYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJh
c2UuaHRtbApAQCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVu
Ij4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdCBD
bGVhcmVkIFN0b3JlPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24o
IlRlc3RzIGNsZWFyaW5nIG9mIHdlYnNpdGUgZGF0YSBzdG9yZS4iKTsKKyAgICBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAi
OworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsg
Ii90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4
MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4z
OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4w
LjQ6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIHRlc3RTdGVwMigpIHsKKyAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkp
CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJl
c291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRp
ZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc0NsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmUoY29t
cGxldGVUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBpcyBzdGlsbCBhIHByZXZhbGVu
dCByZXNvdXJjZSBhZnRlciB0aGUgc3RvcmUgd2FzIGNsZWFyZWQuIik7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgaXMgbm8gbG9uZ2VyIGEgcHJldmFsZW50IHJl
c291cmNlIGFmdGVyIHRoZSBzdG9yZSB3YXMgY2xlYXJlZC4iKTsKKworICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1
blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3Rp
ZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworCisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFt
ZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJh
bWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291
cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1l
T3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGlj
c1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbjMpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlk
U2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2sodGVzdFN0ZXAyKTsKKworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAg
ICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVu
ZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcnVuVGVzdFJ1bm5lclRl
c3QoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3Zjk5OWM2ZmViMzI2NWRlZmYzOTUxYWMyZjgxNDBh
YzFhNmVlZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9u
ZS1ob3VyLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyBjbGVh
cmluZyBvZiB3ZWJzaXRlIGRhdGEgc3RvcmUgKG9uZSBob3VyKS4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJj
ZS4KK1BBU1MgSG9zdCBpcyBubyBsb25nZXIgYSBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgdGhl
IHN0b3JlIHdhcyBjbGVhcmVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25l
LWhvdXItZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXIt
ZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYzE1ZWM4Zjk5YWEzZTM1ZGVjNTY5MmVlNjc2Mjk3
ZWQ2NGYyZjliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1v
bmUtaG91ci1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAg
IDx0aXRsZT48L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVz
dHMgY2xlYXJpbmcgb2Ygd2Vic2l0ZSBkYXRhIHN0b3JlIChvbmUgaG91cikuIik7CisgICAganNU
ZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAu
MTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVy
VGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcu
MC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEy
Ny4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8v
MTI3LjAuMC40OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7Cisg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRp
c3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBpcyBzdGlsbCBhIHByZXZh
bGVudCByZXNvdXJjZSBhZnRlciB0aGUgc3RvcmUgd2FzIGNsZWFyZWQuIik7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgaXMgbm8gbG9uZ2VyIGEgcHJldmFsZW50
IHJlc291cmNlIGFmdGVyIHRoZSBzdG9yZSB3YXMgY2xlYXJlZC4iKTsKKworICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHRlc3RTdGVwMigpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0
IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFs
ZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc0NsZWFySW5N
ZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmVNb2RpZmllZFNpbmNlSG91cnMoMSwgY29tcGxldGVUZXN0
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nh
bm5lZCh0cnVlKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7fSk7CisgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwp
KQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NT
dWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4x
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NT
dWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmln
aW4yKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZy
YW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NT
dWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmln
aW4zKTsKKworICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFS
ZWNvcmRzQ2FsbGJhY2sodGVzdFN0ZXAyKTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3Rp
Y3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgfQorCisgICAgaWYgKGRv
Y3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5u
ZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERh
dGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0K
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFzZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY29va2llLWRlbGV0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjNm
Y2ZhMDQ5MzgzNzk5NjJkY2Q3YTdiZGE0Mzk1NTAyMmVjMmU5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxl
dGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1NSBAQAorVGVzdCBmb3IgcGFy
dGl0aW9uZWQgYW5kIHVucGFydGl0aW9uZWQgY29va2llIGRlbGV0aW9uLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0t
LS0tLS0KK1Nob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tp
ZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVk
ICd0aGlyZFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQ
YXJ0eUNvb2tpZT12YWx1ZQorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUyLS0+JworLS0t
LS0tLS0KK1Nob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2ll
IG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQg
J3RoaXJkUGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0t
LS0tLQorRnJhbWU6ICc8IS0tZnJhbWUzLS0+JworLS0tLS0tLS0KK1RyeSB0byBzZXQgdGhpcmQg
cGFydHkgY29va2llLgorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTQtLT4nCistLS0t
LS0tLQorU2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUg
bmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAn
dGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0t
LS0tCitGcmFtZTogJzwhLS1mcmFtZTUtLT4nCistLS0tLS0tLQorQWZ0ZXIgcmVtb3ZhbCwgc2hv
dWxkIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2Zp
cnN0UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0
eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFt
ZTogJzwhLS1mcmFtZTYtLT4nCistLS0tLS0tLQorQWZ0ZXIgZGVjbGFzc2lmaWVkLCBzaG91bGQg
cmVjZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQ
YXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29v
a2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0
YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODM0ZTg3MzA4YTAz
OGQ0MjQ2MmIxMjExMmU0ZWJjMTQ1NTlkZWU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRh
YmFzZS5odG1sCkBAIC0wLDAgKzEsMTE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9
ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgZm9yIHBhcnRpdGlvbmVkIGFuZCB1bnBhcnRpdGlv
bmVkIGNvb2tpZSBkZWxldGlvbi4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAg
IGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJk
UGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBh
cnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cmVzb3VyY2VzIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5
Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQt
Y29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUi
OworICAgIGNvbnN0IHRoaXJkUGFydHlDb29raWVOYW1lID0gInRoaXJkUGFydHlDb29raWUiOwor
ICAgIGNvbnN0IHN1YlBhdGhUb1NldFRoaXJkUGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhw
P25hbWU9IiArIHRoaXJkUGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgY29u
c3QgZnJhZ21lbnRXaXRoUmV0dXJuVXJsID0gImh0dHA6Ly8iICsgcGFydGl0aW9uSG9zdCArICIv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24uaHRtbCI7CisgICAgY29uc3Qg
c3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBh
cnR5Q29va2llTmFtZSArICImbmFtZTI9IiArIHRoaXJkUGFydHlDb29raWVOYW1lOworCisgICAg
ZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25M
b2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAo
b25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5k
bGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVu
dCk7CisgICAgfQorCisKKyAgICBmdW5jdGlvbiBmaXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXJB
bmRDb250aW51ZSgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNj
YW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgc2V0VGltZW91
dChydW5UZXN0LCA1MDApOworICAgICAgICB9KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIHNldEFzTm9uUHJldmFsZW50QW5kQ29udGludWUoKSB7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4sIGZhbHNlLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3Qgc3RpbGwgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAg
ICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0
Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6
CisgICAgICAgICAgICAgICAgLy8gU2V0IGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0
LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFz
ZVVybCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyBmcmFnbWVudFdpdGhS
ZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgdGhpcmQt
cGFydHkgaGFzIGFjY2VzcyB0byBpdHMgZmlyc3QtcGFydHkgY29va2llcy4KKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBv
cGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVz
c2FnZT1TaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAg
ICAgICAgIC8vIENsYXNzaWZ5IGxvY2FsaG9zdCBhcyBwcmV2YWxlbnQuCisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwg
dHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZh
bGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzVXBkYXRlQ29va2llQmxvY2tpbmcocnVuVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAg
ICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIHRoaXJkLXBhcnR5IG5vIGxvbmdlciBoYXMgYWNj
ZXNzIHRvIGl0cyBmaXJzdC1wYXJ0eSBjb29raWVzLgorICAgICAgICAgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhp
cmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCBy
ZWNlaXZlIG5vIGNvb2tpZXMuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlICIjc3RlcDUiOgorICAgICAgICAgICAgICAgIC8vIFRyeSBzZXR0aW5n
IGEgY29va2llIGFzIHRoaXJkLXBhcnR5LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0
aW9uLmhhc2ggPSAic3RlcDYiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0
eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRUaGlyZFBhcnR5Q29va2llICsgIiZtZXNzYWdlPVRyeSB0
byBzZXQgdGhpcmQgcGFydHkgY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA2IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVj
ayB0aGF0IHRoZSB0aGlyZC1wYXJ0eSBzdGlsbCBoYXMgbm8gYWNjZXNzIHRvIGNvb2tpZXMgYW5k
IHRoZW4gZmlyZSBkYXRhIHJlY29yZCByZW1vdmFsLgorICAgICAgICAgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggPSAic3RlcDciOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhp
cmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCBy
ZWNlaXZlIG5vIGNvb2tpZXMuIiwgZmlyZURhdGFNb2RpZmljYXRpb25IYW5kbGVyQW5kQ29udGlu
dWUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA3IjoK
KyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSB0aGlyZC1wYXJ0eSBzdGlsbCBoYXMg
bm8gYWNjZXNzIHRvIGNvb2tpZXMgYW5kIHRoZW4gZGVjbGFzc2lmeSBsb2NhbGhvc3QuCisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwOCI7CisgICAgICAgICAg
ICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMg
KyAiJm1lc3NhZ2U9QWZ0ZXIgcmVtb3ZhbCwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4iLCBz
ZXRBc05vblByZXZhbGVudEFuZENvbnRpbnVlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgIiNzdGVwOCI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0
aGUgdGhpcmQtcGFydHkgc3RpbGwgaGFzIG5vIGFjY2VzcyB0byBjb29raWVzLgorICAgICAgICAg
ICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVz
ICsgIiZtZXNzYWdlPUFmdGVyIGRlY2xhc3NpZmllZCwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2ll
cy4iLCBmaW5pc2hUZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
IH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBwYXJ0aXRpb25Ib3N0ICYm
IGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdp
bmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0
cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVm
b3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAg
IGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEiOworCisgICAgICAgICAgICBydW5UZXN0
KCk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9
CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91
dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdpdGgtYW5kLXdpdGhvdXQt
dXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWQxMDky
ZWZkZWVlNDZmYWM2ZTM2YWMwNzZkODE0ZDJiYmU1YzdiOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdpdGgt
YW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1No
b3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAn
Zmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFy
dHlDb29raWU9dmFsdWUKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMi0tPicKKy0tLS0t
LS0tCitTaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBu
YW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisK
Ky0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTMtLT4nCistLS0tLS0tLQorQWZ0ZXIgdXNlciBp
bnRlcmFjdGlvbiwgc2hvdWxkIHN0aWxsIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVj
ZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1l
bnQuY29va2llOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRh
dGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45YzdhMzljNzNlOWYxNWM2NjUwYTE3NmIzZWM5MThjMWI1ZmY2NWJhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNl
Lmh0bWwKQEAgLTAsMCArMSw4NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+
Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3QgZm9y
IFBhcnRpdGlvbmVkIENvb2tpZXMgV2l0aCBhbmQgV2l0aG91dCBVc2VyIEludGVyYWN0aW9uPC90
aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgcGFydGl0aW9uSG9zdCA9ICIxMjcu
MC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0eU9yaWdp
biArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0IGZpcnN0
UGFydHlDb29raWVOYW1lID0gImZpcnN0UGFydHlDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhU
b1NldEZpcnN0UGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIGZpcnN0UGFy
dHlDb29raWVOYW1lICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgY29uc3QgZnJhZ21lbnRXaXRoUmV0
dXJuVXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nv
b2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLmh0bWwiOworICAgIGNvbnN0
IHN1YlBhdGhUb0dldENvb2tpZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQ
YXJ0eUNvb2tpZU5hbWU7CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvcGVu
SWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJs
OworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxv
YWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2V0VXNlckludGVyYWN0
aW9uQW5kQ29udGludWUoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hh
ZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rp
b24odGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhpcmQg
cGFydHkgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAg
ICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5U
ZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAg
ICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSAr
ICIjIiArIGZyYWdtZW50V2l0aFJldHVyblVybCArICIjc3RlcDIiOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1l
KHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91
bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDQiOworICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4sIHRydWUs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Vw
ZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA1IjsKKyAgICAgICAgICAgICAgICBv
cGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVz
c2FnZT1TaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLiIsIHNldFVzZXJJbnRlcmFjdGlvbkFuZENv
bnRpbnVlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVw
NSI6CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBh
dGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9QWZ0ZXIgdXNlciBpbnRlcmFjdGlvbiwgc2hvdWxk
IHN0aWxsIHJlY2VpdmUgbm8gY29va2llcy4iLCBmaW5pc2hUZXN0KTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5o
b3N0ID09PSBwYXJ0aXRpb25Ib3N0ICYmIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT0gIiIgJiYg
d2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVu
bmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRy
dWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAg
ICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2lu
KSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2FzIGNsYXNzaWZpZWQg
YXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydHMuIik7CisgICAgICAg
ICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRl
c3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0
LWFjY2Vzc2libGUtY29va2llcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxl
LWNvb2tpZXMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzNDA3ZGNmM2VkZWVi
NjBlYzk2NDkyODUwMTQ1MWEwNTE5Mjg0NzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3Np
YmxlLWNvb2tpZXMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK0NoZWNr
IHRoYXQgb25seSBIdHRwT25seSBjb29raWVzIHJlbWFpbiBpZiBhbGwgc2NyaXB0LWFjY2Vzc2li
bGUgY29va2llcyBhcmUgZGVsZXRlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgQmVmb3JlIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiBDbGllbnQtc2lkZSBjb29r
aWUgZXhpc3RzLgorUEFTUyBCZWZvcmUgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246IEh0dHBP
bmx5IGNvb2tpZSBleGlzdHMuCitQQVNTIEJlZm9yZSBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlv
bjogUmVndWxhciBzZXJ2ZXItc2lkZSBjb29raWUgZXhpc3RzLgorUEFTUyBBZnRlciBzY3JpcHQt
YWNjZXNzaWJsZSBkZWxldGlvbjogIEh0dHBPbmx5IGNvb2tpZSBleGlzdHMuCitQQVNTIEFmdGVy
IGZ1bGwgZGVsZXRpb246ICAgICAgICAgICAgICAgQWxsIGNvb2tpZXMgYXJlIGdvbmUuCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1z
Y3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNv
b2tpZXMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MGZjNTM3N2Q3ZGVlNjA0Mjk5MGJlMGMy
ZGJmYjc0NWFlMDVjZDU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1jb29raWVz
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw3MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0Pgor
ICAgIGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IG9ubHkgSHR0cE9ubHkgY29va2llcyByZW1haW4g
aWYgYWxsIHNjcmlwdC1hY2Nlc3NpYmxlIGNvb2tpZXMgYXJlIGRlbGV0ZWQuIik7CisgICAganNU
ZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBodHRwT25seUNvb2tpZU5hbWUgPSAiaHR0
cC1vbmx5LWNvb2tpZSI7CisgICAgY29uc3Qgc2VydmVyU2lkZUNvb2tpZU5hbWUgPSAic2VydmVy
LXNpZGUtY29va2llIjsKKyAgICBjb25zdCBjbGllbnRTaWRlQ29va2llTmFtZSA9ICJjbGllbnQt
c2lkZS1jb29raWUiOworCisgICAgZnVuY3Rpb24gc29ydFN0cmluZ0FycmF5KGEsIGIpIHsKKyAg
ICAgICAgYSA9IGEudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgYiA9IGIudG9Mb3dlckNhc2UoKTsK
KworICAgICAgICByZXR1cm4gYSA+IGIgPyAxIDogYiA+IGEgPyAtMSA6IDA7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gY2hlY2tDb29raWVzKGlzQWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24p
IHsKKyAgICAgICAgbGV0IHVuc29ydGVkVGVzdFBhc3NlZE1lc3NhZ2VzID0gW107CisgICAgICAg
IGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKTsKKyAgICAgICAgaWYgKCFjb29r
aWVzLmxlbmd0aCkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoKGlzQWZ0ZXJTY3JpcHRBY2Nlc3Np
YmxlRGVsZXRpb24gPyAiQWZ0ZXIiIDogIkJlZm9yZSIpICsgIiBzY3JpcHQtYWNjZXNzaWJsZSBk
ZWxldGlvbjogTm8gY29va2llcyBmb3VuZC4iKTsKKyAgICAgICAgZm9yIChsZXQgY29va2llIG9m
IGNvb2tpZXMpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoY29va2llLm5hbWUpIHsKKyAgICAgICAg
ICAgICAgICBjYXNlIGh0dHBPbmx5Q29va2llTmFtZToKKyAgICAgICAgICAgICAgICAgICAgdW5z
b3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMucHVzaCgoaXNBZnRlclNjcmlwdEFjY2Vzc2libGVEZWxl
dGlvbiA/ICJBZnRlciIgOiAiQmVmb3JlIikgKyAiIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9u
OiAiICsgKGlzQWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24gPyAiICIgOiAiIikgKyAiSHR0
cE9ubHkgY29va2llIGV4aXN0cy4iKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgY2FzZSBzZXJ2ZXJTaWRlQ29va2llTmFtZToKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKGlzQWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24pCisgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJBZnRlciBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogIFJl
Z3VsYXIgc2VydmVyLXNpZGUgY29va2llIGV4aXN0cy4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgdW5zb3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMu
cHVzaCgiQmVmb3JlIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiBSZWd1bGFyIHNlcnZlci1z
aWRlIGNvb2tpZSBleGlzdHMuIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgIGNhc2UgY2xpZW50U2lkZUNvb2tpZU5hbWU6CisgICAgICAgICAgICAgICAgICAg
IGlmIChpc0FmdGVyU2NyaXB0QWNjZXNzaWJsZURlbGV0aW9uKQorICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiQWZ0ZXIgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246ICBDbGll
bnQtc2lkZSBjb29raWUgZXhpc3RzLiIpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNvcnRlZFRlc3RQYXNzZWRNZXNzYWdlcy5wdXNoKCJCZWZv
cmUgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246IENsaWVudC1zaWRlIGNvb2tpZSBleGlzdHMu
Iik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgICAgIGxldCBzb3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMgPSB1bnNvcnRlZFRlc3RQYXNz
ZWRNZXNzYWdlcy5zb3J0KHNvcnRTdHJpbmdBcnJheSk7CisgICAgICAgIGZvciAobGV0IHRlc3RQ
YXNzZWRNZXNzYWdlIG9mIHNvcnRlZFRlc3RQYXNzZWRNZXNzYWdlcykKKyAgICAgICAgICAgIHRl
c3RQYXNzZWQodGVzdFBhc3NlZE1lc3NhZ2UpOworICAgIH0KKworICAgIGFzeW5jIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lciB8fCAhaW50ZXJuYWxzKSB7Cisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyB0ZXN0UnVubmVyIG9yIG5vIGludGVybmFscy4iKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB0ZXN0UnVubmVyLnNldFVz
ZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBhd2FpdCBmZXRjaCgiL2Nvb2tpZXMvcmVzb3Vy
Y2VzL3NldC1odHRwLW9ubHktY29va2llLnBocD9jb29raWVOYW1lPSIgKyBodHRwT25seUNvb2tp
ZU5hbWUsIHsgY3JlZGVudGlhbHM6ICJzYW1lLW9yaWdpbiIgfSk7CisgICAgICAgIGF3YWl0IGZl
dGNoKCIvY29va2llcy9yZXNvdXJjZXMvc2V0Q29va2llcy5jZ2kiLCB7IGhlYWRlcnM6IHsgIlNl
dC1Db29raWUiOiBzZXJ2ZXJTaWRlQ29va2llTmFtZSArICI9MTsgcGF0aD0vOyIgfSwgY3JlZGVu
dGlhbHM6ICJzYW1lLW9yaWdpbiIgfSk7CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGNsaWVu
dFNpZGVDb29raWVOYW1lICsgIj0xIjsKKyAgICAgICAgY2hlY2tDb29raWVzKGZhbHNlKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzRGVsZXRlQ29va2llc0Zvckhvc3QoImh0dHA6Ly8x
MjcuMC4wLjEiLCBmYWxzZSk7CisgICAgICAgIGNoZWNrQ29va2llcyh0cnVlKTsKKyAgICAgICAg
dGVzdFJ1bm5lci5zdGF0aXN0aWNzRGVsZXRlQ29va2llc0Zvckhvc3QoImh0dHA6Ly8xMjcuMC4w
LjEiLCB0cnVlKTsKKyAgICAgICAgbGV0IGNvb2tpZXNMZWZ0ID0gaW50ZXJuYWxzLmdldENvb2tp
ZXMoKS5sZW5ndGg7CisgICAgICAgIGlmIChjb29raWVzTGVmdCA9PT0gMCkKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQoIkFmdGVyIGZ1bGwgZGVsZXRpb246ICAgICAgICAgICAgICAgQWxsIGNvb2tp
ZXMgYXJlIGdvbmUuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkFm
dGVyIGZ1bGwgZGVsZXRpb246ICAgICAgICAgICAgICAiICsgY29va2llc0xlZnQgKyAiIGNvb2tp
ZShzKSBsZWZ0LiIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVk
aXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRp
cmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzc0MzA2MWZmMTE5ZmFkM2Y1
OTdkYzE1YWUwNGI0YjhjNjkzNzk0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5h
dmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BB
U1NFRDogQ29va2llIHN1Y2Nlc3NmdWxseSBzZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5h
dmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24t
cmVkaXJlY3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjE5ZTNkNjg5MzJiZmYxOGM1YTAx
YzU2ODRjNDRmMzcxNmZkZTgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdh
dGlvbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgi
PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYmxvY2tpbmcgaXMgbm90IGFwcGxpZWQg
dG8gdG9wLWxldmVsIG5hdmlnYXRpb24gcmVkaXJlY3RzLiIpOworICAgIGpzVGVzdElzQXN5bmMg
PSB0cnVlOworCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVk
KHRydWUpOworCisgICAgZnVuY3Rpb24gZG9SZWRpcmVjdCgpCisgICAgeworICAgICAgICB0ZXN0
UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSwgZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaHJlZiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9yZXNvdXJjZXMvc2V0LWNvb2tpZS1vbi1yZWRpcmVjdC5waHA/c3RlcD0xIjsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0ic2V0VGltZW91dCgnZG9SZWRpcmVjdCgpJywgMCkiPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2RvLW5vdC1jYXB0dXJlLXN0YXRpc3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2aWdhdGlvbnMtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2RvLW5vdC1jYXB0dXJlLXN0YXRpc3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2aWdh
dGlvbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2OWM5MWNhZTZlYWEzYmRj
Yzg0NjBjNjMzN2IwMmY3ZDY0ZjI0ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWNhcHR1cmUtc3RhdGlzdGlj
cy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMSBAQAorVGVzdCB0aGF0IGEgbm9uLXJlZGlyZWN0ZWQgdG9wIGZyYW1lIG5hdmlnYXRp
b24gZG9lc24ndCBnZXQgY2FwdHVyZWQgaW4gc3RhdGlzdGljcy4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNT
dWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyBm
YWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5k
ZXIoImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpIGlzIGZhbHNlCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1j
YXB0dXJlLXN0YXRpc3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2aWdhdGlvbnMtZGF0YWJhc2UuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qt
Y2FwdHVyZS1zdGF0aXN0aWNzLWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjgwOTM1YTIzNzBlZGJkNzY5MjUxMzE5YmFjOTQ0ZjcyOGJjNzZlNgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNzLWZvci1zaW1wbGUtdG9wLW5hdmlnYXRp
b25zLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IHRoYXQgYSBub24tcmVkaXJlY3RlZCB0
b3AgZnJhbWUgbmF2aWdhdGlvbiBkb2Vzbid0IGdldCBjYXB0dXJlZCBpbiBzdGF0aXN0aWNzLiIp
OworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0
YWJhc2UodHJ1ZSk7CisgICAgbGV0IHRpbWVySGFuZGxlID0gMDsKKworICAgIGZ1bmN0aW9uIGZp
bmlzaFRlc3QoKSB7CisgICAgICAgIGlmICh0aW1lckhhbmRsZSkKKyAgICAgICAgICBjbGVhclRp
bWVvdXQodGltZXJIYW5kbGUpOworCisgICAgICAgIHNob3VsZEJlRmFsc2UoJ3Rlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIs
ICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgndGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vMTI3LjAuMC4x
IiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAg
ICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCkgeworICAgICAgICAgICAgY2FzZSAi
MTI3LjAuMC4xOjgwMDAiOgorICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3YXMgY2xhc3NpZmllZCBhcyBw
cmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0cy4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNzLWZvci1zaW1w
bGUtdG9wLW5hdmlnYXRpb25zLmh0bWwiOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAibG9jYWxob3N0OjgwMDAiOgorICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNv
cmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxs
U3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGZpbmlzaFRlc3QpOworICAgICAg
ICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKSkKKyAg
ICAgICAgICAgICAgICAgICAgdGltZXJIYW5kbGUgPSBzZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDEw
MCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIlVua25vd24gaG9zdDogIiArIGRvY3VtZW50LmxvY2F0aW9u
Lmhvc3QpOworICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIH0K
KworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
ICBydW5UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3Zl
LWJsb2NraW5nLWluLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5n
LWluLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYWQ3ZDllNTAw
NzZiNmQxNmJiYzI2YTUwNDZlOTk2OTZkNmUwNzY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxv
Y2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTEgQEAK
K1Rlc3RzIHRoYXQgYmxvY2tpbmcgaXMgbm90IHJlbW92ZWQgbWlkLWZsaWdodCBpbiByZWRpcmVj
dHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAgCisKKy0tLS0tLS0tCitGcmFtZTogJzwh
LS1mcmFtZTEtLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2ll
IGZvciBsb2NhbGhvc3QuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5
Q29va2llSVAnLgorUmVjZWl2ZWQgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llTG9jYWxo
b3N0Jy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgor
Q2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llTG9jYWxob3N0PWxv
Y2FsaG9zdAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUyLS0+JworLS0tLS0tLS0KK1Jl
ZGlyZWN0IGNhc2UgMSwgc2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llIGZvciAxMjcu
MC4wLjEuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWVJUCcuCitEaWQg
bm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llTG9jYWxob3N0Jy4KK0Rp
ZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgorQ2xpZW50LXNp
ZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llSVA9MTI3LjAuMC4xCisKKy0tLS0t
LS0tCitGcmFtZTogJzwhLS1mcmFtZTMtLT4nCistLS0tLS0tLQorVHJ5IHRvIHNldCB0aGlyZC1w
YXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdCBpbiBibG9ja2VkIG1vZGUuCisKKworLS0tLS0tLS0K
K0ZyYW1lOiAnPCEtLWZyYW1lNC0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBubyBjb29r
aWUuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llSVAnLgor
RGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUxvY2FsaG9zdCcu
CitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2llJy4KK0NsaWVu
dC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNS0t
PicKKy0tLS0tLS0tCitSZWRpcmVjdCBjYXNlIDIsIHNob3VsZCBub3QgcmVjZWl2ZSBmaXJzdC1w
YXJ0eSBjb29raWUgZm9yIDEyNy4wLjAuMS4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQg
J2ZpcnN0UGFydHlDb29raWVJUCcuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJz
dFBhcnR5Q29va2llTG9jYWxob3N0Jy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3Ro
aXJkUGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5
Q29va2llSVA9MTI3LjAuMC4xCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1k
YXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zNmQzMGFhZGVmNDU3N2I4NTI0MjNjNmEyMzZmM2FhMzcxOWYxMDJkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDEwMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAg
ICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0
aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0
aW9uKCJUZXN0cyB0aGF0IGJsb2NraW5nIGlzIG5vdCByZW1vdmVkIG1pZC1mbGlnaHQgaW4gcmVk
aXJlY3RzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgcGFydGl0
aW9uSG9zdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHJlc291cmNlUGF0aCA9ICIvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNl
VXJsID0gdGhpcmRQYXJ0eU9yaWdpbiArIHJlc291cmNlUGF0aDsKKyAgICBjb25zdCBmaXJzdFBh
cnR5Q29va2llTmFtZVByZWZpeCA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBmaXJz
dFBhcnR5Q29va2llTmFtZUlQID0gZmlyc3RQYXJ0eUNvb2tpZU5hbWVQcmVmaXggKyAiSVAiOwor
ICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVOYW1lTG9jYWxob3N0ID0gZmlyc3RQYXJ0eUNvb2tp
ZU5hbWVQcmVmaXggKyAiTG9jYWxob3N0IjsKKyAgICBjb25zdCB0aGlyZFBhcnR5Q29va2llTmFt
ZSA9ICJ0aGlyZFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRUaGlyZFBhcnR5
Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyB0aGlyZFBhcnR5Q29va2llTmFtZSAr
ICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tpZXMgPSAiL2dldC1j
b29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWVJUCArICImbmFtZTI9IiAr
IGZpcnN0UGFydHlDb29raWVOYW1lTG9jYWxob3N0ICsgIiZuYW1lMz0iICsgdGhpcmRQYXJ0eUNv
b2tpZU5hbWU7CisgICAgY29uc3QgcmVkaXJlY3RDaGFpblVybCA9IHRoaXJkUGFydHlPcmlnaW4g
KyByZXNvdXJjZVBhdGggKyAiL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly8iICsgcGFy
dGl0aW9uSG9zdCArIHJlc291cmNlUGF0aCArIHN1YlBhdGhUb0dldENvb2tpZXM7CisKKyAgICBm
dW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBl
bGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1l
bnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAg
ZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVu
VGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAg
ICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgIC8vIFNldCBmaXJzdC1wYXJ0
eSBjb29raWVzIGZvciAxMjcuMC4wLjEgYW5kIGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAgICBp
ZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luID09PSB0aGlyZFBhcnR5T3JpZ2luKSB7CisgICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGZpcnN0UGFydHlDb29raWVOYW1lTG9j
YWxob3N0ICsgIj1sb2NhbGhvc3Q7cGF0aD0nLyciOworICAgICAgICAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5ocmVmID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UuaHRt
bCNzdGVwMiI7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuY29va2llID0gZmlyc3RQYXJ0eUNvb2tpZU5hbWVJUCArICI9MTI3LjAuMC4xO3Bh
dGg9Jy8nIjsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9ICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3Zl
LWJsb2NraW5nLWluLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwjc3RlcDEiOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6
CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgY29va2llIGdldHMgc2VudCBmb3Ig
bG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMSBzaW5jZSBsb2NhbGhvc3QgaXMgbm90IHByZXZhbGVu
dC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAg
ICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0
Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUgZm9y
IGxvY2FsaG9zdC4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFz
aCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgLy8gTG9hZCBhbiBpZnJhbWUgaW4gYSByZWRp
cmVjdCBjaGFpbiB0aGF0IHN0YXJ0cyB3aXRoIGxvY2FsaG9zdCBhbmQgZW5kcyB3aXRoIDEyNy4w
LjAuMS4gRXhwZWN0IGEgY29va2llIGZvciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAgb3Bl
bklmcmFtZShyZWRpcmVjdENoYWluVXJsICsgIiZtZXNzYWdlPVJlZGlyZWN0IGNhc2UgMSwgc2hv
dWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llIGZvciAxMjcuMC4wLjEuIiwgcnVuVGVzdCk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAg
ICAgICAgICAgICAgIC8vIFNldCBsb2NhbGhvc3QgYXMgcHJldmFsZW50IHRvIHB1dCBpdCBpbiB0
aGUgYmxvY2tpbmcgY2F0ZWdvcnkuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aGFzaCA9ICJzdGVwNSI7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tp
bmcocnVuVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlICIjc3RlcDUiOgorICAgICAgICAgICAgICAgIC8vIFRyeSB0byBz
ZXQgcGFydGl0aW9uZWQgY29va2llIGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xLgorICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDYiOworICAgICAgICAg
ICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRUaGlyZFBh
cnR5Q29va2llICsgIiZtZXNzYWdlPVRyeSB0byBzZXQgdGhpcmQtcGFydHkgY29va2llIGZvciBs
b2NhbGhvc3QgaW4gYmxvY2tlZCBtb2RlLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA2IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVj
ayB0aGF0IG5vIGNvb2tpZSBnZXRzIHNlbnQgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEg
c2luY2UgbG9jYWxob3N0J3MgY29va2llcyBhcmUgYmxvY2tlZC4KKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA3IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZy
YW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICAiJm1lc3NhZ2U9
U2hvdWxkIHJlY2VpdmUgbm8gY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA3IjoKKyAgICAgICAgICAgICAgICAvLyBMb2Fk
IGFuIGlmcmFtZSBpbiBhIHJlZGlyZWN0IGNoYWluIHRoYXQgc3RhcnRzIHdpdGggbG9jYWxob3N0
IGFuZCBlbmRzIHdpdGggMTI3LjAuMC4xLiBFeHBlY3QgYSBjb29raWUgZm9yIDEyNy4wLjAuMS4K
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA4IjsKKyAgICAg
ICAgICAgICAgICBvcGVuSWZyYW1lKHJlZGlyZWN0Q2hhaW5VcmwgKyAiJm1lc3NhZ2U9UmVkaXJl
Y3QgY2FzZSAyLCBzaG91bGQgbm90IHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llIGZvciAxMjcu
MC4wLjEuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlICIjc3RlcDgiOgorICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIpIHsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0
cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkxvY2FsaG9zdCB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Ug
YmVmb3JlIHRoZSB0ZXN0IHN0YXJ0cy4iKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENo
aWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0g
InN0ZXAxIjsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgcnVuVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRo
b3V0LWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2
aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDA1ZGMwOWI2OTYzOWYxZDkwYzZjMzdjMjJlZDFiOTZmODYxYzQ0
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxl
bnQtd2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MiBAQAorVGVzdHMgdGhhdCB0aGUgc2Vzc2lvbiBpcyBub3Qgc3dpdGNoZWQgdXBvbiB0b3AgZnJh
bWUgbmF2aWdhdGlvbiB0byBhIHByZXZhbGVudCByZXNvdXJjZSB3aXRob3V0IHVzZXIgaW50ZXJh
Y3Rpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFNob3VsZCBoYXZl
IGFuZCBoYXMgdGhlIHNlc3Npb24gY29va2llLgorUEFTUyBTaG91bGQgaGF2ZSBhbmQgaGFzIHRo
ZSBwZXJzaXN0ZW50IGNvb2tpZS4KK1BBU1MgT3JpZ2luIGhhcyBubyBpc29sYXRlZCBzZXNzaW9u
LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9k
by1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1p
bnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXBy
ZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmFi
ZmRiOWM0MmJlMjBhNzM5NjYyMjQ0ZWVkNGQ3MzY0OGY1YzBkMgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dp
dGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlv
bi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
IGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2Ny
aXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0
IHRoZSBzZXNzaW9uIGlzIG5vdCBzd2l0Y2hlZCB1cG9uIHRvcCBmcmFtZSBuYXZpZ2F0aW9uIHRv
IGEgcHJldmFsZW50IHJlc291cmNlIHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHByZXZhbGVudE9yaWdpbiA9ICJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IG5vblByZXZhbGVudE9yaWdpbiA9ICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHNlc3Npb25Db29raWVOYW1lID0gInNlc3Np
b25Db29raWUiOworICAgIGNvbnN0IHBlcnNpc3RlbnRDb29raWVOYW1lID0gInBlcnNpc3RlbnRD
b29raWUiOworICAgIGNvbnN0IHR3b01pbnV0ZXNJblNlY29uZHMgPSAxMjA7CisKKyAgICBmdW5j
dGlvbiBzZXRTZXNzaW9uQ29va2llKCkgeworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzZXNz
aW9uQ29va2llTmFtZSArICI9MTsgcGF0aD0vIjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZXRQ
ZXJzaXN0ZW50Q29va2llKCkgeworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBwZXJzaXN0ZW50
Q29va2llTmFtZSArICI9MTsgcGF0aD0vOyBNYXgtQWdlPSIgKyB0d29NaW51dGVzSW5TZWNvbmRz
ICsgIjsiOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNoZWNrQ29va2llcyhzaG91bGRIYXZlU2Vz
c2lvbkNvb2tpZSwgc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29raWUpIHsKKyAgICAgICAgbGV0IGhh
c1Nlc3Npb25Db29raWUgPSAoZG9jdW1lbnQuY29va2llICsgIiIpLmluY2x1ZGVzKHNlc3Npb25D
b29raWVOYW1lKSwKKyAgICAgICAgICAgIGhhc1BlcnNpc3RlbnRDb29raWUgPSAoZG9jdW1lbnQu
Y29va2llICsgIiIpLmluY2x1ZGVzKHBlcnNpc3RlbnRDb29raWVOYW1lKTsKKworICAgICAgICBp
ZiAoc2hvdWxkSGF2ZVNlc3Npb25Db29raWUgJiYgaGFzU2Vzc2lvbkNvb2tpZSkKKyAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIlNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHNlc3Npb24gY29va2llLiIp
OworICAgICAgICBlbHNlIGlmIChzaG91bGRIYXZlU2Vzc2lvbkNvb2tpZSAmJiAhaGFzU2Vzc2lv
bkNvb2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkIGhhdmUgYnV0IGRvZXNu
J3QgaGF2ZSB0aGUgc2Vzc2lvbiBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UgaWYgKCFzaG91bGRIYXZl
U2Vzc2lvbkNvb2tpZSAmJiBoYXNTZXNzaW9uQ29va2llKSB7CisgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJTaG91bGRuJ3QgaGF2ZSBidXQgaGFzIHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKKyAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxkbid0IGhhdmUgYW5kIGRvZXNuJ3Qg
aGF2ZSB0aGUgc2Vzc2lvbiBjb29raWUuIik7CisKKworICAgICAgICBpZiAoc2hvdWxkSGF2ZVBl
cnNpc3RlbnRDb29raWUgJiYgaGFzUGVyc2lzdGVudENvb2tpZSkKKyAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIlNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHBlcnNpc3RlbnQgY29va2llLiIpOworICAg
ICAgICBlbHNlIGlmIChzaG91bGRIYXZlUGVyc2lzdGVudENvb2tpZSAmJiAhaGFzUGVyc2lzdGVu
dENvb2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkIGhhdmUgYnV0IGRvZXNu
J3QgaGF2ZSB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UgaWYgKCFzaG91bGRI
YXZlUGVyc2lzdGVudENvb2tpZSAmJiBoYXNQZXJzaXN0ZW50Q29va2llKSB7CisgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJTaG91bGRuJ3QgaGF2ZSBidXQgaGFzIHRoZSBwZXJzaXN0ZW50IGNvb2tp
ZS4iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxkbid0IGhhdmUg
YW5kIGRvZXNuJ3QgaGF2ZSB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5o
YXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgIHNldFNl
c3Npb25Db29raWUoKTsKKyAgICAgICAgICAgICAgICBzZXRQZXJzaXN0ZW50Q29va2llKCk7Cisg
ICAgICAgICAgICAgICAgY2hlY2tDb29raWVzKHRydWUsIHRydWUpOworICAgICAgICAgICAgICAg
IGlmICh0ZXN0UnVubmVyLmhhc1N0YXRpc3RpY3NJc29sYXRlZFNlc3Npb24ocHJldmFsZW50T3Jp
Z2luKSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPcmlnaW4gaGFzIGlzb2xh
dGVkIHNlc3Npb24uIik7CisgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFs
c2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIk9yaWdpbiBoYXMgbm8gaXNvbGF0ZWQgc2Vzc2lvbi4iKTsKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gbm9uUHJldmFsZW50T3JpZ2lu
ICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZp
Z2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9uLmh0bWwjc3RlcDIiOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAg
ICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAg
ICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luICE9PSBub25QcmV2YWxlbnRPcmlnaW4pCisg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlN0ZXAgMiBpcyBub3Qgb24gIiArIG5vblBy
ZXZhbGVudE9yaWdpbiArICIuIik7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHByZXZhbGVudE9yaWdpbikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQocHJldmFsZW50T3JpZ2luICsgIiBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFs
ZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5U
ZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aHJlZiA9IHByZXZhbGVudE9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qt
c3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFj
dGlvbi5odG1sI3N0ZXA0IjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgY2hlY2tDb29raWVzKHRydWUsIHRydWUpOwor
ICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmhhc1N0YXRpc3RpY3NJc29sYXRlZFNlc3Np
b24ocHJldmFsZW50T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3Jp
Z2luIGhhcyBpc29sYXRlZCBzZXNzaW9uLiIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiT3JpZ2luIGhhcyBubyBpc29sYXRlZCBzZXNzaW9u
LiIpOworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVz
dCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIlVua25vd24gaGFzaC4iKTsKKyAgICAgICAgICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisgICAgfQor
CisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiKSB7CisgICAgICAgIGlmIChk
b2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gIT09IHByZXZhbGVudE9yaWdpbikKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoIlRlc3QgaXMgbm90IHN0YXJ0aW5nIG91dCBvbiAiICsgcHJldmFsZW50T3Jp
Z2luICsgIi4iKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJ
VFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShwcmV2YWxlbnRPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQocHJl
dmFsZW50T3JpZ2luICsgIiB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVm
b3JlIHRoZSB0ZXN0IHN0YXJ0cy4iKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPSAic3RlcDEiOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVy
eS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJl
ci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2Ut
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmYmE4MTAzNWUyZmVjYmExMzk0ZDAx
ZGYyZTliZTIwNjk1ZTg1YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdh
dGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0NoZWNrIHRoYXQgZG9jdW1lbnQucmVmZXJyZXIg
aXMgZG93bmdyYWRlZCB0byB0aGUgZVRMRCsxIGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9u
IHdpdGggbGluayBxdWVyeS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
VGhlIHJlZmVycmVyIGlzIGRvd25ncmFkZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRp
b24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRl
ZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQt
cmVzb3VyY2UtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YWViZGU5NWJlOGEwNTJhZmYzNjc5
YzA2ODg1YWUxNzAyZTFkNzU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmln
YXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0
bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAg
IDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKSI+Cis8c2Ny
aXB0PgorICAgIGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IGRvY3VtZW50LnJlZmVycmVyIGlzIGRv
d25ncmFkZWQgdG8gdGhlIGVUTEQrMSBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRo
IGxpbmsgcXVlcnkuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBsZXQgbnVt
YmVyT2ZUcmllcyA9IDA7CisgICAgZnVuY3Rpb24gdGVzdFJlZmVycmVyKCkgeworICAgICAgICBp
ZiAoZG9jdW1lbnQucmVmZXJyZXIgPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luICsgIi8iKSB7
CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgcmVmZXJyZXIgaXMgZG93bmdyYWRlZC4iKTsK
KyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
ICAgIH0gZWxzZSBpZiAoKytudW1iZXJPZlRyaWVzIDw9IDUpCisgICAgICAgICAgICBzZXRUaW1l
b3V0KHRlc3RSZWZlcnJlciwgMjAwKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJUaGUgcmVmZXJyZXIgaXMgbm90IGRvd25ncmFkZWQ6ICIgKyBkb2N1bWVudC5yZWZl
cnJlcik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVTYW1lT3JpZ2luVG9B
ZGRRdWVyeSgpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHByZXZhbGVudFJl
c291cmNlT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJy
ZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNl
Lmh0bWw/bGluaz1xdWVyeSI7CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09y
aWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3Jp
Z2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5h
dmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWwiOwor
ICAgIH0KKworICAgIGNvbnN0IGRlc3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCI7CisgICAgY29uc3QgcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEyNy4w
LjAuMTo4MDAwIjsKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1l
bnQubG9jYXRpb24ub3JpZ2luID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiAmJiBkb2N1bWVu
dC5sb2NhdGlvbi5zZWFyY2ggPT09ICIiKSB7CisgICAgICAgICAgICBuYXZpZ2F0ZVNhbWVPcmln
aW5Ub0FkZFF1ZXJ5KCk7CisgICAgICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3Jp
Z2luID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikgeworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
dHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luLCB0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
VXBkYXRlQ29va2llQmxvY2tpbmcobmF2aWdhdGVDcm9zc09yaWdpbik7CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRl
c3RSZWZlcnJlcigpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZW5hYmxlLWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTIxOWRkM2IxMWYyYTM0YzQ1NzUzNDBl
NzM4ZGFkY2ZhMGNjZmNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGZvciBlbmFibGluZyBkZWJ1ZyBtb2RlIGFu
ZCB0aGF0IGl0IHBlcm1hbmVudGx5IHRyZWF0cyAzcmRwYXJ0eXRlc3R3ZWJraXQub3JnIGFzIGEg
cHJldmFsZW50IHJlc291cmNlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBodHRwOi8vM3JkcGFydHl0ZXN0d2Via2l0Lm9yZyBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNv
dXJjZSBpbiBkZWJ1ZyBtb2RlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2Rl
LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjM3ZmY5MjI1NjdmOWE0NzI4MjczZGZhNDczMjYz
N2E0ODVjYjlmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlw
dGlvbigiVGVzdCBmb3IgZW5hYmxpbmcgZGVidWcgbW9kZSBhbmQgdGhhdCBpdCBwZXJtYW5lbnRs
eSB0cmVhdHMgM3JkcGFydHl0ZXN0d2Via2l0Lm9yZyBhcyBhIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHRoaXJkUGFydHlPcmln
aW4gPSAiaHR0cDovLzNyZHBhcnR5dGVzdHdlYmtpdC5vcmciOworCisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRV
c2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
dGhpcmRQYXJ0eU9yaWdpbiArICIgYWxyZWFkeSBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIp
OworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUodHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKHRoaXJkUGFydHlPcmlnaW4gKyAiIGRpZG4ndCBnZXQgc2V0IGFzIHByZXZh
bGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQodGhpcmRQYXJ0eU9yaWdpbiArICIgZ290IHNldCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UgaW4gZGVidWcgbW9kZS4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NEZWJ1Z01vZGUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhl
cmluZy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDE4MDNiZmNiNTNiMTQwNDlk
NWUxZGFhZTViMjViNjI3ZmFjZTVhNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgR3JhbmRmYXRoZXJlZCBjb29raWUgd2FzIG5vdCBw
dXJnZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uY2JkZDA0MWRkZDE3ZjhmNDZlY2EzNDcwZjE4MzRmZmE0MmQ2NWQ4Zgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTE1IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdCBmb3IgR3JhbmRmYXRoZXJpbmc8L3RpdGxlPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBmaXJzdFBhcnR5T3JpZ2luID0gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgZmlyc3RQYXJ0eUJhc2VVcmwgPSBmaXJzdFBhcnR5
T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3Qg
Zmlyc3RQYXJ0eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3QgdGhp
cmRQYXJ0eUNvb2tpZU5hbWUgPSAidGhpcmRQYXJ0eUNvb2tpZSI7CisgICAgY29uc3QgY29va2ll
VmFsdWUgPSAidmFsdWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUg
PSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZ2YWx1
ZT0iICsgY29va2llVmFsdWU7CisgICAgY29uc3QgcmV0dXJuVXJsID0gZmlyc3RQYXJ0eU9yaWdp
biArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy5odG1sIjsKKyAgICBj
b25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgY29u
c3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNv
b2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsgdGhpcmRQYXJ0eUNvb2tpZU5hbWUgKyAi
JnZhbHVlPSIgKyBjb29raWVWYWx1ZTsKKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7Cisg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0
aW9uIGZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlckFuZENvbnRpbnVlKCkgeworICAgICAgICB0
ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgICAgICB0
ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gY2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZUFuZENv
bnRpbnVlKCkgeworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5k
UGVyc2lzdGVudFN0b3JlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcnVuVGVzdCgpOworICAg
ICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0
Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6
CisgICAgICAgICAgICAgICAgLy8gU2V0IGEgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhv
c3QuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGZpcnN0UGFydHlC
YXNlVXJsICsgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIHJldHVyblVybCAr
ICIjc3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0
ZXAyIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsK
KyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IGxvY2FsaG9zdCdzIGNvb2tpZSBpcyB0aGVy
ZS4KKyAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSBmaXJzdFBhcnR5Q29v
a2llTmFtZSArICI9IiArIGNvb2tpZVZhbHVlKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJGaXJzdC1wYXJ0eSBjb29raWUgbm90IHNldC4iKTsKKyAgICAgICAgICAgICAgICBydW5U
ZXN0KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMi
OgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDQiOworICAg
ICAgICAgICAgICAgIC8vIENsZWFyIHN0b3JlIHRvIHRyaWdnZXIgZ3JhbmRmYXRoZXJpbmcuCisg
ICAgICAgICAgICAgICAgY2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZUFuZENvbnRpbnVl
KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAg
ICAgICAgICAgIC8vIFNldCBsb2NhbGhvc3QgYXMgcHJldmFsZW50IHJlc291cmNlLgorICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRw
Oi8vbG9jYWxob3N0IiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlm
ICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2Fs
aG9zdCIpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IGRp
ZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAg
ICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNSI6CisgICAgICAgICAgICAgICAgLy8gU2V0IGEg
Zmlyc3QtcGFydHkgY29va2llIGZvciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0VGhpcmRQ
YXJ0eUNvb2tpZSArICIjIiArIHJldHVyblVybCArICIjc3RlcDYiOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA2IjoKKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA3IjsKKyAgICAgICAgICAgICAgICAvLyBTZXQgMTI3
LjAuMC4xIGFzIHByZXZhbGVudCByZXNvdXJjZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vMTI3LjAuMC4xIiwgdHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovLzEyNy4wLjAuMSIpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiMTI3LjAuMC4xIGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
IiNzdGVwNyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVw
OCI7CisgICAgICAgICAgICAgICAgLy8gVHJpZ2dlciBhIHB1cmdlLgorICAgICAgICAgICAgICAg
IGZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlckFuZENvbnRpbnVlKCk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDgiOgorICAgICAgICAgICAgICAgIC8v
IENoZWNrIHRoYXQgbG9jYWxob3N0J3MgY29va2llIGlzIHN0aWxsIHRoZXJlLgorICAgICAgICAg
ICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09IGZpcnN0UGFydHlDb29raWVOYW1lICsgIj0i
ICsgY29va2llVmFsdWUpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkZpcnN0LXBh
cnR5IGNvb2tpZSBwdXJnZWQuIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgICAgICB0ZXN0UGFzc2VkKCJHcmFuZGZhdGhlcmVkIGNvb2tpZSB3YXMgbm90IHB1cmdlZC4i
KTsKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3Vs
ZCBub3QgYmUgcmVhY2hlZC4iKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIgJiYg
d2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVu
bmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRy
dWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hv
dWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJl
Y29yZHNSZW1vdmFsKDApOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAg
ICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgIHJ1
blRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlCisgICAgICAgIHJ1blRlc3QoKTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11
c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgt
dXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg5Zjg1
NWE3ODljZjEwYmYzMzBmNGM5MmVhMTJiOTQxYWJlZmMwNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50
LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKK1BBU1MgQ29va2llIG5vdCBkZWxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJj
ZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgt
dXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5N2U4MGZkNjY0ZWUx
ZWE4MDM4ZDllODcyYzczOTU3MjkwZjUxMWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJj
ZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY1IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIE5vbi1QcmV2YWxlbnQgUmVzb3VyY2Ug
V2l0aCBVc2VyIEludGVyYWN0aW9uPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29u
c3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGlj
c1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IG90
aGVyUHJldmFsZW50VXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC90ZW1wIjsKKworICAgIGZ1
bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2ll
ICE9PSAiIikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBub3QgZW1w
dHkuIik7CisgICAgICAgIGNvbnN0IGNvb2tpZSA9ICJ0ZXN0Q29va2llPXRlc3RWYWx1ZSI7Cisg
ICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZSArICI7IG1heC1hZ2U9MTAwOyI7CisgICAg
ICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09IGNvb2tpZSkKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoImRvY3VtZW50LmNvb2tpZSBkaWQgbm90IGdldCBzZXQuIik7CisKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2Us
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKwor
ICAgICAgICAgICAgLy8gVGhpcyBpcyBkb25lIHRvIG5vdCBoYXZlIGFuIGVtcHR5IHNldCBvZiBw
cmV2YWxlbnQgcmVzb3VyY2VzLgorICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIGRhdGEgcmVjb3Jk
cyBhcmUgbmV2ZXIgc2Nhbm5lZC4KKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uob3RoZXJQcmV2YWxlbnRVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJPdGhlciBob3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24oc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3Rh
dGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRp
ZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2Fs
bGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQu
Y29va2llID09PSBjb29raWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3Nl
ZCgiQ29va2llIG5vdCBkZWxldGVkLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBkZWxldGVkIG9y
IGRvY3VtZW50LmNvb2tpZSBjb250YWlucyBvdGhlciBjb29raWVzOiAiICsgZG9jdW1lbnQuY29v
a2llKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3Vs
ZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVu
RGF0YVJlY29yZHNSZW1vdmFsKDApOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRv
Y3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5u
ZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERh
dGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQo
dHJ1ZSk7CisgICAgICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgICAgICB9KTsKKyAg
ICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNl
LXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNv
dXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmM4OWY4NTVhNzg5Y2YxMGJmMzMwZjRjOTJlYTEyYjk0MWFiZWZjMDcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIENvb2tpZSBub3QgZGVsZXRlZC4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1w
cmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZh
bGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42YmNlOTkwNDVmMGEzZWNjZGJhZDE4Nzg3ZWVkOGZmZjY2NTdmZjY1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNl
Lmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+
Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZv
ciBOb24tUHJldmFsZW50IFJlc291cmNlIFdpdGhvdXQgVXNlciBJbnRlcmFjdGlvbjwvdGl0bGU+
CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4x
OjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJU
ZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCBvdGhlclByZXZhbGVudFVybCA9ICJodHRwOi8vbG9j
YWxob3N0OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsK
KyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJkb2N1bWVudC5jb29raWUgbm90IGVtcHR5LiIpOworICAgICAgICBjb25zdCBjb29raWUg
PSAidGVzdENvb2tpZT10ZXN0VmFsdWUiOworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBjb29r
aWUgKyAiOyBtYXgtYWdlPTEwMDsiOworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSBj
b29raWUpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgZGlkIG5vdCBn
ZXQgc2V0LiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwp
KQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5v
bi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgZG9uZSB0
byBub3QgaGF2ZSBhbiBlbXB0eSBzZXQgb2YgcHJldmFsZW50IHJlc291cmNlcy4KKyAgICAgICAg
ICAgIC8vIE90aGVyd2lzZSBkYXRhIHJlY29yZHMgYXJlIG5ldmVyIHNjYW5uZWQuCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZh
bGVudFVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsKSkKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3RoZXIgaG9zdCBkaWQgbm90IGdldCBzZXQg
YXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGVhcmVkIG9mIHVzZXIgaW50
ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3Rh
dGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSA9PT0gY29va2llKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvb2tpZSBub3QgZGVsZXRlZC4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJDb29raWUgZGVsZXRlZCBvciBkb2N1bWVudC5jb29raWUgY29udGFpbnMgb3Ro
ZXIgY29va2llczogIiArIGRvY3VtZW50LmNvb2tpZSk7CisKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFS
ZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmRE
YXRhUmVjb3JkcygpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0
VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdl
c1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAgcnVuVGVzdFJ1
bm5lclRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhp
cmQtcGFydHktY29udGV4dC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2Fu
LWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMGZiOTdmOTFmY2QzM2NjOTc4OTc5Y2Q0OGE1NWE0OTQ3NGQyNzcx
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4t
YS10aGlyZC1wYXJ0eS1jb250ZXh0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEx
IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwor
CistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNl
aXZlIG9uZSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUn
LgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFy
dHktY29udGV4dC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2ll
cy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjRj
ZmNiMWYzZTM3MjBmY2EyMjNjNDJkODc4YzI1YTk2NjIyOWJmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxl
bnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQt
ZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxh
bmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+
VGVzdCB0byBlbnN1cmUgbm9uLXByZXZhbGVudCByZXNvdXJjZXMgY2FuIGFjY2VzcyB0aGVpciBj
b29raWVzIGluIGEgdGhpcmQgcGFydHkgY29udGV4dDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9
Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
PgorICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0
IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCB0
aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJz
dFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0g
Ii9zZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9
dmFsdWUiOworICAgIGNvbnN0IGZyYWdtZW50V2l0aFJldHVyblVybCA9ICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlcy1j
YW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0Lmh0bWwiOworICAgIGNv
bnN0IHN1YlBhdGhUb0dldENvb2tpZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmly
c3RQYXJ0eUNvb2tpZU5hbWU7CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBv
cGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0g
dXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5v
bmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
KyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBj
YXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgIC8vIFNldCBhIGZpcnN0LXBhcnR5IGNvb2tp
ZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYg
PSB0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIg
KyBmcmFnbWVudFdpdGhSZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgLy8gTG9hZCBs
b2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIGFuZCBjaGVjayB0aGF0IGl0IGdldHMgaXRzIGNvb2tp
ZS4KKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0
aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBvbmUgY29va2llLiIsIGZp
bmlzaFRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisg
ICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IHBhcnRpdGlvbkhvc3QgJiYgZG9jdW1l
bnQubG9jYXRpb24uaGFzaCA9PSAiIiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7Cisg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB0ZXN0UnVubmVyLmR1
bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGly
ZFBhcnR5T3JpZ2luLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEiOworICAgICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBydW5UZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8t
aXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2M2M3MjAyYjAzZTc3MGQ2ZTQ0
NmZiNmYzNDAwZmIzOGM1OWY1MzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBn
ZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRw
Oi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9z
dCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDov
L2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9j
YWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9j
YWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjViZGE2ZjlmMWJjZWJmNDg5
NDU1YmVjZTQ4NWY1Y2VjZDFmNjA5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU0IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0
aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQg
Y291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAg
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZh
bHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAg
IHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIg
c3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2Uo
ZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFT
UyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJl
cGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2lu
OiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hh
aW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAg
ICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xv
Y2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1
ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRw
Oi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxk
QmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8o
Imh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAg
IHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0
Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NE
aWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVk
aXJlY3QucGhwP3JlZGlyZWN0VG89aHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAu
MC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvaWZyYW1lLXJlcG9ydC1i
YWNrLWxvYWRlZC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1s
b2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2M2M3MjAyYjAzZTc3
MGQ2ZTQ0NmZiNmYzNDAwZmIzOGM1OWY1MzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRi
b3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJh
bWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQor
UEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0
dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAu
MC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGly
ZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGI1ZWU5OTM3MDQxMDUyZGMyNmU4ZjZhNTg2OWEyMjEzMjAwM2EzMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxo
b3N0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVj
dHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7Cisg
ICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rp
b24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0
Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOwor
CisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBp
ZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikgeworICAgICAgICAg
ICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7Cisg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBh
IG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisK
KyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAg
ICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05v
dGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRz
KCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1Jl
Z2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4w
LjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8v
MTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0
dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOwor
ICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAg
ICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVy
KSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dl
cmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRp
c3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUg
c3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMvcmVkaXJlY3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHAvP3JlZGlyZWN0VG89aHR0cDov
L2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2lmcmFtZS1y
ZXBvcnQtYmFjay1sb2FkZWQuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVk
aXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5l
c3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9j
YWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjUxNmYxMzJm
OWZiMTAxMzY4MjI2M2M2ZjJjODEwYjdmYWY5ZDhmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVz
dGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2Nh
bGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3Rz
IHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5v
bi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlz
IHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGlu
Z1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNT
IHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDov
LzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3Rp
bmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxo
b3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjJkOWNhNTkwMWRiODBlMGRkMDJjMjA1MjAzM2MxNTdkZGQzNmUzMWQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAg
KzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAg
ZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZy
YW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5
LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAg
IGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5S
ZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBm
YWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAg
ICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAi
IikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVj
ZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmln
aW4pOworCisgICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7
CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRl
c3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hl
Y2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6
Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAi
aHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAu
MSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0g
dHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAg
ICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVz
dFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJl
Y29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3Rh
bGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cmVzb3VyY2VzL3BhZ2Utd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1s
b2NhbGhvc3QtdG8taXAuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24t
c2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hl
ZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2Fs
aG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjliNTE2ZjEzMmY5ZmIxMDEzNjgyMjYzYzZmMmM4MTBiN2ZhZjlkOGYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNh
bmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZy
YW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0
cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdp
c3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4w
LjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVk
aXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVk
aXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVz
dGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3Qt
dG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFlMzNmNjY3ZGEz
NTlmM2E4MmJmM2MwYzMxMGQzNGVjMzc1YjM0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3Rp
bmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRv
LWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRp
bC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3Rz
IHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5v
bi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3Nh
Z2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRl
c3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVk
ID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBm
dW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9y
aWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAo
ZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZy
b20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAgICAg
ICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAo
c3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZl
cigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAg
ICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNT
dWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOwor
ICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVy
ZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIp
Jyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVn
aXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxo
b3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAg
IGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBmaW5p
c2hUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0
cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2Nh
bkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDov
LzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0
aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxo
b3N0Lmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1u
ZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxo
b3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgt
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQxNmU2MWZkMDE1ZmQ3YWUz
Y2I4NjZiNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRi
b3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5k
Ym94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVk
IHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhv
c3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6
Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0
IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3Rp
bmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3Qt
dG8taXAtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzM4ZWEzYjU5YTBhNzA3NDNkMzQ1ZGYw
NTJlYTYyOWQyZjZiOTNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0
aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFz
ZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNh
bmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50
ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7
CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIg
bGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRz
Q2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50
KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAibnVsbCIpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOwor
ICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQg
YSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOwor
CisgICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAg
ICAgICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NO
b3RpZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0
cygpIHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NS
ZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcu
MC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDov
LzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJo
dHRwOi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsK
KyAgICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAg
ICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5l
cikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAg
ICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNX
ZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0
aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1l
IHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3Vy
Y2VzL3BhZ2Utd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10
by1pcC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQt
bmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10
by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2Nh
bGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQx
NmU2MWZkMDE1ZmQ3YWUzY2I4NjZiNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlm
cmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxv
Y2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhh
dCByZWRpcmVjdHMgZm9yIGEgc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJv
eGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFt
ZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQ
QVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0
cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4w
LjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFt
ZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2Fs
aG9zdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41N2ZhZjAwYThmZDcyZjE0NGVhYWVlZTRhN2QyZDBjYjQ5YjhkOTk1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAg
IGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQgaWZyYW1l
IG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIp
OworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1
bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRp
cmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxz
ZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAg
ICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gIm51bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2
ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9t
IGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAg
bGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0
YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIo
KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAg
ICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3Vi
RnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAg
ICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVk
QXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScp
OworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lz
dGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9z
dCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBp
ZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNo
VGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1
ZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5E
YXRhUmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9wYWdlLXdpdGgt
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0Lmh0
bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1wcmV2YWxlbnQtcmVz
b3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDliZmI5MGNjMWFjNWY5MzE1ZGRmMDljZDRiOTMxYzk4
Yjc0N2VmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDI0IEBACitUZXN0cyB0aGF0IGNvb2tpZSBibG9ja2luZyBpcyBh
cHBsaWVkIHRvIHBpbmcgbG9hZHMuCisgICAKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1l
MS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitSZWNl
aXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1l
bnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCisKKy0tLS0tLS0tCitGcmFtZTogJzwh
LS1mcmFtZTItLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBu
b3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUg
ZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUzLS0+JworLS0t
LS0tLS0KK1BpbmcgcmVjZWl2ZWQuCitIVFRQX0hPU1Q6IGxvY2FsaG9zdDo4MDAwCitSRVFVRVNU
X1VSSTogL2NvbnRlbnRleHRlbnNpb25zL3Jlc291cmNlcy9zYXZlLXBpbmcucGhwP3Rlc3Q9cGlu
Zy10by1wcmV2YWxlbnQtcmVzb3VyY2UKK05vIGNvb2tpZXMgaW4gcGluZy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXBy
ZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uN2U4ZmExMWQ5NzMxMzBkYzhiMTllMjgyODgyYTFkMzQ4YWY5ZjM5
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsOTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlv
biI+VGVzdHMgdGhhdCBjb29raWUgYmxvY2tpbmcgaXMgYXBwbGllZCB0byBwaW5nIGxvYWRzLjwv
ZGl2PgorPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9IiMiIHBpbmc9Imh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9jb250ZW50ZXh0ZW5zaW9ucy9yZXNvdXJjZXMvc2F2ZS1waW5nLnBocD90ZXN0PXBpbmct
dG8tcHJldmFsZW50LXJlc291cmNlIj5UaGUgbGluazwvYT4KKzxzY3JpcHQ+CisgICAgaWYgKHRl
c3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgY29u
c3QgcGFydGl0aW9uSG9zdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0
eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHJlc291cmNlUGF0
aCA9ICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0IHRoaXJk
UGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0eU9yaWdpbiArIHJlc291cmNlUGF0aDsKKyAgICBjb25z
dCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBz
dWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBm
aXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHJldHVyblVy
bCA9ICJodHRwOi8vIiArIHBhcnRpdGlvbkhvc3QgKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0
Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFt
ZTsKKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQsIGNhbGxiYWNrKSB7
CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElE
KTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9m
ZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCAr
IGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChj
ZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAg
ICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICAgICAgfQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUodXJs
LCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAg
IGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9h
ZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChl
bGVtZW50KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0
Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6
CisgICAgICAgICAgICAgICAgLy8gU2V0IGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0
LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFz
ZVVybCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyByZXR1cm5VcmwgKyAi
I3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVw
MiI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgY29va2llIGdldHMgc2VudCBm
b3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMSBzaW5jZSBsb2NhbGhvc3QgaXMgbm90IHByZXZh
bGVudC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsK
KyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRv
R2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUu
IiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIj
c3RlcDMiOgorICAgICAgICAgICAgICAgIC8vIFNldCBsb2NhbGhvc3QgYXMgcHJldmFsZW50IHRv
IHB1dCBpdCBpbiB0aGUgYmxvY2tpbmcgY2F0ZWdvcnkuCisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA0IjsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAg
ICAgICAgLy8gQ2hlY2sgdGhhdCBubyBjb29raWUgZ2V0cyBzZW50IGZvciBsb2NhbGhvc3QgdW5k
ZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCdzIGNvb2tpZXMgYXJlIGJsb2NrZWQuCisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNSI7CisgICAgICAgICAg
ICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMg
KyAgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwgcnVuVGVzdCk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDUiOgorICAgICAgICAg
ICAgICAgIC8vIENsaWNrIHRoZSBsaW5rIHRvIHRyaWdnZXIgdGhlIHBpbmcuCisgICAgICAgICAg
ICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIiwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eU9yaWdpbiArICIvY29udGVudGV4dGVu
c2lvbnMvcmVzb3VyY2VzL2dldC1waW5nLWRhdGEucGhwP3Rlc3Q9cGluZy10by1wcmV2YWxlbnQt
cmVzb3VyY2UiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaCgiL2NvbnRlbnRleHRlbnNp
b25zL3Jlc291cmNlcy9kZWxldGUtcGluZy5waHA/dGVzdD1waW5nLXRvLXByZXZhbGVudC1yZXNv
dXJjZSIpLnRoZW4oKCk9PnsgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7IH0pOworICAgICAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAg
aWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiKSB7CisgICAgICAgIGlmICh0ZXN0UnVu
bmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOwor
ICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgICAgICBy
dW5UZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAg
ICAgIHJ1blRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2
YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVz
b3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
NGUzMmM1OTNkZTEwZDU3NzM3MTAxMzU3MWRkMzQ4ZjUzODUxOTZkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVu
dC1yZXNvdXJjZS1oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTIgQEAKK1Rlc3RzIHRoYXQgd2UgZ3JhbnQgVXNlciBJbnRlcmFjdGlvbiBjcmVkaXQgZm9y
IGhhbmRsZWQga2V5cHJlc3Nlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Np
bXVsYXRlIHVzZXIgdHlwaW5nIGxldHRlciAnYScgaW50byB0aGUgZmllbGQuCitQQVNTIHRlc3RJ
bnB1dC52YWx1ZSBpcyAiYSIKK1BBU1MgT3JpZ2luIHdhcyBncmFudGVkIHVzZXIgaW50ZXJhY3Rp
b24uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291
cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlNTZhNTBjY2M4
NGY4MGExNzVkZjQ2N2ZmNzg4OTRjZTdiNTE5ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNl
LWhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
d2UgZ3JhbnQgVXNlciBJbnRlcmFjdGlvbiBjcmVkaXQgZm9yIGhhbmRsZWQga2V5cHJlc3Nlcy4i
KTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC90ZW1wIjsKKworb25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgdGVzdEZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIpOworCisg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgaW50ZXJuYWxzLnNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUp
OworICAgIH0KKworICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAoIXRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsZWFy
ZWQgb2YgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgdGVzdElucHV0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RJbnB1dCIpOworCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRlc3RJbnB1dC52
YWx1ZSIsICJhIik7CisKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJPcmlnaW4gZGlkIG5vdCBnZXQgdXNlciBpbnRlcmFjdGlvbiBjcmVk
aXQuIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJPcmlnaW4gd2FzIGdyYW50ZWQgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAg
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RG
cmFtZS5zcmMgPSAiYWJvdXQ6YmxhbmsiOworICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xh
c3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNS
ZW1vdmFsKDApOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRp
c3RpY3NBbmREYXRhUmVjb3JkcygpOworCisgICAgICAgICAgICBkZWJ1ZygiU2ltdWxhdGUgdXNl
ciB0eXBpbmcgbGV0dGVyICdhJyBpbnRvIHRoZSBmaWVsZC4iKTsKKyAgICAgICAgICAgIHRlc3RJ
bnB1dC5mb2N1cygpOworICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAg
ICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJhIik7CisgICAgICAgIH0pOworICAgIH0p
OworfQorPC9zY3JpcHQ+Cis8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUiIHNyYz0icmVzb3VyY2VzL29u
Y2xpY2suaHRtbCI+PC9pZnJhbWU+Cis8aW5wdXQgaWQ9InRlc3RJbnB1dCIgdHlwZT0idGV4dCI+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3du
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2ZTU1OWJmYTJkZDI0NjE2Nzk4OWIyNWFiODIz
OWM0NTZiMTY0YjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3du
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyB0aGF0IHdlIGRv
IG5vdCBncmFudCBVc2VyIEludGVyYWN0aW9uIGNyZWRpdCBmb3IgdW5oYW5kbGVkIGtleXByZXNz
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU2ltdWxhdGUgYW4gdW5oYW5kbGVk
IHVzZXIga2V5IHByZXNzLgorUEFTUyBPcmlnaW4gZGlkIG5vdCBnZXQgdXNlciBpbnRlcmFjdGlv
biBjcmVkaXQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVu
dC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVh
Y2RlYjI4ZTRjY2I3MTI4MjUzMjE3YmE4ODE5ZWE3ZWE2ZmIyZmQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50
LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigi
VGVzdHMgdGhhdCB3ZSBkbyBub3QgZ3JhbnQgVXNlciBJbnRlcmFjdGlvbiBjcmVkaXQgZm9yIHVu
aGFuZGxlZCBrZXlwcmVzcy4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitjb25zdCBzdGF0
aXN0aWNzVXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC90ZW1wIjsKKworb25sb2FkID0gZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgdGVzdEZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRlc3RGcmFtZSIpOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAg
ICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwor
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jk
c1dlcmVTY2FubmVkKHRydWUpOworICAgIH0KKworICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlz
dGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0
IGRpZCBub3QgZ2V0IGNsZWFyZWQgb2YgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJh
Y2soZnVuY3Rpb24oKSB7CisKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAg
ICAgICAgICB0ZXN0UGFzc2VkKCJPcmlnaW4gZGlkIG5vdCBnZXQgdXNlciBpbnRlcmFjdGlvbiBj
cmVkaXQuIik7CisKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICB0ZXN0RnJhbWUuc3JjID0gImFib3V0OmJsYW5rIjsKKyAgICAgICAg
ICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAg
ICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1v
dmFsKGZhbHNlKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1U
aW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKworICAgICAgICAg
ICAgZGVidWcoIlNpbXVsYXRlIGFuIHVuaGFuZGxlZCB1c2VyIGtleSBwcmVzcy4iKTsKKyAgICAg
ICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgZXZlbnRTZW5k
ZXIua2V5RG93bigiYSIsIFsibWV0YUtleSJdKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9Cis8
L3NjcmlwdD4KKzxpZnJhbWUgaWQ9InRlc3RGcmFtZSIgc3JjPSJyZXNvdXJjZXMvb25jbGljay5o
dG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0
aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11
c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODlmODU1
YTc4OWNmMTBiZjMzMGY0YzkyZWExMmI5NDFhYmVmYzA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNv
dXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CitQQVNTIENvb2tpZSBub3QgZGVsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVz
ZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0
aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWMxM2E1MDI3NGM2ZGQ5NGJmZThhMTY0NTlj
NGNiYWI4YTkwZTkwYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVy
YWN0aW9uLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAg
PHRpdGxlPlRlc3RzIGZvciBQcmV2YWxlbnQgUmVzb3VyY2UgV2l0aCBVc2VyIEludGVyYWN0aW9u
PC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3NldFVwQW5kUnVuKCknLCAwKSI+
Cis8c2NyaXB0PgorICAgIGlmICh0ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAi
OworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsg
Ii90ZW1wIjsKKyAgICBjb25zdCBvdGhlclByZXZhbGVudFVybCA9ICJodHRwOi8vbG9jYWxob3N0
OjgwMDAvdGVtcCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAg
IGlmIChkb2N1bWVudC5jb29raWUgIT09ICIiKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9j
dW1lbnQuY29va2llIG5vdCBlbXB0eS4iKTsKKyAgICAgICAgY29uc3QgY29va2llID0gInRlc3RD
b29raWU9dGVzdFZhbHVlIjsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gY29va2llICsgIjsg
bWF4LWFnZT0xMDA7IjsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gY29va2llKQor
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIGRpZCBub3QgZ2V0IHNldC4i
KTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgZG9uZSB0byBub3QgaGF2ZSBh
biBlbXB0eSBzZXQgb2YgcHJldmFsZW50IHJlc291cmNlcy4KKyAgICAgICAgICAgIC8vIE90aGVy
d2lzZSBkYXRhIHJlY29yZHMgYXJlIG5ldmVyIHNjYW5uZWQuCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZhbGVudFVybCwgdHJ1
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsKSkKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiT3RoZXIgaG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
SGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7
CisKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZE1v
ZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoZG9jdW1lbnQuY29va2llID09PSBjb29raWUpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiQ29va2llIG5vdCBkZWxldGVkLiIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
IkNvb2tpZSBkZWxldGVkIG9yIGRvY3VtZW50LmNvb2tpZSBjb250YWlucyBvdGhlciBjb29raWVz
OiAiICsgZG9jdW1lbnQuY29va2llKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3Zh
bChmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01p
bmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3Jkcygp
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHNldFVwQW5kUnVuKCkgeworICAgICAgICBpZiAoZG9jdW1lbnQu
bG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3
aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFi
YXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiV3JvbmcgaG9zdCwg
bm8gdGVzdFJ1bm5lciwgb3Igbm8gaW50ZXJuYWxzLiIpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQt
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGlt
ZW91dC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc4MDllOTFjMjNjMjNhMjM2
OWNkMDg1NGViMTgxNjQ3ZGZhZWI0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11
c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQ
QVNTIENvb2tpZSBkZWxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRl
cmFjdGlvbi10aW1lb3V0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFj
dGlvbi10aW1lb3V0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjIwODk3MDVkMjc4ZWFhMjIx
MjY4NTZkMWQ2ZDA5OWE1OWEwYTdiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11
c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU3IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIFByZXZhbGVudCBSZXNvdXJjZSBXaXRo
IFVzZXIgSW50ZXJhY3Rpb24gVGltZW91dDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBj
b25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7
CisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVu
dC5jb29raWUgIT09ICIiKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2ll
IG5vdCBlbXB0eS4iKTsKKyAgICAgICAgY29uc3QgY29va2llID0gInRlc3RDb29raWU9dGVzdFZh
bHVlIjsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gY29va2llICsgIjsgbWF4LWFnZT0xMDA7
IjsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gY29va2llKQorICAgICAgICAgICAg
dGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIGRpZCBub3QgZ2V0IHNldC4iKTsKKworICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJs
LCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbihzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0
IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSAiIikK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBub3QgZGVsZXRlZDog
IiArIGRvY3VtZW50LmNvb2tpZSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvb2tpZSBkZWxldGVkLiIpOworICAgICAgICAg
ICAgICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFs
c2UpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29u
c2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENs
YXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVj
b3Jkc1JlbW92YWwoMCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
VGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbigwKTsKKworICAgICAgICAgICAgICAgIC8vIFRoaXMg
aXMgdG8gZW5zdXJlIHRoZSB0aW1lb3V0IHdlJ3JlIHRlc3RpbmcuCisgICAgICAgICAgICAgICAg
c2V0VGltZW91dCgidGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRh
UmVjb3JkcygpIiwgMTAwMCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQor
CisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2lu
ZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVy
LnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVk
KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5E
YXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgp
OworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJj
ZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJj
ZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY3ODA5ZTkxYzIzYzIzYTIzNjljZDA4NTRlYjE4MTY0N2RmYWViNDMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJl
dmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKK1BBU1MgQ29va2llIGRlbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3Vy
Y2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhv
dXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3YjBiMmFhZTMw
ODRkNGM0N2Q5ZWM5ZjdjZTMyZmU0ZDQwYjljNGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNl
LXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTkgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hh
cnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgUHJldmFsZW50IFJlc291cmNlIFdp
dGhvdXQgVXNlciBJbnRlcmFjdGlvbjwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25z
dCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisK
KyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0ICgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tp
ZSAhPT0gIiIpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgbm90IGRlbGV0ZWQ6ICIg
KyBkb2N1bWVudC5jb29raWUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2Vk
KCJDb29raWUgZGVsZXRlZC4iKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVz
ZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0
UnVubmVyVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgbm90IGVtcHR5LiIpOworICAgICAg
ICBjb25zdCBjb29raWUgPSAidGVzdENvb2tpZT10ZXN0VmFsdWUiOworICAgICAgICBkb2N1bWVu
dC5jb29raWUgPSBjb29raWUgKyAiOyBtYXgtYWdlPTEwMDsiOworICAgICAgICBpZiAoZG9jdW1l
bnQuY29va2llICE9PSBjb29raWUpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5j
b29raWUgZGlkIG5vdCBnZXQgc2V0LiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5v
dCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZh
bHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xlYXJlZCBvZiB1c2VyIGludGVy
YWN0aW9uLiIpOworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGlj
c0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIHNldFRpbWVvdXQoImZpbmlzaFRlc3QoKSIsIDEwMDApOworICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNz
aWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jk
c1JlbW92YWwoMCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vz
c1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0p
OworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJU
ZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJ
VFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5
UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1
bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1z
dGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lNzQ3NTdiYzUyNTYwMDUyMWQ0NjE1NDVkMDM2N2MwZjA1MDFiZWYz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3BydW5lLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTcgQEAKK1Rlc3RzIHRoYXQgc3RhdGlzdGljcyBhcmUgcHJ1bmVkIGluIHRoZSByaWdodCBv
cmRlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGVzdCBpdGVyYXRp
b24gMSBwYXNzZWQuCitQQVNTIFRlc3QgaXRlcmF0aW9uIDIgcGFzc2VkLgorUEFTUyBUZXN0IGl0
ZXJhdGlvbiAzIHBhc3NlZC4KK1BBU1MgVGVzdCBpdGVyYXRpb24gNCBwYXNzZWQuCitQQVNTIFRl
c3QgaXRlcmF0aW9uIDUgcGFzc2VkLgorUEFTUyBUZXN0IGl0ZXJhdGlvbiA2IHBhc3NlZC4KK1BB
U1MgVGVzdCBpdGVyYXRpb24gNyBwYXNzZWQuCitQQVNTIFRlc3QgaXRlcmF0aW9uIDggcGFzc2Vk
LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9w
cnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjBjYWI3ZDM5MTcxZDAzZjQ3YjQxOWQyYWRiMGNhMTM4YWRmNzhlYjkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTYzIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAg
IDx0aXRsZT5UZXN0IGZvciBSZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3MgUHJ1bmluZzwvdGl0bGU+
CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhh
dCBzdGF0aXN0aWNzIGFyZSBwcnVuZWQgaW4gdGhlIHJpZ2h0IG9yZGVyLiIpOworICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3Qgb2xkZXJUaW1lc3RhbXAgPSBNYXRoLnJvdW5k
KChuZXcgRGF0ZSgpKS5nZXRUaW1lKCkgLyAxMDAwKTsKKyAgICBjb25zdCBuZXdlclRpbWVzdGFt
cCA9IG9sZGVyVGltZXN0YW1wICsgMTA7CisgICAgY29uc3QgbmV3ZXN0VGltZXN0YW1wID0gbmV3
ZXJUaW1lc3RhbXAgKyAxMDsKKworICAgIGNvbnN0IHVybHNUb0JlUHJ1bmVkID0gWworICAgICAg
ICB7IHVybDogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC90ZW1wIiwgcHJldmFsZW50OiBmYWxzZSB9
LAorICAgICAgICB7IHVybDogImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIiwgcHJldmFsZW50
OiBmYWxzZSB9LAorICAgICAgICB7IHVybDogImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIiwg
cHJldmFsZW50OiB0cnVlIH0sCisgICAgICAgIHsgdXJsOiAiaHR0cDovLzEyNy4wLjAuNDo4MDAw
L3RlbXAiLCBwcmV2YWxlbnQ6IHRydWUgfSwKKyAgICAgICAgeyB1cmw6ICJodHRwOi8vMTI3LjAu
MC41OjgwMDAvdGVtcCIsIHByZXZhbGVudDogZmFsc2UgfSwKKyAgICAgICAgeyB1cmw6ICJodHRw
Oi8vMTI3LjAuMC42OjgwMDAvdGVtcCIsIHByZXZhbGVudDogZmFsc2UgfSwKKyAgICAgICAgeyB1
cmw6ICJodHRwOi8vMTI3LjAuMC43OjgwMDAvdGVtcCIsIHByZXZhbGVudDogdHJ1ZSB9LAorICAg
ICAgICB7IHVybDogImh0dHA6Ly8xMjcuMC4wLjg6ODAwMC90ZW1wIiwgcHJldmFsZW50OiB0cnVl
IH0KKyAgICBdOworCisgICAgZnVuY3Rpb24gY2hlY2tJZlByZXZhbGVudEFjY29yZGluZ1RvSW5p
dGlhbEV4cGVjdGF0aW9uKGJlZ2luLCBlbmQpIHsKKyAgICAgICAgdmFyIGZhaWxlZCA9IGZhbHNl
OworICAgICAgICBmb3IgKHZhciBpID0gYmVnaW47IGkgPCBlbmQ7ICsraSkgeworICAgICAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsc1RvQmVQ
cnVuZWRbaV0udXJsKSAhPT0gdXJsc1RvQmVQcnVuZWRbaV0ucHJldmFsZW50KSB7CisgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiY2hlY2tJZlByZXZhbGVudEFjY29yZGluZ1RvSW5pdGlhbEV4
cGVjdGF0aW9uOiBUZXN0IGl0ZXJhdGlvbiAiICsgY3VycmVudFRlc3QgKyAiIGZhaWxlZC4gIiAr
IHVybHNUb0JlUHJ1bmVkW2ldLnVybCArICh1cmxzVG9CZVBydW5lZFtpXS5wcmV2YWxlbnQgPyAi
IHdhc24ndCAiIDogIiB3YXMgIikgKyAicHJldmFsZW50Iik7CisgICAgICAgICAgICAgICAgZmFp
bGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoZmFpbGVk
KSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0
YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBjaGVja0lmUHJldmFs
ZW50KGJlZ2luLCBlbmQsIGV4cGVjdGVkKSB7CisgICAgICAgIHZhciBmYWlsZWQgPSBmYWxzZTsK
KyAgICAgICAgZm9yICh2YXIgaSA9IGJlZ2luOyBpIDwgZW5kOyArK2kpIHsKKyAgICAgICAgICAg
IGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1
bmVkW2ldLnVybCkgIT09IGV4cGVjdGVkKSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
Y2hlY2tJZlByZXZhbGVudDogVGVzdCBpdGVyYXRpb24gIiArIGN1cnJlbnRUZXN0ICsgIiBmYWls
ZWQuICIgKyB1cmxzVG9CZVBydW5lZFtpXS51cmwgKyAoZXhwZWN0ZWQgPyAiIHdhc24ndCAiIDog
IiB3YXMgIikgKyAicHJldmFsZW50Iik7CisgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoZmFpbGVkKSB7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1
blRlc3RzKHN0ZXApIHsKKyAgICAgICAgc3dpdGNoIChzdGVwKSB7CisgICAgICAgICAgICAvLyBO
b24tcHJldmFsZW50IHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbiB0byBiZSBwcnVuZWQgZmlyc3Qu
CisgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbMF0udXJsLCBvbGRlclRpbWVzdGFtcCwgZnVu
Y3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMik7IH0pOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVkWzFdLnVybCwgbmV3
ZXJUaW1lc3RhbXAsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3Rz
KDMpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8vIFByZXZhbGVu
dCB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIHNlY29uZC4KKyAgICAgICAg
ICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZSh1cmxzVG9CZVBydW5lZFsyXS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBp
bml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDQpOyB9KTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFsyXS51cmwsIG9sZGVyVGltZXN0YW1w
LCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyg1KTsgfSk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsc1RvQmVQcnVu
ZWRbM10udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5U
ZXN0cyg2KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDY6
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1Rv
QmVQcnVuZWRbM10udXJsLCBuZXdlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVT
dGF0aXN0aWNzQW5kUnVuVGVzdHMoNyk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgLy8gTm9uLXByZXZhbGVudCB3aXRoIHVzZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1
bmVkIHRoaXJkLgorICAgICAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih1cmxzVG9CZVBydW5lZFs0XS51
cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDgp
OyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgODoKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5l
ZFs0XS51cmwsIG9sZGVyVGltZXN0YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3Rp
Y3NBbmRSdW5UZXN0cyg5KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIDk6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHVybHNUb0JlUHJ1bmVkWzVdLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7
IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTApOyB9KTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTA6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbNV0udXJsLCBuZXdlclRpbWVz
dGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTEpOyB9
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8vIFByZXZhbGVudCB3aXRo
IHVzZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIGxhc3QuCisgICAgICAgICAgICBjYXNlIDEx
OgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHVybHNUb0JlUHJ1bmVkWzZdLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVT
dGF0aXN0aWNzQW5kUnVuVGVzdHMoMTIpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgMTI6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHVybHNUb0JlUHJ1bmVkWzZdLnVybCwgdHJ1ZSwgZnVu
Y3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTMpOyB9KTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTM6CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbNl0udXJsLCBv
bGRlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVz
dHMoMTQpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTQ6
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UodXJsc1RvQmVQcnVuZWRbN10udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0
YXRpc3RpY3NBbmRSdW5UZXN0cygxNSk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSAxNToKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odXJsc1RvQmVQcnVuZWRbN10udXJsLCB0cnVlLCBmdW5j
dGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxNik7IH0pOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxNjoKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFs3XS51cmwsIG5l
d2VyVGltZXN0YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0
cygxNyk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxNzoK
KyAgICAgICAgICAgICAgICBjaGVja0lmUHJldmFsZW50QWNjb3JkaW5nVG9Jbml0aWFsRXhwZWN0
YXRpb24oMCwgdXJsc1RvQmVQcnVuZWQubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBydW5UZXN0
KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2YXIg
Y3VycmVudFRlc3Q7CisgICAgZnVuY3Rpb24gY2hlY2tTdGF0aXN0aWNzQWZ0ZXJQcnVuaW5nKCkg
eworICAgICAgICAvLyBQcnVuZWQgZW50cmllcyBzaG91bGQgbm90IGJlIHByZXZhbGVudC4KKyAg
ICAgICAgY2hlY2tJZlByZXZhbGVudCgwLCBjdXJyZW50VGVzdCwgZmFsc2UpOworICAgICAgICAv
LyBOb24tcHJ1bmVkIGVudHJpZXMgc2hvdWxkIGtlZXAgdGhlaXIgZXhwZWN0ZWQgc3RhdHVzLgor
ICAgICAgICBjaGVja0lmUHJldmFsZW50QWNjb3JkaW5nVG9Jbml0aWFsRXhwZWN0YXRpb24oY3Vy
cmVudFRlc3QsIHVybHNUb0JlUHJ1bmVkLmxlbmd0aCk7CisgICAgICAgIHRlc3RQYXNzZWQoIlRl
c3QgaXRlcmF0aW9uICIgKyBjdXJyZW50VGVzdCArICIgcGFzc2VkLiIpOworICAgICAgICBpZiAo
Y3VycmVudFRlc3QgPCB1cmxzVG9CZVBydW5lZC5sZW5ndGgpIHsKKyAgICAgICAgICAgICsrY3Vy
cmVudFRlc3Q7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2Nh
bkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0aXN0aWNzQWZ0ZXJQcnVuaW5nKTsKKyAgICAg
ICAgICAgIGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMSk7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0
YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgZmlsbGVyVXJsOworICAgIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGZpbGxlclVybCA9ICJodHRwOi8vMTI3LjAuIiAr
IGN1cnJlbnRUZXN0ICsgIi4xOjgwMDAvdGVtcCI7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKGZpbGxlclVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24o
ZmlsbGVyVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NMYXN0U2VlbihmaWxsZXJVcmwsIG5ld2VzdFRpbWVzdGFtcCwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NT
dGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3Jl
RGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVk
KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNYXhTdGF0aXN0aWNzRW50
cmllcyh1cmxzVG9CZVBydW5lZC5sZW5ndGgpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NQcnVuZUVudHJpZXNEb3duVG8odXJsc1RvQmVQcnVuZWQubGVuZ3RoKTsKKworICAgICAg
ICBjdXJyZW50VGVzdCA9IDE7CisgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NE
aWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRpc3RpY3NBZnRlclBydW5pbmcpOwor
ICAgICAgICBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDEpOworICAgIH0KKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8t
bG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlw
LXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdj
MTQzOGIxODY0MDY0MmFhMTZmYzA2YjY5ZDg0MWZkZjNiZjE2ZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIHNhbmRib3hlZCBp
ZnJhbWVzIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5k
ZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1Mg
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8v
bG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIs
ICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRv
LWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9j
YWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjY3MTEyMDUwNjgxODM5MWNh
OTY3ZmYyNGZmZmMwNThjOTIxOWY0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24o
IlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBzYW5kYm94ZWQgaWZyYW1lcyBnZXQgY291bnRlZCBw
cm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKwor
ICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0
UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUp
OworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVj
b3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFs
bFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENo
YWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKwor
ICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYg
KGV2ZW50Lm9yaWdpbiA9PT0gIm51bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRh
dGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVu
ZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBh
Z2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hl
Y2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBz
aG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVV
bmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRp
cmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7
CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFz
dFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgp
OworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2Fu
ZGJveD0iYWxsb3ctc2NyaXB0cyIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5w
aHAvP3JlZGlyZWN0VG89aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcmVzb3VyY2VzL2lmcmFtZS1yZXBvcnQtYmFjay1sb2FkZWQuaHRtbCI+Cis8L2lmcmFtZT4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10
by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3Qt
bG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjdjMTQzOGIxODY0MDY0MmFhMTZmYzA2YjY5ZDg0MWZkZjNiZjE2ZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3Rz
IGZvciBzYW5kYm94ZWQgaWZyYW1lcyBnZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3Rl
cmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEi
KSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJl
Y3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQor
UEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0
dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjAyNmJkOWMwYzIxMmI3ZTVmMTY0OWI1OTNiOTc4ODNjZjMxNDhmYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhv
c3QtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0
cyBmb3Igc2FuZGJveGVkIGlmcmFtZXMgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAg
IGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigi
bWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmlu
aXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpT
VGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVl
KTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRh
dGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOwor
ICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVj
ZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJu
dWxsIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9
PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNl
KCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiAr
IGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9h
ZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAg
ICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhv
c3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xv
Y2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1
ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRw
Oi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0
c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWlu
TG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMi
IHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3Vy
Y2VzL3JlZGlyZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9pZnJhbWUt
cmVwb3J0LWJhY2stbG9hZGVkLmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1p
ZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3Qt
dG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzNjU4Y2QzNDNmNTU2ZTBj
MzQ0NzVlZjllZjQ1YzYyMGQ0ZDQyN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1l
LXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlw
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGly
ZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBzYW5kYm94ZWQgaWZy
YW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIo
Imh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9j
YWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJo
dHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24t
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5k
Ym94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1p
cC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTJkNTk5OTY0
ZTdlNjJmZDA1ZmIwZDc4YWU1ZTI5NjYwNTdhMDY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5n
LWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9z
dC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVk
aXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIHNhbmRib3hlZCBp
ZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0
cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVN
ZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0K
KworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRV
c2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90
aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2so
Y2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBs
YXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHND
aGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQp
IHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikgeworICAgICAgICAg
ICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7Cisg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBh
IG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisK
KyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAg
ICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05v
dGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRz
KCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1Jl
Z2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4w
LjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8v
MTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0
dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOwor
ICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAg
ICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMiIHNyYz0iaHR0cDovLzEyNy4w
LjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1ub24t
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAuaHRtbCI+Cis8
L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0
aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxo
b3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzY1OGNkMzQzZjU1NmUwYzM0NDc1ZWY5ZWY0NWM2
MjBkNGQ0MjdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZv
ciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIHNhbmRib3hlZCBpZnJhbWUgZ2V0
IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDov
L2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3Qi
LCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9s
b2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94
ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5k
Ym94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1s
b2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGY4
NmZlOGMzMjk0ZTI1MzkyMmMyNWVhMzc5MjdmZDVjOTQzNmZmOAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQt
bmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhv
c3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigi
VGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGlu
IGEgc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNU
ZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNz
YWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hU
ZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJl
Y29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisK
KyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAg
ICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZl
TWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gIm51bGwi
KSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAt
MSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZB
SUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZl
bnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQg
PSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBm
aW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0
aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIs
ICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxo
b3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8x
MjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hl
Y2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2Fk
ZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisgICAgPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc2NyaXB0cyIgc3Jj
PSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMv
cGFnZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10
by1sb2NhbGhvc3QuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94
ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxv
Y2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgt
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQxNmU2MWZkMDE1ZmQ3YWUz
Y2I4NjZiNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hl
ZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJv
cGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIs
ICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEy
Ny4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVk
QXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBp
cyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdp
dGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJh
c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kNmU5NGE0NTk2OTg1NGQzZTM4OGQxMGFhZGNhZjBhMWQyYTRk
YWFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJh
bWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCAr
MSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBk
ZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgc2FuZGJveGVkIGlmcmFtZSBu
ZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsK
KyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5j
dGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2Fu
bmVkKHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NE
aWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0g
ZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5j
dGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdp
biA9PT0gIm51bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigi
UEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRh
LnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3Jp
Z2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0
Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAg
ICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUo
J3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDov
L2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJl
VHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJo
dHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hv
dWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5n
VG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAg
ICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGly
ZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9
CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2FuZGJveD0iYWxsb3ct
c2NyaXB0cyIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9yZXNvdXJjZXMvcGFnZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9j
YWxob3N0LXRvLWlwLmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJv
eGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhv
c3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2Nh
bGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQx
NmU2MWZkMDE1ZmQ3YWUzY2I4NjZiNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1l
LXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxo
b3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJl
ZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQg
aWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5k
ZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1Mg
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8v
bG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIs
ICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0
YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
ZTE5ZGQxMDAyMTE1ZDhhMTk0ZmMyMjQxZDU4ZjRmODJlMDAyYmQ4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hl
ZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0
LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRl
c3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9u
LXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2Fn
ZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVz
dCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNv
cmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisg
ICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAg
ICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1l
c3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikg
eworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEp
CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlM
ICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50
Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0g
dHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmlu
aXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlv
biBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAi
aHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9z
dCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3
LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNr
ZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVk
KQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMiIHNyYz0i
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3Bh
Z2Utd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2Nh
bGhvc3QuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXBy
ZXZhbGVudC1yZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXBy
ZXZhbGVudC1yZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yZGMwNzNkYTQ3Y2JhNDg2MDc3MjNkNGZkYjYzY2JhMTU2ZDg3ZTYyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3NldC1jdXN0b20tcHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgZm9yIGVuYWJsaW5nIGRlYnVnIG1vZGUg
YW5kIHRoYXQgaXQgYWxsb3dzIHNldHRpbmcgYSBjdXN0b20gZG9tYWluIGFzIGEgcHJldmFsZW50
IHJlc291cmNlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBodHRwOi8v
bG9jYWxob3N0OjgwMDAgZ290IHNldCBhcyBhIGN1c3RvbSBwcmV2YWxlbnQgcmVzb3VyY2UgaW4g
ZGVidWcgbW9kZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4tZGVidWctbW9kZS1kYXRh
YmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3NldC1jdXN0b20tcHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41ZmRhODEyMDE5YTllNzNmZjk1NTg5MTVlMGY4ODkyNmE4ZDkwNDlhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3NldC1jdXN0b20tcHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJh
c2UuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVu
Ij4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CisgICAgZGVzY3JpcHRpb24oIlRlc3QgZm9yIGVuYWJsaW5nIGRlYnVnIG1vZGUgYW5kIHRoYXQg
aXQgYWxsb3dzIHNldHRpbmcgYSBjdXN0b20gZG9tYWluIGFzIGEgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgdGhpcmRQYXJ0eU9y
aWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBE
YXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQodGhpcmRQ
YXJ0eU9yaWdpbiArICIgYWxyZWFkeSBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZUZvckRl
YnVnTW9kZSh0aGlyZFBhcnR5T3JpZ2luLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQodGhpcmRQYXJ0eU9yaWdpbiArICIgZGlkbid0IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291
cmNlLiIpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0UGFzc2VkKHRoaXJkUGFydHlPcmlnaW4gKyAiIGdvdCBzZXQgYXMgYSBjdXN0b20gcHJl
dmFsZW50IHJlc291cmNlIGluIGRlYnVnIG1vZGUuIik7CisgICAgICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc0RlYnVnTW9kZShmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRp
cmVjdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50
LXN1YnJlc291cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
N2JkNTQzZWM5YWYzMjRiZDUwZGMxZDRjODZjZGIwOWU5YzRkNWIyOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1y
ZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3RzIHRoYXQgb25seSB0aGUg
b3JpZ2luIGlzIHNlbnQgYXMgcmVmZXJyZXIgaW4gcmVkaXJlY3RzIHRvIHByZXZhbGVudCByZXNv
dXJjZXMgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyByZWZlcnJlciBpcyAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3Vi
cmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0bWwiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJh
bWUxLS0+JworLS0tLS0tLS0KK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC8KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJl
ci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJp
cC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMt
ZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMGY4YTJmNDIwYjVhYTYyYzM3YTI1ZDRiZGRmZWQz
M2EzM2JmYTVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50
LXN1YnJlc291cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVz
Y3JpcHRpb24oIlRlc3RzIHRoYXQgb25seSB0aGUgb3JpZ2luIGlzIHNlbnQgYXMgcmVmZXJyZXIg
aW4gcmVkaXJlY3RzIHRvIHByZXZhbGVudCByZXNvdXJjZXMgd2l0aG91dCB1c2VyIGludGVyYWN0
aW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHRlc3RSdW5uZXIuZHVtcENo
aWxkRnJhbWVzQXNUZXh0KCk7CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2Fk
SGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25M
b2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVy
OworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7
CisgICAgfQorCisgICAgdmFyIHJlZmVycmVyOworICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0
YWJhc2UodHJ1ZSk7CisgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6
Ly9sb2NhbGhvc3QiKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3YXMgY2xh
c3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0ZWQuIik7
CisKKyAgICAgICAgZmV0Y2goInJlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIpLnRoZW4oZnVu
Y3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7Cisg
ICAgICAgIH0pLnRoZW4oZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgICAgcmVmZXJyZXIgPSBk
YXRhOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10
by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRt
bCIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSgiaHR0cDovL2xvY2FsaG9zdCIsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDov
L2xvY2FsaG9zdCIpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgb3BlbklmcmFtZSgicmVzb3VyY2VzL3JlZGlyZWN0LnBocD9yZWRp
cmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291
cmNlcy9lY2hvLXJlZmVycmVyLnBocCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKGVy
cm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNo
SlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1y
ZXF1ZXN0cy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxl
bnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljg5Y2NiOWMyMWZmMDA3MWE5ODAyMzliN2I3OTNmNTUxODdlYmVlNWUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAt
cmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1Rlc3RzIHRoYXQgb25seSB0aGUg
b3JpZ2luIGlzIHNlbnQgYXMgcmVmZXJyZXIgZm9yIHByZXZhbGVudCByZXNvdXJjZXMgd2l0aG91
dCB1c2VyIGludGVyYWN0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyByZWZlcnJlciBpcyAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVx
dWVzdHMtZGF0YWJhc2UuaHRtbCIKK1BBU1MgcmVmZXJyZXIgaXMgImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC8iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK2h0dHA6Ly8x
MjcuMC4wLjE6ODAwMC8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1z
dWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJl
dmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTVk
NGYwMzY2Zjk3Y2ZjZTk0MjhhNmE4NmU1MTU0ODM2MGUzMjE3NwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZl
cnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFz
ZS5odG1sCkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgb25seSB0aGUg
b3JpZ2luIGlzIHNlbnQgYXMgcmVmZXJyZXIgZm9yIHByZXZhbGVudCByZXNvdXJjZXMgd2l0aG91
dCB1c2VyIGludGVyYWN0aW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHRl
c3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisKKyAgICBmdW5jdGlvbiBvcGVuSWZy
YW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOwor
ICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQg
PSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAgdmFyIHJlZmVycmVyOworICAgIHRlc3RSdW5u
ZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxv
Y2FsaG9zdCB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0
ZXN0IHN0YXJ0ZWQuIik7CisKKyAgICAgICAgZmV0Y2goInJlc291cmNlcy9lY2hvLXJlZmVycmVy
LnBocCIpLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIHJldHVybiByZXNw
b25zZS50ZXh0KCk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAg
ICAgcmVmZXJyZXIgPSBkYXRhOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
dHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0
cy1kYXRhYmFzZS5odG1sIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKCJodHRwOi8vbG9jYWxob3N0IikpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBmZXRjaCgiaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcmVmZXJyZXIucGhwIiku
dGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHJlc3BvbnNlLnRleHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbihk
YXRhKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZWZlcnJlciA9IGRhdGE7CisgICAgICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC8iKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgb3BlbklmcmFt
ZSgicmVzb3VyY2VzL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKworICAg
ICAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAgY29uc29sZS5sb2co
ZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5p
c2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50
ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJl
dmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM0MzkyMmZkOTNmMWE1NDQ0ZjJjYjA2ODg0ZWZjMzI5MGJhZTUxZjQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNo
LXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRh
YmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCB0aGUgc2Vzc2lv
biBpcyBzd2l0Y2hlZCB1cG9uIHRvcCBmcmFtZSBuYXZpZ2F0aW9uIHRvIGEgcHJldmFsZW50IHJl
c291cmNlIHdpdGggdXNlciBpbnRlcmFjdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgU2hvdWxkIGhhdmUgYW5kIGhhcyB0aGUgc2Vzc2lvbiBjb29raWUuCitQQVNT
IFNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHBlcnNpc3RlbnQgY29va2llLgorUEFTUyBPcmlnaW4g
aGFzIGlzb2xhdGVkIHNlc3Npb24uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFs
ZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRv
LXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI3
MGMwMGIwNDgxNjY2MGJjODFkMGQ2ZWU4OWNhYTcwZTFmNzRiYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vz
c2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNl
Lmh0bWwKQEAgLTAsMCArMSwxMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4i
PgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIv
anMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdGhlIHNlc3Np
b24gaXMgc3dpdGNoZWQgdXBvbiB0b3AgZnJhbWUgbmF2aWdhdGlvbiB0byBhIHByZXZhbGVudCBy
ZXNvdXJjZSB3aXRoIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKyAgICBjb25zdCBwcmV2YWxlbnRPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IjsKKyAgICBjb25zdCBub25QcmV2YWxlbnRPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
IjsKKyAgICBjb25zdCBzZXNzaW9uQ29va2llTmFtZSA9ICJzZXNzaW9uQ29va2llIjsKKyAgICBj
b25zdCBwZXJzaXN0ZW50Q29va2llTmFtZSA9ICJwZXJzaXN0ZW50Q29va2llIjsKKyAgICBjb25z
dCB0d29NaW51dGVzSW5TZWNvbmRzID0gMTIwOworCisgICAgZnVuY3Rpb24gc2V0U2Vzc2lvbkNv
b2tpZSgpIHsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2Vzc2lvbkNvb2tpZU5hbWUgKyAi
PTE7IHBhdGg9LyI7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2V0UGVyc2lzdGVudENvb2tpZSgp
IHsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gcGVyc2lzdGVudENvb2tpZU5hbWUgKyAiPTE7
IHBhdGg9LzsgTWF4LUFnZT0iICsgdHdvTWludXRlc0luU2Vjb25kcyArICI7IjsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBjaGVja0Nvb2tpZXMoc2hvdWxkSGF2ZVNlc3Npb25Db29raWUsIHNob3Vs
ZEhhdmVQZXJzaXN0ZW50Q29va2llKSB7CisgICAgICAgIGxldCBoYXNTZXNzaW9uQ29va2llID0g
KGRvY3VtZW50LmNvb2tpZSArICIiKS5pbmNsdWRlcyhzZXNzaW9uQ29va2llTmFtZSksCisgICAg
ICAgICAgICBoYXNQZXJzaXN0ZW50Q29va2llID0gKGRvY3VtZW50LmNvb2tpZSArICIiKS5pbmNs
dWRlcyhwZXJzaXN0ZW50Q29va2llTmFtZSk7CisKKyAgICAgICAgaWYgKHNob3VsZEhhdmVTZXNz
aW9uQ29va2llICYmIGhhc1Nlc3Npb25Db29raWUpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJT
aG91bGQgaGF2ZSBhbmQgaGFzIHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKKyAgICAgICAgZWxzZSBp
ZiAoc2hvdWxkSGF2ZVNlc3Npb25Db29raWUgJiYgIWhhc1Nlc3Npb25Db29raWUpIHsKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCBoYXZlIGJ1dCBkb2Vzbid0IGhhdmUgdGhlIHNlc3Np
b24gY29va2llLiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNo
SlNUZXN0KTsKKyAgICAgICAgfSBlbHNlIGlmICghc2hvdWxkSGF2ZVNlc3Npb25Db29raWUgJiYg
aGFzU2Vzc2lvbkNvb2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkbid0IGhh
dmUgYnV0IGhhcyB0aGUgc2Vzc2lvbiBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQoIlNob3VsZG4ndCBoYXZlIGFuZCBkb2Vzbid0IGhhdmUgdGhlIHNlc3Npb24g
Y29va2llLiIpOworCisKKyAgICAgICAgaWYgKHNob3VsZEhhdmVQZXJzaXN0ZW50Q29va2llICYm
IGhhc1BlcnNpc3RlbnRDb29raWUpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91bGQgaGF2
ZSBhbmQgaGFzIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsKKyAgICAgICAgZWxzZSBpZiAoc2hv
dWxkSGF2ZVBlcnNpc3RlbnRDb29raWUgJiYgIWhhc1BlcnNpc3RlbnRDb29raWUpIHsKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCBoYXZlIGJ1dCBkb2Vzbid0IGhhdmUgdGhlIHBlcnNp
c3RlbnQgY29va2llLiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICAgICAgfSBlbHNlIGlmICghc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29r
aWUgJiYgaGFzUGVyc2lzdGVudENvb2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hv
dWxkbid0IGhhdmUgYnV0IGhhcyB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlNob3VsZG4ndCBoYXZlIGFuZCBkb2Vzbid0IGhhdmUg
dGhlIHBlcnNpc3RlbnQgY29va2llLiIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAg
ICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24ocHJldmFsZW50T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgc2V0U2Vzc2lvbkNvb2tpZSgpOworICAgICAgICAgICAg
ICAgICAgICBzZXRQZXJzaXN0ZW50Q29va2llKCk7CisgICAgICAgICAgICAgICAgICAgIGNoZWNr
Q29va2llcyh0cnVlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIu
aGFzU3RhdGlzdGljc0lzb2xhdGVkU2Vzc2lvbihwcmV2YWxlbnRPcmlnaW4pKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPcmlnaW4gaGFzIGlzb2xhdGVkIHNlc3Npb24u
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5p
c2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIk9yaWdpbiBoYXMgbm8gaXNvbGF0ZWQgc2Vzc2lvbi4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IG5vblByZXZhbGVudE9y
aWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0
aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwjc3RlcDIiOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0g
InN0ZXAzIjsKKyAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luICE9
PSBub25QcmV2YWxlbnRPcmlnaW4pCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlN0
ZXAgMiBpcyBub3Qgb24gIiArIG5vblByZXZhbGVudE9yaWdpbiArICIuIik7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50
T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudE9yaWdpbikpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQocHJldmFsZW50T3JpZ2luICsgIiBk
aWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NV
cGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHByZXZhbGVudE9yaWdpbiArICIvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVu
dC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwjc3RlcDQiOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICBjaGVj
a0Nvb2tpZXModHJ1ZSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaGFz
U3RhdGlzdGljc0lzb2xhdGVkU2Vzc2lvbihwcmV2YWxlbnRPcmlnaW4pKQorICAgICAgICAgICAg
ICAgICAgICB0ZXN0UGFzc2VkKCJPcmlnaW4gaGFzIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPcmlnaW4g
aGFzIG5vIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVW5rbm93biBoYXNo
LiIpOworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVz
dCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9
PT0gIiIpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiAhPT0gcHJldmFs
ZW50T3JpZ2luKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGVzdCBpcyBub3Qgc3RhcnRpbmcg
b3V0IG9uICIgKyBwcmV2YWxlbnRPcmlnaW4gKyAiLiIpOworICAgICAgICB0ZXN0UnVubmVyLnNl
dFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHByZXZhbGVudE9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZChwcmV2YWxlbnRPcmlnaW4gKyAiIHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJj
ZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1k
YXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODQyNzMwYTQ1ZGFkZTZlYTZmMTVkZWNj
MzlhN2U1YTlhMGUzMTJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2lu
LXN1Yi1mcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMg
dGhhdCB1c2VyIGludGVyYWN0aW9uIGlzIGFsd2F5cyBsb2dnZWQgZm9yIHRoZSB0b3AgZG9jdW1l
bnQvZnJhbWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50
LmxvY2F0aW9uLm9yaWdpbiBpcyB0b3BGcmFtZU9yaWdpbgorUEFTUyB0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BB
U1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVP
cmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWlu
dGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9u
LWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWY2
MjNjMTgwZDYzZDNjNmI2MTBlZWIzNzFiZDg4NDU4NjFkZDhlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJh
Y3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEs
NDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0
IHVzZXIgaW50ZXJhY3Rpb24gaXMgYWx3YXlzIGxvZ2dlZCBmb3IgdGhlIHRvcCBkb2N1bWVudC9m
cmFtZS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOwordGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRh
YmFzZSh0cnVlKTsKKworY29uc3QgdG9wRnJhbWVPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4
MDAwIjsKK2NvbnN0IHN1YkZyYW1lT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisK
K2Z1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SWQpIHsKKyAgICB2YXIgZWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgdmFyIGNlbnRlclggPSBl
bGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICB2YXIgY2Vu
dGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAg
IFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSk7Cit9CisKK2Z1bmN0aW9uIGZp
bmlzaFRlc3QoKSB7CisgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICBzaG91bGRCZUZhbHNl
KCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9y
aWdpbikiKTsKKworICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cit9
CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRy
dWUpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRh
UmVjb3Jkc0NhbGxiYWNrKGZpbmlzaFRlc3QpOworICAgICAgICB9CisKKyAgICAgICAgc2hvdWxk
QmUoImRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiIsICJ0b3BGcmFtZU9yaWdpbiIpOworCisgICAg
ICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsK
KyAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworCisgICAgICAgICAgICBhY3RpdmF0
ZUVsZW1lbnQoInRlc3RGcmFtZSIpOworICAgICAgICB9CisgICAgfSk7Cit9OworPC9zY3JpcHQ+
Cis8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2R1bW15Lmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1z
aG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJl
cG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41NDMyYmM4ZWQ3MzgxZmJjNDk4ZGIzNGMwZmIzYmU3YTU3YmQ5MWQx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9y
dC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAor
VGVzdHMgdGhhdCB1c2VyIGludGVyYWN0aW9uIGlzIG5vdCByZXBvcnRlZCByZXBlYXRlZGx5IHdp
dGhpbiBhIHNob3J0IHBlcmlvZCBvZiB0aW1lLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gaXMgdG9wRnJhbWVPcmlnaW4KK1BB
U1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVP
cmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgdHJ1ZQorUEFT
UyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9y
aWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFT
UyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9y
aWdpbikgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorVGhpcyBpcyB0aGUgdGVzdCBlbGVtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5
LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRl
cmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRh
dGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTVkZWI5NzI5YmQ1YjliOTYzN2MwOGI5OWM2MTMxNTM3
YjYxYWEzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRo
aW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY2IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGls
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdXNl
ciBpbnRlcmFjdGlvbiBpcyBub3QgcmVwb3J0ZWQgcmVwZWF0ZWRseSB3aXRoaW4gYSBzaG9ydCBw
ZXJpb2Qgb2YgdGltZS4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0
IHRvcEZyYW1lT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3Vi
RnJhbWVPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKworICAgIGZ1bmN0aW9uIGFj
dGl2YXRlRWxlbWVudChlbGVtZW50SWQsIGNhbGxiYWNrKSB7CisgICAgICAgIHZhciBlbGVtZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAgdmFyIGNlbnRl
clggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAg
ICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0
IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVu
KAorICAgICAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICB9CisgICAgICAg
ICk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmlyc3RJbnRlcmFjdGlvbigpIHsKKyAgICAgICAg
c2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rp
b24odG9wRnJhbWVPcmlnaW4pIik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworICAg
ICAgICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RFbGVtZW50Iiwgc2Vjb25kSW50ZXJhY3Rpb24pOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHNlY29uZEludGVyYWN0aW9uKCkgeworICAgICAgICBzaG91
bGRCZVRydWUoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRv
cEZyYW1lT3JpZ2luKSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKworICAgICAg
ICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
SGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luLCBmYWxzZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NI
YXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIik7CisKKyAgICAgICAgICAgICAg
ICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RFbGVtZW50IiwgZmluaXNoVGVzdCk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7Cisg
ICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbiki
KTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAg
IH0KKworICAgIG9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVz
ZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiIs
ICJ0b3BGcmFtZU9yaWdpbiIpOworCisgICAgICAgICAgICBmaXJzdEludGVyYWN0aW9uKCk7Cisg
ICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KKzxkaXYgaWQ9InRlc3RFbGVtZW50Ij5UaGlz
IGlzIHRoZSB0ZXN0IGVsZW1lbnQ8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVy
YWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91
c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjI4Yzk5YjMwMjQ0NDU2MGI1MWIzNDhiOTYw
MjFiMDU4NTZlYTNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vi
c2l0ZS1kYXRhLXJlbW92YWwtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAK
K1Rlc3RzIHRoYXQgdXNlciBpbnRlcmFjdGlvbiBpcyByZXBvcnRlZCBhZnRlciBoaXN0b3J5IHJl
bW92YWwgc2luY2UgdGhhdCBtZWFucyBhbGwgc3RhdGlzdGljcyBoYXZlIGJlZW4gcmVzZXQuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50LmxvY2F0aW9uLm9y
aWdpbiBpcyB0b3BGcmFtZU9yaWdpbgorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hh
ZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZh
bHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRv
cEZyYW1lT3JpZ2luKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFs
c2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9w
RnJhbWVPcmlnaW4pIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1RoaXMgaXMgdGhlIHRlc3QgZWxlbWVu
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwt
ZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFs
LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmJlYjQyZjk0MmYxYjY4ZmZhY2ZlMGVmYjFmZTky
Mzk2MmYyMjY4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNp
dGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWkt
aGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHVzZXIgaW50ZXJh
Y3Rpb24gaXMgcmVwb3J0ZWQgYWZ0ZXIgaGlzdG9yeSByZW1vdmFsIHNpbmNlIHRoYXQgbWVhbnMg
YWxsIHN0YXRpc3RpY3MgaGF2ZSBiZWVuIHJlc2V0LiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0
cnVlOworCisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IjsKKyAgICBjb25zdCBzdWJGcmFtZU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOwor
CisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJZCwgY2FsbGJhY2spIHsKKyAg
ICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOwor
ICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0
V2lkdGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxl
bWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRl
clgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICBjYWxsYmFjaygpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlByb21pc2UgcmVqZWN0ZWQuIik7CisgICAg
ICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaXJzdEludGVyYWN0
aW9uKCkgeworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgc2hvdWxkQmVG
YWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJh
bWVPcmlnaW4pIik7CisgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGVzdEVsZW1lbnQiLCBjbGVh
cldlYnNpdGVEYXRhKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjbGVhcldlYnNpdGVEYXRhKCkg
eworICAgICAgICBzaG91bGRCZVRydWUoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdp
bikiKTsKKworICAgICAgICBpZiAodGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc0NsZWFyVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbChzZWNvbmRJbnRlcmFjdGlv
bik7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2Vjb25kSW50ZXJhY3Rpb24oKSB7CisgICAgICAg
IHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RFbGVt
ZW50IiwgZmluaXNoVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsK
KyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4p
Iik7CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAg
ICB9CisKKyAgICBvbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRV
c2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIHNob3VsZEJlKCJkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4i
LCAidG9wRnJhbWVPcmlnaW4iKTsKKworICAgICAgICAgICAgZmlyc3RJbnRlcmFjdGlvbigpOwor
ICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJ0ZXN0RWxlbWVudCI+VGhp
cyBpcyB0aGUgdGVzdCBlbGVtZW50PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGFhYmNmOWE4NjJkMWVlMzNjMzY1
ZmJkNmI0YTIyNzQ0ZmFhOTBmY2EuLjdmZWU3NDk1ZDJjOGU4NzUwYjIzMzNkNDM0MTMzZWFlZDdm
OGI0YTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC05
ODYsNiArOTg2LDggQEAgaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2tleWJvYXJkLWV2ZW50cy1kdXJp
bmctcHJvdmlzaW9uYWwtbmF2aWdhdGlvbi5odG1sIFsgU2tpcAogaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL2tleWJvYXJkLWV2ZW50cy1kdXJpbmctcHJvdmlzaW9uYWwtc3ViZnJhbWUtbmF2aWdhdGlv
bi5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFs
ZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3du
Lmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxl
bnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwgWyBTa2lwIF0KK2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVk
LWtleWRvd24tZGF0YWJhc2UuaHRtbCBbIFNraXAgXQogbWVkaWEvYXVkaW8tcGxheWJhY2stdm9s
dW1lLWNoYW5nZXMtd2l0aC1yZXN0cmljdGlvbnMtYW5kLXVzZXItZ2VzdHVyZXMuaHRtbCBbIFNr
aXAgXQogbWVkaWEvYXVkaW8tcGxheWJhY2stdm9sdW1lLWNoYW5nZXMtd2l0aC1yZXN0cmljdGlv
bnMuaHRtbCBbIFNraXAgXQogbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlLWludGVycnVwdGlvbi5o
dG1sIFsgU2tpcCBdCkBAIC0yNzc5LDYgKzI3ODEsOSBAQCBmYXN0L2NhbnZhcy93ZWJnbC9yZWFk
UGl4ZWxzLWZsb2F0Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNzQxMjAgaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2lu
LXN1Yi1mcmFtZS5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlv
ZC1vZi10aW1lLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLmh0
bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xNzQxMjAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRh
YmFzZS5odG1sIFsgU2tpcCBdCitodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNl
ci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10
aW1lLWRhdGFiYXNlLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFs
LWRhdGFiYXNlLmh0bWwgWyBTa2lwIF0KICMgU2tpcHBlZCBpbiBXSzIgZXhwZWN0YXRpb25zIGJl
Y2F1c2UgY29va2llIHBhcnRpdGlvbmluZyBpcyBvbmx5IGF2YWlsYWJsZSBpbiBtYWNPUyBIaWdo
IFNpZXJyYSBhbmQgaU9TIDExLgogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nv
b2tpZS1kZWxldGlvbi5odG1sIFsgUGFzcyBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbCBbIFBh
c3MgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378893</attachid>
            <date>2019-09-16 14:19:35 -0700</date>
            <delta_ts>2019-09-16 15:53:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195420-20190916141934.patch</filename>
            <type>text/plain</type>
            <size>373517</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5ODM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTlmYTg2ZjUzZTBmODYz
NjY1MDNmNTgxMDc5YjhlNDU5NDA5MjdiYS4uMzFlZTZkMjE5ZjI5N2VmZjY1YjliZDYzZDZhOWVk
NDdjNWU3M2M5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDE5LTA5LTE2ICBLYXRo
ZXJpbmUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5h
YmxlIExheW91dFRlc3RzIHVzaW5nIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgU1FMaXRlIGJhY2tl
bmQgKDE5NTQyMCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NTQyMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQyMTM1NTE+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2Uu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Js
b2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0LWltcG9ydC1kYXRhYmFzZS5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1h
Z2UtZm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMt
d2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9y
LWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291
cmNlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5r
LXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVk
LWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZh
bGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LXdpdGhvdXQtbGluay1kZWNvcmF0aW9uLWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJh
c2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1m
cmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1
YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24t
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJh
c2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1v
cmlnaW5zLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2Ut
cmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
c3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJh
c2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJl
Y3RzLXRvLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJl
ZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRv
cC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXIt
aW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5k
LXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAg
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFz
ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1z
Y3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5h
dmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJl
Y3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVu
dC13aXRob3V0LWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZp
Z2F0aW9uLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5h
YmxlLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50
LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAg
ICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNv
dXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3Vy
Y2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2Uu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
bi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFz
ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9z
dC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hl
ZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2Fs
aG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1k
YXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1wcmV2
YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVkLWtleWRvd24t
ZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFs
ZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291
cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3Vy
Y2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFi
YXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFz
ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRh
dGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlm
cmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10
by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hl
ZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQt
bmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10
by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0b20tcHJldmFsZW50LXJlc291cmNlLWlu
LWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50
LXN1YnJlc291cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZv
ci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9u
LW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50
ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlv
bi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91
c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFi
YXNlLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oOgorICAg
ICAgIEFkZGVkIFdFQkNPUkVfRVhQT1JUIHByZWZpeCB0byBhIGZ1bmN0aW9uIG5lZWRlZCBpbiB0
aGUgRGF0YWJhc2UKKyAgICAgICBiYWNrZW5kIHRvIGNsZWFyIG91dCB0aGUgZGF0YWJhc2UuCisK
IDIwMTktMDktMTMgIFJ1c3NlbGwgRXBzdGVpbiAgPHJlcHN0ZWluQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ5NzA5LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmZWRiN2Zl
ZDlkYzEzOWU2MWRjNTAyMTU4MjFiOWRjZWRhNjVjNGQyLi5kYmNkMTQwMDE2M2U5MzBjOGRlMmNi
NzdjODUyNWMwNGNjY2NhMGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNSBAQAorMjAxOS0wOS0x
NiAgS2F0aGVyaW5lIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAg
ICAgIEVuYWJsZSBMYXlvdXRUZXN0cyB1c2luZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFNRTGl0
ZSBiYWNrZW5kICgxOTU0MjApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTU0MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjEzNTUxPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZSk6CisgICAgICAgIFJlbW92ZWQgcHJl
cGFyZVN0YXRlbWVudHMoKSBjYWxsIGZyb20gdGhlIGNvbnN0cnVjdG9yLiBQcmVwYXJpbmcKKyAg
ICAgICAgc3RhdGVtZW50cyB0aGVuIHJ1bm5pbmcgYSB2YWN1dW0gY29tbWFuZCBvbiB0aGUgZGF0
YWJhc2UgcmVzdWx0cyBpbiBhbgorICAgICAgICBlcnJvciAodGhlIHZhY3V1bSBjb21tYW5kIGlz
IGNhbGxlZCBpbnQgdGhlIHBvcHVsYXRlRnJvbU1lbW9yeVN0b3JlKCkKKyAgICAgICAgZnVuY3Rp
b24pCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OnByZXBhcmVTdGF0ZW1lbnRzKToKKyAgICAgICAgQWRkZWQgMiBzdGF0ZW1lbnRzIHRoYXQg
d2VyZSBub3QgYmVpbmcgcHJlcGFyZWQuIFJlbW92ZWQgb25lIHN0YXRlbWVudAorICAgICAgICB3
aGljaCBpcyBjYWxsZWQgaW4gdGhlIGlzRW1wdHkoKSBjaGVjayAoYmVmb3JlIG90aGVycyBhcmUg
cHJlcGFyZWQpIHNvCisgICAgICAgIGl0IGNhbiBiZSBwcmVwYXJlZCBzZXBhcmF0ZWx5LgorCisg
ICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWxh
dGlvbnNoaXBFeGlzdHMgY29uc3QpOgorICAgICAgICBDb3JyZWN0ZWQgaW5jb3JyZWN0IGNhcGl0
YWxpemF0aW9uLiBBZGRlZCBjaGVjayBmb3IgbnVsbG9wdCBpbiBjYXNlCisgICAgICAgIGRvbWFp
bklEIGlzIGZvciBhIGRvbWFpbiBub3QgaW4gdGhlIGRhdGFiYXNlIHlldC4KKworICAgICAgICAo
V2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cG9wdWxhdGVGcm9t
TWVtb3J5U3RvcmUpOgorICAgICAgICBNb3ZlZCB0aGUgcHJlcGFyZVN0YXRlbWVudHMoKSBjYWxs
IGFmdGVyIHRoZSB2YWN1dW0gY29tbWFuZCBpbiB0aGUgY2FzZQorICAgICAgICB3aGVyZSB0aGUg
ZGF0YWJhc2UgaXMgZW1wdHkuIE90aGVyd2lzZSBjYWxsZWQgaXQgYmVmb3JlIHJldHVybmluZy4K
KworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
cmVjdXJzaXZlbHlGaW5kTm9uUHJldmFsZW50RG9tYWluc1RoYXRSZWRpcmVjdGVkVG9UaGlzRG9t
YWluKToKKyAgICAgICAgQWRkZWQgYSBzcGFjZSB0byB0aGUgU1FMIGNvbW1hbmRzIHRvIGNvcnJl
Y3QgdGhlIHN5bnRheC4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6ZmluZE5vdFZlcnlQcmV2YWxlbnRSZXNvdXJjZXMpOgorICAgICAgICBD
b3JyZWN0ZWQgYSBidWcgaW4gdGhlIFNRTCBjb21tYW5kIGZvciBxdWVyeWluZworICAgICAgICBz
dWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW4uIFRoZSBvbGQgcXVlcnkgd2FzIGFza2luZyBmb3Ig
c3VicmVzb3VyY2UuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OmdyYW5kZmF0aGVyRGF0YUZvckRvbWFpbnMpOgorICAgICAgICBUaGUgZ3Jh
bmRmYXRoZXJpbmcuaHRtbCB0ZXN0IHdhcyBmYWlsaW5nIGJlY2F1c2UgZG9tYWlucyB3ZXJlIGJl
aW5nCisgICAgICAgICJzZXQiIHRvIGdyYW5kZmF0aGVyZWQgaW4gdGhlIGRhdGFiYXNlIGJlZm9y
ZSBiZWluZyBpbnNlcnRlZC4gVGhpcyBmaXgKKyAgICAgICAgZW5zdXJlcyBhbGwgZG9tYWlucyBi
ZWZvcmUgc2V0dGluZyB0aGUgZ3JhbmRmYXRoZXJpbmcgZmxhZy4KKworICAgICAgICAoV2ViS2l0
OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9u
KToKKyAgICAgICAgTXVsdGlwbGUgdGVzdHMgd2VyZSBmYWlsaW5nIGJlY2F1c2UgdGhlIHF1ZXJ5
IHRvIGluc2VydCB0aGUgcmVsYXRpb25zaGlwCisgICAgICAgIGZvciB0aGUgc291cmNlIGRvbWFp
biByZWxpZXMgb24gdGhlIHRhcmdldCBkb21haW4gYmVpbmcgaW4gdGhlCisgICAgICAgIE9ic2Vy
dmVkRG9tYWlucyB0YWJsZS4gVGhpcyBwYXRjaCBlbnN1cmVzIGFsbCBkb21haW5zIGFyZSBhZGRl
ZCBiZWZvcmUKKyAgICAgICAgcGVyZm9ybWluZyB0aGUgcXVlcnkuCisKKyAgICAgICAgKFdlYktp
dDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc0hhZFVzZXJJbnRlcmFj
dGlvbik6CisgICAgICAgIFRoZSBTUUwgc3RhdGVtZW50IHdhcyBiZWluZyBib3VuZCB0byBhIHZh
bHVlIGFuZCBub3QgYmVpbmcgcmVzZXQuIFRoaXMKKyAgICAgICAgcGF0Y2ggcmVzZXRzIHRoZSBz
dGF0ZW1lbnQgYWZ0ZXIgYmluZGluZy4gQWRkaXRpb25hbGx5LCB0aGUgc3RlcCgpCisgICAgICAg
IGZ1bmN0aW9uIHdhcyBiZWluZyBjb21wYXJlZCB0byBTUUxJVEVfRE9ORSBpbnN0ZWFkIG9mIFNR
TElURV9ST1csCisgICAgICAgIGNhdXNpbmcgYW4gZXJyb3IgaWYgdGhlIHF1ZXJ5IHJldHVybmVk
IHJlc3VsdHMuIFRoZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKSB3YXMgY2F1c2luZyBu
dWxsIHNlYXJjaGVzIHRvIGNyYXNoIGluc3RlYWQgb2YKKyAgICAgICAgcmV0dXJuaW5nIGZhbHNl
IChpLmUuIGlmIGEgZG9tYWluIGlzIG5vdCBpbiB0aGUgZGF0YWJhc2UgaXQgc2hvdWxkCisgICAg
ICAgIHJldHVybiB0aGF0IGl0IGhhcyBubyB1c2VyIGludGVyYWN0aW9uIGluc3RlYWQgb2YgY3Jh
c2hpbmcpLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpwcmVkaWNhdGVWYWx1ZUZvckRvbWFpbiBjb25zdCk6CisgICAgICAgIFRoZSBTUUwg
c3RhdGVtZW50IHdhcyBiZWluZyBib3VuZCB0byBhIHZhbHVlIGFuZCBub3QgYmVpbmcgcmVzZXQu
IFRoaXMKKyAgICAgICAgcGF0Y2ggcmVzZXRzIHRoZSBzdGF0ZW1lbnQgYWZ0ZXIgYmluZGluZy4g
U1FMSVRFX0RPTkUgY2hhbmdlZCB0bworICAgICAgICBTUUxJVEVfUk9XIHRvIHJldHVybiBub24t
ZW1wdHkgcXVlcnkgcmVzdWx0cy4gQVNTRVJUX05PVF9SRUFDSEVEKCkKKyAgICAgICAgcmVtb3Zl
ZCBmb3IgdGhlIHNhbWUgcmVhc29ucyBhcyBhYm92ZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNz
Rm9yUmVnaXN0cmFibGVEb21haW4pOgorICAgICAgICBGaXhlZCB0aGUgcmVsZWFzZSBsb2cgc3Rh
dGVtZW50IHdoaWNoIHdhcyBsb2dnaW5nIHRoZSB3cm9uZyBmdW5jdGlvbgorICAgICAgICBuYW1l
LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpjbGVhckRhdGFiYXNlQ29udGVudHMpOgorICAgICAgICBDbGVhcnMgdGhlIGRhdGFiYXNlIGFu
ZCByZWJ1aWxkcyB0aGUgdGFibGVzIG9uIGEgY2xlYXIgY29tbWFuZCB0bworICAgICAgICBtYXRj
aCB0aGUgZnVuY3Rpb25hbGl0eSBpbiB0aGUgTWVtb3J5IFN0b3JlLgorCisgICAgICAgIChXZWJL
aXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhcik6CisgICAgICAg
IENhbGwgdGhlIGNsZWFyRGF0YWJhc2VDb250ZW50cyBmdW5jdGlvbiB0byBtYXRjaCB0aGUgZnVu
Y3Rpb25hbGl0eQorICAgICAgICBpbiB0aGUgTWVtb3J5IFN0b3JlLgorCisgICAgICAgIChXZWJL
aXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNIYWRVbmV4cGlyZWRS
ZWNlbnRVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICBUZXN0cyB3ZXJlIGZhaWxpbmcgYmVjYXVz
ZSBzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvcigpIHdhcyBub3QKKyAgICAgICAgY2hlY2tp
bmcgZm9yIGV4cGlyZWQgdXNlciBpbnRlcmFjdGlvbi4gTWF0Y2hlZCBmdW5jdGlvbmFsaXR5IGlu
IHRoZQorICAgICAgICBNZW1vcnkgU3RvcmUuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9y
KToKKyAgICAgICAgVGVzdHMgd2VyZSBmYWlsaW5nIGJlY2F1c2Ugc2hvdWxkUmVtb3ZlQWxsV2Vi
c2l0ZURhdGFGb3IoKSB3YXMgbm90CisgICAgICAgIGNoZWNraW5nIGZvciBleHBpcmVkIHVzZXIg
aW50ZXJhY3Rpb24uIE1hdGNoZWQgZnVuY3Rpb25hbGl0eSBpbiB0aGUKKyAgICAgICAgTWVtb3J5
IFN0b3JlLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpwcnVuZVN0YXRpc3RpY3NJZk5lZWRlZCk6CisgICAgICAgIExhc3Qgc2VlbiBzaG91
bGQgYmUgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlciBiZWNhdXNlIHlvdSB3YW50IHRvCisgICAg
ICAgIHBydW5lIHRoZSBvbGRlciBzdGF0aXN0aWNzIGZpcnN0LCB3aGljaCB3aWxsIGhhdmUgYSBs
b3dlciBsYXN0U2VlbgorICAgICAgICBmaWVsZCAoc2Vjb25kc1NpbmNlRXBvY2goKSB3aWxsIGJl
IGxvd2VyIGZvciBvbGRlciB2YWx1ZXMpLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvciBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIERlbGV0ZWQgY29uc3Qgc3BlY2lmaWVyIGJlY2F1c2Ug
dGhlIGZ1bmN0aW9uIG5lZWRzIHRvIGNsZWFyIHRoZQorICAgICAgICBkYXRhYmFzZS4KKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmUuaDoKKyAgICAgICAgRGVjbGFyZWQgbmV3IGZ1bmN0aW9ucy4gVXBkYXRlZCBz
cGVsbGluZyBlcnJvciAocmVnaXN0ZXJhYmxlIC0tPgorICAgICAgICByZWdpc3RyYWJsZSkuCisK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKToKKyAgICAgICAgU2VwYXJh
dGVkIHRoZSByZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgY3JlYXRpb24gcHJvY2VzcyBpbnRv
IGl0cworICAgICAgICBvd24gbWV0aG9kIHNvIGl0IGNhbiBiZSBjYWxsZWQgYnkgdGhlIHRlc3Qu
CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphZGRXZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAg
U2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5IHdhcyBub3QgYmVpbmcgY2FsbGVk
IG9uIHRoZQorICAgICAgICBXZWJLaXRUZXN0UnVubmVyIHJlc291cmNlTG9hZFN0YXRpc3RpY3Mg
ZGlyZWN0b3J5LgorCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRVc2VJVFBE
YXRhYmFzZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcDoKKyAgICAgICAg
KFdLV2Vic2l0ZURhdGFTdG9yZVNldFVzZUlUUERhdGFiYXNlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmg6CisgICAgICAgICogVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzUHJveHk6OnNldFVzZUlUUERhdGFiYXNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0
b3JlOjpzZXRVc2VJVFBEYXRhYmFzZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgUGFzc2VkIHRoZSBzZXRVc2VJVFBEYXRhYmFz
ZSBmbGFnIHRvIHRoZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbgorICAgICAgICBvZiB0aGUgc3Rh
dGlzdGljcyBzdG9yZSB0byBlbmFibGUgdGhlIGRhdGFiYXNlIGJhY2tlbmQuCisKKwogMjAxOS0w
OS0xMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIEF1eGlsaWFyeVByb2Nlc3NQcm94eTo6c2VuZFdpdGhBc3luY1JlcGx5IHNob3VsZCBxdWV1
ZSB1cCBtZXNzYWdlcyBpZiBzZW50IHdoaWxlIHRoZSBwcm9jZXNzIGlzIHN0YXJ0aW5nIGxpa2Ug
aXQgZG9lcyBtZXNzYWdlcyB3aXRob3V0IHJlcGxpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKaW5kZXggMTQ5ODY2ZmJjMTE5N2JhMDlkYTIxNTc1ZjFj
ZWFmYWQ2NDE5ZmU2Yi4uMDE0ZGUwZTliNDgwMzQ0ZjE3N2MzMGQzZDA4MWJiNTlmZDdkZjNkMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKQEAgLTY0
LDcgKzY0LDcgQEAgcHVibGljOgogICAgIGJvb2wgcmV0dXJuc0F0TGVhc3RPbmVSZXN1bHQoY29u
c3QgU3RyaW5nJik7CiAgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCB0YWJsZUV4aXN0cyhj
b25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIGNsZWFyQWxsVGFibGVzKCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBjbGVhckFsbFRhYmxlcygpOwogICAgIFdFQkNPUkVfRVhQT1JUIGludCBydW5W
YWN1dW1Db21tYW5kKCk7CiAgICAgaW50IHJ1bkluY3JlbWVudGFsVmFjdXVtQ29tbWFuZCgpOwog
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZS5jcHAKaW5kZXggZDRlYzg0YzdjN2QyZTE1YjRlNzhjMDI5YmExNmYyMjY2N2RjMjM2Ni4u
M2ZkZmM4YjAzNmNmYzdiMTUyZTY4YTUxODdmMDYzYTBhMTQ1YmM5ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCkBAIC0yMTMs
MTIgKzIxMyw2IEBAIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZShXZWJSZXNvCiAgICAgICAgIH0KICAgICB9CiAK
LSAgICBpZiAoIXByZXBhcmVTdGF0ZW1lbnRzKCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBy
ZXBhcmVTdGF0ZW1lbnRzIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cywgZGF0YWJh
c2UgcGF0aDogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCksIG1f
c3RvcmFnZURpcmVjdG9yeVBhdGgudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgd29ya1F1ZXVlLmRpc3Bh
dGNoQWZ0ZXIoNV9zLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIHsKICAgICAgICAg
aWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgd2Vha1RoaXMtPmNhbGN1bGF0ZUFuZFN1Ym1pdFRl
bGVtZXRyeSgpOwpAQCAtMzAwLDggKzI5NCw3IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OnByZXBhcmVTdGF0ZW1lbnRzKCkKIHsKICAgICBBU1NFUlQoIVJ1bkxv
b3A6OmlzTWFpbigpKTsKICAgICAgICAgCi0gICAgaWYgKG1fb2JzZXJ2ZWREb21haW5Db3VudC5w
cmVwYXJlKCkgIT0gU1FMSVRFX09LCi0gICAgICAgIHx8IG1faW5zZXJ0T2JzZXJ2ZWREb21haW5T
dGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgIGlmIChtX2luc2VydE9ic2VydmVk
RG9tYWluU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9pbnNl
cnRUb3BMZXZlbERvbWFpblN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCiAgICAgICAg
IHx8IG1fZG9tYWluSURGcm9tU3RyaW5nU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sK
ICAgICAgICAgfHwgbV9zdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnNTdGF0ZW1lbnQu
cHJlcGFyZSgpICE9IFNRTElURV9PSwpAQCAtMzI4LDcgKzMyMSw4IEBAIGJvb2wgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZXBhcmVTdGF0ZW1lbnRzKCkKICAgICAgICAg
fHwgbV91cGRhdGVHcmFuZGZhdGhlcmVkU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sK
ICAgICAgICAgfHwgbV9pc0dyYW5kZmF0aGVyZWRTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElU
RV9PSwogICAgICAgICB8fCBtX2ZpbmRFeHBpcmVkVXNlckludGVyYWN0aW9uU3RhdGVtZW50LnBy
ZXBhcmUoKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgKSB7CisgICAgICAgIHx8IG1fdG9wRnJhbWVM
aW5rRGVjb3JhdGlvbnNGcm9tLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgbV90
b3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb21FeGlzdHMucHJlcGFyZSgpICE9IFNRTElURV9PSykg
ewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMgZmFpbGVkIHRvIHByZXBh
cmUsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJv
ck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTM3MiwxMSArMzY2LDE0IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6Omluc2VydE9ic2VydmVkRG9tYWluKGNvbnN0IFJlc291cmNlTG9hCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OnJlbGF0aW9uc2hpcEV4aXN0cyhXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQmIHN0YXRlbWVu
dCwgdW5zaWduZWQgZmlyc3REb21haW5JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHNlY29u
ZERvbWFpbikgY29uc3QKK2Jvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OnJlbGF0aW9uc2hpcEV4aXN0cyhXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQmIHN0YXRlbWVudCwg
T3B0aW9uYWw8dW5zaWduZWQ+IGZpcnN0RG9tYWluSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBzZWNvbmREb21haW4pIGNvbnN0CiB7CisgICAgaWYgKGZpcnN0RG9tYWluSUQgPT0gV1RGOjpu
dWxsb3B0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCiAgICAgQVNTRVJUKCFSdW5Mb29w
Ojppc01haW4oKSk7CiAKLSAgICBpZiAoc3RhdGVtZW50LmJpbmRJbnQoMSwgZmlyc3REb21haW5J
RCkgIT0gU1FMSVRFX09LCisgICAgaWYgKHN0YXRlbWVudC5iaW5kSW50KDEsIGZpcnN0RG9tYWlu
SUQudmFsdWUoKSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHN0YXRlbWVudC5iaW5kVGV4dCgy
LCBzZWNvbmREb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzdGF0ZW1l
bnQuc3RlcCgpICE9IFNRTElURV9ST1cpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0
d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1faW5zZXJ0
RG9tYWluUmVsYXRpb25zaGlwU3RhdGVtZW50IGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdl
OiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CkBAIC0zODQs
MTIgKzM4MSwxMiBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpy
ZWxhdGlvbnNoaXBFeGlzdHMoV2ViQ29yZTo6U1FMaXRlU3RhdAogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogICAgIAotICAgIGJvb2wgcmVsYXRpb25TaGlwRXhpc3RzID0gISFzdGF0ZW1l
bnQuZ2V0Q29sdW1uSW50KDApOworICAgIGJvb2wgcmVsYXRpb25zaGlwRXhpc3RzID0gISFzdGF0
ZW1lbnQuZ2V0Q29sdW1uSW50KDApOwogCiAgICAgaW50IHJlc2V0UmVzdWx0ID0gc3RhdGVtZW50
LnJlc2V0KCk7CiAgICAgQVNTRVJUX1VOVVNFRChyZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQgPT0g
U1FMSVRFX09LKTsKICAgICAKLSAgICByZXR1cm4gcmVsYXRpb25TaGlwRXhpc3RzOworICAgIHJl
dHVybiByZWxhdGlvbnNoaXBFeGlzdHM7CiB9CiAKIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6Omluc2VydERvbWFpblJlbGF0aW9uc2hpcChXZWJDb3JlOjpTUUxpdGVT
dGF0ZW1lbnQmIHN0YXRlbWVudCwgdW5zaWduZWQgZG9tYWluSUQsIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiB0b3BGcmFtZSkKQEAgLTQzNCw3ICs0MzEsNyBAQCBib29sIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjb25maXJtRG9tYWluRG9lc05vdEV4aXN0KGNvbnN0IFJl
Z2lzdAogfQogI2VuZGlmCiAKLXVuc2lnbmVkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpkb21haW5JRChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKSBjb25zdAor
T3B0aW9uYWw8dW5zaWduZWQ+IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpk
b21haW5JRChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKSBjb25zdAogewogICAgIEFT
U0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC00NDMsOCArNDQwLDcgQEAgdW5zaWduZWQg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmRvbWFpbklEKGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJgogICAgIGlmIChtX2RvbWFpbklERnJvbVN0cmluZ1N0YXRlbWVudC5iaW5k
VGV4dCgxLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX2RvbWFp
bklERnJvbVN0cmluZ1N0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX1JPVykgewogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6ZG9tYWluSURGcm9tU3RyaW5nIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtw
dWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwotICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIGRvbWFpbklEOworICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIAogICAgIGRvbWFpbklEID0gbV9kb21haW5JREZyb21T
dHJpbmdTdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDApOwpAQCAtNDU4LDM2ICs0NTQsNDggQEAgdW5z
aWduZWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmRvbWFpbklEKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJgogdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwcyhjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzJiBsb2FkU3RhdGlzdGljcykKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsK
LQorICAgIAogICAgIGF1dG8gcmVnaXN0cmFibGVEb21haW5JRCA9IGRvbWFpbklEKGxvYWRTdGF0
aXN0aWNzLnJlZ2lzdHJhYmxlRG9tYWluKTsKKyAgICAKKyAgICBpZiAocmVnaXN0cmFibGVEb21h
aW5JRCA9PSBXVEY6Om51bGxvcHQpCisgICAgICAgIHJldHVybjsKKyAgICAKICAgICBmb3IgKGF1
dG8mIHRvcEZyYW1lRG9tYWluIDogbG9hZFN0YXRpc3RpY3Muc3RvcmFnZUFjY2Vzc1VuZGVyVG9w
RnJhbWVEb21haW5zKQotICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdG9yYWdl
QWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnNTdGF0ZW1lbnQsIHJlZ2lzdHJhYmxlRG9tYWluSUQs
IHRvcEZyYW1lRG9tYWluKTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fc3Rv
cmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zU3RhdGVtZW50LCByZWdpc3RyYWJsZURvbWFp
bklELnZhbHVlKCksIHRvcEZyYW1lRG9tYWluKTsKIAogICAgIGZvciAoYXV0byYgdG9Eb21haW4g
OiBsb2FkU3RhdGlzdGljcy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvKQotICAgICAgICBpbnNl
cnREb21haW5SZWxhdGlvbnNoaXAobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvLCByZWdpc3Ry
YWJsZURvbWFpbklELCB0b0RvbWFpbik7CisgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hp
cChtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8sIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUo
KSwgdG9Eb21haW4pOwogICAgIAogICAgIGZvciAoYXV0byYgZnJvbURvbWFpbiA6IGxvYWRTdGF0
aXN0aWNzLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSkKLSAgICAgICAgaW5zZXJ0RG9tYWlu
UmVsYXRpb25zaGlwKG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLCByZWdpc3RyYWJsZURv
bWFpbklELCBmcm9tRG9tYWluKTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1f
dG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLCByZWdpc3RyYWJsZURvbWFpbklELnZhbHVlKCks
IGZyb21Eb21haW4pOwogICAgIAogICAgIGZvciAoYXV0byYgdG9wRnJhbWVEb21haW4gOiBsb2Fk
U3RhdGlzdGljcy5zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zKQotICAgICAgICBpbnNlcnRE
b21haW5SZWxhdGlvbnNoaXAobV9zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zLCByZWdpc3Ry
YWJsZURvbWFpbklELCB0b3BGcmFtZURvbWFpbik7CisgICAgICAgIGluc2VydERvbWFpblJlbGF0
aW9uc2hpcChtX3N1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMsIHJlZ2lzdHJhYmxlRG9tYWlu
SUQudmFsdWUoKSwgdG9wRnJhbWVEb21haW4pOwogICAgIAogICAgIGZvciAoYXV0byYgdG9wRnJh
bWVEb21haW4gOiBsb2FkU3RhdGlzdGljcy5zdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5z
KQotICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVuZGVyVG9w
RnJhbWVEb21haW5zLCByZWdpc3RyYWJsZURvbWFpbklELCB0b3BGcmFtZURvbWFpbik7CisgICAg
ICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5kZXJUb3BGcmFtZURv
bWFpbnMsIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgdG9wRnJhbWVEb21haW4pOwogICAg
IAogICAgIGZvciAoYXV0byYgdG9Eb21haW4gOiBsb2FkU3RhdGlzdGljcy5zdWJyZXNvdXJjZVVu
aXF1ZVJlZGlyZWN0c1RvKQotICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLCByZWdpc3RyYWJsZURvbWFpbklELCB0b0RvbWFpbik7
CisgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5pcXVlUmVk
aXJlY3RzVG8sIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgdG9Eb21haW4pOwogICAgIAog
ICAgIGZvciAoYXV0byYgZnJvbURvbWFpbiA6IGxvYWRTdGF0aXN0aWNzLnN1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RzRnJvbSkKLSAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fc3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLCByZWdpc3RyYWJsZURvbWFpbklELCBmcm9tRG9t
YWluKTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fc3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdHNGcm9tLCByZWdpc3RyYWJsZURvbWFpbklELnZhbHVlKCksIGZyb21Eb21haW4p
OwogfQogCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwb3B1bGF0
ZUZyb21NZW1vcnlTdG9yZShjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUm
IG1lbW9yeVN0b3JlKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAg
aWYgKCFpc0VtcHR5KCkpCisgICAgbV9vYnNlcnZlZERvbWFpbkNvdW50LnByZXBhcmUoKTsKKwor
ICAgIGlmICghaXNFbXB0eSgpKSB7CisgICAgICAgIGlmICghcHJlcGFyZVN0YXRlbWVudHMoKSkg
eworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZXBhcmVTdGF0ZW1lbnRzIGZhaWxlZCwgZXJy
b3IgbWVzc2FnZTogJXtwdWJsaWN9cywgZGF0YWJhc2UgcGF0aDogJXtwdWJsaWN9cyIsIHRoaXMs
IG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCksIG1fc3RvcmFnZURpcmVjdG9yeVBhdGgudXRmOCgp
LmRhdGEoKSk7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgYXV0byYg
c3RhdGlzdGljc01hcCA9IG1lbW9yeVN0b3JlLmRhdGEoKTsKICAgICBmb3IgKGNvbnN0IGF1dG8m
IHN0YXRpc3RpYyA6IHN0YXRpc3RpY3NNYXApCkBAIC00OTksNiArNTA3LDEyIEBAIHZvaWQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBvcHVsYXRlRnJvbU1lbW9yeVN0b3Jl
KGNvbnN0IFJlc291cmNlCiAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcHMoc3RhdGlz
dGljLnZhbHVlKTsKIAogICAgIG1fZGF0YWJhc2UucnVuVmFjdXVtQ29tbWFuZCgpOworCisgICAg
aWYgKCFwcmVwYXJlU3RhdGVtZW50cygpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5l
dHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJl
U3RhdGVtZW50cyBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMsIGRhdGFiYXNlIHBh
dGg6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpLCBtX3N0b3Jh
Z2VEaXJlY3RvcnlQYXRoLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIH0KIAogdm9pZCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2FsY3VsYXRlQW5kU3VibWl0VGVsZW1ldHJ5KCkgY29uc3QK
QEAgLTU0Niw3ICs1NjAsNyBAQCB1bnNpZ25lZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6cmVjdXJzaXZlbHlGaW5kTm9uUHJldmFsZW50RG9tYWlucwogICAgICsrbnVtYmVy
T2ZSZWN1cnNpdmVDYWxsczsKIAogICAgIFN0ZFNldDx1bnNpZ25lZD4gbmV3bHlJZGVudGlmaWVk
RG9tYWluczsKLSAgICBTUUxpdGVTdGF0ZW1lbnQgZmluZFN1YnJlc291cmNlcyhtX2RhdGFiYXNl
LCBtYWtlU3RyaW5nKCJTRUxFQ1QgU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21E
b21haW5JRCBmcm9tIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSBJTk5FUiBKT0lOIE9i
c2VydmVkRG9tYWlucyBPTiBPYnNlcnZlZERvbWFpbnMuZG9tYWluSUQgPSBTdWJyZXNvdXJjZVVu
aXF1ZVJlZGlyZWN0c0Zyb20uZnJvbURvbWFpbklEIFdIRVJFIHN1YnJlc291cmNlRG9tYWluSUQg
PSAiLCBTdHJpbmc6Om51bWJlcihwcmltYXJ5RG9tYWluSUQpLCAiQU5EIE9ic2VydmVkRG9tYWlu
cy5pc1ByZXZhbGVudCA9IDAiKSk7CisgICAgU1FMaXRlU3RhdGVtZW50IGZpbmRTdWJyZXNvdXJj
ZXMobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIFN1YnJlc291cmNlVW5pcXVlUmVkaXJl
Y3RzRnJvbS5mcm9tRG9tYWluSUQgZnJvbSBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20g
SU5ORVIgSk9JTiBPYnNlcnZlZERvbWFpbnMgT04gT2JzZXJ2ZWREb21haW5zLmRvbWFpbklEID0g
U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5JRCBXSEVSRSBzdWJyZXNv
dXJjZURvbWFpbklEID0gIiwgU3RyaW5nOjpudW1iZXIocHJpbWFyeURvbWFpbklEKSwgIiBBTkQg
T2JzZXJ2ZWREb21haW5zLmlzUHJldmFsZW50ID0gMCIpKTsKICAgICBpZiAoZmluZFN1YnJlc291
cmNlcy5wcmVwYXJlKCkgPT0gU1FMSVRFX09LKSB7CiAgICAgICAgIHdoaWxlIChmaW5kU3VicmVz
b3VyY2VzLnN0ZXAoKSA9PSBTUUxJVEVfUk9XKSB7CiAgICAgICAgICAgICBhdXRvIG5ld0RvbWFp
bklEID0gZmluZFN1YnJlc291cmNlcy5nZXRDb2x1bW5JbnQoMCk7CkBAIC01NTYsNyArNTcwLDcg
QEAgdW5zaWduZWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlY3Vyc2l2
ZWx5RmluZE5vblByZXZhbGVudERvbWFpbnMKICAgICAgICAgfQogICAgIH0KIAotICAgIFNRTGl0
ZVN0YXRlbWVudCBmaW5kVG9wRnJhbWVzKG1fZGF0YWJhc2UsIG1ha2VTdHJpbmcoIlNFTEVDVCBU
b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20uZnJvbURvbWFpbklEIGZyb20gVG9wRnJhbWVVbmlx
dWVSZWRpcmVjdHNGcm9tIElOTkVSIEpPSU4gT2JzZXJ2ZWREb21haW5zIE9OIE9ic2VydmVkRG9t
YWlucy5kb21haW5JRCA9IFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQg
V0hFUkUgdGFyZ2V0RG9tYWluSUQgPSAiLCBTdHJpbmc6Om51bWJlcihwcmltYXJ5RG9tYWluSUQp
LCAiQU5EIE9ic2VydmVkRG9tYWlucy5pc1ByZXZhbGVudCA9IDAiKSk7CisgICAgU1FMaXRlU3Rh
dGVtZW50IGZpbmRUb3BGcmFtZXMobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIFRvcEZy
YW1lVW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQgZnJvbSBUb3BGcmFtZVVuaXF1ZVJl
ZGlyZWN0c0Zyb20gSU5ORVIgSk9JTiBPYnNlcnZlZERvbWFpbnMgT04gT2JzZXJ2ZWREb21haW5z
LmRvbWFpbklEID0gVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5JRCBXSEVS
RSB0YXJnZXREb21haW5JRCA9ICIsIFN0cmluZzo6bnVtYmVyKHByaW1hcnlEb21haW5JRCksICIg
QU5EIE9ic2VydmVkRG9tYWlucy5pc1ByZXZhbGVudCA9IDAiKSk7CiAgICAgaWYgKGZpbmRUb3BG
cmFtZXMucHJlcGFyZSgpID09IFNRTElURV9PSykgewogICAgICAgICB3aGlsZSAoZmluZFRvcEZy
YW1lcy5zdGVwKCkgPT0gU1FMSVRFX1JPVykgewogICAgICAgICAgICAgYXV0byBuZXdEb21haW5J
RCA9IGZpbmRUb3BGcmFtZXMuZ2V0Q29sdW1uSW50KDApOwpAQCAtNjU3LDcgKzY3MSw3IEBAIEhh
c2hNYXA8dW5zaWduZWQsIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpOb3RW
ZXJ5UHJldmFsZW50UmVzb3VyY2VzCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBTUUxpdGVTdGF0
ZW1lbnQgc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluc0NvdW50U3RhdGVtZW50KG1fZGF0YWJh
c2UsIG1ha2VTdHJpbmcoIlNFTEVDVCBzdWJyZXNvdXJjZURvbWFpbklELCBDT1VOVCh0b3BGcmFt
ZURvbWFpbklEKSBGUk9NIFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMgV0hFUkUgc3Vi
cmVzb3VyY2VEb21haW5JRCBJTiAoIiwgZG9tYWluSURzT2ZJbnRlcmVzdCwgIikgR1JPVVAgQlkg
c3VicmVzb3VyY2VEb21haW5JRCIpKTsKKyAgICBTUUxpdGVTdGF0ZW1lbnQgc3ViZnJhbWVVbmRl
clRvcEZyYW1lRG9tYWluc0NvdW50U3RhdGVtZW50KG1fZGF0YWJhc2UsIG1ha2VTdHJpbmcoIlNF
TEVDVCBzdWJmcmFtZURvbWFpbklELCBDT1VOVCh0b3BGcmFtZURvbWFpbklEKSBGUk9NIFN1YmZy
YW1lVW5kZXJUb3BGcmFtZURvbWFpbnMgV0hFUkUgc3ViZnJhbWVEb21haW5JRCBJTiAoIiwgZG9t
YWluSURzT2ZJbnRlcmVzdCwgIikgR1JPVVAgQlkgc3ViZnJhbWVEb21haW5JRCIpKTsKICAgICBp
ZiAoc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluc0NvdW50U3RhdGVtZW50LnByZXBhcmUoKSA9
PSBTUUxJVEVfT0spIHsKICAgICAgICAgd2hpbGUgKHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFp
bnNDb3VudFN0YXRlbWVudC5zdGVwKCkgPT0gU1FMSVRFX1JPVykgewogICAgICAgICAgICAgdW5z
aWduZWQgZG9tYWluSUQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3ViZnJhbWVVbmRlclRvcEZy
YW1lRG9tYWluc0NvdW50U3RhdGVtZW50LmdldENvbHVtbkludCgwKSk7CkBAIC02ODcsMTIgKzcw
MSwxMiBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWNsYXNz
aWZ5UmVzb3VyY2VzKCkKICAgICBhdXRvIG5vdFZlcnlQcmV2YWxlbnRSZXNvdXJjZXMgPSBmaW5k
Tm90VmVyeVByZXZhbGVudFJlc291cmNlcygpOwogCiAgICAgZm9yIChhdXRvJiByZXNvdXJjZVN0
YXRpc3RpYyA6IG5vdFZlcnlQcmV2YWxlbnRSZXNvdXJjZXMudmFsdWVzKCkpIHsKLSAgICAgICAg
aWYgKHNob3VsZFNraXAocmVzb3VyY2VTdGF0aXN0aWMucmVnaXN0ZXJhYmxlRG9tYWluKSkKKyAg
ICAgICAgaWYgKHNob3VsZFNraXAocmVzb3VyY2VTdGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4p
KQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgYXV0byBuZXdQcmV2YWxlbmNlID0g
Y2xhc3NpZmllcigpLmNhbGN1bGF0ZVJlc291cmNlUHJldmFsZW5jZShyZXNvdXJjZVN0YXRpc3Rp
Yy5zdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnQsIHJlc291cmNlU3RhdGlzdGlj
LnN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9Db3VudCwgcmVzb3VyY2VTdGF0aXN0aWMuc3Vi
ZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluc0NvdW50LCByZXNvdXJjZVN0YXRpc3RpYy50b3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0c1RvQ291bnQsIHJlc291cmNlU3RhdGlzdGljLnByZXZhbGVuY2UpOwog
ICAgICAgICBpZiAobmV3UHJldmFsZW5jZSAhPSByZXNvdXJjZVN0YXRpc3RpYy5wcmV2YWxlbmNl
KQotICAgICAgICAgICAgc2V0UHJldmFsZW50UmVzb3VyY2UocmVzb3VyY2VTdGF0aXN0aWMucmVn
aXN0ZXJhYmxlRG9tYWluLCBuZXdQcmV2YWxlbmNlKTsKKyAgICAgICAgICAgIHNldFByZXZhbGVu
dFJlc291cmNlKHJlc291cmNlU3RhdGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluLCBuZXdQcmV2YWxl
bmNlKTsKICAgICB9CiB9CiAKQEAgLTg1MSw2ICs4NjUsOSBAQCB2b2lkIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFuZGZhdGhlckRhdGFGb3JEb21haW5zKGNvbnN0IEhh
c2hTZQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAgZm9yIChhdXRv
JiByZWdpc3RyYWJsZURvbWFpbiA6IGRvbWFpbnMpCisgICAgICAgIGVuc3VyZVJlc291cmNlU3Rh
dGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHJlZ2lzdHJhYmxlRG9tYWluKTsKKwogICAgIFNR
TGl0ZVN0YXRlbWVudCBkb21haW5zVG9VcGRhdGVTdGF0ZW1lbnQobV9kYXRhYmFzZSwgbWFrZVN0
cmluZygiVVBEQVRFIE9ic2VydmVkRG9tYWlucyBTRVQgZ3JhbmRmYXRoZXJlZCA9IDEgV0hFUkUg
cmVnaXN0cmFibGVEb21haW4gSU4gKCIsIGRvbWFpbnNUb1N0cmluZyhkb21haW5zKSwgIikiKSk7
CiAgICAgaWYgKGRvbWFpbnNUb1VwZGF0ZVN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09L
CiAgICAgICAgIHx8IGRvbWFpbnNUb1VwZGF0ZVN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RP
TkUpIHsKQEAgLTg5NCw3ICs5MTEsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgUmVnaXN0cmFibGVEbwogICAgIGlm
ICghaXNNYWluRnJhbWUgJiYgIShhcmVUYXJnZXRBbmRUb3BGcmFtZURvbWFpbnNTYW1lU2l0ZSB8
fCBhcmVUYXJnZXRBbmRTb3VyY2VEb21haW5zU2FtZVNpdGUpKSB7CiAgICAgICAgIGF1dG8gdGFy
Z2V0UmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4o
dGFyZ2V0RG9tYWluKTsKICAgICAgICAgdXBkYXRlTGFzdFNlZW4odGFyZ2V0RG9tYWluLCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzOjpyZWR1Y2VUaW1lUmVzb2x1dGlvbihXYWxsVGltZTo6bm93KCkp
KTsKLQorICAgICAgICBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFp
bih0b3BGcmFtZURvbWFpbik7CiAgICAgICAgIGlmICghcmVsYXRpb25zaGlwRXhpc3RzKG1fc3Vi
ZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluRXhpc3RzLCB0YXJnZXRSZXN1bHQuc2Vjb25kLCB0b3BG
cmFtZURvbWFpbikpIHsKICAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1
YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMsIHRhcmdldFJlc3VsdC5zZWNvbmQsIHRvcEZyYW1l
RG9tYWluKTsKICAgICAgICAgICAgIHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7CkBAIC05
MDQsMjQgKzkyMSwyNSBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
Ojpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgUmVnaXN0cmFibGVEbwogICAgIGlmIChpc1JlZGly
ZWN0ICYmICFhcmVUYXJnZXRBbmRTb3VyY2VEb21haW5zU2FtZVNpdGUpIHsKICAgICAgICAgaWYg
KGlzTWFpbkZyYW1lKSB7CiAgICAgICAgICAgICBhdXRvIHJlZGlyZWN0aW5nRG9tYWluUmVzdWx0
ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4oc291cmNlRG9t
YWluKTsKKyAgICAgICAgICAgIGF1dG8gdGFyZ2V0UmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0
aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4odGFyZ2V0RG9tYWluKTsKKwogICAgICAgICAgICAg
aWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvRXhpc3Rz
LCByZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQsIHRhcmdldERvbWFpbikpIHsKICAgICAg
ICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV90b3BGcmFtZVVuaXF1ZVJlZGly
ZWN0c1RvLCByZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQsIHRhcmdldERvbWFpbik7CiAg
ICAgICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKICAgICAgICAgICAg
IH0KIAotICAgICAgICAgICAgYXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRp
c3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0YXJnZXREb21haW4pOwogICAgICAgICAgICAgaWYg
KCFyZWxhdGlvbnNoaXBFeGlzdHMobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb21FeGlzdHMs
IHRhcmdldFJlc3VsdC5zZWNvbmQsIHNvdXJjZURvbWFpbikpIHsKICAgICAgICAgICAgICAgICBp
bnNlcnREb21haW5SZWxhdGlvbnNoaXAobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHRh
cmdldFJlc3VsdC5zZWNvbmQsIHNvdXJjZURvbWFpbik7CiAgICAgICAgICAgICAgICAgc3RhdGlz
dGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgIGF1dG8gcmVkaXJlY3RpbmdEb21haW5SZXN1bHQgPSBlbnN1cmVSZXNvdXJj
ZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihzb3VyY2VEb21haW4pOworICAgICAgICAg
ICAgYXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3Ry
YWJsZURvbWFpbih0YXJnZXREb21haW4pOwogICAgICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBF
eGlzdHMobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvRXhpc3RzLCByZWRpcmVjdGluZ0Rv
bWFpblJlc3VsdC5zZWNvbmQsIHRhcmdldERvbWFpbikpIHsKICAgICAgICAgICAgICAgICBpbnNl
cnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLCByZWRp
cmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQsIHRhcmdldERvbWFpbik7CiAgICAgICAgICAgICAg
ICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAotICAgICAg
ICAgICAgYXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdp
c3RyYWJsZURvbWFpbih0YXJnZXREb21haW4pOwogICAgICAgICAgICAgaWYgKCFyZWxhdGlvbnNo
aXBFeGlzdHMobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb21FeGlzdHMsIHRhcmdldFJl
c3VsdC5zZWNvbmQsIHNvdXJjZURvbWFpbikpIHsKICAgICAgICAgICAgICAgICBpbnNlcnREb21h
aW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHRhcmdldFJl
c3VsdC5zZWNvbmQsIHNvdXJjZURvbWFpbik7CiAgICAgICAgICAgICAgICAgc3RhdGlzdGljc1dl
cmVVcGRhdGVkID0gdHJ1ZTsKQEAgLTk5MSwxNSArMTAwOSwyMCBAQCBib29sIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNIYWRVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVn
aXN0cmFibAogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgaWYgKG1faGFk
VXNlckludGVyYWN0aW9uU3RhdGVtZW50LmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJpbmcoKSkgIT0g
U1FMSVRFX09LCi0gICAgICAgIHx8IG1faGFkVXNlckludGVyYWN0aW9uU3RhdGVtZW50LnN0ZXAo
KSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAi
JXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV91cGRhdGVQcmV2YWxl
bnRSZXNvdXJjZVN0YXRlbWVudCBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0
aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIHx8IG1faGFkVXNlckludGVyYWN0aW9uU3RhdGVtZW50LnN0ZXAoKSAh
PSBTUUxJVEVfUk9XKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAt
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptX2hhZFVzZXJJbnRlcmFjdGlv
blN0YXRlbWVudCBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2Rh
dGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKworICAgICAgICBpbnQgcmVzZXRSZXN1bHQgPSBtX2hh
ZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5yZXNldCgpOworICAgICAgICBBU1NFUlRfVU5VU0VE
KHJlc2V0UmVzdWx0LCByZXNldFJlc3VsdCA9PSBTUUxJVEVfT0spOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogCiAgICAgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24gPSAhIW1faGFkVXNl
ckludGVyYWN0aW9uU3RhdGVtZW50LmdldENvbHVtbkludCgwKTsKLSAgICBpZiAoIWhhZFVzZXJJ
bnRlcmFjdGlvbikKKyAgICBpZiAoIWhhZFVzZXJJbnRlcmFjdGlvbikgeworICAgICAgICBpbnQg
cmVzZXRSZXN1bHQgPSBtX2hhZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5yZXNldCgpOworICAg
ICAgICBBU1NFUlRfVU5VU0VEKHJlc2V0UmVzdWx0LCByZXNldFJlc3VsdCA9PSBTUUxJVEVfT0sp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogICAgIAogICAgIFdhbGxUaW1lIG1vc3RS
ZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKG1faGFk
VXNlckludGVyYWN0aW9uU3RhdGVtZW50LmdldENvbHVtbkRvdWJsZSgxKSk7CiAKQEAgLTEwMTEs
NiArMTAzNCw5IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhh
c0hhZFVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsCiAgICAgICAgIGhhZFVzZXJJbnRl
cmFjdGlvbiA9IGZhbHNlOwogICAgIH0KICAgICAKKyAgICBpbnQgcmVzZXRSZXN1bHQgPSBtX2hh
ZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5yZXNldCgpOworICAgIEFTU0VSVF9VTlVTRUQocmVz
ZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNRTElURV9PSyk7CisKICAgICByZXR1cm4gaGFkVXNl
ckludGVyYWN0aW9uOwogfQogCkBAIC0xMDQ1LDcgKzEwNzEsNyBAQCB2b2lkIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdp
c3RyYWJsZQogICAgIH0KIAogICAgIFN0ZFNldDx1bnNpZ25lZD4gbm9uUHJldmFsZW50UmVkaXJl
Y3Rpb25Tb3VyY2VzOwotICAgIHJlY3Vyc2l2ZWx5RmluZE5vblByZXZhbGVudERvbWFpbnNUaGF0
UmVkaXJlY3RlZFRvVGhpc0RvbWFpbihkb21haW5JRChkb21haW4pLCBub25QcmV2YWxlbnRSZWRp
cmVjdGlvblNvdXJjZXMsIDApOworICAgIHJlY3Vyc2l2ZWx5RmluZE5vblByZXZhbGVudERvbWFp
bnNUaGF0UmVkaXJlY3RlZFRvVGhpc0RvbWFpbihkb21haW5JRChkb21haW4pLnZhbHVlKCksIG5v
blByZXZhbGVudFJlZGlyZWN0aW9uU291cmNlcywgMCk7CiAgICAgc2V0RG9tYWluc0FzUHJldmFs
ZW50KFdURk1vdmUobm9uUHJldmFsZW50UmVkaXJlY3Rpb25Tb3VyY2VzKSk7CiB9CiAKQEAgLTEw
NzYsOSArMTEwMiwxMiBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpwcmVkaWNhdGVWYWx1ZUZvckRvbWFpbihXZWJDb3JlOjpTUUxpdAogICAgIEFTU0VSVCghUnVu
TG9vcDo6aXNNYWluKCkpOwogICAgIAogICAgIGlmIChwcmVkaWNhdGVTdGF0ZW1lbnQuYmluZFRl
eHQoMSwgZG9tYWluLnN0cmluZygpKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgfHwgcHJlZGljYXRl
U3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgeworICAgICAgICB8fCBwcmVkaWNhdGVT
dGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ST1cpIHsKKworICAgICAgICBpbnQgcmVzZXRSZXN1
bHQgPSBwcmVkaWNhdGVTdGF0ZW1lbnQucmVzZXQoKTsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChy
ZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQgPT0gU1FMSVRFX09LKTsKKwogICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6cHJlZGljYXRlVmFsdWVGb3JEb21haW4gZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3Nh
Z2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKLSAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAK
QEAgLTEyNDgsNyArMTI3Nyw3IEBAIHN0ZDo6cGFpcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6QWRkZWRSZWNvcmQsIHVuc2lnbmVkPiBSZXNvdXJjZUxvCiAgICAgQVNTRVJU
KCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBpZiAobV9kb21haW5JREZyb21TdHJpbmdTdGF0
ZW1lbnQuYmluZFRleHQoMSwgZG9tYWluLnN0cmluZygpKSAhPSBTUUxJVEVfT0spIHsKLSAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OmNyZWF0ZVNjaGVtYSBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVi
bGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OmVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluIGZhaWxl
ZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9y
TXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIHsg
QWRkZWRSZWNvcmQ6Ok5vLCAwIH07CiAgICAgfQpAQCAtMTI2NywxMyArMTI5NiwyNyBAQCBzdGQ6
OnBhaXI8UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OkFkZGVkUmVjb3JkLCB1
bnNpZ25lZD4gUmVzb3VyY2VMbwogICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgbmV3T2JzZXJ2
YXRpb24oZG9tYWluKTsKICAgICBpbnNlcnRPYnNlcnZlZERvbWFpbihuZXdPYnNlcnZhdGlvbik7
CiAKLSAgICByZXR1cm4geyBBZGRlZFJlY29yZDo6WWVzLCBkb21haW5JRChkb21haW4pIH07Cisg
ICAgcmV0dXJuIHsgQWRkZWRSZWNvcmQ6OlllcywgZG9tYWluSUQoZG9tYWluKS52YWx1ZSgpIH07
Cit9CisKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyRGF0
YWJhc2VDb250ZW50cygpCit7CisgICAgbV9kYXRhYmFzZS5jbGVhckFsbFRhYmxlcygpOworCisg
ICAgaWYgKCFtX2RhdGFiYXNlLnRhYmxlRXhpc3RzKCJPYnNlcnZlZERvbWFpbnMiX3MpKSB7Cisg
ICAgICAgIGlmICghY3JlYXRlU2NoZW1hKCkpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpj
bGVhckRhdGFiYXNlQ29udGVudHMgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zLCBk
YXRhYmFzZSBwYXRoOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2co
KSwgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aC51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAg
fQogfQogCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhcihD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKKyAgICBjbGVhckRhdGFiYXNlQ29udGVudHMoKTsK
ICAgICBjbGVhck9wZXJhdGluZ0RhdGVzKCk7CiAKICAgICBhdXRvIGNhbGxiYWNrQWdncmVnYXRv
ciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKQEAgLTEzMDcsNyArMTM1MCw3IEBAIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzVXNlckdyYW50ZWRTCiB7CiAgICAg
QVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBhdXRvIGZpcnN0UGFydHlQcmltYXJ5
RG9tYWluSUQgPSBkb21haW5JRChmaXJzdFBhcnR5RG9tYWluKTsKKyAgICBhdXRvIGZpcnN0UGFy
dHlQcmltYXJ5RG9tYWluSUQgPSBkb21haW5JRChmaXJzdFBhcnR5RG9tYWluKS52YWx1ZSgpOwog
CiAgICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudChtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJT
RUxFQ1QgQ09VTlQoKikgRlJPTSBTdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMgV0hF
UkUgZG9tYWluSUQgPSAiLCBTdHJpbmc6Om51bWJlcihyZXF1ZXN0aW5nRG9tYWluSUQpLCAiIEFO
RCB0b3BMZXZlbERvbWFpbklEID0gIiwgU3RyaW5nOjpudW1iZXIoZmlyc3RQYXJ0eVByaW1hcnlE
b21haW5JRCkpKTsKICAgICBpZiAoc3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKQEAg
LTE0NjIsOSArMTUwNSwxOSBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpjbGVhckdyYW5kZmF0aGVyaW5nKFZlY3Rvcjx1bnNpZ25lZD4mJgogICAgIH0KIH0KIAot
Ym9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2hvdWxkUmVtb3ZlQWxs
V2Vic2l0ZURhdGFGb3IoY29uc3QgUHJldmFsZW50RG9tYWluRGF0YSYgcmVzb3VyY2VTdGF0aXN0
aWMsIGJvb2wgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZykgY29uc3QKK2Jvb2wgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc0hhZFVuZXhwaXJlZFJlY2VudFVzZXJJ
bnRlcmFjdGlvbihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiByZXNvdXJjZVN0YXRpc3RpYywg
T3BlcmF0aW5nRGF0ZXNXaW5kb3cgb3BlcmF0aW5nRGF0ZXNXaW5kb3cpCit7CisgICAgaWYgKHJl
c291cmNlU3RhdGlzdGljLmhhZFVzZXJJbnRlcmFjdGlvbiAmJiBoYXNTdGF0aXN0aWNzRXhwaXJl
ZChyZXNvdXJjZVN0YXRpc3RpYy5tb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZSwgb3BlcmF0
aW5nRGF0ZXNXaW5kb3cpKSB7CisgICAgICAgIGNsZWFyVXNlckludGVyYWN0aW9uKHJlc291cmNl
U3RhdGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0KKworICAgIHJldHVybiByZXNvdXJjZVN0YXRpc3RpYy5oYWRVc2VySW50ZXJhY3Rpb247Cit9
CisKK2Jvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNob3VsZFJlbW92
ZUFsbFdlYnNpdGVEYXRhRm9yKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmIHJlc291cmNlU3Rh
dGlzdGljLCBib29sIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpCiB7Ci0gICAgcmV0dXJu
ICFyZXNvdXJjZVN0YXRpc3RpYy5oYWRVc2VySW50ZXJhY3Rpb24gJiYgKCFzaG91bGRDaGVja0Zv
ckdyYW5kZmF0aGVyaW5nIHx8ICFyZXNvdXJjZVN0YXRpc3RpYy5ncmFuZGZhdGhlcmVkKTsKKyAg
ICByZXR1cm4gIWhhc0hhZFVuZXhwaXJlZFJlY2VudFVzZXJJbnRlcmFjdGlvbihyZXNvdXJjZVN0
YXRpc3RpYywgT3BlcmF0aW5nRGF0ZXNXaW5kb3c6OkxvbmcpICYmICghc2hvdWxkQ2hlY2tGb3JH
cmFuZGZhdGhlcmluZyB8fCAhcmVzb3VyY2VTdGF0aXN0aWMuZ3JhbmRmYXRoZXJlZCk7CiB9CiAK
IGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNob3VsZFJlbW92ZUFs
bEJ1dENvb2tpZXNGb3IoY29uc3QgUHJldmFsZW50RG9tYWluRGF0YSYgcmVzb3VyY2VTdGF0aXN0
aWMsIGJvb2wgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZykgY29uc3QKQEAgLTE0OTIsOSAr
MTU0NSw5IEBAIFZlY3RvcjxzdGQ6OnBhaXI8UmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRh
VG9SZW1vdmU+PiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzCiAgICAgVmVjdG9yPHVuc2lnbmVkPiBk
b21haW5JRHNUb0NsZWFyR3JhbmRmYXRoZXJpbmc7CiAgICAgZm9yIChhdXRvJiBzdGF0aXN0aWMg
OiBwcmV2YWxlbnREb21haW5zKSB7CiAgICAgICAgIGlmIChzaG91bGRSZW1vdmVBbGxXZWJzaXRl
RGF0YUZvcihzdGF0aXN0aWMsIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpKQotICAgICAg
ICAgICAgZG9tYWluc1RvUmVtb3ZlV2Vic2l0ZURhdGFGb3IuYXBwZW5kKHN0ZDo6bWFrZV9wYWly
KHN0YXRpc3RpYy5yZWdpc3RlcmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU6OkFsbCkp
OworICAgICAgICAgICAgZG9tYWluc1RvUmVtb3ZlV2Vic2l0ZURhdGFGb3IuYXBwZW5kKHN0ZDo6
bWFrZV9wYWlyKHN0YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92
ZTo6QWxsKSk7CiAgICAgICAgIGVsc2UgaWYgKHNob3VsZFJlbW92ZUFsbEJ1dENvb2tpZXNGb3Io
c3RhdGlzdGljLCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSkKLSAgICAgICAgICAgIGRv
bWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihzdGF0aXN0
aWMucmVnaXN0ZXJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlOjpBbGxCdXRDb29raWVz
KSk7CisgICAgICAgICAgICBkb21haW5zVG9SZW1vdmVXZWJzaXRlRGF0YUZvci5hcHBlbmQoc3Rk
OjptYWtlX3BhaXIoc3RhdGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVt
b3ZlOjpBbGxCdXRDb29raWVzKSk7CiAKICAgICAgICAgaWYgKHNob3VsZENsZWFyR3JhbmRmYXRo
ZXJpbmcgJiYgc3RhdGlzdGljLmdyYW5kZmF0aGVyZWQpCiAgICAgICAgICAgICBkb21haW5JRHNU
b0NsZWFyR3JhbmRmYXRoZXJpbmcuYXBwZW5kKHN0YXRpc3RpYy5kb21haW5JRCk7CkBAIC0xNTI0
LDcgKzE1NzcsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpw
cnVuZVN0YXRpc3RpY3NJZk5lZWRlZCgpCiAgICAgc2l6ZV90IGNvdW50TGVmdFRvUHJ1bmUgPSBj
b3VudCAtIHBhcmFtZXRlcnMoKS5wcnVuZUVudHJpZXNEb3duVG87CiAgICAgQVNTRVJUKGNvdW50
TGVmdFRvUHJ1bmUpOwogCi0gICAgU1FMaXRlU3RhdGVtZW50IHJlY29yZHNUb1BydW5lKG1fZGF0
YWJhc2UsIG1ha2VTdHJpbmcoIlNFTEVDVCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBP
UkRFUiBCWSBoYWRVc2VySW50ZXJhY3Rpb24sIGlzUHJldmFsZW50LCBsYXN0U2VlbiBERVNDIExJ
TUlUICIsIFN0cmluZzo6bnVtYmVyKGNvdW50TGVmdFRvUHJ1bmUpKSk7CisgICAgU1FMaXRlU3Rh
dGVtZW50IHJlY29yZHNUb1BydW5lKG1fZGF0YWJhc2UsIG1ha2VTdHJpbmcoIlNFTEVDVCBkb21h
aW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBPUkRFUiBCWSBoYWRVc2VySW50ZXJhY3Rpb24sIGlz
UHJldmFsZW50LCBsYXN0U2VlbiBMSU1JVCAiLCBTdHJpbmc6Om51bWJlcihjb3VudExlZnRUb1By
dW5lKSkpOwogICAgIGlmIChyZWNvcmRzVG9QcnVuZS5wcmVwYXJlKCkgIT0gU1FMSVRFX09LKSB7
CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcnVuZVN0YXRpc3RpY3NJZk5lZWRlZCBmYWlsZWQsIGVy
cm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygp
KTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCmluZGV4IDBmYjI0YWQwNjcwNDVjOWFk
MzE0ZjIzY2ZiNDQ0MGQ4YWY4NDVmZWMuLjA4ZDk5Nzg4OWNhOTA1Y2M0OWNlNDBiMWIyMzFmZTcx
YjQ4NzQ2MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZS5oCkBAIC0xMDUsMTEgKzEwNSwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRM
YXN0U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIFNlY29uZHMpIG92ZXJyaWRlOwogCiBw
cml2YXRlOgorICAgIHZvaWQgY2xlYXJEYXRhYmFzZUNvbnRlbnRzKCk7CiAgICAgYm9vbCBpbnNl
cnRPYnNlcnZlZERvbWFpbihjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJik7CiAgICAgdm9p
ZCBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBzKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3Mm
KTsKICAgICBib29sIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChXZWJDb3JlOjpTUUxpdGVTdGF0
ZW1lbnQmLCB1bnNpZ25lZCBkb21haW5JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZy
YW1lRG9tYWluKTsKLSAgICBib29sIHJlbGF0aW9uc2hpcEV4aXN0cyhXZWJDb3JlOjpTUUxpdGVT
dGF0ZW1lbnQmLCB1bnNpZ25lZCBmaXJzdERvbWFpbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgc2Vjb25kRG9tYWluKSBjb25zdDsKLSAgICB1bnNpZ25lZCBkb21haW5JRChjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYpIGNvbnN0OworICAgIGJvb2wgcmVsYXRpb25zaGlwRXhpc3RzKFdlYkNv
cmU6OlNRTGl0ZVN0YXRlbWVudCYsIE9wdGlvbmFsPHVuc2lnbmVkPiBmaXJzdERvbWFpbklELCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc2Vjb25kRG9tYWluKSBjb25zdDsKKyAgICBPcHRpb25h
bDx1bnNpZ25lZD4gZG9tYWluSUQoY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBjb25zdDsKICNp
Zm5kZWYgTkRFQlVHCiAgICAgYm9vbCBjb25maXJtRG9tYWluRG9lc05vdEV4aXN0KGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJikgY29uc3Q7CiAjZW5kaWYKQEAgLTEyMCwxMiArMTIxLDEzIEBAIHBy
aXZhdGU6CiAKICAgICBzdHJ1Y3QgUHJldmFsZW50RG9tYWluRGF0YSB7CiAgICAgICAgIHVuc2ln
bmVkIGRvbWFpbklEOwotICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWdpc3RlcmFibGVEb21h
aW47CisgICAgICAgIFJlZ2lzdHJhYmxlRG9tYWluIHJlZ2lzdHJhYmxlRG9tYWluOwogICAgICAg
ICBXYWxsVGltZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZTsKICAgICAgICAgYm9vbCBo
YWRVc2VySW50ZXJhY3Rpb247CiAgICAgICAgIGJvb2wgZ3JhbmRmYXRoZXJlZDsKICAgICB9Owog
ICAgIFZlY3RvcjxQcmV2YWxlbnREb21haW5EYXRhPiBwcmV2YWxlbnREb21haW5zKCkgY29uc3Q7
CisgICAgYm9vbCBoYXNIYWRVbmV4cGlyZWRSZWNlbnRVc2VySW50ZXJhY3Rpb24oY29uc3QgUHJl
dmFsZW50RG9tYWluRGF0YSYsIE9wZXJhdGluZ0RhdGVzV2luZG93KTsKICAgICBWZWN0b3I8dW5z
aWduZWQ+IGZpbmRFeHBpcmVkVXNlckludGVyYWN0aW9ucygpIGNvbnN0OwogICAgIHZvaWQgY2xl
YXJFeHBpcmVkVXNlckludGVyYWN0aW9ucygpOwogICAgIHZvaWQgY2xlYXJHcmFuZGZhdGhlcmlu
ZyhWZWN0b3I8dW5zaWduZWQ+JiYpOwpAQCAtMTM0LDcgKzEzNiw3IEBAIHByaXZhdGU6CiAKICAg
ICB2b2lkIHJlY2xhc3NpZnlSZXNvdXJjZXMoKTsKICAgICBzdHJ1Y3QgTm90VmVyeVByZXZhbGVu
dFJlc291cmNlcyB7Ci0gICAgICAgIFJlZ2lzdHJhYmxlRG9tYWluIHJlZ2lzdGVyYWJsZURvbWFp
bjsKKyAgICAgICAgUmVnaXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW47CiAgICAgICAg
IFJlc291cmNlTG9hZFByZXZhbGVuY2UgcHJldmFsZW5jZTsKICAgICAgICAgdW5zaWduZWQgc3Vi
cmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluc0NvdW50OwogICAgICAgICB1bnNpZ25lZCBzdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvQ291bnQ7CkBAIC0xNTgsNyArMTYwLDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHBydW5lU3RhdGlzdGljc0lmTmVlZGVkKCkgb3ZlcnJpZGU7CiAgICAgZW51
bSBjbGFzcyBBZGRlZFJlY29yZCB7IE5vLCBZZXMgfTsKICAgICBzdGQ6OnBhaXI8QWRkZWRSZWNv
cmQsIHVuc2lnbmVkPiBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFp
bihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpOwotICAgIGJvb2wgc2hvdWxkUmVtb3ZlQWxsV2Vi
c2l0ZURhdGFGb3IoY29uc3QgUHJldmFsZW50RG9tYWluRGF0YSYsIGJvb2wgc2hvdWxkQ2hlY2tG
b3JHcmFuZGZhdGhlcmluZykgY29uc3Q7CisgICAgYm9vbCBzaG91bGRSZW1vdmVBbGxXZWJzaXRl
RGF0YUZvcihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiwgYm9vbCBzaG91bGRDaGVja0Zvckdy
YW5kZmF0aGVyaW5nKTsKICAgICBib29sIHNob3VsZFJlbW92ZUFsbEJ1dENvb2tpZXNGb3IoY29u
c3QgUHJldmFsZW50RG9tYWluRGF0YSYsIGJvb2wgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmlu
ZykgY29uc3Q7CiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxSZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0
ZURhdGFUb1JlbW92ZT4+IHJlZ2lzdHJhYmxlRG9tYWluc1RvUmVtb3ZlV2Vic2l0ZURhdGFGb3Io
KSBvdmVycmlkZTsKICAgICBib29sIGlzRGF0YWJhc2VTdG9yZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5jcHAKaW5kZXggZTQ4N2ZhNjFjNThjNTVhMjMxZmVkZjhhZTljYzEzOTZlYjYwNzIyZi4uNjc4
NWMwN2NlODYwNjg0NzRmNmJkOTc0YjM4YzI2N2U2YTdhN2NlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTE1Niw5ICsxNTYsOSBAQCBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZShOZXR3b3JrU2Vzc2lvbiYgbgogICAgICwgbV9kYWlseVRhc2tzVGltZXIoUnVuTG9vcDo6
bWFpbigpLCB0aGlzLCAmV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpwZXJmb3JtRGFp
bHlUYXNrcykKIHsKICAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAg
Ci0gICAgcG9zdFRhc2soW3RoaXMsIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5Lmlzb2xhdGVkQ29weSgpLCBzaG91bGRJbmNs
dWRlTG9jYWxob3N0XSB7Ci0gICAgICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLmlzSVRQRGF0YWJhc2VFbmFibGVkKCkpIHsKKworICAgIHBvc3RUYXNrKFt0
aGlzLCBkYXRhYmFzZUVuYWJsZWQgPSBuZXR3b3JrU2Vzc2lvbi5uZXR3b3JrUHJvY2VzcygpLmlz
SVRQRGF0YWJhc2VFbmFibGVkKCksIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5Lmlzb2xhdGVkQ29weSgpLCBzaG91bGRJbmNs
dWRlTG9jYWxob3N0XSB7CisgICAgICAgIGlmIChkYXRhYmFzZUVuYWJsZWQpIHsKICAgICAgICAg
ICAgIG1fc3RhdGlzdGljc1N0b3JlID0gbWFrZVVuaXF1ZTxSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZT4oKnRoaXMsIG1fc3RhdGlzdGljc1F1ZXVlLCBzaG91bGRJbmNsdWRlTG9j
YWxob3N0LCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KTsKIAogICAgICAgICAgICAg
YXV0byBtZW1vcnlTdG9yZSA9IG1ha2VVbmlxdWU8UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9y
eVN0b3JlPigqdGhpcywgbV9zdGF0aXN0aWNzUXVldWUsIHNob3VsZEluY2x1ZGVMb2NhbGhvc3Qp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IDkz
NTA1YWI1YWY4NDdkZGQ2NmViYTU4ZmI3NjI3MWNlNzI1Y2Q1ZjkuLjFkMzdjZjkxNWEwZTY2NDBm
OTVlN2NiY2E3NTE5M2RhZjM5MzAyZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmgKQEAgLTEzMSw2ICsxMzEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRMYXN0U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIFNlY29uZHMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9p
ZCBzZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0VXNlSVRQRGF0YWJhc2UoYm9v
bCB2YWx1ZSk7CiAgICAgdm9pZCBkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpOwogICAgIHZvaWQgaXNQcmV2YWxlbnRSZXNvdXJjZShj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OwogICAgIHZvaWQgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKQEAgLTE5MCw2ICsxOTEsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKERvbWFp
bkluTmVlZE9mU3RvcmFnZUFjY2VzcyYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBvcGVuZXJJ
RCwgT3BlbmVyRG9tYWluJiYpOwogCiBwcml2YXRlOgorICAgIHZvaWQgZmx1c2hBbmREZXN0cm95
UGVyc2lzdGVudFN0b3JlKCk7CiAgICAgZXhwbGljaXQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlKE5ldHdvcmtTZXNzaW9uJiwgY29uc3QgU3RyaW5nJiwgU2hvdWxkSW5jbHVkZUxvY2Fs
aG9zdCk7CiAKICAgICB2b2lkIHBvc3RUYXNrKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmKTsKQEAg
LTE5OSw4ICsyMDEsNiBAQCBwcml2YXRlOgogCiAgICAgU3RvcmFnZUFjY2Vzc1N0YXR1cyBzdG9y
YWdlQWNjZXNzU3RhdHVzKGNvbnN0IFN0cmluZyYgc3ViRnJhbWVQcmltYXJ5RG9tYWluLCBjb25z
dCBTdHJpbmcmIHRvcEZyYW1lUHJpbWFyeURvbWFpbik7CiAKLSAgICB2b2lkIGZsdXNoQW5kRGVz
dHJveVBlcnNpc3RlbnRTdG9yZSgpOwotCiAgICAgV2Vha1B0cjxOZXR3b3JrU2Vzc2lvbj4gbV9u
ZXR3b3JrU2Vzc2lvbjsKICAgICBSZWY8V29ya1F1ZXVlPiBtX3N0YXRpc3RpY3NRdWV1ZTsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlPiBtX3N0YXRpc3Rp
Y3NTdG9yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAKaW5kZXggZWMxYWEyZDg2ZDYwMjliNTRiZTZlODE4ZDlmZDEyNmI4N2Q5YzljNi4uNzA4
OWQ5YmJmZDBmNWU5ZjZiN2JmOTQ3NmExZjA5ZTE2MGJkMzQ4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTMxNCw3ICszMTQsOSBA
QCB2b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJgogICAgICAgICBtX2RlZmF1bHROZXR3b3JrU3RvcmFn
ZVNlc3Npb24gPSBuZXdUZXN0aW5nU2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Np
b25JRCgpKTsKICAgICB9CiAKLSAgICBXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLnNldElzSVRQRGF0YWJhc2VFbmFibGVkKHBhcmFtZXRlcnMuc2hvdWxk
RW5hYmxlSVRQRGF0YWJhc2UpOworI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1Mp
CisgICAgbV9JVFBEYXRhYmFzZUVuYWJsZWQgPSBwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZUlUUERh
dGFiYXNlOworI2VuZGlmCiAKICAgICBXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQocGFy
YW1ldGVycy5lbmFibGVBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUpOwogCkBAIC00NTksNiAr
NDYxLDggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6YWRkV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRl
RGF0YVN0b3JlUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKICAgICBhZGRJbmRleGVkRGF0YWJhc2VTZXNzaW9uKHBhcmFtZXRlcnMubmV0d29ya1Nl
c3Npb25QYXJhbWV0ZXJzLnNlc3Npb25JRCwgcGFyYW1ldGVycy5pbmRleGVkRGF0YWJhc2VEaXJl
Y3RvcnksIHBhcmFtZXRlcnMuaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
KTsKICNlbmRpZgorICAgIAorICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRs
eShwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKICAgICBpZiAocGFyZW50UHJvY2Vzc0hhc1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCgpKQpA
QCAtNjk1LDYgKzY5OSwxNSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRHcmFuZGZhdGhlcmVk
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibAogICAgIH0KIH0KIAor
dm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0VXNlSVRQRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBib29sIHZhbHVlKQoreworICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IHRo
aXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKKyAgICAgICAgbV9JVFBEYXRhYmFzZUVu
YWJsZWQgPSB2YWx1ZTsKKyAgICAgICAgbmV0d29ya1Nlc3Npb24tPmNyZWF0ZU5ld1Jlc291cmNl
TG9hZFN0YXRpc3RpY1N0b3JlKCk7CisgICAgfSBlbHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRQcmV2YWxlbnRSZXNvdXJjZShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBp
ZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSB0aGlzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQp
KSB7CkBAIC0xMjQwLDYgKzEyNTMsMTIgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aGFzSXNvbGF0
ZWRTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgV2ViQ29yZToKICAgICAg
ICAgcmVzdWx0ID0gbmV0d29ya1Nlc3Npb24tPmhhc0lzb2xhdGVkU2Vzc2lvbihkb21haW4pOwog
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdCk7CiB9CisKK2Jvb2wgTmV0d29ya1Byb2Nlc3M6
OmlzSVRQRGF0YWJhc2VFbmFibGVkKCkKK3sKKyAgICByZXR1cm4gbV9JVFBEYXRhYmFzZUVuYWJs
ZWQ7Cit9CisKICNlbmRpZiAvLyBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogCiBi
b29sIE5ldHdvcmtQcm9jZXNzOjpzZXNzaW9uSXNDb250cm9sbGVkQnlBdXRvbWF0aW9uKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCBiOGRkYzhmNDU4OTE1NjA1MDMyZTIyY2ZlOTA4MjY2
YjU2MDJkMjIxLi5kZjFjMjAxMTNmNmY1M2I2NmFjNmIzOTlhMzM2N2QxNjZmODYxZmJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0yMjQs
NiArMjI0LDcgQEAgcHVibGljOgogICAgIHZvaWQgaXNSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVy
KFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9t
YWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBpc1JlZ2lz
dGVyZWRBc1N1YnJlc291cmNlVW5kZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN1YlJlc291cmNl
RG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKTsKICAgICB2b2lkIHNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQsIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRVc2VJVFBEYXRhYmFzZShQQUw6OlNlc3Npb25J
RCwgYm9vbCB2YWx1ZSk7CiAgICAgdm9pZCBzZXRNYXhTdGF0aXN0aWNzRW50cmllcyhQQUw6OlNl
c3Npb25JRCwgdWludDY0X3QgbWF4aW11bUVudHJ5Q291bnQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
QEAgLTI2NCw2ICsyNjUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDcm9zc1NpdGVMb2FkV2l0
aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIGZyb21Eb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b0RvbWFpbiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHJlc2V0Q3Jvc3NTaXRlTG9h
ZHNXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgaGFzSXNvbGF0ZWRTZXNzaW9uKFBBTDo6U2Vz
c2lvbklELCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpIGNvbnN0OworICAgIGJvb2wgaXNJVFBEYXRhYmFzZUVuYWJsZWQo
KTsKICNlbmRpZgogCiAgICAgdXNpbmcgQ2FjaGVTdG9yYWdlUm9vdFBhdGhDYWxsYmFjayA9IENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPjsKQEAgLTU1MCw2ICs1NTIsMTAgQEAgcHJp
dmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXI+IG1f
bmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXI7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgYm9vbCBtX0lUUERhdGFiYXNlRW5hYmxlZDsKKyNlbmRp
ZgorICAgIAogICAgIGNsYXNzIFN0b3JhZ2VRdW90YU1hbmFnZXJzIHsKICAgICBwdWJsaWM6CiAg
ICAgICAgIHVpbnQ2NF90IGRlZmF1bHRRdW90YShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4m
IG9yaWdpbikgY29uc3QgeyByZXR1cm4gb3JpZ2luLnRvcE9yaWdpbiA9PSBvcmlnaW4uY2xpZW50
T3JpZ2luID8gbV9kZWZhdWx0UXVvdGEgOiBtX2RlZmF1bHRUaGlyZFBhcnR5UXVvdGE7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluCmluZGV4IGEzZjdlYTMyNjRhZmYwMWQ4NmNkMDc5MmIxMTc1NTQzM2FlZjJkMDYu
LjNhOTcyOTQ2Mzk5MWQ4ODExODI3MmEyODBkZDFmMjQzY2NiYTAxMjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5p
bgpAQCAtMTEzLDYgKzExMyw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJl
Y2VpdmVyIHsKICAgICBTdWJtaXRUZWxlbWV0cnkoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAt
PiAoKSBBc3luYwogICAgIFNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzKSAtPiAoKSBBc3luYwogICAg
IFNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQpIC0+ICgp
IEFzeW5jCisgICAgU2V0VXNlSVRQRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBi
b29sIHZhbHVlKQogICAgIFNldEdyYW5kZmF0aGVyaW5nVGltZShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFNlY29uZHMgc2Vjb25kcykgLT4gKCkgQXN5bmMKICAgICBTZXRNYXhTdGF0aXN0aWNz
RW50cmllcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IG1heGltdW1FbnRyeUNv
dW50KSAtPiAoKSBBc3luYwogICAgIFNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVt
b3ZhbChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25kcykgLT4gKCkgQXN5
bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAK
aW5kZXggYzNlZTg2MzI5OWY1YmNhODY5MjI1NjkyNTEwMzg5NGFjOGNkNGUwYy4uMzYyY2Q3MDZl
ODk0MTgyMjNmYmRiN2E1MzZhZWU5NDg5NjliY2UwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTE2MSw2ICsxNjEsMTIgQEAgdm9p
ZCBOZXR3b3JrU2Vzc2lvbjo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoYm9vbCBl
bmFibGUpCiAgICAgICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0UHJldmFsZW50UmVz
b3VyY2VGb3JEZWJ1Z01vZGUobV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50
UmVzb3VyY2UsIFtdIHsgfSk7CiB9CiAKK3ZvaWQgTmV0d29ya1Nlc3Npb246OmNyZWF0ZU5ld1Jl
c291cmNlTG9hZFN0YXRpc3RpY1N0b3JlKCkKK3sKKyAgICBkZXN0cm95UmVzb3VyY2VMb2FkU3Rh
dGlzdGljcygpOworICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6Y3JlYXRlKCp0aGlzLCBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NE
aXJlY3RvcnksIG1fc2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyk7Cit9CisKIHZvaWQgTmV0d29ya1Nlc3Npb246Om5vdGlmeVJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NQcm9jZXNzZWQoKQogewogICAgIG1fbmV0d29ya1Byb2Nlc3MtPnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6Ok5vdGlmeVJlc291
cmNlTG9hZFN0YXRpc3RpY3NQcm9jZXNzZWQoKSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKaW5kZXggMzE4ZWNlNGE0NGIyNGM0NWYxZDcwNjlk
OTg2YTMzMjJhOWE1MDI5Yi4uZjM5YzA0MGYxYmJjYTRmNDRmNThjZDU5MDJmYWRlZjQ5OWUzOWZm
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApA
QCAtODQsNiArODQsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKICAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUqIHJlc291cmNlTG9hZFN0
YXRpc3RpY3MoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MuZ2V0KCk7
IH0KICAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wpOworICAg
IHZvaWQgY3JlYXRlTmV3UmVzb3VyY2VMb2FkU3RhdGlzdGljU3RvcmUoKTsKICAgICB2b2lkIG5v
dGlmeVJlc291cmNlTG9hZFN0YXRpc3RpY3NQcm9jZXNzZWQoKTsKICAgICB2b2lkIGRlbGV0ZVdl
YnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21haW5zKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+
LCBWZWN0b3I8c3RkOjpwYWlyPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0
YVRvUmVtb3ZlPj4mJiwgYm9vbCBzaG91bGROb3RpZnlQYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGNvbnN0IEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+Jik+JiYpOwogICAg
IHZvaWQgcmVnaXN0cmFibGVEb21haW5zV2l0aFdlYnNpdGVEYXRhKE9wdGlvblNldDxXZWJzaXRl
RGF0YVR5cGU+LCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
SGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mJik+JiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAK
aW5kZXggMTg3ZTgxYTM4NmNjYjU3OTYzMDc4NTE2YzA5NGExM2IyMTJkZjgyNS4uZTJjZWI5ZGUy
ZjUwNzFmYjg5MTgzZTFlYjBiOTNlM2NkMmUxNjMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCkBAIC0yNjcs
NiArMjY3LDEzIEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzR3JhbmRmYXRo
ZXJlZChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlCiAjZW5kaWYKIH0KIAordm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVTZXRVc2VJVFBEYXRhYmFzZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYg
ZGF0YVN0b3JlUmVmLCBib29sIHZhbHVlKQoreworI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+d2Vic2l0ZURhdGFT
dG9yZSgpLnNldFVzZUlUUERhdGFiYXNlKHZhbHVlKTsKKyNlbmRpZgorfQorCiB2b2lkIFdLV2Vi
c2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oV0tX
ZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJp
bmdSZWYgdG9wRnJhbWVIb3N0KQogewogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVE
YXRhU3RvcmVSZWYuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURh
dGFTdG9yZVJlZi5oCmluZGV4IGU0OWRlMjBiOGYyNGFmMWI3MDZlNzc3NzgxNzUzNDI2ZWQ2ODQw
OTcuLmYyZjljNjJiNTIzODJkMjJjMDQzNmNmMTA4MzhkMmJiYzQ5NTQ5YzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5o
CkBAIC03MCw2ICs3MCw3IEBAIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihXS1dlYnNpdGVEYXRhCiBXS19FWFBPUlQgdm9p
ZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1dlYnNpdGVE
YXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBib29sIHZhbHVlKTsK
IHR5cGVkZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVy
ZWRGdW5jdGlvbikoYm9vbCBpc0dyYW5kZmF0aGVyZWQsIHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7
CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NHcmFuZGZhdGhl
cmVkKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3Qs
IHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVy
ZWRGdW5jdGlvbiBjYWxsYmFjayk7CitXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVT
ZXRVc2VJVFBEYXRhYmFzZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBib29s
IHZhbHVlKTsKIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NT
dWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9y
ZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0KTsKIFdLX0VY
UE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVy
VG9wRnJhbWVPcmlnaW4oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJp
bmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0KTsKIFdLX0VYUE9SVCB2b2lkIFdL
V2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8o
V0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgV0tT
dHJpbmdSZWYgaG9zdFJlZGlyZWN0ZWRUbyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA1MWIzZTkwODA2
NmU1ZjhjNDFlZDgwMWY2MWFlOWIxMDE3ZGY0ODVjLi4xODUwNGFiZjIxNTMyYjczOTAwMTQ3Yjg0
YmNmNTA0YTlhZDQ2NzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTc3Myw2ICs3NzMsMTQgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgUmVnaXMKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzOjpTZXRHcmFuZGZhdGhlcmVkKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4s
IGlzR3JhbmRmYXRoZXJlZCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRVc2VJVFBEYXRhYmFzZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIGJvb2wgdmFsdWUpCit7CisgICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgpKQorICAg
ICAgICByZXR1cm47CisgICAgCisgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNl
dFVzZUlUUERhdGFiYXNlKHNlc3Npb25JRCwgdmFsdWUpLCAwKTsKK30KKwogdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViUGFnZVByb3h5SWRl
bnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFt
ZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBhdXRvKiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5oCmluZGV4IDg4ZGE3YzA0ZjY2MmM4N2FiODMzNDkyZGI4ODkwOTY3N2M0NjM4YTAu
LmQwYjcxOWFiN2U4MjY4ZjlkZTVjNDgwYmRmYjkzMjU1ZDZmZGUxZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBA
IC0xMTYsNiArMTE2LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWdlQ2FwRm9yQ2xpZW50U2lk
ZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIE9wdGlvbmFsPFNlY29uZHM+LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Q2FjaGVNYXhBZ2VDYXAoUEFMOjpTZXNzaW9u
SUQsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRH
cmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGJv
b2wgaXNHcmFuZGZhdGhlcmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZv
aWQgc2V0VXNlSVRQRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQsIGJvb2wgdmFsdWUpOwogICAgIHZv
aWQgc2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChQQUw6OlNlc3Npb25J
RCwgYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldElzUnVu
bmluZ1Jlc291cmNlTG9hZFN0YXRpc3RpY3NUZXN0KFBBTDo6U2Vzc2lvbklELCBib29sLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Tm90aWZ5UGFnZXNXaGVuVGVs
ZW1ldHJ5V2FzQ2FwdHVyZWQoUEFMOjpTZXNzaW9uSUQsIGJvb2wsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDk1YWVkZmUxNDM3OGU2YTU4NDI0ZTc1
ZTViM2RlNWE4ZGY4ZWNiNmYuLmZjMzZiYTg2ZDZiODZkODNlMzlhY2RkNDJjZmE5YTA5ODdlYzIy
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xNjQxLDYgKzE2NDEsMTQgQEAgdm9pZCBXZWJzaXRl
RGF0YVN0b3JlOjpzZXRHcmFuZGZhdGhlcmVkKGNvbnN0IFVSTCYgdXJsLCBib29sIGlzR3JhbmRm
YXRoZXJlZCwgQ28KICAgICB9CiB9CiAKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0VXNlSVRQ
RGF0YWJhc2UoYm9vbCB2YWx1ZSkKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwor
CisgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IHByb2Nlc3NQb29scygpKQorICAgICAgICBw
cm9jZXNzUG9vbC0+ZW5zdXJlTmV0d29ya1Byb2Nlc3MoKS5zZXRVc2VJVFBEYXRhYmFzZShtX3Nl
c3Npb25JRCwgdmFsdWUpOworfQorCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldENyb3NzU2l0
ZUxvYWRXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKGNvbnN0IFVSTCYgZnJvbVVSTCwgY29u
c3QgVVJMJiB0b1VSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXgg
ZjUyZmFkZWU4Yzg2YmMxYWZjNWQ3MTg4Y2VhYTI1MWRhZGE5ZGM2My4uZWYxNTA4YTg4YzMyYjBj
MWRhOTc4OTU5OGI3ODczOGY1MDJhNTAxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtMTU0LDYgKzE1NCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNjaGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJv
Y2Vzc2luZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc3VibWl0VGVs
ZW1ldHJ5KCk7CiAgICAgdm9pZCBzZXRHcmFuZGZhdGhlcmVkKGNvbnN0IFVSTCYsIGJvb2wsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRVc2VJVFBEYXRhYmFzZShi
b29sKTsKICAgICB2b2lkIHNldEdyYW5kZmF0aGVyaW5nVGltZShTZWNvbmRzLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0TGFzdFNlZW4oY29uc3QgVVJMJiwgU2Vj
b25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldE5vdGlmeVBh
Z2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCAzYzRmZmZkYWEzZjI5ZjI3ZWVlNjQ3Zjk1NGE5NTk2ZGM4Y2Y0NzIxLi45NGI4NDFmMWRh
YzgzZThjNzg0MzA1NjY1MTViN2ZhZTA1YzYzMDlmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTktMDktMTYgIEth
dGhlcmluZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBF
bmFibGUgTGF5b3V0VGVzdHMgdXNpbmcgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBTUUxpdGUgYmFj
a2VuZCAoMTk1NDIwKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk1NDIwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NDIxMzU1MT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBpbiBsb2dpYyB0
byBzZW5kIGEgbWVzc2FnZSBmcm9tIHRoZSBVSVByb2Nlc3MgdG8gdGhlIE5ldHdvcmsKKyAgICAg
ICAgUHJvY2VzcyB3aGljaCB3aWxsIGluaXRhbGl6ZSB0aGUgSVRQIERhdGFiYXNlIGJhY2tlbmQg
dG8gYWxsb3cgZm9yCisgICAgICAgIGxheW91dCB0ZXN0aW5nLgorCisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAg
ICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRVc2VJVFBEYXRhYmFzZSk6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpzZXRVc2VJVFBEYXRhYmFzZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRp
b24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9u
b3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisKIDIwMTktMDktMTMgIEFsZXggQ2hyaXN0
ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbaU9TXSBUZXN0V2Vi
S2l0QVBJLldlYktpdC5UTFNWZXJzaW9uV2ViU29ja2V0IGlzIGEgZmxha3kgZmFpbHVyZQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggZjUzNGJiMDEwYjZmNmYxMzcwYjA5YmU1ODRmYjk4
NjUwMGYzYjgyNC4uYTYzMjUyNmE5NzQ0ODE5Yzk0MThjYWVkYzNkODAwZWM5Yjk2MTMxZCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0zMDksNiArMzA5LDcgQEAgaW50ZXJmYWNlIFRl
c3RSdW5uZXIgewogICAgIGJvb2xlYW4gaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KERPTVN0cmluZyBob3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJl
ZChET01TdHJpbmcgaG9zdE5hbWUsIGJvb2xlYW4gdmFsdWUpOwogICAgIGJvb2xlYW4gaXNTdGF0
aXN0aWNzR3JhbmRmYXRoZXJlZChET01TdHJpbmcgaG9zdE5hbWUpOworICAgIHZvaWQgc2V0VXNl
SVRQRGF0YWJhc2UoYm9vbGVhbiB2YWx1ZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3ViZnJh
bWVVbmRlclRvcEZyYW1lT3JpZ2luKERPTVN0cmluZyBob3N0TmFtZSwgRE9NU3RyaW5nIHRvcEZy
YW1lSG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BG
cmFtZU9yaWdpbihET01TdHJpbmcgaG9zdE5hbWUsIERPTVN0cmluZyB0b3BGcmFtZUhvc3ROYW1l
KTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oRE9N
U3RyaW5nIGhvc3ROYW1lLCBET01TdHJpbmcgaG9zdE5hbWVSZWRpcmVjdGVkVG8pOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAK
aW5kZXggMTU3NGVjNGNjNjI4NzliMDgyYWUyNzM4YTJmYzgxZDcwNDA5ZDRlNi4uMzcyM2JmYjI2
NjFhYjI0ZjliY2M1ZTk1YmI4ZDVjMmNlYmY2NjIzMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xNjk0LDcgKzE2
OTQsMTUgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChKU1N0
cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSkKICAgICAKICAgICBXS0J1bmRsZVBvc3RTeW5j
aHJvbm91c01lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmJ1bmRsZSgpLCBtZXNz
YWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCksIG51bGxwdHIpOwogfQorCit2b2lkIFRl
c3RSdW5uZXI6OnNldFVzZUlUUERhdGFiYXNlKGJvb2wgdmFsdWUpCit7CisgICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiU2V0VXNlSVRQRGF0YWJhc2UiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tCb29s
ZWFuUmVmPiBtZXNzYWdlQm9keSA9IGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKHZhbHVlKSk7CiAg
ICAgCisgICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpz
aW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgp
LCBudWxscHRyKTsKK30KKwogYm9vbCBUZXN0UnVubmVyOjppc1N0YXRpc3RpY3NHcmFuZGZhdGhl
cmVkKEpTU3RyaW5nUmVmIGhvc3ROYW1lKQogewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVm
PiBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIklz
U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDkzOWI2YmU5ZDhlNTFhNzA2MjU0
NWQ0MzQ2ZjViNDVjN2VhYTVhZTAuLmFmMTAyZTUwNDU5MGQ5NmM1NWY4MjZjYTk3Y2U5MTA0YzMw
ZmU2MjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5oCkBAIC00MTAsNiArNDEwLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKEpTU3RyaW5nUmVmIGhvc3ROYW1lKTsKICAgICB2
b2lkIHNldFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBib29s
IHZhbHVlKTsKICAgICBib29sIGlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoSlNTdHJpbmdSZWYg
aG9zdE5hbWUpOworICAgIHZvaWQgc2V0VXNlSVRQRGF0YWJhc2UoYm9vbCB2YWx1ZSk7CiAgICAg
dm9pZCBzZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKEpTU3RyaW5nUmVm
IGhvc3ROYW1lLCBKU1N0cmluZ1JlZiB0b3BGcmFtZUhvc3ROYW1lKTsKICAgICB2b2lkIHNldFN0
YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oSlNTdHJpbmdSZWYgaG9zdE5h
bWUsIEpTU3RyaW5nUmVmIHRvcEZyYW1lSG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGlj
c1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhKU1N0cmluZ1JlZiBob3N0TmFtZSwgSlNTdHJp
bmdSZWYgaG9zdE5hbWVSZWRpcmVjdGVkVG8pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcAppbmRleCA5YTkxZjVkMmY0ODY4NGU4ZjUxZGFjOTUzY2NmYTA4MmIzNjgw
YzUyLi4zY2U1YzY4ZjIwYTBmMmE3MWU4YWEyYWI5Yzg5NDYyYWJmMjU2OWFiIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMzM1Miw2ICszMzUyLDExIEBA
IGJvb2wgVGVzdENvbnRyb2xsZXI6OmlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tTdHJpbmdS
ZWYgaG9zdCkKICAgICByZXR1cm4gY29udGV4dC5yZXN1bHQ7CiB9CiAKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OnNldFVzZUlUUERhdGFiYXNlKGJvb2wgdmFsdWUpCit7CisgICAgV0tXZWJzaXRlRGF0
YVN0b3JlU2V0VXNlSVRQRGF0YWJhc2UoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUo
KSwgdmFsdWUpOworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzU3ViZnJh
bWVVbmRlclRvcEZyYW1lT3JpZ2luKFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIHRvcEZy
YW1lSG9zdCkKIHsKICAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzU3ViZnJhbWVV
bmRlclRvcEZyYW1lT3JpZ2luKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIGhv
c3QsIHRvcEZyYW1lSG9zdCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgK
aW5kZXggODM3ZTRhYjJjYjBlNjYxNzFjZGVmNDBiZGIxNDg2YzZlMGJkNzE0OC4uNjczZjJkYzg4
M2U5NDI1YTBmYTU5YjgxYWNjOGYyMzM4Yzc1YTEwZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuaApAQCAtMjIyLDYgKzIyMiw3IEBAIHB1YmxpYzoKICAgICBib29sIGlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihXS1N0cmluZ1JlZiBob3N0TmFtZSk7CiAg
ICAgdm9pZCBzZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1N0cmluZ1JlZiBob3N0TmFtZSwg
Ym9vbCB2YWx1ZSk7CiAgICAgYm9vbCBpc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLU3RyaW5n
UmVmIGhvc3ROYW1lKTsKKyAgICB2b2lkIHNldFVzZUlUUERhdGFiYXNlKGJvb2wgdmFsdWUpOwog
ICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihXS1N0cmlu
Z1JlZiBob3N0TmFtZSwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0TmFtZSk7CiAgICAgdm9pZCBz
ZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKFdLU3RyaW5nUmVmIGhv
c3ROYW1lLCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3ROYW1lKTsKICAgICB2b2lkIHNldFN0YXRp
c3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oV0tTdHJpbmdSZWYgaG9zdE5hbWUsIFdL
U3RyaW5nUmVmIGhvc3ROYW1lUmVkaXJlY3RlZFRvKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggNjA3ZTViYmRiNGIwNTZlYjZiNWI2NGViMDAxN2RiODA1
YzA3YTk5Mi4uMzA3ZDJhYmQxZDYxYjdhZjNmMTU2Nzg5YTA4M2NlZWUzYjQ0MDVjNiAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTEyNDEsNiArMTI0MSwx
NCBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3lu
Y2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICBXS1JldGFpblB0cjxXS1R5cGVS
ZWY+IHJlc3VsdCA9IGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKGlzR3JhbmRmYXRoZXJlZCkpOwog
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KKworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0VXNlSVRQRGF0YWJhc2UiKSkgeworICAgICAg
ICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLQm9vbGVhbkdldFR5cGVJRCgp
KTsKKworICAgICAgICBXS0Jvb2xlYW5SZWYgdmFsdWUgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5S
ZWY+KG1lc3NhZ2VCb2R5KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNl
dFVzZUlUUERhdGFiYXNlKFdLQm9vbGVhbkdldFZhbHVlKHZhbHVlKSk7CisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIH0KICAgICAKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0
cmluZyhtZXNzYWdlTmFtZSwgIlNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmln
aW4iKSkgewogICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLRGlj
dGlvbmFyeUdldFR5cGVJRCgpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1N2Y2YTc5MzIwMTI4NmExM2ZkZTk1YzdhMTg3
MDBjZTZkOWUyOWZhLi42YmM2NmUxYzAwN2E0ZjNlZDFiOGI5ZjM2Nzc0MDI1MWQxZGUzOTM2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUzIEBACisyMDE5LTA5LTE2ICBLYXRoZXJpbmUgQ2hlbmV5ICA8a2F0
aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIExheW91dFRlc3RzIHVz
aW5nIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgU1FMaXRlIGJhY2tlbmQgKDE5NTQyMCkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTQyMAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNTQyMTM1NTE+CisKKyAgICAgICAgUmV2aWVhZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSBmbGFnIHRvIGFsbCBJVFAgdGVzdHMgdG8gZW5h
YmxlIHRoZSBJVFAgZGF0YWJhc2UgYmFja2VuZCB0bworICAgICAgICBhbGxvdyBmb3IgdGVzdGlu
ZyBmdW5jdGlvbmFsaXR5IGFnYWluc3QgdGhlIG1lbW9yeSBzdG9yZS4gVGVzdHMgd2VyZQorICAg
ICAgICBub3QgY3JlYXRlZCBmb3IgdGVsZW1ldHJ5LWdlbmVyYXRpb24uaHRtbCwKKyAgICAgICAg
bG9nLWNyb3NzLXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sLCBvcgorICAgICAg
ICB3ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS1uYXZpZ2F0ZWQtdG8td2l0aC1saW5rLWRl
Y29yYXRpb24uaHRtbCwKKyAgICAgICAgYmVjYXVzZSB0aGVzZSByZWx5IG9uIGZ1bmN0aW9ucyBu
b3QgeWV0IGltcGxlbWVudGVkIGluIHRoZSBJVFAgZGF0YWJhc2UuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgQWRkZWQgdGVzdCBleHBlY3RhdGlv
bnMgdG8gc2tpcCBkYXRhYmFzZSB0ZXN0cyB3aGljaCBkbyBub3Qgd29yayBpbgorICAgICAgICBp
b3MgYmVjYXVzZSBvZiByZWxpYW5jZSBvbiBFdmVudFNlbmRlci5rZXlkb3duKCkgd2hpY2ggaXMg
bm90IAorICAgICAgICBzdXBwb3J0ZWQgb24gaU9TIGFuZCBhbHNvIHRob3NlIHdoaWNoIHVzZSBV
SUhlbHBlci5hY3RpdmF0ZUF0KCkgd2hpY2gKKyAgICAgICAgZG9lcyBub3QgcHJvZHVjZSBhIHVz
ZXIgZ2VzdHVyZSBjYXB0dXJlZCBieSBJVFAgaW4gaU9TLgorCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Jsb2NraW5nLWlu
LXdlYi13b3JrZXItc2NyaXB0LWltcG9ydC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1pbi13
ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZvci1w
cmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1hZ2UtZm9y
LXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUt
c2V0LWluLWpzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNl
dC1pbi1qcy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdp
dGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlm
ZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1zaXRl
LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5r
LWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBl
ZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1w
cmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNl
dC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291
cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1q
cy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRh
dGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1
ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQt
cmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13
aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5r
LWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0
YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVy
LXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2
YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRv
cC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxl
bnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2Uu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJl
ZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJh
c2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFt
ZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1v
bi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJl
ZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9u
LXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJldmFs
ZW50LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2Ut
dW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJl
dmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFi
YXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJl
ZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVj
dC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3At
ZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFi
YXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRp
cmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9u
LXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5
LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJh
c2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWlu
LW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nv
b2tpZS1kZWxldGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2Uu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9k
ZWxldGUtc2NyaXB0LWFjY2Vzc2libGUtY29va2llcy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUt
c2NyaXB0LWFjY2Vzc2libGUtY29va2llcy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZl
bC1uYXZpZ2F0aW9uLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3At
bGV2ZWwtbmF2aWdhdGlvbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWNhcHR1cmUtc3RhdGlz
dGljcy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qt
Y2FwdHVyZS1zdGF0aXN0aWNzLWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9k
by1ub3QtcmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5v
dC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vz
c2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9uLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZh
bGVudC13aXRob3V0LWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZv
ci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRh
YmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGlu
ay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5hYmxlLWRlYnVnLW1v
ZGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZW5hYmxlLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0
aGVyaW5nLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJl
dmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0
YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRo
aXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJj
ZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1kYXRhYmFzZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9z
dC10by1pcC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0
LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2Fu
ZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3Qt
aXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVz
dGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2Nh
bGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1u
b24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24t
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRh
dGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNh
bmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAt
dG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1l
LXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxo
b3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0
YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Bpbmct
dG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxl
ZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVkLWtl
eWRvd24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRh
YmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJh
c2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0LWRhdGFiYXNl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGltZW91
dC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1k
YXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0
aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BydW5lLXN0
YXRpc3RpY3MtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxo
b3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAt
dG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxv
Y2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5k
Ym94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1p
cC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3Rpbmct
aWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0
LXRvLWlwLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRi
b3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8t
bG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFt
ZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRh
dGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2Fu
ZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2Nh
bGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1y
ZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0b20tcHJldmFs
ZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9y
aWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRp
cmVjdHMtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1
YnJlc291cmNlLXJlcXVlc3RzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9y
aWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFiYXNlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gt
c2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdp
dGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2lu
LXN1Yi1mcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9y
aWdpbi1zdWItZnJhbWUtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1v
bmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWlu
dGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUt
ZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJl
bW92YWwtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13
ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKwogMjAxOS0wOS0xMyAg
UnVzc2VsbCBFcHN0ZWluICA8cmVwc3RlaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIyNDk3MDkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFi
YXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmFmZWY5Y2QyNmU4NjFiMGZkYjE0ZjVkYzBiMGExNjAwZjRlOGRhZDQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDYzIEBACitUZXN0cyB0aGF0IGJsb2NraW5nIGlzIGFkZGVkIG1pZC1mbGlnaHQgaW4gcmVk
aXJlY3RzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgIAorCistLS0tLS0tLQorRnJhbWU6
ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNv
b2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90
IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitDbGllbnQtc2lkZSBk
b2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUKKworLS0tLS0tLS0KK0ZyYW1l
OiAnPCEtLWZyYW1lMi0tPicKKy0tLS0tLS0tCitSZWRpcmVjdCBjYXNlIDEsIHNob3VsZCByZWNl
aXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0
eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tp
ZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUK
KworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMy0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVj
ZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0
eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tp
ZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwh
LS1mcmFtZTQtLT4nCistLS0tLS0tLQorUmVkaXJlY3QgY2FzZSAyLCBzaG91bGQgcmVjZWl2ZSBu
byBjb29raWUuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2ll
Jy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3BhcnRpdGlvbmVkQ29va2llJy4KK0Ns
aWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1l
NS0tPicKKy0tLS0tLS0tCitUcnkgdG8gc2V0IHRoaXJkLXBhcnR5IGNvb2tpZSBpbiBibG9ja2Vk
IG1vZGUuCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNi0tPicKKy0tLS0tLS0tCitB
ZnRlciBhdHRlbXB0ZWQgY29va2llIGNyZWF0aW9uLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWUu
CitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBu
b3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3BhcnRpdGlvbmVkQ29va2llJy4KK0NsaWVudC1zaWRl
IGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNy0tPicKKy0t
LS0tLS0tCitSZWRpcmVjdCBjYXNlIDMsIGFmdGVyIGF0dGVtcHRlZCBjb29raWUgY3JlYXRpb24s
IHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZS4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQg
J2ZpcnN0UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0
aW9uZWRDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2lu
Zy10by1yZWRpcmVjdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjAxZDYzYTUxNjg3OGEwODM4ZDI5OGU3NjNlMDNkMmViODQ2YTA5OWQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwx
MDQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1l
dGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigi
VGVzdHMgdGhhdCBibG9ja2luZyBpcyBhZGRlZCBtaWQtZmxpZ2h0IGluIHJlZGlyZWN0cy4iKTsK
KyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAi
MTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCByZXNvdXJjZVBhdGggPSAiL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJk
UGFydHlPcmlnaW4gKyByZXNvdXJjZVBhdGg7CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5h
bWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0
eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUg
KyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCBwYXJ0aXRpb25lZENvb2tpZU5hbWUgPSAicGFy
dGl0aW9uZWRDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldFBhcnRpdGlvbmVkQ29va2ll
ID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBwYXJ0aXRpb25lZENvb2tpZU5hbWUgKyAiJnZh
bHVlPXZhbHVlIjsKKyAgICBjb25zdCByZXR1cm5VcmwgPSAiaHR0cDovLyIgKyBwYXJ0aXRpb25I
b3N0ICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC5o
dG1sIjsKKyAgICBjb25zdCBzdWJQYXRoVG9HZXRDb29raWVzID0gIi9nZXQtY29va2llcy5waHA/
bmFtZTE9IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZuYW1lMj0iICsgcGFydGl0aW9uZWRD
b29raWVOYW1lOworICAgIGNvbnN0IHJlZGlyZWN0Q2hhaW5VcmwgPSAiaHR0cDovLyIgKyBwYXJ0
aXRpb25Ib3N0ICsgcmVzb3VyY2VQYXRoICsgIi9yZWRpcmVjdC5waHA/cmVkaXJlY3RUbz0iICsg
dGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzOworCisgICAgZnVuY3Rpb24g
b3BlbklmcmFtZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9
IHVybDsKKyAgICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQu
b25sb2FkID0gb25Mb2FkSGFuZGxlcjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7
CisgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAg
Y2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAgICAvLyBTZXQgZmlyc3QtcGFydHkgY29va2ll
IGZvciBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9
IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiAr
IHJldHVyblVybCArICIjc3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBjb29r
aWUgZ2V0cyBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9z
dCBpcyBub3QgcHJldmFsZW50LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPSAic3RlcDMiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VV
cmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIGZpcnN0
LXBhcnR5IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgLy8gTG9hZCBhbiBpZnJhbWUgaW4gYSBy
ZWRpcmVjdCBjaGFpbiB0aGF0IHN0YXJ0cyB3aXRoIDEyNy4wLjAuMSBhbmQgZW5kcyB3aXRoIGxv
Y2FsaG9zdC4gRXhwZWN0IGEgY29va2llIGZvciBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAg
b3BlbklmcmFtZShyZWRpcmVjdENoYWluVXJsICsgIiZtZXNzYWdlPVJlZGlyZWN0IGNhc2UgMSwg
c2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAg
ICAvLyBTZXQgbG9jYWxob3N0IGFzIHByZXZhbGVudCB0byBwdXQgaXQgaW4gdGhlIGJsb2NraW5n
IGNhdGVnb3J5LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3Rl
cDUiOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhp
cmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0
IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3Qp
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSAiI3N0ZXA1IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IG5vIGNvb2tp
ZSBnZXRzIHNlbnQgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEgc2luY2UgbG9jYWxob3N0
J3MgY29va2llcyBhcmUgYmxvY2tlZC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlv
bi5oYXNoID0gInN0ZXA2IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlC
YXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUg
bm8gY29va2llcy4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgIiNzdGVwNiI6CisgICAgICAgICAgICAgICAgLy8gTG9hZCBhbiBpZnJhbWUgaW4g
YSByZWRpcmVjdCBjaGFpbiB0aGF0IHN0YXJ0cyB3aXRoIDEyNy4wLjAuMSBhbmQgZW5kcyB3aXRo
IGxvY2FsaG9zdC4gRXhwZWN0IG5vIGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDciOworICAgICAgICAgICAgICAgIG9w
ZW5JZnJhbWUocmVkaXJlY3RDaGFpblVybCArICImbWVzc2FnZT1SZWRpcmVjdCBjYXNlIDIsIHNo
b3VsZCByZWNlaXZlIG5vIGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNyI6CisgICAgICAgICAgICAgICAgLy8gVHJ5IHRv
IHNldCBjb29raWUgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEuCisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwOCI7CisgICAgICAgICAgICAgICAgb3Bl
bklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldFBhcnRpdGlvbmVkQ29va2ll
ICsgIiZtZXNzYWdlPVRyeSB0byBzZXQgdGhpcmQtcGFydHkgY29va2llIGluIGJsb2NrZWQgbW9k
ZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
IiNzdGVwOCI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBubyBjb29raWUgZ2V0cyBz
ZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCdzIGNvb2tp
ZXMgYXJlIGJsb2NrZWQuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9
ICJzdGVwOSI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCAr
IHN1YlBhdGhUb0dldENvb2tpZXMgKyAgIiZtZXNzYWdlPUFmdGVyIGF0dGVtcHRlZCBjb29raWUg
Y3JlYXRpb24sIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwOSI6CisgICAgICAgICAgICAg
ICAgLy8gTG9hZCBhbiBpZnJhbWUgaW4gYSByZWRpcmVjdCBjaGFpbiB0aGF0IHN0YXJ0cyB3aXRo
IDEyNy4wLjAuMSBhbmQgZW5kcyB3aXRoIGxvY2FsaG9zdC4gRXhwZWN0IG5vIGNvb2tpZSBmb3Ig
bG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3Rl
cDEwIjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHJlZGlyZWN0Q2hhaW5VcmwgKyAiJm1l
c3NhZ2U9UmVkaXJlY3QgY2FzZSAzLCBhZnRlciBhdHRlbXB0ZWQgY29va2llIGNyZWF0aW9uLCBz
aG91bGQgcmVjZWl2ZSBubyBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEwIjoKKyAgICAgICAgICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIi
KSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikp
CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IHdhcyBjbGFzc2lmaWVkIGFz
IHByZXZhbGVudCByZXNvdXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEiOworICAgICAgICAgICAgcnVuVGVzdCgpOworICAg
ICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBydW5UZXN0KCk7CisgICAgfQorPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1w
b3J0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljYjc5OTQzZWQ4YjQ5YTg0MWJkMTI5YjNm
NWFjYTZlMmEzYjIxYmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1w
b3J0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0IGZvciBjb29r
aWUgYmxvY2tpbmcgd2hlbiB3ZWIgd29ya2VycyBpbXBvcnQgY3Jvc3Mtc2l0ZSBzY3JpcHRzLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBEaWQgcmVjZWl2ZSBmaXJzdFBh
cnR5Q29va2llID09IHZhbHVlCitQQVNTIERpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgZmly
c3RQYXJ0eUNvb2tpZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitT
aG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQg
J2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBh
cnR5Q29va2llPXZhbHVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRh
dGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmNjM2M3YTI5MjJkZTdjYjI0NzZmY2QwMTQwMWU3OTlkODRkMDBlYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UuaHRtbApAQCAt
MCwwICsxLDg4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgY29va2llIGJsb2Nr
aW5nIHdoZW4gd2ViIHdvcmtlcnMgaW1wb3J0IGNyb3NzLXNpdGUgc2NyaXB0cy4iKTsKKyAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAu
MC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4g
KyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCBmaXJzdFBh
cnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9T
ZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5
Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHJldHVyblVybCA9ICJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1pbi13ZWIt
d29ya2VyLXNjcmlwdC1pbXBvcnQuaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2ll
cyA9ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZTsKKwor
ICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNv
bnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAg
ZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAg
ICAgICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAgICBsZXQgcmVj
ZWl2ZWRNZXNzYWdlcyA9IDA7CisgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsK
KyAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAg
ICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIs
ICIiKSk7CisKKyAgICAgICAgKytyZWNlaXZlZE1lc3NhZ2VzOworICAgICAgICBpZiAocmVjZWl2
ZWRNZXNzYWdlcyA+PSAyKQorICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcnVuVGVzdCgpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQubG9j
YXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAg
ICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9T
ZXRGaXJzdFBhcnR5Q29va2llICsgIiMiICsgcmV0dXJuVXJsICsgIiNzdGVwMiI7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAgICAgICAgICAgIG9w
ZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNz
YWdlPVNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAg
bGV0IHcxID0gbmV3IFdvcmtlcigicmVzb3VyY2VzL3dvcmtlci1pbXBvcnRpbmctbG9jYWxob3N0
LXNjcmlwdC5qcyIpOworICAgICAgICAgICAgICAgIHcxLm9ubWVzc2FnZSA9IHJlY2VpdmVNZXNz
YWdlOworICAgICAgICAgICAgICAgIHcxLnBvc3RNZXNzYWdlKCJzaG91bGRSZWNlaXZlQ29va2ll
cz10cnVlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3Rl
cDQiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0
eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSAiI3N0ZXA1IjoKKyAgICAgICAgICAgICAgICBsZXQgdzIgPSBuZXcgV29ya2VyKCJyZXNvdXJj
ZXMvd29ya2VyLWltcG9ydGluZy1sb2NhbGhvc3Qtc2NyaXB0LmpzIik7CisgICAgICAgICAgICAg
ICAgdzIub25tZXNzYWdlID0gcmVjZWl2ZU1lc3NhZ2U7CisgICAgICAgICAgICAgICAgdzIucG9z
dE1lc3NhZ2UoInNob3VsZE5vdFJlY2VpdmVDb29raWVzIik7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9
PT0gcGFydGl0aW9uSG9zdCAmJiBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIiAmJiB3aW5k
b3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAx
IjsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAg
ICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGly
ZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2Fz
IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydHMu
Iik7CisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIHJ1blRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
YXAtY2FjaGUtbWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAt
Y2FjaGUtbWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wY2NlNWFhMWMzNmE5NGQ1NTBiZGUyMjlhZGU0NDZmZjgzNTVjMWNiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3RzIHRoYXQgY2FjaGUgbWF4LWFnZSBp
cyBjYXBwZWQgZm9yIHByZXZhbGVudCByZXNvdXJjZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIGxvYWRlZFVybCBpcyAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPTEyMzQiCitQ
QVNTIGxvYWRlZFVybCBpcyAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPTQzMjEiCitQQVNTIGxvYWRlZFVy
bCBpcyAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3Vy
Y2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPSIKK1BBU1MgbG9hZGVkVXJsIGlzICJodHRwOi8vbG9j
YWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5w
aHA/dmFsdWU9IgorUEFTUyBsb2FkZWRVcmwgaXMgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXF1ZXJ5LnBocD92YWx1ZT0iCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1jYWNo
ZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1m
b3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjY0YTQ1MThh
ODMzOTQ2MDkwNzMzMzczZjFmNjAyMTYzYWFiOTMyYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFn
ZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMTMgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHRpdGxlPlRlc3RzIGZvciBDYXBwZWQgQ2Fj
aGUgTWF4LUFnZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3Jp
cHRpb24oIlRlc3RzIHRoYXQgY2FjaGUgbWF4LWFnZSBpcyBjYXBwZWQgZm9yIHByZXZhbGVudCBy
ZXNvdXJjZXMuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICB2YXIgbG9hZGVk
VXJsOworICAgIGZ1bmN0aW9uIGZpcnN0RmV0Y2goKSB7CisgICAgICAgIC8vIFRoaXMgc2hvdWxk
IGNyZWF0ZSBhIGNhcHBlZCBjYWNoZSBlbnRyeS4KKyAgICAgICAgZmV0Y2goImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9jYWNoZWQtcGVybWFu
ZW50LXJlZGlyZWN0LnBocCIsCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY2FjaGU6
ICJyZWxvYWQiLAorICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsKKyAgICAgICAgICAgICAgICAg
ICAgIlgtV2ViS2l0IjogIjEyMzQiLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0K
KyAgICAgICAgKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBsb2FkZWRV
cmwgPSByZXNwb25zZS51cmw7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxv
YWRlZFVybCIsICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9y
ZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9MTIzNCIpOworICAgICAgICAgICAgc2Vjb25k
RmV0Y2goKTsKKyAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBzZWNvbmRGZXRjaCgpIHsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgbm90IHRyaWdnZXIgYSBz
dWNjZXNzZnVsIGNhY2hlIGhpdCBhbmQgaW5zdGVhZCBjcmVhdGUgYW5vdGhlciBjYXBwZWQgY2Fj
aGUgZW50cnkuCisgICAgICAgIGZldGNoKCJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvY2FjaGVkLXBlcm1hbmVudC1yZWRpcmVjdC5waHAiLAor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhY2hlOiAiZm9yY2UtY2FjaGUiLAorICAg
ICAgICAgICAgICAgIGhlYWRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgIlgtV2ViS2l0Ijog
IjQzMjEiLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgKS50aGVu
KGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBsb2FkZWRVcmwgPSByZXNwb25zZS51
cmw7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxvYWRlZFVybCIsICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1x
dWVyeS5waHA/dmFsdWU9NDMyMSIpOworICAgICAgICAgICAgdGhpcmRGZXRjaCgpOworICAgICAg
ICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAgdGVzdEZhaWxlZChlcnJv
ci5tZXNzYWdlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpT
VGVzdCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRoaXJkRmV0Y2goKSB7
CisgICAgICAgIC8vIFRoaXMgc2hvdWxkIG5vdCB0cmlnZ2VyIGEgc3VjY2Vzc2Z1bCBjYWNoZSBo
aXQgYW5kIGluc3RlYWQgY3JlYXRlIGFub3RoZXIgY2FwcGVkIGNhY2hlIGVudHJ5LgorICAgICAg
ICBmZXRjaCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVz
b3VyY2VzL2NhY2hlZC1wZXJtYW5lbnQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICBjYWNoZTogImZvcmNlLWNhY2hlIiwKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBsb2FkZWRVcmwgPSBy
ZXNwb25zZS51cmw7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxvYWRlZFVy
bCIsICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9Iik7CisgICAgICAgICAgICBmb3VydGhGZXRjaCgpOwor
ICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAgdGVzdEZhaWxl
ZChlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGZvdXJ0aEZl
dGNoKCkgeworICAgICAgICAvLyBUaGlzIHNob3VsZCBub3QgdHJpZ2dlciBhIHN1Y2Nlc3NmdWwg
Y2FjaGUgaGl0IGJ1dCBjbGVhciBjYXBwaW5nLgorICAgICAgICBmZXRjaCgiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2NhY2hlZC1wZXJtYW5l
bnQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjYWNoZTog
ImZvcmNlLWNhY2hlIiwKKyAgICAgICAgICAgIH0KKyAgICAgICAgKS50aGVuKGZ1bmN0aW9uKHJl
c3BvbnNlKSB7CisgICAgICAgICAgICBsb2FkZWRVcmwgPSByZXNwb25zZS51cmw7CisgICAgICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxvYWRlZFVybCIsICJodHRwOi8vbG9jYWxob3N0
OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFs
dWU9Iik7CisgICAgICAgICAgICBmaWZ0aEZldGNoKCk7CisgICAgICAgIH0pLmNhdGNoKGZ1bmN0
aW9uKGVycm9yKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKGVycm9yLm1lc3NhZ2UpOworICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAg
fSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmlmdGhGZXRjaCgpIHsKKyAgICAgICAgLy8gVGhp
cyBzaG91bGQgdHJpZ2dlciBhIHJlZ3VsYXIsIHN1Y2Nlc3NmdWwgY2FjaGUgaGl0LgorICAgICAg
ICBmZXRjaCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVz
b3VyY2VzL2NhY2hlZC1wZXJtYW5lbnQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICBoZWFkZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICJYLVdlYktpdCI6
ICIxMjM0IiwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICkudGhl
bihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgbG9hZGVkVXJsID0gcmVzcG9uc2Uu
dXJsOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsb2FkZWRVcmwiLCAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8t
cXVlcnkucGhwP3ZhbHVlPSIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQoZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9CisgICAgdGVz
dFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICBzZXRFbmFibGVGZWF0dXJlKHRy
dWUsIGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiTG9jYWxob3N0IHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZSBiZWZvcmUg
dGhlIHRlc3Qgc3RhcnRlZC4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3ND
YWNoZU1heEFnZUNhcCgwKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKGZpcnN0RmV0
Y2gpOworICAgICAgICB9KTsKKyAgICB9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVk
LWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40ODQ2MjBkNmQzMzEyMTE2NDUxYThhNTljODRiZTYxNzY0YzQ2ZTMxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMSBAQAorQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNj
cmlwdCB3aXRoIG1heC1hZ2Ugb3IgZXhwaXJ5IGxvbmdlciB0aGFuIGEgd2VlayBnZXQgY2FwcGVk
IHRvIGEgd2Vlay4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHR3
byBzaG9ydC1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gMTcyODMw
IHNlY29uZHMuCitQQVNTIFRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBh
ZnRlciBtb3JlIHRoYW4gNjA0ODMwIHNlY29uZHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNl
dC1pbi1qcy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFz
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmUyZmZkMDQxYWUzMmRlMjg2MDNiODE5MTAzMGNlOGEzMDVkMjYy
NmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLWRhdGFiYXNl
Lmh0bWwKQEAgLTAsMCArMSw4MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigi
Q2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCB3aXRoIG1heC1hZ2Ugb3Ig
ZXhwaXJ5IGxvbmdlciB0aGFuIGEgd2VlayBnZXQgY2FwcGVkIHRvIGEgd2Vlay4iKTsKKyAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRy
dWUpOworCisgICAgaWYgKGludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworCisgICAgbGV0IHBhc3NlZFRlc3RzID0gMDsK
KyAgICBmdW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llRGF0
YSwgbWF4QWdlSW5TZWNvbmRzKSB7CisgICAgICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpOworICAg
ICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93LmdldFRpbWUoKSArICht
YXhBZ2VJblNlY29uZHMgKiAxMDAwKTsKKworICAgICAgICBpZiAobWF4RXhwaXJ5RGF0ZUluTWls
bGlzZWNvbmRzID4gY29va2llRGF0YVsiZXhwaXJlcyJdKQorICAgICAgICAgICAgKytwYXNzZWRU
ZXN0czsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5hbWVk
ICIgKyBjb29raWVEYXRhWyJuYW1lIl0gKyAiIGV4cGlyZXMgaW4gbW9yZSB0aGFuICIgKyBtYXhB
Z2VJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgfQorCisgICAgY29uc3QgdHdvRGF5c0lu
U2Vjb25kcyA9IDIgKiAyNCAqIDYwICogNjA7CisgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZU1h
eEFnZSA9IHsgbmFtZSA6ICJzaG9ydExpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4
LUFnZT0iICsgdHdvRGF5c0luU2Vjb25kcyArICI7IiB9OworICAgIGRvY3VtZW50LmNvb2tpZSA9
IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENv
b2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgIGNvbnN0IHR3b0RheXNBc0V4
cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3b0RheXNJblNlY29uZHMp
OworICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogInNob3J0TGl2
ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJl
c0RhdGUgKyAiOyIgfTsKKyAgICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29va2llRXhw
aXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5saWZldGlt
ZSArICIgcGF0aD0vIjsKKworICAgIGNvbnN0IG9uZVdlZWtJblNlY29uZHMgPSA3ICogMjQgKiA2
MCAqIDYwOworICAgIGNvbnN0IHR3b1dlZWtzSW5TZWNvbmRzID0gMiAqIG9uZVdlZWtJblNlY29u
ZHM7CisgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogImxvbmdMaXZl
ZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b1dlZWtzSW5TZWNvbmRz
ICsgIjsiIH07CisgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5h
bWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0
aD0vIjsKKworICAgIGNvbnN0IHR3b1dlZWtzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNE
YXRlRnJvbU1heEFnZSh0d29XZWVrc0luU2Vjb25kcyk7CisgICAgY29uc3QgbG9uZ0xpdmVkQ29v
a2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUg
OiAiRXhwaXJlcz0iICsgdHdvV2Vla3NBc0V4cGlyZXNEYXRlICsgIjsiIH07CisgICAgZG9jdW1l
bnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBs
b25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgY29uc3Qg
b3ZlclR3b0RheXNJblNlY29uZHMgPSB0d29EYXlzSW5TZWNvbmRzICsgMzA7CisgICAgY29uc3Qg
b3Zlck9uZVdlZWtJblNlY29uZHMgPSBvbmVXZWVrSW5TZWNvbmRzICsgMzA7CisgICAgaWYgKGlu
dGVybmFscykgeworICAgICAgICBsZXQgY29va2llcyA9IGludGVybmFscy5nZXRDb29raWVzKCk7
CisgICAgICAgIGlmICghY29va2llcy5sZW5ndGgpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJO
byBjb29raWVzIGZvdW5kLiIpOworICAgICAgICBmb3IgKGxldCBjb29raWUgb2YgY29va2llcykg
eworICAgICAgICAgICAgc3dpdGNoIChjb29raWUubmFtZSkgeworICAgICAgICAgICAgICAgIGNh
c2Ugc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICBjaGVj
a1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdvRGF5c0luU2Vjb25k
cyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2Ugc2hv
cnRMaXZlZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0
Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3b0RheXNJblNlY29uZHMpOwor
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZl
ZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVE
b2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lV2Vla0luU2Vjb25kcyk7CisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2ll
RXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90
RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lV2Vla0luU2Vjb25kcyk7CisgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmVzZXRD
b29raWVzRm9yQ3VycmVudE9yaWdpbigpOworCisgICAgICAgIGlmIChwYXNzZWRUZXN0cyA9PT0g
NCkgeworICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBzaG9ydC1saXZlZCBjb29raWVz
IGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJUd29EYXlzSW5TZWNvbmRzICsg
IiBzZWNvbmRzLiIpOworICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBsb25nLWxpdmVk
IGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3Zlck9uZVdlZWtJblNl
Y29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZh
aWxlZCgiQXQgbGVhc3Qgb25lIGNvb2tpZSdzIGV4cGlyeSBhdHRyaWJ1dGUgd2FzIGJleW9uZCB0
aGUgdGVzdCB0aHJlc2hvbGRzLiIpOworICAgIH0gZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJO
byBpbnRlcm5hbHMgb2JqZWN0LiIpOworCisgICAgaWYgKGludGVybmFscykKKyAgICAgICAgaW50
ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKworICAgIGZp
bmlzaEpTVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0
aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1k
YXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGlu
ay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YTQ5NTQ1YTAzNGQzYWYyNTkwYzk5MzM3ZDIzMDVhOWJlZmRiYTQxMAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQt
bGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1z
aXRlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitDaGVjayB0aGF0IGNv
b2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgc2FtZS1zaXRlIG5hdmlnYXRpb24g
d2l0aCBsaW5rIGRlY29yYXRpb24gZG9uJ3QgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHR3byBsb25nLWxpdmVkIGNvb2tp
ZXMgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA4NjQzMCBzZWNvbmRzLgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9y
LWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2Fw
cGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNh
bWUtc2l0ZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkMDk5OTFiM2ZhOGFjZDQ4MTk5YTg1
MzIzNGQyNWFiMjg5MTVkYzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0
LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsODYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAg
ICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBh
ZnRlciBhIHNhbWUtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBkZWNvcmF0aW9uIGRvbid0IGdl
dCBjYXBwZWQgdG8gMjQgaG91cnMuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAg
ICBmdW5jdGlvbiB0ZXN0Q29va2llcygpIHsKKyAgICAgICAgbGV0IHBhc3NlZFRlc3RzID0gMDsK
KworICAgICAgICBmdW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzRXhwaXJlQWZ0ZXIoY29va2ll
RGF0YSwgbWF4QWdlSW5TZWNvbmRzKSB7CisgICAgICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUo
KTsKKyAgICAgICAgICAgIGxldCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPSBub3cuZ2V0
VGltZSgpICsgKG1heEFnZUluU2Vjb25kcyAqIDEwMDApOworCisgICAgICAgICAgICBpZiAobWF4
RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzIDwgY29va2llRGF0YVsiZXhwaXJlcyJdKQorICAgICAg
ICAgICAgICAgICsrcGFzc2VkVGVzdHM7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiQ29va2llIG5hbWVkICIgKyBjb29raWVEYXRhWyJuYW1lIl0gKyAiIGV4
cGlyZXMgaW4gbGVzcyB0aGFuICIgKyBtYXhBZ2VJblNlY29uZHMgKyAiIHNlY29uZHMuIik7Cisg
ICAgICAgIH0KKworICAgICAgICBjb25zdCBvbmVEYXlJblNlY29uZHMgPSAyNCAqIDYwICogNjA7
CisgICAgICAgIGNvbnN0IHR3b0RheXNJblNlY29uZHMgPSAyICogb25lRGF5SW5TZWNvbmRzOwor
ICAgICAgICBjb25zdCBsb25nTGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUgOiAibG9uZ0xpdmVk
Q29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdvRGF5c0luU2Vjb25kcyAr
ICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVNYXhBZ2Uu
bmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1lICsgIiBw
YXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3b0RheXNBc0V4cGlyZXNEYXRlID0gY3JlYXRlRXhw
aXJlc0RhdGVGcm9tTWF4QWdlKHR3b0RheXNJblNlY29uZHMpOworICAgICAgICBjb25zdCBsb25n
TGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZUV4cGlyZXMiLCBs
aWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d29EYXlzQXNFeHBpcmVzRGF0ZSArICI7IiB9OworICAg
ICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAiPWZv
b2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisK
KyAgICAgICAgY29uc3Qgb3Zlck9uZURheUluU2Vjb25kcyA9IG9uZURheUluU2Vjb25kcyArIDMw
OworICAgICAgICBpZiAoaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBsZXQgY29va2llcyA9IGlu
dGVybmFscy5nZXRDb29raWVzKCk7CisgICAgICAgICAgICBpZiAoIWNvb2tpZXMubGVuZ3RoKQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGNvb2tpZXMgZm91bmQuIik7CisgICAgICAg
ICAgICBmb3IgKGxldCBjb29raWUgb2YgY29va2llcykgeworICAgICAgICAgICAgICAgIHN3aXRj
aCAoY29va2llLm5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29r
aWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURv
ZXNFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29v
a2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2ll
RG9lc0V4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIHJlc2V0Q29va2llc0ZvckN1cnJlbnRPcmlnaW4oKTsKKworICAgICAgICAg
ICAgaWYgKHBhc3NlZFRlc3RzID09PSAyKSB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgi
VGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3Zl
ck9uZURheUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkF0IGxlYXN0IG9uZSBjb29raWUncyBleHBpcnkgYXR0
cmlidXRlIHdhcyBiZWxvdyB0aGUgdGVzdCB0aHJlc2hvbGRzLiIpOworICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGludGVybmFscyBvYmplY3QuIik7CisKKyAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBuYXZpZ2F0ZUNyb3NzT3JpZ2luKCkgeworICAgICAgICBkb2N1bWVudC5sb2NhdGlv
bi5ocmVmID0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0
aW9uLXNhbWUtc2l0ZS5odG1sP2xpbms9ZGVjb3JhdGlvbiNmcmFnbWVudCI7CisgICAgfQorCisg
ICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAg
ICBjb25zdCBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAi
OworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlv
bi5vcmlnaW4gPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luICYmIGRvY3VtZW50LmxvY2F0aW9u
Lmhhc2ggIT09ICIjZnJhZ21lbnQiKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29r
aWVCbG9ja2luZyhuYXZpZ2F0ZUNyb3NzT3JpZ2luKTsKKyAgICAgICAgICAgICAgICB9KTsKKwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0Q29va2ll
cygpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2Fw
cGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1mcm9t
LXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1k
YXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdiYWQwMzJjNmYyMjQ1NzNhMzM1ZDNm
NzA0MTlkY2I0YmU0M2ExNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQt
aW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRl
ZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBm
cmFnbWVudCBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFm
dGVyIG1vcmUgdGhhbiA0MzIzMCBzZWNvbmRzLgorUEFTUyBUaGUgdHdvIGxvbmctbGl2ZWQgY29v
a2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDg2NDMwIHNlY29uZHMuCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxl
bnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0
aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNWM4NGZiODk0Zjk5YjMyN2MxNzczZTIwMDdkYzEwZDkxYzJhODc5OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50
LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMDEgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvY29v
a2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlv
bigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBhZnRlciBhIGNyb3Nz
LXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgZnJhZ21lbnQgZ2V0IGNhcHBlZCB0byAyNCBob3Vy
cy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0aW9uIHRlc3RDb29r
aWVzKCkgeworICAgICAgICBsZXQgcGFzc2VkVGVzdHMgPSAwOworICAgICAgICBmdW5jdGlvbiBj
aGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llRGF0YSwgbWF4QWdlSW5TZWNv
bmRzKSB7CisgICAgICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKKyAgICAgICAgICAgIGxl
dCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPSBub3cuZ2V0VGltZSgpICsgKG1heEFnZUlu
U2Vjb25kcyAqIDEwMDApOworCisgICAgICAgICAgICBpZiAobWF4RXhwaXJ5RGF0ZUluTWlsbGlz
ZWNvbmRzID4gY29va2llRGF0YVsiZXhwaXJlcyJdKQorICAgICAgICAgICAgICAgICsrcGFzc2Vk
VGVzdHM7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29v
a2llIG5hbWVkICIgKyBjb29raWVEYXRhWyJuYW1lIl0gKyAiIGV4cGlyZXMgaW4gbW9yZSB0aGFu
ICIgKyBtYXhBZ2VJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgIH0KKworICAgICAg
ICBjb25zdCB0d2VsdmVIb3Vyc0luU2Vjb25kcyA9IDEyICogNjAgKiA2MDsKKyAgICAgICAgY29u
c3Qgc2hvcnRMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJzaG9ydExpdmVkQ29va2llTWF4
QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdlbHZlSG91cnNJblNlY29uZHMgKyAiOyIg
fTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1l
ICsgIj1mb29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1lICsgIiBwYXRo
PS8iOworCisgICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4
cGlyZXNEYXRlRnJvbU1heEFnZSh0d2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgIGNvbnN0
IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogInNob3J0TGl2ZWRDb29raWVFeHBp
cmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdlbHZlSG91cnNBc0V4cGlyZXNEYXRlICsg
IjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29raWVFeHBpcmVz
Lm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsg
IiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG9uZURheUluU2Vjb25kcyA9IDIgKiB0d2VsdmVI
b3Vyc0luU2Vjb25kczsKKyAgICAgICAgY29uc3QgdHdvRGF5c0luU2Vjb25kcyA9IDIgKiBvbmVE
YXlJblNlY29uZHM7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFt
ZSA6ICJsb25nTGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d29E
YXlzSW5TZWNvbmRzICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZl
ZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVNYXhBZ2Uu
bGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdvRGF5c0FzRXhwaXJlc0Rh
dGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdvRGF5c0luU2Vjb25kcyk7CisgICAg
ICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29v
a2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3b0RheXNBc0V4cGlyZXNEYXRl
ICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZUV4cGly
ZXMubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSAr
ICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMgPSB0
d2VsdmVIb3Vyc0luU2Vjb25kcyArIDMwOworICAgICAgICBjb25zdCBvdmVyT25lRGF5SW5TZWNv
bmRzID0gb25lRGF5SW5TZWNvbmRzICsgMzA7CisgICAgICAgIGlmIChpbnRlcm5hbHMpIHsKKyAg
ICAgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKTsKKyAgICAgICAg
ICAgIGlmICghY29va2llcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8g
Y29va2llcyBmb3VuZC4iKTsKKyAgICAgICAgICAgIGZvciAobGV0IGNvb2tpZSBvZiBjb29raWVz
KSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjb29raWUubmFtZSkgeworICAgICAgICAgICAg
ICAgICAgICBjYXNlIHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJU
d2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICAgICAgY2FzZSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAg
ICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNv
b2tpZSwgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZU1heEFnZS5u
YW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGly
ZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29raWVFeHBp
cmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90
RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgcmVzZXRDb29raWVzRm9yQ3VycmVudE9yaWdpbigpOworCisgICAgICAgICAgICBp
ZiAocGFzc2VkVGVzdHMgPT09IDQpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUg
dHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsg
b3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICAgICAgICAg
IHRlc3RQYXNzZWQoIlRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRl
ciBtb3JlIHRoYW4gIiArIG92ZXJPbmVEYXlJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAg
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUg
Y29va2llJ3MgZXhwaXJ5IGF0dHJpYnV0ZSB3YXMgYmV5b25kIHRoZSB0ZXN0IHRocmVzaG9sZHMu
Iik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gaW50ZXJuYWxz
IG9iamVjdC4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rl
c3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG5hdmlnYXRlQ3Jvc3NPcmlnaW4oKSB7CisgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbk9yaWdpbiArICIvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0
aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWwjbGluaz1mcmFnbWVu
dCI7CisgICAgfQorCisgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIjsKKyAgICBjb25zdCBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiA9ICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmIChk
b2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luKSB7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3Vy
Y2VPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VP
cmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90
IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhuYXZpZ2F0ZUNyb3NzT3Jp
Z2luKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgfSk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICB0ZXN0Q29va2llcygpOworICAgICAgICB9CisgICAgfQorPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0
LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3Vy
Y2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRo
LWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTk4ZGM4ZjkwZTJkYTFiMTk4M2I0OGRjMTg2ZWFk
N2E2OTY1ZDdhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13
aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitDaGVjayB0aGF0IGNvb2tpZXMgY3Jl
YXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGlu
ayBxdWVyeSBhbmQgZnJhZ21lbnQgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHR3byBzaG9ydC1saXZlZCBjb29raWVzIGRv
bid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gNDMyMzAgc2Vjb25kcy4KK1BBU1MgVGhlIHR3byBs
b25nLWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA4NjQzMCBzZWNv
bmRzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWFu
ZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1m
b3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJl
dmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzU5MWViNGU5NThmYjFi
NTBkYjdmODIyYTIwMGVjY2M2NzM4MjQxNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNv
b2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVu
dC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTAxIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2Nvb2tpZXMvcmVzb3VyY2Vz
L2Nvb2tpZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQo
J3J1blRlc3QoKScsIDApIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkNoZWNrIHRoYXQg
Y29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRp
b24gd2l0aCBsaW5rIHF1ZXJ5IGFuZCBmcmFnbWVudCBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLiIp
OworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rpb24gdGVzdENvb2tpZXMo
KSB7CisgICAgICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7CisgICAgICAgIGZ1bmN0aW9uIGNoZWNr
VGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWVEYXRhLCBtYXhBZ2VJblNlY29uZHMp
IHsKKyAgICAgICAgICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpOworICAgICAgICAgICAgbGV0IG1h
eEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA9IG5vdy5nZXRUaW1lKCkgKyAobWF4QWdlSW5TZWNv
bmRzICogMTAwMCk7CisKKyAgICAgICAgICAgIGlmIChtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29u
ZHMgPiBjb29raWVEYXRhWyJleHBpcmVzIl0pCisgICAgICAgICAgICAgICAgKytwYXNzZWRUZXN0
czsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUg
bmFtZWQgIiArIGNvb2tpZURhdGFbIm5hbWUiXSArICIgZXhwaXJlcyBpbiBtb3JlIHRoYW4gIiAr
IG1heEFnZUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGNv
bnN0IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzID0gMTIgKiA2MCAqIDYwOworICAgICAgICBjb25zdCBz
aG9ydExpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogInNob3J0TGl2ZWRDb29raWVNYXhBZ2Ui
LCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d2VsdmVIb3Vyc0luU2Vjb25kcyArICI7IiB9Owor
ICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAi
PWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7
CisKKyAgICAgICAgY29uc3QgdHdlbHZlSG91cnNBc0V4cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJl
c0RhdGVGcm9tTWF4QWdlKHR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3Qgc2hv
cnRMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAic2hvcnRMaXZlZENvb2tpZUV4cGlyZXMi
LCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d2VsdmVIb3Vyc0FzRXhwaXJlc0RhdGUgKyAiOyIg
fTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubmFt
ZSArICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBh
dGg9LyI7CisKKyAgICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0gMiAqIHR3ZWx2ZUhvdXJz
SW5TZWNvbmRzOworICAgICAgICBjb25zdCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIG9uZURheUlu
U2Vjb25kczsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDog
ImxvbmdMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b0RheXNJ
blNlY29uZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29v
a2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZl
dGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0ZSA9
IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAg
Y29uc3QgbG9uZ0xpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVF
eHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAi
OyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5u
YW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBw
YXRoPS8iOworCisgICAgICAgIGNvbnN0IG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyA9IHR3ZWx2
ZUhvdXJzSW5TZWNvbmRzICsgMzA7CisgICAgICAgIGNvbnN0IG92ZXJPbmVEYXlJblNlY29uZHMg
PSBvbmVEYXlJblNlY29uZHMgKyAzMDsKKyAgICAgICAgaWYgKGludGVybmFscykgeworICAgICAg
ICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICAgICAg
aWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBjb29r
aWVzIGZvdW5kLiIpOworICAgICAgICAgICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsK
KyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAgICAgICAgICAgICAg
ICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAg
ICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3ZWx2
ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAgICAg
ICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2ll
LCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWU6
CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0
ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMu
bmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBp
cmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAgICAgIGlmIChw
YXNzZWRUZXN0cyA9PT0gNCkgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28g
c2hvcnQtbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBvdmVy
VHdlbHZlSG91cnNJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICAgICAgdGVz
dFBhc3NlZCgiVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1v
cmUgdGhhbiAiICsgb3Zlck9uZURheUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkF0IGxlYXN0IG9uZSBjb29r
aWUncyBleHBpcnkgYXR0cmlidXRlIHdhcyBiZXlvbmQgdGhlIHRlc3QgdGhyZXNob2xkcy4iKTsK
KyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMgb2Jq
ZWN0LiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAg
ZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxp
bmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWw/bGluaz1x
dWVyeSNsaW5rPWZyYWdtZW50IjsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5hdGlvbk9yaWdp
biA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHByZXZhbGVudFJlc291cmNl
T3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdCgp
IHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJldmFsZW50UmVz
b3VyY2VPcmlnaW4pIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2Uo
dHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShw
cmV2YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5n
KG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RDb29raWVzKCk7CisgICAg
ICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRp
bWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJl
c291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMt
d2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kNDVkZDE2YzJlZTAxMDgwZTNjMWYxYjQwMjA2YjY2YTgwMmUwYWMx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmst
cXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTEgQEAKK0NoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0
ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIHF1ZXJ5IGdldCBjYXBwZWQgdG8g
MjQgaG91cnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSB0d28g
c2hvcnQtbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDQzMjMwIHNl
Y29uZHMuCitQQVNTIFRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRl
ciBtb3JlIHRoYW4gODY0MzAgc2Vjb25kcy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWlu
LWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1s
aWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxl
bnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODI2MjNkMWZjMzdmYzg2YjQz
ODdlNGFjYWVjMGUyNDg2YWU4MzM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2ll
LXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJh
c2UuaHRtbApAQCAtMCwwICsxLDEwMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVz
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKSI+
Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBi
eSBKYXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBxdWVy
eSBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwor
CisgICAgZnVuY3Rpb24gdGVzdENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRUZXN0cyA9
IDA7CisgICAgICAgIGZ1bmN0aW9uIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihj
b29raWVEYXRhLCBtYXhBZ2VJblNlY29uZHMpIHsKKyAgICAgICAgICAgIGxldCBub3cgPSBuZXcg
RGF0ZSgpOworICAgICAgICAgICAgbGV0IG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA9IG5v
dy5nZXRUaW1lKCkgKyAobWF4QWdlSW5TZWNvbmRzICogMTAwMCk7CisKKyAgICAgICAgICAgIGlm
IChtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPiBjb29raWVEYXRhWyJleHBpcmVzIl0pCisg
ICAgICAgICAgICAgICAgKytwYXNzZWRUZXN0czsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgbmFtZWQgIiArIGNvb2tpZURhdGFbIm5hbWUiXSAr
ICIgZXhwaXJlcyBpbiBtb3JlIHRoYW4gIiArIG1heEFnZUluU2Vjb25kcyArICIgc2Vjb25kcy4i
KTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzID0gMTIg
KiA2MCAqIDYwOworICAgICAgICBjb25zdCBzaG9ydExpdmVkQ29va2llTWF4QWdlID0geyBuYW1l
IDogInNob3J0TGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d2Vs
dmVIb3Vyc0luU2Vjb25kcyArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzaG9y
dExpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVN
YXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdlbHZlSG91cnNB
c0V4cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3ZWx2ZUhvdXJzSW5T
ZWNvbmRzKTsKKyAgICAgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUg
OiAic2hvcnRMaXZlZENvb2tpZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d2Vs
dmVIb3Vyc0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0g
c2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENv
b2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3Qgb25lRGF5
SW5TZWNvbmRzID0gMiAqIHR3ZWx2ZUhvdXJzSW5TZWNvbmRzOworICAgICAgICBjb25zdCB0d29E
YXlzSW5TZWNvbmRzID0gMiAqIG9uZURheUluU2Vjb25kczsKKyAgICAgICAgY29uc3QgbG9uZ0xp
dmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0
aW1lIDogIk1heC1BZ2U9IiArIHR3b0RheXNJblNlY29uZHMgKyAiOyIgfTsKKyAgICAgICAgZG9j
dW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiAr
IGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBj
b25zdCB0d29EYXlzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0
d29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llRXhwaXJlcyA9
IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0i
ICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2ll
ID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRD
b29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG92ZXJU
d2VsdmVIb3Vyc0luU2Vjb25kcyA9IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgMzA7CisgICAgICAg
IGNvbnN0IG92ZXJPbmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMgKyAzMDsKKyAgICAg
ICAgaWYgKGludGVybmFscykgeworICAgICAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMu
Z2V0Q29va2llcygpOworICAgICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAgICAgICAgZm9y
IChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvb2tp
ZS5uYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tpZU1heEFn
ZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4
cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRD
b29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29r
aWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2Ug
bG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVj
a1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRz
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBj
YXNlIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAg
IGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNl
Y29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3Jp
Z2luKCk7CisKKyAgICAgICAgICAgIGlmIChwYXNzZWRUZXN0cyA9PT0gNCkgeworICAgICAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBkb24ndCBleHBp
cmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMgKyAiIHNlY29u
ZHMuIik7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBsb25nLWxpdmVkIGNv
b2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3Zlck9uZURheUluU2Vjb25k
cyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkF0IGxlYXN0IG9uZSBjb29raWUncyBleHBpcnkgYXR0cmlidXRlIHdhcyBiZXlv
bmQgdGhlIHRlc3QgdGhyZXNob2xkcy4iKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOworCisgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdh
dGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3Rp
bmF0aW9uT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1m
b3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3Vy
Y2UuaHRtbD9saW5rPXF1ZXJ5IjsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5hdGlvbk9yaWdp
biA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHByZXZhbGVudFJlc291cmNl
T3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdCgp
IHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJldmFsZW50UmVz
b3VyY2VPcmlnaW4pIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2Uo
dHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShw
cmV2YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5n
KG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RDb29raWVzKCk7CisgICAg
ICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRp
bWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2
YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNl
dC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1k
YXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JmNjQ5YTU3ZTEzNjRjMDYwNjQ1Njk0
MTMwNDU0MTEzNzQ1ODMwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQt
aW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0NoZWNrIHRoYXQgY29va2llcyBj
cmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aG91
dCBsaW5rIGRlY29yYXRpb24gZG9uJ3QgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMg
ZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA4NjQzMCBzZWNvbmRzLgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNv
b2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVz
b3VyY2UtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1s
aW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mMmZlYWQ4YjQ1MDc4ZjFiMGFmNTA3ODBmM2Y3ZDZiZDg5ZDgwYTcwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3Jh
dGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsODYg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIv
Y29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlw
dGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBhZnRlciBhIGNy
b3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRob3V0IGxpbmsgZGVjb3JhdGlvbiBkb24ndCBnZXQgY2Fw
cGVkIHRvIDI0IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgZnVu
Y3Rpb24gdGVzdENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7CisKKyAg
ICAgICAgZnVuY3Rpb24gY2hlY2tUaGF0Q29va2llRG9lc0V4cGlyZUFmdGVyKGNvb2tpZURhdGEs
IG1heEFnZUluU2Vjb25kcykgeworICAgICAgICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7Cisg
ICAgICAgICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93LmdldFRpbWUo
KSArIChtYXhBZ2VJblNlY29uZHMgKiAxMDAwKTsKKworICAgICAgICAgICAgaWYgKG1heEV4cGly
eURhdGVJbk1pbGxpc2Vjb25kcyA8IGNvb2tpZURhdGFbImV4cGlyZXMiXSkKKyAgICAgICAgICAg
ICAgICArK3Bhc3NlZFRlc3RzOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkNvb2tpZSBuYW1lZCAiICsgY29va2llRGF0YVsibmFtZSJdICsgIiBleHBpcmVz
IGluIGxlc3MgdGhhbiAiICsgbWF4QWdlSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAg
ICB9CisKKyAgICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0gMjQgKiA2MCAqIDYwOworICAg
ICAgICBjb25zdCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIG9uZURheUluU2Vjb25kczsKKyAgICAg
ICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tp
ZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b0RheXNJblNlY29uZHMgKyAiOyIg
fTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWUg
KyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0v
IjsKKworICAgICAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNE
YXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVk
Q29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRp
bWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAg
ZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7
ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAg
ICAgIGNvbnN0IG92ZXJPbmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMgKyAzMDsKKyAg
ICAgICAgaWYgKGludGVybmFscykgeworICAgICAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5h
bHMuZ2V0Q29va2llcygpOworICAgICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAgICAgICAg
Zm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNv
b2tpZS5uYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llTWF4
QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzRXhw
aXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZUV4
cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNF
eHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAgICAgIGlm
IChwYXNzZWRUZXN0cyA9PT0gMikgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0
d28gbG9uZy1saXZlZCBjb29raWVzIGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJPbmVE
YXlJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJpYnV0
ZSB3YXMgYmVsb3cgdGhlIHRlc3QgdGhyZXNob2xkcy4iKTsKKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOworCisgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJl
ZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1s
aWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9t
LXByZXZhbGVudC1yZXNvdXJjZS5odG1sIjsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5hdGlv
bk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHByZXZhbGVudFJl
c291cmNlT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24gcnVu
VGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJldmFs
ZW50UmVzb3VyY2VPcmlnaW4pIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0
YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJs
b2NraW5nKG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOworCisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RDb29raWVzKCk7
CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRh
YmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBjMjU4YjhlMDA1ZDM1NTQxODJhZjA2ZDQ4
MjU4M2FlNzdlNWExMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9u
LW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhv
c3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40ZTAzZmQ4NzEyZWY5ZWRjOWIxODYyZjYzNmQxZTc0ZWE2ODhkODQ0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlz
dGljcy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0
aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gTWl4ZWQgU3RhdGlzdGljczwv
dGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJU
ZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6
Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4x
ID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdp
bjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3Jp
Z2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21w
bGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBj
bGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29u
c2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJU
ZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5E
YXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlk
IG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0
aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRv
cEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsK
KworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVj
b3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3Rh
dGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7Cisg
ICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3Qg
JiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0
UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkKHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgIH0KKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQt
b24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3Jp
Z2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBjMjU4YjhlMDA1ZDM1NTQx
ODJhZjA2ZDQ4MjU4M2FlNzdlNWExMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50
LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKK1BBU1MgSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHBy
ZXZhbGVudCByZXNvdXJjZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24t
c3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXBy
ZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJh
c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iODU0MDkwOGVkODBkMTM0ZTczODA0OTZhMjc1MDVhZDAwNWM5
N2JhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1l
LXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1MyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFy
c2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBDbGFzc2lmaWNhdGlvbiBCYXNlZCBv
biBTdWIgRnJhbWUgVW5kZXIgVG9wIEZyYW1lIE9yaWdpbnM8L3RpdGxlPgorICAgIDxzY3JpcHQg
c3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAw
MCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3Qg
KyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4y
OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4w
LjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4w
LjAuNDo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhv
c3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAg
ICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5l
ZCh0cnVlKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24t
cHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVP
cmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5k
ZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lu
KHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRl
c3QpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURh
dGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9
KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVy
VGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAg
IHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgfQor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1i
YXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3At
ZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBjMjU4Yjhl
MDA1ZDM1NTQxODJhZjA2ZDQ4MjU4M2FlNzdlNWExMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24t
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0IGRpZCBub3QgZ2V0IGNsYXNz
aWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVu
dC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1l
LW9yaWdpbnMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjExMjBhODU5MzEyMTE0MDcyZDQ3
MjliMzZiYTBhMTc3ZjNkYzQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFz
ZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApA
QCAtMCwwICsxLDUwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFk
PgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIENsYXNz
aWZpY2F0aW9uIEJhc2VkIG9uIFN1YnJlc291cmNlIFVuZGVyIFRvcCBGcmFtZSBPcmlnaW5zPC90
aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRl
c3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDov
LyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEg
PSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2lu
MiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21wbGV0
ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBjbGFz
c2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lz
dGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0
KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRh
UmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworIAorICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3Rh
dGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0
b3BGcmFtZU9yaWdpbjIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0
aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3Jkcygp
OworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9
PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxz
KSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0
KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9u
LXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVu
aXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwYzI1
OGI4ZTAwNWQzNTU0MTgyYWYwNmQ0ODI1ODNhZTc3ZTVhMTMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
bm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0IGRpZCBub3QgZ2V0IGNsYXNz
aWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVu
dC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRv
LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDc1OGNiMDZiNmUyYTlhZmZmYTJkNzQzZDNmZWIy
YzBkYTU4ZTZlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1
YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDUx
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRh
IGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIENsYXNzaWZpY2F0aW9uIEJh
c2VkIG9uIFN1YnJlc291cmNlIFVuaXF1ZSBSZWRpcmVjdHMgVG88L3RpdGxlPgorICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6
ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRl
c3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAu
MC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcu
MC4wLjM6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFs
ZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJI
b3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisg
ICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7
CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
fSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNj
YW5uZWQodHJ1ZSk7CisgCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFz
IG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BG
cmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVz
b3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29y
ZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAg
IH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYm
IHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5h
YmxlZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4
ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9u
LW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyZGQ2
OWY5NDE5ZjUxOTg5NTdmMDkwOGRkNjc0ZDY4NDM2Y2I5YzcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFz
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzg5NzMxOWFiMGZiMTAwMDU1YTkzNWQ0YTk1MmIyYWI5OTQ0ODMzNgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1k
YXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFu
Zz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5U
ZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gTWl4ZWQgU3RhdGlzdGljczwvdGl0bGU+
CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0g
IjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsg
aG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0
dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAi
aHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9
ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW40
ID0gImh0dHA6Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRl
VGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQg
bm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5
IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBh
c3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAg
ICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVk
KHRydWUpOworIAorICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24t
cHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVP
cmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5k
ZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjQpOworCisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVP
cmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0
aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZy
YW1lT3JpZ2luNCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJl
c291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21w
bGV0ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3Rh
dGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChk
b2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVu
bmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBE
YXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAg
ICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAg
ICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRv
cC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zMmRkNjlmOTQxOWY1MTk4OTU3ZjA5MDhkZDY3NGQ2ODQzNmNiOWM3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9w
LWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhvc3Qg
Y2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxl
bnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lu
cy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlYTc2MjAwZGEyZmZiMWEwMDU1YThhMTk4YWUy
NzgzZTJlYjNmNTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1m
cmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTcg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEg
Y2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFz
ZWQgb24gU3ViIEZyYW1lIFVuZGVyIFRvcCBGcmFtZSBPcmlnaW5zPC90aXRsZT4KKyAgICA8c2Ny
aXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4x
OjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJU
ZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4w
LjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3
LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8x
MjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjQgPSAiaHR0cDov
LzEyNy4wLjAuNTo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgewor
ICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3Rh
dGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNs
YXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBpZiAodGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50
IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0
IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIGludGVybmFs
cy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisgICAgICAgIHRlc3RS
dW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlz
dGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJh
bWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVP
cmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3Jp
Z2luNCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2Fu
RGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5k
ZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGRkY2U1YjMxNGNkN2QyZDBkZWM0OGI2
ZjlmOWUwZWNjYWI4MzA5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1z
dWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTQgQEAKK1Rlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiBzdWJyZXNvdXJj
ZSByZWRpcmVjdCBjb2xsdXNpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIENvbGx1ZGluZyBob3N0IDEgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNT
IENvbGx1ZGluZyBob3N0IDIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENv
bGx1ZGluZyBob3N0IDMgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1
ZGluZyBob3N0IDQgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGlu
ZyBsb2NhbGhvc3QgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgYWN0dWFsIHN1
YiBmcmFtZSByZWRpcmVjdC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNl
LXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1z
dWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MWUwNDc3NDY5ZDQwMGJhYTU3NTc4ODI5YWEyMTRlMmVkOGVkNmIzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0
YWJhc2UuaHRtbApAQCAtMCwwICsxLDcxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9
ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiBz
dWJyZXNvdXJjZSByZWRpcmVjdCBjb2xsdXNpb24uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBj
b25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7
CisgICAgY29uc3Qgc3VicmVzb3VyY2VPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90
ZW1wIjsKKyAgICBjb25zdCBzdWJyZXNvdXJjZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4
MDAwL3RlbXAiOworICAgIGNvbnN0IHN1YnJlc291cmNlT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAu
MC40OjgwMDAvdGVtcCI7CisgICAgY29uc3Qgc3VicmVzb3VyY2VPcmlnaW40ID0gImh0dHA6Ly8x
MjcuMC4wLjU6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oc3RhdGlzdGlj
c1VybCwgc3VicmVzb3VyY2VPcmlnaW4xKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oc3VicmVzb3VyY2VPcmlnaW4xLCBzdWJy
ZXNvdXJjZU9yaWdpbjIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShzdWJyZXNvdXJjZU9yaWdpbjIsIHN1YnJlc291cmNlT3Jp
Z2luMyk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVl
UmVkaXJlY3RGcm9tKHN1YnJlc291cmNlT3JpZ2luMywgc3VicmVzb3VyY2VPcmlnaW40KTsKKwor
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJIb3N0IGV4cGxpY2l0eSBzZXQgZGlkIG5vdCBnZXQgc2V0IGFzIHBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luMSkpCisgICAgICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgMSBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNv
dXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2
YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjEpKQorICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkNvbGx1ZGluZyBob3N0IDEgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjIpKQorICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIkNvbGx1ZGluZyBob3N0IDIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVz
b3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4yKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJD
b2xsdWRpbmcgaG9zdCAyIGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4zKSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJD
b2xsdWRpbmcgaG9zdCAzIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN1
YnJlc291cmNlT3JpZ2luMykpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5n
IGhvc3QgMyBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAg
ICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN1
YnJlc291cmNlT3JpZ2luNCkpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5n
IGhvc3QgNCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJj
ZU9yaWdpbjQpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDQg
Z290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIikpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGxv
Y2FsaG9zdCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZSBhZnRlciBhY3R1YWwgc3ViIGZy
YW1lIHJlZGlyZWN0LiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
VmVyeVByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSkKKyAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgbG9jYWxob3N0IGdvdCBjbGFzc2lmaWVkIGFz
IHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAo
ZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1
bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQ
RGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24g
KCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCnCoHsKKyAgICAgICAgICAgICAgICBp
ZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJs
KSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQg
YXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICBsZXQgaWZyYW1l
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICAgICAg
ICAgIGlmcmFtZUVsZW1lbnQub25sb2FkID0gcnVuVGVzdDsKKyAgICAgICAgICAgICAgICBpZnJh
bWVFbGVtZW50LnNyYyA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89aHR0cDovLzEyNy4wLjAuMTo4
MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvb25jbGljay5odG1sIjsKKyAgICAgICAgICAgICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2
YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNv
dXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmI4ZmNiZDhkOGY2ZDA1ZmM0OTRkNGVlZGRjZDljYjVlYmRkZTBjMzkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXByZXZh
bGVudC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgZm9yIGNs
YXNzaWZpY2F0aW9uIGJhc2VkIG9uIHN1YnJlc291cmNlIHJlZGlyZWN0IHRvIG90aGVyIHByZXZh
bGVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgSG9zdCBjbGFzc2lm
aWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1
YnJlc291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45NmE3Mzg5NTMyNzcyMjhjNmVmNTY5MWJmNzAzNTc5Mzk5ZDI0NjZmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVj
dC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDUxIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04
Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZvciBjbGFzc2lm
aWNhdGlvbiBiYXNlZCBvbiBzdWJyZXNvdXJjZSByZWRpcmVjdCB0byBvdGhlciBwcmV2YWxlbnQu
Iik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0
ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8i
ICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0g
Imh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVz
dCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90
IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZSBp
ZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZl
cnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4xLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RU
byhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVU
ZXN0KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNz
QW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50
LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYg
d2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNl
KHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29y
ZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0
IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAg
ICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3Jp
Z2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJkZDY5Zjk0MTlmNTE5ODk1
N2YwOTA4ZGQ2NzRkNjg0MzZjYjljNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXIt
dG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3Vi
cmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yZDAxZWE2YmMyNDkzNzU5MmYwZTg5Njc2MTVjOTljNWM4ZGMzZmE2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3Jp
Z2lucy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0
aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gU3VicmVzb3VyY2UgVW5kZXIg
VG9wIEZyYW1lIE9yaWdpbnM8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cisg
ICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3Rh
dGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNv
bnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAg
Y29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAg
ICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOwor
ICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luNCA9ICJodHRwOi8vMTI3LjAuMC41OjgwMDAvdGVtcCI7
CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRU
b0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVu
bmVyVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNX
aGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3Jp
Z2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGlj
c1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3Vy
Y2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luNCk7CisK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29y
ZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAg
IH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYm
IHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5h
YmxlZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3Vi
cmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJl
dmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyZGQ2OWY5NDE5ZjUxOTg5NTdmMDkwOGRkNjc0ZDY4
NDM2Y2I5YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291
cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQ
QVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRh
YmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJl
Y3RzLXRvLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhmN2YxMzkxYzYyMWRlODY2ZTFiZDIz
YjAxYmRhMzMyZDBkOWYzNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
c3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEs
NTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1l
dGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24g
QmFzZWQgb24gU3VicmVzb3VyY2UgVW5pcXVlIFJlZGlyZWN0cyBUbzwvdGl0bGU+CisgICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAu
MTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVy
VGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcu
MC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEy
Ny4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8v
MTI3LjAuMC40OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW40ID0gImh0dHA6
Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsK
KyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBj
bGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgaWYgKHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9z
dCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICBpbnRlcm5h
bHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAgICAgICB0ZXN0
UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOwor
IAorICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50
IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVk
aXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVP
cmlnaW40KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNj
YW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAg
ICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RV
bmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAg
ICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAg
IH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1i
YXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRh
YmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQzOTM4Yjc2Yzk3NDRjM2FmYTdiMjU1MDVl
YWViNDlkODY2YjUyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9w
LWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxNCBAQAorVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHRvcCBmcmFtZSByZWRp
cmVjdCBjb2xsdXNpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIENv
bGx1ZGluZyBob3N0IDEgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1
ZGluZyBob3N0IDIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGlu
ZyBob3N0IDMgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBo
b3N0IDQgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBsb2Nh
bGhvc3QgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgYWN0dWFsIG5hdmlnYXRp
b25hbCByZWRpcmVjdC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRp
cmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZy
YW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxZGEwMDBl
OWNmYWE3MWE2ODU1MTcyOTRkMmVkYmUwZGZlMGE0NDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJl
dmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRt
bApAQCAtMCwwICsxLDcxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxo
ZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAg
ZGVzY3JpcHRpb24oIlRlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0b3AgZnJhbWUg
cmVkaXJlY3QgY29sbHVzaW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAg
Y29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlz
dGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0
IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29u
c3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBj
b25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworICAg
IGNvbnN0IHRvcEZyYW1lT3JpZ2luNCA9ICJodHRwOi8vMTI3LjAuMC41OjgwMDAvdGVtcCI7Cisg
ICAgY29uc3QgdG9wRnJhbWVPcmlnaW41ID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC8iOworCisg
ICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4x
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVj
dEZyb20odG9wRnJhbWVPcmlnaW4xLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSh0b3BGcmFtZU9yaWdp
bjIsIHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Rv
cEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKHRvcEZyYW1lT3JpZ2luMywgdG9wRnJhbWVPcmlnaW40
KTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGV4cGxpY2l0eSBzZXQgZGlkIG5vdCBnZXQgc2V0
IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMSkpCisgICAgICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgMSBnb3Qgc2V0IGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQ
cmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjEpKQorICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkNvbGx1ZGluZyBob3N0IDEgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjIpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIkNvbGx1ZGluZyBob3N0IDIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7Cisg
ICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3Vy
Y2UodG9wRnJhbWVPcmlnaW4yKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRp
bmcgaG9zdCAyIGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOwor
ICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
dG9wRnJhbWVPcmlnaW4zKSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcg
aG9zdCAzIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3Jp
Z2luMykpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhvc3QgMyBnb3Qg
Y2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2lu
NCkpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgNCBnb3Qgc2V0
IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjQpKQorICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDQgZ290IGNsYXNzaWZpZWQgYXMg
dmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjUpKQorICAgICAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBsb2NhbGhvc3QgZ290IHNldCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UgYWZ0ZXIgYWN0dWFsIG5hdmlnYXRpb25hbCByZWRpcmVjdC4iKTsKKyAgICAg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSh0
b3BGcmFtZU9yaWdpbjUpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBs
b2NhbGhvc3QgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisK
KyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIiAm
JiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
dHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
c3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlk
IG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdG9wRnJhbWVPcmlnaW41ICsgInJlc291cmNl
TG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9uLmh0bWwjY29udGludWUiOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RS
dW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIHJ1blRlc3QoKTsKKyAg
ICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQt
YmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxl
bnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5Zjk5NTMzODI4MGYzMTViMjIw
MDNmMDA4MmQwODE0ODQ3ZTlhYjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0b3Ag
ZnJhbWUgcmVkaXJlY3QgdG8gb3RoZXIgcHJldmFsZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVu
dC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3Qt
dG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGU4YjAxZDE3OGMzMjM5ZWIw
ZDE2NTg0N2RmYTI3ZDFkNjdkNzBkNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlw
dGlvbigiVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHRvcCBmcmFtZSByZWRpcmVj
dCB0byBvdGhlciBwcmV2YWxlbnQuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAg
ICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0
aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29u
c3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKworICAg
IGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVz
dEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJj
ZS4iKTsKKyAgICAgICAgZWxzZSBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0
IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpT
VGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4xLCB0cnVl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZy
YW1lVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworCisg
ICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRz
Q2FsbGJhY2soY29tcGxldGVUZXN0KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQor
CisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2lu
ZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVy
LnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5
UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFs
c2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291
cmNlLiIpOworICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJl
ZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ5MWJmOTYwMzM1
NzA5Yzk5MWRmMWZmZDMyNDI4YmRiYWU4MDZmOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxl
bnQtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBv
biB0b3AgZnJhbWUgdW5pcXVlIHJlZGlyZWN0cyB0by4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRh
dGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJl
Y3RzLXRvLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWM0YzdlZTVmNmMzZmVhNjU2MTNmODU4
MzYyN2E0Yzk4NTAzMTVkYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
dG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU2
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRh
IGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRl
c3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0b3AgZnJhbWUgdW5pcXVlIHJlZGlyZWN0
cyB0by4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRl
clRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0
cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdp
bjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3Jp
Z2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVP
cmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFt
ZU9yaWdpbjQgPSAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24g
Y29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3Rh
dGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lmaWVk
IGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwor
CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2lu
MSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9w
RnJhbWVPcmlnaW4zKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVV
bmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAg
ICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNr
KGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0
YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2Nh
dGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRv
dy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2Vy
ZVNjYW5uZWQodHJ1ZSk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQg
bm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAg
ICBydW5UZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQt
b24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2YWxl
bnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjBmMDMxZGNhNWQwYzk2MDhmNGQ4ZjVhZjg5OWExNmU5ZWY1MWM1OAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGZvciBjbGFzc2lmaWNhdGlv
biBhcyB2ZXJ5IHByZXZhbGVudCBiYXNlZCBvbiBtaXhlZCBzdGF0aXN0aWNzLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2
YWxlbnQgcmVzb3VyY2UuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0
YXRpc3RpY3MtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1z
dGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWIwNmZhMjA5ZWRiYjZmMTE4OGFm
ZjdkMTYwNjMwNDAyN2FiYjE3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1i
YXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2NiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFy
c2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IGZv
ciBjbGFzc2lmaWNhdGlvbiBhcyB2ZXJ5IHByZXZhbGVudCBiYXNlZCBvbiBtaXhlZCBzdGF0aXN0
aWNzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgaG9zdFVuZGVy
VGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRw
Oi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIHZhciB0b3BGcmFtZU9yaWdpbnMg
PSBbXTsKKyAgICBjb25zdCBzdGFydE51bSA9IDI7CisgICAgY29uc3QgbnVtYmVyT2ZTdWJyZXNv
dXJjZURvbWFpbnMgPSAzMDsKKyAgICBmb3IgKHZhciBpID0gc3RhcnROdW07IGkgPCBudW1iZXJP
ZlN1YnJlc291cmNlRG9tYWlucyArIHN0YXJ0TnVtOyArK2kpCisgICAgICAgIHRvcEZyYW1lT3Jp
Z2lucy5wdXNoKCJodHRwOi8vMTI3LjAuMC4iICsgaSArICI6ODAwMC90ZW1wIikKKworICAgIGZ1
bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZh
aWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNv
dXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5v
dCBnZXQgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJl
dmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNv
cmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qgc3RhcnRlZCBv
dXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB2YXIgaSA9IDA7Cisg
ICAgICAgICAgICB3aGlsZSAoaSA8IG51bWJlck9mU3VicmVzb3VyY2VEb21haW5zKSB7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1l
T3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpXSk7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lu
KHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpXSk7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpXSk7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwg
dG9wRnJhbWVPcmlnaW5zW2krMV0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BG
cmFtZU9yaWdpbnNbaSsxXSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3Jp
Z2luc1tpKzFdKTsKKworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1
YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNb
aSsyXSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3Vy
Y2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpKzJd
KTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVu
aXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2krMl0pOworICAg
ICAgICAgICAgICAgIGkgKz0gMzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGVzdFJ1
bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRl
VGVzdCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGlj
c0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVu
dC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYm
IHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFz
ZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBydW5UZXN0UnVubmVyVGVz
dCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5
LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBl
cnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhZTAwMzNm
ZmNjYWVjMjYzYTk2ZjJiM2Q3ODNlZGNmNzA0MDgzZDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5
LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEx
IEBACitUZXN0cyBjbGVhcmluZyBvZiB3ZWJzaXRlIGRhdGEgc3RvcmUuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuCitQQVNTIEhvc3QgaXMgbm8gbG9uZ2VyIGEgcHJldmFsZW50IHJlc291cmNlIGFmdGVy
IHRoZSBzdG9yZSB3YXMgY2xlYXJlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3Jl
LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjE3ZWJhYmFkOTE3YWFkNDk5MDMzODFlYTM1MjNlMjA2MmJhZWIwYQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UuaHRtbApA
QCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFk
PgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdCBDbGVhcmVkIFN0
b3JlPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGNs
ZWFyaW5nIG9mIHdlYnNpdGUgZGF0YSBzdG9yZS4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNv
bnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsK
KyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAi
OworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVt
cCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90
ZW1wIjsKKworICAgIGZ1bmN0aW9uIHRlc3RTdGVwMigpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0
IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc0NsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmUoY29tcGxldGVUZXN0
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQor
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBpcyBzdGlsbCBhIHByZXZhbGVudCByZXNvdXJj
ZSBhZnRlciB0aGUgc3RvcmUgd2FzIGNsZWFyZWQuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIkhvc3QgaXMgbm8gbG9uZ2VyIGEgcHJldmFsZW50IHJlc291cmNlIGFm
dGVyIHRoZSBzdG9yZSB3YXMgY2xlYXJlZC4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5u
ZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1do
ZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
ZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihz
dGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRv
cEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJy
ZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4x
KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJU
b3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0
YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9w
RnJhbWVPcmlnaW4zKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJl
c291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMp
OworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFS
ZWNvcmRzQ2FsbGJhY2sodGVzdFN0ZXAyKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0
aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAg
ICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAm
JiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
dHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAg
ICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4t
bWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1p
bi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA3Zjk5OWM2ZmViMzI2NWRlZmYzOTUxYWMyZjgxNDBhYzFhNmVlZTAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyBjbGVhcmluZyBvZiB3
ZWJzaXRlIGRhdGEgc3RvcmUgKG9uZSBob3VyKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1Mg
SG9zdCBpcyBubyBsb25nZXIgYSBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgdGhlIHN0b3JlIHdh
cyBjbGVhcmVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0
YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mYzE1ZWM4Zjk5YWEzZTM1ZGVjNTY5MmVlNjc2Mjk3ZWQ2NGYyZjli
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1k
YXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFu
Zz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT48
L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgY2xlYXJp
bmcgb2Ygd2Vic2l0ZSBkYXRhIHN0b3JlIChvbmUgaG91cikuIik7CisgICAganNUZXN0SXNBc3lu
YyA9IHRydWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsK
KyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIv
dGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAw
MC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4
MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40
OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwp
KQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBpcyBzdGlsbCBhIHByZXZhbGVudCByZXNv
dXJjZSBhZnRlciB0aGUgc3RvcmUgd2FzIGNsZWFyZWQuIik7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgaXMgbm8gbG9uZ2VyIGEgcHJldmFsZW50IHJlc291cmNl
IGFmdGVyIHRoZSBzdG9yZSB3YXMgY2xlYXJlZC4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RTdGVw
MigpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZp
ZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291
cmNlLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc0NsZWFySW5NZW1vcnlBbmRQ
ZXJzaXN0ZW50U3RvcmVNb2RpZmllZFNpbmNlSG91cnMoMSwgY29tcGxldGVUZXN0KTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVl
KTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7fSk7CisgICAgICAgIGlmICh0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVu
ZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0
YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BG
cmFtZU9yaWdpbjEpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJj
ZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lu
KHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BG
cmFtZU9yaWdpbjMpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJj
ZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKwor
ICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2Fs
bGJhY2sodGVzdFN0ZXAyKTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNz
U3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50Lmxv
Y2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2lu
ZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRy
dWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFzZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2ll
LWRlbGV0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjNmY2ZhMDQ5Mzgz
Nzk5NjJkY2Q3YTdiZGE0Mzk1NTAyMmVjMmU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRh
YmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1NSBAQAorVGVzdCBmb3IgcGFydGl0aW9uZWQg
YW5kIHVucGFydGl0aW9uZWQgY29va2llIGRlbGV0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1No
b3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAn
Zmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBh
cnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQYXJ0eUNvb2tp
ZT12YWx1ZQorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUyLS0+JworLS0tLS0tLS0KK1No
b3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdm
aXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFy
dHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJh
bWU6ICc8IS0tZnJhbWUzLS0+JworLS0tLS0tLS0KK1RyeSB0byBzZXQgdGhpcmQgcGFydHkgY29v
a2llLgorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTQtLT4nCistLS0tLS0tLQorU2hv
dWxkIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2Zp
cnN0UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0
eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFt
ZTogJzwhLS1mcmFtZTUtLT4nCistLS0tLS0tLQorQWZ0ZXIgcmVtb3ZhbCwgc2hvdWxkIHJlY2Vp
dmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlD
b29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScu
CitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1m
cmFtZTYtLT4nCistLS0tLS0tLQorQWZ0ZXIgZGVjbGFzc2lmaWVkLCBzaG91bGQgcmVjZWl2ZSBu
byBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tp
ZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2llJy4KK0Ns
aWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUt
ZGVsZXRpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODM0ZTg3MzA4YTAzOGQ0MjQ2MmIx
MjExMmU0ZWJjMTQ1NTlkZWU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFzZS5odG1s
CkBAIC0wLDAgKzEsMTE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxo
ZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAg
ZGVzY3JpcHRpb24oIlRlc3QgZm9yIHBhcnRpdGlvbmVkIGFuZCB1bnBhcnRpdGlvbmVkIGNvb2tp
ZSBkZWxldGlvbi4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHBh
cnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlPcmln
aW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVy
bCA9IHRoaXJkUGFydHlPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2Vz
IjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2llIjsK
KyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBo
cD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNv
bnN0IHRoaXJkUGFydHlDb29raWVOYW1lID0gInRoaXJkUGFydHlDb29raWUiOworICAgIGNvbnN0
IHN1YlBhdGhUb1NldFRoaXJkUGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiAr
IHRoaXJkUGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgY29uc3QgZnJhZ21l
bnRXaXRoUmV0dXJuVXJsID0gImh0dHA6Ly8iICsgcGFydGl0aW9uSG9zdCArICIvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24uaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRv
R2V0Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2ll
TmFtZSArICImbmFtZTI9IiArIHRoaXJkUGFydHlDb29raWVOYW1lOworCisgICAgZnVuY3Rpb24g
ZmluaXNoVGVzdCgpIHsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNU
ZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxl
cikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZy
YW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFu
ZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAg
ICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAg
fQorCisKKyAgICBmdW5jdGlvbiBmaXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXJBbmRDb250aW51
ZSgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVj
b3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgc2V0VGltZW91dChydW5UZXN0
LCA1MDApOworICAgICAgICB9KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vz
c1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNldEFz
Tm9uUHJldmFsZW50QW5kQ29udGludWUoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4sIGZhbHNlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
c3RpbGwgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICB9KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAg
ICAgICAgICAgLy8gU2V0IGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFzZVVybCArIHN1
YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyBmcmFnbWVudFdpdGhSZXR1cm5Vcmwg
KyAiI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNz
dGVwMiI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgdGhpcmQtcGFydHkgaGFz
IGFjY2VzcyB0byBpdHMgZmlyc3QtcGFydHkgY29va2llcy4KKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1l
KHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91
bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAgICAgIC8v
IENsYXNzaWZ5IGxvY2FsaG9zdCBhcyBwcmV2YWxlbnQuCisgICAgICAgICAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNv
dXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRl
Q29va2llQmxvY2tpbmcocnVuVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAg
IC8vIENoZWNrIHRoYXQgdGhlIHRoaXJkLXBhcnR5IG5vIGxvbmdlciBoYXMgYWNjZXNzIHRvIGl0
cyBmaXJzdC1wYXJ0eSBjb29raWVzLgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9u
Lmhhc2ggPSAic3RlcDUiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJh
c2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIG5v
IGNvb2tpZXMuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlICIjc3RlcDUiOgorICAgICAgICAgICAgICAgIC8vIFRyeSBzZXR0aW5nIGEgY29va2ll
IGFzIHRoaXJkLXBhcnR5LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2gg
PSAic3RlcDYiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwg
KyBzdWJQYXRoVG9TZXRUaGlyZFBhcnR5Q29va2llICsgIiZtZXNzYWdlPVRyeSB0byBzZXQgdGhp
cmQgcGFydHkgY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSAiI3N0ZXA2IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRo
ZSB0aGlyZC1wYXJ0eSBzdGlsbCBoYXMgbm8gYWNjZXNzIHRvIGNvb2tpZXMgYW5kIHRoZW4gZmly
ZSBkYXRhIHJlY29yZCByZW1vdmFsLgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9u
Lmhhc2ggPSAic3RlcDciOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJh
c2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIG5v
IGNvb2tpZXMuIiwgZmlyZURhdGFNb2RpZmljYXRpb25IYW5kbGVyQW5kQ29udGludWUpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA3IjoKKyAgICAgICAg
ICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSB0aGlyZC1wYXJ0eSBzdGlsbCBoYXMgbm8gYWNjZXNz
IHRvIGNvb2tpZXMgYW5kIHRoZW4gZGVjbGFzc2lmeSBsb2NhbGhvc3QuCisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwOCI7CisgICAgICAgICAgICAgICAgb3Bl
bklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3Nh
Z2U9QWZ0ZXIgcmVtb3ZhbCwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4iLCBzZXRBc05vblBy
ZXZhbGVudEFuZENvbnRpbnVlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwOCI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgdGhpcmQt
cGFydHkgc3RpbGwgaGFzIG5vIGFjY2VzcyB0byBjb29raWVzLgorICAgICAgICAgICAgICAgIG9w
ZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNz
YWdlPUFmdGVyIGRlY2xhc3NpZmllZCwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4iLCBmaW5p
c2hUZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAg
IGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBwYXJ0aXRpb25Ib3N0ICYmIGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggPT09ICIiICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJl
Y29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKworICAgICAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEiOworCisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAg
ICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9CisKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWlu
dGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRl
cmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWQxMDkyZWZkZWVlNDZm
YWM2ZTM2YWMwNzZkODE0ZDJiYmU1YzdiOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdpdGgtYW5kLXdpdGhv
dXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNSBA
QAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgIAor
CistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNl
aXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0
eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWU9
dmFsdWUKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMi0tPicKKy0tLS0tLS0tCitTaG91
bGQgcmVjZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmly
c3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0t
CitGcmFtZTogJzwhLS1mcmFtZTMtLT4nCistLS0tLS0tLQorQWZ0ZXIgdXNlciBpbnRlcmFjdGlv
biwgc2hvdWxkIHN0aWxsIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29r
aWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2ll
OgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2ll
cy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45YzdhMzljNzNlOWYxNWM2NjUwYTE3NmIzZWM5MThjMWI1ZmY2NWJhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nv
b2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKQEAg
LTAsMCArMSw4NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4K
KyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3QgZm9yIFBhcnRpdGlv
bmVkIENvb2tpZXMgV2l0aCBhbmQgV2l0aG91dCBVc2VyIEludGVyYWN0aW9uPC90aXRsZT4KKyAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgcGFydGl0aW9uSG9zdCA9ICIxMjcuMC4wLjE6ODAw
MCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAi
OworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0eU9yaWdpbiArICIvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0IGZpcnN0UGFydHlDb29r
aWVOYW1lID0gImZpcnN0UGFydHlDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldEZpcnN0
UGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIGZpcnN0UGFydHlDb29raWVO
YW1lICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgY29uc3QgZnJhZ21lbnRXaXRoUmV0dXJuVXJsID0g
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0
aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLmh0bWwiOworICAgIGNvbnN0IHN1YlBhdGhU
b0dldENvb2tpZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tp
ZU5hbWU7CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVy
bCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAg
ICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxv
YWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
ZWxlbWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2V0VXNlckludGVyYWN0aW9uQW5kQ29u
dGludWUoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbih0aGlyZFBhcnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQ
YXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhpcmQgcGFydHkgZGlk
IG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAgcnVu
VGVzdCgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgewor
ICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNh
c2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRo
aXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIGZy
YWdtZW50V2l0aFJldHVyblVybCArICIjc3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2Nh
dGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFy
dHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2
ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2ggPSAic3RlcDQiOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tp
ZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA1IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1l
KHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91
bGQgcmVjZWl2ZSBubyBjb29raWVzLiIsIHNldFVzZXJJbnRlcmFjdGlvbkFuZENvbnRpbnVlKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNSI6CisgICAg
ICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENv
b2tpZXMgKyAiJm1lc3NhZ2U9QWZ0ZXIgdXNlciBpbnRlcmFjdGlvbiwgc2hvdWxkIHN0aWxsIHJl
Y2VpdmUgbm8gY29va2llcy4iLCBmaW5pc2hUZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBw
YXJ0aXRpb25Ib3N0ICYmIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT0gIiIgJiYgd2luZG93LnRl
c3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVz
ZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2FzIGNsYXNzaWZpZWQgYXMgcHJldmFs
ZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydHMuIik7CisgICAgICAgICAgICBydW5U
ZXN0KCk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRlc3QoKTsKKyAg
ICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vzc2li
bGUtY29va2llcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNvb2tpZXMt
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzNDA3ZGNmM2VkZWViNjBlYzk2NDky
ODUwMTQ1MWEwNTE5Mjg0NzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNvb2tp
ZXMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK0NoZWNrIHRoYXQgb25s
eSBIdHRwT25seSBjb29raWVzIHJlbWFpbiBpZiBhbGwgc2NyaXB0LWFjY2Vzc2libGUgY29va2ll
cyBhcmUgZGVsZXRlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgQmVm
b3JlIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiBDbGllbnQtc2lkZSBjb29raWUgZXhpc3Rz
LgorUEFTUyBCZWZvcmUgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246IEh0dHBPbmx5IGNvb2tp
ZSBleGlzdHMuCitQQVNTIEJlZm9yZSBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogUmVndWxh
ciBzZXJ2ZXItc2lkZSBjb29raWUgZXhpc3RzLgorUEFTUyBBZnRlciBzY3JpcHQtYWNjZXNzaWJs
ZSBkZWxldGlvbjogIEh0dHBPbmx5IGNvb2tpZSBleGlzdHMuCitQQVNTIEFmdGVyIGZ1bGwgZGVs
ZXRpb246ICAgICAgICAgICAgICAgQWxsIGNvb2tpZXMgYXJlIGdvbmUuCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQtYWNj
ZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNvb2tpZXMtZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MGZjNTM3N2Q3ZGVlNjA0Mjk5MGJlMGMyZGJmYjc0NWFl
MDVjZDU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNl
Lmh0bWwKQEAgLTAsMCArMSw3MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorICAgIGRlc2Ny
aXB0aW9uKCJDaGVjayB0aGF0IG9ubHkgSHR0cE9ubHkgY29va2llcyByZW1haW4gaWYgYWxsIHNj
cmlwdC1hY2Nlc3NpYmxlIGNvb2tpZXMgYXJlIGRlbGV0ZWQuIik7CisgICAganNUZXN0SXNBc3lu
YyA9IHRydWU7CisKKyAgICBjb25zdCBodHRwT25seUNvb2tpZU5hbWUgPSAiaHR0cC1vbmx5LWNv
b2tpZSI7CisgICAgY29uc3Qgc2VydmVyU2lkZUNvb2tpZU5hbWUgPSAic2VydmVyLXNpZGUtY29v
a2llIjsKKyAgICBjb25zdCBjbGllbnRTaWRlQ29va2llTmFtZSA9ICJjbGllbnQtc2lkZS1jb29r
aWUiOworCisgICAgZnVuY3Rpb24gc29ydFN0cmluZ0FycmF5KGEsIGIpIHsKKyAgICAgICAgYSA9
IGEudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgYiA9IGIudG9Mb3dlckNhc2UoKTsKKworICAgICAg
ICByZXR1cm4gYSA+IGIgPyAxIDogYiA+IGEgPyAtMSA6IDA7CisgICAgfQorCisgICAgZnVuY3Rp
b24gY2hlY2tDb29raWVzKGlzQWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24pIHsKKyAgICAg
ICAgbGV0IHVuc29ydGVkVGVzdFBhc3NlZE1lc3NhZ2VzID0gW107CisgICAgICAgIGxldCBjb29r
aWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKTsKKyAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0
aCkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoKGlzQWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVsZXRp
b24gPyAiQWZ0ZXIiIDogIkJlZm9yZSIpICsgIiBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjog
Tm8gY29va2llcyBmb3VuZC4iKTsKKyAgICAgICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMp
IHsKKyAgICAgICAgICAgIHN3aXRjaCAoY29va2llLm5hbWUpIHsKKyAgICAgICAgICAgICAgICBj
YXNlIGh0dHBPbmx5Q29va2llTmFtZToKKyAgICAgICAgICAgICAgICAgICAgdW5zb3J0ZWRUZXN0
UGFzc2VkTWVzc2FnZXMucHVzaCgoaXNBZnRlclNjcmlwdEFjY2Vzc2libGVEZWxldGlvbiA/ICJB
ZnRlciIgOiAiQmVmb3JlIikgKyAiIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiAiICsgKGlz
QWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24gPyAiICIgOiAiIikgKyAiSHR0cE9ubHkgY29v
a2llIGV4aXN0cy4iKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgY2FzZSBzZXJ2ZXJTaWRlQ29va2llTmFtZToKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlz
QWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJBZnRlciBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogIFJlZ3VsYXIgc2Vy
dmVyLXNpZGUgY29va2llIGV4aXN0cy4iKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgICAgICAgICAgdW5zb3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMucHVzaCgiQmVm
b3JlIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiBSZWd1bGFyIHNlcnZlci1zaWRlIGNvb2tp
ZSBleGlzdHMuIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IGNhc2UgY2xpZW50U2lkZUNvb2tpZU5hbWU6CisgICAgICAgICAgICAgICAgICAgIGlmIChpc0Fm
dGVyU2NyaXB0QWNjZXNzaWJsZURlbGV0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiQWZ0ZXIgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246ICBDbGllbnQtc2lkZSBj
b29raWUgZXhpc3RzLiIpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgICAgICB1bnNvcnRlZFRlc3RQYXNzZWRNZXNzYWdlcy5wdXNoKCJCZWZvcmUgc2NyaXB0
LWFjY2Vzc2libGUgZGVsZXRpb246IENsaWVudC1zaWRlIGNvb2tpZSBleGlzdHMuIik7CisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAg
IGxldCBzb3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMgPSB1bnNvcnRlZFRlc3RQYXNzZWRNZXNzYWdl
cy5zb3J0KHNvcnRTdHJpbmdBcnJheSk7CisgICAgICAgIGZvciAobGV0IHRlc3RQYXNzZWRNZXNz
YWdlIG9mIHNvcnRlZFRlc3RQYXNzZWRNZXNzYWdlcykKKyAgICAgICAgICAgIHRlc3RQYXNzZWQo
dGVzdFBhc3NlZE1lc3NhZ2UpOworICAgIH0KKworICAgIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lciB8fCAhaW50ZXJuYWxzKSB7CisgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJObyB0ZXN0UnVubmVyIG9yIG5vIGludGVybmFscy4iKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFi
YXNlKHRydWUpOworICAgICAgICBhd2FpdCBmZXRjaCgiL2Nvb2tpZXMvcmVzb3VyY2VzL3NldC1o
dHRwLW9ubHktY29va2llLnBocD9jb29raWVOYW1lPSIgKyBodHRwT25seUNvb2tpZU5hbWUsIHsg
Y3JlZGVudGlhbHM6ICJzYW1lLW9yaWdpbiIgfSk7CisgICAgICAgIGF3YWl0IGZldGNoKCIvY29v
a2llcy9yZXNvdXJjZXMvc2V0Q29va2llcy5jZ2kiLCB7IGhlYWRlcnM6IHsgIlNldC1Db29raWUi
OiBzZXJ2ZXJTaWRlQ29va2llTmFtZSArICI9MTsgcGF0aD0vOyIgfSwgY3JlZGVudGlhbHM6ICJz
YW1lLW9yaWdpbiIgfSk7CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGNsaWVudFNpZGVDb29r
aWVOYW1lICsgIj0xIjsKKyAgICAgICAgY2hlY2tDb29raWVzKGZhbHNlKTsKKyAgICAgICAgdGVz
dFJ1bm5lci5zdGF0aXN0aWNzRGVsZXRlQ29va2llc0Zvckhvc3QoImh0dHA6Ly8xMjcuMC4wLjEi
LCBmYWxzZSk7CisgICAgICAgIGNoZWNrQ29va2llcyh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci5zdGF0aXN0aWNzRGVsZXRlQ29va2llc0Zvckhvc3QoImh0dHA6Ly8xMjcuMC4wLjEiLCB0cnVl
KTsKKyAgICAgICAgbGV0IGNvb2tpZXNMZWZ0ID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKS5sZW5n
dGg7CisgICAgICAgIGlmIChjb29raWVzTGVmdCA9PT0gMCkKKyAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIkFmdGVyIGZ1bGwgZGVsZXRpb246ICAgICAgICAgICAgICAgQWxsIGNvb2tpZXMgYXJlIGdv
bmUuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkFmdGVyIGZ1bGwg
ZGVsZXRpb246ICAgICAgICAgICAgICAiICsgY29va2llc0xlZnQgKyAiIGNvb2tpZShzKSBsZWZ0
LiIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRpcmVjdC1kYXRh
YmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzc0MzA2MWZmMTE5ZmFkM2Y1OTdkYzE1YWUw
NGI0YjhjNjkzNzk0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24t
cmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1NFRDogQ29v
a2llIHN1Y2Nlc3NmdWxseSBzZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24t
cmVkaXJlY3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3Qt
ZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjE5ZTNkNjg5MzJiZmYxOGM1YTAxYzU2ODRjNDRm
MzcxNmZkZTgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRp
cmVjdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxz
Y3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAg
ZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYmxvY2tpbmcgaXMgbm90IGFwcGxpZWQgdG8gdG9wLWxl
dmVsIG5hdmlnYXRpb24gcmVkaXJlY3RzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwor
CisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwor
CisgICAgZnVuY3Rpb24gZG9SZWRpcmVjdCgpCisgICAgeworICAgICAgICB0ZXN0UnVubmVyLnNl
dFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAg
ICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgi
aHR0cDovL2xvY2FsaG9zdCIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAg
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJl
ZiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMvc2V0LWNvb2tpZS1vbi1yZWRpcmVjdC5waHA/c3RlcD0xIjsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0
VGltZW91dCgnZG9SZWRpcmVjdCgpJywgMCkiPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1j
YXB0dXJlLXN0YXRpc3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2aWdhdGlvbnMtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2RvLW5vdC1jYXB0dXJlLXN0YXRpc3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2aWdhdGlvbnMtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2OWM5MWNhZTZlYWEzYmRjYzg0NjBjNjMz
N2IwMmY3ZDY0ZjI0ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3Itc2lt
cGxlLXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBA
QAorVGVzdCB0aGF0IGEgbm9uLXJlZGlyZWN0ZWQgdG9wIGZyYW1lIG5hdmlnYXRpb24gZG9lc24n
dCBnZXQgY2FwdHVyZWQgaW4gc3RhdGlzdGljcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVu
ZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyBmYWxzZQorUEFT
UyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6
Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1jYXB0dXJlLXN0
YXRpc3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2aWdhdGlvbnMtZGF0YWJhc2UuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1z
dGF0aXN0aWNzLWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjgwOTM1YTIzNzBlZGJkNzY5MjUxMzE5YmFjOTQ0ZjcyOGJjNzZlNgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9k
by1ub3QtY2FwdHVyZS1zdGF0aXN0aWNzLWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFi
YXNlLmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJl
biI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9
Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IHRoYXQgYSBub24tcmVkaXJlY3RlZCB0b3AgZnJhbWUg
bmF2aWdhdGlvbiBkb2Vzbid0IGdldCBjYXB0dXJlZCBpbiBzdGF0aXN0aWNzLiIpOworICAgIGpz
VGVzdElzQXN5bmMgPSB0cnVlOworICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1
ZSk7CisgICAgbGV0IHRpbWVySGFuZGxlID0gMDsKKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3Qo
KSB7CisgICAgICAgIGlmICh0aW1lckhhbmRsZSkKKyAgICAgICAgICBjbGVhclRpbWVvdXQodGlt
ZXJIYW5kbGUpOworCisgICAgICAgIHNob3VsZEJlRmFsc2UoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8v
MTI3LjAuMC4xIiknKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgndGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6
Ly9sb2NhbGhvc3QiKScpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hK
U1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRj
aCAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCkgeworICAgICAgICAgICAgY2FzZSAiMTI3LjAuMC4x
OjgwMDAiOgorICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0cy4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNzLWZvci1zaW1wbGUtdG9wLW5h
dmlnYXRpb25zLmh0bWwiOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSAibG9jYWxob3N0OjgwMDAiOgorICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNj
YW5uZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGlj
c0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGZpbmlzaFRlc3QpOworICAgICAgICAgICAgICAg
IGlmICghdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKSkKKyAgICAgICAgICAg
ICAgICAgICAgdGltZXJIYW5kbGUgPSBzZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDEwMCk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIlVua25vd24gaG9zdDogIiArIGRvY3VtZW50LmxvY2F0aW9uLmhvc3QpOwor
ICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBydW5UZXN0
KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5n
LWluLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5nLWluLXJlZGly
ZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYWQ3ZDllNTAwNzZiNmQxNmJi
YzI2YTUwNDZlOTk2OTZkNmUwNzY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4t
cmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTEgQEAKK1Rlc3RzIHRo
YXQgYmxvY2tpbmcgaXMgbm90IHJlbW92ZWQgbWlkLWZsaWdodCBpbiByZWRpcmVjdHMuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKyAgCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEt
LT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2Nh
bGhvc3QuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llSVAn
LgorUmVjZWl2ZWQgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llTG9jYWxob3N0Jy4KK0Rp
ZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgorQ2xpZW50LXNp
ZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llTG9jYWxob3N0PWxvY2FsaG9zdAor
CistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUyLS0+JworLS0tLS0tLS0KK1JlZGlyZWN0IGNh
c2UgMSwgc2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llIGZvciAxMjcuMC4wLjEuCitS
ZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWVJUCcuCitEaWQgbm90IHJlY2Vp
dmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llTG9jYWxob3N0Jy4KK0RpZCBub3QgcmVj
ZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1l
bnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llSVA9MTI3LjAuMC4xCisKKy0tLS0tLS0tCitGcmFt
ZTogJzwhLS1mcmFtZTMtLT4nCistLS0tLS0tLQorVHJ5IHRvIHNldCB0aGlyZC1wYXJ0eSBjb29r
aWUgZm9yIGxvY2FsaG9zdCBpbiBibG9ja2VkIG1vZGUuCisKKworLS0tLS0tLS0KK0ZyYW1lOiAn
PCEtLWZyYW1lNC0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBubyBjb29raWUuCitEaWQg
bm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llSVAnLgorRGlkIG5vdCBy
ZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUxvY2FsaG9zdCcuCitEaWQgbm90
IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRv
Y3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNS0tPicKKy0tLS0t
LS0tCitSZWRpcmVjdCBjYXNlIDIsIHNob3VsZCBub3QgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29r
aWUgZm9yIDEyNy4wLjAuMS4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFy
dHlDb29raWVJUCcuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29v
a2llTG9jYWxob3N0Jy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlD
b29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llSVA9
MTI3LjAuMC4xCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5v
dC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
NmQzMGFhZGVmNDU3N2I4NTI0MjNjNmEyMzZmM2FhMzcxOWYxMDJkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1y
ZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDEwMCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBj
aGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0
cyB0aGF0IGJsb2NraW5nIGlzIG5vdCByZW1vdmVkIG1pZC1mbGlnaHQgaW4gcmVkaXJlY3RzLiIp
OworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgcGFydGl0aW9uSG9zdCA9
ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8v
bG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHJlc291cmNlUGF0aCA9ICIvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhp
cmRQYXJ0eU9yaWdpbiArIHJlc291cmNlUGF0aDsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2ll
TmFtZVByZWZpeCA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29v
a2llTmFtZUlQID0gZmlyc3RQYXJ0eUNvb2tpZU5hbWVQcmVmaXggKyAiSVAiOworICAgIGNvbnN0
IGZpcnN0UGFydHlDb29raWVOYW1lTG9jYWxob3N0ID0gZmlyc3RQYXJ0eUNvb2tpZU5hbWVQcmVm
aXggKyAiTG9jYWxob3N0IjsKKyAgICBjb25zdCB0aGlyZFBhcnR5Q29va2llTmFtZSA9ICJ0aGly
ZFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRUaGlyZFBhcnR5Q29va2llID0g
Ii9zZXQtY29va2llLnBocD9uYW1lPSIgKyB0aGlyZFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9
dmFsdWUiOworICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tpZXMgPSAiL2dldC1jb29raWVzLnBo
cD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWVJUCArICImbmFtZTI9IiArIGZpcnN0UGFy
dHlDb29raWVOYW1lTG9jYWxob3N0ICsgIiZuYW1lMz0iICsgdGhpcmRQYXJ0eUNvb2tpZU5hbWU7
CisgICAgY29uc3QgcmVkaXJlY3RDaGFpblVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyByZXNvdXJj
ZVBhdGggKyAiL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly8iICsgcGFydGl0aW9uSG9z
dCArIHJlc291cmNlUGF0aCArIHN1YlBhdGhUb0dldENvb2tpZXM7CisKKyAgICBmdW5jdGlvbiBv
cGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0g
dXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5v
bmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
KyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBj
YXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgIC8vIFNldCBmaXJzdC1wYXJ0eSBjb29raWVz
IGZvciAxMjcuMC4wLjEgYW5kIGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAgICBpZiAoZG9jdW1l
bnQubG9jYXRpb24ub3JpZ2luID09PSB0aGlyZFBhcnR5T3JpZ2luKSB7CisgICAgICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGZpcnN0UGFydHlDb29raWVOYW1lTG9jYWxob3N0ICsg
Ij1sb2NhbGhvc3Q7cGF0aD0nLyciOworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2Nh
dGlvbi5ocmVmID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbCNzdGVwMiI7
CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Y29va2llID0gZmlyc3RQYXJ0eUNvb2tpZU5hbWVJUCArICI9MTI3LjAuMC4xO3BhdGg9Jy8nIjsK
KyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9ICJodHRwOi8vbG9j
YWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5n
LWluLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwjc3RlcDEiOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAg
ICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgY29va2llIGdldHMgc2VudCBmb3IgbG9jYWxob3N0
IHVuZGVyIDEyNy4wLjAuMSBzaW5jZSBsb2NhbGhvc3QgaXMgbm90IHByZXZhbGVudC4KKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAg
ICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyAr
ICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9z
dC4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
IiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVw
NCI7CisgICAgICAgICAgICAgICAgLy8gTG9hZCBhbiBpZnJhbWUgaW4gYSByZWRpcmVjdCBjaGFp
biB0aGF0IHN0YXJ0cyB3aXRoIGxvY2FsaG9zdCBhbmQgZW5kcyB3aXRoIDEyNy4wLjAuMS4gRXhw
ZWN0IGEgY29va2llIGZvciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAgb3BlbklmcmFtZShy
ZWRpcmVjdENoYWluVXJsICsgIiZtZXNzYWdlPVJlZGlyZWN0IGNhc2UgMSwgc2hvdWxkIHJlY2Vp
dmUgZmlyc3QtcGFydHkgY29va2llIGZvciAxMjcuMC4wLjEuIiwgcnVuVGVzdCk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAgICAg
ICAgIC8vIFNldCBsb2NhbGhvc3QgYXMgcHJldmFsZW50IHRvIHB1dCBpdCBpbiB0aGUgYmxvY2tp
bmcgY2F0ZWdvcnkuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJz
dGVwNSI7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0
aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcocnVuVGVz
dCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlICIjc3RlcDUiOgorICAgICAgICAgICAgICAgIC8vIFRyeSB0byBzZXQgcGFydGl0
aW9uZWQgY29va2llIGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xLgorICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDYiOworICAgICAgICAgICAgICAgIG9w
ZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRUaGlyZFBhcnR5Q29va2ll
ICsgIiZtZXNzYWdlPVRyeSB0byBzZXQgdGhpcmQtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3Qg
aW4gYmxvY2tlZCBtb2RlLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSAiI3N0ZXA2IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IG5v
IGNvb2tpZSBnZXRzIHNlbnQgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEgc2luY2UgbG9j
YWxob3N0J3MgY29va2llcyBhcmUgYmxvY2tlZC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5s
b2NhdGlvbi5oYXNoID0gInN0ZXA3IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJk
UGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICAiJm1lc3NhZ2U9U2hvdWxkIHJl
Y2VpdmUgbm8gY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSAiI3N0ZXA3IjoKKyAgICAgICAgICAgICAgICAvLyBMb2FkIGFuIGlmcmFt
ZSBpbiBhIHJlZGlyZWN0IGNoYWluIHRoYXQgc3RhcnRzIHdpdGggbG9jYWxob3N0IGFuZCBlbmRz
IHdpdGggMTI3LjAuMC4xLiBFeHBlY3QgYSBjb29raWUgZm9yIDEyNy4wLjAuMS4KKyAgICAgICAg
ICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA4IjsKKyAgICAgICAgICAgICAg
ICBvcGVuSWZyYW1lKHJlZGlyZWN0Q2hhaW5VcmwgKyAiJm1lc3NhZ2U9UmVkaXJlY3QgY2FzZSAy
LCBzaG91bGQgbm90IHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llIGZvciAxMjcuMC4wLjEuIiwg
cnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3Rl
cDgiOgorICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVz
dCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAo
ZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRV
c2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
IkxvY2FsaG9zdCB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRo
ZSB0ZXN0IHN0YXJ0cy4iKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVz
QXNUZXh0KCk7CisgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsK
KyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgcnVuVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5v
dC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWludGVy
YWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10
by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDA1ZGMwOWI2OTYzOWYxZDkwYzZjMzdjMjJlZDFiOTZmODYxYzQ0OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91
dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVz
dHMgdGhhdCB0aGUgc2Vzc2lvbiBpcyBub3Qgc3dpdGNoZWQgdXBvbiB0b3AgZnJhbWUgbmF2aWdh
dGlvbiB0byBhIHByZXZhbGVudCByZXNvdXJjZSB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24uCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFNob3VsZCBoYXZlIGFuZCBoYXMg
dGhlIHNlc3Npb24gY29va2llLgorUEFTUyBTaG91bGQgaGF2ZSBhbmQgaGFzIHRoZSBwZXJzaXN0
ZW50IGNvb2tpZS4KK1BBU1MgT3JpZ2luIGhhcyBubyBpc29sYXRlZCBzZXNzaW9uLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dp
dGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlv
bi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13
aXRob3V0LWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmFiZmRiOWM0MmJl
MjBhNzM5NjYyMjQ0ZWVkNGQ3MzY0OGY1YzBkMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Np
b24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFz
ZS5odG1sCkBAIC0wLDAgKzEsMTEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVu
Ij4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRoZSBzZXNz
aW9uIGlzIG5vdCBzd2l0Y2hlZCB1cG9uIHRvcCBmcmFtZSBuYXZpZ2F0aW9uIHRvIGEgcHJldmFs
ZW50IHJlc291cmNlIHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHByZXZhbGVudE9yaWdpbiA9ICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAiOworICAgIGNvbnN0IG5vblByZXZhbGVudE9yaWdpbiA9ICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiOworICAgIGNvbnN0IHNlc3Npb25Db29raWVOYW1lID0gInNlc3Npb25Db29raWUi
OworICAgIGNvbnN0IHBlcnNpc3RlbnRDb29raWVOYW1lID0gInBlcnNpc3RlbnRDb29raWUiOwor
ICAgIGNvbnN0IHR3b01pbnV0ZXNJblNlY29uZHMgPSAxMjA7CisKKyAgICBmdW5jdGlvbiBzZXRT
ZXNzaW9uQ29va2llKCkgeworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzZXNzaW9uQ29va2ll
TmFtZSArICI9MTsgcGF0aD0vIjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZXRQZXJzaXN0ZW50
Q29va2llKCkgeworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBwZXJzaXN0ZW50Q29va2llTmFt
ZSArICI9MTsgcGF0aD0vOyBNYXgtQWdlPSIgKyB0d29NaW51dGVzSW5TZWNvbmRzICsgIjsiOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIGNoZWNrQ29va2llcyhzaG91bGRIYXZlU2Vzc2lvbkNvb2tp
ZSwgc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29raWUpIHsKKyAgICAgICAgbGV0IGhhc1Nlc3Npb25D
b29raWUgPSAoZG9jdW1lbnQuY29va2llICsgIiIpLmluY2x1ZGVzKHNlc3Npb25Db29raWVOYW1l
KSwKKyAgICAgICAgICAgIGhhc1BlcnNpc3RlbnRDb29raWUgPSAoZG9jdW1lbnQuY29va2llICsg
IiIpLmluY2x1ZGVzKHBlcnNpc3RlbnRDb29raWVOYW1lKTsKKworICAgICAgICBpZiAoc2hvdWxk
SGF2ZVNlc3Npb25Db29raWUgJiYgaGFzU2Vzc2lvbkNvb2tpZSkKKyAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIlNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHNlc3Npb24gY29va2llLiIpOworICAgICAg
ICBlbHNlIGlmIChzaG91bGRIYXZlU2Vzc2lvbkNvb2tpZSAmJiAhaGFzU2Vzc2lvbkNvb2tpZSkg
eworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkIGhhdmUgYnV0IGRvZXNuJ3QgaGF2ZSB0
aGUgc2Vzc2lvbiBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UgaWYgKCFzaG91bGRIYXZlU2Vzc2lvbkNv
b2tpZSAmJiBoYXNTZXNzaW9uQ29va2llKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTaG91
bGRuJ3QgaGF2ZSBidXQgaGFzIHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKKyAgICAgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxkbid0IGhhdmUgYW5kIGRvZXNuJ3QgaGF2ZSB0aGUg
c2Vzc2lvbiBjb29raWUuIik7CisKKworICAgICAgICBpZiAoc2hvdWxkSGF2ZVBlcnNpc3RlbnRD
b29raWUgJiYgaGFzUGVyc2lzdGVudENvb2tpZSkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlNo
b3VsZCBoYXZlIGFuZCBoYXMgdGhlIHBlcnNpc3RlbnQgY29va2llLiIpOworICAgICAgICBlbHNl
IGlmIChzaG91bGRIYXZlUGVyc2lzdGVudENvb2tpZSAmJiAhaGFzUGVyc2lzdGVudENvb2tpZSkg
eworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkIGhhdmUgYnV0IGRvZXNuJ3QgaGF2ZSB0
aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UgaWYgKCFzaG91bGRIYXZlUGVyc2lz
dGVudENvb2tpZSAmJiBoYXNQZXJzaXN0ZW50Q29va2llKSB7CisgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJTaG91bGRuJ3QgaGF2ZSBidXQgaGFzIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsKKyAg
ICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxkbid0IGhhdmUgYW5kIGRvZXNu
J3QgaGF2ZSB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgfQorCisgICAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7Cisg
ICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgIHNldFNlc3Npb25Db29r
aWUoKTsKKyAgICAgICAgICAgICAgICBzZXRQZXJzaXN0ZW50Q29va2llKCk7CisgICAgICAgICAg
ICAgICAgY2hlY2tDb29raWVzKHRydWUsIHRydWUpOworICAgICAgICAgICAgICAgIGlmICh0ZXN0
UnVubmVyLmhhc1N0YXRpc3RpY3NJc29sYXRlZFNlc3Npb24ocHJldmFsZW50T3JpZ2luKSkgewor
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPcmlnaW4gaGFzIGlzb2xhdGVkIHNlc3Np
b24uIik7CisgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlz
aEpTVGVzdCk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRl
c3RQYXNzZWQoIk9yaWdpbiBoYXMgbm8gaXNvbGF0ZWQgc2Vzc2lvbi4iKTsKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gbm9uUHJldmFsZW50T3JpZ2luICsgIi9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRv
LXByZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9uLmh0bWwjc3RlcDIiOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBpZiAoZG9j
dW1lbnQubG9jYXRpb24ub3JpZ2luICE9PSBub25QcmV2YWxlbnRPcmlnaW4pCisgICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIlN0ZXAgMiBpcyBub3Qgb24gIiArIG5vblByZXZhbGVudE9y
aWdpbiArICIuIik7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UocHJldmFsZW50T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHByZXZhbGVudE9yaWdpbikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQocHJldmFsZW50T3JpZ2luICsgIiBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291
cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHBy
ZXZhbGVudE9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNl
c3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi5odG1s
I3N0ZXA0IjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVw
NCI6CisgICAgICAgICAgICAgICAgY2hlY2tDb29raWVzKHRydWUsIHRydWUpOworICAgICAgICAg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmhhc1N0YXRpc3RpY3NJc29sYXRlZFNlc3Npb24ocHJldmFs
ZW50T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3JpZ2luIGhhcyBp
c29sYXRlZCBzZXNzaW9uLiIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiT3JpZ2luIGhhcyBubyBpc29sYXRlZCBzZXNzaW9uLiIpOworICAg
ICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIlVua25vd24gaGFzaC4iKTsKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYg
KGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5s
b2NhdGlvbi5vcmlnaW4gIT09IHByZXZhbGVudE9yaWdpbikKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoIlRlc3QgaXMgbm90IHN0YXJ0aW5nIG91dCBvbiAiICsgcHJldmFsZW50T3JpZ2luICsgIi4i
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFz
ZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShw
cmV2YWxlbnRPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQocHJldmFsZW50T3Jp
Z2luICsgIiB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0
ZXN0IHN0YXJ0cy4iKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3Rl
cDEiOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9k
b3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVyeS1mcm9tLXBy
ZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2
aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmYmE4MTAzNWUyZmVjYmExMzk0ZDAxZGYyZTliZTIw
Njk1ZTg1YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRo
LWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTAgQEAKK0NoZWNrIHRoYXQgZG9jdW1lbnQucmVmZXJyZXIgaXMgZG93bmdy
YWRlZCB0byB0aGUgZVRMRCsxIGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGlu
ayBxdWVyeS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHJlZmVy
cmVyIGlzIGRvd25ncmFkZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1s
aW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJl
ci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2Ut
ZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YWViZGU5NWJlOGEwNTJhZmYzNjc5YzA2ODg1YWUx
NzAyZTFkNzU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0
aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAs
MCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQg
c3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKSI+Cis8c2NyaXB0PgorICAg
IGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IGRvY3VtZW50LnJlZmVycmVyIGlzIGRvd25ncmFkZWQg
dG8gdGhlIGVUTEQrMSBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVl
cnkuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBsZXQgbnVtYmVyT2ZUcmll
cyA9IDA7CisgICAgZnVuY3Rpb24gdGVzdFJlZmVycmVyKCkgeworICAgICAgICBpZiAoZG9jdW1l
bnQucmVmZXJyZXIgPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luICsgIi8iKSB7CisgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJUaGUgcmVmZXJyZXIgaXMgZG93bmdyYWRlZC4iKTsKKyAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0gZWxz
ZSBpZiAoKytudW1iZXJPZlRyaWVzIDw9IDUpCisgICAgICAgICAgICBzZXRUaW1lb3V0KHRlc3RS
ZWZlcnJlciwgMjAwKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJU
aGUgcmVmZXJyZXIgaXMgbm90IGRvd25ncmFkZWQ6ICIgKyBkb2N1bWVudC5yZWZlcnJlcik7Cisg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAg
ICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVTYW1lT3JpZ2luVG9BZGRRdWVyeSgp
IHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHByZXZhbGVudFJlc291cmNlT3Jp
Z2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5h
dmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWw/bGlu
az1xdWVyeSI7CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsK
KyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24t
d2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWwiOworICAgIH0KKwor
ICAgIGNvbnN0IGRlc3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7Cisg
ICAgY29uc3QgcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IjsKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRp
b24ub3JpZ2luID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiAmJiBkb2N1bWVudC5sb2NhdGlv
bi5zZWFyY2ggPT09ICIiKSB7CisgICAgICAgICAgICBuYXZpZ2F0ZVNhbWVPcmlnaW5Ub0FkZFF1
ZXJ5KCk7CisgICAgICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luID09PSBw
cmV2YWxlbnRSZXNvdXJjZU9yaWdpbikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJ
VFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVu
Y3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJj
ZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29v
a2llQmxvY2tpbmcobmF2aWdhdGVDcm9zc09yaWdpbik7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RSZWZlcnJl
cigpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5h
YmxlLWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTIxOWRkM2IxMWYyYTM0YzQ1NzUzNDBlNzM4ZGFkY2Zh
MGNjZmNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEwIEBACitUZXN0IGZvciBlbmFibGluZyBkZWJ1ZyBtb2RlIGFuZCB0aGF0IGl0
IHBlcm1hbmVudGx5IHRyZWF0cyAzcmRwYXJ0eXRlc3R3ZWJraXQub3JnIGFzIGEgcHJldmFsZW50
IHJlc291cmNlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBodHRwOi8v
M3JkcGFydHl0ZXN0d2Via2l0Lm9yZyBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZSBpbiBk
ZWJ1ZyBtb2RlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjM3ZmY5MjI1NjdmOWE0NzI4MjczZGZhNDczMjYzN2E0ODVjYjlm
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMzQg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEg
Y2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVz
dCBmb3IgZW5hYmxpbmcgZGVidWcgbW9kZSBhbmQgdGhhdCBpdCBwZXJtYW5lbnRseSB0cmVhdHMg
M3JkcGFydHl0ZXN0d2Via2l0Lm9yZyBhcyBhIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0
cDovLzNyZHBhcnR5dGVzdHdlYmtpdC5vcmciOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
ICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRh
YmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQodGhpcmRQYXJ0
eU9yaWdpbiArICIgYWxyZWFkeSBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUodHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKHRoaXJkUGFydHlPcmlnaW4gKyAiIGRpZG4ndCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNv
dXJjZS4iKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQodGhpcmRQYXJ0eU9yaWdpbiArICIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Ug
aW4gZGVidWcgbW9kZS4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NEZWJ1Z01vZGUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRh
YmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDE4MDNiZmNiNTNiMTQwNDlkNWUxZGFhZTVi
MjViNjI3ZmFjZTVhNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKK1BBU1MgR3JhbmRmYXRoZXJlZCBjb29raWUgd2FzIG5vdCBwdXJnZWQuCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uY2JkZDA0MWRkZDE3ZjhmNDZlY2EzNDcwZjE4MzRmZmE0MmQ2NWQ4ZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9n
cmFuZGZhdGhlcmluZy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTE1IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04
Ij4KKyAgICA8dGl0bGU+VGVzdCBmb3IgR3JhbmRmYXRoZXJpbmc8L3RpdGxlPgorICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdD4KKyAgICBjb25zdCBmaXJzdFBhcnR5T3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCI7CisgICAgY29uc3QgZmlyc3RQYXJ0eUJhc2VVcmwgPSBmaXJzdFBhcnR5T3JpZ2luICsg
Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3QgZmlyc3RQYXJ0
eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUNv
b2tpZU5hbWUgPSAidGhpcmRQYXJ0eUNvb2tpZSI7CisgICAgY29uc3QgY29va2llVmFsdWUgPSAi
dmFsdWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgPSAiL3NldC1j
b29raWUucGhwP25hbWU9IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT0iICsgY29v
a2llVmFsdWU7CisgICAgY29uc3QgcmV0dXJuVXJsID0gZmlyc3RQYXJ0eU9yaWdpbiArICIvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy5odG1sIjsKKyAgICBjb25zdCB0aGly
ZFBhcnR5T3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQ
YXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3Jlc291cmNlcyI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNvb2tpZSA9ICIv
c2V0LWNvb2tpZS5waHA/bmFtZT0iICsgdGhpcmRQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPSIg
KyBjb29raWVWYWx1ZTsKKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGZpcmVE
YXRhTW9kaWZpY2F0aW9uSGFuZGxlckFuZENvbnRpbnVlKCkgeworICAgICAgICB0ZXN0UnVubmVy
Lmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgICAgICB0ZXN0UnVubmVy
LnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gY2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZUFuZENvbnRpbnVlKCkg
eworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVu
dFN0b3JlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAg
ICAgICAgICAgLy8gU2V0IGEgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3QuCisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGZpcnN0UGFydHlCYXNlVXJsICsg
c3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIHJldHVyblVybCArICIjc3RlcDIi
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAg
ICAgICAgICAvLyBDaGVjayB0aGF0IGxvY2FsaG9zdCdzIGNvb2tpZSBpcyB0aGVyZS4KKyAgICAg
ICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSBmaXJzdFBhcnR5Q29va2llTmFtZSAr
ICI9IiArIGNvb2tpZVZhbHVlKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJGaXJz
dC1wYXJ0eSBjb29raWUgbm90IHNldC4iKTsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDQiOworICAgICAgICAgICAg
ICAgIC8vIENsZWFyIHN0b3JlIHRvIHRyaWdnZXIgZ3JhbmRmYXRoZXJpbmcuCisgICAgICAgICAg
ICAgICAgY2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZUFuZENvbnRpbnVlKCk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAgICAgICAgICAg
IC8vIFNldCBsb2NhbGhvc3QgYXMgcHJldmFsZW50IHJlc291cmNlLgorICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxo
b3N0IiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IGRpZCBub3QgZ2V0
IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHJ1blRl
c3QoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgIiNzdGVwNSI6CisgICAgICAgICAgICAgICAgLy8gU2V0IGEgZmlyc3QtcGFy
dHkgY29va2llIGZvciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNvb2tp
ZSArICIjIiArIHJldHVyblVybCArICIjc3RlcDYiOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSAiI3N0ZXA2IjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2Nh
dGlvbi5oYXNoID0gInN0ZXA3IjsKKyAgICAgICAgICAgICAgICAvLyBTZXQgMTI3LjAuMC4xIGFz
IHByZXZhbGVudCByZXNvdXJjZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vMTI3LjAuMC4xIiwgdHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZSgiaHR0cDovLzEyNy4wLjAuMSIpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiMTI3LjAuMC4xIGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNyI6
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwOCI7CisgICAg
ICAgICAgICAgICAgLy8gVHJpZ2dlciBhIHB1cmdlLgorICAgICAgICAgICAgICAgIGZpcmVEYXRh
TW9kaWZpY2F0aW9uSGFuZGxlckFuZENvbnRpbnVlKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlICIjc3RlcDgiOgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRo
YXQgbG9jYWxob3N0J3MgY29va2llIGlzIHN0aWxsIHRoZXJlLgorICAgICAgICAgICAgICAgIGlm
IChkb2N1bWVudC5jb29raWUgIT09IGZpcnN0UGFydHlDb29raWVOYW1lICsgIj0iICsgY29va2ll
VmFsdWUpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkZpcnN0LXBhcnR5IGNvb2tp
ZSBwdXJnZWQuIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJHcmFuZGZhdGhlcmVkIGNvb2tpZSB3YXMgbm90IHB1cmdlZC4iKTsKKyAgICAg
ICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCBub3QgYmUg
cmVhY2hlZC4iKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIgJiYgd2luZG93LnRl
c3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVz
ZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3Np
ZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1v
dmFsKDApOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICBk
b2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsK
KyAgICAgICAgfSk7CisgICAgfSBlbHNlCisgICAgICAgIHJ1blRlc3QoKTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVy
YWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRl
cmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg5Zjg1NWE3ODljZjEw
YmYzMzBmNGM5MmVhMTJiOTQxYWJlZmMwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNl
LXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1
IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BB
U1MgQ29va2llIG5vdCBkZWxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVz
ZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRl
cmFjdGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5N2U4MGZkNjY0ZWUxZWE4MDM4ZDll
ODcyYzczOTU3MjkwZjUxMWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVz
ZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04
Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIE5vbi1QcmV2YWxlbnQgUmVzb3VyY2UgV2l0aCBVc2Vy
IEludGVyYWN0aW9uPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVu
ZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJo
dHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IG90aGVyUHJldmFs
ZW50VXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIHJ1
blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSAiIikK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBub3QgZW1wdHkuIik7Cisg
ICAgICAgIGNvbnN0IGNvb2tpZSA9ICJ0ZXN0Q29va2llPXRlc3RWYWx1ZSI7CisgICAgICAgIGRv
Y3VtZW50LmNvb2tpZSA9IGNvb2tpZSArICI7IG1heC1hZ2U9MTAwOyI7CisgICAgICAgIGlmIChk
b2N1bWVudC5jb29raWUgIT09IGNvb2tpZSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3Vt
ZW50LmNvb2tpZSBkaWQgbm90IGdldCBzZXQuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBk
aWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAg
ICAgLy8gVGhpcyBpcyBkb25lIHRvIG5vdCBoYXZlIGFuIGVtcHR5IHNldCBvZiBwcmV2YWxlbnQg
cmVzb3VyY2VzLgorICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIGRhdGEgcmVjb3JkcyBhcmUgbmV2
ZXIgc2Nhbm5lZC4KKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uob3Ro
ZXJQcmV2YWxlbnRVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPdGhlciBo
b3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3Rh
dGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgh
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1Vy
bCkpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0
IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llID09
PSBjb29raWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29va2ll
IG5vdCBkZWxldGVkLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBkZWxldGVkIG9yIGRvY3VtZW50
LmNvb2tpZSBjb250YWlucyBvdGhlciBjb29raWVzOiAiICsgZG9jdW1lbnQuY29va2llKTsKKwor
ICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5
UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29y
ZHNSZW1vdmFsKDApOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQ
cm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50Lmxv
Y2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2lu
ZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRy
dWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7Cisg
ICAgICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQt
dXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRo
b3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4
OWY4NTVhNzg5Y2YxMGJmMzMwZjRjOTJlYTEyYjk0MWFiZWZjMDcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZh
bGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCitQQVNTIENvb2tpZSBub3QgZGVsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQt
cmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNv
dXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
YmNlOTkwNDVmMGEzZWNjZGJhZDE4Nzg3ZWVkOGZmZjY2NTdmZjY1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2
YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKQEAg
LTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4K
KyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBOb24tUHJl
dmFsZW50IFJlc291cmNlIFdpdGhvdXQgVXNlciBJbnRlcmFjdGlvbjwvdGl0bGU+CisgICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOwor
ICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90
ZW1wIjsKKyAgICBjb25zdCBvdGhlclByZXZhbGVudFVybCA9ICJodHRwOi8vbG9jYWxob3N0Ojgw
MDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAg
aWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1
bWVudC5jb29raWUgbm90IGVtcHR5LiIpOworICAgICAgICBjb25zdCBjb29raWUgPSAidGVzdENv
b2tpZT10ZXN0VmFsdWUiOworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBjb29raWUgKyAiOyBt
YXgtYWdlPTEwMDsiOworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSBjb29raWUpCisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgZGlkIG5vdCBnZXQgc2V0LiIp
OworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgZG9uZSB0byBub3QgaGF2
ZSBhbiBlbXB0eSBzZXQgb2YgcHJldmFsZW50IHJlc291cmNlcy4KKyAgICAgICAgICAgIC8vIE90
aGVyd2lzZSBkYXRhIHJlY29yZHMgYXJlIG5ldmVyIHNjYW5uZWQuCisgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZhbGVudFVybCwg
dHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsKSkKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiT3RoZXIgaG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFs
ZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGVhcmVkIG9mIHVzZXIgaW50ZXJhY3Rpb24u
Iik7CisKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0Rp
ZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSA9PT0gY29va2llKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RQYXNzZWQoIkNvb2tpZSBub3QgZGVsZXRlZC4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJDb29raWUgZGVsZXRlZCBvciBkb2N1bWVudC5jb29raWUgY29udGFpbnMgb3RoZXIgY29va2ll
czogIiArIGRvY3VtZW50LmNvb2tpZSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVt
b3ZhbChmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3Jk
cygpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOwor
ICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0
ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRh
UmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3Qo
KTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHkt
Y29udGV4dC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1j
b29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMGZiOTdmOTFmY2QzM2NjOTc4OTc5Y2Q0OGE1NWE0OTQ3NGQyNzcxMQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ub24tcHJldmFsZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1w
YXJ0eS1jb250ZXh0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCistLS0tLS0t
LQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIG9uZSBj
b29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50
LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZh
bGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4
dC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRo
aXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjRjZmNiMWYzZTM3
MjBmY2EyMjNjNDJkODc4YzI1YTk2NjIyOWJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3Vy
Y2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2Uu
aHRtbApAQCAtMCwwICsxLDY0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4K
KzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdCB0byBl
bnN1cmUgbm9uLXByZXZhbGVudCByZXNvdXJjZXMgY2FuIGFjY2VzcyB0aGVpciBjb29raWVzIGlu
IGEgdGhpcmQgcGFydHkgY29udGV4dDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNv
bnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFy
dHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5
QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVz
b3VyY2VzIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29v
a2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29v
a2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOwor
ICAgIGNvbnN0IGZyYWdtZW50V2l0aFJldHVyblVybCA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlcy1jYW4tYWNjZXNz
LWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0Lmh0bWwiOworICAgIGNvbnN0IHN1YlBh
dGhUb0dldENvb2tpZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNv
b2tpZU5hbWU7CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1l
KHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAg
ICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBv
bkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoZWxlbWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAg
c3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3Rl
cDEiOgorICAgICAgICAgICAgICAgIC8vIFNldCBhIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9j
YWxob3N0LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBh
cnR5QmFzZVVybCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyBmcmFnbWVu
dFdpdGhSZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgLy8gTG9hZCBsb2NhbGhvc3Qg
dW5kZXIgMTI3LjAuMC4xIGFuZCBjaGVjayB0aGF0IGl0IGdldHMgaXRzIGNvb2tpZS4KKyAgICAg
ICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29v
a2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBvbmUgY29va2llLiIsIGZpbmlzaFRlc3Qp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRv
Y3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IHBhcnRpdGlvbkhvc3QgJiYgZG9jdW1lbnQubG9jYXRp
b24uaGFzaCA9PSAiIiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZy
YW1lc0FzVGV4dCgpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
dGhpcmRQYXJ0eU9yaWdpbiwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5T3Jp
Z2luLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2ggPSAic3RlcDEiOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBy
dW5UZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRi
b3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2M2M3MjAyYjAzZTc3MGQ2ZTQ0NmZiNmYzNDAw
ZmIzOGM1OWY1MzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8t
bG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitU
ZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRl
ZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxo
b3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRw
Oi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lz
dGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9z
dCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRv
LWlwLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRv
LWlwLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjViZGE2ZjlmMWJjZWJmNDg5NDU1YmVjZTQ4
NWY1Y2VjZDFmNjA5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10
by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0
aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0
cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBw
cm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKwor
ICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBsYXN0
UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHNDaGVj
a2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsK
KyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAi
KSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAt
MSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZB
SUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZl
bnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQg
PSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBm
aW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0
aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIs
ICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxo
b3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8x
MjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hl
Y2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2Fk
ZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJh
c2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0
YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8vMTI3
LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhw
P3JlZGlyZWN0VG89aHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cmVzb3VyY2VzL3JlZGlyZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAuMC4xOjgwMDAv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvaWZyYW1lLXJlcG9ydC1iYWNrLWxvYWRl
ZC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
bi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3Qt
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2M2M3MjAyYjAzZTc3MGQ2ZTQ0NmZi
NmYzNDAwZmIzOGM1OWY1MzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3Qt
bG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJh
bWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigi
aHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2Nh
bGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0
dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2Fs
aG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVj
dC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NGI1ZWU5OTM3MDQxMDUyZGMyNmU4ZjZhNTg2OWEyMjEzMjAwM2EzMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFi
YXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEg
bm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpz
VGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVz
c2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNo
VGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVz
dCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2Fk
ZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAg
IGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQu
b3JpZ2luID09PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikgeworICAgICAgICAgICAgICAgIGlm
IChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2Ug
ZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAg
ICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlm
IChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2Vy
dmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7
CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4x
IiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NS
ZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2Nh
bGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAg
ICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZp
bmlzaFRlc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVk
KHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRT
Y2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRw
Oi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJl
Y3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHAvP3JlZGlyZWN0VG89aHR0cDovL2xvY2FsaG9z
dDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2lmcmFtZS1yZXBvcnQtYmFj
ay1sb2FkZWQuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJv
eGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAt
dG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZy
YW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRv
LWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjUxNmYxMzJmOWZiMTAxMzY4
MjI2M2M2ZjJjODEwYjdmYWY5ZDhmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8t
aXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVk
aXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94
ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1l
VW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BB
U1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRw
Oi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAu
MSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1l
LXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlw
LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJkOWNhNTkwMWRiODBlMGRkMDJjMjA1MjAzM2MxNTdkZGQzNmUzMWQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGly
ZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRp
b24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3Rl
ZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAg
ICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9u
IGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5p
c2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENo
YWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKwor
ICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYg
KGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAg
ICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBt
ZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisg
ICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAg
ICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3Rp
ZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygp
IHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdp
c3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4w
LjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEy
Ny4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRw
Oi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAg
ICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAg
ICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikg
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJl
U2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0
aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNy
Yz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2Vz
L3BhZ2Utd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3Qt
dG8taXAuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVk
LW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxo
b3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5n
LWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1p
cC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliNTE2ZjEz
MmY5ZmIxMDEzNjgyMjYzYzZmMmM4MTBiN2ZhZjlkOGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1u
ZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9z
dC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIg
QEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3Rl
ZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1Jl
Z2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4w
LjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNS
ZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0
cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdU
bygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJv
eGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9j
YWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8t
bG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFlMzNmNjY3ZGEzNTlmM2E4MmJm
M2MwYzMxMGQzNGVjMzc1YjM0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1l
LXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxv
Y2FsaG9zdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVk
aXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94
ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNl
aXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7Cisg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAg
ICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7
CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiBy
ZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0
YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5l
eHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAgICAgICBsYXN0UGFn
ZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVj
a2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNo
b3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVu
ZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAg
ICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGly
ZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAg
ICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFz
UmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsK
KworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0
UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7
CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNv
cmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAg
IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAu
MTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1ub24tc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0Lmh0bWwi
PgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlm
cmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlw
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQxNmU2MWZkMDE1ZmQ3YWUzY2I4NjZiNjkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJh
bWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQgaWZy
YW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0
cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdp
c3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4w
LjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVk
aXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVj
dC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1l
LXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzM4ZWEzYjU5YTBhNzA3NDNkMzQ1ZGYwNTJlYTYyOWQy
ZjZiOTNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94
ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBA
IC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2Ny
aXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAg
ICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBp
ZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVy
bHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAg
ICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJ
blJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9
IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAg
ICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAibnVsbCIpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdl
IGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAg
ICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBp
ZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNl
cnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAg
ICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVk
QXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScp
OworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lz
dGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAu
MSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9j
YWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAg
ICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBm
aW5pc2hUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5l
ZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlk
U2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0
cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Ut
d2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC5odG1s
Ij4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1p
ZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1s
b2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQxNmU2MWZkMDE1
ZmQ3YWUzY2I4NjZiNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRo
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1k
YXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVj
dHMgZm9yIGEgc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlmcmFt
ZSBnZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJo
dHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2Fs
aG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0
cDovL2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRh
YmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGly
ZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41N2ZhZjAwYThmZDcyZjE0NGVhYWVlZTRhN2QyZDBjYjQ5YjhkOTk1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1z
YW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxv
Y2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0
aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBp
biBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAg
ICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
Im1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZp
bmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hK
U1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWlu
TG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAg
ICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2
ZW50Lm9yaWdpbiA9PT0gIm51bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEu
aW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChl
dmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhw
ZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJ
blJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tl
ZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91
bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRl
cigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAg
IHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVj
dGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAg
ICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1Jl
ZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisK
KyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBh
Z2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jk
c0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9wYWdlLXdpdGgtc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0Lmh0bWwiPgorPC9p
ZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41NDliZmI5MGNjMWFjNWY5MzE1ZGRmMDljZDRiOTMxYzk4Yjc0N2VmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDI0IEBACitUZXN0cyB0aGF0IGNvb2tpZSBibG9ja2luZyBpcyBhcHBsaWVkIHRv
IHBpbmcgbG9hZHMuCisgICAKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0t
LS0tLS0tCitTaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29r
aWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2ll
OiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTIt
LT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2
ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQu
Y29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUzLS0+JworLS0tLS0tLS0KK1Bp
bmcgcmVjZWl2ZWQuCitIVFRQX0hPU1Q6IGxvY2FsaG9zdDo4MDAwCitSRVFVRVNUX1VSSTogL2Nv
bnRlbnRleHRlbnNpb25zL3Jlc291cmNlcy9zYXZlLXBpbmcucGhwP3Rlc3Q9cGluZy10by1wcmV2
YWxlbnQtcmVzb3VyY2UKK05vIGNvb2tpZXMgaW4gcGluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZhbGVudC1y
ZXNvdXJjZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uN2U4ZmExMWQ5NzMxMzBkYzhiMTllMjgyODgyYTFkMzQ4YWY5ZjM5YwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsOTgg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEg
Y2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWkt
aGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMg
dGhhdCBjb29raWUgYmxvY2tpbmcgaXMgYXBwbGllZCB0byBwaW5nIGxvYWRzLjwvZGl2PgorPGEg
aWQ9InRhcmdldExpbmsiIGhyZWY9IiMiIHBpbmc9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9jb250
ZW50ZXh0ZW5zaW9ucy9yZXNvdXJjZXMvc2F2ZS1waW5nLnBocD90ZXN0PXBpbmctdG8tcHJldmFs
ZW50LXJlc291cmNlIj5UaGUgbGluazwvYT4KKzxzY3JpcHQ+CisgICAgaWYgKHRlc3RSdW5uZXIp
CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgY29uc3QgcGFydGl0
aW9uSG9zdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHJlc291cmNlUGF0aCA9ICIvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNl
VXJsID0gdGhpcmRQYXJ0eU9yaWdpbiArIHJlc291cmNlUGF0aDsKKyAgICBjb25zdCBmaXJzdFBh
cnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9T
ZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5
Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHJldHVyblVybCA9ICJodHRw
Oi8vIiArIHBhcnRpdGlvbkhvc3QgKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1w
cmV2YWxlbnQtcmVzb3VyY2UuaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9
ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZTsKKworICAg
IGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQsIGNhbGxiYWNrKSB7CisgICAgICAg
IHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKKyAgICAg
ICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRo
IC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQu
b2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBj
ZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAg
IGNhbGxiYWNrKCk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQor
ICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxvYWRI
YW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbkxv
YWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7
CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAg
ICAgICAgICAgLy8gU2V0IGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFzZVVybCArIHN1
YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyByZXR1cm5VcmwgKyAiI3N0ZXAyIjsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAg
ICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgY29va2llIGdldHMgc2VudCBmb3IgbG9jYWxo
b3N0IHVuZGVyIDEyNy4wLjAuMSBzaW5jZSBsb2NhbGhvc3QgaXMgbm90IHByZXZhbGVudC4KKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAg
ICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2ll
cyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwgcnVuVGVz
dCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgor
ICAgICAgICAgICAgICAgIC8vIFNldCBsb2NhbGhvc3QgYXMgcHJldmFsZW50IHRvIHB1dCBpdCBp
biB0aGUgYmxvY2tpbmcgY2F0ZWdvcnkuCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNv
b2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2Nh
dGlvbi5oYXNoID0gInN0ZXA0IjsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgLy8g
Q2hlY2sgdGhhdCBubyBjb29raWUgZ2V0cyBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAu
MC4xIHNpbmNlIGxvY2FsaG9zdCdzIGNvb2tpZXMgYXJlIGJsb2NrZWQuCisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNSI7CisgICAgICAgICAgICAgICAgb3Bl
bklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAgIiZtZXNz
YWdlPVNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDUiOgorICAgICAgICAgICAgICAgIC8v
IENsaWNrIHRoZSBsaW5rIHRvIHRyaWdnZXIgdGhlIHBpbmcuCisgICAgICAgICAgICAgICAgYWN0
aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eU9yaWdpbiArICIvY29udGVudGV4dGVuc2lvbnMvcmVz
b3VyY2VzL2dldC1waW5nLWRhdGEucGhwP3Rlc3Q9cGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2Ui
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVt
b3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaCgiL2NvbnRlbnRleHRlbnNpb25zL3Jlc291
cmNlcy9kZWxldGUtcGluZy5waHA/dGVzdD1waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZSIpLnRo
ZW4oKCk9PnsgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7IH0pOworICAgICAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRl
c3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVz
b3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFu
ZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGUzMmM1OTNk
ZTEwZDU3NzM3MTAxMzU3MWRkMzQ4ZjUzODUxOTZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJj
ZS1oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAK
K1Rlc3RzIHRoYXQgd2UgZ3JhbnQgVXNlciBJbnRlcmFjdGlvbiBjcmVkaXQgZm9yIGhhbmRsZWQg
a2V5cHJlc3Nlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1NpbXVsYXRlIHVz
ZXIgdHlwaW5nIGxldHRlciAnYScgaW50byB0aGUgZmllbGQuCitQQVNTIHRlc3RJbnB1dC52YWx1
ZSBpcyAiYSIKK1BBU1MgT3JpZ2luIHdhcyBncmFudGVkIHVzZXIgaW50ZXJhY3Rpb24uCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxl
bnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRs
ZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlNTZhNTBjY2M4NGY4MGExNzVk
ZjQ2N2ZmNzg4OTRjZTdiNTE5ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQt
a2V5ZG93bi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgd2UgZ3JhbnQg
VXNlciBJbnRlcmFjdGlvbiBjcmVkaXQgZm9yIGhhbmRsZWQga2V5cHJlc3Nlcy4iKTsKK2pzVGVz
dElzQXN5bmMgPSB0cnVlOworCitjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC90ZW1wIjsKKworb25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgY29uc3QgdGVzdEZy
YW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIpOworCisgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgIH0K
KworICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0
YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsZWFyZWQgb2YgdXNl
ciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgdGVzdElucHV0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRlc3RJbnB1dCIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3Rh
bGxTdGF0aXN0aWNzRGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRlc3RJbnB1dC52YWx1ZSIsICJh
Iik7CisKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJPcmlnaW4gZGlkIG5vdCBnZXQgdXNlciBpbnRlcmFjdGlvbiBjcmVkaXQuIik7Cisg
ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPcmln
aW4gd2FzIGdyYW50ZWQgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgICAgIHNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGcmFtZS5zcmMg
PSAiYWJvdXQ6YmxhbmsiOworICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRU
b0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNv
dXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDAp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmRE
YXRhUmVjb3JkcygpOworCisgICAgICAgICAgICBkZWJ1ZygiU2ltdWxhdGUgdXNlciB0eXBpbmcg
bGV0dGVyICdhJyBpbnRvIHRoZSBmaWVsZC4iKTsKKyAgICAgICAgICAgIHRlc3RJbnB1dC5mb2N1
cygpOworICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAgICAg
ICBldmVudFNlbmRlci5rZXlEb3duKCJhIik7CisgICAgICAgIH0pOworICAgIH0pOworfQorPC9z
Y3JpcHQ+Cis8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUiIHNyYz0icmVzb3VyY2VzL29uY2xpY2suaHRt
bCI+PC9pZnJhbWU+Cis8aW5wdXQgaWQ9InRlc3RJbnB1dCIgdHlwZT0idGV4dCI+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjM2ZTU1OWJmYTJkZDI0NjE2Nzk4OWIyNWFiODIzOWM0NTZiMTY0
YjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyB0aGF0IHdlIGRvIG5vdCBncmFu
dCBVc2VyIEludGVyYWN0aW9uIGNyZWRpdCBmb3IgdW5oYW5kbGVkIGtleXByZXNzLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU2ltdWxhdGUgYW4gdW5oYW5kbGVkIHVzZXIga2V5
IHByZXNzLgorUEFTUyBPcmlnaW4gZGlkIG5vdCBnZXQgdXNlciBpbnRlcmFjdGlvbiBjcmVkaXQu
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3By
ZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJj
ZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhY2RlYjI4ZTRj
Y2I3MTI4MjUzMjE3YmE4ODE5ZWE3ZWE2ZmIyZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNl
LXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhh
dCB3ZSBkbyBub3QgZ3JhbnQgVXNlciBJbnRlcmFjdGlvbiBjcmVkaXQgZm9yIHVuaGFuZGxlZCBr
ZXlwcmVzcy4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitjb25zdCBzdGF0aXN0aWNzVXJs
ID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC90ZW1wIjsKKworb25sb2FkID0gZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgdGVzdEZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFt
ZSIpOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgaW50
ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2Fu
bmVkKHRydWUpOworICAgIH0KKworICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAo
IXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkp
CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3Qg
Z2V0IGNsZWFyZWQgb2YgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgdGVzdFJ1
bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rp
b24oKSB7CisKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJPcmlnaW4gZGlkIG5vdCBnZXQgdXNlciBpbnRlcmFjdGlvbiBjcmVkaXQuIik7
CisKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICB0ZXN0RnJhbWUuc3JjID0gImFib3V0OmJsYW5rIjsKKyAgICAgICAgICAgICAgICAg
ICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICAgICAg
fSwgMCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNl
KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2Vl
bkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKworICAgICAgICAgICAgZGVidWco
IlNpbXVsYXRlIGFuIHVuaGFuZGxlZCB1c2VyIGtleSBwcmVzcy4iKTsKKyAgICAgICAgICAgIGlm
ICh3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93
bigiYSIsIFsibWV0YUtleSJdKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9Cis8L3NjcmlwdD4K
KzxpZnJhbWUgaWQ9InRlc3RGcmFtZSIgc3JjPSJyZXNvdXJjZXMvb25jbGljay5odG1sIj48L2lm
cmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWlu
dGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVy
YWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODlmODU1YTc4OWNmMTBi
ZjMzMGY0YzkyZWExMmI5NDFhYmVmYzA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRo
LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIENv
b2tpZSBub3QgZGVsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJh
Y3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFi
YXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZWMxM2E1MDI3NGM2ZGQ5NGJmZThhMTY0NTljNGNiYWI4YTkw
ZTkwYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRh
dGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5n
PSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRl
c3RzIGZvciBQcmV2YWxlbnQgUmVzb3VyY2UgV2l0aCBVc2VyIEludGVyYWN0aW9uPC90aXRsZT4K
KyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3NldFVwQW5kUnVuKCknLCAwKSI+Cis8c2NyaXB0
PgorICAgIGlmICh0ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNv
bnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsK
KyAgICBjb25zdCBvdGhlclByZXZhbGVudFVybCA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvdGVt
cCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1
bWVudC5jb29raWUgIT09ICIiKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29v
a2llIG5vdCBlbXB0eS4iKTsKKyAgICAgICAgY29uc3QgY29va2llID0gInRlc3RDb29raWU9dGVz
dFZhbHVlIjsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gY29va2llICsgIjsgbWF4LWFnZT0x
MDA7IjsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gY29va2llKQorICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIGRpZCBub3QgZ2V0IHNldC4iKTsKKworICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgZG9uZSB0byBub3QgaGF2ZSBhbiBlbXB0eSBz
ZXQgb2YgcHJldmFsZW50IHJlc291cmNlcy4KKyAgICAgICAgICAgIC8vIE90aGVyd2lzZSBkYXRh
IHJlY29yZHMgYXJlIG5ldmVyIHNjYW5uZWQuCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZhbGVudFVybCwgdHJ1ZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiT3RoZXIgaG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFS
ZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
ZG9jdW1lbnQuY29va2llID09PSBjb29raWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGVzdFBhc3NlZCgiQ29va2llIG5vdCBkZWxldGVkLiIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBk
ZWxldGVkIG9yIGRvY3VtZW50LmNvb2tpZSBjb250YWlucyBvdGhlciBjb29raWVzOiAiICsgZG9j
dW1lbnQuY29va2llKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1l
QmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKworICAg
IGZ1bmN0aW9uIHNldFVwQW5kUnVuKCkgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24u
aG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUp
OworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAg
ICAgICAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiV3JvbmcgaG9zdCwgbm8gdGVzdFJ1
bm5lciwgb3Igbm8gaW50ZXJuYWxzLiIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9w
cmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC1kYXRh
YmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc4MDllOTFjMjNjMjNhMjM2OWNkMDg1NGVi
MTgxNjQ3ZGZhZWI0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVy
YWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIENvb2tp
ZSBkZWxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10
aW1lb3V0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1l
b3V0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjIwODk3MDVkMjc4ZWFhMjIxMjY4NTZkMWQ2
ZDA5OWE1OWEwYTdiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVy
YWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU3IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04
Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIFByZXZhbGVudCBSZXNvdXJjZSBXaXRoIFVzZXIgSW50
ZXJhY3Rpb24gVGltZW91dDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAg
ICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0
aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgZnVu
Y3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUg
IT09ICIiKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIG5vdCBlbXB0
eS4iKTsKKyAgICAgICAgY29uc3QgY29va2llID0gInRlc3RDb29raWU9dGVzdFZhbHVlIjsKKyAg
ICAgICAgZG9jdW1lbnQuY29va2llID0gY29va2llICsgIjsgbWF4LWFnZT0xMDA7IjsKKyAgICAg
ICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gY29va2llKQorICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiZG9jdW1lbnQuY29va2llIGRpZCBub3QgZ2V0IHNldC4iKTsKKworICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0
aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQor
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGxvZ2dlZCBm
b3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5z
dGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSAiIikKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBub3QgZGVsZXRlZDogIiArIGRvY3Vt
ZW50LmNvb2tpZSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIkNvb2tpZSBkZWxldGVkLiIpOworICAgICAgICAgICAgICAgICAg
ICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAg
ICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0
YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVz
b3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92
YWwoMCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVGltZVRvTGl2
ZVVzZXJJbnRlcmFjdGlvbigwKTsKKworICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdG8gZW5z
dXJlIHRoZSB0aW1lb3V0IHdlJ3JlIHRlc3RpbmcuCisgICAgICAgICAgICAgICAgc2V0VGltZW91
dCgidGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3Jkcygp
IiwgMTAwMCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYg
KGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RS
dW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwor
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jk
c1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgIH0K
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0
LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0
LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ODA5
ZTkxYzIzYzIzYTIzNjljZDA4NTRlYjE4MTY0N2RmYWViNDMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJl
c291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKK1BBU1MgQ29va2llIGRlbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91
dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1p
bnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3YjBiMmFhZTMwODRkNGM0N2Q5
ZWM5ZjdjZTMyZmU0ZDQwYjljNGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQt
dXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRG
LTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgUHJldmFsZW50IFJlc291cmNlIFdpdGhvdXQgVXNl
ciBJbnRlcmFjdGlvbjwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBj
b25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0
aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisKKyAgICBmdW5j
dGlvbiBmaW5pc2hUZXN0ICgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIp
CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgbm90IGRlbGV0ZWQ6ICIgKyBkb2N1bWVu
dC5jb29raWUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb29raWUg
ZGVsZXRlZC4iKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNp
c3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVz
dCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgbm90IGVtcHR5LiIpOworICAgICAgICBjb25zdCBj
b29raWUgPSAidGVzdENvb2tpZT10ZXN0VmFsdWUiOworICAgICAgICBkb2N1bWVudC5jb29raWUg
PSBjb29raWUgKyAiOyBtYXgtYWdlPTEwMDsiOworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2ll
ICE9PSBjb29raWUpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgZGlk
IG5vdCBnZXQgc2V0LiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0
IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNI
YWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xlYXJlZCBvZiB1c2VyIGludGVyYWN0aW9uLiIp
OworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlm
eURhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHNl
dFRpbWVvdXQoImZpbmlzaFRlc3QoKSIsIDEwMDApOworICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3Vy
Y2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwo
MCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3Rp
Y3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0K
KworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdp
bmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFz
ZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVu
RGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3Qo
KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNz
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lNzQ3NTdiYzUyNTYwMDUyMWQ0NjE1NDVkMDM2N2MwZjA1MDFiZWYzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3BydW5lLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAK
K1Rlc3RzIHRoYXQgc3RhdGlzdGljcyBhcmUgcHJ1bmVkIGluIHRoZSByaWdodCBvcmRlci4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGVzdCBpdGVyYXRpb24gMSBwYXNz
ZWQuCitQQVNTIFRlc3QgaXRlcmF0aW9uIDIgcGFzc2VkLgorUEFTUyBUZXN0IGl0ZXJhdGlvbiAz
IHBhc3NlZC4KK1BBU1MgVGVzdCBpdGVyYXRpb24gNCBwYXNzZWQuCitQQVNTIFRlc3QgaXRlcmF0
aW9uIDUgcGFzc2VkLgorUEFTUyBUZXN0IGl0ZXJhdGlvbiA2IHBhc3NlZC4KK1BBU1MgVGVzdCBp
dGVyYXRpb24gNyBwYXNzZWQuCitQQVNTIFRlc3QgaXRlcmF0aW9uIDggcGFzc2VkLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0
aXN0aWNzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBj
YWI3ZDM5MTcxZDAzZjQ3YjQxOWQyYWRiMGNhMTM4YWRmNzhlYjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3Rh
dGlzdGljcy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTYzIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5U
ZXN0IGZvciBSZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3MgUHJ1bmluZzwvdGl0bGU+CisgICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBzdGF0aXN0
aWNzIGFyZSBwcnVuZWQgaW4gdGhlIHJpZ2h0IG9yZGVyLiIpOworICAgIGpzVGVzdElzQXN5bmMg
PSB0cnVlOworCisgICAgY29uc3Qgb2xkZXJUaW1lc3RhbXAgPSBNYXRoLnJvdW5kKChuZXcgRGF0
ZSgpKS5nZXRUaW1lKCkgLyAxMDAwKTsKKyAgICBjb25zdCBuZXdlclRpbWVzdGFtcCA9IG9sZGVy
VGltZXN0YW1wICsgMTA7CisgICAgY29uc3QgbmV3ZXN0VGltZXN0YW1wID0gbmV3ZXJUaW1lc3Rh
bXAgKyAxMDsKKworICAgIGNvbnN0IHVybHNUb0JlUHJ1bmVkID0gWworICAgICAgICB7IHVybDog
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC90ZW1wIiwgcHJldmFsZW50OiBmYWxzZSB9LAorICAgICAg
ICB7IHVybDogImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIiwgcHJldmFsZW50OiBmYWxzZSB9
LAorICAgICAgICB7IHVybDogImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIiwgcHJldmFsZW50
OiB0cnVlIH0sCisgICAgICAgIHsgdXJsOiAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiLCBw
cmV2YWxlbnQ6IHRydWUgfSwKKyAgICAgICAgeyB1cmw6ICJodHRwOi8vMTI3LjAuMC41OjgwMDAv
dGVtcCIsIHByZXZhbGVudDogZmFsc2UgfSwKKyAgICAgICAgeyB1cmw6ICJodHRwOi8vMTI3LjAu
MC42OjgwMDAvdGVtcCIsIHByZXZhbGVudDogZmFsc2UgfSwKKyAgICAgICAgeyB1cmw6ICJodHRw
Oi8vMTI3LjAuMC43OjgwMDAvdGVtcCIsIHByZXZhbGVudDogdHJ1ZSB9LAorICAgICAgICB7IHVy
bDogImh0dHA6Ly8xMjcuMC4wLjg6ODAwMC90ZW1wIiwgcHJldmFsZW50OiB0cnVlIH0KKyAgICBd
OworCisgICAgZnVuY3Rpb24gY2hlY2tJZlByZXZhbGVudEFjY29yZGluZ1RvSW5pdGlhbEV4cGVj
dGF0aW9uKGJlZ2luLCBlbmQpIHsKKyAgICAgICAgdmFyIGZhaWxlZCA9IGZhbHNlOworICAgICAg
ICBmb3IgKHZhciBpID0gYmVnaW47IGkgPCBlbmQ7ICsraSkgeworICAgICAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsc1RvQmVQcnVuZWRbaV0u
dXJsKSAhPT0gdXJsc1RvQmVQcnVuZWRbaV0ucHJldmFsZW50KSB7CisgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiY2hlY2tJZlByZXZhbGVudEFjY29yZGluZ1RvSW5pdGlhbEV4cGVjdGF0aW9u
OiBUZXN0IGl0ZXJhdGlvbiAiICsgY3VycmVudFRlc3QgKyAiIGZhaWxlZC4gIiArIHVybHNUb0Jl
UHJ1bmVkW2ldLnVybCArICh1cmxzVG9CZVBydW5lZFtpXS5wcmV2YWxlbnQgPyAiIHdhc24ndCAi
IDogIiB3YXMgIikgKyAicHJldmFsZW50Iik7CisgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1
ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoZmFpbGVkKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBjaGVja0lmUHJldmFsZW50KGJlZ2lu
LCBlbmQsIGV4cGVjdGVkKSB7CisgICAgICAgIHZhciBmYWlsZWQgPSBmYWxzZTsKKyAgICAgICAg
Zm9yICh2YXIgaSA9IGJlZ2luOyBpIDwgZW5kOyArK2kpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1bmVkW2ldLnVy
bCkgIT09IGV4cGVjdGVkKSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiY2hlY2tJZlBy
ZXZhbGVudDogVGVzdCBpdGVyYXRpb24gIiArIGN1cnJlbnRUZXN0ICsgIiBmYWlsZWQuICIgKyB1
cmxzVG9CZVBydW5lZFtpXS51cmwgKyAoZXhwZWN0ZWQgPyAiIHdhc24ndCAiIDogIiB3YXMgIikg
KyAicHJldmFsZW50Iik7CisgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoZmFpbGVkKSB7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBmdW5jdGlvbiBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKHN0
ZXApIHsKKyAgICAgICAgc3dpdGNoIChzdGVwKSB7CisgICAgICAgICAgICAvLyBOb24tcHJldmFs
ZW50IHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbiB0byBiZSBwcnVuZWQgZmlyc3QuCisgICAgICAg
ICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFz
dFNlZW4odXJsc1RvQmVQcnVuZWRbMF0udXJsLCBvbGRlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7
IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMik7IH0pOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVkWzFdLnVybCwgbmV3ZXJUaW1lc3Rh
bXAsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDMpOyB9KTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8vIFByZXZhbGVudCB3aXRob3V0
IHVzZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIHNlY29uZC4KKyAgICAgICAgICAgIGNhc2Ug
MzoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSh1cmxzVG9CZVBydW5lZFsyXS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXpl
U3RhdGlzdGljc0FuZFJ1blRlc3RzKDQpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFsyXS51cmwsIG9sZGVyVGltZXN0YW1wLCBmdW5jdGlv
bigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyg1KTsgfSk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsc1RvQmVQcnVuZWRbM10udXJs
LCB0cnVlLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyg2KTsg
fSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDY6CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRb
M10udXJsLCBuZXdlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNz
QW5kUnVuVGVzdHMoNyk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Ly8gTm9uLXByZXZhbGVudCB3aXRoIHVzZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIHRoaXJk
LgorICAgICAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih1cmxzVG9CZVBydW5lZFs0XS51cmwsIHRydWUs
IGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDgpOyB9KTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgODoKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFs0XS51cmws
IG9sZGVyVGltZXN0YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5U
ZXN0cyg5KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDk6
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKHVybHNUb0JlUHJ1bmVkWzVdLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxp
emVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTApOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgMTA6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbNV0udXJsLCBuZXdlclRpbWVzdGFtcCwgZnVu
Y3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTEpOyB9KTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8vIFByZXZhbGVudCB3aXRoIHVzZXIgaW50
ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIGxhc3QuCisgICAgICAgICAgICBjYXNlIDExOgorICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNU
b0JlUHJ1bmVkWzZdLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNz
QW5kUnVuVGVzdHMoMTIpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgMTI6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHVybHNUb0JlUHJ1bmVkWzZdLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7
IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTMpOyB9KTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTM6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbNl0udXJsLCBvbGRlclRpbWVz
dGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTQpOyB9
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTQ6CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsc1Rv
QmVQcnVuZWRbN10udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NB
bmRSdW5UZXN0cygxNSk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSAxNToKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24odXJsc1RvQmVQcnVuZWRbN10udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsg
aW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxNik7IH0pOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSAxNjoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFs3XS51cmwsIG5ld2VyVGltZXN0
YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxNyk7IH0p
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxNzoKKyAgICAgICAg
ICAgICAgICBjaGVja0lmUHJldmFsZW50QWNjb3JkaW5nVG9Jbml0aWFsRXhwZWN0YXRpb24oMCwg
dXJsc1RvQmVQcnVuZWQubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2YXIgY3VycmVudFRl
c3Q7CisgICAgZnVuY3Rpb24gY2hlY2tTdGF0aXN0aWNzQWZ0ZXJQcnVuaW5nKCkgeworICAgICAg
ICAvLyBQcnVuZWQgZW50cmllcyBzaG91bGQgbm90IGJlIHByZXZhbGVudC4KKyAgICAgICAgY2hl
Y2tJZlByZXZhbGVudCgwLCBjdXJyZW50VGVzdCwgZmFsc2UpOworICAgICAgICAvLyBOb24tcHJ1
bmVkIGVudHJpZXMgc2hvdWxkIGtlZXAgdGhlaXIgZXhwZWN0ZWQgc3RhdHVzLgorICAgICAgICBj
aGVja0lmUHJldmFsZW50QWNjb3JkaW5nVG9Jbml0aWFsRXhwZWN0YXRpb24oY3VycmVudFRlc3Qs
IHVybHNUb0JlUHJ1bmVkLmxlbmd0aCk7CisgICAgICAgIHRlc3RQYXNzZWQoIlRlc3QgaXRlcmF0
aW9uICIgKyBjdXJyZW50VGVzdCArICIgcGFzc2VkLiIpOworICAgICAgICBpZiAoY3VycmVudFRl
c3QgPCB1cmxzVG9CZVBydW5lZC5sZW5ndGgpIHsKKyAgICAgICAgICAgICsrY3VycmVudFRlc3Q7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNv
cmRzQ2FsbGJhY2soY2hlY2tTdGF0aXN0aWNzQWZ0ZXJQcnVuaW5nKTsKKyAgICAgICAgICAgIGlu
aXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMSk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgZmlsbGVyVXJsOworICAgIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7CisgICAgICAgIGZpbGxlclVybCA9ICJodHRwOi8vMTI3LjAuIiArIGN1cnJlbnRU
ZXN0ICsgIi4xOjgwMDAvdGVtcCI7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKGZpbGxlclVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oZmlsbGVyVXJs
LCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NMYXN0U2VlbihmaWxsZXJVcmwsIG5ld2VzdFRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNz
QW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29y
ZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11
bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOwor
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNYXhTdGF0aXN0aWNzRW50cmllcyh1cmxz
VG9CZVBydW5lZC5sZW5ndGgpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcnVu
ZUVudHJpZXNEb3duVG8odXJsc1RvQmVQcnVuZWQubGVuZ3RoKTsKKworICAgICAgICBjdXJyZW50
VGVzdCA9IDE7CisgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0
YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRpc3RpY3NBZnRlclBydW5pbmcpOworICAgICAgICBp
bml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDEpOworICAgIH0KKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0
LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2Fs
aG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdjMTQzOGIxODY0
MDY0MmFhMTZmYzA2YjY5ZDg0MWZkZjNiZjE2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIHNhbmRib3hlZCBpZnJhbWVzIGdl
dCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6
Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0
IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8v
bG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9z
dC10by1pcC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRv
LWlwLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjY3MTEyMDUwNjgxODM5MWNhOTY3ZmYyNGZm
ZmMwNThjOTIxOWY0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxv
Y2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRo
YXQgcmVkaXJlY3RzIGZvciBzYW5kYm94ZWQgaWZyYW1lcyBnZXQgY291bnRlZCBwcm9wZXJseS4i
KTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBm
dW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVT
Y2FubmVkKHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3Rp
Y3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVk
ID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBm
dW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9y
aWdpbiA9PT0gIm51bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhP
ZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5k
YXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQg
b3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGly
ZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAg
ICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQor
CisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRy
dWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0
cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1Rv
KCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAg
c2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0
aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAg
ICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJl
ZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAg
ICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2FuZGJveD0iYWxs
b3ctc2NyaXB0cyIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHAvP3JlZGly
ZWN0VG89aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3Vy
Y2VzL2lmcmFtZS1yZXBvcnQtYmFjay1sb2FkZWQuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1s
b2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0
LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdj
MTQzOGIxODY0MDY0MmFhMTZmYzA2YjY5ZDg0MWZkZjNiZjE2ZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBzYW5k
Ym94ZWQgaWZyYW1lcyBnZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJG
cmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVl
CitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygi
aHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcu
MC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVj
dC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjAyNmJkOWMwYzIxMmI3ZTVmMTY0OWI1OTNiOTc4ODNjZjMxNDhmYwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJh
c2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3Igc2Fu
ZGJveGVkIGlmcmFtZXMgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElz
QXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIs
IHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgp
IHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRz
Q2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAg
ICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2
YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3Nh
Z2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikgewor
ICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIs
ICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJS
ZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9y
aWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1
ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNo
VGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3Rh
dGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBj
aGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0
cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIs
ICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAu
MC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQg
PSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQor
ICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMiIHNyYz0iaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGly
ZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9pZnJhbWUtcmVwb3J0LWJh
Y2stbG9hZGVkLmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVk
LW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8t
bG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0
aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzNjU4Y2QzNDNmNTU2ZTBjMzQ0NzVlZjll
ZjQ1YzYyMGQ0ZDQyN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9u
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3Ig
YSBub24tc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBzYW5kYm94ZWQgaWZyYW1lIGdldCBj
b3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9s
b2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0Iiwg
Imh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9j
YWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVz
dGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2Nh
bGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTJkNTk5OTY0ZTdlNjJmZDA1
ZmIwZDc4YWU1ZTI5NjYwNTdhMDY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13
aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1k
YXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZv
ciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIHNhbmRib3hlZCBpZnJhbWUgZ2V0
IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAg
ICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBm
YWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAg
ICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRh
YmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNX
aGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0
cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUlu
UmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0g
ZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAg
ICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikgeworICAgICAgICAgICAgICAgIGlm
IChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2Ug
ZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAg
ICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlm
IChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2Vy
dmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7
CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4x
IiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NS
ZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2Nh
bGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAg
ICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZp
bmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
aWZyYW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMiIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAw
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1ub24tc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAuaHRtbCI+Cis8L2lmcmFtZT4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFi
YXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yMzY1OGNkMzQzZjU1NmUwYzM0NDc1ZWY5ZWY0NWM2MjBkNGQ0Mjdl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1z
YW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIHNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQg
cHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9z
dCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDov
LzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3Rl
cmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3Qi
KSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVz
dGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3Qt
dG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGY4NmZlOGMzMjk0
ZTI1MzkyMmMyNWVhMzc5MjdmZDVjOTQzNmZmOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1p
ZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAt
dG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhh
dCByZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgc2FuZGJv
eGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3lu
YyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVj
ZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewor
ICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0
cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxs
YmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAg
dmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBz
dGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShl
dmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gIm51bGwiKSB7CisgICAg
ICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIp
KTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2Vp
dmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2lu
KTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOwor
ICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0
KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNr
U3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8v
MTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0
dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEi
LCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRy
dWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAg
ICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc2NyaXB0cyIgc3JjPSJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcGFnZS13aXRo
LW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhv
c3QuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGlu
Zy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10
by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQxNmU2MWZkMDE1ZmQ3YWUzY2I4NjZiNjkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUg
bmVzdGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8v
MTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVy
ZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIp
IGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVj
dGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRi
b3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8t
bG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kNmU5NGE0NTk2OTg1NGQzZTM4OGQxMGFhZGNhZjBhMWQyYTRkYWFmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlv
bigiVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4g
YSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAg
anNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJt
ZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5p
c2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNU
ZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUp
OworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0
YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7Cisg
ICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNl
aXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gIm51
bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09
PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2Uo
IkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsg
ZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2Fk
ZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAg
ICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9z
dCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9j
YWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVl
KCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6
Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRz
Q2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5M
b2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisgICAgPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc2NyaXB0cyIg
c3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMvcGFnZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRv
LWlwLmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3Rp
bmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAt
dG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQxNmU2MWZkMDE1
ZmQ3YWUzY2I4NjZiNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBm
b3IgYSBzYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdl
dCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6
Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0
IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8v
bG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94
ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9z
dC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZTE5ZGQxMDAy
MTE1ZDhhMTk0ZmMyMjQxZDU4ZjRmODJlMDAyYmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5n
LWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRv
LWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
cmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hl
ZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMg
PSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2Vp
dmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAg
ICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAg
IH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJh
Y2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHZh
ciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3Rh
dHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZl
bnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikgeworICAgICAg
ICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7
CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZl
ZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7
CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAg
ICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0
YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEy
Ny4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRw
Oi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwg
Imh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVl
OworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAg
ICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMiIHNyYz0iaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QuaHRt
bCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1y
ZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1y
ZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
ZGMwNzNkYTQ3Y2JhNDg2MDc3MjNkNGZkYjYzY2JhMTU2ZDg3ZTYyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0
b20tcHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgZm9yIGVuYWJsaW5nIGRlYnVnIG1vZGUgYW5kIHRoYXQg
aXQgYWxsb3dzIHNldHRpbmcgYSBjdXN0b20gZG9tYWluIGFzIGEgcHJldmFsZW50IHJlc291cmNl
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBodHRwOi8vbG9jYWxob3N0
OjgwMDAgZ290IHNldCBhcyBhIGN1c3RvbSBwcmV2YWxlbnQgcmVzb3VyY2UgaW4gZGVidWcgbW9k
ZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4tZGVidWctbW9kZS1kYXRhYmFzZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0
b20tcHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41ZmRhODEyMDE5YTllNzNmZjk1NTg5MTVlMGY4ODkyNmE4ZDkwNDlhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Nl
dC1jdXN0b20tcHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbApA
QCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFk
PgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVz
Y3JpcHRpb24oIlRlc3QgZm9yIGVuYWJsaW5nIGRlYnVnIG1vZGUgYW5kIHRoYXQgaXQgYWxsb3dz
IHNldHRpbmcgYSBjdXN0b20gZG9tYWluIGFzIGEgcHJldmFsZW50IHJlc291cmNlLiIpOworICAg
IGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdp
bmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0
cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJk
UGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQodGhpcmRQYXJ0eU9yaWdp
biArICIgYWxyZWFkeSBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZSh0
aGlyZFBhcnR5T3JpZ2luLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGly
ZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQodGhpcmRQ
YXJ0eU9yaWdpbiArICIgZGlkbid0IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwor
ICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UGFz
c2VkKHRoaXJkUGFydHlPcmlnaW4gKyAiIGdvdCBzZXQgYXMgYSBjdXN0b20gcHJldmFsZW50IHJl
c291cmNlIGluIGRlYnVnIG1vZGUuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc0RlYnVnTW9kZShmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1y
ZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291
cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2JkNTQzZWM5
YWYzMjRiZDUwZGMxZDRjODZjZGIwOWU5YzRkNWIyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10
by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3RzIHRoYXQgb25seSB0aGUgb3JpZ2luIGlz
IHNlbnQgYXMgcmVmZXJyZXIgaW4gcmVkaXJlY3RzIHRvIHByZXZhbGVudCByZXNvdXJjZXMgd2l0
aG91dCB1c2VyIGludGVyYWN0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyByZWZlcnJlciBpcyAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2Ut
cmVkaXJlY3RzLWRhdGFiYXNlLmh0bWwiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+Jwor
LS0tLS0tLS0KK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmln
aW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJl
ci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iMGY4YTJmNDIwYjVhYTYyYzM3YTI1ZDRiZGRmZWQzM2EzM2JmYTVm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291
cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24o
IlRlc3RzIHRoYXQgb25seSB0aGUgb3JpZ2luIGlzIHNlbnQgYXMgcmVmZXJyZXIgaW4gcmVkaXJl
Y3RzIHRvIHByZXZhbGVudCByZXNvdXJjZXMgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLiIpOwor
ICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVz
QXNUZXh0KCk7CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikg
eworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1l
Iik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxl
cikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAg
ICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQor
CisgICAgdmFyIHJlZmVycmVyOworICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1
ZSk7CisgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhv
c3QiKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3YXMgY2xhc3NpZmllZCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0ZWQuIik7CisKKyAgICAg
ICAgZmV0Y2goInJlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIpLnRoZW4oZnVuY3Rpb24ocmVz
cG9uc2UpIHsKKyAgICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7CisgICAgICAgIH0p
LnRoZW4oZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgICAgcmVmZXJyZXIgPSBkYXRhOworICAg
ICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4t
Zm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRtbCIpOworCisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0
cDovL2xvY2FsaG9zdCIsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICgh
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9z
dCIpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNl
dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgb3BlbklmcmFtZSgicmVzb3VyY2VzL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRvPWh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hv
LXJlZmVycmVyLnBocCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSkuY2F0
Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yLm1lc3Nh
Z2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICAgICAgfSk7CisgICAgfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJp
cC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1k
YXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVz
b3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5Y2NiOWMy
MWZmMDA3MWE5ODAyMzliN2I3OTNmNTUxODdlYmVlNWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXIt
dG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1Rlc3RzIHRoYXQgb25seSB0aGUgb3JpZ2luIGlz
IHNlbnQgYXMgcmVmZXJyZXIgZm9yIHByZXZhbGVudCByZXNvdXJjZXMgd2l0aG91dCB1c2VyIGlu
dGVyYWN0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWZlcnJl
ciBpcyAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAt
cmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0
YWJhc2UuaHRtbCIKK1BBU1MgcmVmZXJyZXIgaXMgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC8iCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCistLS0t
LS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK2h0dHA6Ly8xMjcuMC4wLjE6
ODAwMC8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJj
ZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1
YnJlc291cmNlLXJlcXVlc3RzLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTVkNGYwMzY2Zjk3
Y2ZjZTk0MjhhNmE4NmU1MTU0ODM2MGUzMjE3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1v
cmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sCkBA
IC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2Ny
aXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgb25seSB0aGUgb3JpZ2luIGlz
IHNlbnQgYXMgcmVmZXJyZXIgZm9yIHByZXZhbGVudCByZXNvdXJjZXMgd2l0aG91dCB1c2VyIGlu
dGVyYWN0aW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHRlc3RSdW5uZXIu
ZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwg
b25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBp
ZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRI
YW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxl
bWVudCk7CisgICAgfQorCisgICAgdmFyIHJlZmVycmVyOworICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
Imh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3
YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0
ZWQuIik7CisKKyAgICAgICAgZmV0Y2goInJlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIpLnRo
ZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0
KCk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgICAgcmVmZXJy
ZXIgPSBkYXRhOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIs
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZl
cnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFz
ZS5odG1sIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJo
dHRwOi8vbG9jYWxob3N0IikpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
ZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgICAgICBmZXRjaCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcmVmZXJyZXIucGhwIikudGhlbihmdW5j
dGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNl
LnRleHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbihkYXRhKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICByZWZlcnJlciA9IGRhdGE7CisgICAgICAgICAgICAgICAg
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC8iKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgb3BlbklmcmFtZSgicmVzb3Vy
Y2VzL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAg
ICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc29sZS5sb2coZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KS5j
YXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IubWVz
c2FnZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgICAgICB9KTsKKyAgICB9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3
aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24t
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdp
dGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0MzkyMmZk
OTNmMWE1NDQ0ZjJjYjA2ODg0ZWZjMzI5MGJhZTUxZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24t
b24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCB0aGUgc2Vzc2lvbiBpcyBzd2l0
Y2hlZCB1cG9uIHRvcCBmcmFtZSBuYXZpZ2F0aW9uIHRvIGEgcHJldmFsZW50IHJlc291cmNlIHdp
dGggdXNlciBpbnRlcmFjdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgU2hvdWxkIGhhdmUgYW5kIGhhcyB0aGUgc2Vzc2lvbiBjb29raWUuCitQQVNTIFNob3VsZCBo
YXZlIGFuZCBoYXMgdGhlIHBlcnNpc3RlbnQgY29va2llLgorUEFTUyBPcmlnaW4gaGFzIGlzb2xh
dGVkIHNlc3Npb24uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgt
aW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVu
dC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI3MGMwMGIwNDgx
NjY2MGJjODFkMGQ2ZWU4OWNhYTcwZTFmNzRiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1u
YXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKQEAg
LTAsMCArMSwxMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+
CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
KzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdGhlIHNlc3Npb24gaXMgc3dp
dGNoZWQgdXBvbiB0b3AgZnJhbWUgbmF2aWdhdGlvbiB0byBhIHByZXZhbGVudCByZXNvdXJjZSB3
aXRoIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAg
ICBjb25zdCBwcmV2YWxlbnRPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBj
b25zdCBub25QcmV2YWxlbnRPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBj
b25zdCBzZXNzaW9uQ29va2llTmFtZSA9ICJzZXNzaW9uQ29va2llIjsKKyAgICBjb25zdCBwZXJz
aXN0ZW50Q29va2llTmFtZSA9ICJwZXJzaXN0ZW50Q29va2llIjsKKyAgICBjb25zdCB0d29NaW51
dGVzSW5TZWNvbmRzID0gMTIwOworCisgICAgZnVuY3Rpb24gc2V0U2Vzc2lvbkNvb2tpZSgpIHsK
KyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2Vzc2lvbkNvb2tpZU5hbWUgKyAiPTE7IHBhdGg9
LyI7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2V0UGVyc2lzdGVudENvb2tpZSgpIHsKKyAgICAg
ICAgZG9jdW1lbnQuY29va2llID0gcGVyc2lzdGVudENvb2tpZU5hbWUgKyAiPTE7IHBhdGg9Lzsg
TWF4LUFnZT0iICsgdHdvTWludXRlc0luU2Vjb25kcyArICI7IjsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBjaGVja0Nvb2tpZXMoc2hvdWxkSGF2ZVNlc3Npb25Db29raWUsIHNob3VsZEhhdmVQZXJz
aXN0ZW50Q29va2llKSB7CisgICAgICAgIGxldCBoYXNTZXNzaW9uQ29va2llID0gKGRvY3VtZW50
LmNvb2tpZSArICIiKS5pbmNsdWRlcyhzZXNzaW9uQ29va2llTmFtZSksCisgICAgICAgICAgICBo
YXNQZXJzaXN0ZW50Q29va2llID0gKGRvY3VtZW50LmNvb2tpZSArICIiKS5pbmNsdWRlcyhwZXJz
aXN0ZW50Q29va2llTmFtZSk7CisKKyAgICAgICAgaWYgKHNob3VsZEhhdmVTZXNzaW9uQ29va2ll
ICYmIGhhc1Nlc3Npb25Db29raWUpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91bGQgaGF2
ZSBhbmQgaGFzIHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKKyAgICAgICAgZWxzZSBpZiAoc2hvdWxk
SGF2ZVNlc3Npb25Db29raWUgJiYgIWhhc1Nlc3Npb25Db29raWUpIHsKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoIlNob3VsZCBoYXZlIGJ1dCBkb2Vzbid0IGhhdmUgdGhlIHNlc3Npb24gY29va2ll
LiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICAgICAgfSBlbHNlIGlmICghc2hvdWxkSGF2ZVNlc3Npb25Db29raWUgJiYgaGFzU2Vzc2lv
bkNvb2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkbid0IGhhdmUgYnV0IGhh
cyB0aGUgc2Vzc2lvbiBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIlNob3VsZG4ndCBoYXZlIGFuZCBkb2Vzbid0IGhhdmUgdGhlIHNlc3Npb24gY29va2llLiIp
OworCisKKyAgICAgICAgaWYgKHNob3VsZEhhdmVQZXJzaXN0ZW50Q29va2llICYmIGhhc1BlcnNp
c3RlbnRDb29raWUpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91bGQgaGF2ZSBhbmQgaGFz
IHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsKKyAgICAgICAgZWxzZSBpZiAoc2hvdWxkSGF2ZVBl
cnNpc3RlbnRDb29raWUgJiYgIWhhc1BlcnNpc3RlbnRDb29raWUpIHsKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoIlNob3VsZCBoYXZlIGJ1dCBkb2Vzbid0IGhhdmUgdGhlIHBlcnNpc3RlbnQgY29v
a2llLiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKKyAgICAgICAgfSBlbHNlIGlmICghc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29raWUgJiYgaGFz
UGVyc2lzdGVudENvb2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkbid0IGhh
dmUgYnV0IGhhcyB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIlNob3VsZG4ndCBoYXZlIGFuZCBkb2Vzbid0IGhhdmUgdGhlIHBlcnNp
c3RlbnQgY29va2llLiIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAg
ICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAi
I3N0ZXAxIjoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24ocHJldmFsZW50T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICAgICAgc2V0U2Vzc2lvbkNvb2tpZSgpOworICAgICAgICAgICAgICAgICAgICBz
ZXRQZXJzaXN0ZW50Q29va2llKCk7CisgICAgICAgICAgICAgICAgICAgIGNoZWNrQ29va2llcyh0
cnVlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaGFzU3RhdGlz
dGljc0lzb2xhdGVkU2Vzc2lvbihwcmV2YWxlbnRPcmlnaW4pKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJPcmlnaW4gaGFzIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RQYXNzZWQoIk9yaWdpbiBoYXMgbm8gaXNvbGF0ZWQgc2Vzc2lvbi4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IG5vblByZXZhbGVudE9yaWdpbiArICIv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXBy
ZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwjc3RlcDIiOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0
ZXAyIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsK
KyAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luICE9PSBub25QcmV2
YWxlbnRPcmlnaW4pCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlN0ZXAgMiBpcyBu
b3Qgb24gIiArIG5vblByZXZhbGVudE9yaWdpbiArICIuIik7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50T3JpZ2luLCB0
cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudE9yaWdpbikpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQocHJldmFsZW50T3JpZ2luICsgIiBkaWQgbm90IGdl
dCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29r
aWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaHJlZiA9IHByZXZhbGVudE9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWlu
dGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwjc3RlcDQiOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICBjaGVja0Nvb2tpZXMo
dHJ1ZSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaGFzU3RhdGlzdGlj
c0lzb2xhdGVkU2Vzc2lvbihwcmV2YWxlbnRPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJPcmlnaW4gaGFzIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPcmlnaW4gaGFzIG5vIGlz
b2xhdGVkIHNlc3Npb24uIik7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVW5rbm93biBoYXNoLiIpOworICAg
ICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIpIHsK
KyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiAhPT0gcHJldmFsZW50T3JpZ2lu
KQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGVzdCBpcyBub3Qgc3RhcnRpbmcgb3V0IG9uICIg
KyBwcmV2YWxlbnRPcmlnaW4gKyAiLiIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERh
dGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHByZXZhbGVudE9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChwcmV2YWxl
bnRPcmlnaW4gKyAiIHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZSBiZWZvcmUg
dGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9
ICJzdGVwMSI7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODQyNzMwYTQ1ZGFkZTZlYTZmMTVkZWNjMzlhN2U1YTlh
MGUzMTJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFt
ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMgdGhhdCB1c2Vy
IGludGVyYWN0aW9uIGlzIGFsd2F5cyBsb2dnZWQgZm9yIHRoZSB0b3AgZG9jdW1lbnQvZnJhbWUu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50LmxvY2F0aW9u
Lm9yaWdpbiBpcyB0b3BGcmFtZU9yaWdpbgorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlz
IGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHRvcEZyYW1lT3JpZ2luKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9u
LWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3Nz
LW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWY2MjNjMTgwZDYz
ZDNjNmI2MTBlZWIzNzFiZDg4NDU4NjFkZDhlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4t
Y3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHVzZXIgaW50
ZXJhY3Rpb24gaXMgYWx3YXlzIGxvZ2dlZCBmb3IgdGhlIHRvcCBkb2N1bWVudC9mcmFtZS4iKTsK
K2pzVGVzdElzQXN5bmMgPSB0cnVlOwordGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKworY29uc3QgdG9wRnJhbWVPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKK2Nv
bnN0IHN1YkZyYW1lT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisKK2Z1bmN0aW9u
IGFjdGl2YXRlRWxlbWVudChlbGVtZW50SWQpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9m
ZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICB2YXIgY2VudGVyWSA9IGVs
ZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgIFVJSGVscGVy
LmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSk7Cit9CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3Qo
KSB7CisgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsK
KworICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cit9CisKK29ubG9h
ZCA9IGZ1bmN0aW9uKCkgeworICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0Nh
bGxiYWNrKGZpbmlzaFRlc3QpOworICAgICAgICB9CisKKyAgICAgICAgc2hvdWxkQmUoImRvY3Vt
ZW50LmxvY2F0aW9uLm9yaWdpbiIsICJ0b3BGcmFtZU9yaWdpbiIpOworCisgICAgICAgIGlmICh0
ZXN0UnVubmVyKSB7CisgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworCisgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQo
InRlc3RGcmFtZSIpOworICAgICAgICB9CisgICAgfSk7Cit9OworPC9zY3JpcHQ+Cis8aWZyYW1l
IGlkPSJ0ZXN0RnJhbWUiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcmVzb3VyY2VzL2R1bW15Lmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJp
b2Qtb2YtdGltZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9u
Y2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41NDMyYmM4ZWQ3MzgxZmJjNDk4ZGIzNGMwZmIzYmU3YTU3YmQ5MWQxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qt
b2YtdGltZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGVzdHMgdGhh
dCB1c2VyIGludGVyYWN0aW9uIGlzIG5vdCByZXBvcnRlZCByZXBlYXRlZGx5IHdpdGhpbiBhIHNo
b3J0IHBlcmlvZCBvZiB0aW1lLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gaXMgdG9wRnJhbWVPcmlnaW4KK1BBU1MgdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIGlz
IGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikgaXMg
ZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24o
dG9wRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikgaXMg
ZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
VGhpcyBpcyB0aGUgdGVzdCBlbGVtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVk
LW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1v
bmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTVkZWI5NzI5YmQ1YjliOTYzN2MwOGI5OWM2MTMxNTM3YjYxYWEzMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQt
cGVyaW9kLW9mLXRpbWUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1o
ZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdXNlciBpbnRlcmFj
dGlvbiBpcyBub3QgcmVwb3J0ZWQgcmVwZWF0ZWRseSB3aXRoaW4gYSBzaG9ydCBwZXJpb2Qgb2Yg
dGltZS4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHRvcEZyYW1l
T3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3ViRnJhbWVPcmln
aW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxl
bWVudChlbGVtZW50SWQsIGNhbGxiYWNrKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVt
ZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNl
bnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAg
ICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAg
ICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gZmlyc3RJbnRlcmFjdGlvbigpIHsKKyAgICAgICAgc2hvdWxkQmVG
YWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJh
bWVPcmlnaW4pIik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworICAgICAgICBhY3Rp
dmF0ZUVsZW1lbnQoInRlc3RFbGVtZW50Iiwgc2Vjb25kSW50ZXJhY3Rpb24pOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHNlY29uZEludGVyYWN0aW9uKCkgeworICAgICAgICBzaG91bGRCZVRydWUo
InRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3Jp
Z2luKSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKworICAgICAgICBpZiAodGVz
dFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2Vy
SW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIik7CisKKyAgICAgICAgICAgICAgICBhY3RpdmF0
ZUVsZW1lbnQoInRlc3RFbGVtZW50IiwgZmluaXNoVGVzdCk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNo
b3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKworICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAg
IG9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFi
YXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiIsICJ0b3BGcmFt
ZU9yaWdpbiIpOworCisgICAgICAgICAgICBmaXJzdEludGVyYWN0aW9uKCk7CisgICAgICAgIH0p
OworICAgIH07Cis8L3NjcmlwdD4KKzxkaXYgaWQ9InRlc3RFbGVtZW50Ij5UaGlzIGlzIHRoZSB0
ZXN0IGVsZW1lbnQ8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJl
cG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVy
YWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iZjI4Yzk5YjMwMjQ0NDU2MGI1MWIzNDhiOTYwMjFiMDU4NTZl
YTNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRh
LXJlbW92YWwtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3RzIHRo
YXQgdXNlciBpbnRlcmFjdGlvbiBpcyByZXBvcnRlZCBhZnRlciBoaXN0b3J5IHJlbW92YWwgc2lu
Y2UgdGhhdCBtZWFucyBhbGwgc3RhdGlzdGljcyBoYXZlIGJlZW4gcmVzZXQuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiBpcyB0
b3BGcmFtZU9yaWdpbgorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNT
IHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3Jp
Z2luKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1Mg
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmln
aW4pIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1RoaXMgaXMgdGhlIHRlc3QgZWxlbWVudApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXIt
aW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwtZGF0YWJhc2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2Vy
LWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMmJlYjQyZjk0MmYxYjY4ZmZhY2ZlMGVmYjFmZTkyMzk2MmYyMjY4
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1y
ZW1vdmFsLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHVzZXIgaW50ZXJhY3Rpb24gaXMg
cmVwb3J0ZWQgYWZ0ZXIgaGlzdG9yeSByZW1vdmFsIHNpbmNlIHRoYXQgbWVhbnMgYWxsIHN0YXRp
c3RpY3MgaGF2ZSBiZWVuIHJlc2V0LiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisg
ICAgY29uc3QgdG9wRnJhbWVPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBj
b25zdCBzdWJGcmFtZU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworCisgICAgZnVu
Y3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJZCwgY2FsbGJhY2spIHsKKyAgICAgICAgdmFy
IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAgICAgICB2
YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAy
OworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZz
ZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRl
clkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBjYWxs
YmFjaygpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIlByb21pc2UgcmVqZWN0ZWQuIik7CisgICAgICAgICAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaXJzdEludGVyYWN0aW9uKCkgewor
ICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4p
Iik7CisgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGVzdEVsZW1lbnQiLCBjbGVhcldlYnNpdGVE
YXRhKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjbGVhcldlYnNpdGVEYXRhKCkgeworICAgICAg
ICBzaG91bGRCZVRydWUoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKwor
ICAgICAgICBpZiAodGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c0NsZWFyVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbChzZWNvbmRJbnRlcmFjdGlvbik7CisgICAg
fQorCisgICAgZnVuY3Rpb24gc2Vjb25kSW50ZXJhY3Rpb24oKSB7CisgICAgICAgIHNob3VsZEJl
RmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZy
YW1lT3JpZ2luKSIpOworICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RFbGVtZW50IiwgZmlu
aXNoVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAg
c2hvdWxkQmVUcnVlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7CisKKyAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAg
ICBvbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRh
YmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIHNob3VsZEJlKCJkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4iLCAidG9wRnJh
bWVPcmlnaW4iKTsKKworICAgICAgICAgICAgZmlyc3RJbnRlcmFjdGlvbigpOworICAgICAgICB9
KTsKKyAgICB9OworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJ0ZXN0RWxlbWVudCI+VGhpcyBpcyB0aGUg
dGVzdCBlbGVtZW50PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGFhYmNmOWE4NjJkMWVlMzNjMzY1ZmJkNmI0YTIy
NzQ0ZmFhOTBmY2EuLjdmZWU3NDk1ZDJjOGU4NzUwYjIzMzNkNDM0MTMzZWFlZDdmOGI0YTYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC05ODYsNiArOTg2
LDggQEAgaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2tleWJvYXJkLWV2ZW50cy1kdXJpbmctcHJvdmlz
aW9uYWwtbmF2aWdhdGlvbi5odG1sIFsgU2tpcAogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2tleWJv
YXJkLWV2ZW50cy1kdXJpbmctcHJvdmlzaW9uYWwtc3ViZnJhbWUtbmF2aWdhdGlvbi5odG1sIFsg
U2tpcCBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291
cmNlLWhhbmRsZWQta2V5ZG93bi5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLmh0bWwgWyBT
a2lwIF0KK2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3Vy
Y2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24t
ZGF0YWJhc2UuaHRtbCBbIFNraXAgXQogbWVkaWEvYXVkaW8tcGxheWJhY2stdm9sdW1lLWNoYW5n
ZXMtd2l0aC1yZXN0cmljdGlvbnMtYW5kLXVzZXItZ2VzdHVyZXMuaHRtbCBbIFNraXAgXQogbWVk
aWEvYXVkaW8tcGxheWJhY2stdm9sdW1lLWNoYW5nZXMtd2l0aC1yZXN0cmljdGlvbnMuaHRtbCBb
IFNraXAgXQogbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlLWludGVycnVwdGlvbi5odG1sIFsgU2tp
cCBdCkBAIC0yNzc5LDYgKzI3ODEsOSBAQCBmYXN0L2NhbnZhcy93ZWJnbC9yZWFkUGl4ZWxzLWZs
b2F0Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNzQxMjAgaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFt
ZS5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1p
bnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1l
Lmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWlu
dGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLmh0bWwgWyBTa2lw
IF0KK3dlYmtpdC5vcmcvYi8xNzQxMjAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS5odG1s
IFsgU2tpcCBdCitodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFj
dGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFi
YXNlLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2Vy
LWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNl
Lmh0bWwgWyBTa2lwIF0KICMgU2tpcHBlZCBpbiBXSzIgZXhwZWN0YXRpb25zIGJlY2F1c2UgY29v
a2llIHBhcnRpdGlvbmluZyBpcyBvbmx5IGF2YWlsYWJsZSBpbiBtYWNPUyBIaWdoIFNpZXJyYSBh
bmQgaU9TIDExLgogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxl
dGlvbi5odG1sIFsgUGFzcyBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29v
a2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbCBbIFBhc3MgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378906</attachid>
            <date>2019-09-16 15:53:14 -0700</date>
            <delta_ts>2019-09-18 17:54:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195420-20190916155313.patch</filename>
            <type>text/plain</type>
            <size>373892</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5ODM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTlmYTg2ZjUzZTBmODYz
NjY1MDNmNTgxMDc5YjhlNDU5NDA5MjdiYS4uYTFjYTE4Y2VjODRjNmVjMjNiYjQyMDE2ZTY0MmQ5
ODI3MTFhYzVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDE5LTA5LTE2ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBM
YXlvdXRUZXN0cyB1c2luZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFNRTGl0ZSBiYWNrZW5kICgx
OTU0MjApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTU0MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjEzNTUxPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwK
KyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2lu
Zy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZv
ci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNl
dC1pbi1qcy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgt
bGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1k
YXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVy
eS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbAorICAg
ICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQt
cmVzb3VyY2UtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRo
b3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUt
b3JpZ2lucy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNv
dXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAg
ICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZh
bGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lu
cy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGly
ZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJl
c291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAg
ICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50
LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10
by1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVj
dC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJh
bWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZl
cnktcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbAorICAg
ICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1l
bW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJz
aXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tp
ZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0
LWFjY2Vzc2libGUtY29va2llcy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0
aW9uLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNzLWZvci1zaW1wbGUt
dG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0
LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQt
d2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdh
dGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJs
ZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1y
ZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3Vy
Y2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNl
cy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0LWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24t
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2Uu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
bi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3Qt
ZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQt
bmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhv
c3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1l
LXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0
YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFs
ZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRh
dGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVu
dC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJj
ZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC1kYXRhYmFzZS5odG1sCisgICAgICAgICAg
ICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNl
LXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFz
ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2Uu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Nh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRh
YmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVk
aXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8t
bG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5l
c3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8t
aXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1k
ZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1z
dWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3It
cHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1u
YXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVy
YWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24t
b25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNl
ci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFz
ZS5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaDoKKyAgICAg
ICAgQWRkZWQgV0VCQ09SRV9FWFBPUlQgcHJlZml4IHRvIGEgZnVuY3Rpb24gbmVlZGVkIGluIHRo
ZSBEYXRhYmFzZQorICAgICAgICBiYWNrZW5kIHRvIGNsZWFyIG91dCB0aGUgZGF0YWJhc2UuCisK
IDIwMTktMDktMTMgIFJ1c3NlbGwgRXBzdGVpbiAgPHJlcHN0ZWluQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ5NzA5LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmZWRiN2Zl
ZDlkYzEzOWU2MWRjNTAyMTU4MjFiOWRjZWRhNjVjNGQyLi5hMGM2MDY1OTk0NjZkNDUyYjk0MmRk
ZTJjN2QxZWI0M2UyZTU5ZjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1OCBAQAorMjAxOS0wOS0x
NiAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKyAgICAgICAgRW5h
YmxlIExheW91dFRlc3RzIHVzaW5nIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgU1FMaXRlIGJhY2tl
bmQgKDE5NTQyMCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NTQyMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQyMTM1NTE+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlKToKKyAgICAgICAgUmVtb3ZlZCBwcmVwYXJlU3Rh
dGVtZW50cygpIGNhbGwgZnJvbSB0aGUgY29uc3RydWN0b3IuIFByZXBhcmluZworICAgICAgICBz
dGF0ZW1lbnRzIHRoZW4gcnVubmluZyBhIHZhY3V1bSBjb21tYW5kIG9uIHRoZSBkYXRhYmFzZSBy
ZXN1bHRzIGluIGFuCisgICAgICAgIGVycm9yICh0aGUgdmFjdXVtIGNvbW1hbmQgaXMgY2FsbGVk
IGluIHRoZSBwb3B1bGF0ZUZyb21NZW1vcnlTdG9yZSgpCisgICAgICAgIGZ1bmN0aW9uKQorCisg
ICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVw
YXJlU3RhdGVtZW50cyk6CisgICAgICAgIEFkZGVkIDIgc3RhdGVtZW50cyB0aGF0IHdlcmUgbm90
IGJlaW5nIHByZXBhcmVkLiBSZW1vdmVkIG9uZSBzdGF0ZW1lbnQKKyAgICAgICAgd2hpY2ggaXMg
Y2FsbGVkIGluIHRoZSBpc0VtcHR5KCkgY2hlY2sgKGJlZm9yZSBvdGhlcnMgYXJlIHByZXBhcmVk
KSBzbworICAgICAgICBpdCBjYW4gYmUgcHJlcGFyZWQgc2VwYXJhdGVseS4KKworICAgICAgICAo
V2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVsYXRpb25zaGlw
RXhpc3RzIGNvbnN0KToKKyAgICAgICAgQ29ycmVjdGVkIGluY29ycmVjdCBjYXBpdGFsaXphdGlv
bi4gQWRkZWQgY2hlY2sgZm9yIG51bGxvcHQgaW4gY2FzZQorICAgICAgICBkb21haW5JRCBpcyBm
b3IgYSBkb21haW4gbm90IGluIHRoZSBkYXRhYmFzZSB5ZXQuCisgICAgICAgIAorICAgICAgICAo
V2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZG9tYWluSUQgY29u
c3QpOgorICAgICAgICBDaGFuZ2VkIHJldHVybiB2YWx1ZSB0byBPcHRpb25hbDx1bnNpZ25lZD4u
IFNvbWUgdGVzdHMgd2VyZSBkaXJlY3RseQorICAgICAgICBjaGVja2luZyBmb3Igc3ViZnJhbWVz
IHVuZGVyIHRvcCBmcmFtZSBkb21haW5zIG9uIGRvbWFpbnMgdGhhdCBoYWQKKyAgICAgICAgbm90
IGJlZW4gaW5zZXJ0ZWQgeWV0LiBOb3csIGRvbWFpbklEKCkgd29uJ3QgY3Jhc2ggYnV0IHdpbGwg
cmV0dXJuCisgICAgICAgIGEgbnVsbG9wdCB2YWx1ZSB3aGljaCBjYW4gYmUgY2hlY2tlZCB0byBr
bm93IHRoYXQgdGhlIHRlc3RzIGZhaWxlZC4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwcyk6Cisg
ICAgICAgIEFkZGVkIGEgY2hlY2sgdG8gYXNzdXJlIGRvbWFpbklEIGV4aXN0cyBhbmQgdXBkYXRl
ZCB0aGUgZG9tYWluSUQKKyAgICAgICAgaW50ZXJhY3Rpb25zIHRvIHdvcmsgYXMgT3B0aW9uYWxz
LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
Ojpwb3B1bGF0ZUZyb21NZW1vcnlTdG9yZSk6CisgICAgICAgIE1vdmVkIHRoZSBwcmVwYXJlU3Rh
dGVtZW50cygpIGNhbGwgYWZ0ZXIgdGhlIHZhY3V1bSBjb21tYW5kIGluIHRoZSBjYXNlCisgICAg
ICAgIHdoZXJlIHRoZSBkYXRhYmFzZSBpcyBlbXB0eS4gT3RoZXJ3aXNlIGNhbGxlZCBpdCBiZWZv
cmUgcmV0dXJuaW5nLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpyZWN1cnNpdmVseUZpbmROb25QcmV2YWxlbnREb21haW5zVGhhdFJlZGly
ZWN0ZWRUb1RoaXNEb21haW4pOgorICAgICAgICBBZGRlZCBhIHNwYWNlIHRvIHRoZSBTUUwgY29t
bWFuZHMgdG8gY29ycmVjdCB0aGUgc3ludGF4LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpmaW5kTm90VmVyeVByZXZhbGVudFJlc291cmNl
cyk6CisgICAgICAgIENvcnJlY3RlZCBhIGJ1ZyBpbiB0aGUgU1FMIGNvbW1hbmQgZm9yIHF1ZXJ5
aW5nCisgICAgICAgIHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbi4gVGhlIG9sZCBxdWVyeSB3
YXMgYXNraW5nIGZvciBzdWJyZXNvdXJjZS4KKyAgICAgICAgCisgICAgICAgIChXZWJLaXQ6OlJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWNsYXNzaWZ5UmVzb3VyY2VzKToK
KyAgICAgICAgU3BlbGxpbmcgZml4LgorICAgICAgICAKKyAgICAgICAgKFdlYktpdDo6UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW5kZmF0aGVyRGF0YUZvckRvbWFpbnMp
OgorICAgICAgICBUaGUgZ3JhbmRmYXRoZXJpbmcuaHRtbCB0ZXN0IHdhcyBmYWlsaW5nIGJlY2F1
c2UgZG9tYWlucyB3ZXJlIGJlaW5nCisgICAgICAgICJzZXQiIHRvIGdyYW5kZmF0aGVyZWQgaW4g
dGhlIGRhdGFiYXNlIGJlZm9yZSBiZWluZyBpbnNlcnRlZC4gVGhpcyBmaXgKKyAgICAgICAgZW5z
dXJlcyBhbGwgZG9tYWlucyBiZWZvcmUgc2V0dGluZyB0aGUgZ3JhbmRmYXRoZXJpbmcgZmxhZy4K
KworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
bG9nRnJhbWVOYXZpZ2F0aW9uKToKKyAgICAgICAgTXVsdGlwbGUgdGVzdHMgd2VyZSBmYWlsaW5n
IGJlY2F1c2UgdGhlIHF1ZXJ5IHRvIGluc2VydCB0aGUgcmVsYXRpb25zaGlwCisgICAgICAgIGZv
ciB0aGUgc291cmNlIGRvbWFpbiByZWxpZXMgb24gdGhlIHRhcmdldCBkb21haW4gYmVpbmcgaW4g
dGhlCisgICAgICAgIE9ic2VydmVkRG9tYWlucyB0YWJsZS4gVGhpcyBwYXRjaCBlbnN1cmVzIGFs
bCBkb21haW5zIGFyZSBhZGRlZCBiZWZvcmUKKyAgICAgICAgcGVyZm9ybWluZyB0aGUgcXVlcnku
CisgICAgICAgIAorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6aGFzSGFkVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgVGhlIFNRTCBzdGF0ZW1l
bnQgd2FzIGJlaW5nIGJvdW5kIHRvIGEgdmFsdWUgYW5kIG5vdCBiZWluZyByZXNldC4gVGhpcwor
ICAgICAgICBwYXRjaCByZXNldHMgdGhlIHN0YXRlbWVudCBhZnRlciBiaW5kaW5nLiBBZGRpdGlv
bmFsbHksIHRoZSBzdGVwKCkKKyAgICAgICAgZnVuY3Rpb24gd2FzIGJlaW5nIGNvbXBhcmVkIHRv
IFNRTElURV9ET05FIGluc3RlYWQgb2YgU1FMSVRFX1JPVywKKyAgICAgICAgY2F1c2luZyBhbiBl
cnJvciBpZiB0aGUgcXVlcnkgcmV0dXJuZWQgcmVzdWx0cy4gVGhlCisgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpIHdhcyBjYXVzaW5nIG51bGwgc2VhcmNoZXMgdG8gY3Jhc2ggaW5zdGVhZCBv
ZgorICAgICAgICByZXR1cm5pbmcgZmFsc2UgKGkuZS4gaWYgYSBkb21haW4gaXMgbm90IGluIHRo
ZSBkYXRhYmFzZSBpdCBzaG91bGQKKyAgICAgICAgcmV0dXJuIHRoYXQgaXQgaGFzIG5vIHVzZXIg
aW50ZXJhY3Rpb24gaW5zdGVhZCBvZiBjcmFzaGluZykuCisgICAgICAgIAorICAgICAgICAoV2Vi
S2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0UHJldmFsZW50UmVz
b3VyY2UpOgorICAgICAgICBVcGRhdGVkIGRvbWFpbklEIGNhbGwgdG8gYWN0IGFzIGFuIE9wdGlv
bmFsLgorICAgICAgICAKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OnByZWRpY2F0ZVZhbHVlRm9yRG9tYWluIGNvbnN0KToKKyAgICAgICAgVGhl
IFNRTCBzdGF0ZW1lbnQgd2FzIGJlaW5nIGJvdW5kIHRvIGEgdmFsdWUgYW5kIG5vdCBiZWluZyBy
ZXNldC4gVGhpcworICAgICAgICBwYXRjaCByZXNldHMgdGhlIHN0YXRlbWVudCBhZnRlciBiaW5k
aW5nLiBTUUxJVEVfRE9ORSBjaGFuZ2VkIHRvCisgICAgICAgIFNRTElURV9ST1cgdG8gcmV0dXJu
IG5vbi1lbXB0eSBxdWVyeSByZXN1bHRzLiBBU1NFUlRfTk9UX1JFQUNIRUQoKQorICAgICAgICBy
ZW1vdmVkIGZvciB0aGUgc2FtZSByZWFzb25zIGFzIGFib3ZlLgorCisgICAgICAgIChXZWJLaXQ6
OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjplbnN1cmVSZXNvdXJjZVN0YXRp
c3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbik6CisgICAgICAgIEZpeGVkIHRoZSByZWxlYXNlIGxv
ZyBzdGF0ZW1lbnQgd2hpY2ggd2FzIGxvZ2dpbmcgdGhlIHdyb25nIGZ1bmN0aW9uCisgICAgICAg
IG5hbWUuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OmNsZWFyRGF0YWJhc2VDb250ZW50cyk6CisgICAgICAgIENsZWFycyB0aGUgZGF0YWJh
c2UgYW5kIHJlYnVpbGRzIHRoZSB0YWJsZXMgb24gYSBjbGVhciBjb21tYW5kIHRvCisgICAgICAg
IG1hdGNoIHRoZSBmdW5jdGlvbmFsaXR5IGluIHRoZSBNZW1vcnkgU3RvcmUuCisKKyAgICAgICAg
KFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyKToKKyAg
ICAgICAgQ2FsbCB0aGUgY2xlYXJEYXRhYmFzZUNvbnRlbnRzIGZ1bmN0aW9uIHRvIG1hdGNoIHRo
ZSBmdW5jdGlvbmFsaXR5CisgICAgICAgIGluIHRoZSBNZW1vcnkgU3RvcmUuCisgICAgICAgIAor
ICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFz
VXNlckdyYW50ZWRTdG9yYWdlQWNjZXNzVGhyb3VnaFByb21wdCBjb25zdCk6CisgICAgICAgIFVw
ZGF0ZWQgZG9tYWluSUQgY2FsbCB0byBhY3QgYXMgYW4gT3B0aW9uYWwuCisgICAgICAgIAorICAg
ICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFk
VW5leHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9uKToKKyAgICAgICAgVGVzdHMgd2VyZSBmYWls
aW5nIGJlY2F1c2Ugc2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3IoKSB3YXMgbm90CisgICAg
ICAgIGNoZWNraW5nIGZvciBleHBpcmVkIHVzZXIgaW50ZXJhY3Rpb24uIE1hdGNoZWQgZnVuY3Rp
b25hbGl0eSBpbiB0aGUKKyAgICAgICAgTWVtb3J5IFN0b3JlLgorCisgICAgICAgIChXZWJLaXQ6
OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRSZW1vdmVBbGxXZWJz
aXRlRGF0YUZvcik6CisgICAgICAgIFRlc3RzIHdlcmUgZmFpbGluZyBiZWNhdXNlIHNob3VsZFJl
bW92ZUFsbFdlYnNpdGVEYXRhRm9yKCkgd2FzIG5vdAorICAgICAgICBjaGVja2luZyBmb3IgZXhw
aXJlZCB1c2VyIGludGVyYWN0aW9uLiBNYXRjaGVkIGZ1bmN0aW9uYWxpdHkgaW4gdGhlCisgICAg
ICAgIE1lbW9yeSBTdG9yZS4KKyAgICAgICAgCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWdpc3RyYWJsZURvbWFpbnNUb1JlbW92ZVdlYnNp
dGVEYXRhRm9yKToKKyAgICAgICAgU3BlbGxpbmcgZml4LgorCisgICAgICAgIChXZWJLaXQ6OlJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcnVuZVN0YXRpc3RpY3NJZk5lZWRl
ZCk6CisgICAgICAgIExhc3Qgc2VlbiBzaG91bGQgYmUgc29ydGVkIGluIGFzY2VuZGluZyBvcmRl
ciBiZWNhdXNlIHlvdSB3YW50IHRvCisgICAgICAgIHBydW5lIHRoZSBvbGRlciBzdGF0aXN0aWNz
IGZpcnN0LCB3aGljaCB3aWxsIGhhdmUgYSBsb3dlciBsYXN0U2VlbgorICAgICAgICBmaWVsZCAo
c2Vjb25kc1NpbmNlRXBvY2goKSB3aWxsIGJlIGxvd2VyIGZvciBvbGRlciB2YWx1ZXMpLgorCisg
ICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91
bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIERlbGV0
ZWQgY29uc3Qgc3BlY2lmaWVyIGJlY2F1c2UgdGhlIGZ1bmN0aW9uIG5lZWRzIHRvIGNsZWFyIHRo
ZQorICAgICAgICBkYXRhYmFzZS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaDoKKyAgICAgICAgRGVjbGFy
ZWQgbmV3IGZ1bmN0aW9ucy4gVXBkYXRlZCBzcGVsbGluZyBlcnJvciAocmVnaXN0ZXJhYmxlIC0t
PgorICAgICAgICByZWdpc3RyYWJsZSkuCisgICAgICAgIAorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUpOgorICAgICAgICBJVFAgZGF0YWJhc2UgZmxhZyBub3cgaXMgc3Rv
cmVkIGluIHRoZSBOZXR3b3JrUHJvY2Vzcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRp
YWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgIFNldCB0aGUgSVRQIGRhdGFiYXNlIGZsYWcg
d2hpY2ggaXMgbm93IHN0b3JlZCBpbiB0aGUgTmV0d29yayBQcm9jZXNzLgorCisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphZGRXZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5IHdhcyBub3QgZ2V0dGluZyBjYWxsZWQg
b24gdGhlCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgcmVzb3VyY2VMb2FkU3RhdGlzdGljcyBw
YXRoLiBUaGlzIHdhcyBwcmV2ZW50aW5nCisgICAgICAgIHRoZSBkYXRhYmFzZSBmaWxlIGZyb20g
b3BlbmluZy4KKyAgICAgICAgCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRV
c2VJVFBEYXRhYmFzZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppc0lUUERh
dGFiYXNlRW5hYmxlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoK
KyAgICAgICAgUGFzc2VkIHRoZSBzZXRVc2VJVFBEYXRhYmFzZSBmbGFnIHRvIHRoZSBpbml0aWFs
aXphdGlvbiBmdW5jdGlvbgorICAgICAgICBvZiB0aGUgc3RhdGlzdGljcyBzdG9yZSB0byBlbmFi
bGUgdGhlIGRhdGFiYXNlIGJhY2tlbmQuCisgICAgICAgIAorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246
OmNyZWF0ZU5ld1Jlc291cmNlTG9hZFN0YXRpc3RpY1N0b3JlKToKKyAgICAgICAgRGVzdHJveSBv
bGQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIGFuZCBjcmVhdGUgYSBuZXcgb25lIHVz
aW5nCisgICAgICAgIHRoZSBJVFAgZGF0YWJhc2UuCisgICAgICAgIAorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
V2Vic2l0ZURhdGFTdG9yZVJlZi5jcHA6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRV
c2VJVFBEYXRhYmFzZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFT
dG9yZVJlZi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRVc2VJVFBE
YXRhYmFzZSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0VXNlSVRQRGF0YWJhc2Up
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6Cisg
ICAgICAgIFBhc3NlZCB0aGUgc2V0VXNlSVRQRGF0YWJhc2UgZmxhZyB0byB0aGUgaW5pdGlhbGl6
YXRpb24gZnVuY3Rpb24KKyAgICAgICAgb2YgdGhlIHN0YXRpc3RpY3Mgc3RvcmUgdG8gZW5hYmxl
IHRoZSBkYXRhYmFzZSBiYWNrZW5kLgorCiAyMDE5LTA5LTEzICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5
OjpzZW5kV2l0aEFzeW5jUmVwbHkgc2hvdWxkIHF1ZXVlIHVwIG1lc3NhZ2VzIGlmIHNlbnQgd2hp
bGUgdGhlIHByb2Nlc3MgaXMgc3RhcnRpbmcgbGlrZSBpdCBkb2VzIG1lc3NhZ2VzIHdpdGhvdXQg
cmVwbGllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURh
dGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaApp
bmRleCAxNDk4NjZmYmMxMTk3YmEwOWRhMjE1NzVmMWNlYWZhZDY0MTlmZTZiLi4wMTRkZTBlOWI0
ODAzNDRmMTc3YzMwZDNkMDgxYmI1OWZkN2RmM2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAg
Ym9vbCByZXR1cm5zQXRMZWFzdE9uZVJlc3VsdChjb25zdCBTdHJpbmcmKTsKICAgICAKICAgICBX
RUJDT1JFX0VYUE9SVCBib29sIHRhYmxlRXhpc3RzKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQg
Y2xlYXJBbGxUYWJsZXMoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyQWxsVGFibGVz
KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgaW50IHJ1blZhY3V1bUNvbW1hbmQoKTsKICAgICBpbnQg
cnVuSW5jcmVtZW50YWxWYWN1dW1Db21tYW5kKCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAppbmRleCBkNGVjODRjN2M3
ZDJlMTViNGU3OGMwMjliYTE2ZjIyNjY3ZGMyMzY2Li5jMDBjMTcyNzZiN2VlODA0ZmI3ZDQ3OTM5
MjFlMjIyOTIwMjZkZGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKQEAgLTIxMywxMiArMjEzLDYgQEAgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlKFdlYlJlc28KICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICghcHJlcGFyZVN0YXRlbWVu
dHMoKSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMgZmFpbGVkLCBl
cnJvciBtZXNzYWdlOiAle3B1YmxpY31zLCBkYXRhYmFzZSBwYXRoOiAle3B1YmxpY31zIiwgdGhp
cywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSwgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aC51dGY4
KCkuZGF0YSgpKTsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KICAgICB3b3JrUXVldWUuZGlzcGF0Y2hBZnRlcig1X3MsIFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKCp0aGlzKV0gewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAg
ICB3ZWFrVGhpcy0+Y2FsY3VsYXRlQW5kU3VibWl0VGVsZW1ldHJ5KCk7CkBAIC0zMDAsOCArMjk0
LDcgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0
YXRlbWVudHMoKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICAK
LSAgICBpZiAobV9vYnNlcnZlZERvbWFpbkNvdW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKLSAg
ICAgICAgfHwgbV9pbnNlcnRPYnNlcnZlZERvbWFpblN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FM
SVRFX09LCisgICAgaWYgKG1faW5zZXJ0T2JzZXJ2ZWREb21haW5TdGF0ZW1lbnQucHJlcGFyZSgp
ICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX2luc2VydFRvcExldmVsRG9tYWluU3RhdGVtZW50
LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9kb21haW5JREZyb21TdHJpbmdT
dGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX3N0b3JhZ2VBY2Nl
c3NVbmRlclRvcEZyYW1lRG9tYWluc1N0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCkBA
IC0zMjgsNyArMzIxLDggQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6cHJlcGFyZVN0YXRlbWVudHMoKQogICAgICAgICB8fCBtX3VwZGF0ZUdyYW5kZmF0aGVyZWRT
dGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX2lzR3JhbmRmYXRo
ZXJlZFN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fZmluZEV4
cGlyZWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwotICAg
ICAgICApIHsKKyAgICAgICAgfHwgbV90b3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb20ucHJlcGFy
ZSgpICE9IFNRTElURV9PSworICAgICAgICB8fCBtX3RvcEZyYW1lTGlua0RlY29yYXRpb25zRnJv
bUV4aXN0cy5wcmVwYXJlKCkgIT0gU1FMSVRFX09LKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpw
cmVwYXJlU3RhdGVtZW50cyBmYWlsZWQgdG8gcHJlcGFyZSwgZXJyb3IgbWVzc2FnZTogJXtwdWJs
aWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzcyLDExICszNjYsMTQg
QEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0T2JzZXJ2
ZWREb21haW4oY29uc3QgUmVzb3VyY2VMb2EKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVsYXRpb25zaGlwRXhpc3RzKFdl
YkNvcmU6OlNRTGl0ZVN0YXRlbWVudCYgc3RhdGVtZW50LCB1bnNpZ25lZCBmaXJzdERvbWFpbklE
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc2Vjb25kRG9tYWluKSBjb25zdAorYm9vbCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVsYXRpb25zaGlwRXhpc3RzKFdlYkNv
cmU6OlNRTGl0ZVN0YXRlbWVudCYgc3RhdGVtZW50LCBPcHRpb25hbDx1bnNpZ25lZD4gZmlyc3RE
b21haW5JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHNlY29uZERvbWFpbikgY29uc3QKIHsK
KyAgICBpZiAoIWZpcnN0RG9tYWluSUQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKICAg
ICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIGlmIChzdGF0ZW1lbnQuYmluZElu
dCgxLCBmaXJzdERvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICBpZiAoc3RhdGVtZW50LmJpbmRJ
bnQoMSwgZmlyc3REb21haW5JRC52YWx1ZSgpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc3Rh
dGVtZW50LmJpbmRUZXh0KDIsIHNlY29uZERvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LCiAg
ICAgICAgIHx8IHN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX1JPVykgewogICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6bV9pbnNlcnREb21haW5SZWxhdGlvbnNoaXBTdGF0ZW1lbnQgZmFpbGVkIHRvIGJp
bmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJv
ck1zZygpKTsKQEAgLTM4NCwxMiArMzgxLDEyIEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OnJlbGF0aW9uc2hpcEV4aXN0cyhXZWJDb3JlOjpTUUxpdGVTdGF0CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgCi0gICAgYm9vbCByZWxhdGlvblNoaXBF
eGlzdHMgPSAhIXN0YXRlbWVudC5nZXRDb2x1bW5JbnQoMCk7CisgICAgYm9vbCByZWxhdGlvbnNo
aXBFeGlzdHMgPSAhIXN0YXRlbWVudC5nZXRDb2x1bW5JbnQoMCk7CiAKICAgICBpbnQgcmVzZXRS
ZXN1bHQgPSBzdGF0ZW1lbnQucmVzZXQoKTsKICAgICBBU1NFUlRfVU5VU0VEKHJlc2V0UmVzdWx0
LCByZXNldFJlc3VsdCA9PSBTUUxJVEVfT0spOwogICAgIAotICAgIHJldHVybiByZWxhdGlvblNo
aXBFeGlzdHM7CisgICAgcmV0dXJuIHJlbGF0aW9uc2hpcEV4aXN0czsKIH0KIAogYm9vbCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlw
KFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCYgc3RhdGVtZW50LCB1bnNpZ25lZCBkb21haW5JRCwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lKQpAQCAtNDM0LDcgKzQzMSw3IEBAIGJv
b2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNvbmZpcm1Eb21haW5Eb2Vz
Tm90RXhpc3QoY29uc3QgUmVnaXN0CiB9CiAjZW5kaWYKIAotdW5zaWduZWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmRvbWFpbklEKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBkb21haW4pIGNvbnN0CitPcHRpb25hbDx1bnNpZ25lZD4gUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OmRvbWFpbklEKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4p
IGNvbnN0CiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTQ0Myw4ICs0
NDAsNyBAQCB1bnNpZ25lZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZG9t
YWluSUQoY29uc3QgUmVnaXN0cmFibGVEb21haW4mCiAgICAgaWYgKG1fZG9tYWluSURGcm9tU3Ry
aW5nU3RhdGVtZW50LmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LCiAg
ICAgICAgIHx8IG1fZG9tYWluSURGcm9tU3RyaW5nU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVf
Uk9XKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkb21haW5JREZyb21TdHJpbmcgZmFpbGVkLCBl
cnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2co
KSk7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gZG9tYWlu
SUQ7CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgZG9tYWluSUQg
PSBtX2RvbWFpbklERnJvbVN0cmluZ1N0YXRlbWVudC5nZXRDb2x1bW5JbnQoMCk7CkBAIC00NTgs
MzYgKzQ1NCw0OCBAQCB1bnNpZ25lZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6ZG9tYWluSUQoY29uc3QgUmVnaXN0cmFibGVEb21haW4mCiB2b2lkIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNlcnREb21haW5SZWxhdGlvbnNoaXBzKGNvbnN0IFJl
c291cmNlTG9hZFN0YXRpc3RpY3MmIGxvYWRTdGF0aXN0aWNzKQogewogICAgIEFTU0VSVCghUnVu
TG9vcDo6aXNNYWluKCkpOwotCisgICAgCiAgICAgYXV0byByZWdpc3RyYWJsZURvbWFpbklEID0g
ZG9tYWluSUQobG9hZFN0YXRpc3RpY3MucmVnaXN0cmFibGVEb21haW4pOworICAgIAorICAgIGlm
ICghcmVnaXN0cmFibGVEb21haW5JRCkKKyAgICAgICAgcmV0dXJuOworICAgIAogICAgIGZvciAo
YXV0byYgdG9wRnJhbWVEb21haW4gOiBsb2FkU3RhdGlzdGljcy5zdG9yYWdlQWNjZXNzVW5kZXJU
b3BGcmFtZURvbWFpbnMpCi0gICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N0b3Jh
Z2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWluc1N0YXRlbWVudCwgcmVnaXN0cmFibGVEb21haW5J
RCwgdG9wRnJhbWVEb21haW4pOworICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9z
dG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnNTdGF0ZW1lbnQsIHJlZ2lzdHJhYmxlRG9t
YWluSUQudmFsdWUoKSwgdG9wRnJhbWVEb21haW4pOwogCiAgICAgZm9yIChhdXRvJiB0b0RvbWFp
biA6IGxvYWRTdGF0aXN0aWNzLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8pCi0gICAgICAgIGlu
c2VydERvbWFpblJlbGF0aW9uc2hpcChtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8sIHJlZ2lz
dHJhYmxlRG9tYWluSUQsIHRvRG9tYWluKTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25z
aGlwKG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUbywgcmVnaXN0cmFibGVEb21haW5JRC52YWx1
ZSgpLCB0b0RvbWFpbik7CiAgICAgCiAgICAgZm9yIChhdXRvJiBmcm9tRG9tYWluIDogbG9hZFN0
YXRpc3RpY3MudG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tKQotICAgICAgICBpbnNlcnREb21h
aW5SZWxhdGlvbnNoaXAobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHJlZ2lzdHJhYmxl
RG9tYWluSUQsIGZyb21Eb21haW4pOworICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAo
bV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUo
KSwgZnJvbURvbWFpbik7CiAgICAgCiAgICAgZm9yIChhdXRvJiB0b3BGcmFtZURvbWFpbiA6IGxv
YWRTdGF0aXN0aWNzLnN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMpCi0gICAgICAgIGluc2Vy
dERvbWFpblJlbGF0aW9uc2hpcChtX3N1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMsIHJlZ2lz
dHJhYmxlRG9tYWluSUQsIHRvcEZyYW1lRG9tYWluKTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVs
YXRpb25zaGlwKG1fc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlucywgcmVnaXN0cmFibGVEb21h
aW5JRC52YWx1ZSgpLCB0b3BGcmFtZURvbWFpbik7CiAgICAgCiAgICAgZm9yIChhdXRvJiB0b3BG
cmFtZURvbWFpbiA6IGxvYWRTdGF0aXN0aWNzLnN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFp
bnMpCi0gICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5kZXJU
b3BGcmFtZURvbWFpbnMsIHJlZ2lzdHJhYmxlRG9tYWluSUQsIHRvcEZyYW1lRG9tYWluKTsKKyAg
ICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fc3VicmVzb3VyY2VVbmRlclRvcEZyYW1l
RG9tYWlucywgcmVnaXN0cmFibGVEb21haW5JRC52YWx1ZSgpLCB0b3BGcmFtZURvbWFpbik7CiAg
ICAgCiAgICAgZm9yIChhdXRvJiB0b0RvbWFpbiA6IGxvYWRTdGF0aXN0aWNzLnN1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RzVG8pCi0gICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1
YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8sIHJlZ2lzdHJhYmxlRG9tYWluSUQsIHRvRG9tYWlu
KTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fc3VicmVzb3VyY2VVbmlxdWVS
ZWRpcmVjdHNUbywgcmVnaXN0cmFibGVEb21haW5JRC52YWx1ZSgpLCB0b0RvbWFpbik7CiAgICAg
CiAgICAgZm9yIChhdXRvJiBmcm9tRG9tYWluIDogbG9hZFN0YXRpc3RpY3Muc3VicmVzb3VyY2VV
bmlxdWVSZWRpcmVjdHNGcm9tKQotICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9z
dWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHJlZ2lzdHJhYmxlRG9tYWluSUQsIGZyb21E
b21haW4pOworICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVu
aXF1ZVJlZGlyZWN0c0Zyb20sIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgZnJvbURvbWFp
bik7CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBvcHVs
YXRlRnJvbU1lbW9yeVN0b3JlKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9y
ZSYgbWVtb3J5U3RvcmUpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAg
ICBpZiAoIWlzRW1wdHkoKSkKKyAgICBtX29ic2VydmVkRG9tYWluQ291bnQucHJlcGFyZSgpOwor
CisgICAgaWYgKCFpc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKCFwcmVwYXJlU3RhdGVtZW50cygp
KSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMgZmFpbGVkLCBl
cnJvciBtZXNzYWdlOiAle3B1YmxpY31zLCBkYXRhYmFzZSBwYXRoOiAle3B1YmxpY31zIiwgdGhp
cywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSwgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aC51dGY4
KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBhdXRv
JiBzdGF0aXN0aWNzTWFwID0gbWVtb3J5U3RvcmUuZGF0YSgpOwogICAgIGZvciAoY29uc3QgYXV0
byYgc3RhdGlzdGljIDogc3RhdGlzdGljc01hcCkKQEAgLTQ5OSw2ICs1MDcsMTIgQEAgdm9pZCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cG9wdWxhdGVGcm9tTWVtb3J5U3Rv
cmUoY29uc3QgUmVzb3VyY2UKICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwcyhzdGF0
aXN0aWMudmFsdWUpOwogCiAgICAgbV9kYXRhYmFzZS5ydW5WYWN1dW1Db21tYW5kKCk7CisKKyAg
ICBpZiAoIXByZXBhcmVTdGF0ZW1lbnRzKCkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
TmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZXBh
cmVTdGF0ZW1lbnRzIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cywgZGF0YWJhc2Ug
cGF0aDogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCksIG1fc3Rv
cmFnZURpcmVjdG9yeVBhdGgudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQogfQogCiB2b2lkIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjYWxjdWxhdGVBbmRTdWJtaXRUZWxlbWV0cnkoKSBjb25z
dApAQCAtNTQ2LDcgKzU2MCw3IEBAIHVuc2lnbmVkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpyZWN1cnNpdmVseUZpbmROb25QcmV2YWxlbnREb21haW5zCiAgICAgKytudW1i
ZXJPZlJlY3Vyc2l2ZUNhbGxzOwogCiAgICAgU3RkU2V0PHVuc2lnbmVkPiBuZXdseUlkZW50aWZp
ZWREb21haW5zOwotICAgIFNRTGl0ZVN0YXRlbWVudCBmaW5kU3VicmVzb3VyY2VzKG1fZGF0YWJh
c2UsIG1ha2VTdHJpbmcoIlNFTEVDVCBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20uZnJv
bURvbWFpbklEIGZyb20gU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tIElOTkVSIEpPSU4g
T2JzZXJ2ZWREb21haW5zIE9OIE9ic2VydmVkRG9tYWlucy5kb21haW5JRCA9IFN1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQgV0hFUkUgc3VicmVzb3VyY2VEb21haW5J
RCA9ICIsIFN0cmluZzo6bnVtYmVyKHByaW1hcnlEb21haW5JRCksICJBTkQgT2JzZXJ2ZWREb21h
aW5zLmlzUHJldmFsZW50ID0gMCIpKTsKKyAgICBTUUxpdGVTdGF0ZW1lbnQgZmluZFN1YnJlc291
cmNlcyhtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgU3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdHNGcm9tLmZyb21Eb21haW5JRCBmcm9tIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJv
bSBJTk5FUiBKT0lOIE9ic2VydmVkRG9tYWlucyBPTiBPYnNlcnZlZERvbWFpbnMuZG9tYWluSUQg
PSBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20uZnJvbURvbWFpbklEIFdIRVJFIHN1YnJl
c291cmNlRG9tYWluSUQgPSAiLCBTdHJpbmc6Om51bWJlcihwcmltYXJ5RG9tYWluSUQpLCAiIEFO
RCBPYnNlcnZlZERvbWFpbnMuaXNQcmV2YWxlbnQgPSAwIikpOwogICAgIGlmIChmaW5kU3VicmVz
b3VyY2VzLnByZXBhcmUoKSA9PSBTUUxJVEVfT0spIHsKICAgICAgICAgd2hpbGUgKGZpbmRTdWJy
ZXNvdXJjZXMuc3RlcCgpID09IFNRTElURV9ST1cpIHsKICAgICAgICAgICAgIGF1dG8gbmV3RG9t
YWluSUQgPSBmaW5kU3VicmVzb3VyY2VzLmdldENvbHVtbkludCgwKTsKQEAgLTU1Niw3ICs1NzAs
NyBAQCB1bnNpZ25lZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVjdXJz
aXZlbHlGaW5kTm9uUHJldmFsZW50RG9tYWlucwogICAgICAgICB9CiAgICAgfQogCi0gICAgU1FM
aXRlU3RhdGVtZW50IGZpbmRUb3BGcmFtZXMobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNU
IFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQgZnJvbSBUb3BGcmFtZVVu
aXF1ZVJlZGlyZWN0c0Zyb20gSU5ORVIgSk9JTiBPYnNlcnZlZERvbWFpbnMgT04gT2JzZXJ2ZWRE
b21haW5zLmRvbWFpbklEID0gVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5J
RCBXSEVSRSB0YXJnZXREb21haW5JRCA9ICIsIFN0cmluZzo6bnVtYmVyKHByaW1hcnlEb21haW5J
RCksICJBTkQgT2JzZXJ2ZWREb21haW5zLmlzUHJldmFsZW50ID0gMCIpKTsKKyAgICBTUUxpdGVT
dGF0ZW1lbnQgZmluZFRvcEZyYW1lcyhtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgVG9w
RnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5JRCBmcm9tIFRvcEZyYW1lVW5pcXVl
UmVkaXJlY3RzRnJvbSBJTk5FUiBKT0lOIE9ic2VydmVkRG9tYWlucyBPTiBPYnNlcnZlZERvbWFp
bnMuZG9tYWluSUQgPSBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20uZnJvbURvbWFpbklEIFdI
RVJFIHRhcmdldERvbWFpbklEID0gIiwgU3RyaW5nOjpudW1iZXIocHJpbWFyeURvbWFpbklEKSwg
IiBBTkQgT2JzZXJ2ZWREb21haW5zLmlzUHJldmFsZW50ID0gMCIpKTsKICAgICBpZiAoZmluZFRv
cEZyYW1lcy5wcmVwYXJlKCkgPT0gU1FMSVRFX09LKSB7CiAgICAgICAgIHdoaWxlIChmaW5kVG9w
RnJhbWVzLnN0ZXAoKSA9PSBTUUxJVEVfUk9XKSB7CiAgICAgICAgICAgICBhdXRvIG5ld0RvbWFp
bklEID0gZmluZFRvcEZyYW1lcy5nZXRDb2x1bW5JbnQoMCk7CkBAIC02NTcsNyArNjcxLDcgQEAg
SGFzaE1hcDx1bnNpZ25lZCwgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Ok5v
dFZlcnlQcmV2YWxlbnRSZXNvdXJjZXMKICAgICAgICAgfQogICAgIH0KIAotICAgIFNRTGl0ZVN0
YXRlbWVudCBzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnRTdGF0ZW1lbnQobV9kYXRh
YmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIHN1YnJlc291cmNlRG9tYWluSUQsIENPVU5UKHRvcEZy
YW1lRG9tYWluSUQpIEZST00gU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlucyBXSEVSRSBz
dWJyZXNvdXJjZURvbWFpbklEIElOICgiLCBkb21haW5JRHNPZkludGVyZXN0LCAiKSBHUk9VUCBC
WSBzdWJyZXNvdXJjZURvbWFpbklEIikpOworICAgIFNRTGl0ZVN0YXRlbWVudCBzdWJmcmFtZVVu
ZGVyVG9wRnJhbWVEb21haW5zQ291bnRTdGF0ZW1lbnQobV9kYXRhYmFzZSwgbWFrZVN0cmluZygi
U0VMRUNUIHN1YmZyYW1lRG9tYWluSUQsIENPVU5UKHRvcEZyYW1lRG9tYWluSUQpIEZST00gU3Vi
ZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlucyBXSEVSRSBzdWJmcmFtZURvbWFpbklEIElOICgiLCBk
b21haW5JRHNPZkludGVyZXN0LCAiKSBHUk9VUCBCWSBzdWJmcmFtZURvbWFpbklEIikpOwogICAg
IGlmIChzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnRTdGF0ZW1lbnQucHJlcGFyZSgp
ID09IFNRTElURV9PSykgewogICAgICAgICB3aGlsZSAoc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9t
YWluc0NvdW50U3RhdGVtZW50LnN0ZXAoKSA9PSBTUUxJVEVfUk9XKSB7CiAgICAgICAgICAgICB1
bnNpZ25lZCBkb21haW5JRCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzdWJmcmFtZVVuZGVyVG9w
RnJhbWVEb21haW5zQ291bnRTdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDApKTsKQEAgLTY4NywxMiAr
NzAxLDEyIEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlY2xh
c3NpZnlSZXNvdXJjZXMoKQogICAgIGF1dG8gbm90VmVyeVByZXZhbGVudFJlc291cmNlcyA9IGZp
bmROb3RWZXJ5UHJldmFsZW50UmVzb3VyY2VzKCk7CiAKICAgICBmb3IgKGF1dG8mIHJlc291cmNl
U3RhdGlzdGljIDogbm90VmVyeVByZXZhbGVudFJlc291cmNlcy52YWx1ZXMoKSkgewotICAgICAg
ICBpZiAoc2hvdWxkU2tpcChyZXNvdXJjZVN0YXRpc3RpYy5yZWdpc3RlcmFibGVEb21haW4pKQor
ICAgICAgICBpZiAoc2hvdWxkU2tpcChyZXNvdXJjZVN0YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFp
bikpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBhdXRvIG5ld1ByZXZhbGVuY2Ug
PSBjbGFzc2lmaWVyKCkuY2FsY3VsYXRlUmVzb3VyY2VQcmV2YWxlbmNlKHJlc291cmNlU3RhdGlz
dGljLnN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnNDb3VudCwgcmVzb3VyY2VTdGF0aXN0
aWMuc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb0NvdW50LCByZXNvdXJjZVN0YXRpc3RpYy5z
dWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnQsIHJlc291cmNlU3RhdGlzdGljLnRvcEZy
YW1lVW5pcXVlUmVkaXJlY3RzVG9Db3VudCwgcmVzb3VyY2VTdGF0aXN0aWMucHJldmFsZW5jZSk7
CiAgICAgICAgIGlmIChuZXdQcmV2YWxlbmNlICE9IHJlc291cmNlU3RhdGlzdGljLnByZXZhbGVu
Y2UpCi0gICAgICAgICAgICBzZXRQcmV2YWxlbnRSZXNvdXJjZShyZXNvdXJjZVN0YXRpc3RpYy5y
ZWdpc3RlcmFibGVEb21haW4sIG5ld1ByZXZhbGVuY2UpOworICAgICAgICAgICAgc2V0UHJldmFs
ZW50UmVzb3VyY2UocmVzb3VyY2VTdGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4sIG5ld1ByZXZh
bGVuY2UpOwogICAgIH0KIH0KIApAQCAtODUxLDYgKzg2NSw5IEBAIHZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW5kZmF0aGVyRGF0YUZvckRvbWFpbnMoY29uc3Qg
SGFzaFNlCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKKyAgICBmb3IgKGF1
dG8mIHJlZ2lzdHJhYmxlRG9tYWluIDogZG9tYWlucykKKyAgICAgICAgZW5zdXJlUmVzb3VyY2VT
dGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4ocmVnaXN0cmFibGVEb21haW4pOworCiAgICAg
U1FMaXRlU3RhdGVtZW50IGRvbWFpbnNUb1VwZGF0ZVN0YXRlbWVudChtX2RhdGFiYXNlLCBtYWtl
U3RyaW5nKCJVUERBVEUgT2JzZXJ2ZWREb21haW5zIFNFVCBncmFuZGZhdGhlcmVkID0gMSBXSEVS
RSByZWdpc3RyYWJsZURvbWFpbiBJTiAoIiwgZG9tYWluc1RvU3RyaW5nKGRvbWFpbnMpLCAiKSIp
KTsKICAgICBpZiAoZG9tYWluc1RvVXBkYXRlU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVf
T0sKICAgICAgICAgfHwgZG9tYWluc1RvVXBkYXRlU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVf
RE9ORSkgewpAQCAtODk0LDcgKzkxMSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBSZWdpc3RyYWJsZURvCiAgICAg
aWYgKCFpc01haW5GcmFtZSAmJiAhKGFyZVRhcmdldEFuZFRvcEZyYW1lRG9tYWluc1NhbWVTaXRl
IHx8IGFyZVRhcmdldEFuZFNvdXJjZURvbWFpbnNTYW1lU2l0ZSkpIHsKICAgICAgICAgYXV0byB0
YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFp
bih0YXJnZXREb21haW4pOwogICAgICAgICB1cGRhdGVMYXN0U2Vlbih0YXJnZXREb21haW4sIFJl
c291cmNlTG9hZFN0YXRpc3RpY3M6OnJlZHVjZVRpbWVSZXNvbHV0aW9uKFdhbGxUaW1lOjpub3co
KSkpOwotCisgICAgICAgIGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9t
YWluKHRvcEZyYW1lRG9tYWluKTsKICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV9z
dWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5FeGlzdHMsIHRhcmdldFJlc3VsdC5zZWNvbmQsIHRv
cEZyYW1lRG9tYWluKSkgewogICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1f
c3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlucywgdGFyZ2V0UmVzdWx0LnNlY29uZCwgdG9wRnJh
bWVEb21haW4pOwogICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKQEAg
LTkwNCwyNCArOTIxLDI1IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBSZWdpc3RyYWJsZURvCiAgICAgaWYgKGlzUmVk
aXJlY3QgJiYgIWFyZVRhcmdldEFuZFNvdXJjZURvbWFpbnNTYW1lU2l0ZSkgewogICAgICAgICBp
ZiAoaXNNYWluRnJhbWUpIHsKICAgICAgICAgICAgIGF1dG8gcmVkaXJlY3RpbmdEb21haW5SZXN1
bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihzb3VyY2VE
b21haW4pOworICAgICAgICAgICAgYXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0
YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0YXJnZXREb21haW4pOworCiAgICAgICAgICAg
ICBpZiAoIXJlbGF0aW9uc2hpcEV4aXN0cyhtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9FeGlz
dHMsIHJlZGlyZWN0aW5nRG9tYWluUmVzdWx0LnNlY29uZCwgdGFyZ2V0RG9tYWluKSkgewogICAg
ICAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3RvcEZyYW1lVW5pcXVlUmVk
aXJlY3RzVG8sIHJlZGlyZWN0aW5nRG9tYWluUmVzdWx0LnNlY29uZCwgdGFyZ2V0RG9tYWluKTsK
ICAgICAgICAgICAgICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVlOwogICAgICAgICAg
ICAgfQogCi0gICAgICAgICAgICBhdXRvIHRhcmdldFJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3Rh
dGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHRhcmdldERvbWFpbik7CiAgICAgICAgICAgICBp
ZiAoIXJlbGF0aW9uc2hpcEV4aXN0cyhtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbUV4aXN0
cywgdGFyZ2V0UmVzdWx0LnNlY29uZCwgc291cmNlRG9tYWluKSkgewogICAgICAgICAgICAgICAg
IGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSwg
dGFyZ2V0UmVzdWx0LnNlY29uZCwgc291cmNlRG9tYWluKTsKICAgICAgICAgICAgICAgICBzdGF0
aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgYXV0byByZWRpcmVjdGluZ0RvbWFpblJlc3VsdCA9IGVuc3VyZVJlc291
cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHNvdXJjZURvbWFpbik7CisgICAgICAg
ICAgICBhdXRvIHRhcmdldFJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lz
dHJhYmxlRG9tYWluKHRhcmdldERvbWFpbik7CiAgICAgICAgICAgICBpZiAoIXJlbGF0aW9uc2hp
cEV4aXN0cyhtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9FeGlzdHMsIHJlZGlyZWN0aW5n
RG9tYWluUmVzdWx0LnNlY29uZCwgdGFyZ2V0RG9tYWluKSkgewogICAgICAgICAgICAgICAgIGlu
c2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8sIHJl
ZGlyZWN0aW5nRG9tYWluUmVzdWx0LnNlY29uZCwgdGFyZ2V0RG9tYWluKTsKICAgICAgICAgICAg
ICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICBhdXRvIHRhcmdldFJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJl
Z2lzdHJhYmxlRG9tYWluKHRhcmdldERvbWFpbik7CiAgICAgICAgICAgICBpZiAoIXJlbGF0aW9u
c2hpcEV4aXN0cyhtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbUV4aXN0cywgdGFyZ2V0
UmVzdWx0LnNlY29uZCwgc291cmNlRG9tYWluKSkgewogICAgICAgICAgICAgICAgIGluc2VydERv
bWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSwgdGFyZ2V0
UmVzdWx0LnNlY29uZCwgc291cmNlRG9tYWluKTsKICAgICAgICAgICAgICAgICBzdGF0aXN0aWNz
V2VyZVVwZGF0ZWQgPSB0cnVlOwpAQCAtOTkxLDE1ICsxMDA5LDIwIEBAIGJvb2wgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc0hhZFVzZXJJbnRlcmFjdGlvbihjb25zdCBS
ZWdpc3RyYWJsCiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBpZiAobV9o
YWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuYmluZFRleHQoMSwgZG9tYWluLnN0cmluZygpKSAh
PSBTUUxJVEVfT0sKLSAgICAgICAgfHwgbV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuc3Rl
cCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmss
ICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptX3VwZGF0ZVByZXZh
bGVudFJlc291cmNlU3RhdGVtZW50IGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIs
IHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwotICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgfHwgbV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuc3RlcCgp
ICE9IFNRTElURV9ST1cpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVw
IC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1faGFkVXNlckludGVyYWN0
aW9uU3RhdGVtZW50IGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1f
ZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworCisgICAgICAgIGludCByZXNldFJlc3VsdCA9IG1f
aGFkVXNlckludGVyYWN0aW9uU3RhdGVtZW50LnJlc2V0KCk7CisgICAgICAgIEFTU0VSVF9VTlVT
RUQocmVzZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNRTElURV9PSyk7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CiAKICAgICBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiA9ICEhbV9oYWRV
c2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDApOwotICAgIGlmICghaGFkVXNl
ckludGVyYWN0aW9uKQorICAgIGlmICghaGFkVXNlckludGVyYWN0aW9uKSB7CisgICAgICAgIGlu
dCByZXNldFJlc3VsdCA9IG1faGFkVXNlckludGVyYWN0aW9uU3RhdGVtZW50LnJlc2V0KCk7Cisg
ICAgICAgIEFTU0VSVF9VTlVTRUQocmVzZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNRTElURV9P
Syk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgCiAgICAgV2FsbFRpbWUgbW9z
dFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMobV9o
YWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuZ2V0Q29sdW1uRG91YmxlKDEpKTsKIApAQCAtMTAx
MSw2ICsxMDM0LDkgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
aGFzSGFkVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmwKICAgICAgICAgaGFkVXNlcklu
dGVyYWN0aW9uID0gZmFsc2U7CiAgICAgfQogICAgIAorICAgIGludCByZXNldFJlc3VsdCA9IG1f
aGFkVXNlckludGVyYWN0aW9uU3RhdGVtZW50LnJlc2V0KCk7CisgICAgQVNTRVJUX1VOVVNFRChy
ZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQgPT0gU1FMSVRFX09LKTsKKwogICAgIHJldHVybiBoYWRV
c2VySW50ZXJhY3Rpb247CiB9CiAKQEAgLTEwNDUsNyArMTA3MSw3IEBAIHZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFByZXZhbGVudFJlc291cmNlKGNvbnN0IFJl
Z2lzdHJhYmxlCiAgICAgfQogCiAgICAgU3RkU2V0PHVuc2lnbmVkPiBub25QcmV2YWxlbnRSZWRp
cmVjdGlvblNvdXJjZXM7Ci0gICAgcmVjdXJzaXZlbHlGaW5kTm9uUHJldmFsZW50RG9tYWluc1Ro
YXRSZWRpcmVjdGVkVG9UaGlzRG9tYWluKGRvbWFpbklEKGRvbWFpbiksIG5vblByZXZhbGVudFJl
ZGlyZWN0aW9uU291cmNlcywgMCk7CisgICAgcmVjdXJzaXZlbHlGaW5kTm9uUHJldmFsZW50RG9t
YWluc1RoYXRSZWRpcmVjdGVkVG9UaGlzRG9tYWluKGRvbWFpbklEKGRvbWFpbikudmFsdWUoKSwg
bm9uUHJldmFsZW50UmVkaXJlY3Rpb25Tb3VyY2VzLCAwKTsKICAgICBzZXREb21haW5zQXNQcmV2
YWxlbnQoV1RGTW92ZShub25QcmV2YWxlbnRSZWRpcmVjdGlvblNvdXJjZXMpKTsKIH0KIApAQCAt
MTA3Niw5ICsxMTAyLDEyIEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OnByZWRpY2F0ZVZhbHVlRm9yRG9tYWluKFdlYkNvcmU6OlNRTGl0CiAgICAgQVNTRVJUKCFS
dW5Mb29wOjppc01haW4oKSk7CiAgICAgCiAgICAgaWYgKHByZWRpY2F0ZVN0YXRlbWVudC5iaW5k
VGV4dCgxLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSwotICAgICAgICB8fCBwcmVkaWNh
dGVTdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ET05FKSB7CisgICAgICAgIHx8IHByZWRpY2F0
ZVN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX1JPVykgeworCisgICAgICAgIGludCByZXNldFJl
c3VsdCA9IHByZWRpY2F0ZVN0YXRlbWVudC5yZXNldCgpOworICAgICAgICBBU1NFUlRfVU5VU0VE
KHJlc2V0UmVzdWx0LCByZXNldFJlc3VsdCA9PSBTUUxJVEVfT0spOworCiAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpwcmVkaWNhdGVWYWx1ZUZvckRvbWFpbiBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVz
c2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwotICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
IApAQCAtMTI0OCw3ICsxMjc3LDcgQEAgc3RkOjpwYWlyPFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpBZGRlZFJlY29yZCwgdW5zaWduZWQ+IFJlc291cmNlTG8KICAgICBBU1NF
UlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGlmIChtX2RvbWFpbklERnJvbVN0cmluZ1N0
YXRlbWVudC5iaW5kVGV4dCgxLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSykgewotICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6Y3JlYXRlU2NoZW1hIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtw
dWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6ZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4gZmFp
bGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4g
eyBBZGRlZFJlY29yZDo6Tm8sIDAgfTsKICAgICB9CkBAIC0xMjY3LDEzICsxMjk2LDI3IEBAIHN0
ZDo6cGFpcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6QWRkZWRSZWNvcmQs
IHVuc2lnbmVkPiBSZXNvdXJjZUxvCiAgICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBuZXdPYnNl
cnZhdGlvbihkb21haW4pOwogICAgIGluc2VydE9ic2VydmVkRG9tYWluKG5ld09ic2VydmF0aW9u
KTsKIAotICAgIHJldHVybiB7IEFkZGVkUmVjb3JkOjpZZXMsIGRvbWFpbklEKGRvbWFpbikgfTsK
KyAgICByZXR1cm4geyBBZGRlZFJlY29yZDo6WWVzLCBkb21haW5JRChkb21haW4pLnZhbHVlKCkg
fTsKK30KKwordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJE
YXRhYmFzZUNvbnRlbnRzKCkKK3sKKyAgICBtX2RhdGFiYXNlLmNsZWFyQWxsVGFibGVzKCk7CisK
KyAgICBpZiAoIW1fZGF0YWJhc2UudGFibGVFeGlzdHMoIk9ic2VydmVkRG9tYWlucyJfcykpIHsK
KyAgICAgICAgaWYgKCFjcmVhdGVTY2hlbWEoKSkgeworICAgICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmNsZWFyRGF0YWJhc2VDb250ZW50cyBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMs
IGRhdGFiYXNlIHBhdGg6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1z
ZygpLCBtX3N0b3JhZ2VEaXJlY3RvcnlQYXRoLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICB9CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFy
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBB
U1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAorICAgIGNsZWFyRGF0YWJhc2VDb250ZW50cygp
OwogICAgIGNsZWFyT3BlcmF0aW5nRGF0ZXMoKTsKIAogICAgIGF1dG8gY2FsbGJhY2tBZ2dyZWdh
dG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwpAQCAtMTMwNyw3ICsxMzUwLDcgQEAgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNVc2VyR3JhbnRlZFMKIHsKICAg
ICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIGF1dG8gZmlyc3RQYXJ0eVByaW1h
cnlEb21haW5JRCA9IGRvbWFpbklEKGZpcnN0UGFydHlEb21haW4pOworICAgIGF1dG8gZmlyc3RQ
YXJ0eVByaW1hcnlEb21haW5JRCA9IGRvbWFpbklEKGZpcnN0UGFydHlEb21haW4pLnZhbHVlKCk7
CiAKICAgICBTUUxpdGVTdGF0ZW1lbnQgc3RhdGVtZW50KG1fZGF0YWJhc2UsIG1ha2VTdHJpbmco
IlNFTEVDVCBDT1VOVCgqKSBGUk9NIFN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWlucyBX
SEVSRSBkb21haW5JRCA9ICIsIFN0cmluZzo6bnVtYmVyKHJlcXVlc3RpbmdEb21haW5JRCksICIg
QU5EIHRvcExldmVsRG9tYWluSUQgPSAiLCBTdHJpbmc6Om51bWJlcihmaXJzdFBhcnR5UHJpbWFy
eURvbWFpbklEKSkpOwogICAgIGlmIChzdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwpA
QCAtMTQ2Miw5ICsxNTA1LDE5IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OmNsZWFyR3JhbmRmYXRoZXJpbmcoVmVjdG9yPHVuc2lnbmVkPiYmCiAgICAgfQogfQog
Ci1ib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRSZW1vdmVB
bGxXZWJzaXRlRGF0YUZvcihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiByZXNvdXJjZVN0YXRp
c3RpYywgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSBjb25zdAorYm9vbCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVW5leHBpcmVkUmVjZW50VXNl
ckludGVyYWN0aW9uKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmIHJlc291cmNlU3RhdGlzdGlj
LCBPcGVyYXRpbmdEYXRlc1dpbmRvdyBvcGVyYXRpbmdEYXRlc1dpbmRvdykKK3sKKyAgICBpZiAo
cmVzb3VyY2VTdGF0aXN0aWMuaGFkVXNlckludGVyYWN0aW9uICYmIGhhc1N0YXRpc3RpY3NFeHBp
cmVkKHJlc291cmNlU3RhdGlzdGljLm1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lLCBvcGVy
YXRpbmdEYXRlc1dpbmRvdykpIHsKKyAgICAgICAgY2xlYXJVc2VySW50ZXJhY3Rpb24ocmVzb3Vy
Y2VTdGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4pOworICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorCisgICAgcmV0dXJuIHJlc291cmNlU3RhdGlzdGljLmhhZFVzZXJJbnRlcmFjdGlvbjsK
K30KKworYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2hvdWxkUmVt
b3ZlQWxsV2Vic2l0ZURhdGFGb3IoY29uc3QgUHJldmFsZW50RG9tYWluRGF0YSYgcmVzb3VyY2VT
dGF0aXN0aWMsIGJvb2wgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZykKIHsKLSAgICByZXR1
cm4gIXJlc291cmNlU3RhdGlzdGljLmhhZFVzZXJJbnRlcmFjdGlvbiAmJiAoIXNob3VsZENoZWNr
Rm9yR3JhbmRmYXRoZXJpbmcgfHwgIXJlc291cmNlU3RhdGlzdGljLmdyYW5kZmF0aGVyZWQpOwor
ICAgIHJldHVybiAhaGFzSGFkVW5leHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9uKHJlc291cmNl
U3RhdGlzdGljLCBPcGVyYXRpbmdEYXRlc1dpbmRvdzo6TG9uZykgJiYgKCFzaG91bGRDaGVja0Zv
ckdyYW5kZmF0aGVyaW5nIHx8ICFyZXNvdXJjZVN0YXRpc3RpYy5ncmFuZGZhdGhlcmVkKTsKIH0K
IAogYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2hvdWxkUmVtb3Zl
QWxsQnV0Q29va2llc0Zvcihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiByZXNvdXJjZVN0YXRp
c3RpYywgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSBjb25zdApAQCAtMTQ5Miw5
ICsxNTQ1LDkgQEAgVmVjdG9yPHN0ZDo6cGFpcjxSZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0ZURh
dGFUb1JlbW92ZT4+IFJlc291cmNlTG9hZFN0YXRpc3RpY3MKICAgICBWZWN0b3I8dW5zaWduZWQ+
IGRvbWFpbklEc1RvQ2xlYXJHcmFuZGZhdGhlcmluZzsKICAgICBmb3IgKGF1dG8mIHN0YXRpc3Rp
YyA6IHByZXZhbGVudERvbWFpbnMpIHsKICAgICAgICAgaWYgKHNob3VsZFJlbW92ZUFsbFdlYnNp
dGVEYXRhRm9yKHN0YXRpc3RpYywgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZykpCi0gICAg
ICAgICAgICBkb21haW5zVG9SZW1vdmVXZWJzaXRlRGF0YUZvci5hcHBlbmQoc3RkOjptYWtlX3Bh
aXIoc3RhdGlzdGljLnJlZ2lzdGVyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZTo6QWxs
KSk7CisgICAgICAgICAgICBkb21haW5zVG9SZW1vdmVXZWJzaXRlRGF0YUZvci5hcHBlbmQoc3Rk
OjptYWtlX3BhaXIoc3RhdGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVt
b3ZlOjpBbGwpKTsKICAgICAgICAgZWxzZSBpZiAoc2hvdWxkUmVtb3ZlQWxsQnV0Q29va2llc0Zv
cihzdGF0aXN0aWMsIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpKQotICAgICAgICAgICAg
ZG9tYWluc1RvUmVtb3ZlV2Vic2l0ZURhdGFGb3IuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKHN0YXRp
c3RpYy5yZWdpc3RlcmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU6OkFsbEJ1dENvb2tp
ZXMpKTsKKyAgICAgICAgICAgIGRvbWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yLmFwcGVuZChz
dGQ6Om1ha2VfcGFpcihzdGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9S
ZW1vdmU6OkFsbEJ1dENvb2tpZXMpKTsKIAogICAgICAgICBpZiAoc2hvdWxkQ2xlYXJHcmFuZGZh
dGhlcmluZyAmJiBzdGF0aXN0aWMuZ3JhbmRmYXRoZXJlZCkKICAgICAgICAgICAgIGRvbWFpbklE
c1RvQ2xlYXJHcmFuZGZhdGhlcmluZy5hcHBlbmQoc3RhdGlzdGljLmRvbWFpbklEKTsKQEAgLTE1
MjQsNyArMTU3Nyw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OnBydW5lU3RhdGlzdGljc0lmTmVlZGVkKCkKICAgICBzaXplX3QgY291bnRMZWZ0VG9QcnVuZSA9
IGNvdW50IC0gcGFyYW1ldGVycygpLnBydW5lRW50cmllc0Rvd25UbzsKICAgICBBU1NFUlQoY291
bnRMZWZ0VG9QcnVuZSk7CiAKLSAgICBTUUxpdGVTdGF0ZW1lbnQgcmVjb3Jkc1RvUHJ1bmUobV9k
YXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5z
IE9SREVSIEJZIGhhZFVzZXJJbnRlcmFjdGlvbiwgaXNQcmV2YWxlbnQsIGxhc3RTZWVuIERFU0Mg
TElNSVQgIiwgU3RyaW5nOjpudW1iZXIoY291bnRMZWZ0VG9QcnVuZSkpKTsKKyAgICBTUUxpdGVT
dGF0ZW1lbnQgcmVjb3Jkc1RvUHJ1bmUobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIGRv
bWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIE9SREVSIEJZIGhhZFVzZXJJbnRlcmFjdGlvbiwg
aXNQcmV2YWxlbnQsIGxhc3RTZWVuIExJTUlUICIsIFN0cmluZzo6bnVtYmVyKGNvdW50TGVmdFRv
UHJ1bmUpKSk7CiAgICAgaWYgKHJlY29yZHNUb1BydW5lLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sp
IHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBydW5lU3RhdGlzdGljc0lmTmVlZGVkIGZhaWxlZCwg
ZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNn
KCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKaW5kZXggMGZiMjRhZDA2NzA0NWM5
YWQzMTRmMjNjZmI0NDQwZDhhZjg0NWZlYy4uMDhkOTk3ODg5Y2E5MDVjYzQ5Y2U0MGIxYjIzMWZl
NzFiNDg3NDYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlLmgKQEAgLTEwNSwxMSArMTA1LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgU2Vjb25kcykgb3ZlcnJpZGU7CiAK
IHByaXZhdGU6CisgICAgdm9pZCBjbGVhckRhdGFiYXNlQ29udGVudHMoKTsKICAgICBib29sIGlu
c2VydE9ic2VydmVkRG9tYWluKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsKICAgICB2
b2lkIGluc2VydERvbWFpblJlbGF0aW9uc2hpcHMoY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyYpOwogICAgIGJvb2wgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKFdlYkNvcmU6OlNRTGl0ZVN0
YXRlbWVudCYsIHVuc2lnbmVkIGRvbWFpbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9w
RnJhbWVEb21haW4pOwotICAgIGJvb2wgcmVsYXRpb25zaGlwRXhpc3RzKFdlYkNvcmU6OlNRTGl0
ZVN0YXRlbWVudCYsIHVuc2lnbmVkIGZpcnN0RG9tYWluSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBzZWNvbmREb21haW4pIGNvbnN0OwotICAgIHVuc2lnbmVkIGRvbWFpbklEKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJikgY29uc3Q7CisgICAgYm9vbCByZWxhdGlvbnNoaXBFeGlzdHMoV2Vi
Q29yZTo6U1FMaXRlU3RhdGVtZW50JiwgT3B0aW9uYWw8dW5zaWduZWQ+IGZpcnN0RG9tYWluSUQs
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzZWNvbmREb21haW4pIGNvbnN0OworICAgIE9wdGlv
bmFsPHVuc2lnbmVkPiBkb21haW5JRChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIGNvbnN0Owog
I2lmbmRlZiBOREVCVUcKICAgICBib29sIGNvbmZpcm1Eb21haW5Eb2VzTm90RXhpc3QoY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mKSBjb25zdDsKICNlbmRpZgpAQCAtMTIwLDEyICsxMjEsMTMgQEAg
cHJpdmF0ZToKIAogICAgIHN0cnVjdCBQcmV2YWxlbnREb21haW5EYXRhIHsKICAgICAgICAgdW5z
aWduZWQgZG9tYWluSUQ7Ci0gICAgICAgIFJlZ2lzdHJhYmxlRG9tYWluIHJlZ2lzdGVyYWJsZURv
bWFpbjsKKyAgICAgICAgUmVnaXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW47CiAgICAg
ICAgIFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lOwogICAgICAgICBib29s
IGhhZFVzZXJJbnRlcmFjdGlvbjsKICAgICAgICAgYm9vbCBncmFuZGZhdGhlcmVkOwogICAgIH07
CiAgICAgVmVjdG9yPFByZXZhbGVudERvbWFpbkRhdGE+IHByZXZhbGVudERvbWFpbnMoKSBjb25z
dDsKKyAgICBib29sIGhhc0hhZFVuZXhwaXJlZFJlY2VudFVzZXJJbnRlcmFjdGlvbihjb25zdCBQ
cmV2YWxlbnREb21haW5EYXRhJiwgT3BlcmF0aW5nRGF0ZXNXaW5kb3cpOwogICAgIFZlY3Rvcjx1
bnNpZ25lZD4gZmluZEV4cGlyZWRVc2VySW50ZXJhY3Rpb25zKCkgY29uc3Q7CiAgICAgdm9pZCBj
bGVhckV4cGlyZWRVc2VySW50ZXJhY3Rpb25zKCk7CiAgICAgdm9pZCBjbGVhckdyYW5kZmF0aGVy
aW5nKFZlY3Rvcjx1bnNpZ25lZD4mJik7CkBAIC0xMzQsNyArMTM2LDcgQEAgcHJpdmF0ZToKIAog
ICAgIHZvaWQgcmVjbGFzc2lmeVJlc291cmNlcygpOwogICAgIHN0cnVjdCBOb3RWZXJ5UHJldmFs
ZW50UmVzb3VyY2VzIHsKLSAgICAgICAgUmVnaXN0cmFibGVEb21haW4gcmVnaXN0ZXJhYmxlRG9t
YWluOworICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWdpc3RyYWJsZURvbWFpbjsKICAgICAg
ICAgUmVzb3VyY2VMb2FkUHJldmFsZW5jZSBwcmV2YWxlbmNlOwogICAgICAgICB1bnNpZ25lZCBz
dWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnQ7CiAgICAgICAgIHVuc2lnbmVkIHN1
YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9Db3VudDsKQEAgLTE1OCw3ICsxNjAsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgcHJ1bmVTdGF0aXN0aWNzSWZOZWVkZWQoKSBvdmVycmlkZTsKICAgICBl
bnVtIGNsYXNzIEFkZGVkUmVjb3JkIHsgTm8sIFllcyB9OwogICAgIHN0ZDo6cGFpcjxBZGRlZFJl
Y29yZCwgdW5zaWduZWQ+IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9t
YWluKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7Ci0gICAgYm9vbCBzaG91bGRSZW1vdmVBbGxX
ZWJzaXRlRGF0YUZvcihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiwgYm9vbCBzaG91bGRDaGVj
a0ZvckdyYW5kZmF0aGVyaW5nKSBjb25zdDsKKyAgICBib29sIHNob3VsZFJlbW92ZUFsbFdlYnNp
dGVEYXRhRm9yKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmLCBib29sIHNob3VsZENoZWNrRm9y
R3JhbmRmYXRoZXJpbmcpOwogICAgIGJvb2wgc2hvdWxkUmVtb3ZlQWxsQnV0Q29va2llc0Zvcihj
b25zdCBQcmV2YWxlbnREb21haW5EYXRhJiwgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVy
aW5nKSBjb25zdDsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZ2lzdHJhYmxlRG9tYWluLCBXZWJz
aXRlRGF0YVRvUmVtb3ZlPj4gcmVnaXN0cmFibGVEb21haW5zVG9SZW1vdmVXZWJzaXRlRGF0YUZv
cigpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNEYXRhYmFzZVN0b3JlKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmNwcAppbmRleCBlNDg3ZmE2MWM1OGM1NWEyMzFmZWRmOGFlOWNjMTM5NmViNjA3MjJmLi42
Nzg1YzA3Y2U4NjA2ODQ3NGY2YmQ5NzRiMzhjMjY3ZTZhN2E3Y2UyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtMTU2LDkgKzE1Niw5IEBA
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlKE5ldHdvcmtTZXNzaW9uJiBuCiAgICAgLCBtX2RhaWx5VGFza3NUaW1lcihSdW5Mb29w
OjptYWluKCksIHRoaXMsICZXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnBlcmZvcm1E
YWlseVRhc2tzKQogewogICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAg
ICAKLSAgICBwb3N0VGFzayhbdGhpcywgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9
IHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkuaXNvbGF0ZWRDb3B5KCksIHNob3VsZElu
Y2x1ZGVMb2NhbGhvc3RdIHsKLSAgICAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkuaXNJVFBEYXRhYmFzZUVuYWJsZWQoKSkgeworCisgICAgcG9zdFRhc2so
W3RoaXMsIGRhdGFiYXNlRW5hYmxlZCA9IG5ldHdvcmtTZXNzaW9uLm5ldHdvcmtQcm9jZXNzKCku
aXNJVFBEYXRhYmFzZUVuYWJsZWQoKSwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9
IHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkuaXNvbGF0ZWRDb3B5KCksIHNob3VsZElu
Y2x1ZGVMb2NhbGhvc3RdIHsKKyAgICAgICAgaWYgKGRhdGFiYXNlRW5hYmxlZCkgewogICAgICAg
ICAgICAgbV9zdGF0aXN0aWNzU3RvcmUgPSBtYWtlVW5pcXVlPFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlPigqdGhpcywgbV9zdGF0aXN0aWNzUXVldWUsIHNob3VsZEluY2x1ZGVM
b2NhbGhvc3QsIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpOwogCiAgICAgICAgICAg
ICBhdXRvIG1lbW9yeVN0b3JlID0gbWFrZVVuaXF1ZTxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVt
b3J5U3RvcmU+KCp0aGlzLCBtX3N0YXRpc3RpY3NRdWV1ZSwgc2hvdWxkSW5jbHVkZUxvY2FsaG9z
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
CmluZGV4IGVjMWFhMmQ4NmQ2MDI5YjU0YmU2ZTgxOGQ5ZmQxMjZiODdkOWM5YzYuLjcwODlkOWJi
ZmQwZjVlOWY2YjdiZjk0NzZhMWYwOWUxNjBiZDM0OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0zMTQsNyArMzE0LDkgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzJiYKICAgICAgICAgbV9kZWZhdWx0TmV0d29ya1N0b3JhZ2VTZXNz
aW9uID0gbmV3VGVzdGluZ1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQo
KSk7CiAgICAgfQogCi0gICAgV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS5zZXRJc0lUUERhdGFiYXNlRW5hYmxlZChwYXJhbWV0ZXJzLnNob3VsZEVuYWJs
ZUlUUERhdGFiYXNlKTsKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAg
IG1fSVRQRGF0YWJhc2VFbmFibGVkID0gcGFyYW1ldGVycy5zaG91bGRFbmFibGVJVFBEYXRhYmFz
ZTsKKyNlbmRpZgogCiAgICAgV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS5zZXRBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkKHBhcmFtZXRl
cnMuZW5hYmxlQWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlKTsKIApAQCAtNDU5LDYgKzQ2MSw4
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmFkZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CiAgICAgYWRkSW5kZXhlZERhdGFiYXNlU2Vzc2lvbihwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9u
UGFyYW1ldGVycy5zZXNzaW9uSUQsIHBhcmFtZXRlcnMuaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5
LCBwYXJhbWV0ZXJzLmluZGV4ZWREYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAj
ZW5kaWYKKyAgICAKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFy
YW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAg
ICAgaWYgKHBhcmVudFByb2Nlc3NIYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQoKSkKQEAgLTY5
NSw2ICs2OTksMTUgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0R3JhbmRmYXRoZXJlZChQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmwKICAgICB9CiB9CiAKK3ZvaWQg
TmV0d29ya1Byb2Nlc3M6OnNldFVzZUlUUERhdGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgYm9vbCB2YWx1ZSkKK3sKKyAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSB0aGlzLT5u
ZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CisgICAgICAgIG1fSVRQRGF0YWJhc2VFbmFibGVk
ID0gdmFsdWU7CisgICAgICAgIG5ldHdvcmtTZXNzaW9uLT5jcmVhdGVOZXdSZXNvdXJjZUxvYWRT
dGF0aXN0aWNTdG9yZSgpOworICAgIH0gZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UHJldmFsZW50UmVzb3VyY2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1
dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewpA
QCAtMTI0MCw2ICsxMjUzLDEyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6Omhhc0lzb2xhdGVkU2Vz
c2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6CiAgICAgICAgIHJl
c3VsdCA9IG5ldHdvcmtTZXNzaW9uLT5oYXNJc29sYXRlZFNlc3Npb24oZG9tYWluKTsKICAgICBj
b21wbGV0aW9uSGFuZGxlcihyZXN1bHQpOwogfQorCitib29sIE5ldHdvcmtQcm9jZXNzOjppc0lU
UERhdGFiYXNlRW5hYmxlZCgpCit7CisgICAgcmV0dXJuIG1fSVRQRGF0YWJhc2VFbmFibGVkOwor
fQorCiAjZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKIAogYm9vbCBO
ZXR3b3JrUHJvY2Vzczo6c2Vzc2lvbklzQ29udHJvbGxlZEJ5QXV0b21hdGlvbihQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmgKaW5kZXggYjhkZGM4ZjQ1ODkxNTYwNTAzMmUyMmNmZTkwODI2NmI1NjAy
ZDIyMS4uMTdiYzk1ZDYwMjBlYWM3ODc5YTJmMGMyN2ZjMTQzZGViYjg2MzRiOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMjI0LDYgKzIy
NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGlzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihQQUw6
OlNlc3Npb25JRCwgY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgaXNSZWdpc3RlcmVk
QXNTdWJyZXNvdXJjZVVuZGVyKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdWJSZXNvdXJjZURvbWFp
biYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jik7CiAgICAgdm9pZCBzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYsIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOworICAgIHZvaWQgc2V0VXNlSVRQRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQsIGJv
b2wgdmFsdWUpOwogICAgIHZvaWQgc2V0TWF4U3RhdGlzdGljc0VudHJpZXMoUEFMOjpTZXNzaW9u
SUQsIHVpbnQ2NF90IG1heGltdW1FbnRyeUNvdW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIHNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CkBAIC0y
NjQsNiArMjY1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q3Jvc3NTaXRlTG9hZFdpdGhMaW5r
RGVjb3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBmcm9tRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9Eb21haW4sIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZXNldENyb3NzU2l0ZUxvYWRzV2l0
aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGhhc0lzb2xhdGVkU2Vzc2lvbihQQUw6OlNlc3Npb25J
RCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmKSBjb25zdDsKKyAgICBib29sIGlzSVRQRGF0YWJhc2VFbmFibGVkKCk7CiAj
ZW5kaWYKIAogICAgIHVzaW5nIENhY2hlU3RvcmFnZVJvb3RQYXRoQ2FsbGJhY2sgPSBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0cmluZyYmKT47CkBAIC01NTAsNiArNTUyLDEwIEBAIHByaXZhdGU6
CiAgICAgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyPiBtX25ldHdv
cmtIVFRQU1VwZ3JhZGVDaGVja2VyOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKQorICAgIGJvb2wgbV9JVFBEYXRhYmFzZUVuYWJsZWQgPSBmYWxzZTsKKyNl
bmRpZgorICAgIAogICAgIGNsYXNzIFN0b3JhZ2VRdW90YU1hbmFnZXJzIHsKICAgICBwdWJsaWM6
CiAgICAgICAgIHVpbnQ2NF90IGRlZmF1bHRRdW90YShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4mIG9yaWdpbikgY29uc3QgeyByZXR1cm4gb3JpZ2luLnRvcE9yaWdpbiA9PSBvcmlnaW4uY2xp
ZW50T3JpZ2luID8gbV9kZWZhdWx0UXVvdGEgOiBtX2RlZmF1bHRUaGlyZFBhcnR5UXVvdGE7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Lm1lc3NhZ2VzLmluCmluZGV4IGEzZjdlYTMyNjRhZmYwMWQ4NmNkMDc5MmIxMTc1NTQzM2FlZjJk
MDYuLjNhOTcyOTQ2Mzk5MWQ4ODExODI3MmEyODBkZDFmMjQzY2NiYTAxMjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdl
cy5pbgpAQCAtMTEzLDYgKzExMyw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2Fj
eVJlY2VpdmVyIHsKICAgICBTdWJtaXRUZWxlbWV0cnkoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KSAtPiAoKSBBc3luYwogICAgIFNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2Vz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzKSAtPiAoKSBBc3luYwog
ICAgIFNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQpIC0+
ICgpIEFzeW5jCisgICAgU2V0VXNlSVRQRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBib29sIHZhbHVlKQogICAgIFNldEdyYW5kZmF0aGVyaW5nVGltZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25kcykgLT4gKCkgQXN5bmMKICAgICBTZXRNYXhTdGF0aXN0
aWNzRW50cmllcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IG1heGltdW1FbnRy
eUNvdW50KSAtPiAoKSBBc3luYwogICAgIFNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRz
UmVtb3ZhbChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25kcykgLT4gKCkg
QXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nl
c3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5j
cHAKaW5kZXggYzNlZTg2MzI5OWY1YmNhODY5MjI1NjkyNTEwMzg5NGFjOGNkNGUwYy4uMzYyY2Q3
MDZlODk0MTgyMjNmYmRiN2E1MzZhZWU5NDg5NjliY2UwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTE2MSw2ICsxNjEsMTIgQEAg
dm9pZCBOZXR3b3JrU2Vzc2lvbjo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoYm9v
bCBlbmFibGUpCiAgICAgICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0UHJldmFsZW50
UmVzb3VyY2VGb3JEZWJ1Z01vZGUobV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFs
ZW50UmVzb3VyY2UsIFtdIHsgfSk7CiB9CiAKK3ZvaWQgTmV0d29ya1Nlc3Npb246OmNyZWF0ZU5l
d1Jlc291cmNlTG9hZFN0YXRpc3RpY1N0b3JlKCkKK3sKKyAgICBkZXN0cm95UmVzb3VyY2VMb2Fk
U3RhdGlzdGljcygpOworICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6Y3JlYXRlKCp0aGlzLCBtX3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3RvcnksIG1fc2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlz
dGljcyk7Cit9CisKIHZvaWQgTmV0d29ya1Nlc3Npb246Om5vdGlmeVJlc291cmNlTG9hZFN0YXRp
c3RpY3NQcm9jZXNzZWQoKQogewogICAgIG1fbmV0d29ya1Byb2Nlc3MtPnBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6Ok5vdGlmeVJl
c291cmNlTG9hZFN0YXRpc3RpY3NQcm9jZXNzZWQoKSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKaW5kZXggMzE4ZWNlNGE0NGIyNGM0NWYxZDcw
NjlkOTg2YTMzMjJhOWE1MDI5Yi4uZjM5YzA0MGYxYmJjYTRmNDRmNThjZDU5MDJmYWRlZjQ5OWUz
OWZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
aApAQCAtODQsNiArODQsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKICAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUqIHJlc291cmNlTG9h
ZFN0YXRpc3RpY3MoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MuZ2V0
KCk7IH0KICAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wpOwor
ICAgIHZvaWQgY3JlYXRlTmV3UmVzb3VyY2VMb2FkU3RhdGlzdGljU3RvcmUoKTsKICAgICB2b2lk
IG5vdGlmeVJlc291cmNlTG9hZFN0YXRpc3RpY3NQcm9jZXNzZWQoKTsKICAgICB2b2lkIGRlbGV0
ZVdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21haW5zKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5
cGU+LCBWZWN0b3I8c3RkOjpwYWlyPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluLCBXZWJzaXRl
RGF0YVRvUmVtb3ZlPj4mJiwgYm9vbCBzaG91bGROb3RpZnlQYWdlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGNvbnN0IEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+Jik+JiYpOwog
ICAgIHZvaWQgcmVnaXN0cmFibGVEb21haW5zV2l0aFdlYnNpdGVEYXRhKE9wdGlvblNldDxXZWJz
aXRlRGF0YVR5cGU+LCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mJik+JiYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5j
cHAKaW5kZXggMTg3ZTgxYTM4NmNjYjU3OTYzMDc4NTE2YzA5NGExM2IyMTJkZjgyNS4uZTJjZWI5
ZGUyZjUwNzFmYjg5MTgzZTFlYjBiOTNlM2NkMmUxNjMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCkBAIC0y
NjcsNiArMjY3LDEzIEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzR3JhbmRm
YXRoZXJlZChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlCiAjZW5kaWYKIH0KIAordm9p
ZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRVc2VJVFBEYXRhYmFzZShXS1dlYnNpdGVEYXRhU3RvcmVS
ZWYgZGF0YVN0b3JlUmVmLCBib29sIHZhbHVlKQoreworI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+d2Vic2l0ZURh
dGFTdG9yZSgpLnNldFVzZUlUUERhdGFiYXNlKHZhbHVlKTsKKyNlbmRpZgorfQorCiB2b2lkIFdL
V2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4o
V0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgV0tT
dHJpbmdSZWYgdG9wRnJhbWVIb3N0KQogewogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJ
U1RJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNp
dGVEYXRhU3RvcmVSZWYuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0
ZURhdGFTdG9yZVJlZi5oCmluZGV4IGU0OWRlMjBiOGYyNGFmMWI3MDZlNzc3NzgxNzUzNDI2ZWQ2
ODQwOTcuLmYyZjljNjJiNTIzODJkMjJjMDQzNmNmMTA4MzhkMmJiYzQ5NTQ5YzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJl
Zi5oCkBAIC03MCw2ICs3MCw3IEBAIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihXS1dlYnNpdGVEYXRhCiBXS19FWFBPUlQg
dm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1dlYnNp
dGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBib29sIHZhbHVl
KTsKIHR5cGVkZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0
aGVyZWRGdW5jdGlvbikoYm9vbCBpc0dyYW5kZmF0aGVyZWQsIHZvaWQqIGZ1bmN0aW9uQ29udGV4
dCk7CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NHcmFuZGZh
dGhlcmVkKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhv
c3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0
aGVyZWRGdW5jdGlvbiBjYWxsYmFjayk7CitXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3Rv
cmVTZXRVc2VJVFBEYXRhYmFzZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBi
b29sIHZhbHVlKTsKIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3Rp
Y3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFT
dG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0KTsKIFdL
X0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVu
ZGVyVG9wRnJhbWVPcmlnaW4oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tT
dHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0KTsKIFdLX0VYUE9SVCB2b2lk
IFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0
VG8oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwg
V0tTdHJpbmdSZWYgaG9zdFJlZGlyZWN0ZWRUbyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA1MWIzZTkw
ODA2NmU1ZjhjNDFlZDgwMWY2MWFlOWIxMDE3ZGY0ODVjLi4xODUwNGFiZjIxNTMyYjczOTAwMTQ3
Yjg0YmNmNTA0YTlhZDQ2NzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTc3Myw2ICs3NzMsMTQgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgUmVnaXMKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
Ok5ldHdvcmtQcm9jZXNzOjpTZXRHcmFuZGZhdGhlcmVkKHNlc3Npb25JRCwgcmVzb3VyY2VEb21h
aW4sIGlzR3JhbmRmYXRoZXJlZCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAor
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRVc2VJVFBEYXRhYmFzZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUpCit7CisgICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgpKQor
ICAgICAgICByZXR1cm47CisgICAgCisgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
OlNldFVzZUlUUERhdGFiYXNlKHNlc3Npb25JRCwgdmFsdWUpLCAwKTsKK30KKwogdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViUGFnZVByb3h5
SWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BG
cmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBhdXRvKiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJ
RCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5oCmluZGV4IDg4ZGE3YzA0ZjY2MmM4N2FiODMzNDkyZGI4ODkwOTY3N2M0NjM4
YTAuLmQwYjcxOWFiN2U4MjY4ZjlkZTVjNDgwYmRmYjkzMjU1ZDZmZGUxZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5o
CkBAIC0xMTYsNiArMTE2LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWdlQ2FwRm9yQ2xpZW50
U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIE9wdGlvbmFsPFNlY29uZHM+LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Q2FjaGVNYXhBZ2VDYXAoUEFMOjpTZXNz
aW9uSUQsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBz
ZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYs
IGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAg
IHZvaWQgc2V0VXNlSVRQRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQsIGJvb2wgdmFsdWUpOwogICAg
IHZvaWQgc2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChQQUw6OlNlc3Np
b25JRCwgYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldElz
UnVubmluZ1Jlc291cmNlTG9hZFN0YXRpc3RpY3NUZXN0KFBBTDo6U2Vzc2lvbklELCBib29sLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Tm90aWZ5UGFnZXNXaGVu
VGVsZW1ldHJ5V2FzQ2FwdHVyZWQoUEFMOjpTZXNzaW9uSUQsIGJvb2wsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDk1YWVkZmUxNDM3OGU2YTU4NDI0
ZTc1ZTViM2RlNWE4ZGY4ZWNiNmYuLmZjMzZiYTg2ZDZiODZkODNlMzlhY2RkNDJjZmE5YTA5ODdl
YzIyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xNjQxLDYgKzE2NDEsMTQgQEAgdm9pZCBXZWJz
aXRlRGF0YVN0b3JlOjpzZXRHcmFuZGZhdGhlcmVkKGNvbnN0IFVSTCYgdXJsLCBib29sIGlzR3Jh
bmRmYXRoZXJlZCwgQ28KICAgICB9CiB9CiAKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0VXNl
SVRQRGF0YWJhc2UoYm9vbCB2YWx1ZSkKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkp
OworCisgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IHByb2Nlc3NQb29scygpKQorICAgICAg
ICBwcm9jZXNzUG9vbC0+ZW5zdXJlTmV0d29ya1Byb2Nlc3MoKS5zZXRVc2VJVFBEYXRhYmFzZSht
X3Nlc3Npb25JRCwgdmFsdWUpOworfQorCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldENyb3Nz
U2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKGNvbnN0IFVSTCYgZnJvbVVSTCwg
Y29uc3QgVVJMJiB0b1VSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5k
ZXggZjUyZmFkZWU4Yzg2YmMxYWZjNWQ3MTg4Y2VhYTI1MWRhZGE5ZGM2My4uZWYxNTA4YTg4YzMy
YjBjMWRhOTc4OTU5OGI3ODczOGY1MDJhNTAxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtMTU0LDYgKzE1
NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNjaGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRz
UHJvY2Vzc2luZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc3VibWl0
VGVsZW1ldHJ5KCk7CiAgICAgdm9pZCBzZXRHcmFuZGZhdGhlcmVkKGNvbnN0IFVSTCYsIGJvb2ws
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRVc2VJVFBEYXRhYmFz
ZShib29sKTsKICAgICB2b2lkIHNldEdyYW5kZmF0aGVyaW5nVGltZShTZWNvbmRzLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0TGFzdFNlZW4oY29uc3QgVVJMJiwg
U2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldE5vdGlm
eVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCAzYzRmZmZkYWEzZjI5ZjI3ZWVlNjQ3Zjk1NGE5NTk2ZGM4Y2Y0NzIxLi4yNzEzZTU4
NGQ1ZWEyMGYwYzVhMzFkYTlkYmJmNjlmZWJiNTI2NjgxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTktMDktMTYg
IEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5h
YmxlIExheW91dFRlc3RzIHVzaW5nIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgU1FMaXRlIGJhY2tl
bmQgKDE5NTQyMCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NTQyMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQyMTM1NTE+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgaW4gbG9naWMgdG8g
c2VuZCBhIG1lc3NhZ2UgZnJvbSB0aGUgVUlQcm9jZXNzIHRvIHRoZSBOZXR3b3JrCisgICAgICAg
IFByb2Nlc3Mgd2hpY2ggd2lsbCBpbml0YWxpemUgdGhlIElUUCBEYXRhYmFzZSBiYWNrZW5kIHRv
IGFsbG93IGZvcgorICAgICAgICBsYXlvdXQgdGVzdGluZy4KKworICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAg
ICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0VXNlSVRQRGF0YWJhc2UpOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJv
bGxlcjo6c2V0VXNlSVRQRGF0YWJhc2UpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9u
LmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91
c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDE5LTA5LTEzICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW2lPU10gVGVzdFdlYktp
dEFQSS5XZWJLaXQuVExTVmVyc2lvbldlYlNvY2tldCBpcyBhIGZsYWt5IGZhaWx1cmUKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVz
dFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRp
bmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IGY1MzRiYjAxMGI2ZjZmMTM3MGIwOWJlNTg0ZmI5ODY1
MDBmM2I4MjQuLmE2MzI1MjZhOTc0NDgxOWM5NDE4Y2FlZGMzZDgwMGVjOWI5NjEzMWQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVz
dFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtMzA5LDYgKzMwOSw3IEBAIGludGVyZmFjZSBUZXN0
UnVubmVyIHsKICAgICBib29sZWFuIGlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihE
T01TdHJpbmcgaG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQo
RE9NU3RyaW5nIGhvc3ROYW1lLCBib29sZWFuIHZhbHVlKTsKICAgICBib29sZWFuIGlzU3RhdGlz
dGljc0dyYW5kZmF0aGVyZWQoRE9NU3RyaW5nIGhvc3ROYW1lKTsKKyAgICB2b2lkIHNldFVzZUlU
UERhdGFiYXNlKGJvb2xlYW4gdmFsdWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YmZyYW1l
VW5kZXJUb3BGcmFtZU9yaWdpbihET01TdHJpbmcgaG9zdE5hbWUsIERPTVN0cmluZyB0b3BGcmFt
ZUhvc3ROYW1lKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJh
bWVPcmlnaW4oRE9NU3RyaW5nIGhvc3ROYW1lLCBET01TdHJpbmcgdG9wRnJhbWVIb3N0TmFtZSk7
CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKERPTVN0
cmluZyBob3N0TmFtZSwgRE9NU3RyaW5nIGhvc3ROYW1lUmVkaXJlY3RlZFRvKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmlu
ZGV4IDE1NzRlYzRjYzYyODc5YjA4MmFlMjczOGEyZmM4MWQ3MDQwOWQ0ZTYuLjM3MjNiZmIyNjYx
YWIyNGY5YmNjNWU5NWJiOGQ1YzJjZWJmNjYyMzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMTY5NCw3ICsxNjk0
LDE1IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoSlNTdHJp
bmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpCiAgICAgCiAgICAgV0tCdW5kbGVQb3N0U3luY2hy
b25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2Fn
ZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxscHRyKTsKIH0KKwordm9pZCBUZXN0
UnVubmVyOjpzZXRVc2VJVFBEYXRhYmFzZShib29sIHZhbHVlKQoreworICAgIFdLUmV0YWluUHRy
PFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIlNldFVzZUlUUERhdGFiYXNlIikpOworICAgIFdLUmV0YWluUHRyPFdLQm9vbGVh
blJlZj4gbWVzc2FnZUJvZHkgPSBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZSh2YWx1ZSkpOwogICAg
IAorICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2lu
Z2xldG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSwg
bnVsbHB0cik7Cit9CisKIGJvb2wgVGVzdFJ1bm5lcjo6aXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJl
ZChKU1N0cmluZ1JlZiBob3N0TmFtZSkKIHsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
bWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJJc1N0
YXRpc3RpY3NHcmFuZGZhdGhlcmVkIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCA5MzliNmJlOWQ4ZTUxYTcwNjI1NDVk
NDM0NmY1YjQ1YzdlYWE1YWUwLi5hZjEwMmU1MDQ1OTBkOTZjNTVmODI2Y2E5N2NlOTEwNGMzMGZl
NjIxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuaApAQCAtNDEwLDYgKzQxMCw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzU3RhdGlz
dGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihKU1N0cmluZ1JlZiBob3N0TmFtZSk7CiAgICAgdm9p
ZCBzZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChKU1N0cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2
YWx1ZSk7CiAgICAgYm9vbCBpc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKEpTU3RyaW5nUmVmIGhv
c3ROYW1lKTsKKyAgICB2b2lkIHNldFVzZUlUUERhdGFiYXNlKGJvb2wgdmFsdWUpOwogICAgIHZv
aWQgc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihKU1N0cmluZ1JlZiBo
b3N0TmFtZSwgSlNTdHJpbmdSZWYgdG9wRnJhbWVIb3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0
aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKEpTU3RyaW5nUmVmIGhvc3ROYW1l
LCBKU1N0cmluZ1JlZiB0b3BGcmFtZUhvc3ROYW1lKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NT
dWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oSlNTdHJpbmdSZWYgaG9zdE5hbWUsIEpTU3RyaW5n
UmVmIGhvc3ROYW1lUmVkaXJlY3RlZFRvKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKaW5kZXggOWE5MWY1ZDJmNDg2ODRlOGY1MWRhYzk1M2NjZmEwODJiMzY4MGM1
Mi4uM2NlNWM2OGYyMGEwZjJhNzFlOGFhMmFiOWM4OTQ2MmFiZjI1NjlhYiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTMzNTIsNiArMzM1MiwxMSBAQCBi
b29sIFRlc3RDb250cm9sbGVyOjppc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLU3RyaW5nUmVm
IGhvc3QpCiAgICAgcmV0dXJuIGNvbnRleHQucmVzdWx0OwogfQogCit2b2lkIFRlc3RDb250cm9s
bGVyOjpzZXRVc2VJVFBEYXRhYmFzZShib29sIHZhbHVlKQoreworICAgIFdLV2Vic2l0ZURhdGFT
dG9yZVNldFVzZUlUUERhdGFiYXNlKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCks
IHZhbHVlKTsKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc1N1YmZyYW1l
VW5kZXJUb3BGcmFtZU9yaWdpbihXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFt
ZUhvc3QpCiB7CiAgICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YmZyYW1lVW5k
ZXJUb3BGcmFtZU9yaWdpbihUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCBob3N0
LCB0b3BGcmFtZUhvc3QpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmlu
ZGV4IDgzN2U0YWIyY2IwZTY2MTcxY2RlZjQwYmRiMTQ4NmM2ZTBiZDcxNDguLjY3M2YyZGM4ODNl
OTQyNWEwZmE1OWI4MWFjYzhmMjMzOGM3NWExMGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgKQEAgLTIyMiw2ICsyMjIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1N0
YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oV0tTdHJpbmdSZWYgaG9zdE5hbWUpOwogICAg
IHZvaWQgc2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tTdHJpbmdSZWYgaG9zdE5hbWUsIGJv
b2wgdmFsdWUpOwogICAgIGJvb2wgaXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1N0cmluZ1Jl
ZiBob3N0TmFtZSk7CisgICAgdm9pZCBzZXRVc2VJVFBEYXRhYmFzZShib29sIHZhbHVlKTsKICAg
ICB2b2lkIHNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oV0tTdHJpbmdS
ZWYgaG9zdE5hbWUsIFdLU3RyaW5nUmVmIHRvcEZyYW1lSG9zdE5hbWUpOwogICAgIHZvaWQgc2V0
U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihXS1N0cmluZ1JlZiBob3N0
TmFtZSwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0
aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKFdLU3RyaW5nUmVmIGhvc3ROYW1lLCBXS1N0
cmluZ1JlZiBob3N0TmFtZVJlZGlyZWN0ZWRUbyk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uY3BwCmluZGV4IDYwN2U1YmJkYjRiMDU2ZWI2YjViNjRlYjAwMTdkYjgwNWMw
N2E5OTIuLjMwN2QyYWJkMWQ2MWI3YWYzZjE1Njc4OWEwODNjZWVlM2I0NDA1YzYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0xMjQxLDYgKzEyNDEsMTQg
QEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNo
cm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICAgICAgV0tSZXRhaW5QdHI8V0tUeXBlUmVm
PiByZXN1bHQgPSBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZShpc0dyYW5kZmF0aGVyZWQpKTsKICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CisKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9V
VEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFVzZUlUUERhdGFiYXNlIikpIHsKKyAgICAgICAg
QVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0Jvb2xlYW5HZXRUeXBlSUQoKSk7
CisKKyAgICAgICAgV0tCb29sZWFuUmVmIHZhbHVlID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVm
PihtZXNzYWdlQm9keSk7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRV
c2VJVFBEYXRhYmFzZShXS0Jvb2xlYW5HZXRWYWx1ZSh2YWx1ZSkpOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICB9CiAgICAgCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJp
bmcobWVzc2FnZU5hbWUsICJTZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lu
IikpIHsKICAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rp
b25hcnlHZXRUeXBlSUQoKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTdmNmE3OTMyMDEyODZhMTNmZGU5NWM3YTE4NzAw
Y2U2ZDllMjlmYS4uYWM2NmRmZjdmMjEzMmEyZWEwN2JhMjc4YmE2ZGMxYTVlM2M1Y2VhZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1OCBAQAorMjAxOS0wOS0xNiAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVf
Y2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgTGF5b3V0VGVzdHMgdXNpbmcgUmVz
b3VyY2VMb2FkU3RhdGlzdGljcyBTUUxpdGUgYmFja2VuZCAoMTk1NDIwKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1NDIwCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS81NDIxMzU1MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFbmFibGUgTGF5b3V0VGVzdHMgdXNpbmcgUmVzb3VyY2VMb2FkU3RhdGlz
dGljcyBTUUxpdGUgYmFja2VuZCAoMTk1NDIwKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1NDIwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NDIx
MzU1MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRlZCBhIGZsYWcgdG8gYWxsIElUUCB0ZXN0cyB0byBlbmFibGUgdGhlIElUUCBkYXRhYmFzZSBi
YWNrZW5kIHRvCisgICAgICAgIGFsbG93IGZvciB0ZXN0aW5nIGZ1bmN0aW9uYWxpdHkgYWdhaW5z
dCB0aGUgbWVtb3J5IHN0b3JlLiBUZXN0cyB3ZXJlCisgICAgICAgIG5vdCBjcmVhdGVkIGZvciB0
ZWxlbWV0cnktZ2VuZXJhdGlvbi5odG1sLAorICAgICAgICBsb2ctY3Jvc3Mtc2l0ZS1sb2FkLXdp
dGgtbGluay1kZWNvcmF0aW9uLmh0bWwsIG9yCisgICAgICAgIHdlYnNpdGUtZGF0YS1yZW1vdmFs
LWZvci1zaXRlLW5hdmlnYXRlZC10by13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sLAorICAgICAg
ICBiZWNhdXNlIHRoZXNlIHJlbHkgb24gZnVuY3Rpb25zIG5vdCB5ZXQgaW1wbGVtZW50ZWQgaW4g
dGhlIElUUCBkYXRhYmFzZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJs
b2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNjcmlw
dC1pbXBvcnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQt
aW1wb3J0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNl
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3Vy
Y2UtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtZGF0YWJhc2Uu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlv
bi1zYW1lLXNpdGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUt
c2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVk
LWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXBy
ZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNv
b2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNl
LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5r
LXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5
LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxp
ZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVu
dC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29y
YXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxp
ZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGhvdXQtbGluay1kZWNvcmF0aW9uLWZyb20t
cHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJh
c2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9u
LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lu
cy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1
Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9u
LXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1k
YXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJl
c291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24t
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJj
ZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJl
dmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVy
LXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNpb24t
ZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRp
cmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50
LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1v
cmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1z
dWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVu
aXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1v
bi10b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFi
YXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRv
LXByZXZhbGVudC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVl
LXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQt
b24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5LXBy
ZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1v
cnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5
LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNp
c3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFu
ZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0
YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdpdGgtYW5k
LXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdpdGgt
YW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nl
c3NpYmxlLWNvb2tpZXMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxl
LWNvb2tpZXMtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRp
cmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24t
cmVkaXJlY3QtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1jYXB0dXJlLXN0YXRpc3RpY3MtZm9yLXNpbXBsZS10
b3AtbmF2aWdhdGlvbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWNhcHR1cmUtc3RhdGlzdGlj
cy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9j
a2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5n
LWluLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlv
bi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1u
b3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRl
cmFjdGlvbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRo
LWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93
bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2
YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13
aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNv
dXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3Vy
Y2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxl
bnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFs
ZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29v
a2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24t
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2Uu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhv
c3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxo
b3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlm
cmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10
by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgt
bm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFi
YXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJh
bWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRi
b3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8t
bG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1p
ZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1p
cC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXBy
ZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZhbGVudC1yZXNv
dXJjZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9w
cmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJl
dmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVz
b3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1y
ZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJj
ZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxl
bnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZh
bGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1
bmUtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1p
cC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8t
bG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9j
YWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZy
YW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRv
LWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94
ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2Nh
bGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1k
YXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVk
LW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3Qt
dG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlm
cmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxv
Y2FsaG9zdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4tZGVidWct
bW9kZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1k
ZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVu
dC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXIt
dG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
dHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0
cy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVu
dC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdh
dGlvbi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0
Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRh
dGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRh
dGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQt
cGVyaW9kLW9mLXRpbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJl
cG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWlu
dGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92
YWwtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RFeHBl
Y3RhdGlvbnM6CisgICAgICAgIEFkZGVkIHRlc3QgZXhwZWN0YXRpb25zIHRvIHNraXAgZGF0YWJh
c2UgdGVzdHMgd2hpY2ggZG8gbm90IHdvcmsgaW4KKyAgICAgICAgaW9zIGJlY2F1c2Ugb2YgcmVs
aWFuY2Ugb24gRXZlbnRTZW5kZXIua2V5ZG93bigpIHdoaWNoIGlzIG5vdCAKKyAgICAgICAgc3Vw
cG9ydGVkIG9uIGlPUyBhbmQgYWxzbyB0aG9zZSB3aGljaCB1c2UgVUlIZWxwZXIuYWN0aXZhdGVB
dCgpIHdoaWNoCisgICAgICAgIGRvZXMgbm90IHByb2R1Y2UgYSB1c2VyIGdlc3R1cmUgY2FwdHVy
ZWQgYnkgSVRQIGluIGlPUy4KKwogMjAxOS0wOS0xMyAgUnVzc2VsbCBFcHN0ZWluICA8cmVwc3Rl
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDk3MDku
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8t
cmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmZWY5Y2QyNmU4NjFi
MGZkYjE0ZjVkYzBiMGExNjAwZjRlOGRhZDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGly
ZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYzIEBACitUZXN0cyB0aGF0IGJs
b2NraW5nIGlzIGFkZGVkIG1pZC1mbGlnaHQgaW4gcmVkaXJlY3RzLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0t
LS0KK1Nob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBu
YW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdw
YXJ0aXRpb25lZENvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFy
dHlDb29raWU9dmFsdWUKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMi0tPicKKy0tLS0t
LS0tCitSZWRpcmVjdCBjYXNlIDEsIHNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4K
K1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2Vp
dmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVu
dC5jb29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEt
LWZyYW1lMy0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLgorRGlkIG5v
dCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2Vp
dmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVu
dC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTQtLT4nCistLS0tLS0tLQor
UmVkaXJlY3QgY2FzZSAyLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWUuCitEaWQgbm90IHJlY2Vp
dmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29r
aWUgbmFtZWQgJ3BhcnRpdGlvbmVkQ29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tp
ZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNS0tPicKKy0tLS0tLS0tCitUcnkgdG8g
c2V0IHRoaXJkLXBhcnR5IGNvb2tpZSBpbiBibG9ja2VkIG1vZGUuCisKKworLS0tLS0tLS0KK0Zy
YW1lOiAnPCEtLWZyYW1lNi0tPicKKy0tLS0tLS0tCitBZnRlciBhdHRlbXB0ZWQgY29va2llIGNy
ZWF0aW9uLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWUuCitEaWQgbm90IHJlY2VpdmUgY29va2ll
IG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQg
J3BhcnRpdGlvbmVkQ29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0t
LS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNy0tPicKKy0tLS0tLS0tCitSZWRpcmVjdCBjYXNlIDMs
IGFmdGVyIGF0dGVtcHRlZCBjb29raWUgY3JlYXRpb24sIHNob3VsZCByZWNlaXZlIG5vIGNvb2tp
ZS4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlk
IG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9uZWRDb29raWUnLgorQ2xpZW50LXNp
ZGUgZG9jdW1lbnQuY29va2llOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1i
bG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxZDYzYTUxNjg3
OGEwODM4ZDI5OGU3NjNlMDNkMmViODQ2YTA5OWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJl
ZGlyZWN0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMDQgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAg
IDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBibG9ja2luZyBpcyBh
ZGRlZCBtaWQtZmxpZ2h0IGluIHJlZGlyZWN0cy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNv
bnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25z
dCByZXNvdXJjZVBhdGggPSAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAg
ICBjb25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyByZXNvdXJjZVBh
dGg7CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7
CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5w
aHA/bmFtZT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBj
b25zdCBwYXJ0aXRpb25lZENvb2tpZU5hbWUgPSAicGFydGl0aW9uZWRDb29raWUiOworICAgIGNv
bnN0IHN1YlBhdGhUb1NldFBhcnRpdGlvbmVkQ29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1l
PSIgKyBwYXJ0aXRpb25lZENvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCBy
ZXR1cm5VcmwgPSAiaHR0cDovLyIgKyBwYXJ0aXRpb25Ib3N0ICsgIi9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC5odG1sIjsKKyAgICBjb25zdCBzdWJQYXRo
VG9HZXRDb29raWVzID0gIi9nZXQtY29va2llcy5waHA/bmFtZTE9IiArIGZpcnN0UGFydHlDb29r
aWVOYW1lICsgIiZuYW1lMj0iICsgcGFydGl0aW9uZWRDb29raWVOYW1lOworICAgIGNvbnN0IHJl
ZGlyZWN0Q2hhaW5VcmwgPSAiaHR0cDovLyIgKyBwYXJ0aXRpb25Ib3N0ICsgcmVzb3VyY2VQYXRo
ICsgIi9yZWRpcmVjdC5waHA/cmVkaXJlY3RUbz0iICsgdGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQ
YXRoVG9HZXRDb29raWVzOworCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhh
bmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9h
ZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsK
KyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1l
bnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAg
ICAgICAgICAvLyBTZXQgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3QuCisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3Vi
UGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIHJldHVyblVybCArICIjc3RlcDIiOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAg
ICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBjb29raWUgZ2V0cyBzZW50IGZvciBsb2NhbGhv
c3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCBpcyBub3QgcHJldmFsZW50LgorICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAgICAg
ICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVz
ICsgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4iLCBydW5UZXN0
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6Cisg
ICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAg
ICAgICAgICAgLy8gTG9hZCBhbiBpZnJhbWUgaW4gYSByZWRpcmVjdCBjaGFpbiB0aGF0IHN0YXJ0
cyB3aXRoIDEyNy4wLjAuMSBhbmQgZW5kcyB3aXRoIGxvY2FsaG9zdC4gRXhwZWN0IGEgY29va2ll
IGZvciBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAgb3BlbklmcmFtZShyZWRpcmVjdENoYWlu
VXJsICsgIiZtZXNzYWdlPVJlZGlyZWN0IGNhc2UgMSwgc2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFy
dHkgY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICAvLyBTZXQgbG9jYWxob3N0IGFzIHBy
ZXZhbGVudCB0byBwdXQgaXQgaW4gdGhlIGJsb2NraW5nIGNhdGVnb3J5LgorICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4s
IHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA1IjoKKyAgICAg
ICAgICAgICAgICAvLyBDaGVjayB0aGF0IG5vIGNvb2tpZSBnZXRzIHNlbnQgZm9yIGxvY2FsaG9z
dCB1bmRlciAxMjcuMC4wLjEgc2luY2UgbG9jYWxob3N0J3MgY29va2llcyBhcmUgYmxvY2tlZC4K
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA2IjsKKyAgICAg
ICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29v
a2llcyArICAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4iLCBydW5UZXN0KTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNiI6CisgICAg
ICAgICAgICAgICAgLy8gTG9hZCBhbiBpZnJhbWUgaW4gYSByZWRpcmVjdCBjaGFpbiB0aGF0IHN0
YXJ0cyB3aXRoIDEyNy4wLjAuMSBhbmQgZW5kcyB3aXRoIGxvY2FsaG9zdC4gRXhwZWN0IG5vIGNv
b2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPSAic3RlcDciOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUocmVkaXJlY3RDaGFpblVy
bCArICImbWVzc2FnZT1SZWRpcmVjdCBjYXNlIDIsIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZS4i
LCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNz
dGVwNyI6CisgICAgICAgICAgICAgICAgLy8gVHJ5IHRvIHNldCBjb29raWUgZm9yIGxvY2FsaG9z
dCB1bmRlciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFz
aCA9ICJzdGVwOCI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVy
bCArIHN1YlBhdGhUb1NldFBhcnRpdGlvbmVkQ29va2llICsgIiZtZXNzYWdlPVRyeSB0byBzZXQg
dGhpcmQtcGFydHkgY29va2llIGluIGJsb2NrZWQgbW9kZS4iLCBydW5UZXN0KTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwOCI6CisgICAgICAgICAgICAg
ICAgLy8gQ2hlY2sgdGhhdCBubyBjb29raWUgZ2V0cyBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIg
MTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCdzIGNvb2tpZXMgYXJlIGJsb2NrZWQuCisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwOSI7CisgICAgICAgICAgICAg
ICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAg
IiZtZXNzYWdlPUFmdGVyIGF0dGVtcHRlZCBjb29raWUgY3JlYXRpb24sIHNob3VsZCByZWNlaXZl
IG5vIGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgIiNzdGVwOSI6CisgICAgICAgICAgICAgICAgLy8gTG9hZCBhbiBpZnJhbWUgaW4g
YSByZWRpcmVjdCBjaGFpbiB0aGF0IHN0YXJ0cyB3aXRoIDEyNy4wLjAuMSBhbmQgZW5kcyB3aXRo
IGxvY2FsaG9zdC4gRXhwZWN0IG5vIGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEwIjsKKyAgICAgICAgICAgICAgICBv
cGVuSWZyYW1lKHJlZGlyZWN0Q2hhaW5VcmwgKyAiJm1lc3NhZ2U9UmVkaXJlY3QgY2FzZSAzLCBh
ZnRlciBhdHRlbXB0ZWQgY29va2llIGNyZWF0aW9uLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWUu
IiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIj
c3RlcDEwIjoKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hK
U1Rlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAg
aWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiKSB7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwg
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiTG9jYWxob3N0IHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZSBiZWZv
cmUgdGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRG
cmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3Rl
cDEiOworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBydW5UZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
YmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2lu
Zy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjljYjc5OTQzZWQ4YjQ5YTg0MWJkMTI5YjNmNWFjYTZlMmEzYjIxYmMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
YmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE4IEBACitUZXN0IGZvciBjb29raWUgYmxvY2tpbmcgd2hlbiB3ZWIgd29y
a2VycyBpbXBvcnQgY3Jvc3Mtc2l0ZSBzY3JpcHRzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBEaWQgcmVjZWl2ZSBmaXJzdFBhcnR5Q29va2llID09IHZhbHVlCitQQVNT
IERpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgZmlyc3RQYXJ0eUNvb2tpZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKworLS0tLS0tLS0KK0Zy
YW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0
eSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xp
ZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tp
bmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtl
ci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmNjM2M3YTI5MjJkZTdj
YjI0NzZmY2QwMTQwMWU3OTlkODRkMDBlYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29ya2Vy
LXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDg4IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBk
ZXNjcmlwdGlvbigiVGVzdCBmb3IgY29va2llIGJsb2NraW5nIHdoZW4gd2ViIHdvcmtlcnMgaW1w
b3J0IGNyb3NzLXNpdGUgc2NyaXB0cy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
ICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRo
aXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCB0aGly
ZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBh
cnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9z
ZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9dmFs
dWUiOworICAgIGNvbnN0IHJldHVyblVybCA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQuaHRt
bCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMucGhwP25h
bWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZTsKKworICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUo
dXJsLCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAg
ICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9u
TG9hZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChlbGVtZW50KTsKKyAgICB9CisKKyAgICBsZXQgcmVjZWl2ZWRNZXNzYWdlcyA9IDA7CisgICAg
ZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgaWYgKGV2ZW50LmRhdGEu
aW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0
YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQ
YXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7CisKKyAgICAgICAgKytyZWNl
aXZlZE1lc3NhZ2VzOworICAgICAgICBpZiAocmVjZWl2ZWRNZXNzYWdlcyA+PSAyKQorICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgcnVuVGVzdCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAg
ICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVm
ID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llICsgIiMi
ICsgcmV0dXJuVXJsICsgIiNzdGVwMiI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPSAic3RlcDMiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VV
cmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIGZpcnN0
LXBhcnR5IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgbGV0IHcxID0gbmV3IFdvcmtlcigicmVz
b3VyY2VzL3dvcmtlci1pbXBvcnRpbmctbG9jYWxob3N0LXNjcmlwdC5qcyIpOworICAgICAgICAg
ICAgICAgIHcxLm9ubWVzc2FnZSA9IHJlY2VpdmVNZXNzYWdlOworICAgICAgICAgICAgICAgIHcx
LnBvc3RNZXNzYWdlKCJzaG91bGRSZWNlaXZlQ29va2llcz10cnVlIik7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4sIHRydWUs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Vw
ZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA1IjoKKyAgICAgICAgICAg
ICAgICBsZXQgdzIgPSBuZXcgV29ya2VyKCJyZXNvdXJjZXMvd29ya2VyLWltcG9ydGluZy1sb2Nh
bGhvc3Qtc2NyaXB0LmpzIik7CisgICAgICAgICAgICAgICAgdzIub25tZXNzYWdlID0gcmVjZWl2
ZU1lc3NhZ2U7CisgICAgICAgICAgICAgICAgdzIucG9zdE1lc3NhZ2UoInNob3VsZE5vdFJlY2Vp
dmVDb29raWVzIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gcGFydGl0aW9uSG9zdCAmJiBkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cu
aW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7
CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2FzIGNsYXNzaWZpZWQgYXMgcHJldmFsZW50
IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydHMuIik7CisgICAgICAgICAgICBydW5UZXN0
KCk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1mb3ItcHJl
dmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1mb3ItcHJldmFs
ZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2NlNWFhMWMz
NmE5NGQ1NTBiZGUyMjlhZGU0NDZmZjgzNTVjMWNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdl
LWZvci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTQgQEAKK1Rlc3RzIHRoYXQgY2FjaGUgbWF4LWFnZSBpcyBjYXBwZWQgZm9yIHByZXZhbGVudCBy
ZXNvdXJjZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGxvYWRlZFVy
bCBpcyAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3Vy
Y2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPTEyMzQiCitQQVNTIGxvYWRlZFVybCBpcyAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVl
cnkucGhwP3ZhbHVlPTQzMjEiCitQQVNTIGxvYWRlZFVybCBpcyAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVl
PSIKK1BBU1MgbG9hZGVkVXJsIGlzICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9IgorUEFTUyBsb2FkZWRV
cmwgaXMgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291
cmNlcy9lY2hvLXF1ZXJ5LnBocD92YWx1ZT0iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQt
cmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRh
dGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjY0YTQ1MThhODMzOTQ2MDkwNzMzMzczZjFmNjAyMTYz
YWFiOTMyYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNl
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
CisgICAgPHRpdGxlPlRlc3RzIGZvciBDYXBwZWQgQ2FjaGUgTWF4LUFnZTwvdGl0bGU+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgY2FjaGUg
bWF4LWFnZSBpcyBjYXBwZWQgZm9yIHByZXZhbGVudCByZXNvdXJjZXMuIik7CisgICAganNUZXN0
SXNBc3luYyA9IHRydWU7CisKKyAgICB2YXIgbG9hZGVkVXJsOworICAgIGZ1bmN0aW9uIGZpcnN0
RmV0Y2goKSB7CisgICAgICAgIC8vIFRoaXMgc2hvdWxkIGNyZWF0ZSBhIGNhcHBlZCBjYWNoZSBl
bnRyeS4KKyAgICAgICAgZmV0Y2goImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3Jlc291cmNlcy9jYWNoZWQtcGVybWFuZW50LXJlZGlyZWN0LnBocCIsCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgY2FjaGU6ICJyZWxvYWQiLAorICAgICAgICAgICAg
ICAgIGhlYWRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgIlgtV2ViS2l0IjogIjEyMzQiLAor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgKS50aGVuKGZ1bmN0aW9u
KHJlc3BvbnNlKSB7CisgICAgICAgICAgICBsb2FkZWRVcmwgPSByZXNwb25zZS51cmw7CisgICAg
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxvYWRlZFVybCIsICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/
dmFsdWU9MTIzNCIpOworICAgICAgICAgICAgc2Vjb25kRmV0Y2goKTsKKyAgICAgICAgfSkuY2F0
Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoZXJyb3IubWVzc2Fn
ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOwor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZWNvbmRGZXRjaCgpIHsKKyAgICAg
ICAgLy8gVGhpcyBzaG91bGQgbm90IHRyaWdnZXIgYSBzdWNjZXNzZnVsIGNhY2hlIGhpdCBhbmQg
aW5zdGVhZCBjcmVhdGUgYW5vdGhlciBjYXBwZWQgY2FjaGUgZW50cnkuCisgICAgICAgIGZldGNo
KCJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMv
Y2FjaGVkLXBlcm1hbmVudC1yZWRpcmVjdC5waHAiLAorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIGNhY2hlOiAiZm9yY2UtY2FjaGUiLAorICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsK
KyAgICAgICAgICAgICAgICAgICAgIlgtV2ViS2l0IjogIjQzMjEiLAorICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7Cisg
ICAgICAgICAgICBsb2FkZWRVcmwgPSByZXNwb25zZS51cmw7CisgICAgICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImxvYWRlZFVybCIsICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9NDMyMSIpOwor
ICAgICAgICAgICAgdGhpcmRGZXRjaCgpOworICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJv
cikgeworICAgICAgICAgICAgdGVzdEZhaWxlZChlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0pOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHRoaXJkRmV0Y2goKSB7CisgICAgICAgIC8vIFRoaXMgc2hvdWxk
IG5vdCB0cmlnZ2VyIGEgc3VjY2Vzc2Z1bCBjYWNoZSBoaXQgYW5kIGluc3RlYWQgY3JlYXRlIGFu
b3RoZXIgY2FwcGVkIGNhY2hlIGVudHJ5LgorICAgICAgICBmZXRjaCgiaHR0cDovL2xvY2FsaG9z
dDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2NhY2hlZC1wZXJtYW5lbnQt
cmVkaXJlY3QucGhwIiwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjYWNoZTogImZv
cmNlLWNhY2hlIiwKKyAgICAgICAgICAgIH0KKyAgICAgICAgKS50aGVuKGZ1bmN0aW9uKHJlc3Bv
bnNlKSB7CisgICAgICAgICAgICBsb2FkZWRVcmwgPSByZXNwb25zZS51cmw7CisgICAgICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxvYWRlZFVybCIsICJodHRwOi8vbG9jYWxob3N0Ojgw
MDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9
Iik7CisgICAgICAgICAgICBmb3VydGhGZXRjaCgpOworICAgICAgICB9KS5jYXRjaChmdW5jdGlv
bihlcnJvcikgeworICAgICAgICAgICAgdGVzdEZhaWxlZChlcnJvci5tZXNzYWdlKTsKKyAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0p
OworICAgIH0KKworICAgIGZ1bmN0aW9uIGZvdXJ0aEZldGNoKCkgeworICAgICAgICAvLyBUaGlz
IHNob3VsZCBub3QgdHJpZ2dlciBhIHN1Y2Nlc3NmdWwgY2FjaGUgaGl0IGJ1dCBjbGVhciBjYXBw
aW5nLgorICAgICAgICBmZXRjaCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcmVzb3VyY2VzL2NhY2hlZC1wZXJtYW5lbnQtcmVkaXJlY3QucGhwIiwKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICBjYWNoZTogImZvcmNlLWNhY2hlIiwKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBs
b2FkZWRVcmwgPSByZXNwb25zZS51cmw7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImxvYWRlZFVybCIsICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9Iik7CisgICAgICAgICAgICBmaWZ0
aEZldGNoKCk7CisgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgICAg
ICB0ZXN0RmFpbGVkKGVycm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gZmlmdGhGZXRjaCgpIHsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgdHJpZ2dlciBhIHJlZ3Vs
YXIsIHN1Y2Nlc3NmdWwgY2FjaGUgaGl0LgorICAgICAgICBmZXRjaCgiaHR0cDovL2xvY2FsaG9z
dDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2NhY2hlZC1wZXJtYW5lbnQt
cmVkaXJlY3QucGhwIiwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBoZWFkZXJzOiB7
CisgICAgICAgICAgICAgICAgICAgICJYLVdlYktpdCI6ICIxMjM0IiwKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9CisgICAgICAgICkudGhlbihmdW5jdGlvbihyZXNwb25zZSkgewor
ICAgICAgICAgICAgbG9hZGVkVXJsID0gcmVzcG9uc2UudXJsOworICAgICAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJsb2FkZWRVcmwiLCAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPSIpOworICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAg
fSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoZXJyb3Iu
bWVzc2FnZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rl
c3QpOworICAgICAgICB9KTsKKyAgICB9CisgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFz
ZSh0cnVlKTsKKyAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xv
Y2FsaG9zdCIpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IHdhcyBjbGFzc2lm
aWVkIGFzIHByZXZhbGVudCByZXNvdXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRlZC4iKTsKKwor
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NDYWNoZU1heEFnZUNhcCgwKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2Nh
bGhvc3QiLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKGZpcnN0RmV0Y2gpOworICAgICAgICB9KTsKKyAgICB9
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29v
a2llLXNldC1pbi1qcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0
LWluLWpzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ODQ2MjBkNmQzMzEyMTE2
NDUxYThhNTljODRiZTYxNzY0YzQ2ZTMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29v
a2llLXNldC1pbi1qcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorQ2hl
Y2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCB3aXRoIG1heC1hZ2Ugb3IgZXhw
aXJ5IGxvbmdlciB0aGFuIGEgd2VlayBnZXQgY2FwcGVkIHRvIGEgd2Vlay4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHR3byBzaG9ydC1saXZlZCBjb29raWVzIGRv
bid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gMTcyODMwIHNlY29uZHMuCitQQVNTIFRoZSB0d28g
bG9uZy1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gNjA0ODMwIHNl
Y29uZHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyZmZk
MDQxYWUzMmRlMjg2MDNiODE5MTAzMGNlOGEzMDVkMjYyNmIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0
aW1lLWZvci1jb29raWUtc2V0LWluLWpzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw4MyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9jb29r
aWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0
ZWQgYnkgSmF2YVNjcmlwdCB3aXRoIG1heC1hZ2Ugb3IgZXhwaXJ5IGxvbmdlciB0aGFuIGEgd2Vl
ayBnZXQgY2FwcGVkIHRvIGEgd2Vlay4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAg
ICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworCisgICAgaWYgKGludGVybmFs
cykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRy
dWUpOworCisgICAgbGV0IHBhc3NlZFRlc3RzID0gMDsKKyAgICBmdW5jdGlvbiBjaGVja1RoYXRD
b29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llRGF0YSwgbWF4QWdlSW5TZWNvbmRzKSB7Cisg
ICAgICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpOworICAgICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUlu
TWlsbGlzZWNvbmRzID0gbm93LmdldFRpbWUoKSArIChtYXhBZ2VJblNlY29uZHMgKiAxMDAwKTsK
KworICAgICAgICBpZiAobWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID4gY29va2llRGF0YVsi
ZXhwaXJlcyJdKQorICAgICAgICAgICAgKytwYXNzZWRUZXN0czsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5hbWVkICIgKyBjb29raWVEYXRhWyJuYW1lIl0g
KyAiIGV4cGlyZXMgaW4gbW9yZSB0aGFuICIgKyBtYXhBZ2VJblNlY29uZHMgKyAiIHNlY29uZHMu
Iik7CisgICAgfQorCisgICAgY29uc3QgdHdvRGF5c0luU2Vjb25kcyA9IDIgKiAyNCAqIDYwICog
NjA7CisgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJzaG9ydExp
dmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdvRGF5c0luU2Vjb25k
cyArICI7IiB9OworICAgIGRvY3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29raWVNYXhBZ2Uu
bmFtZSArICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIg
cGF0aD0vIjsKKworICAgIGNvbnN0IHR3b0RheXNBc0V4cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJl
c0RhdGVGcm9tTWF4QWdlKHR3b0RheXNJblNlY29uZHMpOworICAgIGNvbnN0IHNob3J0TGl2ZWRD
b29raWVFeHBpcmVzID0geyBuYW1lIDogInNob3J0TGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRp
bWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICBkb2N1
bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIg
KyBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgIGNv
bnN0IG9uZVdlZWtJblNlY29uZHMgPSA3ICogMjQgKiA2MCAqIDYwOworICAgIGNvbnN0IHR3b1dl
ZWtzSW5TZWNvbmRzID0gMiAqIG9uZVdlZWtJblNlY29uZHM7CisgICAgY29uc3QgbG9uZ0xpdmVk
Q29va2llTWF4QWdlID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1l
IDogIk1heC1BZ2U9IiArIHR3b1dlZWtzSW5TZWNvbmRzICsgIjsiIH07CisgICAgZG9jdW1lbnQu
Y29va2llID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdM
aXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgIGNvbnN0IHR3b1dl
ZWtzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d29XZWVrc0lu
U2Vjb25kcyk7CisgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJs
b25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvV2Vla3NB
c0V4cGlyZXNEYXRlICsgIjsiIH07CisgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29v
a2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxp
ZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgY29uc3Qgb3ZlclR3b0RheXNJblNlY29uZHMgPSB0
d29EYXlzSW5TZWNvbmRzICsgMzA7CisgICAgY29uc3Qgb3Zlck9uZVdlZWtJblNlY29uZHMgPSBv
bmVXZWVrSW5TZWNvbmRzICsgMzA7CisgICAgaWYgKGludGVybmFscykgeworICAgICAgICBsZXQg
Y29va2llcyA9IGludGVybmFscy5nZXRDb29raWVzKCk7CisgICAgICAgIGlmICghY29va2llcy5s
ZW5ndGgpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAg
ICAgICBmb3IgKGxldCBjb29raWUgb2YgY29va2llcykgeworICAgICAgICAgICAgc3dpdGNoIChj
b29raWUubmFtZSkgeworICAgICAgICAgICAgICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tpZU1heEFn
ZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJl
QWZ0ZXIoY29va2llLCBvdmVyVHdvRGF5c0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubmFt
ZToKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVy
KGNvb2tpZSwgb3ZlclR3b0RheXNJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAg
ICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2ll
LCBvdmVyT25lV2Vla0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAg
ICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVy
T25lV2Vla0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmVzZXRDb29raWVzRm9yQ3VycmVudE9yaWdpbigp
OworCisgICAgICAgIGlmIChwYXNzZWRUZXN0cyA9PT0gNCkgeworICAgICAgICAgICAgdGVzdFBh
c3NlZCgiVGhlIHR3byBzaG9ydC1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3Jl
IHRoYW4gIiArIG92ZXJUd29EYXlzSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFm
dGVyIG1vcmUgdGhhbiAiICsgb3Zlck9uZVdlZWtJblNlY29uZHMgKyAiIHNlY29uZHMuIik7Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiQXQgbGVhc3Qgb25lIGNvb2tp
ZSdzIGV4cGlyeSBhdHRyaWJ1dGUgd2FzIGJleW9uZCB0aGUgdGVzdCB0aHJlc2hvbGRzLiIpOwor
ICAgIH0gZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOwor
CisgICAgaWYgKGludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0
aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1k
YXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ5NTQ1YTAzNGQzYWYyNTkwYzk5MzM3
ZDIzMDVhOWJlZmRiYTQxMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQt
aW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACitDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2Ny
aXB0IGFmdGVyIGEgc2FtZS1zaXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIGRlY29yYXRpb24gZG9u
J3QgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZXhwaXJlIGFmdGVyIG1vcmUgdGhh
biA4NjQzMCBzZWNvbmRzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1s
aW5rLWRlY29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUt
c2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmVkMDk5OTFiM2ZhOGFjZDQ4MTk5YTg1MzIzNGQyNWFiMjg5MTVkYzAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0
aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsODYgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvY29va2llcy9yZXNvdXJj
ZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91
dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhh
dCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBhZnRlciBhIHNhbWUtc2l0ZSBuYXZpZ2F0
aW9uIHdpdGggbGluayBkZWNvcmF0aW9uIGRvbid0IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuIik7
CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29va2llcygp
IHsKKyAgICAgICAgbGV0IHBhc3NlZFRlc3RzID0gMDsKKworICAgICAgICBmdW5jdGlvbiBjaGVj
a1RoYXRDb29raWVEb2VzRXhwaXJlQWZ0ZXIoY29va2llRGF0YSwgbWF4QWdlSW5TZWNvbmRzKSB7
CisgICAgICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKKyAgICAgICAgICAgIGxldCBtYXhF
eHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPSBub3cuZ2V0VGltZSgpICsgKG1heEFnZUluU2Vjb25k
cyAqIDEwMDApOworCisgICAgICAgICAgICBpZiAobWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRz
IDwgY29va2llRGF0YVsiZXhwaXJlcyJdKQorICAgICAgICAgICAgICAgICsrcGFzc2VkVGVzdHM7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5h
bWVkICIgKyBjb29raWVEYXRhWyJuYW1lIl0gKyAiIGV4cGlyZXMgaW4gbGVzcyB0aGFuICIgKyBt
YXhBZ2VJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgIH0KKworICAgICAgICBjb25z
dCBvbmVEYXlJblNlY29uZHMgPSAyNCAqIDYwICogNjA7CisgICAgICAgIGNvbnN0IHR3b0RheXNJ
blNlY29uZHMgPSAyICogb25lRGF5SW5TZWNvbmRzOworICAgICAgICBjb25zdCBsb25nTGl2ZWRD
b29raWVNYXhBZ2UgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUg
OiAiTWF4LUFnZT0iICsgdHdvRGF5c0luU2Vjb25kcyArICI7IiB9OworICAgICAgICBkb2N1bWVu
dC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsgbG9u
Z0xpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0
IHR3b0RheXNBc0V4cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3b0Rh
eXNJblNlY29uZHMpOworICAgICAgICBjb25zdCBsb25nTGl2ZWRDb29raWVFeHBpcmVzID0geyBu
YW1lIDogImxvbmdMaXZlZENvb2tpZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0
d29EYXlzQXNFeHBpcmVzRGF0ZSArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBs
b25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tp
ZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3Qgb3Zlck9uZURh
eUluU2Vjb25kcyA9IG9uZURheUluU2Vjb25kcyArIDMwOworICAgICAgICBpZiAoaW50ZXJuYWxz
KSB7CisgICAgICAgICAgICBsZXQgY29va2llcyA9IGludGVybmFscy5nZXRDb29raWVzKCk7Cisg
ICAgICAgICAgICBpZiAoIWNvb2tpZXMubGVuZ3RoKQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIk5vIGNvb2tpZXMgZm91bmQuIik7CisgICAgICAgICAgICBmb3IgKGxldCBjb29raWUgb2Yg
Y29va2llcykgeworICAgICAgICAgICAgICAgIHN3aXRjaCAoY29va2llLm5hbWUpIHsKKyAgICAg
ICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNFeHBpcmVBZnRlcihjb29raWUsIG92
ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAg
ICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc0V4cGlyZUFmdGVyKGNvb2tpZSwg
b3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJlc2V0Q29va2ll
c0ZvckN1cnJlbnRPcmlnaW4oKTsKKworICAgICAgICAgICAgaWYgKHBhc3NlZFRlc3RzID09PSAy
KSB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBsb25nLWxpdmVkIGNvb2tp
ZXMgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3Zlck9uZURheUluU2Vjb25kcyArICIgc2Vj
b25kcy4iKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
IkF0IGxlYXN0IG9uZSBjb29raWUncyBleHBpcnkgYXR0cmlidXRlIHdhcyBiZWxvdyB0aGUgdGVz
dCB0aHJlc2hvbGRzLiIpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ik5vIGludGVybmFscyBvYmplY3QuIik7CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBuYXZpZ2F0ZUNyb3NzT3Jp
Z2luKCkgeworICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gcHJldmFsZW50UmVzb3Vy
Y2VPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1j
b29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS5odG1sP2xpbms9
ZGVjb3JhdGlvbiNmcmFnbWVudCI7CisgICAgfQorCisgICAgY29uc3QgZGVzdGluYXRpb25Pcmln
aW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCBwcmV2YWxlbnRSZXNvdXJj
ZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CisgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHByZXZhbGVudFJl
c291cmNlT3JpZ2luICYmIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggIT09ICIjZnJhZ21lbnQiKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVz
b3VyY2VPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAo
IXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3Vy
Y2VPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQg
bm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhuYXZpZ2F0ZUNyb3Nz
T3JpZ2luKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0Q29va2llcygpOworICAgICAgICB9CisgICAgfQor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUt
c2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRh
YmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1m
cmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjdiYWQwMzJjNmYyMjQ1NzNhMzM1ZDNmNzA0MTlkY2I0YmU0M2ExNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50
LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDExIEBACitDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEg
Y3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBmcmFnbWVudCBnZXQgY2FwcGVkIHRvIDI0
IGhvdXJzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgdHdvIHNo
b3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA0MzIzMCBzZWNv
bmRzLgorUEFTUyBUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIg
bW9yZSB0aGFuIDg2NDMwIHNlY29uZHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1q
cy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQt
bGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJl
dmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWM4NGZiODk0Zjk5YjMy
N2MxNzczZTIwMDdkYzEwZDkxYzJhODc5OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNv
b2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNl
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0
aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgp
JywgMCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNy
ZWF0ZWQgYnkgSmF2YVNjcmlwdCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxp
bmsgZnJhZ21lbnQgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKworICAgIGZ1bmN0aW9uIHRlc3RDb29raWVzKCkgeworICAgICAgICBsZXQgcGFz
c2VkVGVzdHMgPSAwOworICAgICAgICBmdW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzTm90RXhw
aXJlQWZ0ZXIoY29va2llRGF0YSwgbWF4QWdlSW5TZWNvbmRzKSB7CisgICAgICAgICAgICBsZXQg
bm93ID0gbmV3IERhdGUoKTsKKyAgICAgICAgICAgIGxldCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNl
Y29uZHMgPSBub3cuZ2V0VGltZSgpICsgKG1heEFnZUluU2Vjb25kcyAqIDEwMDApOworCisgICAg
ICAgICAgICBpZiAobWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID4gY29va2llRGF0YVsiZXhw
aXJlcyJdKQorICAgICAgICAgICAgICAgICsrcGFzc2VkVGVzdHM7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5hbWVkICIgKyBjb29raWVEYXRh
WyJuYW1lIl0gKyAiIGV4cGlyZXMgaW4gbW9yZSB0aGFuICIgKyBtYXhBZ2VJblNlY29uZHMgKyAi
IHNlY29uZHMuIik7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCB0d2VsdmVIb3Vyc0luU2Vj
b25kcyA9IDEyICogNjAgKiA2MDsKKyAgICAgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZU1heEFn
ZSA9IHsgbmFtZSA6ICJzaG9ydExpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFn
ZT0iICsgdHdlbHZlSG91cnNJblNlY29uZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29v
a2llID0gc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBzaG9ydExp
dmVkQ29va2llTWF4QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3
ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d2Vs
dmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVFeHBpcmVz
ID0geyBuYW1lIDogInNob3J0TGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJl
cz0iICsgdHdlbHZlSG91cnNBc0V4cGlyZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50
LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNo
b3J0TGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNv
bnN0IG9uZURheUluU2Vjb25kcyA9IDIgKiB0d2VsdmVIb3Vyc0luU2Vjb25kczsKKyAgICAgICAg
Y29uc3QgdHdvRGF5c0luU2Vjb25kcyA9IDIgKiBvbmVEYXlJblNlY29uZHM7CisgICAgICAgIGNv
bnN0IGxvbmdMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVNYXhB
Z2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d29EYXlzSW5TZWNvbmRzICsgIjsiIH07Cisg
ICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1m
b29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisK
KyAgICAgICAgY29uc3QgdHdvRGF5c0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZy
b21NYXhBZ2UodHdvRGF5c0luU2Vjb25kcyk7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tp
ZUV4cGlyZXMgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDog
IkV4cGlyZXM9IiArIHR3b0RheXNBc0V4cGlyZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3Vt
ZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsg
bG9uZ0xpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBj
b25zdCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMgPSB0d2VsdmVIb3Vyc0luU2Vjb25kcyArIDMw
OworICAgICAgICBjb25zdCBvdmVyT25lRGF5SW5TZWNvbmRzID0gb25lRGF5SW5TZWNvbmRzICsg
MzA7CisgICAgICAgIGlmIChpbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGxldCBjb29raWVzID0g
aW50ZXJuYWxzLmdldENvb2tpZXMoKTsKKyAgICAgICAgICAgIGlmICghY29va2llcy5sZW5ndGgp
CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gY29va2llcyBmb3VuZC4iKTsKKyAgICAg
ICAgICAgIGZvciAobGV0IGNvb2tpZSBvZiBjb29raWVzKSB7CisgICAgICAgICAgICAgICAgc3dp
dGNoIChjb29raWUubmFtZSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRD
b29raWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tp
ZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBz
aG9ydExpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hl
Y2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3ZWx2ZUhvdXJzSW5T
ZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
ICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAg
ICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURh
eUluU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAg
ICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVy
T25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVzZXRDb29raWVzRm9y
Q3VycmVudE9yaWdpbigpOworCisgICAgICAgICAgICBpZiAocGFzc2VkVGVzdHMgPT09IDQpIHsK
KyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMg
ZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRz
ICsgIiBzZWNvbmRzLiIpOworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gbG9u
Zy1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJPbmVE
YXlJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJpYnV0
ZSB3YXMgYmV5b25kIHRoZSB0ZXN0IHRocmVzaG9sZHMuIik7CisgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiTm8gaW50ZXJuYWxzIG9iamVjdC4iKTsKKworICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIG5hdmlnYXRlQ3Jvc3NPcmlnaW4oKSB7CisgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhy
ZWYgPSBkZXN0aW5hdGlvbk9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQt
bGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJl
dmFsZW50LXJlc291cmNlLmh0bWwjbGluaz1mcmFnbWVudCI7CisgICAgfQorCisgICAgY29uc3Qg
ZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCBw
cmV2YWxlbnRSZXNvdXJjZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4g
PT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVl
LCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4sIHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4pKQorICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJl
c291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRh
dGVDb29raWVCbG9ja2luZyhuYXZpZ2F0ZUNyb3NzT3JpZ2luKTsKKyAgICAgICAgICAgICAgICB9
KTsKKworICAgICAgICAgICAgfSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0
Q29va2llcygpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1h
bmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1s
aWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50
LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42ZTk4ZGM4ZjkwZTJkYTFiMTk4M2I0OGRjMTg2ZWFkN2E2OTY1ZDdhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBl
ZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdt
ZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDExIEBACitDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVy
IGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBxdWVyeSBhbmQgZnJhZ21lbnQgZ2V0
IGNhcHBlZCB0byAyNCBob3Vycy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgVGhlIHR3byBzaG9ydC1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRo
YW4gNDMyMzAgc2Vjb25kcy4KK1BBU1MgVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9uJ3Qg
ZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA4NjQzMCBzZWNvbmRzLgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNv
b2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVu
dC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRo
LWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzU5MWViNGU5NThmYjFiNTBkYjdmODIyYTIwMGVjY2M2NzM4MjQx
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5r
LXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1s
CkBAIC0wLDAgKzEsMTAxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAg
PHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iL2Nvb2tpZXMvcmVzb3VyY2VzL2Nvb2tpZS11dGlsaXRpZXMuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1blRlc3QoKScsIDApIj4KKzxzY3Jp
cHQ+CisgICAgZGVzY3JpcHRpb24oIkNoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFT
Y3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIHF1ZXJ5IGFuZCBm
cmFnbWVudCBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0
cnVlOworCisgICAgZnVuY3Rpb24gdGVzdENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRU
ZXN0cyA9IDA7CisgICAgICAgIGZ1bmN0aW9uIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVB
ZnRlcihjb29raWVEYXRhLCBtYXhBZ2VJblNlY29uZHMpIHsKKyAgICAgICAgICAgIGxldCBub3cg
PSBuZXcgRGF0ZSgpOworICAgICAgICAgICAgbGV0IG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25k
cyA9IG5vdy5nZXRUaW1lKCkgKyAobWF4QWdlSW5TZWNvbmRzICogMTAwMCk7CisKKyAgICAgICAg
ICAgIGlmIChtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPiBjb29raWVEYXRhWyJleHBpcmVz
Il0pCisgICAgICAgICAgICAgICAgKytwYXNzZWRUZXN0czsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgbmFtZWQgIiArIGNvb2tpZURhdGFbIm5h
bWUiXSArICIgZXhwaXJlcyBpbiBtb3JlIHRoYW4gIiArIG1heEFnZUluU2Vjb25kcyArICIgc2Vj
b25kcy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzSW5TZWNvbmRz
ID0gMTIgKiA2MCAqIDYwOworICAgICAgICBjb25zdCBzaG9ydExpdmVkQ29va2llTWF4QWdlID0g
eyBuYW1lIDogInNob3J0TGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIg
KyB0d2VsdmVIb3Vyc0luU2Vjb25kcyArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUg
PSBzaG9ydExpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRD
b29raWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdlbHZl
SG91cnNBc0V4cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3ZWx2ZUhv
dXJzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMgPSB7
IG5hbWUgOiAic2hvcnRMaXZlZENvb2tpZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIg
KyB0d2VsdmVIb3Vyc0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29v
a2llID0gc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgc2hvcnRM
aXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3Qg
b25lRGF5SW5TZWNvbmRzID0gMiAqIHR3ZWx2ZUhvdXJzSW5TZWNvbmRzOworICAgICAgICBjb25z
dCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIG9uZURheUluU2Vjb25kczsKKyAgICAgICAgY29uc3Qg
bG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZU1heEFnZSIs
IGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b0RheXNJblNlY29uZHMgKyAiOyIgfTsKKyAgICAg
ICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2Jh
cjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAg
ICAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1h
eEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llRXhw
aXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhw
aXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQu
Y29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25n
TGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0
IG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyA9IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgMzA7Cisg
ICAgICAgIGNvbnN0IG92ZXJPbmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMgKyAzMDsK
KyAgICAgICAgaWYgKGludGVybmFscykgeworICAgICAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRl
cm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAgICAg
ICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2gg
KGNvb2tpZS5uYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tp
ZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9l
c05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIHNob3J0
TGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1Ro
YXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdlbHZlSG91cnNJblNlY29u
ZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAg
IGNhc2UgbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAg
ICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5T
ZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
ICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVE
YXlJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXNldENvb2tpZXNGb3JDdXJy
ZW50T3JpZ2luKCk7CisKKyAgICAgICAgICAgIGlmIChwYXNzZWRUZXN0cyA9PT0gNCkgeworICAg
ICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBkb24n
dCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMgKyAi
IHNlY29uZHMuIik7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBsb25nLWxp
dmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3Zlck9uZURheUlu
U2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkF0IGxlYXN0IG9uZSBjb29raWUncyBleHBpcnkgYXR0cmlidXRlIHdh
cyBiZXlvbmQgdGhlIHRlc3QgdGhyZXNob2xkcy4iKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOworCisgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
bmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9
IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZy
b20tcHJldmFsZW50LXJlc291cmNlLmh0bWw/bGluaz1xdWVyeSNsaW5rPWZyYWdtZW50IjsKKyAg
ICB9CisKKyAgICBjb25zdCBkZXN0aW5hdGlvbk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0Ojgw
MDAiOworICAgIGNvbnN0IHByZXZhbGVudFJlc291cmNlT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50
LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4pIHsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdp
biwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikp
CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNl
dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOwor
ICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIHRlc3RDb29raWVzKCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMt
d2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBw
ZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJl
dmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDVkZDE2
YzJlZTAxMDgwZTNjMWYxYjQwMjA2YjY2YTgwMmUwYWMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGlt
ZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVz
b3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0NoZWNrIHRoYXQg
Y29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRp
b24gd2l0aCBsaW5rIHF1ZXJ5IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBkb24n
dCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDQzMjMwIHNlY29uZHMuCitQQVNTIFRoZSB0d28gbG9u
Zy1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gODY0MzAgc2Vjb25k
cy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9t
LXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1p
bi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44ODI2MjNkMWZjMzdmYzg2YjQzODdlNGFjYWVjMGUyNDg2YWU4MzM1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVl
cnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDEwMSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9j
b29raWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0
aW9uKCJDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgY3Jv
c3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBxdWVyeSBnZXQgY2FwcGVkIHRvIDI0IGhvdXJz
LiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rpb24gdGVzdENvb2tp
ZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7CisgICAgICAgIGZ1bmN0aW9uIGNo
ZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWVEYXRhLCBtYXhBZ2VJblNlY29u
ZHMpIHsKKyAgICAgICAgICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpOworICAgICAgICAgICAgbGV0
IG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA9IG5vdy5nZXRUaW1lKCkgKyAobWF4QWdlSW5T
ZWNvbmRzICogMTAwMCk7CisKKyAgICAgICAgICAgIGlmIChtYXhFeHBpcnlEYXRlSW5NaWxsaXNl
Y29uZHMgPiBjb29raWVEYXRhWyJleHBpcmVzIl0pCisgICAgICAgICAgICAgICAgKytwYXNzZWRU
ZXN0czsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29r
aWUgbmFtZWQgIiArIGNvb2tpZURhdGFbIm5hbWUiXSArICIgZXhwaXJlcyBpbiBtb3JlIHRoYW4g
IiArIG1heEFnZUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgfQorCisgICAgICAg
IGNvbnN0IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzID0gMTIgKiA2MCAqIDYwOworICAgICAgICBjb25z
dCBzaG9ydExpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogInNob3J0TGl2ZWRDb29raWVNYXhB
Z2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d2VsdmVIb3Vyc0luU2Vjb25kcyArICI7IiB9
OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29va2llTWF4QWdlLm5hbWUg
KyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9
LyI7CisKKyAgICAgICAgY29uc3QgdHdlbHZlSG91cnNBc0V4cGlyZXNEYXRlID0gY3JlYXRlRXhw
aXJlc0RhdGVGcm9tTWF4QWdlKHR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3Qg
c2hvcnRMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAic2hvcnRMaXZlZENvb2tpZUV4cGly
ZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d2VsdmVIb3Vyc0FzRXhwaXJlc0RhdGUgKyAi
OyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMu
bmFtZSArICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAi
IHBhdGg9LyI7CisKKyAgICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0gMiAqIHR3ZWx2ZUhv
dXJzSW5TZWNvbmRzOworICAgICAgICBjb25zdCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIG9uZURh
eUluU2Vjb25kczsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1l
IDogImxvbmdMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b0Rh
eXNJblNlY29uZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVk
Q29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5s
aWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0
ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICAg
ICAgY29uc3QgbG9uZ0xpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29r
aWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUg
KyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJl
cy5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsg
IiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyA9IHR3
ZWx2ZUhvdXJzSW5TZWNvbmRzICsgMzA7CisgICAgICAgIGNvbnN0IG92ZXJPbmVEYXlJblNlY29u
ZHMgPSBvbmVEYXlJblNlY29uZHMgKyAzMDsKKyAgICAgICAgaWYgKGludGVybmFscykgeworICAg
ICAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICAg
ICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBj
b29raWVzIGZvdW5kLiIpOworICAgICAgICAgICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMp
IHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAgICAgICAgICAg
ICAgICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAg
ICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3
ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAg
ICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29v
a2llLCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5h
bWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJl
QWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZUV4cGly
ZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RF
eHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAgICAgIGlm
IChwYXNzZWRUZXN0cyA9PT0gNCkgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0
d28gc2hvcnQtbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBv
dmVyVHdlbHZlSG91cnNJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICAgICAg
dGVzdFBhc3NlZCgiVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVy
IG1vcmUgdGhhbiAiICsgb3Zlck9uZURheUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkF0IGxlYXN0IG9uZSBj
b29raWUncyBleHBpcnkgYXR0cmlidXRlIHdhcyBiZXlvbmQgdGhlIHRlc3QgdGhyZXNob2xkcy4i
KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMg
b2JqZWN0LiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVz
dCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRo
LWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbD9saW5rPXF1ZXJ5IjsKKyAg
ICB9CisKKyAgICBjb25zdCBkZXN0aW5hdGlvbk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0Ojgw
MDAiOworICAgIGNvbnN0IHByZXZhbGVudFJlc291cmNlT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50
LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4pIHsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdp
biwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikp
CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNl
dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOwor
ICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIHRlc3RDb29raWVzKCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMt
d2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVj
b3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uM2JmNjQ5YTU3ZTEzNjRjMDYwNjQ1Njk0MTMwNDU0MTEzNzQ1ODMwMQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29y
YXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTAgQEAKK0NoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0
ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aG91dCBsaW5rIGRlY29yYXRpb24gZG9uJ3Qg
Z2V0IGNhcHBlZCB0byAyNCBob3Vycy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA4
NjQzMCBzZWNvbmRzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1s
aW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRp
bWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2
YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMmZlYWQ4YjQ1MDc4ZjFi
MGFmNTA3ODBmM2Y3ZDZiZDg5ZDgwYTcwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29v
a2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNv
dXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsODYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2ll
LXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGls
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVz
dCgpJywgMCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVz
IGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRo
b3V0IGxpbmsgZGVjb3JhdGlvbiBkb24ndCBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLiIpOworICAg
IGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rpb24gdGVzdENvb2tpZXMoKSB7Cisg
ICAgICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tUaGF0
Q29va2llRG9lc0V4cGlyZUFmdGVyKGNvb2tpZURhdGEsIG1heEFnZUluU2Vjb25kcykgeworICAg
ICAgICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7CisgICAgICAgICAgICBsZXQgbWF4RXhwaXJ5
RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93LmdldFRpbWUoKSArIChtYXhBZ2VJblNlY29uZHMgKiAx
MDAwKTsKKworICAgICAgICAgICAgaWYgKG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA8IGNv
b2tpZURhdGFbImV4cGlyZXMiXSkKKyAgICAgICAgICAgICAgICArK3Bhc3NlZFRlc3RzOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBuYW1lZCAi
ICsgY29va2llRGF0YVsibmFtZSJdICsgIiBleHBpcmVzIGluIGxlc3MgdGhhbiAiICsgbWF4QWdl
SW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3Qgb25l
RGF5SW5TZWNvbmRzID0gMjQgKiA2MCAqIDYwOworICAgICAgICBjb25zdCB0d29EYXlzSW5TZWNv
bmRzID0gMiAqIG9uZURheUluU2Vjb25kczsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2ll
TWF4QWdlID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1h
eC1BZ2U9IiArIHR3b0RheXNJblNlY29uZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29v
a2llID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZl
ZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCB0d29E
YXlzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5T
ZWNvbmRzKTsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6
ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5
c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xp
dmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBp
cmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG92ZXJPbmVEYXlJblNl
Y29uZHMgPSBvbmVEYXlJblNlY29uZHMgKyAzMDsKKyAgICAgICAgaWYgKGludGVybmFscykgewor
ICAgICAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAg
ICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJO
byBjb29raWVzIGZvdW5kLiIpOworICAgICAgICAgICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tp
ZXMpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAgICAgICAg
ICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAg
ICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzRXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25l
RGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNFeHBpcmVBZnRlcihjb29raWUsIG92ZXJP
bmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXNldENvb2tpZXNGb3JD
dXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAgICAgIGlmIChwYXNzZWRUZXN0cyA9PT0gMikgewor
ICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGV4
cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJPbmVEYXlJblNlY29uZHMgKyAiIHNlY29uZHMu
Iik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBdCBs
ZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJpYnV0ZSB3YXMgYmVsb3cgdGhlIHRlc3QgdGhy
ZXNob2xkcy4iKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBp
bnRlcm5hbHMgb2JqZWN0LiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdpbigp
IHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsg
Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1p
bi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1s
IjsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5hdGlvbk9yaWdpbiA9ICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiOworICAgIGNvbnN0IHByZXZhbGVudFJlc291cmNlT3JpZ2luID0gImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKGRv
Y3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4pIHsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJj
ZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9y
aWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3Qg
Z2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKG5hdmlnYXRlQ3Jvc3NPcmln
aW4pOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIHRlc3RDb29raWVzKCk7CisgICAgICAgIH0KKyAgICB9Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2Vk
LW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxl
bnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjBjMjU4YjhlMDA1ZDM1NTQxODJhZjA2ZDQ4MjU4M2FlNzdlNWExMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmll
ZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJh
c2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJh
c2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZTAzZmQ4
NzEyZWY5ZWRjOWIxODYyZjYzNmQxZTc0ZWE2ODhkODQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5v
bi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmlj
YXRpb24gQmFzZWQgb24gTWl4ZWQgU3RhdGlzdGljczwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9
Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsK
KyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIv
dGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAw
MC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4
MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40
OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwp
KQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBk
aWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRy
dWUpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdp
bjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRl
clRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8o
c3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVz
dCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNz
QW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50
LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYg
d2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNl
KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50
ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICBy
dW5UZXN0UnVubmVyVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1m
cmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2Vk
LW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjBjMjU4YjhlMDA1ZDM1NTQxODJhZjA2ZDQ4MjU4M2FlNzdlNWExMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRl
ci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBA
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1Mg
SG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFt
ZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJh
bWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODU0
MDkwOGVkODBkMTM0ZTczODA0OTZhMjc1MDVhZDAwNWM5N2JhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5z
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBs
YW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxl
PlRlc3RzIGZvciBDbGFzc2lmaWNhdGlvbiBCYXNlZCBvbiBTdWIgRnJhbWUgVW5kZXIgVG9wIEZy
YW1lIE9yaWdpbnM8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29u
c3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGlj
c1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRv
cEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3Qg
dG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25z
dCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworCisgICAg
ZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmll
ZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBy
dW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90
aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxz
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOwor
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJh
bWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0
aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1l
T3JpZ2luMyk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRT
Y2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworICAgICAgICAgICAgdGVzdFJ1
bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxl
dGVUZXN0KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRp
c3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9j
dW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5l
ciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0
YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAg
ICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAg
ICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRl
ci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVu
dC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBjMjU4YjhlMDA1ZDM1NTQxODJhZjA2ZDQ4MjU4M2Fl
NzdlNWExMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJl
c291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorUEFTUyBIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291
cmNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11
bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFz
ZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xNjExMjBhODU5MzEyMTE0MDcyZDQ3MjliMzZiYTBhMTc3ZjNkYzQxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXIt
dG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVU
Ri04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIENsYXNzaWZpY2F0aW9uIEJhc2VkIG9uIFN1YnJl
c291cmNlIFVuZGVyIFRvcCBGcmFtZSBPcmlnaW5zPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOwor
ICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90
ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAw
L3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgw
MDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQor
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNv
dXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBkaWQg
bm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICB0
ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0K
KworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUp
OworIAorICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFs
ZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NT
dWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmln
aW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5k
ZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworCisgICAg
ICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2Fs
bGJhY2soY29tcGxldGVUZXN0KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
UHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisK
KyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5k
b3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQo
dHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJy
ZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24t
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwYzI1OGI4ZTAwNWQzNTU0MTgyYWYwNmQ0ODI1
ODNhZTc3ZTVhMTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1z
dWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorUEFTUyBIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291
cmNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11
bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1v
bi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDc1OGNiMDZiNmUyYTlhZmZmYTJkNzQzZDNmZWIyYzBkYTU4ZTZlOQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVj
dHMtdG8tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDUxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8
dGl0bGU+VGVzdHMgZm9yIENsYXNzaWZpY2F0aW9uIEJhc2VkIG9uIFN1YnJlc291cmNlIFVuaXF1
ZSBSZWRpcmVjdHMgVG88L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAg
Y29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlz
dGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0
IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29u
c3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKworICAg
IGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZp
ZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIGludGVybmFscy5zZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3Rh
dGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgCisgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmws
IGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0
YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
aW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3Qp
OworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0Fu
ZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5s
b2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdp
bmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0
cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVu
VGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyZGQ2OWY5NDE5ZjUxOTg5NTdmMDkwOGRkNjc0
ZDY4NDM2Y2I5YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVk
LXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhvc3QgY2xh
c3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQt
YmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNl
ZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg5NzMxOWFi
MGZiMTAwMDU1YTkzNWQ0YTk1MmIyYWI5OTQ0ODMzNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEs
NjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1l
dGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24g
QmFzZWQgb24gTWl4ZWQgU3RhdGlzdGljczwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBj
b25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7
CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1w
IjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3Rl
bXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAv
dGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW40ID0gImh0dHA6Ly8xMjcuMC4wLjU6ODAw
MC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQor
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
VmVyeVByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZh
aWxlZCgiSG9zdCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFz
IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3Rp
Y3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1
blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3Rp
ZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworIAorICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxz
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOwor
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJh
bWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0
aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjQpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9w
RnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJl
c291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRv
cEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhz
dGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRv
cEZyYW1lT3JpZ2luMSk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3Rp
Y3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7
CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09
PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3Qo
KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1m
cmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmRkNjlmOTQx
OWY1MTk4OTU3ZjA5MDhkZDY3NGQ2ODQzNmNiOWM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZh
bGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVu
ZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9u
LXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdlYTc2MjAwZGEyZmZiMWEwMDU1YThhMTk4YWUyNzgzZTJlYjNmNTMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3Jp
Z2lucy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0
aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gU3ViIEZyYW1lIFVuZGVyIFRv
cCBGcmFtZSBPcmlnaW5zPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAg
IGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRp
c3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25z
dCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNv
bnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAg
Y29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAg
ICBjb25zdCB0b3BGcmFtZU9yaWdpbjQgPSAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiOwor
CisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJl
c291cmNlLiIpOworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0
IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOworCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9D
b25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5l
clRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hl
bkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBk
aWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0
YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9w
RnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZy
YW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1l
T3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21w
bGV0ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3Rh
dGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChk
b2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVu
bmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBE
YXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAg
ICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAg
ICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJl
Y3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
c3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lNGRkY2U1YjMxNGNkN2QyZDBkZWM0OGI2ZjlmOWUwZWNjYWI4MzA5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xs
dXNpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3RzIGZvciBj
bGFzc2lmaWNhdGlvbiBiYXNlZCBvbiBzdWJyZXNvdXJjZSByZWRpcmVjdCBjb2xsdXNpb24uCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIENvbGx1ZGluZyBob3N0IDEgZ290
IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBob3N0IDIgZ290IHNl
dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBob3N0IDMgZ290IHNldCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBob3N0IDQgZ290IHNldCBhcyBw
cmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBsb2NhbGhvc3QgZ290IHNldCBhcyBw
cmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgYWN0dWFsIHN1YiBmcmFtZSByZWRpcmVjdC4KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRh
YmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xs
dXNpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMWUwNDc3NDY5ZDQwMGJhYTU3NTc4ODI5
YWEyMTRlMmVkOGVkNmIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1z
dWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDcx
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRh
IGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRl
c3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiBzdWJyZXNvdXJjZSByZWRpcmVjdCBjb2xs
dXNpb24uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBob3N0VW5k
ZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0
dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3Qgc3VicmVzb3VyY2VP
cmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCBzdWJyZXNv
dXJjZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHN1
YnJlc291cmNlT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisgICAgY29u
c3Qgc3VicmVzb3VyY2VPcmlnaW40ID0gImh0dHA6Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIjsKKwor
ICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05v
dGlmeU9ic2VydmVyKCk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVz
b3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oc3RhdGlzdGljc1VybCwgc3VicmVzb3VyY2VPcmlnaW4x
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdEZyb20oc3VicmVzb3VyY2VPcmlnaW4xLCBzdWJyZXNvdXJjZU9yaWdpbjIpOworICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShz
dWJyZXNvdXJjZU9yaWdpbjIsIHN1YnJlc291cmNlT3JpZ2luMyk7CisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKHN1YnJlc291cmNl
T3JpZ2luMywgc3VicmVzb3VyY2VPcmlnaW40KTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGV4
cGxpY2l0eSBzZXQgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAg
ICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN1
YnJlc291cmNlT3JpZ2luMSkpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5n
IGhvc3QgMSBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJj
ZU9yaWdpbjEpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDEg
Z290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJj
ZU9yaWdpbjIpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDIg
Z290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4y
KSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCAyIGdvdCBjbGFz
c2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4z
KSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCAzIGdvdCBzZXQg
YXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luMykpCisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhvc3QgMyBnb3QgY2xhc3NpZmllZCBh
cyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luNCkpCisgICAg
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgNCBnb3Qgc2V0IGFzIHByZXZh
bGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjQpKQorICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDQgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBw
cmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikpCisgICAgICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGxvY2FsaG9zdCBnb3Qgc2V0IGFzIHByZXZh
bGVudCByZXNvdXJjZSBhZnRlciBhY3R1YWwgc3ViIGZyYW1lIHJlZGlyZWN0LiIpOworICAgICAg
ICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKCJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xs
dWRpbmcgbG9jYWxob3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNl
LiIpOworCisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9
PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxz
KSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2Us
IGZ1bmN0aW9uKCnCoHsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJj
ZS4iKTsKKyAgICAgICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQub25sb2Fk
ID0gcnVuVGVzdDsKKyAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8v
bG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3Qu
cGhwP3JlZGlyZWN0VG89aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvb25jbGljay5odG1sIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGlmcmFtZUVsZW1lbnQpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0K
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNl
ZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxl
bnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4ZmNiZDhkOGY2ZDA1ZmM0OTRk
NGVlZGRjZDljYjVlYmRkZTBjMzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHN1
YnJlc291cmNlIHJlZGlyZWN0IHRvIG90aGVyIHByZXZhbGVudC4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJj
ZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXBy
ZXZhbGVudC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1y
ZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NmE3Mzg5NTMy
NzcyMjhjNmVmNTY5MWJmNzAzNTc5Mzk5ZDI0NjZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZh
bGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2Uu
aHRtbApAQCAtMCwwICsxLDUxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4K
KzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cisg
ICAgZGVzY3JpcHRpb24oIlRlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiBzdWJyZXNv
dXJjZSByZWRpcmVjdCB0byBvdGhlciBwcmV2YWxlbnQuIik7CisgICAganNUZXN0SXNBc3luYyA9
IHRydWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAg
ICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVt
cCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90
ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZh
bGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZSBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQg
YXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFs
c2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVP
cmlnaW4xLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbjEpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlk
U2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAg
ICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RV
bmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAg
ICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3Rh
dGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICh0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24t
cHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9w
LWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1v
bi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzJkZDY5Zjk0MTlmNTE5ODk1N2YwOTA4ZGQ2NzRkNjg0MzZjYjljNwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXIt
dG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhv
c3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJh
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1l
LW9yaWdpbnMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDAxZWE2YmMyNDkzNzU5MmYwZTg5
Njc2MTVjOTljNWM4ZGMzZmE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1v
bi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmlj
YXRpb24gQmFzZWQgb24gU3VicmVzb3VyY2UgVW5kZXIgVG9wIEZyYW1lIE9yaWdpbnM8L3RpdGxl
PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9
ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiAr
IGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJo
dHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0g
Imh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMg
PSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2lu
NCA9ICJodHRwOi8vMTI3LjAuMC41OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21wbGV0
ZVRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlk
IG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZ290IGNsYXNzaWZpZWQgYXMgdmVy
eSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAg
ICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5l
ZCh0cnVlKTsKKyAKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkp
CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9u
LXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZy
YW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNv
dXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BG
cmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0
YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
aW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3Qp
OworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0Fu
ZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5s
b2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdp
bmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0
cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVu
VGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0
cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291
cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjMyZGQ2OWY5NDE5ZjUxOTg5NTdmMDkwOGRkNjc0ZDY4NDM2Y2I5YzcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8t
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBw
cmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3Vi
cmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1i
YXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzhmN2YxMzkxYzYyMWRlODY2ZTFiZDIzYjAxYmRhMzMyZDBkOWYzNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGly
ZWN0cy10by1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAg
IDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gU3VicmVzb3VyY2UgVW5p
cXVlIFJlZGlyZWN0cyBUbzwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAg
ICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0
aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29u
c3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBj
b25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAg
IGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7Cisg
ICAgY29uc3QgdG9wRnJhbWVPcmlnaW40ID0gImh0dHA6Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIjsK
KworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRv
Q29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5u
ZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1do
ZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworIAorICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0
IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8o
c3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0
b3BGcmFtZU9yaWdpbjIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJl
ZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW40KTsKKworICAgICAgICAgICAg
dGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNv
bXBsZXRlVGVzdCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NT
dGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYg
KGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RS
dW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwor
ICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJl
Y3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
dG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZmQzOTM4Yjc2Yzk3NDRjM2FmYTdiMjU1MDVlYWViNDlkODY2YjUyMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lv
bi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMgZm9yIGNsYXNz
aWZpY2F0aW9uIGJhc2VkIG9uIHRvcCBmcmFtZSByZWRpcmVjdCBjb2xsdXNpb24uCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIENvbGx1ZGluZyBob3N0IDEgZ290IHNldCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBob3N0IDIgZ290IHNldCBhcyBw
cmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBob3N0IDMgZ290IHNldCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBob3N0IDQgZ290IHNldCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBsb2NhbGhvc3QgZ290IHNldCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UgYWZ0ZXIgYWN0dWFsIG5hdmlnYXRpb25hbCByZWRpcmVjdC4KK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1k
YXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxZGEwMDBlOWNmYWE3MWE2ODU1MTcyOTRkMmVkYmUw
ZGZlMGE0NDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFt
ZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDcxIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9
IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZvciBj
bGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0b3AgZnJhbWUgcmVkaXJlY3QgY29sbHVzaW9uLiIpOwor
ICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIx
MjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhv
c3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRw
Oi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0
dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAi
aHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luNCA9
ICJodHRwOi8vMTI3LjAuMC41OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW41
ID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC8iOworCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZy
b20oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20odG9wRnJhbWVPcmlnaW4xLCB0
b3BGcmFtZU9yaWdpbjIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0RnJvbSh0b3BGcmFtZU9yaWdpbjIsIHRvcEZyYW1lT3JpZ2luMyk7Cisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9t
KHRvcEZyYW1lT3JpZ2luMywgdG9wRnJhbWVPcmlnaW40KTsKKworICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IGV4cGxpY2l0eSBzZXQgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHRvcEZyYW1lT3JpZ2luMSkpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVk
aW5nIGhvc3QgMSBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAg
IGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFt
ZU9yaWdpbjEpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDEg
Z290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9y
aWdpbjIpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDIgZ290
IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4yKSkKKyAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCAyIGdvdCBjbGFzc2lmaWVk
IGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4zKSkKKyAgICAg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCAzIGdvdCBzZXQgYXMgcHJldmFs
ZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
VmVyeVByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMykpCisgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhvc3QgMyBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZh
bGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luNCkpCisgICAgICAgICAgICAgICAgdGVz
dFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgNCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRS
ZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjQpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNv
bGx1ZGluZyBob3N0IDQgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSh0b3BGcmFtZU9yaWdpbjUpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1
ZGluZyBsb2NhbGhvc3QgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgYWN0dWFs
IG5hdmlnYXRpb25hbCByZWRpcmVjdC4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjUpKQorICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBsb2NhbGhvc3QgZ290IGNsYXNzaWZpZWQg
YXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlm
IChkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3
aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2Uo
dHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5o
cmVmID0gdG9wRnJhbWVPcmlnaW41ICsgInJlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2Vz
L3JlZGlyZWN0LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVk
aXJlY3QtY29sbHVzaW9uLmh0bWwjY29udGludWUiOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9i
c2VydmVyKCk7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGly
ZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjU5Zjk5NTMzODI4MGYzMTViMjIwMDNmMDA4MmQwODE0ODQ3ZTlhYjMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10
by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3Rz
IGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0b3AgZnJhbWUgcmVkaXJlY3QgdG8gb3RoZXIg
cHJldmFsZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBIb3N0IGNs
YXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZh
bGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOGU4YjAxZDE3OGMzMjM5ZWIwZDE2NTg0N2RmYTI3ZDFkNjdkNzBkNgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0
LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgi
PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgZm9yIGNsYXNzaWZp
Y2F0aW9uIGJhc2VkIG9uIHRvcCBmcmFtZSByZWRpcmVjdCB0byBvdGhlciBwcmV2YWxlbnQuIik7
CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0g
IjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsg
aG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0
dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgp
IHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdl
dCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZSBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1Vy
bCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkg
cHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4xLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhzdGF0
aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmlu
c3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0
YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0
aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93
LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUp
OworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJl
U2Nhbm5lZCh0cnVlKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAg
IHJ1blRlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9w
LWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZh
bGVudC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ5MWJmOTYwMzM1NzA5Yzk5MWRmMWZmZDMyNDI4YmRiYWU4
MDZmOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVu
aXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAK
K1Rlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0b3AgZnJhbWUgdW5pcXVlIHJlZGly
ZWN0cyB0by4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgSG9zdCBjbGFz
c2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9u
LXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50
LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNWM0YzdlZTVmNmMzZmVhNjU2MTNmODU4MzYyN2E0Yzk4NTAzMTVkYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVj
dHMtdG8tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBi
YXNlZCBvbiB0b3AgZnJhbWUgdW5pcXVlIHJlZGlyZWN0cyB0by4iKTsKKyAgICBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAi
OworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsg
Ii90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4
MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4z
OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4w
LjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjQgPSAiaHR0cDovLzEyNy4w
LjAuNTo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAg
ICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZp
ZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291
cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNz
aWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVj
dFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BG
cmFtZU9yaWdpbjIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVu
aXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3Rh
dGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAg
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3Jkcygp
OworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJU
ZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZh
bGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRh
YmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlz
dGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjBmMDMxZGNhNWQwYzk2MDhm
NGQ4ZjVhZjg5OWExNmU5ZWY1MWM1OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVu
dC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEwIEBACitUZXN0IGZvciBjbGFzc2lmaWNhdGlvbiBhcyB2ZXJ5IHByZXZhbGVudCBiYXNl
ZCBvbiBtaXhlZCBzdGF0aXN0aWNzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LXZlcnktcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYWIwNmZhMjA5ZWRiYjZmMTE4OGFmZjdkMTYwNjMwNDAyN2FiYjE3ZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNz
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBs
YW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlw
dCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IGZvciBjbGFzc2lmaWNhdGlvbiBhcyB2ZXJ5
IHByZXZhbGVudCBiYXNlZCBvbiBtaXhlZCBzdGF0aXN0aWNzLiIpOworICAgIGpzVGVzdElzQXN5
bmMgPSB0cnVlOworCisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7
CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAi
L3RlbXAiOworICAgIHZhciB0b3BGcmFtZU9yaWdpbnMgPSBbXTsKKyAgICBjb25zdCBzdGFydE51
bSA9IDI7CisgICAgY29uc3QgbnVtYmVyT2ZTdWJyZXNvdXJjZURvbWFpbnMgPSAzMDsKKyAgICBm
b3IgKHZhciBpID0gc3RhcnROdW07IGkgPCBudW1iZXJPZlN1YnJlc291cmNlRG9tYWlucyArIHN0
YXJ0TnVtOyArK2kpCisgICAgICAgIHRvcEZyYW1lT3JpZ2lucy5wdXNoKCJodHRwOi8vMTI3LjAu
MC4iICsgaSArICI6ODAwMC90ZW1wIikKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsK
KyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBj
bGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgaWYgKCF0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyB2ZXJ5
IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBh
c3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworCisg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7Cisg
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRp
c3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qgc3RhcnRlZCBvdXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworCisgICAgICAgICAgICB2YXIgaSA9IDA7CisgICAgICAgICAgICB3aGlsZSAoaSA8IG51
bWJlck9mU3VicmVzb3VyY2VEb21haW5zKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRv
cEZyYW1lT3JpZ2luc1tpXSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1l
T3JpZ2luc1tpXSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tp
XSk7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVu
ZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2krMV0pOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJU
b3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaSsxXSk7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpKzFdKTsKKworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdp
bihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaSsyXSk7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0
YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpKzJdKTsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGlj
c1VybCwgdG9wRnJhbWVPcmlnaW5zW2krMl0pOworICAgICAgICAgICAgICAgIGkgKz0gMzsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0Rp
ZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0
VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZSh0cnVlLCBydW5UZXN0UnVubmVyVGVzdCk7CisgICAgfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhZTAwMzNmZmNjYWVjMjYzYTk2ZjJiM2Q3ODNlZGNm
NzA0MDgzZDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyBjbGVhcmluZyBvZiB3
ZWJzaXRlIGRhdGEgc3RvcmUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIEhvc3QgaXMgbm8g
bG9uZ2VyIGEgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIHRoZSBzdG9yZSB3YXMgY2xlYXJlZC4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xl
YXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFu
ZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjE3ZWJhYmFkOTE3
YWFkNDk5MDMzODFlYTM1MjNlMjA2MmJhZWIwYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5k
LXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY3IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVU
Ri04Ij4KKyAgICA8dGl0bGU+VGVzdCBDbGVhcmVkIFN0b3JlPC90aXRsZT4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGNsZWFyaW5nIG9mIHdlYnNpdGUgZGF0YSBz
dG9yZS4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRl
clRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0
cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdp
bjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3Jp
Z2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVP
cmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIHRl
c3RTdGVwMigpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNs
YXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc0NsZWFySW5NZW1v
cnlBbmRQZXJzaXN0ZW50U3RvcmUoY29tcGxldGVUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBpcyBzdGlsbCBhIHByZXZhbGVudCByZXNvdXJjZSBhZnRlciB0aGUgc3RvcmUgd2FzIGNs
ZWFyZWQuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgaXMg
bm8gbG9uZ2VyIGEgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIHRoZSBzdG9yZSB3YXMgY2xlYXJl
ZC4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVk
KHRydWUpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1w
cmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9y
aWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VV
bmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmln
aW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3Jp
Z2luMik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVu
aXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdp
bihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2sodGVzdFN0ZXAy
KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NB
bmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQu
bG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3
aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2Uo
dHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAg
ICAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0
b3JlLW9uZS1ob3VyLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQt
c3RvcmUtb25lLWhvdXItZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3Zjk5OWM2
ZmViMzI2NWRlZmYzOTUxYWMyZjgxNDBhYzFhNmVlZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5
LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDExIEBACitUZXN0cyBjbGVhcmluZyBvZiB3ZWJzaXRlIGRhdGEgc3RvcmUgKG9uZSBo
b3VyKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgSG9zdCBjbGFzc2lm
aWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1MgSG9zdCBpcyBubyBsb25nZXIgYSBwcmV2
YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgdGhlIHN0b3JlIHdhcyBjbGVhcmVkLgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnkt
YW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBl
cnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYzE1ZWM4
Zjk5YWEzZTM1ZGVjNTY5MmVlNjc2Mjk3ZWQ2NGYyZjliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9y
eS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEs
NjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1l
dGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT48L3RpdGxlPgorICAgIDxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgY2xlYXJpbmcgb2Ygd2Vic2l0ZSBkYXRhIHN0b3Jl
IChvbmUgaG91cikuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBo
b3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJs
ID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJh
bWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BG
cmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRv
cEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisKKyAgICBmdW5j
dGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBpcyBzdGlsbCBhIHByZXZhbGVudCByZXNvdXJjZSBhZnRlciB0aGUgc3RvcmUgd2Fz
IGNsZWFyZWQuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3Qg
aXMgbm8gbG9uZ2VyIGEgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIHRoZSBzdG9yZSB3YXMgY2xl
YXJlZC4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RTdGVwMigpIHsKKyAgICAgICAgaWYgKHRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAg
ICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3Qg
Z2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHRlc3RS
dW5uZXIuc3RhdGlzdGljc0NsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmVNb2RpZmllZFNp
bmNlSG91cnMoMSwgY29tcGxldGVUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0
UnVubmVyVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFn
ZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVu
Y3Rpb24oKSB7fSk7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBk
aWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlz
dGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3Jp
Z2luMSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJU
b3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3Rh
dGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1l
T3JpZ2luMik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3Rh
dGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKworICAgICAgICB0ZXN0UnVubmVyLmluc3Rh
bGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2sodGVzdFN0ZXAyKTsKKworICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRz
KCk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRl
clRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAg
ICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0
KCk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nv
b2tpZS1kZWxldGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9uLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44YjNmY2ZhMDQ5MzgzNzk5NjJkY2Q3YTdiZGE0Mzk1NTAyMmVj
MmU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1NSBAQAorVGVzdCBmb3IgcGFydGl0aW9uZWQgYW5kIHVucGFydGl0aW9uZWQgY29va2ll
IGRlbGV0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgIAorCistLS0tLS0tLQorRnJh
bWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5
IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQg
bm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRl
IGRvY3VtZW50LmNvb2tpZTogZmlyc3RQYXJ0eUNvb2tpZT12YWx1ZQorCistLS0tLS0tLQorRnJh
bWU6ICc8IS0tZnJhbWUyLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMu
CitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBu
b3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUg
ZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUzLS0+JworLS0t
LS0tLS0KK1RyeSB0byBzZXQgdGhpcmQgcGFydHkgY29va2llLgorCisKKy0tLS0tLS0tCitGcmFt
ZTogJzwhLS1mcmFtZTQtLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4K
K0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlkIG5v
dCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBk
b2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTUtLT4nCistLS0t
LS0tLQorQWZ0ZXIgcmVtb3ZhbCwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3Qg
cmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZl
IGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5j
b29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTYtLT4nCistLS0tLS0tLQorQWZ0
ZXIgZGVjbGFzc2lmaWVkLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNl
aXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29v
a2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tp
ZToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lODM0ZTg3MzA4YTAzOGQ0MjQ2MmIxMjExMmU0ZWJjMTQ1NTlkZWU2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTE2IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9
IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgZm9yIHBh
cnRpdGlvbmVkIGFuZCB1bnBhcnRpdGlvbmVkIGNvb2tpZSBkZWxldGlvbi4iKTsKKyAgICBqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4x
OjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyAi
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5
Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRG
aXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29v
a2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHRoaXJkUGFydHlDb29raWVOYW1l
ID0gInRoaXJkUGFydHlDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldFRoaXJkUGFydHlD
b29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIHRoaXJkUGFydHlDb29raWVOYW1lICsg
IiZ2YWx1ZT12YWx1ZSI7CisgICAgY29uc3QgZnJhZ21lbnRXaXRoUmV0dXJuVXJsID0gImh0dHA6
Ly8iICsgcGFydGl0aW9uSG9zdCArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVs
ZXRpb24uaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0LWNvb2tp
ZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImbmFtZTI9IiArIHRoaXJk
UGFydHlDb29raWVOYW1lOworCisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQu
c3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxl
bWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisKKyAgICBmdW5jdGlvbiBmaXJl
RGF0YU1vZGlmaWNhdGlvbkhhbmRsZXJBbmRDb250aW51ZSgpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgc2V0VGltZW91dChydW5UZXN0LCA1MDApOworICAgICAgICB9KTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3Jk
cygpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNldEFzTm9uUHJldmFsZW50QW5kQ29udGludWUo
KSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRo
aXJkUGFydHlPcmlnaW4sIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qgc3RpbGwgc2V0IGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tp
ZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBy
dW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAg
ICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgLy8gU2V0IGZpcnN0LXBh
cnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0
aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29r
aWUgKyAiIyIgKyBmcmFnbWVudFdpdGhSZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAg
Ly8gQ2hlY2sgdGhhdCB0aGUgdGhpcmQtcGFydHkgaGFzIGFjY2VzcyB0byBpdHMgZmlyc3QtcGFy
dHkgY29va2llcy4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0
ZXAzIjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3Vi
UGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBj
b29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlICIjc3RlcDMiOgorICAgICAgICAgICAgICAgIC8vIENsYXNzaWZ5IGxvY2FsaG9zdCBhcyBw
cmV2YWxlbnQuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVw
NCI7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGly
ZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
ZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcocnVuVGVzdCk7
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIHRoaXJk
LXBhcnR5IG5vIGxvbmdlciBoYXMgYWNjZXNzIHRvIGl0cyBmaXJzdC1wYXJ0eSBjb29raWVzLgor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAg
ICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29r
aWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwgcnVuVGVzdCk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDUiOgorICAgICAg
ICAgICAgICAgIC8vIFRyeSBzZXR0aW5nIGEgY29va2llIGFzIHRoaXJkLXBhcnR5LgorICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDYiOworICAgICAgICAgICAg
ICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRUaGlyZFBhcnR5
Q29va2llICsgIiZtZXNzYWdlPVRyeSB0byBzZXQgdGhpcmQgcGFydHkgY29va2llLiIsIHJ1blRl
c3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA2IjoK
KyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSB0aGlyZC1wYXJ0eSBzdGlsbCBoYXMg
bm8gYWNjZXNzIHRvIGNvb2tpZXMgYW5kIHRoZW4gZmlyZSBkYXRhIHJlY29yZCByZW1vdmFsLgor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDciOworICAgICAg
ICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29r
aWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwgZmlyZURhdGFNb2Rp
ZmljYXRpb25IYW5kbGVyQW5kQ29udGludWUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSAiI3N0ZXA3IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRo
ZSB0aGlyZC1wYXJ0eSBzdGlsbCBoYXMgbm8gYWNjZXNzIHRvIGNvb2tpZXMgYW5kIHRoZW4gZGVj
bGFzc2lmeSBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFz
aCA9ICJzdGVwOCI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVy
bCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9QWZ0ZXIgcmVtb3ZhbCwgc2hvdWxk
IHJlY2VpdmUgbm8gY29va2llcy4iLCBzZXRBc05vblByZXZhbGVudEFuZENvbnRpbnVlKTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwOCI6CisgICAgICAg
ICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgdGhpcmQtcGFydHkgc3RpbGwgaGFzIG5vIGFjY2Vz
cyB0byBjb29raWVzLgorICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VV
cmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPUFmdGVyIGRlY2xhc3NpZmllZCwg
c2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4iLCBmaW5pc2hUZXN0KTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5o
b3N0ID09PSBwYXJ0aXRpb25Ib3N0ICYmIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiICYm
IHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0
cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1No
b3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFS
ZWNvcmRzUmVtb3ZhbCgwKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFt
ZXNBc1RleHQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEi
OworCisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIHJ1blRlc3QoKTsKKyAgICB9CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
b29raWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNWQxMDkyZWZkZWVlNDZmYWM2ZTM2YWMwNzZkODE0ZDJiYmU1Yzdi
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jb29raWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRh
YmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0t
ZnJhbWUxLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4K
K1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBk
b2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUKKworLS0tLS0tLS0KK0ZyYW1l
OiAnPCEtLWZyYW1lMi0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLgor
RGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQt
c2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTMtLT4n
CistLS0tLS0tLQorQWZ0ZXIgdXNlciBpbnRlcmFjdGlvbiwgc2hvdWxkIHN0aWxsIHJlY2VpdmUg
bm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29r
aWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0
aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXIt
aW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzdhMzljNzNlOWYxNWM2NjUw
YTE3NmIzZWM5MThjMWI1ZmY2NWJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11
c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw4NCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYt
OCI+CisgICAgPHRpdGxlPlRlc3QgZm9yIFBhcnRpdGlvbmVkIENvb2tpZXMgV2l0aCBhbmQgV2l0
aG91dCBVc2VyIEludGVyYWN0aW9uPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29u
c3QgcGFydGl0aW9uSG9zdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0
eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlC
YXNlVXJsID0gdGhpcmRQYXJ0eU9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNv
dXJjZXMiOworICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVOYW1lID0gImZpcnN0UGFydHlDb29r
aWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgPSAiL3NldC1jb29r
aWUucGhwP25hbWU9IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT12YWx1ZSI7Cisg
ICAgY29uc3QgZnJhZ21lbnRXaXRoUmV0dXJuVXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVy
YWN0aW9uLmh0bWwiOworICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tpZXMgPSAiL2dldC1jb29r
aWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWU7CisKKyAgICBmdW5jdGlvbiBm
aW5pc2hUZXN0KCkgeworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAg
ICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Cisg
ICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgewor
ICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9Cisg
ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gc2V0VXNlckludGVyYWN0aW9uQW5kQ29udGludWUoKSB7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5T3JpZ2lu
LCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiVGhpcmQgcGFydHkgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2Vy
IGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50
LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0
aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIGZyYWdtZW50V2l0aFJldHVyblVybCArICIj
c3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAy
IjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAg
ICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0
Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwg
cnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3Rl
cDMiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDQiOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0
eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0
ZXA1IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3Vi
UGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLiIs
IHNldFVzZXJJbnRlcmFjdGlvbkFuZENvbnRpbnVlKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgIiNzdGVwNSI6CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0
aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9QWZ0ZXIg
dXNlciBpbnRlcmFjdGlvbiwgc2hvdWxkIHN0aWxsIHJlY2VpdmUgbm8gY29va2llcy4iLCBmaW5p
c2hUZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAg
IGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBwYXJ0aXRpb25Ib3N0ICYmIGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggPT0gIiIgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVy
bmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGls
ZEZyYW1lc0FzVGV4dCgpOworICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJz
dGVwMSI7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJM
b2NhbGhvc3Qgd2FzIGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUg
dGVzdCBzdGFydHMuIik7CisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAg
IH0gZWxzZSB7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUtY29va2llcy1kYXRhYmFzZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
ZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNvb2tpZXMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjYzNDA3ZGNmM2VkZWViNjBlYzk2NDkyODUwMTQ1MWEwNTE5Mjg0NzgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNvb2tpZXMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTQgQEAKK0NoZWNrIHRoYXQgb25seSBIdHRwT25seSBjb29raWVzIHJlbWFp
biBpZiBhbGwgc2NyaXB0LWFjY2Vzc2libGUgY29va2llcyBhcmUgZGVsZXRlZC4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgQmVmb3JlIHNjcmlwdC1hY2Nlc3NpYmxlIGRl
bGV0aW9uOiBDbGllbnQtc2lkZSBjb29raWUgZXhpc3RzLgorUEFTUyBCZWZvcmUgc2NyaXB0LWFj
Y2Vzc2libGUgZGVsZXRpb246IEh0dHBPbmx5IGNvb2tpZSBleGlzdHMuCitQQVNTIEJlZm9yZSBz
Y3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogUmVndWxhciBzZXJ2ZXItc2lkZSBjb29raWUgZXhp
c3RzLgorUEFTUyBBZnRlciBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogIEh0dHBPbmx5IGNv
b2tpZSBleGlzdHMuCitQQVNTIEFmdGVyIGZ1bGwgZGVsZXRpb246ICAgICAgICAgICAgICAgQWxs
IGNvb2tpZXMgYXJlIGdvbmUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVs
ZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNvb2tpZXMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
MGZjNTM3N2Q3ZGVlNjA0Mjk5MGJlMGMyZGJmYjc0NWFlMDVjZDU5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1z
Y3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw3MyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IG9ubHkg
SHR0cE9ubHkgY29va2llcyByZW1haW4gaWYgYWxsIHNjcmlwdC1hY2Nlc3NpYmxlIGNvb2tpZXMg
YXJlIGRlbGV0ZWQuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBo
dHRwT25seUNvb2tpZU5hbWUgPSAiaHR0cC1vbmx5LWNvb2tpZSI7CisgICAgY29uc3Qgc2VydmVy
U2lkZUNvb2tpZU5hbWUgPSAic2VydmVyLXNpZGUtY29va2llIjsKKyAgICBjb25zdCBjbGllbnRT
aWRlQ29va2llTmFtZSA9ICJjbGllbnQtc2lkZS1jb29raWUiOworCisgICAgZnVuY3Rpb24gc29y
dFN0cmluZ0FycmF5KGEsIGIpIHsKKyAgICAgICAgYSA9IGEudG9Mb3dlckNhc2UoKTsKKyAgICAg
ICAgYiA9IGIudG9Mb3dlckNhc2UoKTsKKworICAgICAgICByZXR1cm4gYSA+IGIgPyAxIDogYiA+
IGEgPyAtMSA6IDA7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2hlY2tDb29raWVzKGlzQWZ0ZXJT
Y3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24pIHsKKyAgICAgICAgbGV0IHVuc29ydGVkVGVzdFBhc3Nl
ZE1lc3NhZ2VzID0gW107CisgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tp
ZXMoKTsKKyAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoKGlzQWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24gPyAiQWZ0ZXIiIDogIkJlZm9yZSIp
ICsgIiBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogTm8gY29va2llcyBmb3VuZC4iKTsKKyAg
ICAgICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAgIHN3aXRjaCAo
Y29va2llLm5hbWUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIGh0dHBPbmx5Q29va2llTmFtZToK
KyAgICAgICAgICAgICAgICAgICAgdW5zb3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMucHVzaCgoaXNB
ZnRlclNjcmlwdEFjY2Vzc2libGVEZWxldGlvbiA/ICJBZnRlciIgOiAiQmVmb3JlIikgKyAiIHNj
cmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiAiICsgKGlzQWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVs
ZXRpb24gPyAiICIgOiAiIikgKyAiSHR0cE9ubHkgY29va2llIGV4aXN0cy4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBzZXJ2ZXJTaWRlQ29va2ll
TmFtZToKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzQWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVs
ZXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBZnRlciBzY3JpcHQt
YWNjZXNzaWJsZSBkZWxldGlvbjogIFJlZ3VsYXIgc2VydmVyLXNpZGUgY29va2llIGV4aXN0cy4i
KTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgdW5z
b3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMucHVzaCgiQmVmb3JlIHNjcmlwdC1hY2Nlc3NpYmxlIGRl
bGV0aW9uOiBSZWd1bGFyIHNlcnZlci1zaWRlIGNvb2tpZSBleGlzdHMuIik7CisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgY2xpZW50U2lkZUNvb2tpZU5h
bWU6CisgICAgICAgICAgICAgICAgICAgIGlmIChpc0FmdGVyU2NyaXB0QWNjZXNzaWJsZURlbGV0
aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQWZ0ZXIgc2NyaXB0LWFj
Y2Vzc2libGUgZGVsZXRpb246ICBDbGllbnQtc2lkZSBjb29raWUgZXhpc3RzLiIpOworICAgICAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB1bnNvcnRlZFRlc3RQ
YXNzZWRNZXNzYWdlcy5wdXNoKCJCZWZvcmUgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246IENs
aWVudC1zaWRlIGNvb2tpZSBleGlzdHMuIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGxldCBzb3J0ZWRUZXN0UGFzc2VkTWVz
c2FnZXMgPSB1bnNvcnRlZFRlc3RQYXNzZWRNZXNzYWdlcy5zb3J0KHNvcnRTdHJpbmdBcnJheSk7
CisgICAgICAgIGZvciAobGV0IHRlc3RQYXNzZWRNZXNzYWdlIG9mIHNvcnRlZFRlc3RQYXNzZWRN
ZXNzYWdlcykKKyAgICAgICAgICAgIHRlc3RQYXNzZWQodGVzdFBhc3NlZE1lc3NhZ2UpOworICAg
IH0KKworICAgIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1
bm5lciB8fCAhaW50ZXJuYWxzKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyB0ZXN0UnVu
bmVyIG9yIG5vIGludGVybmFscy4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBhd2Fp
dCBmZXRjaCgiL2Nvb2tpZXMvcmVzb3VyY2VzL3NldC1odHRwLW9ubHktY29va2llLnBocD9jb29r
aWVOYW1lPSIgKyBodHRwT25seUNvb2tpZU5hbWUsIHsgY3JlZGVudGlhbHM6ICJzYW1lLW9yaWdp
biIgfSk7CisgICAgICAgIGF3YWl0IGZldGNoKCIvY29va2llcy9yZXNvdXJjZXMvc2V0Q29va2ll
cy5jZ2kiLCB7IGhlYWRlcnM6IHsgIlNldC1Db29raWUiOiBzZXJ2ZXJTaWRlQ29va2llTmFtZSAr
ICI9MTsgcGF0aD0vOyIgfSwgY3JlZGVudGlhbHM6ICJzYW1lLW9yaWdpbiIgfSk7CisgICAgICAg
IGRvY3VtZW50LmNvb2tpZSA9IGNsaWVudFNpZGVDb29raWVOYW1lICsgIj0xIjsKKyAgICAgICAg
Y2hlY2tDb29raWVzKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzRGVsZXRl
Q29va2llc0Zvckhvc3QoImh0dHA6Ly8xMjcuMC4wLjEiLCBmYWxzZSk7CisgICAgICAgIGNoZWNr
Q29va2llcyh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzRGVsZXRlQ29va2ll
c0Zvckhvc3QoImh0dHA6Ly8xMjcuMC4wLjEiLCB0cnVlKTsKKyAgICAgICAgbGV0IGNvb2tpZXNM
ZWZ0ID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKS5sZW5ndGg7CisgICAgICAgIGlmIChjb29raWVz
TGVmdCA9PT0gMCkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkFmdGVyIGZ1bGwgZGVsZXRpb246
ICAgICAgICAgICAgICAgQWxsIGNvb2tpZXMgYXJlIGdvbmUuIik7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkFmdGVyIGZ1bGwgZGVsZXRpb246ICAgICAgICAgICAgICAi
ICsgY29va2llc0xlZnQgKyAiIGNvb2tpZShzKSBsZWZ0LiIpOworICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2st
dG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10
b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRpcmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzc0MzA2MWZmMTE5ZmFkM2Y1OTdkYzE1YWUwNGI0YjhjNjkzNzk0OAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9k
by1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1NFRDogQ29va2llIHN1Y2Nlc3NmdWxseSBzZXQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9k
by1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxv
Y2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kMjE5ZTNkNjg5MzJiZmYxOGM1YTAxYzU2ODRjNDRmMzcxNmZkZTgxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5v
dC1ibG9jay10b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
YmxvY2tpbmcgaXMgbm90IGFwcGxpZWQgdG8gdG9wLWxldmVsIG5hdmlnYXRpb24gcmVkaXJlY3Rz
LiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgaW50ZXJuYWxzLnNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworCisgICAgZnVuY3Rpb24gZG9SZWRpcmVj
dCgpCisgICAgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOwor
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxo
b3N0IiwgdHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9ICJodHRwOi8vbG9jYWxob3N0Ojgw
MDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvc2V0LWNvb2tpZS1vbi1yZWRpcmVj
dC5waHA/c3RlcD0xIjsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgnZG9SZWRpcmVjdCgpJywg
MCkiPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1jYXB0dXJlLXN0YXRpc3RpY3MtZm9yLXNp
bXBsZS10b3AtbmF2aWdhdGlvbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1jYXB0dXJlLXN0YXRpc3Rp
Y3MtZm9yLXNpbXBsZS10b3AtbmF2aWdhdGlvbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjA2OWM5MWNhZTZlYWEzYmRjYzg0NjBjNjMzN2IwMmY3ZDY0ZjI0ZmQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
ZG8tbm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy1kYXRh
YmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCB0aGF0IGEgbm9uLXJlZGly
ZWN0ZWQgdG9wIGZyYW1lIG5hdmlnYXRpb24gZG9lc24ndCBnZXQgY2FwdHVyZWQgaW4gc3RhdGlz
dGljcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0Iiwg
Imh0dHA6Ly8xMjcuMC4wLjEiKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xv
Y2FsaG9zdCIpIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1jYXB0dXJlLXN0YXRpc3RpY3MtZm9yLXNpbXBsZS10b3At
bmF2aWdhdGlvbnMtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNzLWZvci1zaW1wbGUtdG9w
LW5hdmlnYXRpb25zLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjgwOTM1YTIzNzBlZGJkNzY5
MjUxMzE5YmFjOTQ0ZjcyOGJjNzZlNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNz
LWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw0OSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBj
aGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0
IHRoYXQgYSBub24tcmVkaXJlY3RlZCB0b3AgZnJhbWUgbmF2aWdhdGlvbiBkb2Vzbid0IGdldCBj
YXB0dXJlZCBpbiBzdGF0aXN0aWNzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAg
IHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgbGV0IHRpbWVySGFuZGxl
ID0gMDsKKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIGlmICh0aW1lckhh
bmRsZSkKKyAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXJIYW5kbGUpOworCisgICAgICAgIHNo
b3VsZEJlRmFsc2UoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVV
bmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAg
c2hvdWxkQmVGYWxzZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFt
ZVVuZGVyKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaG9z
dCkgeworICAgICAgICAgICAgY2FzZSAiMTI3LjAuMC4xOjgwMDAiOgorICAgICAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9j
YWxob3N0OjgwMDAiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2Fs
aG9zdCB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0
IHN0YXJ0cy4iKTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2Fw
dHVyZS1zdGF0aXN0aWNzLWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLmh0bWwiOworICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAi
bG9jYWxob3N0OjgwMDAiOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxi
YWNrKGZpbmlzaFRlc3QpOworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5zdGF0aXN0
aWNzTm90aWZ5T2JzZXJ2ZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgdGltZXJIYW5kbGUgPSBz
ZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDEwMCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlVua25vd24gaG9z
dDogIiArIGRvY3VtZW50LmxvY2F0aW9uLmhvc3QpOworICAgICAgICAgICAgICAgIGZpbmlzaFRl
c3QoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3
aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBydW5UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0LWRhdGFiYXNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9kby1ub3QtcmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xYWQ3ZDllNTAwNzZiNmQxNmJiYzI2YTUwNDZlOTk2OTZkNmUwNzY4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNTEgQEAKK1Rlc3RzIHRoYXQgYmxvY2tpbmcgaXMgbm90IHJlbW92
ZWQgbWlkLWZsaWdodCBpbiByZWRpcmVjdHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAg
CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorU2hvdWxkIHJl
Y2VpdmUgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3QuCitEaWQgbm90IHJlY2VpdmUg
Y29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llSVAnLgorUmVjZWl2ZWQgY29va2llIG5hbWVk
ICdmaXJzdFBhcnR5Q29va2llTG9jYWxob3N0Jy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFt
ZWQgJ3RoaXJkUGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJz
dFBhcnR5Q29va2llTG9jYWxob3N0PWxvY2FsaG9zdAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0t
ZnJhbWUyLS0+JworLS0tLS0tLS0KK1JlZGlyZWN0IGNhc2UgMSwgc2hvdWxkIHJlY2VpdmUgZmly
c3QtcGFydHkgY29va2llIGZvciAxMjcuMC4wLjEuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2Zp
cnN0UGFydHlDb29raWVJUCcuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBh
cnR5Q29va2llTG9jYWxob3N0Jy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJk
UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29v
a2llSVA9MTI3LjAuMC4xCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTMtLT4nCistLS0t
LS0tLQorVHJ5IHRvIHNldCB0aGlyZC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdCBpbiBibG9j
a2VkIG1vZGUuCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNC0tPicKKy0tLS0tLS0t
CitTaG91bGQgcmVjZWl2ZSBubyBjb29raWUuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVk
ICdmaXJzdFBhcnR5Q29va2llSVAnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmly
c3RQYXJ0eUNvb2tpZUxvY2FsaG9zdCcuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0
aGlyZFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0t
LS0KK0ZyYW1lOiAnPCEtLWZyYW1lNS0tPicKKy0tLS0tLS0tCitSZWRpcmVjdCBjYXNlIDIsIHNo
b3VsZCBub3QgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIDEyNy4wLjAuMS4KK0RpZCBu
b3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWVJUCcuCitEaWQgbm90IHJl
Y2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llTG9jYWxob3N0Jy4KK0RpZCBub3Qg
cmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9j
dW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llSVA9MTI3LjAuMC4xCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92
ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVk
aXJlY3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNmQzMGFhZGVmNDU3N2I4NTI0MjNjNmEy
MzZmM2FhMzcxOWYxMDJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJl
Y3QtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDEwMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGJsb2NraW5nIGlzIG5vdCBy
ZW1vdmVkIG1pZC1mbGlnaHQgaW4gcmVkaXJlY3RzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0
cnVlOworCisgICAgY29uc3QgcGFydGl0aW9uSG9zdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAg
Y29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNv
bnN0IHJlc291cmNlUGF0aCA9ICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMiOwor
ICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0eU9yaWdpbiArIHJlc291cmNl
UGF0aDsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZVByZWZpeCA9ICJmaXJzdFBhcnR5
Q29va2llIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZUlQID0gZmlyc3RQYXJ0eUNv
b2tpZU5hbWVQcmVmaXggKyAiSVAiOworICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVOYW1lTG9j
YWxob3N0ID0gZmlyc3RQYXJ0eUNvb2tpZU5hbWVQcmVmaXggKyAiTG9jYWxob3N0IjsKKyAgICBj
b25zdCB0aGlyZFBhcnR5Q29va2llTmFtZSA9ICJ0aGlyZFBhcnR5Q29va2llIjsKKyAgICBjb25z
dCBzdWJQYXRoVG9TZXRUaGlyZFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIg
KyB0aGlyZFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHN1YlBh
dGhUb0dldENvb2tpZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNv
b2tpZU5hbWVJUCArICImbmFtZTI9IiArIGZpcnN0UGFydHlDb29raWVOYW1lTG9jYWxob3N0ICsg
IiZuYW1lMz0iICsgdGhpcmRQYXJ0eUNvb2tpZU5hbWU7CisgICAgY29uc3QgcmVkaXJlY3RDaGFp
blVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyByZXNvdXJjZVBhdGggKyAiL3JlZGlyZWN0LnBocD9y
ZWRpcmVjdFRvPWh0dHA6Ly8iICsgcGFydGl0aW9uSG9zdCArIHJlc291cmNlUGF0aCArIHN1YlBh
dGhUb0dldENvb2tpZXM7CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFu
ZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
aWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2Fk
SGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOwor
ICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1bWVu
dC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAg
ICAgICAgIC8vIFNldCBmaXJzdC1wYXJ0eSBjb29raWVzIGZvciAxMjcuMC4wLjEgYW5kIGxvY2Fs
aG9zdC4KKyAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luID09PSB0
aGlyZFBhcnR5T3JpZ2luKSB7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9
IGZpcnN0UGFydHlDb29raWVOYW1lTG9jYWxob3N0ICsgIj1sb2NhbGhvc3Q7cGF0aD0nLyciOwor
ICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmct
aW4tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbCNzdGVwMiI7CisgICAgICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gZmlyc3RQYXJ0eUNvb2tp
ZU5hbWVJUCArICI9MTI3LjAuMC4xO3BhdGg9Jy8nIjsKKyAgICAgICAgICAgICAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaHJlZiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0LWRhdGFiYXNlLmh0
bWwjc3RlcDEiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0
aGUgY29va2llIGdldHMgc2VudCBmb3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMSBzaW5jZSBs
b2NhbGhvc3QgaXMgbm90IHByZXZhbGVudC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2Nh
dGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFy
dHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2
ZSBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdC4iLCBydW5UZXN0KTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgLy8g
TG9hZCBhbiBpZnJhbWUgaW4gYSByZWRpcmVjdCBjaGFpbiB0aGF0IHN0YXJ0cyB3aXRoIGxvY2Fs
aG9zdCBhbmQgZW5kcyB3aXRoIDEyNy4wLjAuMS4gRXhwZWN0IGEgY29va2llIGZvciAxMjcuMC4w
LjEuCisgICAgICAgICAgICAgICAgb3BlbklmcmFtZShyZWRpcmVjdENoYWluVXJsICsgIiZtZXNz
YWdlPVJlZGlyZWN0IGNhc2UgMSwgc2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llIGZv
ciAxMjcuMC4wLjEuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAgIC8vIFNldCBsb2NhbGhvc3QgYXMg
cHJldmFsZW50IHRvIHB1dCBpdCBpbiB0aGUgYmxvY2tpbmcgY2F0ZWdvcnkuCisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNSI7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdp
biwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0
aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcocnVuVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDUiOgorICAg
ICAgICAgICAgICAgIC8vIFRyeSB0byBzZXQgcGFydGl0aW9uZWQgY29va2llIGZvciBsb2NhbGhv
c3QgdW5kZXIgMTI3LjAuMC4xLgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPSAic3RlcDYiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VV
cmwgKyBzdWJQYXRoVG9TZXRUaGlyZFBhcnR5Q29va2llICsgIiZtZXNzYWdlPVRyeSB0byBzZXQg
dGhpcmQtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3QgaW4gYmxvY2tlZCBtb2RlLiIsIHJ1blRl
c3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA2IjoK
KyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IG5vIGNvb2tpZSBnZXRzIHNlbnQgZm9yIGxv
Y2FsaG9zdCB1bmRlciAxMjcuMC4wLjEgc2luY2UgbG9jYWxob3N0J3MgY29va2llcyBhcmUgYmxv
Y2tlZC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA3IjsK
KyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRv
R2V0Q29va2llcyArICAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgbm8gY29va2llLiIsIHJ1blRl
c3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA3IjoK
KyAgICAgICAgICAgICAgICAvLyBMb2FkIGFuIGlmcmFtZSBpbiBhIHJlZGlyZWN0IGNoYWluIHRo
YXQgc3RhcnRzIHdpdGggbG9jYWxob3N0IGFuZCBlbmRzIHdpdGggMTI3LjAuMC4xLiBFeHBlY3Qg
YSBjb29raWUgZm9yIDEyNy4wLjAuMS4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlv
bi5oYXNoID0gInN0ZXA4IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHJlZGlyZWN0Q2hh
aW5VcmwgKyAiJm1lc3NhZ2U9UmVkaXJlY3QgY2FzZSAyLCBzaG91bGQgbm90IHJlY2VpdmUgZmly
c3QtcGFydHkgY29va2llIGZvciAxMjcuMC4wLjEuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDgiOgorICAgICAgICAgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9
PT0gIiIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmln
aW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3YXMgY2xhc3NpZmll
ZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0cy4iKTsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICBk
b2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsK
KyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcnVuVGVzdCgpOworICAgIH0KKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZp
Z2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1u
b3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRl
cmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA1ZGMwOWI2OTYzOWYx
ZDkwYzZjMzdjMjJlZDFiOTZmODYxYzQ0OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24t
b24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCB0aGUgc2Vzc2lvbiBpcyBu
b3Qgc3dpdGNoZWQgdXBvbiB0b3AgZnJhbWUgbmF2aWdhdGlvbiB0byBhIHByZXZhbGVudCByZXNv
dXJjZSB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIFNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHNlc3Npb24gY29va2llLgorUEFT
UyBTaG91bGQgaGF2ZSBhbmQgaGFzIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4KK1BBU1MgT3JpZ2lu
IGhhcyBubyBpc29sYXRlZCBzZXNzaW9uLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlv
bi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vz
c2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9uLWRhdGFi
YXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNmFiZmRiOWM0MmJlMjBhNzM5NjYyMjQ0ZWVkNGQ3MzY0OGY1
YzBkMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2
YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTEwIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNo
YXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorICAg
IGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRoZSBzZXNzaW9uIGlzIG5vdCBzd2l0Y2hlZCB1cG9u
IHRvcCBmcmFtZSBuYXZpZ2F0aW9uIHRvIGEgcHJldmFsZW50IHJlc291cmNlIHdpdGhvdXQgdXNl
ciBpbnRlcmFjdGlvbi4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0
IHByZXZhbGVudE9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IG5v
blByZXZhbGVudE9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHNl
c3Npb25Db29raWVOYW1lID0gInNlc3Npb25Db29raWUiOworICAgIGNvbnN0IHBlcnNpc3RlbnRD
b29raWVOYW1lID0gInBlcnNpc3RlbnRDb29raWUiOworICAgIGNvbnN0IHR3b01pbnV0ZXNJblNl
Y29uZHMgPSAxMjA7CisKKyAgICBmdW5jdGlvbiBzZXRTZXNzaW9uQ29va2llKCkgeworICAgICAg
ICBkb2N1bWVudC5jb29raWUgPSBzZXNzaW9uQ29va2llTmFtZSArICI9MTsgcGF0aD0vIjsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBzZXRQZXJzaXN0ZW50Q29va2llKCkgeworICAgICAgICBkb2N1
bWVudC5jb29raWUgPSBwZXJzaXN0ZW50Q29va2llTmFtZSArICI9MTsgcGF0aD0vOyBNYXgtQWdl
PSIgKyB0d29NaW51dGVzSW5TZWNvbmRzICsgIjsiOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNo
ZWNrQ29va2llcyhzaG91bGRIYXZlU2Vzc2lvbkNvb2tpZSwgc2hvdWxkSGF2ZVBlcnNpc3RlbnRD
b29raWUpIHsKKyAgICAgICAgbGV0IGhhc1Nlc3Npb25Db29raWUgPSAoZG9jdW1lbnQuY29va2ll
ICsgIiIpLmluY2x1ZGVzKHNlc3Npb25Db29raWVOYW1lKSwKKyAgICAgICAgICAgIGhhc1BlcnNp
c3RlbnRDb29raWUgPSAoZG9jdW1lbnQuY29va2llICsgIiIpLmluY2x1ZGVzKHBlcnNpc3RlbnRD
b29raWVOYW1lKTsKKworICAgICAgICBpZiAoc2hvdWxkSGF2ZVNlc3Npb25Db29raWUgJiYgaGFz
U2Vzc2lvbkNvb2tpZSkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlNob3VsZCBoYXZlIGFuZCBo
YXMgdGhlIHNlc3Npb24gY29va2llLiIpOworICAgICAgICBlbHNlIGlmIChzaG91bGRIYXZlU2Vz
c2lvbkNvb2tpZSAmJiAhaGFzU2Vzc2lvbkNvb2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiU2hvdWxkIGhhdmUgYnV0IGRvZXNuJ3QgaGF2ZSB0aGUgc2Vzc2lvbiBjb29raWUuIik7Cisg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAg
ICB9IGVsc2UgaWYgKCFzaG91bGRIYXZlU2Vzc2lvbkNvb2tpZSAmJiBoYXNTZXNzaW9uQ29va2ll
KSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTaG91bGRuJ3QgaGF2ZSBidXQgaGFzIHRoZSBz
ZXNzaW9uIGNvb2tpZS4iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiU2hv
dWxkbid0IGhhdmUgYW5kIGRvZXNuJ3QgaGF2ZSB0aGUgc2Vzc2lvbiBjb29raWUuIik7CisKKwor
ICAgICAgICBpZiAoc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29raWUgJiYgaGFzUGVyc2lzdGVudENv
b2tpZSkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHBl
cnNpc3RlbnQgY29va2llLiIpOworICAgICAgICBlbHNlIGlmIChzaG91bGRIYXZlUGVyc2lzdGVu
dENvb2tpZSAmJiAhaGFzUGVyc2lzdGVudENvb2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiU2hvdWxkIGhhdmUgYnV0IGRvZXNuJ3QgaGF2ZSB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7
CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAg
ICAgICB9IGVsc2UgaWYgKCFzaG91bGRIYXZlUGVyc2lzdGVudENvb2tpZSAmJiBoYXNQZXJzaXN0
ZW50Q29va2llKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTaG91bGRuJ3QgaGF2ZSBidXQg
aGFzIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVz
dFBhc3NlZCgiU2hvdWxkbid0IGhhdmUgYW5kIGRvZXNuJ3QgaGF2ZSB0aGUgcGVyc2lzdGVudCBj
b29raWUuIik7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dp
dGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEi
OgorICAgICAgICAgICAgICAgIHNldFNlc3Npb25Db29raWUoKTsKKyAgICAgICAgICAgICAgICBz
ZXRQZXJzaXN0ZW50Q29va2llKCk7CisgICAgICAgICAgICAgICAgY2hlY2tDb29raWVzKHRydWUs
IHRydWUpOworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmhhc1N0YXRpc3RpY3NJc29s
YXRlZFNlc3Npb24ocHJldmFsZW50T3JpZ2luKSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJPcmlnaW4gaGFzIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAgICAgICAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIk9yaWdpbiBoYXMgbm8g
aXNvbGF0ZWQgc2Vzc2lvbi4iKTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5o
cmVmID0gbm9uUHJldmFsZW50T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5v
dC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWludGVy
YWN0aW9uLmh0bWwjc3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0g
InN0ZXAzIjsKKyAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luICE9
PSBub25QcmV2YWxlbnRPcmlnaW4pCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlN0
ZXAgMiBpcyBub3Qgb24gIiArIG5vblByZXZhbGVudE9yaWdpbiArICIuIik7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50
T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudE9yaWdpbikpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQocHJldmFsZW50T3JpZ2luICsgIiBk
aWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NV
cGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHByZXZhbGVudE9yaWdpbiArICIvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1w
cmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi5odG1sI3N0ZXA0IjsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgY2hl
Y2tDb29raWVzKHRydWUsIHRydWUpOworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmhh
c1N0YXRpc3RpY3NJc29sYXRlZFNlc3Npb24ocHJldmFsZW50T3JpZ2luKSkKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiT3JpZ2luIGhhcyBpc29sYXRlZCBzZXNzaW9uLiIpOworICAg
ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiT3JpZ2lu
IGhhcyBubyBpc29sYXRlZCBzZXNzaW9uLiIpOworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlVua25vd24gaGFz
aC4iKTsKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rl
c3QpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gg
PT09ICIiKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gIT09IHByZXZh
bGVudE9yaWdpbikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRlc3QgaXMgbm90IHN0YXJ0aW5n
IG91dCBvbiAiICsgcHJldmFsZW50T3JpZ2luICsgIi4iKTsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRPcmlnaW4pKQorICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQocHJldmFsZW50T3JpZ2luICsgIiB3YXMgY2xhc3NpZmllZCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0cy4iKTsKKyAgICAgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEiOworICAgICAgICB9KTsKKyAgICB9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1u
YXZpZ2F0aW9uLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnkt
ZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjBmYmE4MTAzNWUyZmVjYmExMzk0ZDAxZGYyZTliZTIwNjk1ZTg1YTUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdy
YWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxl
bnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0NoZWNr
IHRoYXQgZG9jdW1lbnQucmVmZXJyZXIgaXMgZG93bmdyYWRlZCB0byB0aGUgZVRMRCsxIGFmdGVy
IGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBxdWVyeS4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHJlZmVycmVyIGlzIGRvd25ncmFkZWQuCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFk
ZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50
LXJlc291cmNlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxp
bmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45YWViZGU5NWJlOGEwNTJhZmYzNjc5YzA2ODg1YWUxNzAyZTFkNzU0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25n
cmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFs
ZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNl
cy9jb29raWUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0
KCdydW5UZXN0KCknLCAwKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0
IGRvY3VtZW50LnJlZmVycmVyIGlzIGRvd25ncmFkZWQgdG8gdGhlIGVUTEQrMSBhZnRlciBhIGNy
b3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVlcnkuIik7CisgICAganNUZXN0SXNBc3lu
YyA9IHRydWU7CisKKyAgICBsZXQgbnVtYmVyT2ZUcmllcyA9IDA7CisgICAgZnVuY3Rpb24gdGVz
dFJlZmVycmVyKCkgeworICAgICAgICBpZiAoZG9jdW1lbnQucmVmZXJyZXIgPT09IHByZXZhbGVu
dFJlc291cmNlT3JpZ2luICsgIi8iKSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgcmVm
ZXJyZXIgaXMgZG93bmdyYWRlZC4iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFs
c2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0gZWxzZSBpZiAoKytudW1iZXJPZlRyaWVzIDw9
IDUpCisgICAgICAgICAgICBzZXRUaW1lb3V0KHRlc3RSZWZlcnJlciwgMjAwKTsKKyAgICAgICAg
ZWxzZSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJUaGUgcmVmZXJyZXIgaXMgbm90IGRvd25n
cmFkZWQ6ICIgKyBkb2N1bWVudC5yZWZlcnJlcik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rp
b24gbmF2aWdhdGVTYW1lT3JpZ2luVG9BZGRRdWVyeSgpIHsKKyAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaHJlZiA9IHByZXZhbGVudFJlc291cmNlT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5
LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWw/bGluaz1xdWVyeSI7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rv
d25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJl
dmFsZW50LXJlc291cmNlLmh0bWwiOworICAgIH0KKworICAgIGNvbnN0IGRlc3RpbmF0aW9uT3Jp
Z2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgcHJldmFsZW50UmVzb3Vy
Y2VPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBmdW5jdGlvbiBydW5UZXN0
KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luID09PSBwcmV2YWxlbnRS
ZXNvdXJjZU9yaWdpbiAmJiBkb2N1bWVudC5sb2NhdGlvbi5zZWFyY2ggPT09ICIiKSB7CisgICAg
ICAgICAgICBuYXZpZ2F0ZVNhbWVPcmlnaW5Ub0FkZFF1ZXJ5KCk7CisgICAgICAgIH0gZWxzZSBp
ZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikg
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJl
c291cmNlT3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291
cmNlT3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlk
IG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcobmF2aWdhdGVDcm9z
c09yaWdpbik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RSZWZlcnJlcigpOworICAgICAgICB9CisgICAgfQor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5hYmxlLWRlYnVnLW1vZGUtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
NTIxOWRkM2IxMWYyYTM0YzQ1NzUzNDBlNzM4ZGFkY2ZhMGNjZmNjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1k
ZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGZv
ciBlbmFibGluZyBkZWJ1ZyBtb2RlIGFuZCB0aGF0IGl0IHBlcm1hbmVudGx5IHRyZWF0cyAzcmRw
YXJ0eXRlc3R3ZWJraXQub3JnIGFzIGEgcHJldmFsZW50IHJlc291cmNlLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBodHRwOi8vM3JkcGFydHl0ZXN0d2Via2l0Lm9yZyBn
b3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZSBpbiBkZWJ1ZyBtb2RlLgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmFibGUtZGVidWctbW9k
ZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjM3ZmY5
MjI1NjdmOWE0NzI4MjczZGZhNDczMjYzN2E0ODVjYjlmNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmFibGUtZGVidWct
bW9kZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxz
Y3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgZW5hYmxpbmcgZGVidWcgbW9k
ZSBhbmQgdGhhdCBpdCBwZXJtYW5lbnRseSB0cmVhdHMgM3JkcGFydHl0ZXN0d2Via2l0Lm9yZyBh
cyBhIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
ICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovLzNyZHBhcnR5dGVzdHdlYmtpdC5v
cmciOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQodGhpcmRQYXJ0eU9yaWdpbiArICIgYWxyZWFkeSBzZXQg
YXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NEZWJ1Z01vZGUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmln
aW4pKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKHRoaXJkUGFydHlPcmlnaW4gKyAi
IGRpZG4ndCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQodGhpcmRQYXJ0eU9yaWdpbiAr
ICIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgaW4gZGVidWcgbW9kZS4iKTsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUoZmFsc2UsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5p
c2hKU1Rlc3QpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5n
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDE4MDNiZmNiNTNiMTQwNDlkNWUxZGFhZTViMjViNjI3ZmFjZTVhNQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9n
cmFuZGZhdGhlcmluZy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgR3JhbmRm
YXRoZXJlZCBjb29raWUgd2FzIG5vdCBwdXJnZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFz
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dy
YW5kZmF0aGVyaW5nLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2JkZDA0MWRkZDE3ZjhmNDZl
Y2EzNDcwZjE4MzRmZmE0MmQ2NWQ4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS5o
dG1sCkBAIC0wLDAgKzEsMTE1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4K
KzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdCBmb3Ig
R3JhbmRmYXRoZXJpbmc8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGls
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBmaXJz
dFBhcnR5T3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgZmlyc3RQ
YXJ0eUJhc2VVcmwgPSBmaXJzdFBhcnR5T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3Jlc291cmNlcyI7CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0
eUNvb2tpZSI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUNvb2tpZU5hbWUgPSAidGhpcmRQYXJ0eUNv
b2tpZSI7CisgICAgY29uc3QgY29va2llVmFsdWUgPSAidmFsdWUiOworICAgIGNvbnN0IHN1YlBh
dGhUb1NldEZpcnN0UGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIGZpcnN0
UGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT0iICsgY29va2llVmFsdWU7CisgICAgY29uc3QgcmV0
dXJuVXJsID0gZmlyc3RQYXJ0eU9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFu
ZGZhdGhlcmluZy5odG1sIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5
T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3Qg
c3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsg
dGhpcmRQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPSIgKyBjb29raWVWYWx1ZTsKKworICAgIGZ1
bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlckFu
ZENvbnRpbnVlKCkgeworICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2Nh
bkRhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBydW5UZXN0KCk7
CisgICAgICAgIH0pOworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlz
dGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2xlYXJJbk1lbW9y
eUFuZFBlcnNpc3RlbnRTdG9yZUFuZENvbnRpbnVlKCkgeworICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBy
dW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAg
ICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgLy8gU2V0IGEgZmlyc3Qt
cGFydHkgY29va2llIGZvciBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaHJlZiA9IGZpcnN0UGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNv
b2tpZSArICIjIiArIHJldHVyblVybCArICIjc3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5s
b2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IGxv
Y2FsaG9zdCdzIGNvb2tpZSBpcyB0aGVyZS4KKyAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQu
Y29va2llICE9PSBmaXJzdFBhcnR5Q29va2llTmFtZSArICI9IiArIGNvb2tpZVZhbHVlKQorICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJGaXJzdC1wYXJ0eSBjb29raWUgbm90IHNldC4i
KTsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0
aW9uLmhhc2ggPSAic3RlcDQiOworICAgICAgICAgICAgICAgIC8vIENsZWFyIHN0b3JlIHRvIHRy
aWdnZXIgZ3JhbmRmYXRoZXJpbmcuCisgICAgICAgICAgICAgICAgY2xlYXJJbk1lbW9yeUFuZFBl
cnNpc3RlbnRTdG9yZUFuZENvbnRpbnVlKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9u
Lmhhc2ggPSAic3RlcDUiOworICAgICAgICAgICAgICAgIC8vIFNldCBsb2NhbGhvc3QgYXMgcHJl
dmFsZW50IHJlc291cmNlLgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAgICAgICAgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiTG9jYWxob3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7CisgICAgICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNSI6Cisg
ICAgICAgICAgICAgICAgLy8gU2V0IGEgZmlyc3QtcGFydHkgY29va2llIGZvciAxMjcuMC4wLjEu
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNl
VXJsICsgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNvb2tpZSArICIjIiArIHJldHVyblVybCArICIj
c3RlcDYiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA2
IjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA3IjsKKyAg
ICAgICAgICAgICAgICAvLyBTZXQgMTI3LjAuMC4xIGFzIHByZXZhbGVudCByZXNvdXJjZQorICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJo
dHRwOi8vMTI3LjAuMC4xIiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovLzEy
Ny4wLjAuMSIpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiMTI3LjAuMC4x
IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAg
ICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNyI6CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaGFzaCA9ICJzdGVwOCI7CisgICAgICAgICAgICAgICAgLy8gVHJpZ2dlciBh
IHB1cmdlLgorICAgICAgICAgICAgICAgIGZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlckFuZENv
bnRpbnVlKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3Rl
cDgiOgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgbG9jYWxob3N0J3MgY29va2llIGlz
IHN0aWxsIHRoZXJlLgorICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09IGZp
cnN0UGFydHlDb29raWVOYW1lICsgIj0iICsgY29va2llVmFsdWUpCisgICAgICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkZpcnN0LXBhcnR5IGNvb2tpZSBwdXJnZWQuIik7CisgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJHcmFuZGZhdGhlcmVk
IGNvb2tpZSB3YXMgbm90IHB1cmdlZC4iKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCBub3QgYmUgcmVhY2hlZC4iKTsKKyAgICAgICAgICAg
ICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQu
bG9jYXRpb24uaGFzaCA9PT0gIiIgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVy
bmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVj
b3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
TWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworCisgICAgICAgICAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENo
aWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0g
InN0ZXAxIjsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNl
CisgICAgICAgIHJ1blRlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1w
cmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24t
cHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzg5Zjg1NWE3ODljZjEwYmYzMzBmNGM5MmVhMTJiOTQxYWJlZmMw
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1k
YXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgQ29va2llIG5vdCBkZWxldGVkLgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24t
cHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQ5N2U4MGZkNjY0ZWUxZWE4MDM4ZDllODcyYzczOTU3MjkwZjUxMWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2Uu
aHRtbApAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4K
KzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9y
IE5vbi1QcmV2YWxlbnQgUmVzb3VyY2UgV2l0aCBVc2VyIEludGVyYWN0aW9uPC90aXRsZT4KKyAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAw
MCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3Qg
KyAiL3RlbXAiOworICAgIGNvbnN0IG90aGVyUHJldmFsZW50VXJsID0gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAg
ICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSAiIikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
ImRvY3VtZW50LmNvb2tpZSBub3QgZW1wdHkuIik7CisgICAgICAgIGNvbnN0IGNvb2tpZSA9ICJ0
ZXN0Q29va2llPXRlc3RWYWx1ZSI7CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZSAr
ICI7IG1heC1hZ2U9MTAwOyI7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09IGNvb2tp
ZSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBkaWQgbm90IGdldCBz
ZXQuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgLy8gVGhpcyBpcyBkb25lIHRvIG5v
dCBoYXZlIGFuIGVtcHR5IHNldCBvZiBwcmV2YWxlbnQgcmVzb3VyY2VzLgorICAgICAgICAgICAg
Ly8gT3RoZXJ3aXNlIGRhdGEgcmVjb3JkcyBhcmUgbmV2ZXIgc2Nhbm5lZC4KKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKG90aGVyUHJldmFsZW50
VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uob3RoZXJQcmV2YWxlbnRVcmwpKQorICAgICAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPdGhlciBob3N0IGRpZCBub3QgZ2V0IHNldCBhcyBw
cmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NI
YXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFj
dGlvbi4iKTsKKworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0
aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llID09PSBjb29raWUpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29va2llIG5vdCBkZWxldGVkLiIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkNvb2tpZSBkZWxldGVkIG9yIGRvY3VtZW50LmNvb2tpZSBjb250YWlucyBvdGhlciBj
b29raWVzOiAiICsgZG9jdW1lbnQuY29va2llKTsKKworICAgICAgICAgICAgICAgICAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29y
ZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworICAgICAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFS
ZWNvcmRzKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRl
clRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAg
ICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hl
bkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAgICBydW5UZXN0UnVubmVy
VGVzdCgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0
YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4OWY4NTVhNzg5Y2YxMGJmMzMwZjRjOTJl
YTEyYjk0MWFiZWZjMDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVz
ZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIENvb2tp
ZSBub3QgZGVsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWlu
dGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJh
Y3Rpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YmNlOTkwNDVmMGEzZWNjZGJhZDE4Nzg3
ZWVkOGZmZjY2NTdmZjY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11
c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYt
OCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBOb24tUHJldmFsZW50IFJlc291cmNlIFdpdGhvdXQg
VXNlciBJbnRlcmFjdGlvbjwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0
aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhv
c3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwg
PSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCBvdGhlclBy
ZXZhbGVudFVybCA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlv
biBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0g
IiIpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgbm90IGVtcHR5LiIp
OworICAgICAgICBjb25zdCBjb29raWUgPSAidGVzdENvb2tpZT10ZXN0VmFsdWUiOworICAgICAg
ICBkb2N1bWVudC5jb29raWUgPSBjb29raWUgKyAiOyBtYXgtYWdlPTEwMDsiOworICAgICAgICBp
ZiAoZG9jdW1lbnQuY29va2llICE9PSBjb29raWUpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJk
b2N1bWVudC5jb29raWUgZGlkIG5vdCBnZXQgc2V0LiIpOworCisgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAg
ICAgICAgIC8vIFRoaXMgaXMgZG9uZSB0byBub3QgaGF2ZSBhbiBlbXB0eSBzZXQgb2YgcHJldmFs
ZW50IHJlc291cmNlcy4KKyAgICAgICAgICAgIC8vIE90aGVyd2lzZSBkYXRhIHJlY29yZHMgYXJl
IG5ldmVyIHNjYW5uZWQuCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShvdGhlclByZXZhbGVudFVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KG90aGVyUHJldmFsZW50VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3Ro
ZXIgaG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90
IGdldCBjbGVhcmVkIG9mIHVzZXIgaW50ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNr
KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tp
ZSA9PT0gY29va2llKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNv
b2tpZSBub3QgZGVsZXRlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgZGVsZXRlZCBvciBkb2N1
bWVudC5jb29raWUgY29udGFpbnMgb3RoZXIgY29va2llczogIiArIGRvY3VtZW50LmNvb2tpZSk7
CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFz
c2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFS
ZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVu
dC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYm
IHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFz
ZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUp
OworICAgICAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfQor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2Fu
LWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHkt
Y29udGV4dC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGZiOTdmOTFmY2QzM2Nj
OTc4OTc5Y2Q0OGE1NWE0OTQ3NGQyNzcxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNl
cy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0LWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+
JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIG9uZSBjb29raWUuCitSZWNlaXZlZCBjb29raWUg
bmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBm
aXJzdFBhcnR5Q29va2llPXZhbHVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vz
cy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVz
b3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJh
c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jNjRjZmNiMWYzZTM3MjBmY2EyMjNjNDJkODc4YzI1YTk2NjIy
OWJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1p
bi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY0IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdCB0byBlbnN1cmUgbm9uLXByZXZhbGVudCByZXNv
dXJjZXMgY2FuIGFjY2VzcyB0aGVpciBjb29raWVzIGluIGEgdGhpcmQgcGFydHkgY29udGV4dDwv
dGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3
LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmln
aW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCBmaXJz
dFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRo
VG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBh
cnR5Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IGZyYWdtZW50V2l0aFJl
dHVyblVybCA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tcHJldmFsZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0
eS1jb250ZXh0Lmh0bWwiOworICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tpZXMgPSAiL2dldC1j
b29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWU7CisKKyAgICBmdW5jdGlv
biBmaW5pc2hUZXN0KCkgeworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgewor
ICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7
CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikg
eworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9
CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlv
bi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgIC8v
IFNldCBhIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAg
IGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1Nl
dEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyBmcmFnbWVudFdpdGhSZXR1cm5VcmwgKyAiI3N0ZXAy
IjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6Cisg
ICAgICAgICAgICAgICAgLy8gTG9hZCBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIGFuZCBjaGVj
ayB0aGF0IGl0IGdldHMgaXRzIGNvb2tpZS4KKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRo
aXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQg
cmVjZWl2ZSBvbmUgY29va2llLiIsIGZpbmlzaFRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09
IHBhcnRpdGlvbkhvc3QgJiYgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PSAiIiAmJiB3aW5kb3cu
dGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0
VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OworICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgZmFsc2Us
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5T3JpZ2luLCBmYWxzZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEiOwor
ICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9j
a2luZyhydW5UZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBydW5UZXN0KCk7CisgICAgfQorPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAt
dG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjg2M2M3MjAyYjAzZTc3MGQ2ZTQ0NmZiNmYzNDAwZmIzOGM1OWY1MzAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3Ig
YSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3Rl
cmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEi
KSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJl
Y3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQor
UEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0
dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjViZGE2ZjlmMWJjZWJmNDg5NDU1YmVjZTQ4NWY1Y2VjZDFmNjA5YwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJh
c2UuaHRtbApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBu
b24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNU
ZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNz
YWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hU
ZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRl
ZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAg
ZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5v
cmlnaW4gPT09ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiKSB7CisgICAgICAgICAgICAgICAgaWYg
KGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBm
cm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAg
ICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYg
KHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2
ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAg
ICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFz
U3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsK
KyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3Rl
cmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEi
KScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1Jl
Z2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2Fs
aG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAg
ICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmlu
aXNoVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0
YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89aHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocC8/
cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9y
ZXNvdXJjZXMvaWZyYW1lLXJlcG9ydC1iYWNrLWxvYWRlZC5odG1sIj4KKzwvaWZyYW1lPgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10
by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGly
ZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjg2M2M3MjAyYjAzZTc3MGQ2ZTQ0NmZiNmYzNDAwZmIzOGM1OWY1MzAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2Fs
aG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCBy
ZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHku
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRw
Oi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lz
dGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAu
MSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRp
cmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVl
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
bi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3Qt
ZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9j
YWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGI1ZWU5OTM3MDQxMDUyZGMyNmU4ZjZh
NTg2OWEyMjEzMjAwM2EzMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1s
b2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJl
c291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlw
dGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0
IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAg
ICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBm
YWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAg
ICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFy
IHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdl
KGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBB
U1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5y
ZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdp
bjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENo
YWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAg
ICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9s
b2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRy
dWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0
cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1Rv
KCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAg
ICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVj
dENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQor
CisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVz
ZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3Rp
ZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhj
aGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVj
dC5waHAvP3JlZGlyZWN0VG89aHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcmVzb3VyY2VzL2lmcmFtZS1yZXBvcnQtYmFjay1sb2FkZWQuaHRtbCI+Cis8L2lmcmFt
ZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgt
bm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45YjUxNmYxMzJmOWZiMTAxMzY4MjI2M2M2ZjJjODEwYjdmYWY5ZDhmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94
ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHBy
b3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3Qi
LCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8x
MjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJl
ZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0Iikg
aXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJh
bWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0
aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2Fs
aG9zdC10by1pcC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkOWNhNTkwMWRiODBlMGRkMDJj
MjA1MjAzM2MxNTdkZGQzNmUzMWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFt
ZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1p
cC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3Rz
IGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZy
YW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVz
c2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisK
KyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAg
ICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZl
TWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRl
eE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50
LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3Rl
ZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAgICAgICBsYXN0UGFnZUluUmVk
aXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVja2VkKQor
ICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNob3VsZEJl
VHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJo
dHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hv
dWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5n
VG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAg
ICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJl
Y3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsKKworICAg
ICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0UGFnZUlu
UmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAg
ICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
dHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2Fs
bGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIDwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAw
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1ub24tc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAuaHRtbCI+Cis8L2lmcmFtZT4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9u
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1k
YXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94
ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliNTE2ZjEzMmY5ZmIxMDEzNjgyMjYzYzZmMmM4MTBi
N2ZhZjlkOGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3Rz
IGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZy
YW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIo
Imh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9j
YWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJo
dHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgt
bm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9z
dC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzFlMzNmNjY3ZGEzNTlmM2E4MmJmM2MwYzMxMGQzNGVjMzc1YjM0YwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJh
bWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCkBA
IC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2Ny
aXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAg
ICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94
ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHBy
b3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisg
ICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQ
YWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNr
ZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgewor
ICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIp
IHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0x
KQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJ
TCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVu
dC5vcmlnaW4pOworCisgICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9
IHRydWU7CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZp
bmlzaFRlc3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gY2hlY2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0Iiwg
Imh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhv
c3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEy
Ny4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVj
a2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRl
ZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFz
ZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVu
RGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
Lmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1s
b2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0Lmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJh
bWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJv
eGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1s
b2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNWM4NWVi
NDdlMGYwODQxNmU2MWZkMDE1ZmQ3YWUzY2I4NjZiNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1u
ZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxo
b3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0
aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5k
Ym94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZy
YW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUK
K1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJo
dHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4w
LjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZy
YW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAt
ZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
NzM4ZWEzYjU5YTBhNzA3NDNkMzQ1ZGYwNTJlYTYyOWQyZjZiOTNkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5k
Ym94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRv
LWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRp
bC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3Rz
IHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNh
bmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElz
QXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIs
IHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgp
IHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cisg
ICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBm
YWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1bmN0
aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2lu
ID09PSAibnVsbCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQ
QVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEu
cmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmln
aW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RD
aGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAg
ICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAg
ICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgn
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8v
bG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVU
cnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0
dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91
bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdU
bygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAg
ICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJl
Y3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0K
KworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRV
c2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90
aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2so
Y2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
bi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjcxNWM4NWViNDdlMGYwODQxNmU2MWZkMDE1ZmQ3YWUzY2I4NjZiNjkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgc2FuZGJveGVkIGlmcmFt
ZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6
Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4x
IikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGly
ZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpIGlzIHRydWUK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3Qt
bG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1p
ZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1s
b2NhbGhvc3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41N2ZhZjAwYThmZDcyZjE0NGVhYWVl
ZTRhN2QyZDBjYjQ5YjhkOTk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUt
d2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhv
c3QtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0
cyBmb3IgYSBzYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1l
IGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2Fn
ZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAg
ICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAgICAg
IHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVz
c2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gIm51bGwiKSB7
CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkK
KyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwg
IiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
IlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQu
b3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0
cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBmaW5p
c2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
dGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9u
IGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJo
dHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0
IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcu
MC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tl
ZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQp
CisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2Uo
dHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRh
dGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5p
bnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdHMpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3Jlc291cmNlcy9wYWdlLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhv
c3QtdG8taXAtdG8tbG9jYWxob3N0Lmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFs
ZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDliZmI5MGNj
MWFjNWY5MzE1ZGRmMDljZDRiOTMxYzk4Yjc0N2VmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50
LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI0IEBACitUZXN0cyB0
aGF0IGNvb2tpZSBibG9ja2luZyBpcyBhcHBsaWVkIHRvIHBpbmcgbG9hZHMuCisgICAKKworLS0t
LS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBm
aXJzdC1wYXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29r
aWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVl
CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTItLT4nCistLS0tLS0tLQorU2hvdWxkIHJl
Y2VpdmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFy
dHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJh
bWU6ICc8IS0tZnJhbWUzLS0+JworLS0tLS0tLS0KK1BpbmcgcmVjZWl2ZWQuCitIVFRQX0hPU1Q6
IGxvY2FsaG9zdDo4MDAwCitSRVFVRVNUX1VSSTogL2NvbnRlbnRleHRlbnNpb25zL3Jlc291cmNl
cy9zYXZlLXBpbmcucGhwP3Rlc3Q9cGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UKK05vIGNvb2tp
ZXMgaW4gcGluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJl
dmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2U4ZmExMWQ5NzMxMzBk
YzhiMTllMjgyODgyYTFkMzQ4YWY5ZjM5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZhbGVudC1yZXNv
dXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsOTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxz
Y3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBjb29raWUgYmxvY2tpbmcgaXMg
YXBwbGllZCB0byBwaW5nIGxvYWRzLjwvZGl2PgorPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9IiMi
IHBpbmc9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9jb250ZW50ZXh0ZW5zaW9ucy9yZXNvdXJjZXMv
c2F2ZS1waW5nLnBocD90ZXN0PXBpbmctdG8tcHJldmFsZW50LXJlc291cmNlIj5UaGUgbGluazwv
YT4KKzxzY3JpcHQ+CisgICAgaWYgKHRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOworCisgICAgY29uc3QgcGFydGl0aW9uSG9zdCA9ICIxMjcuMC4wLjE6ODAw
MCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAi
OworICAgIGNvbnN0IHJlc291cmNlUGF0aCA9ICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNv
dXJjZXMiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0eU9yaWdpbiAr
IHJlc291cmNlUGF0aDsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBh
cnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9z
ZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9dmFs
dWUiOworICAgIGNvbnN0IHJldHVyblVybCA9ICJodHRwOi8vIiArIHBhcnRpdGlvbkhvc3QgKyAi
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbCI7
CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUx
PSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZTsKKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVu
dChlbGVtZW50SUQsIGNhbGxiYWNrKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50
Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRl
clkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAg
ICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAg
ICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICApOworICAgIH0KKworICAg
IGZ1bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0
IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxl
bWVudC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAg
ICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBy
dW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAg
ICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgLy8gU2V0IGZpcnN0LXBh
cnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0
aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29r
aWUgKyAiIyIgKyByZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhh
dCB0aGUgY29va2llIGdldHMgc2VudCBmb3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMSBzaW5j
ZSBsb2NhbGhvc3QgaXMgbm90IHByZXZhbGVudC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5s
b2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJk
UGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVj
ZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAgICAgIC8vIFNldCBs
b2NhbGhvc3QgYXMgcHJldmFsZW50IHRvIHB1dCBpdCBpbiB0aGUgYmxvY2tpbmcgY2F0ZWdvcnku
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOwor
ICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA0IjsKKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBubyBjb29raWUgZ2V0
cyBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCdzIGNv
b2tpZXMgYXJlIGJsb2NrZWQuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFz
aCA9ICJzdGVwNSI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVy
bCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIG5vIGNv
b2tpZXMuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlICIjc3RlcDUiOgorICAgICAgICAgICAgICAgIC8vIENsaWNrIHRoZSBsaW5rIHRvIHRyaWdn
ZXIgdGhlIHBpbmcuCisgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5r
IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0
eU9yaWdpbiArICIvY29udGVudGV4dGVuc2lvbnMvcmVzb3VyY2VzL2dldC1waW5nLWRhdGEucGhw
P3Rlc3Q9cGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UiLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmZXRjaCgiL2NvbnRlbnRleHRlbnNpb25zL3Jlc291cmNlcy9kZWxldGUtcGluZy5waHA/dGVz
dD1waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZSIpLnRoZW4oKCk9PnsgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7IH0pOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIi
KSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVl
LCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFt
ZXNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0
ZXAxIjsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGUzMmM1OTNkZTEwZDU3NzM3MTAxMzU3MWRkMzQ4ZjUz
ODUxOTZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVkLWtleWRvd24tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgd2UgZ3JhbnQgVXNl
ciBJbnRlcmFjdGlvbiBjcmVkaXQgZm9yIGhhbmRsZWQga2V5cHJlc3Nlcy4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1NpbXVsYXRlIHVzZXIgdHlwaW5nIGxldHRlciAnYScgaW50
byB0aGUgZmllbGQuCitQQVNTIHRlc3RJbnB1dC52YWx1ZSBpcyAiYSIKK1BBU1MgT3JpZ2luIHdh
cyBncmFudGVkIHVzZXIgaW50ZXJhY3Rpb24uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKyAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlk
b3duLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdlNTZhNTBjY2M4NGY4MGExNzVkZjQ2N2ZmNzg4OTRjZTdiNTE5ZmMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sCkBA
IC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgd2UgZ3JhbnQgVXNlciBJbnRlcmFjdGlvbiBjcmVkaXQg
Zm9yIGhhbmRsZWQga2V5cHJlc3Nlcy4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitjb25z
dCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC90ZW1wIjsKKworb25sb2Fk
ID0gZnVuY3Rpb24oKSB7CisgICAgY29uc3QgdGVzdEZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRlc3RGcmFtZSIpOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRv
dy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRy
dWUpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRh
UmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgIH0KKworICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkg
eworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
c3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0
IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IGNsZWFyZWQgb2YgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAg
ICAgICAgICAgdGVzdElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RJbnB1dCIp
OworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkTW9kaWZ5RGF0
YVJlY29yZHNDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInRlc3RJbnB1dC52YWx1ZSIsICJhIik7CisKKyAgICAgICAgICAgICAgICBp
ZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPcmlnaW4gZGlkIG5vdCBn
ZXQgdXNlciBpbnRlcmFjdGlvbiBjcmVkaXQuIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPcmlnaW4gd2FzIGdyYW50ZWQgdXNlciBpbnRl
cmFjdGlvbi4iKTsKKworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RGcmFtZS5zcmMgPSAiYWJvdXQ6YmxhbmsiOworICAgICAg
ICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAg
ICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1Jl
bW92YWwoZmFsc2UpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11
bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworCisgICAgICAg
ICAgICBkZWJ1ZygiU2ltdWxhdGUgdXNlciB0eXBpbmcgbGV0dGVyICdhJyBpbnRvIHRoZSBmaWVs
ZC4iKTsKKyAgICAgICAgICAgIHRlc3RJbnB1dC5mb2N1cygpOworICAgICAgICAgICAgaWYgKHdp
bmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJh
Iik7CisgICAgICAgIH0pOworICAgIH0pOworfQorPC9zY3JpcHQ+Cis8aWZyYW1lIGlkPSJ0ZXN0
RnJhbWUiIHNyYz0icmVzb3VyY2VzL29uY2xpY2suaHRtbCI+PC9pZnJhbWU+Cis8aW5wdXQgaWQ9
InRlc3RJbnB1dCIgdHlwZT0idGV4dCI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJl
c291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Ut
dW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2ZTU1
OWJmYTJkZDI0NjE2Nzk4OWIyNWFiODIzOWM0NTZiMTY0YjAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJl
c291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDExIEBACitUZXN0cyB0aGF0IHdlIGRvIG5vdCBncmFudCBVc2VyIEludGVyYWN0aW9uIGNyZWRp
dCBmb3IgdW5oYW5kbGVkIGtleXByZXNzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworU2ltdWxhdGUgYW4gdW5oYW5kbGVkIHVzZXIga2V5IHByZXNzLgorUEFTUyBPcmlnaW4gZGlk
IG5vdCBnZXQgdXNlciBpbnRlcmFjdGlvbiBjcmVkaXQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRs
ZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRh
YmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhY2RlYjI4ZTRjY2I3MTI4MjUzMjE3YmE4ODE5ZWE3ZWE2
ZmIyZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFi
YXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB3ZSBkbyBub3QgZ3JhbnQgVXNlciBJ
bnRlcmFjdGlvbiBjcmVkaXQgZm9yIHVuaGFuZGxlZCBrZXlwcmVzcy4iKTsKK2pzVGVzdElzQXN5
bmMgPSB0cnVlOworCitjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC90ZW1wIjsKKworb25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgY29uc3QgdGVzdEZyYW1lID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIpOworCisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRV
c2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NO
b3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgIH0KKworICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmws
IHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3Rp
Y3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsZWFyZWQgb2YgdXNlciBpbnRl
cmFjdGlvbi4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0Rp
ZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisKKyAgICAgICAgICAgICAg
ICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRp
c3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPcmlnaW4gZGlkIG5v
dCBnZXQgdXNlciBpbnRlcmFjdGlvbiBjcmVkaXQuIik7CisKKyAgICAgICAgICAgICAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RnJhbWUuc3JjID0g
ImFib3V0OmJsYW5rIjsKKyAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9D
b25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3Vy
Y2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0
YVJlY29yZHMoKTsKKworICAgICAgICAgICAgZGVidWcoIlNpbXVsYXRlIGFuIHVuaGFuZGxlZCB1
c2VyIGtleSBwcmVzcy4iKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCisg
ICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiYSIsIFsibWV0YUtleSJdKTsKKyAg
ICAgICAgfSk7CisgICAgfSk7Cit9Cis8L3NjcmlwdD4KKzxpZnJhbWUgaWQ9InRlc3RGcmFtZSIg
c3JjPSJyZXNvdXJjZXMvb25jbGljay5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9w
cmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jODlmODU1YTc4OWNmMTBiZjMzMGY0YzkyZWExMmI5NDFhYmVmYzA3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIENvb2tpZSBub3QgZGVsZXRlZC4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3By
ZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVz
b3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWMx
M2E1MDI3NGM2ZGQ5NGJmZThhMTY0NTljNGNiYWI4YTkwZTkwYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQt
cmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2
OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0
YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBQcmV2YWxlbnQgUmVzb3Vy
Y2UgV2l0aCBVc2VyIEludGVyYWN0aW9uPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVv
dXQoJ3NldFVwQW5kUnVuKCknLCAwKSI+Cis8c2NyaXB0PgorICAgIGlmICh0ZXN0UnVubmVyKQor
ICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgIGNvbnN0IGhvc3RVbmRl
clRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0
cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCBvdGhlclByZXZhbGVu
dFVybCA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvdGVtcCI7CisgICAgZnVuY3Rpb24gcnVuVGVz
dFJ1bm5lclRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09ICIiKQorICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIG5vdCBlbXB0eS4iKTsKKyAgICAg
ICAgY29uc3QgY29va2llID0gInRlc3RDb29raWU9dGVzdFZhbHVlIjsKKyAgICAgICAgZG9jdW1l
bnQuY29va2llID0gY29va2llICsgIjsgbWF4LWFnZT0xMDA7IjsKKyAgICAgICAgaWYgKGRvY3Vt
ZW50LmNvb2tpZSAhPT0gY29va2llKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQu
Y29va2llIGRpZCBub3QgZ2V0IHNldC4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIC8vIFRo
aXMgaXMgZG9uZSB0byBub3QgaGF2ZSBhbiBlbXB0eSBzZXQgb2YgcHJldmFsZW50IHJlc291cmNl
cy4KKyAgICAgICAgICAgIC8vIE90aGVyd2lzZSBkYXRhIHJlY29yZHMgYXJlIG5ldmVyIHNjYW5u
ZWQuCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShvdGhlclByZXZhbGVudFVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
aWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKG90aGVyUHJldmFs
ZW50VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3RoZXIgaG9zdCBkaWQg
bm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NV
cmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBsb2dnZWQg
Zm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llID09PSBjb29r
aWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29va2llIG5vdCBk
ZWxldGVkLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBkZWxldGVkIG9yIGRvY3VtZW50LmNvb2tp
ZSBjb250YWlucyBvdGhlciBjb29raWVzOiAiICsgZG9jdW1lbnQuY29va2llKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNl
c0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3Zh
bCgwKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0
YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNldFVwQW5kUnVuKCkg
eworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAm
JiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgcnVuVGVzdFJ1bm5l
clRlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
dGVzdEZhaWxlZCgiV3JvbmcgaG9zdCwgbm8gdGVzdFJ1bm5lciwgb3Igbm8gaW50ZXJuYWxzLiIp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKyAgICB9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11
c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13
aXRoLXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjc4MDllOTFjMjNjMjNhMjM2OWNkMDg1NGViMTgxNjQ3ZGZhZWI0MwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9w
cmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIENvb2tpZSBkZWxldGVkLgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50
LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0LWRhdGFiYXNlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJl
c291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0LWRhdGFiYXNlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjIwODk3MDVkMjc4ZWFhMjIxMjY4NTZkMWQ2ZDA5OWE1OWEwYTdiNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9w
cmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2Uu
aHRtbApAQCAtMCwwICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4K
KzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9y
IFByZXZhbGVudCBSZXNvdXJjZSBXaXRoIFVzZXIgSW50ZXJhY3Rpb24gVGltZW91dDwvdGl0bGU+
CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0g
IjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsg
aG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3Qo
KSB7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09ICIiKQorICAgICAgICAgICAgdGVz
dEZhaWxlZCgiZG9jdW1lbnQuY29va2llIG5vdCBlbXB0eS4iKTsKKyAgICAgICAgY29uc3QgY29v
a2llID0gInRlc3RDb29raWU9dGVzdFZhbHVlIjsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0g
Y29va2llICsgIjsgbWF4LWFnZT0xMDA7IjsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAh
PT0gY29va2llKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIGRpZCBu
b3QgZ2V0IHNldC4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsK
KworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlE
YXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAo
ZG9jdW1lbnQuY29va2llICE9PSAiIikKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkNvb2tpZSBub3QgZGVsZXRlZDogIiArIGRvY3VtZW50LmNvb2tpZSk7CisgICAgICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvb2tp
ZSBkZWxldGVkLiIpOworICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNS
ZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NN
aW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbigwKTsKKwor
ICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdG8gZW5zdXJlIHRoZSB0aW1lb3V0IHdlJ3JlIHRl
c3RpbmcuCisgICAgICAgICAgICAgICAgc2V0VGltZW91dCgidGVzdFJ1bm5lci5zdGF0aXN0aWNz
UHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpIiwgMTAwMCk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3Qg
PT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFs
cykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAg
ICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ODA5ZTkxYzIzYzIzYTIzNjljZDA4NTRlYjE4
MTY0N2RmYWViNDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRl
cmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgQ29va2llIGRlbGV0
ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFi
YXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjI3YjBiMmFhZTMwODRkNGM0N2Q5ZWM5ZjdjZTMyZmU0ZDQwYjljNGEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFz
ZS5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4i
PgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBm
b3IgUHJldmFsZW50IFJlc291cmNlIFdpdGhvdXQgVXNlciBJbnRlcmFjdGlvbjwvdGl0bGU+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEy
Ny4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9z
dFVuZGVyVGVzdCArICIvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0ICgpIHsKKyAg
ICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJDb29raWUgbm90IGRlbGV0ZWQ6ICIgKyBkb2N1bWVudC5jb29raWUpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb29raWUgZGVsZXRlZC4iKTsKKyAgICAgICAgaW50
ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKyAgICAgICAg
dGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3Vt
ZW50LmNvb2tpZSAhPT0gIiIpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29r
aWUgbm90IGVtcHR5LiIpOworICAgICAgICBjb25zdCBjb29raWUgPSAidGVzdENvb2tpZT10ZXN0
VmFsdWUiOworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBjb29raWUgKyAiOyBtYXgtYWdlPTEw
MDsiOworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSBjb29raWUpCisgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgZGlkIG5vdCBnZXQgc2V0LiIpOworCisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlz
dGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBn
ZXQgY2xlYXJlZCBvZiB1c2VyIGludGVyYWN0aW9uLiIpOworCisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoImZpbmlzaFRlc3QoKSIs
IDEwMDApOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1v
dmFsKGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5p
bXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2Nh
dGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRv
dy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAg
ICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0
cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0
aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzQ3NTdiYzUyNTYwMDUy
MWQ0NjE1NDVkMDM2N2MwZjA1MDFiZWYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BydW5lLXN0YXRpc3RpY3MtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3RzIHRoYXQgc3RhdGlzdGljcyBh
cmUgcHJ1bmVkIGluIHRoZSByaWdodCBvcmRlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgVGVzdCBpdGVyYXRpb24gMSBwYXNzZWQuCitQQVNTIFRlc3QgaXRlcmF0aW9u
IDIgcGFzc2VkLgorUEFTUyBUZXN0IGl0ZXJhdGlvbiAzIHBhc3NlZC4KK1BBU1MgVGVzdCBpdGVy
YXRpb24gNCBwYXNzZWQuCitQQVNTIFRlc3QgaXRlcmF0aW9uIDUgcGFzc2VkLgorUEFTUyBUZXN0
IGl0ZXJhdGlvbiA2IHBhc3NlZC4KK1BBU1MgVGVzdCBpdGVyYXRpb24gNyBwYXNzZWQuCitQQVNT
IFRlc3QgaXRlcmF0aW9uIDggcGFzc2VkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlz
dGljcy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjYWI3ZDM5MTcxZDAzZjQ3YjQxOWQyYWRi
MGNhMTM4YWRmNzhlYjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sCkBA
IC0wLDAgKzEsMTYzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1l
dGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0IGZvciBSZXNvdXJjZSBMb2FkIFN0
YXRpc3RpY3MgUHJ1bmluZzwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAg
ICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBzdGF0aXN0aWNzIGFyZSBwcnVuZWQgaW4gdGhlIHJp
Z2h0IG9yZGVyLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3Qgb2xk
ZXJUaW1lc3RhbXAgPSBNYXRoLnJvdW5kKChuZXcgRGF0ZSgpKS5nZXRUaW1lKCkgLyAxMDAwKTsK
KyAgICBjb25zdCBuZXdlclRpbWVzdGFtcCA9IG9sZGVyVGltZXN0YW1wICsgMTA7CisgICAgY29u
c3QgbmV3ZXN0VGltZXN0YW1wID0gbmV3ZXJUaW1lc3RhbXAgKyAxMDsKKworICAgIGNvbnN0IHVy
bHNUb0JlUHJ1bmVkID0gWworICAgICAgICB7IHVybDogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC90
ZW1wIiwgcHJldmFsZW50OiBmYWxzZSB9LAorICAgICAgICB7IHVybDogImh0dHA6Ly8xMjcuMC4w
LjI6ODAwMC90ZW1wIiwgcHJldmFsZW50OiBmYWxzZSB9LAorICAgICAgICB7IHVybDogImh0dHA6
Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIiwgcHJldmFsZW50OiB0cnVlIH0sCisgICAgICAgIHsgdXJs
OiAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiLCBwcmV2YWxlbnQ6IHRydWUgfSwKKyAgICAg
ICAgeyB1cmw6ICJodHRwOi8vMTI3LjAuMC41OjgwMDAvdGVtcCIsIHByZXZhbGVudDogZmFsc2Ug
fSwKKyAgICAgICAgeyB1cmw6ICJodHRwOi8vMTI3LjAuMC42OjgwMDAvdGVtcCIsIHByZXZhbGVu
dDogZmFsc2UgfSwKKyAgICAgICAgeyB1cmw6ICJodHRwOi8vMTI3LjAuMC43OjgwMDAvdGVtcCIs
IHByZXZhbGVudDogdHJ1ZSB9LAorICAgICAgICB7IHVybDogImh0dHA6Ly8xMjcuMC4wLjg6ODAw
MC90ZW1wIiwgcHJldmFsZW50OiB0cnVlIH0KKyAgICBdOworCisgICAgZnVuY3Rpb24gY2hlY2tJ
ZlByZXZhbGVudEFjY29yZGluZ1RvSW5pdGlhbEV4cGVjdGF0aW9uKGJlZ2luLCBlbmQpIHsKKyAg
ICAgICAgdmFyIGZhaWxlZCA9IGZhbHNlOworICAgICAgICBmb3IgKHZhciBpID0gYmVnaW47IGkg
PCBlbmQ7ICsraSkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UodXJsc1RvQmVQcnVuZWRbaV0udXJsKSAhPT0gdXJsc1RvQmVQcnVuZWRb
aV0ucHJldmFsZW50KSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiY2hlY2tJZlByZXZh
bGVudEFjY29yZGluZ1RvSW5pdGlhbEV4cGVjdGF0aW9uOiBUZXN0IGl0ZXJhdGlvbiAiICsgY3Vy
cmVudFRlc3QgKyAiIGZhaWxlZC4gIiArIHVybHNUb0JlUHJ1bmVkW2ldLnVybCArICh1cmxzVG9C
ZVBydW5lZFtpXS5wcmV2YWxlbnQgPyAiIHdhc24ndCAiIDogIiB3YXMgIikgKyAicHJldmFsZW50
Iik7CisgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgICAgICBpZiAoZmFpbGVkKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBjaGVja0lmUHJldmFsZW50KGJlZ2luLCBlbmQsIGV4cGVjdGVkKSB7CisgICAg
ICAgIHZhciBmYWlsZWQgPSBmYWxzZTsKKyAgICAgICAgZm9yICh2YXIgaSA9IGJlZ2luOyBpIDwg
ZW5kOyArK2kpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHVybHNUb0JlUHJ1bmVkW2ldLnVybCkgIT09IGV4cGVjdGVkKSB7CisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiY2hlY2tJZlByZXZhbGVudDogVGVzdCBpdGVyYXRpb24g
IiArIGN1cnJlbnRUZXN0ICsgIiBmYWlsZWQuICIgKyB1cmxzVG9CZVBydW5lZFtpXS51cmwgKyAo
ZXhwZWN0ZWQgPyAiIHdhc24ndCAiIDogIiB3YXMgIikgKyAicHJldmFsZW50Iik7CisgICAgICAg
ICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg
ICBpZiAoZmFpbGVkKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRv
Q29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBp
bml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKHN0ZXApIHsKKyAgICAgICAgc3dpdGNoIChz
dGVwKSB7CisgICAgICAgICAgICAvLyBOb24tcHJldmFsZW50IHdpdGhvdXQgdXNlciBpbnRlcmFj
dGlvbiB0byBiZSBwcnVuZWQgZmlyc3QuCisgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbMF0u
dXJsLCBvbGRlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5k
UnVuVGVzdHMoMik7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSAyOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVuKHVy
bHNUb0JlUHJ1bmVkWzFdLnVybCwgbmV3ZXJUaW1lc3RhbXAsIGZ1bmN0aW9uKCkgeyBpbml0aWFs
aXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDMpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIC8vIFByZXZhbGVudCB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24gdG8gYmUg
cHJ1bmVkIHNlY29uZC4KKyAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh1cmxzVG9CZVBydW5lZFsyXS51
cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDQp
OyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgNDoKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5l
ZFsyXS51cmwsIG9sZGVyVGltZXN0YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3Rp
Y3NBbmRSdW5UZXN0cyg1KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIDU6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2UodXJsc1RvQmVQcnVuZWRbM10udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsgaW5p
dGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyg2KTsgfSk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIDY6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbM10udXJsLCBuZXdlclRpbWVzdGFtcCwg
ZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoNyk7IH0pOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgLy8gTm9uLXByZXZhbGVudCB3aXRoIHVz
ZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIHRoaXJkLgorICAgICAgICAgICAgY2FzZSA3Ogor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbih1cmxzVG9CZVBydW5lZFs0XS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXpl
U3RhdGlzdGljc0FuZFJ1blRlc3RzKDgpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgODoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFs0XS51cmwsIG9sZGVyVGltZXN0YW1wLCBmdW5jdGlv
bigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyg5KTsgfSk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDk6CisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHVybHNUb0JlUHJ1bmVkWzVd
LnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMo
MTApOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTA6Cisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQ
cnVuZWRbNV0udXJsLCBuZXdlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0
aXN0aWNzQW5kUnVuVGVzdHMoMTEpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIC8vIFByZXZhbGVudCB3aXRoIHVzZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIGxh
c3QuCisgICAgICAgICAgICBjYXNlIDExOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1bmVkWzZdLnVybCwgdHJ1ZSwg
ZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTIpOyB9KTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTI6CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHVybHNUb0Jl
UHJ1bmVkWzZdLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5k
UnVuVGVzdHMoMTMpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgMTM6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4o
dXJsc1RvQmVQcnVuZWRbNl0udXJsLCBvbGRlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRp
YWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTQpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgMTQ6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsc1RvQmVQcnVuZWRbN10udXJsLCB0cnVlLCBm
dW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxNSk7IH0pOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxNToKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odXJsc1RvQmVQ
cnVuZWRbN10udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRS
dW5UZXN0cygxNik7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSAxNjoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1
cmxzVG9CZVBydW5lZFs3XS51cmwsIG5ld2VyVGltZXN0YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlh
bGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxNyk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSAxNzoKKyAgICAgICAgICAgICAgICBjaGVja0lmUHJldmFsZW50
QWNjb3JkaW5nVG9Jbml0aWFsRXhwZWN0YXRpb24oMCwgdXJsc1RvQmVQcnVuZWQubGVuZ3RoKTsK
KyAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICB2YXIgY3VycmVudFRlc3Q7CisgICAgZnVuY3Rpb24gY2hlY2tT
dGF0aXN0aWNzQWZ0ZXJQcnVuaW5nKCkgeworICAgICAgICAvLyBQcnVuZWQgZW50cmllcyBzaG91
bGQgbm90IGJlIHByZXZhbGVudC4KKyAgICAgICAgY2hlY2tJZlByZXZhbGVudCgwLCBjdXJyZW50
VGVzdCwgZmFsc2UpOworICAgICAgICAvLyBOb24tcHJ1bmVkIGVudHJpZXMgc2hvdWxkIGtlZXAg
dGhlaXIgZXhwZWN0ZWQgc3RhdHVzLgorICAgICAgICBjaGVja0lmUHJldmFsZW50QWNjb3JkaW5n
VG9Jbml0aWFsRXhwZWN0YXRpb24oY3VycmVudFRlc3QsIHVybHNUb0JlUHJ1bmVkLmxlbmd0aCk7
CisgICAgICAgIHRlc3RQYXNzZWQoIlRlc3QgaXRlcmF0aW9uICIgKyBjdXJyZW50VGVzdCArICIg
cGFzc2VkLiIpOworICAgICAgICBpZiAoY3VycmVudFRlc3QgPCB1cmxzVG9CZVBydW5lZC5sZW5n
dGgpIHsKKyAgICAgICAgICAgICsrY3VycmVudFRlc3Q7CisgICAgICAgICAgICB0ZXN0UnVubmVy
Lmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0aXN0
aWNzQWZ0ZXJQcnVuaW5nKTsKKyAgICAgICAgICAgIGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVu
VGVzdHMoMSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBsZXQgZmlsbGVyVXJsOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGZpbGxl
clVybCA9ICJodHRwOi8vMTI3LjAuIiArIGN1cnJlbnRUZXN0ICsgIi4xOjgwMDAvdGVtcCI7Cisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKGZpbGxlclVy
bCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oZmlsbGVyVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2VlbihmaWxsZXJVcmws
IG5ld2VzdFRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9CisKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3Vs
ZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNS
ZW1vdmFsKDApOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1do
ZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NNYXhTdGF0aXN0aWNzRW50cmllcyh1cmxzVG9CZVBydW5lZC5sZW5ndGgpOworICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcnVuZUVudHJpZXNEb3duVG8odXJsc1RvQmVQ
cnVuZWQubGVuZ3RoKTsKKworICAgICAgICBjdXJyZW50VGVzdCA9IDE7CisgICAgICAgIHRlc3RS
dW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0
YXRpc3RpY3NBZnRlclBydW5pbmcpOworICAgICAgICBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1
blRlc3RzKDEpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hl
ZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdjMTQzOGIxODY0MDY0MmFhMTZmYzA2YjY5ZDg0MWZkZjNi
ZjE2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10
by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCBy
ZWRpcmVjdHMgZm9yIHNhbmRib3hlZCBpZnJhbWVzIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEy
Ny4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVk
QXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBp
cyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3Rp
bmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94
ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjY3MTEyMDUwNjgxODM5MWNhOTY3ZmYyNGZmZmMwNThjOTIxOWY0MQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5o
dG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBzYW5kYm94
ZWQgaWZyYW1lcyBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3lu
YyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVj
ZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewor
ICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0
cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxs
YmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAg
dmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBz
dGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShl
dmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gIm51bGwiKSB7CisgICAg
ICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIp
KTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2Vp
dmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2lu
KTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOwor
ICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0
KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNr
U3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8v
MTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0
dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEi
LCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRy
dWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAg
ICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc2NyaXB0cyIgc3JjPSJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3Qu
cGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHAvP3JlZGlyZWN0VG89aHR0cDovLzEyNy4wLjAuMTo4
MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2lmcmFtZS1yZXBvcnQtYmFjay1s
b2FkZWQuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Nh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRh
YmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdjMTQzOGIxODY0MDY0MmFhMTZmYzA2YjY5
ZDg0MWZkZjNiZjE2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9z
dC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIg
QEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBzYW5kYm94ZWQgaWZyYW1lcyBnZXQgY291bnRl
ZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxo
b3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRw
Oi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lz
dGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9z
dCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9j
YWxob3N0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8t
bG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjAyNmJkOWMwYzIxMmI3ZTVmMTY0
OWI1OTNiOTc4ODNjZjMxNDhmYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxv
Y2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0
aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3Igc2FuZGJveGVkIGlmcmFtZXMgZ2V0IGNvdW50
ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7
CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAo
dGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0
cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0
YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmlu
c3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJl
Y3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7
CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAg
IGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikgeworICAgICAgICAgICAgICAgIGlmIChldmVu
dC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBh
biB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxh
c3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0
c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7
CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAg
ICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZy
YW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAg
ICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFz
UmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsK
KyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3Rl
cmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3Qi
KScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYg
KGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRl
c3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1l
IHNhbmRib3g9ImFsbG93LXNjcmlwdHMiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocC8/cmVkaXJlY3RUbz1odHRw
Oi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJl
Y3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3Jlc291cmNlcy9pZnJhbWUtcmVwb3J0LWJhY2stbG9hZGVkLmh0bWwiPgorPC9pZnJh
bWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9u
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjIzNjU4Y2QzNDNmNTU2ZTBjMzQ0NzVlZjllZjQ1YzYyMGQ0ZDQyN2UKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBu
ZXN0ZWQgaW4gYSBzYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1Jl
Z2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4w
LjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNS
ZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0
cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdU
bygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQt
bmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1s
b2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wOTJkNTk5OTY0ZTdlNjJmZDA1ZmIwZDc4YWU1ZTI5NjYwNTdhMDY2Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEs
NTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVz
Y3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1l
IG5lc3RlZCBpbiBhIHNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7Cisg
ICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rp
b24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5l
ZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlk
U2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZh
bHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rp
b24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4g
PT09ICJudWxsIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBB
U1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5y
ZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdp
bjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENo
YWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAg
ICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9s
b2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRy
dWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0
cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1Rv
KCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAg
ICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVj
dENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQor
ICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNj
cmlwdHMiIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cmVzb3VyY2VzL3BhZ2Utd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1s
b2NhbGhvc3QtdG8taXAuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5k
Ym94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1s
b2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGlu
Zy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8t
aXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzY1OGNk
MzQzZjU1NmUwYzM0NDc1ZWY5ZWY0NWM2MjBkNGQ0MjdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0
aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10
by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAK
K1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBp
biBhIHNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJl
ZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikg
aXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0
aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BB
U1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRw
Oi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5n
LWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1p
cC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFi
YXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZGY4NmZlOGMzMjk0ZTI1MzkyMmMyNWVhMzc5MjdmZDVjOTQz
NmZmOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0
bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAg
IDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgbm9uLXNh
bmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBw
cm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKwor
ICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0
UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUp
OworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVj
b3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFs
bFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENo
YWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKwor
ICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYg
KGV2ZW50Lm9yaWdpbiA9PT0gIm51bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRh
dGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVu
ZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBh
Z2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hl
Y2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBz
aG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVV
bmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRp
cmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7
CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFz
dFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgp
OworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2Fu
ZGJveD0iYWxsb3ctc2NyaXB0cyIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcGFnZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QuaHRtbCI+Cis8L2lmcmFtZT4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJv
eGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1s
b2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNWM4NWVi
NDdlMGYwODQxNmU2MWZkMDE1ZmQ3YWUzY2I4NjZiNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3Rp
bmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3Qt
dG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQg
cmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hl
ZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVV
bmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFT
UyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6
Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4x
IiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRo
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2Fu
ZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10
by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNmU5NGE0NTk2OTg1
NGQzZTM4OGQxMGFhZGNhZjBhMWQyYTRkYWFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlm
cmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlw
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMg
Zm9yIGEgc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlmcmFtZSBn
ZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7Cisg
ICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2Us
IGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAg
ICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERh
dGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdl
c1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0
YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdl
SW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQg
PSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAg
ICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gIm51bGwiKSB7CisgICAgICAgICAgICAgICAg
aWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2Fn
ZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAg
ICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAg
aWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2Jz
ZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7Cisg
ICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJl
ZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikn
KTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdp
c3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4w
LjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xv
Y2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAg
ICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAg
ZmluaXNoVGVzdCgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc2NyaXB0cyIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgw
MDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcGFnZS13aXRoLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLmh0bWwiPgorPC9pZnJhbWU+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjcxNWM4NWViNDdlMGYwODQxNmU2MWZkMDE1ZmQ3YWUzY2I4NjZiNjkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1s
b2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQgaWZyYW1lIG5l
c3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEy
Ny4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVk
QXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBp
cyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3Rp
bmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94
ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9z
dC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZTE5ZGQxMDAyMTE1ZDhhMTk0ZmMyMjQxZDU4ZjRmODJl
MDAyYmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1s
CkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4K
KyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hl
ZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJv
cGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAg
ICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1
bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsK
KyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29y
ZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxT
dGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFp
bkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAg
ICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChl
dmVudC5vcmlnaW4gPT09ICJudWxsIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRh
LmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
ZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4
cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdl
SW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNr
ZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAg
ICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hv
dWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5k
ZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAg
ICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJl
Y3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNS
ZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOwor
CisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQ
YWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsK
KyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNhbmRi
b3g9ImFsbG93LXNjcmlwdHMiIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZGMwNzNkYTQ3Y2JhNDg2MDc3MjNkNGZk
YjYzY2JhMTU2ZDg3ZTYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0b20tcHJldmFsZW50LXJlc291cmNlLWlu
LWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3Qg
Zm9yIGVuYWJsaW5nIGRlYnVnIG1vZGUgYW5kIHRoYXQgaXQgYWxsb3dzIHNldHRpbmcgYSBjdXN0
b20gZG9tYWluIGFzIGEgcHJldmFsZW50IHJlc291cmNlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBodHRwOi8vbG9jYWxob3N0OjgwMDAgZ290IHNldCBhcyBhIGN1c3Rv
bSBwcmV2YWxlbnQgcmVzb3VyY2UgaW4gZGVidWcgbW9kZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVz
b3VyY2UtaW4tZGVidWctbW9kZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0b20tcHJldmFsZW50LXJlc291cmNlLWlu
LWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZmRhODEyMDE5YTllNzNmZjk1
NTg5MTVlMGY4ODkyNmE4ZDkwNDlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0b20tcHJldmFsZW50LXJlc291
cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVU
Ri04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgZm9yIGVuYWJs
aW5nIGRlYnVnIG1vZGUgYW5kIHRoYXQgaXQgYWxsb3dzIHNldHRpbmcgYSBjdXN0b20gZG9tYWlu
IGFzIGEgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwor
CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOwor
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQodGhpcmRQYXJ0eU9yaWdpbiArICIgYWxyZWFkeSBzZXQgYXMgcHJl
dmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZSh0aGlyZFBhcnR5T3JpZ2luLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUo
dHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQodGhpcmRQYXJ0eU9yaWdpbiArICIgZGlkbid0IGdl
dCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKHRoaXJkUGFydHlPcmlnaW4gKyAi
IGdvdCBzZXQgYXMgYSBjdXN0b20gcHJldmFsZW50IHJlc291cmNlIGluIGRlYnVnIG1vZGUuIik7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0RlYnVnTW9kZShm
YWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXBy
ZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVy
LXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2JkNTQzZWM5YWYzMjRiZDUwZGMxZDRjODZjZGIwOWU5
YzRkNWIyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1z
dWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUg
QEAKK1Rlc3RzIHRoYXQgb25seSB0aGUgb3JpZ2luIGlzIHNlbnQgYXMgcmVmZXJyZXIgaW4gcmVk
aXJlY3RzIHRvIHByZXZhbGVudCByZXNvdXJjZXMgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWZlcnJlciBpcyAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8t
b3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0bWwi
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCist
LS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK2h0dHA6Ly8xMjcuMC4w
LjE6ODAwMC8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNv
dXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVu
dC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMGY4YTJm
NDIwYjVhYTYyYzM3YTI1ZDRiZGRmZWQzM2EzM2JmYTVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVy
LXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS5o
dG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgb25seSB0aGUgb3Jp
Z2luIGlzIHNlbnQgYXMgcmVmZXJyZXIgaW4gcmVkaXJlY3RzIHRvIHByZXZhbGVudCByZXNvdXJj
ZXMgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVl
OworICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisKKyAgICBmdW5jdGlv
biBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3Jj
ID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVu
dC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAgdmFyIHJlZmVycmVyOworICAg
IHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgc2V0RW5hYmxlRmVhdHVy
ZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkxvY2FsaG9zdCB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVm
b3JlIHRoZSB0ZXN0IHN0YXJ0ZWQuIik7CisKKyAgICAgICAgZmV0Y2goInJlc291cmNlcy9lY2hv
LXJlZmVycmVyLnBocCIpLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIHJl
dHVybiByZXNwb25zZS50ZXh0KCk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24oZGF0YSkgewor
ICAgICAgICAgICAgcmVmZXJyZXIgPSBkYXRhOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJj
ZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRtbCIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIsIHRydWUsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVC
bG9ja2luZyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgb3BlbklmcmFtZSgicmVz
b3VyY2VzL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAg
ICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9y
LXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJy
ZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5Y2NiOWMyMWZmMDA3MWE5ODAyMzliN2I3OTNmNTUx
ODdlYmVlNWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQt
c3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYg
QEAKK1Rlc3RzIHRoYXQgb25seSB0aGUgb3JpZ2luIGlzIHNlbnQgYXMgcmVmZXJyZXIgZm9yIHBy
ZXZhbGVudCByZXNvdXJjZXMgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWZlcnJlciBpcyAiaHR0cDovLzEyNy4wLjAuMTo4
MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1w
cmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UuaHRtbCIKK1BBU1MgcmVmZXJy
ZXIgaXMgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC8iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUx
LS0+JworLS0tLS0tLS0KK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC8KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10
by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJl
ZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFi
YXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMTVkNGYwMzY2Zjk3Y2ZjZTk0MjhhNmE4NmU1MTU0ODM2MGUz
MjE3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJy
ZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRp
bC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRp
b24oIlRlc3RzIHRoYXQgb25seSB0aGUgb3JpZ2luIGlzIHNlbnQgYXMgcmVmZXJyZXIgZm9yIHBy
ZXZhbGVudCByZXNvdXJjZXMgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLiIpOworICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7
CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAg
ICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAg
ICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAg
ICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAg
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAgdmFy
IHJlZmVycmVyOworICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAg
c2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0ZWQuIik7CisKKyAgICAgICAgZmV0Y2go
InJlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIpLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsK
KyAgICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7CisgICAgICAgIH0pLnRoZW4oZnVu
Y3Rpb24oZGF0YSkgeworICAgICAgICAgICAgcmVmZXJyZXIgPSBkYXRhOworICAgICAgICAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZh
bGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sIik7CisKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxo
b3N0IiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IikpCisgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZh
bGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c1VwZGF0ZUNvb2tpZUJsb2NraW5nKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBm
ZXRjaCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3Vy
Y2VzL2VjaG8tcmVmZXJyZXIucGhwIikudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsKKyAgICAgICAgICAgICAg
ICAgICAgfSkudGhlbihmdW5jdGlvbihkYXRhKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZWZlcnJlciA9IGRhdGE7CisgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC8iKTsKKworICAgICAgICAg
ICAgICAgICAgICAgICAgb3BlbklmcmFtZSgicmVzb3VyY2VzL3JlZGlyZWN0LnBocD9yZWRpcmVj
dFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNl
cy9lY2hvLXJlZmVycmVyLnBocCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlv
bihlcnJvcikgeworICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IubWVz
c2FnZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBm
aW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgewor
ICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9KTsK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRp
b24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNz
aW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0MzkyMmZkOTNmMWE1NDQ0ZjJjYjA2ODg0ZWZjMzI5
MGJhZTUxZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxl
bnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBA
QAorVGVzdHMgdGhhdCB0aGUgc2Vzc2lvbiBpcyBzd2l0Y2hlZCB1cG9uIHRvcCBmcmFtZSBuYXZp
Z2F0aW9uIHRvIGEgcHJldmFsZW50IHJlc291cmNlIHdpdGggdXNlciBpbnRlcmFjdGlvbi4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgU2hvdWxkIGhhdmUgYW5kIGhhcyB0
aGUgc2Vzc2lvbiBjb29raWUuCitQQVNTIFNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHBlcnNpc3Rl
bnQgY29va2llLgorUEFTUyBPcmlnaW4gaGFzIGlzb2xhdGVkIHNlc3Npb24uCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9u
LW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gt
c2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFi
YXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI3MGMwMGIwNDgxNjY2MGJjODFkMGQ2ZWU4OWNhYTcwZTFm
NzRiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13
aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMTEgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRG
LTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRp
b24oIlRlc3RzIHRoYXQgdGhlIHNlc3Npb24gaXMgc3dpdGNoZWQgdXBvbiB0b3AgZnJhbWUgbmF2
aWdhdGlvbiB0byBhIHByZXZhbGVudCByZXNvdXJjZSB3aXRoIHVzZXIgaW50ZXJhY3Rpb24uIik7
CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBwcmV2YWxlbnRPcmlnaW4g
PSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBub25QcmV2YWxlbnRPcmlnaW4g
PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCBzZXNzaW9uQ29va2llTmFtZSA9
ICJzZXNzaW9uQ29va2llIjsKKyAgICBjb25zdCBwZXJzaXN0ZW50Q29va2llTmFtZSA9ICJwZXJz
aXN0ZW50Q29va2llIjsKKyAgICBjb25zdCB0d29NaW51dGVzSW5TZWNvbmRzID0gMTIwOworCisg
ICAgZnVuY3Rpb24gc2V0U2Vzc2lvbkNvb2tpZSgpIHsKKyAgICAgICAgZG9jdW1lbnQuY29va2ll
ID0gc2Vzc2lvbkNvb2tpZU5hbWUgKyAiPTE7IHBhdGg9LyI7CisgICAgfQorCisgICAgZnVuY3Rp
b24gc2V0UGVyc2lzdGVudENvb2tpZSgpIHsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gcGVy
c2lzdGVudENvb2tpZU5hbWUgKyAiPTE7IHBhdGg9LzsgTWF4LUFnZT0iICsgdHdvTWludXRlc0lu
U2Vjb25kcyArICI7IjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjaGVja0Nvb2tpZXMoc2hvdWxk
SGF2ZVNlc3Npb25Db29raWUsIHNob3VsZEhhdmVQZXJzaXN0ZW50Q29va2llKSB7CisgICAgICAg
IGxldCBoYXNTZXNzaW9uQ29va2llID0gKGRvY3VtZW50LmNvb2tpZSArICIiKS5pbmNsdWRlcyhz
ZXNzaW9uQ29va2llTmFtZSksCisgICAgICAgICAgICBoYXNQZXJzaXN0ZW50Q29va2llID0gKGRv
Y3VtZW50LmNvb2tpZSArICIiKS5pbmNsdWRlcyhwZXJzaXN0ZW50Q29va2llTmFtZSk7CisKKyAg
ICAgICAgaWYgKHNob3VsZEhhdmVTZXNzaW9uQ29va2llICYmIGhhc1Nlc3Npb25Db29raWUpCisg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91bGQgaGF2ZSBhbmQgaGFzIHRoZSBzZXNzaW9uIGNv
b2tpZS4iKTsKKyAgICAgICAgZWxzZSBpZiAoc2hvdWxkSGF2ZVNlc3Npb25Db29raWUgJiYgIWhh
c1Nlc3Npb25Db29raWUpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCBoYXZlIGJ1
dCBkb2Vzbid0IGhhdmUgdGhlIHNlc3Npb24gY29va2llLiIpOworICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSBlbHNlIGlmICghc2hv
dWxkSGF2ZVNlc3Npb25Db29raWUgJiYgaGFzU2Vzc2lvbkNvb2tpZSkgeworICAgICAgICAgICAg
dGVzdEZhaWxlZCgiU2hvdWxkbid0IGhhdmUgYnV0IGhhcyB0aGUgc2Vzc2lvbiBjb29raWUuIik7
CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlNob3VsZG4ndCBoYXZlIGFuZCBk
b2Vzbid0IGhhdmUgdGhlIHNlc3Npb24gY29va2llLiIpOworCisKKyAgICAgICAgaWYgKHNob3Vs
ZEhhdmVQZXJzaXN0ZW50Q29va2llICYmIGhhc1BlcnNpc3RlbnRDb29raWUpCisgICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJTaG91bGQgaGF2ZSBhbmQgaGFzIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4i
KTsKKyAgICAgICAgZWxzZSBpZiAoc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29raWUgJiYgIWhhc1Bl
cnNpc3RlbnRDb29raWUpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCBoYXZlIGJ1
dCBkb2Vzbid0IGhhdmUgdGhlIHBlcnNpc3RlbnQgY29va2llLiIpOworICAgICAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSBlbHNlIGlmICgh
c2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29raWUgJiYgaGFzUGVyc2lzdGVudENvb2tpZSkgeworICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkbid0IGhhdmUgYnV0IGhhcyB0aGUgcGVyc2lzdGVu
dCBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hK
U1Rlc3QpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlNob3VsZG4n
dCBoYXZlIGFuZCBkb2Vzbid0IGhhdmUgdGhlIHBlcnNpc3RlbnQgY29va2llLiIpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQubG9j
YXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24ocHJldmFsZW50
T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0U2Vzc2lv
bkNvb2tpZSgpOworICAgICAgICAgICAgICAgICAgICBzZXRQZXJzaXN0ZW50Q29va2llKCk7Cisg
ICAgICAgICAgICAgICAgICAgIGNoZWNrQ29va2llcyh0cnVlLCB0cnVlKTsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaGFzU3RhdGlzdGljc0lzb2xhdGVkU2Vzc2lvbihwcmV2
YWxlbnRPcmlnaW4pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPcmln
aW4gaGFzIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIk9yaWdpbiBoYXMgbm8g
aXNvbGF0ZWQgc2Vzc2lvbi4iKTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaHJlZiA9IG5vblByZXZhbGVudE9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
d2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9u
LWRhdGFiYXNlLmh0bWwjc3RlcDIiOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBpZiAoZG9j
dW1lbnQubG9jYXRpb24ub3JpZ2luICE9PSBub25QcmV2YWxlbnRPcmlnaW4pCisgICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIlN0ZXAgMiBpcyBub3Qgb24gIiArIG5vblByZXZhbGVudE9y
aWdpbiArICIuIik7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UocHJldmFsZW50T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHByZXZhbGVudE9yaWdpbikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQocHJldmFsZW50T3JpZ2luICsgIiBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291
cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHBy
ZXZhbGVudE9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1v
bi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwj
c3RlcDQiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0
IjoKKyAgICAgICAgICAgICAgICBjaGVja0Nvb2tpZXModHJ1ZSwgdHJ1ZSk7CisgICAgICAgICAg
ICAgICAgaWYgKHRlc3RSdW5uZXIuaGFzU3RhdGlzdGljc0lzb2xhdGVkU2Vzc2lvbihwcmV2YWxl
bnRPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPcmlnaW4gaGFzIGlz
b2xhdGVkIHNlc3Npb24uIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJPcmlnaW4gaGFzIG5vIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAg
ICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiVW5rbm93biBoYXNoLiIpOworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAo
ZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50Lmxv
Y2F0aW9uLm9yaWdpbiAhPT0gcHJldmFsZW50T3JpZ2luKQorICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiVGVzdCBpcyBub3Qgc3RhcnRpbmcgb3V0IG9uICIgKyBwcmV2YWxlbnRPcmlnaW4gKyAiLiIp
OworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudE9yaWdpbikpCisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZChwcmV2YWxlbnRPcmlnaW4gKyAiIHdhcyBjbGFzc2lm
aWVkIGFzIHByZXZhbGVudCByZXNvdXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLiIpOworICAg
ICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAgIH0pOwor
ICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4t
Y3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1j
cm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
ODQyNzMwYTQ1ZGFkZTZlYTZmMTVkZWNjMzlhN2U1YTlhMGUzMTJjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50
ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxNCBAQAorVGVzdHMgdGhhdCB1c2VyIGludGVyYWN0aW9uIGlzIGFsd2F5cyBs
b2dnZWQgZm9yIHRoZSB0b3AgZG9jdW1lbnQvZnJhbWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiBpcyB0b3BGcmFtZU9yaWdp
bgorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BG
cmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyB0cnVl
CitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZy
YW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJh
bWUtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJh
c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42ZWY2MjNjMTgwZDYzZDNjNmI2MTBlZWIzNzFiZDg4NDU4NjFk
ZDhlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1k
YXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHVzZXIgaW50ZXJhY3Rpb24gaXMgYWx3YXlzIGxvZ2dl
ZCBmb3IgdGhlIHRvcCBkb2N1bWVudC9mcmFtZS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOwor
dGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKworY29uc3QgdG9wRnJhbWVPcmln
aW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKK2NvbnN0IHN1YkZyYW1lT3JpZ2luID0gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisKK2Z1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50
SWQpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJ
ZCk7CisgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNl
dFdpZHRoIC8gMjsKKyAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVu
dC5vZmZzZXRIZWlnaHQgLyAyOworICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2Vu
dGVyWSk7Cit9CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgc2hvdWxkQmVUcnVlKCJ0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdp
bikiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKworICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cit9CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHNl
dEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVy
KSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5E
YXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0
YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGZpbmlzaFRlc3QpOworICAg
ICAgICB9CisKKyAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiIsICJ0
b3BGcmFtZU9yaWdpbiIpOworCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAg
ICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIp
OworCisgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RGcmFtZSIpOworICAgICAgICB9
CisgICAgfSk7Cit9OworPC9zY3JpcHQ+Cis8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUiIHNyYz0iaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2R1bW15
Lmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25s
eS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
dXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1v
Zi10aW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDMyYmM4ZWQ3MzgxZmJj
NDk4ZGIzNGMwZmIzYmU3YTU3YmQ5MWQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1y
ZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGVzdHMgdGhhdCB1c2VyIGludGVyYWN0aW9uIGlzIG5v
dCByZXBvcnRlZCByZXBlYXRlZGx5IHdpdGhpbiBhIHNob3J0IHBlcmlvZCBvZiB0aW1lLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC5sb2NhdGlvbi5vcmln
aW4gaXMgdG9wRnJhbWVPcmlnaW4KK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxz
ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BG
cmFtZU9yaWdpbikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIGlzIGZhbHNl
CitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZy
YW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorVGhpcyBpcyB0aGUgdGVzdCBlbGVtZW50
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlv
ZC1vZi10aW1lLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGlu
LXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTVkZWI5NzI5
YmQ1YjliOTYzN2MwOGI5OWM2MTMxNTM3YjYxYWEzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9u
LW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUtZGF0YWJhc2Uu
aHRtbApAQCAtMCwwICsxLDY2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgZGVz
Y3JpcHRpb24oIlRlc3RzIHRoYXQgdXNlciBpbnRlcmFjdGlvbiBpcyBub3QgcmVwb3J0ZWQgcmVw
ZWF0ZWRseSB3aXRoaW4gYSBzaG9ydCBwZXJpb2Qgb2YgdGltZS4iKTsKKyAgICBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCI7CisgICAgY29uc3Qgc3ViRnJhbWVPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwIjsKKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SWQsIGNhbGxiYWNr
KSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVu
dElkKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50
Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRv
cCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVB
dChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQcm9taXNlIHJlamVjdGVkLiIp
OworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmlyc3RJ
bnRlcmFjdGlvbigpIHsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIik7CisgICAgICAgIHNo
b3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHN1YkZyYW1lT3JpZ2luKSIpOworICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RFbGVtZW50
Iiwgc2Vjb25kSW50ZXJhY3Rpb24pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNlY29uZEludGVy
YWN0aW9uKCkgeworICAgICAgICBzaG91bGRCZVRydWUoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
SGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAgICBzaG91bGRC
ZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJG
cmFtZU9yaWdpbikiKTsKKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3Jp
Z2luLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgi
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmln
aW4pIik7CisKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RFbGVtZW50Iiwg
ZmluaXNoVGVzdCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1
bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAg
ICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewor
ICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgc2hvdWxkQmUoImRv
Y3VtZW50LmxvY2F0aW9uLm9yaWdpbiIsICJ0b3BGcmFtZU9yaWdpbiIpOworCisgICAgICAgICAg
ICBmaXJzdEludGVyYWN0aW9uKCk7CisgICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KKzxk
aXYgaWQ9InRlc3RFbGVtZW50Ij5UaGlzIGlzIHRoZSB0ZXN0IGVsZW1lbnQ8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0
YS1yZW1vdmFsLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdl
YnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjI4
Yzk5YjMwMjQ0NDU2MGI1MWIzNDhiOTYwMjFiMDU4NTZlYTNjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJh
Y3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3RzIHRoYXQgdXNlciBpbnRlcmFjdGlvbiBpcyBy
ZXBvcnRlZCBhZnRlciBoaXN0b3J5IHJlbW92YWwgc2luY2UgdGhhdCBtZWFucyBhbGwgc3RhdGlz
dGljcyBoYXZlIGJlZW4gcmVzZXQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiBpcyB0b3BGcmFtZU9yaWdpbgorUEFTUyB0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikg
aXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rp
b24oc3ViRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
SGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyB0cnVlCitQQVNTIHRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBp
cyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bih0b3BGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NI
YXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIGlzIHRydWUKK1BBU1MgdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlz
IGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
K1RoaXMgaXMgdGhlIHRlc3QgZWxlbWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0
ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFm
dGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmJlYjQy
Zjk0MmYxYjY4ZmZhY2ZlMGVmYjFmZTkyMzk2MmYyMjY4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0
aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLmh0bWwKQEAg
LTAsMCArMSw2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9u
KCJUZXN0cyB0aGF0IHVzZXIgaW50ZXJhY3Rpb24gaXMgcmVwb3J0ZWQgYWZ0ZXIgaGlzdG9yeSBy
ZW1vdmFsIHNpbmNlIHRoYXQgbWVhbnMgYWxsIHN0YXRpc3RpY3MgaGF2ZSBiZWVuIHJlc2V0LiIp
OworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4g
PSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdWJGcmFtZU9yaWdpbiA9ICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiOworCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVs
ZW1lbnRJZCwgY2FsbGJhY2spIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChlbGVtZW50SWQpOworICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zm
c2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9
IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBV
SUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlBy
b21pc2UgcmVqZWN0ZWQuIik7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBmaXJzdEludGVyYWN0aW9uKCkgeworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdp
bikiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNI
YWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7CisgICAgICAgIGFjdGl2YXRlRWxl
bWVudCgidGVzdEVsZW1lbnQiLCBjbGVhcldlYnNpdGVEYXRhKTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBjbGVhcldlYnNpdGVEYXRhKCkgeworICAgICAgICBzaG91bGRCZVRydWUoInRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOwor
ICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKworICAgICAgICBpZiAodGVzdFJ1bm5lcikK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc0NsZWFyVGhyb3VnaFdlYnNpdGVEYXRh
UmVtb3ZhbChzZWNvbmRJbnRlcmFjdGlvbik7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2Vjb25k
SW50ZXJhY3Rpb24oKSB7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAgICBh
Y3RpdmF0ZUVsZW1lbnQoInRlc3RFbGVtZW50IiwgZmluaXNoVGVzdCk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAg
ICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBvbmxvYWQgPSBmdW5jdGlvbigpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHNob3VsZEJlKCJk
b2N1bWVudC5sb2NhdGlvbi5vcmlnaW4iLCAidG9wRnJhbWVPcmlnaW4iKTsKKworICAgICAgICAg
ICAgZmlyc3RJbnRlcmFjdGlvbigpOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+Cis8
ZGl2IGlkPSJ0ZXN0RWxlbWVudCI+VGhpcyBpcyB0aGUgdGVzdCBlbGVtZW50PC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IGFhYmNmOWE4NjJkMWVlMzNjMzY1ZmJkNmI0YTIyNzQ0ZmFhOTBmY2EuLjdmZWU3NDk1ZDJj
OGU4NzUwYjIzMzNkNDM0MTMzZWFlZDdmOGI0YTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy9UZXN0RXhwZWN0YXRpb25zCkBAIC05ODYsNiArOTg2LDggQEAgaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL2tleWJvYXJkLWV2ZW50cy1kdXJpbmctcHJvdmlzaW9uYWwtbmF2aWdhdGlvbi5odG1sIFsg
U2tpcAogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2tleWJvYXJkLWV2ZW50cy1kdXJpbmctcHJvdmlz
aW9uYWwtc3ViZnJhbWUtbmF2aWdhdGlvbi5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi5odG1s
IFsgU2tpcCBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJl
c291cmNlLXVuaGFuZGxlZC1rZXlkb3duLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFi
YXNlLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2
YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UuaHRtbCBbIFNraXAgXQog
bWVkaWEvYXVkaW8tcGxheWJhY2stdm9sdW1lLWNoYW5nZXMtd2l0aC1yZXN0cmljdGlvbnMtYW5k
LXVzZXItZ2VzdHVyZXMuaHRtbCBbIFNraXAgXQogbWVkaWEvYXVkaW8tcGxheWJhY2stdm9sdW1l
LWNoYW5nZXMtd2l0aC1yZXN0cmljdGlvbnMuaHRtbCBbIFNraXAgXQogbWVkaWEvcGljdHVyZS1p
bi1waWN0dXJlLWludGVycnVwdGlvbi5odG1sIFsgU2tpcCBdCkBAIC0yNzc5LDYgKzI3ODEsOSBA
QCBmYXN0L2NhbnZhcy93ZWJnbC9yZWFkUGl4ZWxzLWZsb2F0Lmh0bWwgWyBTa2lwIF0KIHdlYmtp
dC5vcmcvYi8xNzQxMjAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50
ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS5odG1sIFsgU2tpcCBdCiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVk
LW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVy
LXdlYnNpdGUtZGF0YS1yZW1vdmFsLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xNzQxMjAg
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jv
c3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS5odG1sIFsgU2tpcCBdCitodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Ut
d2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLmh0bWwgWyBTa2lwIF0KK2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFm
dGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLmh0bWwgWyBTa2lwIF0KICMgU2tpcHBl
ZCBpbiBXSzIgZXhwZWN0YXRpb25zIGJlY2F1c2UgY29va2llIHBhcnRpdGlvbmluZyBpcyBvbmx5
IGF2YWlsYWJsZSBpbiBtYWNPUyBIaWdoIFNpZXJyYSBhbmQgaU9TIDExLgogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi5odG1sIFsgUGFzcyBdCiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llcy13aXRoLWFuZC13aXRob3V0LXVz
ZXItaW50ZXJhY3Rpb24uaHRtbCBbIFBhc3MgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379091</attachid>
            <date>2019-09-18 17:54:26 -0700</date>
            <delta_ts>2019-09-20 15:05:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195420-20190918175426.patch</filename>
            <type>text/plain</type>
            <size>374529</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5ODM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTlmYTg2ZjUzZTBmODYz
NjY1MDNmNTgxMDc5YjhlNDU5NDA5MjdiYS4uODZiOTI5YWZhYTVkMWQ2MjQ0MWE0OWQ1ZTA2MTQy
MTZhZjdmNmY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDE5LTA5LTE4ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBM
YXlvdXRUZXN0cyB1c2luZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFNRTGl0ZSBiYWNrZW5kICgx
OTU0MjApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTU0MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjEzNTUxPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwK
KyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2lu
Zy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZv
ci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNl
dC1pbi1qcy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgt
bGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1k
YXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVy
eS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbAorICAg
ICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQt
cmVzb3VyY2UtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRo
b3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUt
b3JpZ2lucy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNv
dXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAg
ICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZh
bGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lu
cy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGly
ZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJl
c291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAg
ICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50
LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10
by1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVj
dC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJh
bWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZl
cnktcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbAorICAg
ICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1l
bW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJz
aXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tp
ZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0
LWFjY2Vzc2libGUtY29va2llcy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0
aW9uLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNzLWZvci1zaW1wbGUt
dG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0
LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQt
d2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdh
dGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJs
ZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1y
ZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3Vy
Y2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNl
cy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0LWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24t
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2Uu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
bi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3Qt
ZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQt
bmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhv
c3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1l
LXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0
YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFs
ZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRh
dGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVu
dC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJj
ZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC1kYXRhYmFzZS5odG1sCisgICAgICAgICAg
ICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNl
LXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFz
ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2Uu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Nh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRh
YmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVk
aXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8t
bG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5l
c3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8t
aXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1k
ZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1z
dWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3It
cHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1u
YXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVy
YWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24t
b25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNl
ci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFz
ZS5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaDoKKyAgICAg
ICAgQWRkZWQgV0VCQ09SRV9FWFBPUlQgcHJlZml4IHRvIDIgZnVuY3Rpb25zIG5lZWRlZCBpbiB0
aGUgSVRQIERhdGFiYXNlCisgICAgICAgIHRvIGNsZWFyIG91dCB0aGUgZGF0YWJhc2UuCisKIDIw
MTktMDktMTMgIFJ1c3NlbGwgRXBzdGVpbiAgPHJlcHN0ZWluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ5NzA5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmZWRiN2ZlZDlk
YzEzOWU2MWRjNTAyMTU4MjFiOWRjZWRhNjVjNGQyLi5hMGEyMTU5ZWUxMzY2MWQzNDJlYTY0MWJl
ODdkYWE4YzEzNzMyMzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1NCBAQAorMjAxOS0wOS0xOCAg
S2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKyAgICAgICAgRW5hYmxl
IExheW91dFRlc3RzIHVzaW5nIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgU1FMaXRlIGJhY2tlbmQg
KDE5NTQyMCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5NTQyMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQyMTM1NTE+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlKToKKyAgICAgICAgQWRkZWQgYXV0b3ZhY3V1bWluZyB0
byB0aGUgY29uc3RydWN0b3IgdG8gYXZvaWQgbWFudWFsbHkgY2FsbGluZworICAgICAgICBydW5W
YWN1dW1Db21tYW5kKCkuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OnByZXBhcmVTdGF0ZW1lbnRzKToKKyAgICAgICAgQWRkZWQgMiBzdGF0
ZW1lbnRzIHRoYXQgd2VyZSBub3QgYmVpbmcgcHJlcGFyZWQuCisKKyAgICAgICAgKFdlYktpdDo6
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlbGF0aW9uc2hpcEV4aXN0cyBj
b25zdCk6CisgICAgICAgIENvcnJlY3RlZCBpbmNvcnJlY3QgY2FwaXRhbGl6YXRpb24uIEFkZGVk
IGNoZWNrIGZvciBudWxsb3B0IGluIGNhc2UKKyAgICAgICAgZG9tYWluSUQgaXMgZm9yIGEgZG9t
YWluIG5vdCBpbiB0aGUgZGF0YWJhc2UgeWV0LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkb21haW5JRCBjb25zdCk6CisgICAgICAgIENo
YW5nZWQgcmV0dXJuIHZhbHVlIHRvIE9wdGlvbmFsPHVuc2lnbmVkPi4gU29tZSB0ZXN0cyB3ZXJl
IGRpcmVjdGx5CisgICAgICAgIGNoZWNraW5nIGZvciBzdWJmcmFtZXMgdW5kZXIgdG9wIGZyYW1l
IGRvbWFpbnMgb24gZG9tYWlucyB0aGF0IGhhZAorICAgICAgICBub3QgYmVlbiBpbnNlcnRlZCB5
ZXQuIE5vdywgZG9tYWluSUQoKSB3b24ndCBjcmFzaCBidXQgd2lsbCByZXR1cm4KKyAgICAgICAg
YSBudWxsb3B0IHZhbHVlIHdoaWNoIGNhbiBiZSBjaGVja2VkIHRvIGtub3cgdGhhdCB0aGUgdGVz
dHMgZmFpbGVkLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjppbnNlcnREb21haW5SZWxhdGlvbnNoaXBzKToKKyAgICAgICAgQWRkZWQgYSBj
aGVjayB0byBhc3N1cmUgZG9tYWluSUQgZXhpc3RzIGFuZCB1cGRhdGVkIHRoZSBkb21haW5JRAor
ICAgICAgICBpbnRlcmFjdGlvbnMgdG8gd29yayBhcyBPcHRpb25hbHMuCisKKyAgICAgICAgKFdl
YktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBvcHVsYXRlRnJvbU1l
bW9yeVN0b3JlKToKKyAgICAgICAgTW92ZWQgdGhlIHByZXBhcmVTdGF0ZW1lbnRzKCkgY2FsbCBh
ZnRlciB0aGUgdmFjdXVtIGNvbW1hbmQgaW4gdGhlIGNhc2UKKyAgICAgICAgd2hlcmUgdGhlIGRh
dGFiYXNlIGlzIGVtcHR5LiBPdGhlcndpc2UgY2FsbGVkIGl0IGJlZm9yZSByZXR1cm5pbmcuCisK
KyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJl
Y3Vyc2l2ZWx5RmluZE5vblByZXZhbGVudERvbWFpbnNUaGF0UmVkaXJlY3RlZFRvVGhpc0RvbWFp
bik6CisgICAgICAgIEFkZGVkIGEgc3BhY2UgdG8gdGhlIFNRTCBjb21tYW5kcyB0byBjb3JyZWN0
IHRoZSBzeW50YXguCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OmZpbmROb3RWZXJ5UHJldmFsZW50UmVzb3VyY2VzKToKKyAgICAgICAgQ29y
cmVjdGVkIGEgYnVnIGluIHRoZSBTUUwgY29tbWFuZCBmb3IgcXVlcnlpbmcKKyAgICAgICAgc3Vi
ZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluLiBUaGUgb2xkIHF1ZXJ5IHdhcyBhc2tpbmcgZm9yIHN1
YnJlc291cmNlLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpyZWNsYXNzaWZ5UmVzb3VyY2VzKToKKyAgICAgICAgU3BlbGxpbmcgZml4Lgor
CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpn
cmFuZGZhdGhlckRhdGFGb3JEb21haW5zKToKKyAgICAgICAgVGhlIGdyYW5kZmF0aGVyaW5nLmh0
bWwgdGVzdCB3YXMgZmFpbGluZyBiZWNhdXNlIGRvbWFpbnMgd2VyZSBiZWluZworICAgICAgICAi
c2V0IiB0byBncmFuZGZhdGhlcmVkIGluIHRoZSBkYXRhYmFzZSBiZWZvcmUgYmVpbmcgaW5zZXJ0
ZWQuIFRoaXMgZml4CisgICAgICAgIGVuc3VyZXMgYWxsIGRvbWFpbnMgYmVmb3JlIHNldHRpbmcg
dGhlIGdyYW5kZmF0aGVyaW5nIGZsYWcuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbik6CisgICAgICAgIE11
bHRpcGxlIHRlc3RzIHdlcmUgZmFpbGluZyBiZWNhdXNlIHRoZSBxdWVyeSB0byBpbnNlcnQgdGhl
IHJlbGF0aW9uc2hpcAorICAgICAgICBmb3IgdGhlIHNvdXJjZSBkb21haW4gcmVsaWVzIG9uIHRo
ZSB0YXJnZXQgZG9tYWluIGJlaW5nIGluIHRoZQorICAgICAgICBPYnNlcnZlZERvbWFpbnMgdGFi
bGUuIFRoaXMgcGF0Y2ggZW5zdXJlcyBhbGwgZG9tYWlucyBhcmUgYWRkZWQgYmVmb3JlCisgICAg
ICAgIHBlcmZvcm1pbmcgdGhlIHF1ZXJ5LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNIYWRVc2VySW50ZXJhY3Rpb24pOgorICAgICAg
ICBUaGUgU1FMIHN0YXRlbWVudCB3YXMgYmVpbmcgYm91bmQgdG8gYSB2YWx1ZSBhbmQgbm90IGJl
aW5nIHJlc2V0LiBUaGlzCisgICAgICAgIHBhdGNoIHJlc2V0cyB0aGUgc3RhdGVtZW50IGFmdGVy
IGJpbmRpbmcuIEFkZGl0aW9uYWxseSwgdGhlIHN0ZXAoKQorICAgICAgICBmdW5jdGlvbiB3YXMg
YmVpbmcgY29tcGFyZWQgdG8gU1FMSVRFX0RPTkUgaW5zdGVhZCBvZiBTUUxJVEVfUk9XLAorICAg
ICAgICBjYXVzaW5nIGFuIGVycm9yIGlmIHRoZSBxdWVyeSByZXR1cm5lZCByZXN1bHRzLiBUaGUK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCkgd2FzIGNhdXNpbmcgbnVsbCBzZWFyY2hlcyB0
byBjcmFzaCBpbnN0ZWFkIG9mCisgICAgICAgIHJldHVybmluZyBmYWxzZSAoaS5lLiBpZiBhIGRv
bWFpbiBpcyBub3QgaW4gdGhlIGRhdGFiYXNlIGl0IHNob3VsZAorICAgICAgICByZXR1cm4gdGhh
dCBpdCBoYXMgbm8gdXNlciBpbnRlcmFjdGlvbiBpbnN0ZWFkIG9mIGNyYXNoaW5nKS4KKworICAg
ICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0UHJl
dmFsZW50UmVzb3VyY2UpOgorICAgICAgICBVcGRhdGVkIGRvbWFpbklEIGNhbGwgdG8gYWN0IGFz
IGFuIE9wdGlvbmFsLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpwcmVkaWNhdGVWYWx1ZUZvckRvbWFpbiBjb25zdCk6CisgICAgICAgIFRo
ZSBTUUwgc3RhdGVtZW50IHdhcyBiZWluZyBib3VuZCB0byBhIHZhbHVlIGFuZCBub3QgYmVpbmcg
cmVzZXQuIFRoaXMKKyAgICAgICAgcGF0Y2ggcmVzZXRzIHRoZSBzdGF0ZW1lbnQgYWZ0ZXIgYmlu
ZGluZy4gU1FMSVRFX0RPTkUgY2hhbmdlZCB0bworICAgICAgICBTUUxJVEVfUk9XIHRvIHJldHVy
biBub24tZW1wdHkgcXVlcnkgcmVzdWx0cy4gQVNTRVJUX05PVF9SRUFDSEVEKCkKKyAgICAgICAg
cmVtb3ZlZCBmb3IgdGhlIHNhbWUgcmVhc29ucyBhcyBhYm92ZS4KKworICAgICAgICAoV2ViS2l0
OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZW5zdXJlUmVzb3VyY2VTdGF0
aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4pOgorICAgICAgICBGaXhlZCB0aGUgcmVsZWFzZSBs
b2cgc3RhdGVtZW50IHdoaWNoIHdhcyBsb2dnaW5nIHRoZSB3cm9uZyBmdW5jdGlvbgorICAgICAg
ICBuYW1lLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpjbGVhckRhdGFiYXNlQ29udGVudHMpOgorICAgICAgICBDbGVhcnMgdGhlIGRhdGFi
YXNlIGFuZCByZWJ1aWxkcyB0aGUgdGFibGVzIG9uIGEgY2xlYXIgY29tbWFuZCB0bworICAgICAg
ICBtYXRjaCB0aGUgZnVuY3Rpb25hbGl0eSBpbiB0aGUgTWVtb3J5IFN0b3JlLgorCisgICAgICAg
IChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhcik6Cisg
ICAgICAgIENhbGwgdGhlIGNsZWFyRGF0YWJhc2VDb250ZW50cyBmdW5jdGlvbiB0byBtYXRjaCB0
aGUgZnVuY3Rpb25hbGl0eQorICAgICAgICBpbiB0aGUgTWVtb3J5IFN0b3JlLgorCisgICAgICAg
IChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNVc2VyR3Jh
bnRlZFN0b3JhZ2VBY2Nlc3NUaHJvdWdoUHJvbXB0IGNvbnN0KToKKyAgICAgICAgVXBkYXRlZCBk
b21haW5JRCBjYWxsIHRvIGFjdCBhcyBhbiBPcHRpb25hbC4KKworICAgICAgICAoV2ViS2l0OjpS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVW5leHBpcmVkUmVjZW50
VXNlckludGVyYWN0aW9uKToKKyAgICAgICAgVGVzdHMgd2VyZSBmYWlsaW5nIGJlY2F1c2Ugc2hv
dWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3IoKSB3YXMgbm90CisgICAgICAgIGNoZWNraW5nIGZv
ciBleHBpcmVkIHVzZXIgaW50ZXJhY3Rpb24uIE1hdGNoZWQgZnVuY3Rpb25hbGl0eSBpbiB0aGUK
KyAgICAgICAgTWVtb3J5IFN0b3JlLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvcik6Cisg
ICAgICAgIFRlc3RzIHdlcmUgZmFpbGluZyBiZWNhdXNlIHNob3VsZFJlbW92ZUFsbFdlYnNpdGVE
YXRhRm9yKCkgd2FzIG5vdAorICAgICAgICBjaGVja2luZyBmb3IgZXhwaXJlZCB1c2VyIGludGVy
YWN0aW9uLiBNYXRjaGVkIGZ1bmN0aW9uYWxpdHkgaW4gdGhlCisgICAgICAgIE1lbW9yeSBTdG9y
ZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6cmVnaXN0cmFibGVEb21haW5zVG9SZW1vdmVXZWJzaXRlRGF0YUZvcik6CisgICAgICAgIFNw
ZWxsaW5nIGZpeC4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6cHJ1bmVTdGF0aXN0aWNzSWZOZWVkZWQpOgorICAgICAgICBMYXN0IHNlZW4g
c2hvdWxkIGJlIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIgYmVjYXVzZSB5b3Ugd2FudCB0bwor
ICAgICAgICBwcnVuZSB0aGUgb2xkZXIgc3RhdGlzdGljcyBmaXJzdCwgd2hpY2ggd2lsbCBoYXZl
IGEgbG93ZXIgbGFzdFNlZW4KKyAgICAgICAgZmllbGQgKHNlY29uZHNTaW5jZUVwb2NoKCkgd2ls
bCBiZSBsb3dlciBmb3Igb2xkZXIgdmFsdWVzKS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFG
b3IgY29uc3QpOiBEZWxldGVkLgorICAgICAgICBEZWxldGVkIGNvbnN0IHNwZWNpZmllciBiZWNh
dXNlIHRoZSBmdW5jdGlvbiBuZWVkcyB0byBjbGVhciB0aGUKKyAgICAgICAgZGF0YWJhc2UuCisK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmg6CisgICAgICAgIERlY2xhcmVkIG5ldyBmdW5jdGlvbnMuIFVwZGF0
ZWQgc3BlbGxpbmcgZXJyb3IgKHJlZ2lzdGVyYWJsZSAtLT4KKyAgICAgICAgcmVnaXN0cmFibGUp
LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSk6CisgICAgICAgIElU
UCBkYXRhYmFzZSBmbGFnIG5vdyBpcyBzdG9yZWQgaW4gdGhlIE5ldHdvcmtQcm9jZXNzLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAg
U2V0IHRoZSBJVFAgZGF0YWJhc2UgZmxhZyB3aGljaCBpcyBub3cgc3RvcmVkIGluIHRoZSBOZXR3
b3JrIFByb2Nlc3MuCisKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFkZFdlYnNp
dGVEYXRhU3RvcmUpOgorICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50
bHkgd2FzIG5vdCBnZXR0aW5nIGNhbGxlZCBvbiB0aGUKKyAgICAgICAgV2ViS2l0VGVzdFJ1bm5l
ciByZXNvdXJjZUxvYWRTdGF0aXN0aWNzIHBhdGguIFRoaXMgd2FzIHByZXZlbnRpbmcKKyAgICAg
ICAgdGhlIGRhdGFiYXNlIGZpbGUgZnJvbSBvcGVuaW5nLgorCisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjpzZXRVc2VJVFBEYXRhYmFzZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjppc0lUUERhdGFiYXNlRW5hYmxlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgUGFzc2VkIHRoZSBzZXRVc2VJVFBEYXRhYmFzZSBm
bGFnIHRvIHRoZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbgorICAgICAgICBvZiB0aGUgc3RhdGlz
dGljcyBzdG9yZSB0byBlbmFibGUgdGhlIGRhdGFiYXNlIGJhY2tlbmQuCisKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtTZXNzaW9uOjpyZWNyZWF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY1N0b3JlKToKKyAgICAgICAg
RGVzdHJveSBvbGQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIGFuZCBjcmVhdGUgYSBu
ZXcgb25lIHVzaW5nCisgICAgICAgIHRoZSBJVFAgZGF0YWJhc2UuCisKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0
VXNlSVRQRGF0YWJhc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRh
U3RvcmVSZWYuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0VXNlSVRQ
RGF0YWJhc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFVzZUlUUERhdGFiYXNl
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgor
ICAgICAgICBQYXNzZWQgdGhlIHNldFVzZUlUUERhdGFiYXNlIGZsYWcgdG8gdGhlIGluaXRpYWxp
emF0aW9uIGZ1bmN0aW9uCisgICAgICAgIG9mIHRoZSBzdGF0aXN0aWNzIHN0b3JlIHRvIGVuYWJs
ZSB0aGUgZGF0YWJhc2UgYmFja2VuZC4KKwogMjAxOS0wOS0xMyAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEF1eGlsaWFyeVByb2Nlc3NQcm94
eTo6c2VuZFdpdGhBc3luY1JlcGx5IHNob3VsZCBxdWV1ZSB1cCBtZXNzYWdlcyBpZiBzZW50IHdo
aWxlIHRoZSBwcm9jZXNzIGlzIHN0YXJ0aW5nIGxpa2UgaXQgZG9lcyBtZXNzYWdlcyB3aXRob3V0
IHJlcGxpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVE
YXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgK
aW5kZXggMTQ5ODY2ZmJjMTE5N2JhMDlkYTIxNTc1ZjFjZWFmYWQ2NDE5ZmU2Yi4uNTIyNGYxZTc3
N2M1NmJlZmIzZDY2ZjhlMDU4OGFkMDA4YTIwNDI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAg
IGJvb2wgcmV0dXJuc0F0TGVhc3RPbmVSZXN1bHQoY29uc3QgU3RyaW5nJik7CiAgICAgCiAgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCB0YWJsZUV4aXN0cyhjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lk
IGNsZWFyQWxsVGFibGVzKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhckFsbFRhYmxl
cygpOwogICAgIFdFQkNPUkVfRVhQT1JUIGludCBydW5WYWN1dW1Db21tYW5kKCk7CiAgICAgaW50
IHJ1bkluY3JlbWVudGFsVmFjdXVtQ29tbWFuZCgpOwogICAgIApAQCAtMTI1LDcgKzEyNSw3IEBA
IHB1YmxpYzoKICAgICAvLyAgICAgICAgICAgICAgIGZpbGUsIGJ1dCByZW1vdmVzIHRoZSBlbXB0
eSBwYWdlcyBvbmx5IHdoZW4gUFJBR01BIElOQ1JFTUFOVEFMX1ZBQ1VVTQogICAgIC8vICAgICAg
ICAgICAgICAgaXMgY2FsbGVkLgogICAgIGVudW0gQXV0b1ZhY3V1bVByYWdtYSB7IEF1dG9WYWN1
dW1Ob25lID0gMCwgQXV0b1ZhY3V1bUZ1bGwgPSAxLCBBdXRvVmFjdXVtSW5jcmVtZW50YWwgPSAy
IH07Ci0gICAgYm9vbCB0dXJuT25JbmNyZW1lbnRhbEF1dG9WYWN1dW0oKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBib29sIHR1cm5PbkluY3JlbWVudGFsQXV0b1ZhY3V1bSgpOwogCiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRDb2xsYXRpb25GdW5jdGlvbihjb25zdCBTdHJpbmcmIGNvbGxhdGlv
bk5hbWUsIFdURjo6RnVuY3Rpb248aW50KGludCwgY29uc3Qgdm9pZCosIGludCwgY29uc3Qgdm9p
ZCopPiYmKTsKICAgICB2b2lkIHJlbW92ZUNvbGxhdGlvbkZ1bmN0aW9uKGNvbnN0IFN0cmluZyYg
Y29sbGF0aW9uTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmNwcAppbmRleCBkNGVjODRjN2M3ZDJlMTViNGU3OGMwMjliYTE2ZjIy
NjY3ZGMyMzY2Li45NWMzMmNmMGY3MDcyZTdkZDkwNWYwZmJlZDE5MDQzMmE3MTJjOTI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5j
cHAKQEAgLTIxMiw2ICsyMTIsOSBAQCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUoV2ViUmVzbwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQorICAgIAorICAgIGlmICghbV9kYXRhYmFzZS50
dXJuT25JbmNyZW1lbnRhbEF1dG9WYWN1dW0oKSkKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
TmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnR1cm5P
bkluY3JlbWVudGFsQXV0b1ZhY3V1bSBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMi
LCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKIAogICAgIGlmICghcHJlcGFyZVN0
YXRlbWVudHMoKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMgZmFp
bGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zLCBkYXRhYmFzZSBwYXRoOiAle3B1YmxpY31z
IiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSwgbV9zdG9yYWdlRGlyZWN0b3J5UGF0
aC51dGY4KCkuZGF0YSgpKTsKQEAgLTMyOCw3ICszMzEsOCBAQCBib29sIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJlU3RhdGVtZW50cygpCiAgICAgICAgIHx8IG1f
dXBkYXRlR3JhbmRmYXRoZXJlZFN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCiAgICAg
ICAgIHx8IG1faXNHcmFuZGZhdGhlcmVkU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sK
ICAgICAgICAgfHwgbV9maW5kRXhwaXJlZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5wcmVwYXJl
KCkgIT0gU1FMSVRFX09LCi0gICAgICAgICkgeworICAgICAgICB8fCBtX3RvcEZyYW1lTGlua0Rl
Y29yYXRpb25zRnJvbS5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IG1fdG9wRnJh
bWVMaW5rRGVjb3JhdGlvbnNGcm9tRXhpc3RzLnByZXBhcmUoKSAhPSBTUUxJVEVfT0spIHsKICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OnByZXBhcmVTdGF0ZW1lbnRzIGZhaWxlZCB0byBwcmVwYXJlLCBl
cnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2co
KSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7
CkBAIC0zNzIsMTEgKzM3NiwxNCBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjppbnNlcnRPYnNlcnZlZERvbWFpbihjb25zdCBSZXNvdXJjZUxvYQogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpy
ZWxhdGlvbnNoaXBFeGlzdHMoV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50JiBzdGF0ZW1lbnQsIHVu
c2lnbmVkIGZpcnN0RG9tYWluSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzZWNvbmREb21h
aW4pIGNvbnN0Citib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWxh
dGlvbnNoaXBFeGlzdHMoV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50JiBzdGF0ZW1lbnQsIE9wdGlv
bmFsPHVuc2lnbmVkPiBmaXJzdERvbWFpbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc2Vj
b25kRG9tYWluKSBjb25zdAogeworICAgIGlmICghZmlyc3REb21haW5JRCkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIAogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAg
aWYgKHN0YXRlbWVudC5iaW5kSW50KDEsIGZpcnN0RG9tYWluSUQpICE9IFNRTElURV9PSworICAg
IGlmIChzdGF0ZW1lbnQuYmluZEludCgxLCAqZmlyc3REb21haW5JRCkgIT0gU1FMSVRFX09LCiAg
ICAgICAgIHx8IHN0YXRlbWVudC5iaW5kVGV4dCgyLCBzZWNvbmREb21haW4uc3RyaW5nKCkpICE9
IFNRTElURV9PSwogICAgICAgICB8fCBzdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ST1cpIHsK
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6Om1faW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwU3RhdGVtZW50
IGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRh
YmFzZS5sYXN0RXJyb3JNc2coKSk7CkBAIC0zODQsMTIgKzM5MSwxMiBAQCBib29sIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWxhdGlvbnNoaXBFeGlzdHMoV2ViQ29yZTo6
U1FMaXRlU3RhdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIAotICAgIGJvb2wg
cmVsYXRpb25TaGlwRXhpc3RzID0gISFzdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDApOworICAgIGJv
b2wgcmVsYXRpb25zaGlwRXhpc3RzID0gISFzdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDApOwogCiAg
ICAgaW50IHJlc2V0UmVzdWx0ID0gc3RhdGVtZW50LnJlc2V0KCk7CiAgICAgQVNTRVJUX1VOVVNF
RChyZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQgPT0gU1FMSVRFX09LKTsKICAgICAKLSAgICByZXR1
cm4gcmVsYXRpb25TaGlwRXhpc3RzOworICAgIHJldHVybiByZWxhdGlvbnNoaXBFeGlzdHM7CiB9
CiAKIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydERvbWFp
blJlbGF0aW9uc2hpcChXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQmIHN0YXRlbWVudCwgdW5zaWdu
ZWQgZG9tYWluSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZSkKQEAgLTQzNCw3
ICs0NDEsNyBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjb25m
aXJtRG9tYWluRG9lc05vdEV4aXN0KGNvbnN0IFJlZ2lzdAogfQogI2VuZGlmCiAKLXVuc2lnbmVk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkb21haW5JRChjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgZG9tYWluKSBjb25zdAorT3B0aW9uYWw8dW5zaWduZWQ+IFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkb21haW5JRChjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgZG9tYWluKSBjb25zdAogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwog
CkBAIC00NDMsOCArNDUwLDcgQEAgdW5zaWduZWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OmRvbWFpbklEKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJgogICAgIGlmIChtX2Rv
bWFpbklERnJvbVN0cmluZ1N0YXRlbWVudC5iaW5kVGV4dCgxLCBkb21haW4uc3RyaW5nKCkpICE9
IFNRTElURV9PSwogICAgICAgICB8fCBtX2RvbWFpbklERnJvbVN0cmluZ1N0YXRlbWVudC5zdGVw
KCkgIT0gU1FMSVRFX1JPVykgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAi
JXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZG9tYWluSURGcm9tU3Ry
aW5nIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2Uu
bGFzdEVycm9yTXNnKCkpOwotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAg
cmV0dXJuIGRvbWFpbklEOworICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIAog
ICAgIGRvbWFpbklEID0gbV9kb21haW5JREZyb21TdHJpbmdTdGF0ZW1lbnQuZ2V0Q29sdW1uSW50
KDApOwpAQCAtNDU4LDI4ICs0NjQsMzEgQEAgdW5zaWduZWQgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OmRvbWFpbklEKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJgogdm9pZCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RG9tYWluUmVsYXRpb25z
aGlwcyhjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiBsb2FkU3RhdGlzdGljcykKIHsKICAg
ICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKLQogICAgIGF1dG8gcmVnaXN0cmFibGVEb21h
aW5JRCA9IGRvbWFpbklEKGxvYWRTdGF0aXN0aWNzLnJlZ2lzdHJhYmxlRG9tYWluKTsKKyAgICAK
KyAgICBpZiAoIXJlZ2lzdHJhYmxlRG9tYWluSUQpCisgICAgICAgIHJldHVybjsKKyAgICAKICAg
ICBmb3IgKGF1dG8mIHRvcEZyYW1lRG9tYWluIDogbG9hZFN0YXRpc3RpY3Muc3RvcmFnZUFjY2Vz
c1VuZGVyVG9wRnJhbWVEb21haW5zKQotICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAo
bV9zdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnNTdGF0ZW1lbnQsIHJlZ2lzdHJhYmxl
RG9tYWluSUQsIHRvcEZyYW1lRG9tYWluKTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25z
aGlwKG1fc3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zU3RhdGVtZW50LCByZWdpc3Ry
YWJsZURvbWFpbklELnZhbHVlKCksIHRvcEZyYW1lRG9tYWluKTsKIAogICAgIGZvciAoYXV0byYg
dG9Eb21haW4gOiBsb2FkU3RhdGlzdGljcy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvKQotICAg
ICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1Rv
LCByZWdpc3RyYWJsZURvbWFpbklELCB0b0RvbWFpbik7CisgICAgICAgIGluc2VydERvbWFpblJl
bGF0aW9uc2hpcChtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8sIHJlZ2lzdHJhYmxlRG9tYWlu
SUQudmFsdWUoKSwgdG9Eb21haW4pOwogICAgIAogICAgIGZvciAoYXV0byYgZnJvbURvbWFpbiA6
IGxvYWRTdGF0aXN0aWNzLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSkKLSAgICAgICAgaW5z
ZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLCByZWdp
c3RyYWJsZURvbWFpbklELCBmcm9tRG9tYWluKTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRp
b25zaGlwKG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLCByZWdpc3RyYWJsZURvbWFpbklE
LnZhbHVlKCksIGZyb21Eb21haW4pOwogICAgIAogICAgIGZvciAoYXV0byYgdG9wRnJhbWVEb21h
aW4gOiBsb2FkU3RhdGlzdGljcy5zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zKQotICAgICAg
ICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5z
LCByZWdpc3RyYWJsZURvbWFpbklELCB0b3BGcmFtZURvbWFpbik7CisgICAgICAgIGluc2VydERv
bWFpblJlbGF0aW9uc2hpcChtX3N1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMsIHJlZ2lzdHJh
YmxlRG9tYWluSUQudmFsdWUoKSwgdG9wRnJhbWVEb21haW4pOwogICAgIAogICAgIGZvciAoYXV0
byYgdG9wRnJhbWVEb21haW4gOiBsb2FkU3RhdGlzdGljcy5zdWJyZXNvdXJjZVVuZGVyVG9wRnJh
bWVEb21haW5zKQotICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJj
ZVVuZGVyVG9wRnJhbWVEb21haW5zLCByZWdpc3RyYWJsZURvbWFpbklELCB0b3BGcmFtZURvbWFp
bik7CisgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5kZXJU
b3BGcmFtZURvbWFpbnMsIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgdG9wRnJhbWVEb21h
aW4pOwogICAgIAogICAgIGZvciAoYXV0byYgdG9Eb21haW4gOiBsb2FkU3RhdGlzdGljcy5zdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvKQotICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNo
aXAobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLCByZWdpc3RyYWJsZURvbWFpbklELCB0
b0RvbWFpbik7CisgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RzVG8sIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgdG9Eb21haW4p
OwogICAgIAogICAgIGZvciAoYXV0byYgZnJvbURvbWFpbiA6IGxvYWRTdGF0aXN0aWNzLnN1YnJl
c291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSkKLSAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25z
aGlwKG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLCByZWdpc3RyYWJsZURvbWFpbklE
LCBmcm9tRG9tYWluKTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fc3VicmVz
b3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLCByZWdpc3RyYWJsZURvbWFpbklELnZhbHVlKCksIGZy
b21Eb21haW4pOwogfQogCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
Ojpwb3B1bGF0ZUZyb21NZW1vcnlTdG9yZShjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVt
b3J5U3RvcmUmIG1lbW9yeVN0b3JlKQpAQCAtNDk3LDggKzUwNiw2IEBAIHZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBvcHVsYXRlRnJvbU1lbW9yeVN0b3JlKGNvbnN0
IFJlc291cmNlCiAgICAgLy8gY2FuIHJlZmVyIHRvIHRoZSBPYnNlcnZlZERvbWFpbiB0YWJsZSBl
bnRyaWVzCiAgICAgZm9yIChhdXRvJiBzdGF0aXN0aWMgOiBzdGF0aXN0aWNzTWFwKQogICAgICAg
ICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBzKHN0YXRpc3RpYy52YWx1ZSk7Ci0KLSAgICBtX2Rh
dGFiYXNlLnJ1blZhY3V1bUNvbW1hbmQoKTsKIH0KIAogdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6Y2FsY3VsYXRlQW5kU3VibWl0VGVsZW1ldHJ5KCkgY29uc3QKQEAg
LTU0NiwyNCArNTUzLDMzIEBAIHVuc2lnbmVkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpyZWN1cnNpdmVseUZpbmROb25QcmV2YWxlbnREb21haW5zCiAgICAgKytudW1iZXJP
ZlJlY3Vyc2l2ZUNhbGxzOwogCiAgICAgU3RkU2V0PHVuc2lnbmVkPiBuZXdseUlkZW50aWZpZWRE
b21haW5zOwotICAgIFNRTGl0ZVN0YXRlbWVudCBmaW5kU3VicmVzb3VyY2VzKG1fZGF0YWJhc2Us
IG1ha2VTdHJpbmcoIlNFTEVDVCBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20uZnJvbURv
bWFpbklEIGZyb20gU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tIElOTkVSIEpPSU4gT2Jz
ZXJ2ZWREb21haW5zIE9OIE9ic2VydmVkRG9tYWlucy5kb21haW5JRCA9IFN1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQgV0hFUkUgc3VicmVzb3VyY2VEb21haW5JRCA9
ICIsIFN0cmluZzo6bnVtYmVyKHByaW1hcnlEb21haW5JRCksICJBTkQgT2JzZXJ2ZWREb21haW5z
LmlzUHJldmFsZW50ID0gMCIpKTsKLSAgICBpZiAoZmluZFN1YnJlc291cmNlcy5wcmVwYXJlKCkg
PT0gU1FMSVRFX09LKSB7Ci0gICAgICAgIHdoaWxlIChmaW5kU3VicmVzb3VyY2VzLnN0ZXAoKSA9
PSBTUUxJVEVfUk9XKSB7Ci0gICAgICAgICAgICBhdXRvIG5ld0RvbWFpbklEID0gZmluZFN1YnJl
c291cmNlcy5nZXRDb2x1bW5JbnQoMCk7Ci0gICAgICAgICAgICBhdXRvIGluc2VydFJlc3VsdCA9
IG5vblByZXZhbGVudFJlZGlyZWN0aW9uU291cmNlcy5pbnNlcnQobmV3RG9tYWluSUQpOwotICAg
ICAgICAgICAgaWYgKGluc2VydFJlc3VsdC5zZWNvbmQpCi0gICAgICAgICAgICAgICAgbmV3bHlJ
ZGVudGlmaWVkRG9tYWlucy5pbnNlcnQobmV3RG9tYWluSUQpOwotICAgICAgICB9CisgICAgU1FM
aXRlU3RhdGVtZW50IGZpbmRTdWJyZXNvdXJjZXMobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VM
RUNUIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQgZnJvbSBTdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20gSU5ORVIgSk9JTiBPYnNlcnZlZERvbWFpbnMgT04g
T2JzZXJ2ZWREb21haW5zLmRvbWFpbklEID0gU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9t
LmZyb21Eb21haW5JRCBXSEVSRSBzdWJyZXNvdXJjZURvbWFpbklEID0gPyBBTkQgT2JzZXJ2ZWRE
b21haW5zLmlzUHJldmFsZW50ID0gMCIpKTsKKyAgICBpZiAoZmluZFN1YnJlc291cmNlcy5wcmVw
YXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IGZpbmRTdWJyZXNvdXJjZXMuYmluZEludCgx
LCBwcmltYXJ5RG9tYWluSUQpICE9IFNRTElURV9PSykgeworICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
cmVjdXJzaXZlbHlGaW5kTm9uUHJldmFsZW50RG9tYWluc1RoYXRSZWRpcmVjdGVkVG9UaGlzRG9t
YWluIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2Uu
bGFzdEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cisg
ICAgCisgICAgd2hpbGUgKGZpbmRTdWJyZXNvdXJjZXMuc3RlcCgpID09IFNRTElURV9ST1cpIHsK
KyAgICAgICAgYXV0byBuZXdEb21haW5JRCA9IGZpbmRTdWJyZXNvdXJjZXMuZ2V0Q29sdW1uSW50
KDApOworICAgICAgICBhdXRvIGluc2VydFJlc3VsdCA9IG5vblByZXZhbGVudFJlZGlyZWN0aW9u
U291cmNlcy5pbnNlcnQobmV3RG9tYWluSUQpOworICAgICAgICBpZiAoaW5zZXJ0UmVzdWx0LnNl
Y29uZCkKKyAgICAgICAgICAgIG5ld2x5SWRlbnRpZmllZERvbWFpbnMuaW5zZXJ0KG5ld0RvbWFp
bklEKTsKICAgICB9CiAKLSAgICBTUUxpdGVTdGF0ZW1lbnQgZmluZFRvcEZyYW1lcyhtX2RhdGFi
YXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21E
b21haW5JRCBmcm9tIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSBJTk5FUiBKT0lOIE9ic2Vy
dmVkRG9tYWlucyBPTiBPYnNlcnZlZERvbWFpbnMuZG9tYWluSUQgPSBUb3BGcmFtZVVuaXF1ZVJl
ZGlyZWN0c0Zyb20uZnJvbURvbWFpbklEIFdIRVJFIHRhcmdldERvbWFpbklEID0gIiwgU3RyaW5n
OjpudW1iZXIocHJpbWFyeURvbWFpbklEKSwgIkFORCBPYnNlcnZlZERvbWFpbnMuaXNQcmV2YWxl
bnQgPSAwIikpOwotICAgIGlmIChmaW5kVG9wRnJhbWVzLnByZXBhcmUoKSA9PSBTUUxJVEVfT0sp
IHsKLSAgICAgICAgd2hpbGUgKGZpbmRUb3BGcmFtZXMuc3RlcCgpID09IFNRTElURV9ST1cpIHsK
LSAgICAgICAgICAgIGF1dG8gbmV3RG9tYWluSUQgPSBmaW5kVG9wRnJhbWVzLmdldENvbHVtbklu
dCgwKTsKLSAgICAgICAgICAgIGF1dG8gaW5zZXJ0UmVzdWx0ID0gbm9uUHJldmFsZW50UmVkaXJl
Y3Rpb25Tb3VyY2VzLmluc2VydChuZXdEb21haW5JRCk7Ci0gICAgICAgICAgICBpZiAoaW5zZXJ0
UmVzdWx0LnNlY29uZCkKLSAgICAgICAgICAgICAgICBuZXdseUlkZW50aWZpZWREb21haW5zLmlu
c2VydChuZXdEb21haW5JRCk7Ci0gICAgICAgIH0KKyAgICBTUUxpdGVTdGF0ZW1lbnQgZmluZFRv
cEZyYW1lcyhtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgVG9wRnJhbWVVbmlxdWVSZWRp
cmVjdHNGcm9tLmZyb21Eb21haW5JRCBmcm9tIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSBJ
Tk5FUiBKT0lOIE9ic2VydmVkRG9tYWlucyBPTiBPYnNlcnZlZERvbWFpbnMuZG9tYWluSUQgPSBU
b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20uZnJvbURvbWFpbklEIFdIRVJFIHRhcmdldERvbWFp
bklEID0gPyBBTkQgT2JzZXJ2ZWREb21haW5zLmlzUHJldmFsZW50ID0gMCIpKTsKKyAgICAKKyAg
ICBpZiAoZmluZFRvcEZyYW1lcy5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IGZp
bmRUb3BGcmFtZXMuYmluZEludCgxLCBwcmltYXJ5RG9tYWluSUQpICE9IFNRTElURV9PSykgewor
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVjdXJzaXZlbHlGaW5kTm9uUHJldmFsZW50RG9tYWluc1Ro
YXRSZWRpcmVjdGVkVG9UaGlzRG9tYWluIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9
cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICB9CisgICAgCisgICAgd2hpbGUgKGZpbmRUb3BGcmFtZXMuc3RlcCgp
ID09IFNRTElURV9ST1cpIHsKKyAgICAgICAgYXV0byBuZXdEb21haW5JRCA9IGZpbmRUb3BGcmFt
ZXMuZ2V0Q29sdW1uSW50KDApOworICAgICAgICBhdXRvIGluc2VydFJlc3VsdCA9IG5vblByZXZh
bGVudFJlZGlyZWN0aW9uU291cmNlcy5pbnNlcnQobmV3RG9tYWluSUQpOworICAgICAgICBpZiAo
aW5zZXJ0UmVzdWx0LnNlY29uZCkKKyAgICAgICAgICAgIG5ld2x5SWRlbnRpZmllZERvbWFpbnMu
aW5zZXJ0KG5ld0RvbWFpbklEKTsKICAgICB9CiAKICAgICBpZiAobmV3bHlJZGVudGlmaWVkRG9t
YWlucy5lbXB0eSgpKQpAQCAtNjU3LDcgKzY3Myw3IEBAIEhhc2hNYXA8dW5zaWduZWQsIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpOb3RWZXJ5UHJldmFsZW50UmVzb3VyY2Vz
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBTUUxpdGVTdGF0ZW1lbnQgc3ViZnJhbWVVbmRlclRv
cEZyYW1lRG9tYWluc0NvdW50U3RhdGVtZW50KG1fZGF0YWJhc2UsIG1ha2VTdHJpbmcoIlNFTEVD
VCBzdWJyZXNvdXJjZURvbWFpbklELCBDT1VOVCh0b3BGcmFtZURvbWFpbklEKSBGUk9NIFN1YnJl
c291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMgV0hFUkUgc3VicmVzb3VyY2VEb21haW5JRCBJTiAo
IiwgZG9tYWluSURzT2ZJbnRlcmVzdCwgIikgR1JPVVAgQlkgc3VicmVzb3VyY2VEb21haW5JRCIp
KTsKKyAgICBTUUxpdGVTdGF0ZW1lbnQgc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluc0NvdW50
U3RhdGVtZW50KG1fZGF0YWJhc2UsIG1ha2VTdHJpbmcoIlNFTEVDVCBzdWJmcmFtZURvbWFpbklE
LCBDT1VOVCh0b3BGcmFtZURvbWFpbklEKSBGUk9NIFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFp
bnMgV0hFUkUgc3ViZnJhbWVEb21haW5JRCBJTiAoIiwgZG9tYWluSURzT2ZJbnRlcmVzdCwgIikg
R1JPVVAgQlkgc3ViZnJhbWVEb21haW5JRCIpKTsKICAgICBpZiAoc3ViZnJhbWVVbmRlclRvcEZy
YW1lRG9tYWluc0NvdW50U3RhdGVtZW50LnByZXBhcmUoKSA9PSBTUUxJVEVfT0spIHsKICAgICAg
ICAgd2hpbGUgKHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNDb3VudFN0YXRlbWVudC5zdGVw
KCkgPT0gU1FMSVRFX1JPVykgewogICAgICAgICAgICAgdW5zaWduZWQgZG9tYWluSUQgPSBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluc0NvdW50U3RhdGVt
ZW50LmdldENvbHVtbkludCgwKSk7CkBAIC02ODcsMTIgKzcwMywxMiBAQCB2b2lkIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWNsYXNzaWZ5UmVzb3VyY2VzKCkKICAgICBh
dXRvIG5vdFZlcnlQcmV2YWxlbnRSZXNvdXJjZXMgPSBmaW5kTm90VmVyeVByZXZhbGVudFJlc291
cmNlcygpOwogCiAgICAgZm9yIChhdXRvJiByZXNvdXJjZVN0YXRpc3RpYyA6IG5vdFZlcnlQcmV2
YWxlbnRSZXNvdXJjZXMudmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKHNob3VsZFNraXAocmVzb3Vy
Y2VTdGF0aXN0aWMucmVnaXN0ZXJhYmxlRG9tYWluKSkKKyAgICAgICAgaWYgKHNob3VsZFNraXAo
cmVzb3VyY2VTdGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4pKQogICAgICAgICAgICAgY29udGlu
dWU7CiAKICAgICAgICAgYXV0byBuZXdQcmV2YWxlbmNlID0gY2xhc3NpZmllcigpLmNhbGN1bGF0
ZVJlc291cmNlUHJldmFsZW5jZShyZXNvdXJjZVN0YXRpc3RpYy5zdWJyZXNvdXJjZVVuZGVyVG9w
RnJhbWVEb21haW5zQ291bnQsIHJlc291cmNlU3RhdGlzdGljLnN1YnJlc291cmNlVW5pcXVlUmVk
aXJlY3RzVG9Db3VudCwgcmVzb3VyY2VTdGF0aXN0aWMuc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9t
YWluc0NvdW50LCByZXNvdXJjZVN0YXRpc3RpYy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvQ291
bnQsIHJlc291cmNlU3RhdGlzdGljLnByZXZhbGVuY2UpOwogICAgICAgICBpZiAobmV3UHJldmFs
ZW5jZSAhPSByZXNvdXJjZVN0YXRpc3RpYy5wcmV2YWxlbmNlKQotICAgICAgICAgICAgc2V0UHJl
dmFsZW50UmVzb3VyY2UocmVzb3VyY2VTdGF0aXN0aWMucmVnaXN0ZXJhYmxlRG9tYWluLCBuZXdQ
cmV2YWxlbmNlKTsKKyAgICAgICAgICAgIHNldFByZXZhbGVudFJlc291cmNlKHJlc291cmNlU3Rh
dGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluLCBuZXdQcmV2YWxlbmNlKTsKICAgICB9CiB9CiAKQEAg
LTg1MSw2ICs4NjcsOSBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpncmFuZGZhdGhlckRhdGFGb3JEb21haW5zKGNvbnN0IEhhc2hTZQogewogICAgIEFTU0VSVCgh
UnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAgZm9yIChhdXRvJiByZWdpc3RyYWJsZURvbWFpbiA6
IGRvbWFpbnMpCisgICAgICAgIGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxl
RG9tYWluKHJlZ2lzdHJhYmxlRG9tYWluKTsKKwogICAgIFNRTGl0ZVN0YXRlbWVudCBkb21haW5z
VG9VcGRhdGVTdGF0ZW1lbnQobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiVVBEQVRFIE9ic2VydmVk
RG9tYWlucyBTRVQgZ3JhbmRmYXRoZXJlZCA9IDEgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gSU4g
KCIsIGRvbWFpbnNUb1N0cmluZyhkb21haW5zKSwgIikiKSk7CiAgICAgaWYgKGRvbWFpbnNUb1Vw
ZGF0ZVN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IGRvbWFpbnNU
b1VwZGF0ZVN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKQEAgLTg5NCw3ICs5MTMs
NyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dGcmFtZU5h
dmlnYXRpb24oY29uc3QgUmVnaXN0cmFibGVEbwogICAgIGlmICghaXNNYWluRnJhbWUgJiYgIShh
cmVUYXJnZXRBbmRUb3BGcmFtZURvbWFpbnNTYW1lU2l0ZSB8fCBhcmVUYXJnZXRBbmRTb3VyY2VE
b21haW5zU2FtZVNpdGUpKSB7CiAgICAgICAgIGF1dG8gdGFyZ2V0UmVzdWx0ID0gZW5zdXJlUmVz
b3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4odGFyZ2V0RG9tYWluKTsKICAgICAg
ICAgdXBkYXRlTGFzdFNlZW4odGFyZ2V0RG9tYWluLCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpy
ZWR1Y2VUaW1lUmVzb2x1dGlvbihXYWxsVGltZTo6bm93KCkpKTsKLQorICAgICAgICBlbnN1cmVS
ZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0b3BGcmFtZURvbWFpbik7CiAg
ICAgICAgIGlmICghcmVsYXRpb25zaGlwRXhpc3RzKG1fc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9t
YWluRXhpc3RzLCB0YXJnZXRSZXN1bHQuc2Vjb25kLCB0b3BGcmFtZURvbWFpbikpIHsKICAgICAg
ICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YmZyYW1lVW5kZXJUb3BGcmFtZURv
bWFpbnMsIHRhcmdldFJlc3VsdC5zZWNvbmQsIHRvcEZyYW1lRG9tYWluKTsKICAgICAgICAgICAg
IHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7CkBAIC05MDQsMjQgKzkyMywyNSBAQCB2b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24o
Y29uc3QgUmVnaXN0cmFibGVEbwogICAgIGlmIChpc1JlZGlyZWN0ICYmICFhcmVUYXJnZXRBbmRT
b3VyY2VEb21haW5zU2FtZVNpdGUpIHsKICAgICAgICAgaWYgKGlzTWFpbkZyYW1lKSB7CiAgICAg
ICAgICAgICBhdXRvIHJlZGlyZWN0aW5nRG9tYWluUmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0
aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4oc291cmNlRG9tYWluKTsKKyAgICAgICAgICAgIGF1
dG8gdGFyZ2V0UmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVE
b21haW4odGFyZ2V0RG9tYWluKTsKKwogICAgICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlz
dHMobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvRXhpc3RzLCByZWRpcmVjdGluZ0RvbWFpblJl
c3VsdC5zZWNvbmQsIHRhcmdldERvbWFpbikpIHsKICAgICAgICAgICAgICAgICBpbnNlcnREb21h
aW5SZWxhdGlvbnNoaXAobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvLCByZWRpcmVjdGluZ0Rv
bWFpblJlc3VsdC5zZWNvbmQsIHRhcmdldERvbWFpbik7CiAgICAgICAgICAgICAgICAgc3RhdGlz
dGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgYXV0
byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURv
bWFpbih0YXJnZXREb21haW4pOwogICAgICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMo
bV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb21FeGlzdHMsIHRhcmdldFJlc3VsdC5zZWNvbmQs
IHNvdXJjZURvbWFpbikpIHsKICAgICAgICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNo
aXAobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHRhcmdldFJlc3VsdC5zZWNvbmQsIHNv
dXJjZURvbWFpbik7CiAgICAgICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1
ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGF1dG8gcmVk
aXJlY3RpbmdEb21haW5SZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3Ry
YWJsZURvbWFpbihzb3VyY2VEb21haW4pOworICAgICAgICAgICAgYXV0byB0YXJnZXRSZXN1bHQg
PSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0YXJnZXREb21h
aW4pOwogICAgICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV9zdWJyZXNvdXJjZVVu
aXF1ZVJlZGlyZWN0c1RvRXhpc3RzLCByZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQsIHRh
cmdldERvbWFpbikpIHsKICAgICAgICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAo
bV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLCByZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5z
ZWNvbmQsIHRhcmdldERvbWFpbik7CiAgICAgICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRh
dGVkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgYXV0byB0YXJnZXRSZXN1
bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0YXJnZXRE
b21haW4pOwogICAgICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV9zdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0c0Zyb21FeGlzdHMsIHRhcmdldFJlc3VsdC5zZWNvbmQsIHNvdXJjZURv
bWFpbikpIHsKICAgICAgICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHRhcmdldFJlc3VsdC5zZWNvbmQsIHNvdXJjZURv
bWFpbik7CiAgICAgICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKQEAg
LTk1MCw3ICs5NzAsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpzZXRVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0cmFibGVEbwogewogICAgIEFTU0VSVCgh
UnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgaWYgKG1fbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlv
blN0YXRlbWVudC5iaW5kSW50KDEsIGhhZFVzZXJJbnRlcmFjdGlvbikKKyAgICBpZiAobV9tb3N0
UmVjZW50VXNlckludGVyYWN0aW9uU3RhdGVtZW50LmJpbmRJbnQoMSwgaGFkVXNlckludGVyYWN0
aW9uKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9tb3N0UmVjZW50VXNlckludGVyYWN0aW9u
U3RhdGVtZW50LmJpbmREb3VibGUoMiwgbW9zdFJlY2VudEludGVyYWN0aW9uLnNlY29uZHNTaW5j
ZUVwb2NoKCkudmFsdWUoKSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fbW9zdFJlY2VudFVz
ZXJJbnRlcmFjdGlvblN0YXRlbWVudC5iaW5kVGV4dCgzLCBkb21haW4uc3RyaW5nKCkpICE9IFNR
TElURV9PSwogICAgICAgICB8fCBtX21vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQu
c3RlcCgpICE9IFNRTElURV9ET05FKSB7CkBAIC05OTEsMTUgKzEwMTEsMjAgQEAgYm9vbCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVXNlckludGVyYWN0aW9uKGNv
bnN0IFJlZ2lzdHJhYmwKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGlm
IChtX2hhZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5iaW5kVGV4dCgxLCBkb21haW4uc3RyaW5n
KCkpICE9IFNRTElURV9PSwotICAgICAgICB8fCBtX2hhZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVu
dC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0
d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1fdXBkYXRl
UHJldmFsZW50UmVzb3VyY2VTdGF0ZW1lbnQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1Ymxp
Y31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICB8fCBtX2hhZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5z
dGVwKCkgIT0gU1FMSVRFX1JPVykgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3Jr
LCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV9oYWRVc2VySW50
ZXJhY3Rpb25TdGF0ZW1lbnQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhp
cywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisKKyAgICAgICAgaW50IHJlc2V0UmVzdWx0
ID0gbV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQucmVzZXQoKTsKKyAgICAgICAgQVNTRVJU
X1VOVVNFRChyZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQgPT0gU1FMSVRFX09LKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIGJvb2wgaGFkVXNlckludGVyYWN0aW9uID0gISFt
X2hhZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5nZXRDb2x1bW5JbnQoMCk7Ci0gICAgaWYgKCFo
YWRVc2VySW50ZXJhY3Rpb24pCisgICAgaWYgKCFoYWRVc2VySW50ZXJhY3Rpb24pIHsKKyAgICAg
ICAgaW50IHJlc2V0UmVzdWx0ID0gbV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQucmVzZXQo
KTsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChyZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQgPT0gU1FM
SVRFX09LKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KICAgICAKICAgICBXYWxsVGlt
ZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZSA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cyhtX2hhZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5nZXRDb2x1bW5Eb3VibGUoMSkpOwogCkBA
IC0xMDExLDYgKzEwMzYsOSBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpoYXNIYWRVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0cmFibAogICAgICAgICBoYWRV
c2VySW50ZXJhY3Rpb24gPSBmYWxzZTsKICAgICB9CiAgICAgCisgICAgaW50IHJlc2V0UmVzdWx0
ID0gbV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQucmVzZXQoKTsKKyAgICBBU1NFUlRfVU5V
U0VEKHJlc2V0UmVzdWx0LCByZXNldFJlc3VsdCA9PSBTUUxJVEVfT0spOworCiAgICAgcmV0dXJu
IGhhZFVzZXJJbnRlcmFjdGlvbjsKIH0KIApAQCAtMTA0NSw3ICsxMDczLDcgQEAgdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0UHJldmFsZW50UmVzb3VyY2UoY29u
c3QgUmVnaXN0cmFibGUKICAgICB9CiAKICAgICBTdGRTZXQ8dW5zaWduZWQ+IG5vblByZXZhbGVu
dFJlZGlyZWN0aW9uU291cmNlczsKLSAgICByZWN1cnNpdmVseUZpbmROb25QcmV2YWxlbnREb21h
aW5zVGhhdFJlZGlyZWN0ZWRUb1RoaXNEb21haW4oZG9tYWluSUQoZG9tYWluKSwgbm9uUHJldmFs
ZW50UmVkaXJlY3Rpb25Tb3VyY2VzLCAwKTsKKyAgICByZWN1cnNpdmVseUZpbmROb25QcmV2YWxl
bnREb21haW5zVGhhdFJlZGlyZWN0ZWRUb1RoaXNEb21haW4oZG9tYWluSUQoZG9tYWluKS52YWx1
ZSgpLCBub25QcmV2YWxlbnRSZWRpcmVjdGlvblNvdXJjZXMsIDApOwogICAgIHNldERvbWFpbnNB
c1ByZXZhbGVudChXVEZNb3ZlKG5vblByZXZhbGVudFJlZGlyZWN0aW9uU291cmNlcykpOwogfQog
CkBAIC0xMDc2LDkgKzExMDQsMTIgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6cHJlZGljYXRlVmFsdWVGb3JEb21haW4oV2ViQ29yZTo6U1FMaXQKICAgICBBU1NF
UlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAKICAgICBpZiAocHJlZGljYXRlU3RhdGVtZW50
LmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LCi0gICAgICAgIHx8IHBy
ZWRpY2F0ZVN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKKyAgICAgICAgfHwgcHJl
ZGljYXRlU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfUk9XKSB7CisKKyAgICAgICAgaW50IHJl
c2V0UmVzdWx0ID0gcHJlZGljYXRlU3RhdGVtZW50LnJlc2V0KCk7CisgICAgICAgIEFTU0VSVF9V
TlVTRUQocmVzZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNRTElURV9PSyk7CisKICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OnByZWRpY2F0ZVZhbHVlRm9yRG9tYWluIGZhaWxlZCB0byBiaW5kLCBlcnJv
ciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7
Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCkBAIC0xMjQ4LDcgKzEyNzksNyBAQCBzdGQ6OnBhaXI8UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OkFkZGVkUmVjb3JkLCB1bnNpZ25lZD4gUmVzb3VyY2VMbwogICAg
IEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgaWYgKG1fZG9tYWluSURGcm9tU3Ry
aW5nU3RhdGVtZW50LmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LKSB7
Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjcmVhdGVTY2hlbWEgZmFpbGVkLCBlcnJvciBtZXNzYWdl
OiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjplbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFp
biBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxh
c3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJl
dHVybiB7IEFkZGVkUmVjb3JkOjpObywgMCB9OwogICAgIH0KQEAgLTEyNjcsMTMgKzEyOTgsMjUg
QEAgc3RkOjpwYWlyPFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpBZGRlZFJl
Y29yZCwgdW5zaWduZWQ+IFJlc291cmNlTG8KICAgICBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIG5l
d09ic2VydmF0aW9uKGRvbWFpbik7CiAgICAgaW5zZXJ0T2JzZXJ2ZWREb21haW4obmV3T2JzZXJ2
YXRpb24pOwogCi0gICAgcmV0dXJuIHsgQWRkZWRSZWNvcmQ6OlllcywgZG9tYWluSUQoZG9tYWlu
KSB9OworICAgIHJldHVybiB7IEFkZGVkUmVjb3JkOjpZZXMsIGRvbWFpbklEKGRvbWFpbikudmFs
dWUoKSB9OworfQorCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpj
bGVhckRhdGFiYXNlQ29udGVudHMoKQoreworICAgIG1fZGF0YWJhc2UuY2xlYXJBbGxUYWJsZXMo
KTsKKworICAgIGlmICghY3JlYXRlU2NoZW1hKCkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNs
ZWFyRGF0YWJhc2VDb250ZW50cyBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMsIGRh
dGFiYXNlIHBhdGg6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygp
LCBtX3N0b3JhZ2VEaXJlY3RvcnlQYXRoLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIH0KIAogdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXIoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWlu
KCkpOwogCisgICAgY2xlYXJEYXRhYmFzZUNvbnRlbnRzKCk7CiAgICAgY2xlYXJPcGVyYXRpbmdE
YXRlcygpOwogCiAgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0
b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CkBAIC0xMzA3LDcgKzEzNTAs
NyBAQCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6Omhhc1VzZXJHcmFudGVkUwogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNN
YWluKCkpOwogCi0gICAgYXV0byBmaXJzdFBhcnR5UHJpbWFyeURvbWFpbklEID0gZG9tYWluSUQo
Zmlyc3RQYXJ0eURvbWFpbik7CisgICAgYXV0byBmaXJzdFBhcnR5UHJpbWFyeURvbWFpbklEID0g
ZG9tYWluSUQoZmlyc3RQYXJ0eURvbWFpbikudmFsdWUoKTsKIAogICAgIFNRTGl0ZVN0YXRlbWVu
dCBzdGF0ZW1lbnQobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIENPVU5UKCopIEZST00g
U3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJFIGRvbWFpbklEID0gIiwgU3Ry
aW5nOjpudW1iZXIocmVxdWVzdGluZ0RvbWFpbklEKSwgIiBBTkQgdG9wTGV2ZWxEb21haW5JRCA9
ICIsIFN0cmluZzo6bnVtYmVyKGZpcnN0UGFydHlQcmltYXJ5RG9tYWluSUQpKSk7CiAgICAgaWYg
KHN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCkBAIC0xNDYyLDkgKzE1MDUsMTkgQEAg
dm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJHcmFuZGZhdGhl
cmluZyhWZWN0b3I8dW5zaWduZWQ+JiYKICAgICB9CiB9CiAKLWJvb2wgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OnNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9yKGNvbnN0
IFByZXZhbGVudERvbWFpbkRhdGEmIHJlc291cmNlU3RhdGlzdGljLCBib29sIHNob3VsZENoZWNr
Rm9yR3JhbmRmYXRoZXJpbmcpIGNvbnN0Citib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpoYXNIYWRVbmV4cGlyZWRSZWNlbnRVc2VySW50ZXJhY3Rpb24oY29uc3QgUHJl
dmFsZW50RG9tYWluRGF0YSYgcmVzb3VyY2VTdGF0aXN0aWMsIE9wZXJhdGluZ0RhdGVzV2luZG93
IG9wZXJhdGluZ0RhdGVzV2luZG93KQoreworICAgIGlmIChyZXNvdXJjZVN0YXRpc3RpYy5oYWRV
c2VySW50ZXJhY3Rpb24gJiYgaGFzU3RhdGlzdGljc0V4cGlyZWQocmVzb3VyY2VTdGF0aXN0aWMu
bW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUsIG9wZXJhdGluZ0RhdGVzV2luZG93KSkgewor
ICAgICAgICBjbGVhclVzZXJJbnRlcmFjdGlvbihyZXNvdXJjZVN0YXRpc3RpYy5yZWdpc3RyYWJs
ZURvbWFpbik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gcmVz
b3VyY2VTdGF0aXN0aWMuaGFkVXNlckludGVyYWN0aW9uOworfQorCitib29sIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvcihj
b25zdCBQcmV2YWxlbnREb21haW5EYXRhJiByZXNvdXJjZVN0YXRpc3RpYywgYm9vbCBzaG91bGRD
aGVja0ZvckdyYW5kZmF0aGVyaW5nKQogewotICAgIHJldHVybiAhcmVzb3VyY2VTdGF0aXN0aWMu
aGFkVXNlckludGVyYWN0aW9uICYmICghc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZyB8fCAh
cmVzb3VyY2VTdGF0aXN0aWMuZ3JhbmRmYXRoZXJlZCk7CisgICAgcmV0dXJuICFoYXNIYWRVbmV4
cGlyZWRSZWNlbnRVc2VySW50ZXJhY3Rpb24ocmVzb3VyY2VTdGF0aXN0aWMsIE9wZXJhdGluZ0Rh
dGVzV2luZG93OjpMb25nKSAmJiAoIXNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcgfHwgIXJl
c291cmNlU3RhdGlzdGljLmdyYW5kZmF0aGVyZWQpOwogfQogCiBib29sIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRSZW1vdmVBbGxCdXRDb29raWVzRm9yKGNvbnN0
IFByZXZhbGVudERvbWFpbkRhdGEmIHJlc291cmNlU3RhdGlzdGljLCBib29sIHNob3VsZENoZWNr
Rm9yR3JhbmRmYXRoZXJpbmcpIGNvbnN0CkBAIC0xNDkyLDkgKzE1NDUsOSBAQCBWZWN0b3I8c3Rk
OjpwYWlyPFJlZ2lzdHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlPj4gUmVzb3VyY2VM
b2FkU3RhdGlzdGljcwogICAgIFZlY3Rvcjx1bnNpZ25lZD4gZG9tYWluSURzVG9DbGVhckdyYW5k
ZmF0aGVyaW5nOwogICAgIGZvciAoYXV0byYgc3RhdGlzdGljIDogcHJldmFsZW50RG9tYWlucykg
ewogICAgICAgICBpZiAoc2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3Ioc3RhdGlzdGljLCBz
aG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSkKLSAgICAgICAgICAgIGRvbWFpbnNUb1JlbW92
ZVdlYnNpdGVEYXRhRm9yLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihzdGF0aXN0aWMucmVnaXN0ZXJh
YmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlOjpBbGwpKTsKKyAgICAgICAgICAgIGRvbWFp
bnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihzdGF0aXN0aWMu
cmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU6OkFsbCkpOwogICAgICAgICBl
bHNlIGlmIChzaG91bGRSZW1vdmVBbGxCdXRDb29raWVzRm9yKHN0YXRpc3RpYywgc2hvdWxkQ2hl
Y2tGb3JHcmFuZGZhdGhlcmluZykpCi0gICAgICAgICAgICBkb21haW5zVG9SZW1vdmVXZWJzaXRl
RGF0YUZvci5hcHBlbmQoc3RkOjptYWtlX3BhaXIoc3RhdGlzdGljLnJlZ2lzdGVyYWJsZURvbWFp
biwgV2Vic2l0ZURhdGFUb1JlbW92ZTo6QWxsQnV0Q29va2llcykpOworICAgICAgICAgICAgZG9t
YWluc1RvUmVtb3ZlV2Vic2l0ZURhdGFGb3IuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKHN0YXRpc3Rp
Yy5yZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZTo6QWxsQnV0Q29va2llcykp
OwogCiAgICAgICAgIGlmIChzaG91bGRDbGVhckdyYW5kZmF0aGVyaW5nICYmIHN0YXRpc3RpYy5n
cmFuZGZhdGhlcmVkKQogICAgICAgICAgICAgZG9tYWluSURzVG9DbGVhckdyYW5kZmF0aGVyaW5n
LmFwcGVuZChzdGF0aXN0aWMuZG9tYWluSUQpOwpAQCAtMTUyNCw3ICsxNTc3LDcgQEAgdm9pZCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJ1bmVTdGF0aXN0aWNzSWZOZWVk
ZWQoKQogICAgIHNpemVfdCBjb3VudExlZnRUb1BydW5lID0gY291bnQgLSBwYXJhbWV0ZXJzKCku
cHJ1bmVFbnRyaWVzRG93blRvOwogICAgIEFTU0VSVChjb3VudExlZnRUb1BydW5lKTsKIAotICAg
IFNRTGl0ZVN0YXRlbWVudCByZWNvcmRzVG9QcnVuZShtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJT
RUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgT1JERVIgQlkgaGFkVXNlckludGVy
YWN0aW9uLCBpc1ByZXZhbGVudCwgbGFzdFNlZW4gREVTQyBMSU1JVCAiLCBTdHJpbmc6Om51bWJl
cihjb3VudExlZnRUb1BydW5lKSkpOworICAgIFNRTGl0ZVN0YXRlbWVudCByZWNvcmRzVG9QcnVu
ZShtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERv
bWFpbnMgT1JERVIgQlkgaGFkVXNlckludGVyYWN0aW9uLCBpc1ByZXZhbGVudCwgbGFzdFNlZW4g
TElNSVQgIiwgU3RyaW5nOjpudW1iZXIoY291bnRMZWZ0VG9QcnVuZSkpKTsKICAgICBpZiAocmVj
b3Jkc1RvUHJ1bmUucHJlcGFyZSgpICE9IFNRTElURV9PSykgewogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6cHJ1bmVTdGF0aXN0aWNzSWZOZWVkZWQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1Ymxp
Y31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmUuaAppbmRleCAwZmIyNGFkMDY3MDQ1YzlhZDMxNGYyM2NmYjQ0NDBkOGFmODQ1
ZmVjLi4wOGQ5OTc4ODljYTkwNWNjNDljZTQwYjFiMjMxZmU3MWI0ODc0NjE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaApAQCAtMTA1
LDExICsxMDUsMTIgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TGFzdFNlZW4oY29uc3QgUmVnaXN0
cmFibGVEb21haW4mLCBTZWNvbmRzKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKKyAgICB2b2lkIGNs
ZWFyRGF0YWJhc2VDb250ZW50cygpOwogICAgIGJvb2wgaW5zZXJ0T2JzZXJ2ZWREb21haW4oY29u
c3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwogICAgIHZvaWQgaW5zZXJ0RG9tYWluUmVsYXRp
b25zaGlwcyhjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJik7CiAgICAgYm9vbCBpbnNlcnRE
b21haW5SZWxhdGlvbnNoaXAoV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50JiwgdW5zaWduZWQgZG9t
YWluSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbik7Ci0gICAgYm9v
bCByZWxhdGlvbnNoaXBFeGlzdHMoV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50JiwgdW5zaWduZWQg
Zmlyc3REb21haW5JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHNlY29uZERvbWFpbikgY29u
c3Q7Ci0gICAgdW5zaWduZWQgZG9tYWluSUQoY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBjb25z
dDsKKyAgICBib29sIHJlbGF0aW9uc2hpcEV4aXN0cyhXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQm
LCBPcHRpb25hbDx1bnNpZ25lZD4gZmlyc3REb21haW5JRCwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIHNlY29uZERvbWFpbikgY29uc3Q7CisgICAgT3B0aW9uYWw8dW5zaWduZWQ+IGRvbWFpbklE
KGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJikgY29uc3Q7CiAjaWZuZGVmIE5ERUJVRwogICAgIGJv
b2wgY29uZmlybURvbWFpbkRvZXNOb3RFeGlzdChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIGNv
bnN0OwogI2VuZGlmCkBAIC0xMjAsMTIgKzEyMSwxMyBAQCBwcml2YXRlOgogCiAgICAgc3RydWN0
IFByZXZhbGVudERvbWFpbkRhdGEgewogICAgICAgICB1bnNpZ25lZCBkb21haW5JRDsKLSAgICAg
ICAgUmVnaXN0cmFibGVEb21haW4gcmVnaXN0ZXJhYmxlRG9tYWluOworICAgICAgICBSZWdpc3Ry
YWJsZURvbWFpbiByZWdpc3RyYWJsZURvbWFpbjsKICAgICAgICAgV2FsbFRpbWUgbW9zdFJlY2Vu
dFVzZXJJbnRlcmFjdGlvblRpbWU7CiAgICAgICAgIGJvb2wgaGFkVXNlckludGVyYWN0aW9uOwog
ICAgICAgICBib29sIGdyYW5kZmF0aGVyZWQ7CiAgICAgfTsKICAgICBWZWN0b3I8UHJldmFsZW50
RG9tYWluRGF0YT4gcHJldmFsZW50RG9tYWlucygpIGNvbnN0OworICAgIGJvb2wgaGFzSGFkVW5l
eHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9uKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmLCBP
cGVyYXRpbmdEYXRlc1dpbmRvdyk7CiAgICAgVmVjdG9yPHVuc2lnbmVkPiBmaW5kRXhwaXJlZFVz
ZXJJbnRlcmFjdGlvbnMoKSBjb25zdDsKICAgICB2b2lkIGNsZWFyRXhwaXJlZFVzZXJJbnRlcmFj
dGlvbnMoKTsKICAgICB2b2lkIGNsZWFyR3JhbmRmYXRoZXJpbmcoVmVjdG9yPHVuc2lnbmVkPiYm
KTsKQEAgLTEzNCw3ICsxMzYsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZWNsYXNzaWZ5UmVz
b3VyY2VzKCk7CiAgICAgc3RydWN0IE5vdFZlcnlQcmV2YWxlbnRSZXNvdXJjZXMgewotICAgICAg
ICBSZWdpc3RyYWJsZURvbWFpbiByZWdpc3RlcmFibGVEb21haW47CisgICAgICAgIFJlZ2lzdHJh
YmxlRG9tYWluIHJlZ2lzdHJhYmxlRG9tYWluOwogICAgICAgICBSZXNvdXJjZUxvYWRQcmV2YWxl
bmNlIHByZXZhbGVuY2U7CiAgICAgICAgIHVuc2lnbmVkIHN1YnJlc291cmNlVW5kZXJUb3BGcmFt
ZURvbWFpbnNDb3VudDsKICAgICAgICAgdW5zaWduZWQgc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVj
dHNUb0NvdW50OwpAQCAtMTU4LDcgKzE2MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwcnVuZVN0
YXRpc3RpY3NJZk5lZWRlZCgpIG92ZXJyaWRlOwogICAgIGVudW0gY2xhc3MgQWRkZWRSZWNvcmQg
eyBObywgWWVzIH07CiAgICAgc3RkOjpwYWlyPEFkZGVkUmVjb3JkLCB1bnNpZ25lZD4gZW5zdXJl
UmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4oY29uc3QgUmVnaXN0cmFibGVE
b21haW4mKTsKLSAgICBib29sIHNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9yKGNvbnN0IFBy
ZXZhbGVudERvbWFpbkRhdGEmLCBib29sIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpIGNv
bnN0OworICAgIGJvb2wgc2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3IoY29uc3QgUHJldmFs
ZW50RG9tYWluRGF0YSYsIGJvb2wgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZyk7CiAgICAg
Ym9vbCBzaG91bGRSZW1vdmVBbGxCdXRDb29raWVzRm9yKGNvbnN0IFByZXZhbGVudERvbWFpbkRh
dGEmLCBib29sIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpIGNvbnN0OwogICAgIFZlY3Rv
cjxzdGQ6OnBhaXI8UmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU+PiByZWdp
c3RyYWJsZURvbWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yKCkgb3ZlcnJpZGU7CiAgICAgYm9v
bCBpc0RhdGFiYXNlU3RvcmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IGU0ODdmYTYx
YzU4YzU1YTIzMWZlZGY4YWU5Y2MxMzk2ZWI2MDcyMmYuLjY3ODVjMDdjZTg2MDY4NDc0ZjZiZDk3
NGIzOGMyNjdlNmE3YTdjZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUuY3BwCkBAIC0xNTYsOSArMTU2LDkgQEAgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoTmV0d29ya1Nlc3Npb24m
IG4KICAgICAsIG1fZGFpbHlUYXNrc1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cGVyZm9ybURhaWx5VGFza3MpCiB7CiAgICAgUkVM
RUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIAotICAgIHBvc3RUYXNrKFt0aGlz
LCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5ID0gcmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RpcmVjdG9yeS5pc29sYXRlZENvcHkoKSwgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdF0gewotICAg
ICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pc0lUUERh
dGFiYXNlRW5hYmxlZCgpKSB7CisKKyAgICBwb3N0VGFzayhbdGhpcywgZGF0YWJhc2VFbmFibGVk
ID0gbmV0d29ya1Nlc3Npb24ubmV0d29ya1Byb2Nlc3MoKS5pc0lUUERhdGFiYXNlRW5hYmxlZCgp
LCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5ID0gcmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RpcmVjdG9yeS5pc29sYXRlZENvcHkoKSwgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdF0geworICAg
ICAgICBpZiAoZGF0YWJhc2VFbmFibGVkKSB7CiAgICAgICAgICAgICBtX3N0YXRpc3RpY3NTdG9y
ZSA9IG1ha2VVbmlxdWU8UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU+KCp0aGlz
LCBtX3N0YXRpc3RpY3NRdWV1ZSwgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCwgcmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RpcmVjdG9yeSk7CiAKICAgICAgICAgICAgIGF1dG8gbWVtb3J5U3RvcmUgPSBt
YWtlVW5pcXVlPFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZT4oKnRoaXMsIG1fc3Rh
dGlzdGljc1F1ZXVlLCBzaG91bGRJbmNsdWRlTG9jYWxob3N0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggZWMxYWEyZDg2ZDYwMjli
NTRiZTZlODE4ZDlmZDEyNmI4N2Q5YzljNi4uYjU2NTYwNjJhMGQxZjM4OTEyZDkxNWIyYzc5OTdl
OTZmMjQ5YTk1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAKQEAgLTMxNCw3ICszMTQsOSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0
aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJgog
ICAgICAgICBtX2RlZmF1bHROZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBuZXdUZXN0aW5nU2Vzc2lv
bihQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKICAgICB9CiAKLSAgICBXZWJD
b3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldElzSVRQRGF0
YWJhc2VFbmFibGVkKHBhcmFtZXRlcnMuc2hvdWxkRW5hYmxlSVRQRGF0YWJhc2UpOworI2lmIEVO
QUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgbV9pc0lUUERhdGFiYXNlRW5hYmxl
ZCA9IHBhcmFtZXRlcnMuc2hvdWxkRW5hYmxlSVRQRGF0YWJhc2U7CisjZW5kaWYKIAogICAgIFdl
YkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0QWRDbGlj
a0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZChwYXJhbWV0ZXJzLmVuYWJsZUFkQ2xpY2tBdHRy
aWJ1dGlvbkRlYnVnTW9kZSk7CiAKQEAgLTQ1OSw2ICs0NjEsOCBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjphZGRXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJiYgcGFy
YW1ldGVycwogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIGFkZEluZGV4ZWREYXRh
YmFzZVNlc3Npb24ocGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuc2Vzc2lvbklE
LCBwYXJhbWV0ZXJzLmluZGV4ZWREYXRhYmFzZURpcmVjdG9yeSwgcGFyYW1ldGVycy5pbmRleGVk
RGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwogI2VuZGlmCisgICAgCisgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMubmV0d29ya1Nlc3Np
b25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIGlmIChwYXJlbnRQcm9jZXNz
SGFzU2VydmljZVdvcmtlckVudGl0bGVtZW50KCkpCkBAIC02OTUsNiArNjk5LDE3IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OnNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBjb25zdCBSZWdpc3RyYWJsCiAgICAgfQogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRV
c2VJVFBEYXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUpCit7Cisg
ICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lv
bklEKSkgeworICAgICAgICBpZiAobV9pc0lUUERhdGFiYXNlRW5hYmxlZCAhPSB2YWx1ZSkgewor
ICAgICAgICAgICAgbV9pc0lUUERhdGFiYXNlRW5hYmxlZCA9IHZhbHVlOworICAgICAgICAgICAg
bmV0d29ya1Nlc3Npb24tPnJlY3JlYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljU3RvcmUoKTsKKyAg
ICAgICAgfQorICAgIH0gZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwog
dm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdv
cmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGI4ZGRjOGY0NTg5
MTU2MDUwMzJlMjJjZmU5MDgyNjZiNTYwMmQyMjEuLjlmNGNhOGMyODc3NzBlZjlhNDEyYzY5NmRh
N2EzODNiNjQxODlkM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmgKQEAgLTIyNCw2ICsyMjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBpc1JlZ2lz
dGVyZWRBc1N1YkZyYW1lVW5kZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN1YkZyYW1lRG9tYWlu
JiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKICAgICB2b2lkIGlzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihQQUw6OlNlc3Npb25J
RCwgY29uc3QgU3ViUmVzb3VyY2VEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgc2V0R3JhbmRmYXRoZXJlZChQ
QUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBib29sIGlzR3JhbmRmYXRo
ZXJlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFVzZUlUUERh
dGFiYXNlKFBBTDo6U2Vzc2lvbklELCBib29sIHZhbHVlKTsKICAgICB2b2lkIHNldE1heFN0YXRp
c3RpY3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBtYXhpbXVtRW50cnlDb3VudCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291
cmNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVn
TW9kZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtMjY0LDYgKzI2NSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lv
bklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZnJvbURvbWFpbiwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHRvRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgcmVzZXRDcm9zc1NpdGVMb2Fkc1dpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoUEFMOjpT
ZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBoYXNJc29s
YXRlZFNlc3Npb24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgY29uc3Q7CisgICAgYm9vbCBp
c0lUUERhdGFiYXNlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNJVFBEYXRhYmFzZUVuYWJs
ZWQ7IH0KICNlbmRpZgogCiAgICAgdXNpbmcgQ2FjaGVTdG9yYWdlUm9vdFBhdGhDYWxsYmFjayA9
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPjsKQEAgLTU1MCw2ICs1NTIsMTAgQEAg
cHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXI+
IG1fbmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXI7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShSRVNP
VVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgYm9vbCBtX2lzSVRQRGF0YWJhc2VFbmFibGVkIHsg
ZmFsc2UgfTsKKyNlbmRpZgorICAgIAogICAgIGNsYXNzIFN0b3JhZ2VRdW90YU1hbmFnZXJzIHsK
ICAgICBwdWJsaWM6CiAgICAgICAgIHVpbnQ2NF90IGRlZmF1bHRRdW90YShjb25zdCBXZWJDb3Jl
OjpDbGllbnRPcmlnaW4mIG9yaWdpbikgY29uc3QgeyByZXR1cm4gb3JpZ2luLnRvcE9yaWdpbiA9
PSBvcmlnaW4uY2xpZW50T3JpZ2luID8gbV9kZWZhdWx0UXVvdGEgOiBtX2RlZmF1bHRUaGlyZFBh
cnR5UXVvdGE7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGEzZjdlYTMyNjRhZmYwMWQ4NmNkMDc5MmIx
MTc1NTQzM2FlZjJkMDYuLjNhOTcyOTQ2Mzk5MWQ4ODExODI3MmEyODBkZDFmMjQzY2NiYTAxMjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTEzLDYgKzExMyw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQ
cm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTdWJtaXRUZWxlbWV0cnkoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwogICAgIFNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFs
ZW50UmVzb3VyY2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzKSAt
PiAoKSBBc3luYwogICAgIFNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbiwgYm9vbCBpc0dyYW5k
ZmF0aGVyZWQpIC0+ICgpIEFzeW5jCisgICAgU2V0VXNlSVRQRGF0YWJhc2UoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBib29sIHZhbHVlKQogICAgIFNldEdyYW5kZmF0aGVyaW5nVGltZShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25kcykgLT4gKCkgQXN5bmMKICAgICBT
ZXRNYXhTdGF0aXN0aWNzRW50cmllcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90
IG1heGltdW1FbnRyeUNvdW50KSAtPiAoKSBBc3luYwogICAgIFNldE1pbmltdW1UaW1lQmV0d2Vl
bkRhdGFSZWNvcmRzUmVtb3ZhbChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vj
b25kcykgLT4gKCkgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbi5jcHAKaW5kZXggYzNlZTg2MzI5OWY1YmNhODY5MjI1NjkyNTEwMzg5NGFjOGNk
NGUwYy4uODMxMDdmZWU2NDA2YWI3NjZiMjk4Njk5NGZlNmYyYjVjMmFkNWE0MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTE2MSw2
ICsxNjEsMTIgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbjo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0VuYWJsZWQoYm9vbCBlbmFibGUpCiAgICAgICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+
c2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUobV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWFudWFsUHJldmFsZW50UmVzb3VyY2UsIFtdIHsgfSk7CiB9CiAKK3ZvaWQgTmV0d29ya1Nlc3Np
b246OnJlY3JlYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljU3RvcmUoKQoreworICAgIGRlc3Ryb3lS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCk7CisgICAgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0g
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjcmVhdGUoKnRoaXMsIG1fcmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgbV9zaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzKTsKK30KKwogdm9pZCBOZXR3b3JrU2Vzc2lvbjo6bm90aWZ5UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1Byb2Nlc3NlZCgpCiB7CiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+cGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94
eTo6Tm90aWZ5UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Byb2Nlc3NlZCgpLCAwKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAppbmRleCAzMThlY2U0YTQ0
YjI0YzQ1ZjFkNzA2OWQ5ODZhMzMyMmE5YTUwMjliLi41M2U5ZmY3ZGNmNThmNmNjYmYyMWY0MzI4
NDM4NjM5NzFlMmQyMGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbi5oCkBAIC04NCw2ICs4NCw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSog
cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy5nZXQoKTsgfQogICAgIHZvaWQgc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJs
ZWQoYm9vbCk7CisgICAgdm9pZCByZWNyZWF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY1N0b3JlKCk7
CiAgICAgdm9pZCBub3RpZnlSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUHJvY2Vzc2VkKCk7CiAgICAg
dm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvclJlZ2lzdHJhYmxlRG9tYWlucyhPcHRpb25TZXQ8V2Vi
c2l0ZURhdGFUeXBlPiwgVmVjdG9yPHN0ZDo6cGFpcjxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biwgV2Vic2l0ZURhdGFUb1JlbW92ZT4+JiYsIGJvb2wgc2hvdWxkTm90aWZ5UGFnZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChjb25zdCBIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
PiYpPiYmKTsKICAgICB2b2lkIHJlZ2lzdHJhYmxlRG9tYWluc1dpdGhXZWJzaXRlRGF0YShPcHRp
b25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgYm9vbCBzaG91bGROb3RpZnlQYWdlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+JiYpPiYmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFT
dG9yZVJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRh
U3RvcmVSZWYuY3BwCmluZGV4IDE4N2U4MWEzODZjY2I1Nzk2MzA3ODUxNmMwOTRhMTNiMjEyZGY4
MjUuLmUyY2ViOWRlMmY1MDcxZmI4OTE4M2UxZWIwYjkzZTNjZDJlMTYzMmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVm
LmNwcApAQCAtMjY3LDYgKzI2NywxMyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlz
dGljc0dyYW5kZmF0aGVyZWQoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZQogI2VuZGlm
CiB9CiAKK3ZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0VXNlSVRQRGF0YWJhc2UoV0tXZWJzaXRl
RGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgYm9vbCB2YWx1ZSkKK3sKKyNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZikt
PndlYnNpdGVEYXRhU3RvcmUoKS5zZXRVc2VJVFBEYXRhYmFzZSh2YWx1ZSk7CisjZW5kaWYKK30K
Kwogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZy
YW1lT3JpZ2luKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVm
IGhvc3QsIFdLU3RyaW5nUmVmIHRvcEZyYW1lSG9zdCkKIHsKICNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaAppbmRleCBlNDlkZTIwYjhmMjRhZjFiNzA2ZTc3Nzc4
MTc1MzQyNmVkNjg0MDk3Li5mMmY5YzYyYjUyMzgyZDIyYzA0MzZjZjEwODM4ZDJiYmM0OTU0OWM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRh
U3RvcmVSZWYuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVE
YXRhU3RvcmVSZWYuaApAQCAtNzAsNiArNzAsNyBAQCBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVE
YXRhU3RvcmVJc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oV0tXZWJzaXRlRGF0YQog
V0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0dyYW5kZmF0aGVy
ZWQoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwg
Ym9vbCB2YWx1ZSk7CiB0eXBlZGVmIHZvaWQgKCpXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3Rp
Y3NHcmFuZGZhdGhlcmVkRnVuY3Rpb24pKGJvb2wgaXNHcmFuZGZhdGhlcmVkLCB2b2lkKiBmdW5j
dGlvbkNvbnRleHQpOwogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0
aWNzR3JhbmRmYXRoZXJlZChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0
cmluZ1JlZiBob3N0LCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3Rp
Y3NHcmFuZGZhdGhlcmVkRnVuY3Rpb24gY2FsbGJhY2spOworV0tfRVhQT1JUIHZvaWQgV0tXZWJz
aXRlRGF0YVN0b3JlU2V0VXNlSVRQRGF0YWJhc2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFT
dG9yZVJlZiwgYm9vbCB2YWx1ZSk7CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVT
ZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKFdLV2Vic2l0ZURhdGFTdG9y
ZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIHRvcEZyYW1l
SG9zdCk7CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzU3Vi
cmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3Rv
cmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIHRvcEZyYW1lSG9zdCk7CiBXS19F
WFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdFRvKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5n
UmVmIGhvc3QsIFdLU3RyaW5nUmVmIGhvc3RSZWRpcmVjdGVkVG8pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5k
ZXggNTFiM2U5MDgwNjZlNWY4YzQxZWQ4MDFmNjFhZTliMTAxN2RmNDg1Yy4uMTg1MDRhYmYyMTUz
MmI3MzkwMDE0N2I4NGJjZjUwNGE5YWQ0NjcxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC03NzMsNiAr
NzczLDE0IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0R3JhbmRmYXRoZXJlZChQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzCiAgICAgc2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0R3JhbmRmYXRoZXJlZChzZXNzaW9uSUQsIHJl
c291cmNlRG9tYWluLCBpc0dyYW5kZmF0aGVyZWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0VXNlSVRQRGF0YWJhc2UoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlKQoreworICAgIGlmICghY2FuU2VuZE1l
c3NhZ2UoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzOjpTZXRVc2VJVFBEYXRhYmFzZShzZXNzaW9uSUQsIHZhbHVlKSwgMCk7Cit9CisK
IHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFdl
YlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgdG9wRnJhbWVEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2Vi
UGFnZShwYWdlSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA4OGRhN2MwNGY2NjJjODdhYjgzMzQ5MmRiODg5
MDk2NzdjNDYzOGEwLi5kMGI3MTlhYjdlODI2OGY5ZGU1YzQ4MGJkZmI5MzI1NWQ2ZmRlMWQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuaApAQCAtMTE2LDYgKzExNiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFnZUNh
cEZvckNsaWVudFNpZGVDb29raWVzKFBBTDo6U2Vzc2lvbklELCBPcHRpb25hbDxTZWNvbmRzPiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldENhY2hlTWF4QWdlQ2Fw
KFBBTDo6U2Vzc2lvbklELCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgc2V0R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKKyAgICB2b2lkIHNldFVzZUlUUERhdGFiYXNlKFBBTDo6U2Vzc2lvbklELCBib29sIHZh
bHVlKTsKICAgICB2b2lkIHNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQo
UEFMOjpTZXNzaW9uSUQsIGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBzZXRJc1J1bm5pbmdSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVzdChQQUw6OlNlc3Npb25J
RCwgYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldE5vdGlm
eVBhZ2VzV2hlblRlbGVtZXRyeVdhc0NhcHR1cmVkKFBBTDo6U2Vzc2lvbklELCBib29sLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCA5NWFlZGZlMTQz
NzhlNmE1ODQyNGU3NWU1YjNkZTVhOGRmOGVjYjZmLi5mYzM2YmE4NmQ2Yjg2ZDgzZTM5YWNkZDQy
Y2ZhOWEwOTg3ZWMyMmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMTY0MSw2ICsxNjQxLDE0IEBA
IHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0R3JhbmRmYXRoZXJlZChjb25zdCBVUkwmIHVybCwg
Ym9vbCBpc0dyYW5kZmF0aGVyZWQsIENvCiAgICAgfQogfQogCit2b2lkIFdlYnNpdGVEYXRhU3Rv
cmU6OnNldFVzZUlUUERhdGFiYXNlKGJvb2wgdmFsdWUpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKKworICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBwcm9jZXNzUG9vbHMo
KSkKKyAgICAgICAgcHJvY2Vzc1Bvb2wtPmVuc3VyZU5ldHdvcmtQcm9jZXNzKCkuc2V0VXNlSVRQ
RGF0YWJhc2UobV9zZXNzaW9uSUQsIHZhbHVlKTsKK30KKwogdm9pZCBXZWJzaXRlRGF0YVN0b3Jl
OjpzZXRDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhjb25zdCBVUkwm
IGZyb21VUkwsIGNvbnN0IFVSTCYgdG9VUkwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5oCmluZGV4IGY1MmZhZGVlOGM4NmJjMWFmYzVkNzE4OGNlYWEyNTFkYWRhOWRjNjMuLmVm
MTUwOGE4OGMzMmIwYzFkYTk3ODk1OThiNzg3MzhmNTAyYTUwMWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAg
LTE1NCw2ICsxNTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY2hlZHVsZVN0YXRpc3RpY3NBbmRE
YXRhUmVjb3Jkc1Byb2Nlc3NpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIHN1Ym1pdFRlbGVtZXRyeSgpOwogICAgIHZvaWQgc2V0R3JhbmRmYXRoZXJlZChjb25zdCBV
UkwmLCBib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0VXNl
SVRQRGF0YWJhc2UoYm9vbCk7CiAgICAgdm9pZCBzZXRHcmFuZGZhdGhlcmluZ1RpbWUoU2Vjb25k
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldExhc3RTZWVuKGNv
bnN0IFVSTCYsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9p
ZCBzZXROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKGJvb2wsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggM2M0ZmZmZGFhM2YyOWYyN2VlZTY0N2Y5NTRhOTU5NmRjOGNmNDcy
MS4uZWFiMTkwM2JiZjYwZTJhOWI2MzFjMDU1YmZkMzdkYWQ3ZTFlMjIwNCAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisy
MDE5LTA5LTE4ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisg
ICAgICAgIEVuYWJsZSBMYXlvdXRUZXN0cyB1c2luZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFNR
TGl0ZSBiYWNrZW5kICgxOTU0MjApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTU0MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjEzNTUxPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGlu
IGxvZ2ljIHRvIHNlbmQgYSBtZXNzYWdlIGZyb20gdGhlIFVJUHJvY2VzcyB0byB0aGUgTmV0d29y
aworICAgICAgICBQcm9jZXNzIHdoaWNoIHdpbGwgaW5pdGFsaXplIHRoZSBJVFAgRGF0YWJhc2Ug
YmFja2VuZCB0byBhbGxvdyBmb3IKKyAgICAgICAgbGF5b3V0IHRlc3RpbmcuCisKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRs
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldFVzZUlUUERhdGFiYXNlKToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OnNldFVzZUlUUERhdGFiYXNlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0
SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZl
U3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAxOS0wOS0xMyAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFtpT1Nd
IFRlc3RXZWJLaXRBUEkuV2ViS2l0LlRMU1ZlcnNpb25XZWJTb2NrZXQgaXMgYSBmbGFreSBmYWls
dXJlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCBmNTM0YmIwMTBiNmY2ZjEzNzBiMDli
ZTU4NGZiOTg2NTAwZjNiODI0Li5hNjMyNTI2YTk3NDQ4MTljOTQxOGNhZWRjM2Q4MDBlYzliOTYx
MzFkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTMwOSw2ICszMDksNyBAQCBpbnRl
cmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgYm9vbGVhbiBpc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb24oRE9NU3RyaW5nIGhvc3ROYW1lKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NHcmFu
ZGZhdGhlcmVkKERPTVN0cmluZyBob3N0TmFtZSwgYm9vbGVhbiB2YWx1ZSk7CiAgICAgYm9vbGVh
biBpc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKERPTVN0cmluZyBob3N0TmFtZSk7CisgICAgdm9p
ZCBzZXRVc2VJVFBEYXRhYmFzZShib29sZWFuIHZhbHVlKTsKICAgICB2b2lkIHNldFN0YXRpc3Rp
Y3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oRE9NU3RyaW5nIGhvc3ROYW1lLCBET01TdHJp
bmcgdG9wRnJhbWVIb3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VV
bmRlclRvcEZyYW1lT3JpZ2luKERPTVN0cmluZyBob3N0TmFtZSwgRE9NU3RyaW5nIHRvcEZyYW1l
SG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJl
Y3RUbyhET01TdHJpbmcgaG9zdE5hbWUsIERPTVN0cmluZyBob3N0TmFtZVJlZGlyZWN0ZWRUbyk7
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcAppbmRleCAxNTc0ZWM0Y2M2Mjg3OWIwODJhZTI3MzhhMmZjODFkNzA0MDlkNGU2Li4z
NzIzYmZiMjY2MWFiMjRmOWJjYzVlOTViYjhkNWMyY2ViZjY2MjMyIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTE2
OTQsNyArMTY5NCwxNSBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFN0YXRpc3RpY3NHcmFuZGZhdGhl
cmVkKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBib29sIHZhbHVlKQogICAgIAogICAgIFdLQnVuZGxl
UG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxl
KCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSwgbnVsbHB0cik7CiB9CisK
K3ZvaWQgVGVzdFJ1bm5lcjo6c2V0VXNlSVRQRGF0YWJhc2UoYm9vbCB2YWx1ZSkKK3sKKyAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJTZXRVc2VJVFBEYXRhYmFzZSIpKTsKKyAgICBXS1JldGFpblB0
cjxXS0Jvb2xlYW5SZWY+IG1lc3NhZ2VCb2R5ID0gYWRvcHRXSyhXS0Jvb2xlYW5DcmVhdGUodmFs
dWUpKTsKICAgICAKKyAgICBXS0J1bmRsZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UoSW5qZWN0ZWRC
dW5kbGU6OnNpbmdsZXRvbigpLmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJv
ZHkuZ2V0KCksIG51bGxwdHIpOworfQorCiBib29sIFRlc3RSdW5uZXI6OmlzU3RhdGlzdGljc0dy
YW5kZmF0aGVyZWQoSlNTdHJpbmdSZWYgaG9zdE5hbWUpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IG1lc3NhZ2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiSXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZCIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggOTM5YjZiZTlkOGU1
MWE3MDYyNTQ1ZDQzNDZmNWI0NWM3ZWFhNWFlMC4uYWYxMDJlNTA0NTkwZDk2YzU1ZjgyNmNhOTdj
ZTkxMDRjMzBmZTYyMSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTQxMCw2ICs0MTAsNyBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oSlNTdHJpbmdSZWYgaG9zdE5hbWUp
OwogICAgIHZvaWQgc2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoSlNTdHJpbmdSZWYgaG9zdE5h
bWUsIGJvb2wgdmFsdWUpOwogICAgIGJvb2wgaXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChKU1N0
cmluZ1JlZiBob3N0TmFtZSk7CisgICAgdm9pZCBzZXRVc2VJVFBEYXRhYmFzZShib29sIHZhbHVl
KTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oSlNT
dHJpbmdSZWYgaG9zdE5hbWUsIEpTU3RyaW5nUmVmIHRvcEZyYW1lSG9zdE5hbWUpOwogICAgIHZv
aWQgc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihKU1N0cmluZ1Jl
ZiBob3N0TmFtZSwgSlNTdHJpbmdSZWYgdG9wRnJhbWVIb3N0TmFtZSk7CiAgICAgdm9pZCBzZXRT
dGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKEpTU3RyaW5nUmVmIGhvc3ROYW1l
LCBKU1N0cmluZ1JlZiBob3N0TmFtZVJlZGlyZWN0ZWRUbyk7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDlhOTFmNWQyZjQ4Njg0ZThmNTFkYWM5NTNjY2Zh
MDgyYjM2ODBjNTIuLjNjZTVjNjhmMjBhMGYyYTcxZThhYTJhYjljODk0NjJhYmYyNTY5YWIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zMzUyLDYgKzMz
NTIsMTEgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6aXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChX
S1N0cmluZ1JlZiBob3N0KQogICAgIHJldHVybiBjb250ZXh0LnJlc3VsdDsKIH0KIAordm9pZCBU
ZXN0Q29udHJvbGxlcjo6c2V0VXNlSVRQRGF0YWJhc2UoYm9vbCB2YWx1ZSkKK3sKKyAgICBXS1dl
YnNpdGVEYXRhU3RvcmVTZXRVc2VJVFBEYXRhYmFzZShUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURh
dGFTdG9yZSgpLCB2YWx1ZSk7Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3Rp
Y3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdS
ZWYgdG9wRnJhbWVIb3N0KQogewogICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NT
dWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3Rv
cmUoKSwgaG9zdCwgdG9wRnJhbWVIb3N0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaAppbmRleCA4MzdlNGFiMmNiMGU2NjE3MWNkZWY0MGJkYjE0ODZjNmUwYmQ3MTQ4Li42
NzNmMmRjODgzZTk0MjVhMGZhNTliODFhY2M4ZjIzMzhjNzVhMTBkIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0yMjIsNiArMjIyLDcgQEAgcHVibGljOgogICAg
IGJvb2wgaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKFdLU3RyaW5nUmVmIGhvc3RO
YW1lKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLU3RyaW5nUmVmIGhv
c3ROYW1lLCBib29sIHZhbHVlKTsKICAgICBib29sIGlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQo
V0tTdHJpbmdSZWYgaG9zdE5hbWUpOworICAgIHZvaWQgc2V0VXNlSVRQRGF0YWJhc2UoYm9vbCB2
YWx1ZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lu
KFdLU3RyaW5nUmVmIGhvc3ROYW1lLCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3ROYW1lKTsKICAg
ICB2b2lkIHNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oV0tTdHJp
bmdSZWYgaG9zdE5hbWUsIFdLU3RyaW5nUmVmIHRvcEZyYW1lSG9zdE5hbWUpOwogICAgIHZvaWQg
c2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhXS1N0cmluZ1JlZiBob3N0
TmFtZSwgV0tTdHJpbmdSZWYgaG9zdE5hbWVSZWRpcmVjdGVkVG8pOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCA2MDdlNWJiZGI0YjA1NmViNmI1YjY0ZWIw
MDE3ZGI4MDVjMDdhOTkyLi4zMDdkMmFiZDFkNjFiN2FmM2YxNTY3ODlhMDgzY2VlZTNiNDQwNWM2
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTI0MSw2
ICsxMjQxLDE0IEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJl
Y2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgICAgIFdLUmV0YWluUHRy
PFdLVHlwZVJlZj4gcmVzdWx0ID0gYWRvcHRXSyhXS0Jvb2xlYW5DcmVhdGUoaXNHcmFuZGZhdGhl
cmVkKSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQorCisgICAgaWYgKFdLU3RyaW5n
SXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRVc2VJVFBEYXRhYmFzZSIpKSB7
CisgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tCb29sZWFuR2V0
VHlwZUlEKCkpOworCisgICAgICAgIFdLQm9vbGVhblJlZiB2YWx1ZSA9IHN0YXRpY19jYXN0PFdL
Qm9vbGVhblJlZj4obWVzc2FnZUJvZHkpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xl
dG9uKCkuc2V0VXNlSVRQRGF0YWJhc2UoV0tCb29sZWFuR2V0VmFsdWUodmFsdWUpKTsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogICAgIAogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BG
cmFtZU9yaWdpbiIpKSB7CiAgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkg
PT0gV0tEaWN0aW9uYXJ5R2V0VHlwZUlEKCkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU3ZjZhNzkzMjAxMjg2YTEzZmRl
OTVjN2ExODcwMGNlNmQ5ZTI5ZmEuLmYyZTRlZWI2M2I4ZjNkOWQ1MWQ1ZGFkNGQ3MjUzZTc5Zjcx
YTI4YzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNTggQEAKKzIwMTktMDktMTggIEthdGUgQ2hlbmV5ICA8
a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIExheW91dFRlc3Rz
IHVzaW5nIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgU1FMaXRlIGJhY2tlbmQgKDE5NTQyMCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTQyMAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNTQyMTM1NTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIExheW91dFRlc3RzIHVzaW5nIFJlc291cmNl
TG9hZFN0YXRpc3RpY3MgU1FMaXRlIGJhY2tlbmQgKDE5NTQyMCkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTQyMAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTQyMTM1NTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkZWQgYSBmbGFnIHRvIGFsbCBJVFAgdGVzdHMgdG8gZW5hYmxlIHRoZSBJVFAg
ZGF0YWJhc2UgYmFja2VuZCB0bworICAgICAgICBhbGxvdyBmb3IgdGVzdGluZyBmdW5jdGlvbmFs
aXR5IGFnYWluc3QgdGhlIG1lbW9yeSBzdG9yZS4gVGVzdHMgd2VyZQorICAgICAgICBub3QgY3Jl
YXRlZCBmb3IgdGVsZW1ldHJ5LWdlbmVyYXRpb24uaHRtbCwKKyAgICAgICAgbG9nLWNyb3NzLXNp
dGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sLCBvcgorICAgICAgICB3ZWJzaXRlLWRh
dGEtcmVtb3ZhbC1mb3Itc2l0ZS1uYXZpZ2F0ZWQtdG8td2l0aC1saW5rLWRlY29yYXRpb24uaHRt
bCwKKyAgICAgICAgYmVjYXVzZSB0aGVzZSByZWx5IG9uIGZ1bmN0aW9ucyBub3QgeWV0IGltcGxl
bWVudGVkIGluIHRoZSBJVFAgZGF0YWJhc2UuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdv
cmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Jsb2NraW5nLWluLXdlYi13b3Jr
ZXItc2NyaXB0LWltcG9ydC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1hZ2UtZm9yLXByZXZhbGVu
dC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1mb3ItcHJldmFs
ZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4t
anMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5r
LWRlY29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1m
b3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUtZGF0YWJh
c2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21l
bnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0
aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVu
dC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgt
bGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2Uu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJv
bS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZv
ci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJj
ZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGhvdXQt
bGluay1kZWNvcmF0aW9uLWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3Jh
dGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXBy
ZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZy
YW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1i
YXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1l
LW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNl
ZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3Rz
LXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24t
c3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJl
dmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdp
bnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1m
cmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFs
ZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3Qt
Y29sbHVzaW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVz
b3VyY2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0
YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10
b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQt
YmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3Rz
LXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJy
ZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxl
bnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1
c2lvbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1y
ZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFs
ZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10
by1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZy
YW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJldmFs
ZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xl
YXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFy
LWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5
LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWlu
LW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRl
bGV0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFzZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2ll
cy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29v
a2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1z
Y3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQt
YWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmln
YXRpb24tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1u
YXZpZ2F0aW9uLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNzLWZv
ci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1jYXB0dXJl
LXN0YXRpc3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2aWdhdGlvbnMtZGF0YWJhc2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1y
ZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92
ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9u
LW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdp
dGhvdXQtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmln
YXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5
LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRh
YmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmct
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJhc2UuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQt
cmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2
YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFs
ZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFy
dHktY29udGV4dC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlcy1jYW4t
YWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0LWRhdGFiYXNlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlw
LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAt
dG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGly
ZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQt
bmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1s
b2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlm
cmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10
by1pcC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94
ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2Uu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGly
ZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVk
LW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2Nh
bGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hl
ZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1wcmV2
YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVkLWtleWRv
d24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1k
YXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJl
dmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9w
cmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxl
bnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0LWRhdGFi
YXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0
YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3BydW5lLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGlj
cy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8t
aXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2Nh
bGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0
LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1u
ZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxv
Y2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUt
d2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAt
ZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVk
aXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5l
c3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhv
c3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgt
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2Uu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3Qt
bG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQt
bmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10
by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0b20tcHJldmFsZW50LXJlc291cmNl
LWluLWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVz
b3VyY2UtaW4tZGVidWctbW9kZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZv
ci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlw
LXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlZGlyZWN0cy1k
YXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3Vy
Y2UtcmVxdWVzdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZv
ci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9u
LW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aC1pbnRl
cmFjdGlvbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZy
YW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1
Yi1mcmFtZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0
aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rp
b24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFz
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvdXNlci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1k
YXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUt
ZGF0YS1yZW1vdmFsLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lv
cy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICBBZGRlZCB0ZXN0IGV4cGVjdGF0aW9ucyB0byBz
a2lwIGRhdGFiYXNlIHRlc3RzIHdoaWNoIGRvIG5vdCB3b3JrIGluCisgICAgICAgIGlvcyBiZWNh
dXNlIG9mIHJlbGlhbmNlIG9uIEV2ZW50U2VuZGVyLmtleWRvd24oKSB3aGljaCBpcyBub3QgCisg
ICAgICAgIHN1cHBvcnRlZCBvbiBpT1MgYW5kIGFsc28gdGhvc2Ugd2hpY2ggdXNlIFVJSGVscGVy
LmFjdGl2YXRlQXQoKSB3aGljaAorICAgICAgICBkb2VzIG5vdCBwcm9kdWNlIGEgdXNlciBnZXN0
dXJlIGNhcHR1cmVkIGJ5IElUUCBpbiBpT1MuCisKIDIwMTktMDktMTMgIFJ1c3NlbGwgRXBzdGVp
biAgPHJlcHN0ZWluQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByMjQ5NzA5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJs
b2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZmVm
OWNkMjZlODYxYjBmZGIxNGY1ZGMwYjBhMTYwMGY0ZThkYWQ0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2lu
Zy10by1yZWRpcmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2MyBAQAorVGVz
dHMgdGhhdCBibG9ja2luZyBpcyBhZGRlZCBtaWQtZmxpZ2h0IGluIHJlZGlyZWN0cy4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorICAKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0t
PicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitSZWNlaXZl
ZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tp
ZSBuYW1lZCAncGFydGl0aW9uZWRDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2ll
OiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTIt
LT4nCistLS0tLS0tLQorUmVkaXJlY3QgY2FzZSAxLCBzaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0
eSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlk
IG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9uZWRDb29raWUnLgorQ2xpZW50LXNp
ZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCisKKy0tLS0tLS0tCitG
cmFtZTogJzwhLS1mcmFtZTMtLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgbm8gY29va2ll
cy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlk
IG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9uZWRDb29raWUnLgorQ2xpZW50LXNp
ZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWU0LS0+Jwor
LS0tLS0tLS0KK1JlZGlyZWN0IGNhc2UgMiwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llLgorRGlk
IG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJl
Y2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1
bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTUtLT4nCistLS0tLS0t
LQorVHJ5IHRvIHNldCB0aGlyZC1wYXJ0eSBjb29raWUgaW4gYmxvY2tlZCBtb2RlLgorCisKKy0t
LS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTYtLT4nCistLS0tLS0tLQorQWZ0ZXIgYXR0ZW1wdGVk
IGNvb2tpZSBjcmVhdGlvbiwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llLgorRGlkIG5vdCByZWNl
aXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29v
a2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29r
aWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTctLT4nCistLS0tLS0tLQorUmVkaXJl
Y3QgY2FzZSAzLCBhZnRlciBhdHRlbXB0ZWQgY29va2llIGNyZWF0aW9uLCBzaG91bGQgcmVjZWl2
ZSBubyBjb29raWUuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29v
a2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3BhcnRpdGlvbmVkQ29va2llJy4K
K0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3Qt
ZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
MWQ2M2E1MTY4NzhhMDgzOGQyOThlNzYzZTAzZDJlYjg0NmEwOTlkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9j
a2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTA0IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVU
Ri04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYmxv
Y2tpbmcgaXMgYWRkZWQgbWlkLWZsaWdodCBpbiByZWRpcmVjdHMuIik7CisgICAganNUZXN0SXNB
c3luYyA9IHRydWU7CisKKyAgICBjb25zdCBwYXJ0aXRpb25Ib3N0ID0gIjEyNy4wLjAuMTo4MDAw
IjsKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7
CisgICAgY29uc3QgcmVzb3VyY2VQYXRoID0gIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291
cmNlcyI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsg
cmVzb3VyY2VQYXRoOworICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVOYW1lID0gImZpcnN0UGFy
dHlDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgPSAiL3Nl
dC1jb29raWUucGhwP25hbWU9IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT12YWx1
ZSI7CisgICAgY29uc3QgcGFydGl0aW9uZWRDb29raWVOYW1lID0gInBhcnRpdGlvbmVkQ29va2ll
IjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRQYXJ0aXRpb25lZENvb2tpZSA9ICIvc2V0LWNvb2tp
ZS5waHA/bmFtZT0iICsgcGFydGl0aW9uZWRDb29raWVOYW1lICsgIiZ2YWx1ZT12YWx1ZSI7Cisg
ICAgY29uc3QgcmV0dXJuVXJsID0gImh0dHA6Ly8iICsgcGFydGl0aW9uSG9zdCArICIvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QuaHRtbCI7CisgICAgY29u
c3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJz
dFBhcnR5Q29va2llTmFtZSArICImbmFtZTI9IiArIHBhcnRpdGlvbmVkQ29va2llTmFtZTsKKyAg
ICBjb25zdCByZWRpcmVjdENoYWluVXJsID0gImh0dHA6Ly8iICsgcGFydGl0aW9uSG9zdCArIHJl
c291cmNlUGF0aCArICIvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89IiArIHRoaXJkUGFydHlCYXNl
VXJsICsgc3ViUGF0aFRvR2V0Q29va2llczsKKworICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUodXJs
LCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAg
IGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9h
ZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChl
bGVtZW50KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0
Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6
CisgICAgICAgICAgICAgICAgLy8gU2V0IGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0
LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFz
ZVVybCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyByZXR1cm5VcmwgKyAi
I3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVw
MiI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgY29va2llIGdldHMgc2VudCBm
b3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMSBzaW5jZSBsb2NhbGhvc3QgaXMgbm90IHByZXZh
bGVudC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsK
KyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRv
R2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUu
IiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIj
c3RlcDMiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDQi
OworICAgICAgICAgICAgICAgIC8vIExvYWQgYW4gaWZyYW1lIGluIGEgcmVkaXJlY3QgY2hhaW4g
dGhhdCBzdGFydHMgd2l0aCAxMjcuMC4wLjEgYW5kIGVuZHMgd2l0aCBsb2NhbGhvc3QuIEV4cGVj
dCBhIGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUocmVk
aXJlY3RDaGFpblVybCArICImbWVzc2FnZT1SZWRpcmVjdCBjYXNlIDEsIHNob3VsZCByZWNlaXZl
IGZpcnN0LXBhcnR5IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgLy8gU2V0IGxvY2Fs
aG9zdCBhcyBwcmV2YWxlbnQgdG8gcHV0IGl0IGluIHRoZSBibG9ja2luZyBjYXRlZ29yeS4KKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA1IjsKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBh
cnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4p
KQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBz
ZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVw
NSI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBubyBjb29raWUgZ2V0cyBzZW50IGZv
ciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCdzIGNvb2tpZXMgYXJl
IGJsb2NrZWQuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVw
NiI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBh
dGhUb0dldENvb2tpZXMgKyAgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwg
cnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3Rl
cDYiOgorICAgICAgICAgICAgICAgIC8vIExvYWQgYW4gaWZyYW1lIGluIGEgcmVkaXJlY3QgY2hh
aW4gdGhhdCBzdGFydHMgd2l0aCAxMjcuMC4wLjEgYW5kIGVuZHMgd2l0aCBsb2NhbGhvc3QuIEV4
cGVjdCBubyBjb29raWUgZm9yIGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5s
b2NhdGlvbi5oYXNoID0gInN0ZXA3IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHJlZGly
ZWN0Q2hhaW5VcmwgKyAiJm1lc3NhZ2U9UmVkaXJlY3QgY2FzZSAyLCBzaG91bGQgcmVjZWl2ZSBu
byBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlICIjc3RlcDciOgorICAgICAgICAgICAgICAgIC8vIFRyeSB0byBzZXQgY29va2llIGZv
ciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xLgorICAgICAgICAgICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2ggPSAic3RlcDgiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQ
YXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRQYXJ0aXRpb25lZENvb2tpZSArICImbWVzc2FnZT1U
cnkgdG8gc2V0IHRoaXJkLXBhcnR5IGNvb2tpZSBpbiBibG9ja2VkIG1vZGUuIiwgcnVuVGVzdCk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDgiOgorICAg
ICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgbm8gY29va2llIGdldHMgc2VudCBmb3IgbG9jYWxo
b3N0IHVuZGVyIDEyNy4wLjAuMSBzaW5jZSBsb2NhbGhvc3QncyBjb29raWVzIGFyZSBibG9ja2Vk
LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDkiOworICAg
ICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRD
b29raWVzICsgICImbWVzc2FnZT1BZnRlciBhdHRlbXB0ZWQgY29va2llIGNyZWF0aW9uLCBzaG91
bGQgcmVjZWl2ZSBubyBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlICIjc3RlcDkiOgorICAgICAgICAgICAgICAgIC8vIExvYWQgYW4g
aWZyYW1lIGluIGEgcmVkaXJlY3QgY2hhaW4gdGhhdCBzdGFydHMgd2l0aCAxMjcuMC4wLjEgYW5k
IGVuZHMgd2l0aCBsb2NhbGhvc3QuIEV4cGVjdCBubyBjb29raWUgZm9yIGxvY2FsaG9zdC4KKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxMCI7CisgICAgICAg
ICAgICAgICAgb3BlbklmcmFtZShyZWRpcmVjdENoYWluVXJsICsgIiZtZXNzYWdlPVJlZGlyZWN0
IGNhc2UgMywgYWZ0ZXIgYXR0ZW1wdGVkIGNvb2tpZSBjcmVhdGlvbiwgc2hvdWxkIHJlY2VpdmUg
bm8gY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSAiI3N0ZXAxMCI6CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
IH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIikgeworICAgICAgICB0
ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0cy4iKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5o
YXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgfSk7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgcnVuVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2Jsb2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0LWltcG9ydC1kYXRhYmFzZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45Y2I3OTk0M2VkOGI0OWE4NDFiZDEyOWIzZjVhY2E2ZTJhM2IyMWJj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2Jsb2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0LWltcG9ydC1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorVGVzdCBmb3IgY29va2llIGJsb2NraW5nIHdo
ZW4gd2ViIHdvcmtlcnMgaW1wb3J0IGNyb3NzLXNpdGUgc2NyaXB0cy4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgRGlkIHJlY2VpdmUgZmlyc3RQYXJ0eUNvb2tpZSA9PSB2
YWx1ZQorUEFTUyBEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkIGZpcnN0UGFydHlDb29raWUK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKKy0t
LS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUg
Zmlyc3QtcGFydHkgY29va2llLgorUmVjZWl2ZWQgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29v
a2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQYXJ0eUNvb2tpZT12YWx1
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2Jsb2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0LWltcG9ydC1kYXRhYmFzZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Jsb2NraW5nLWlu
LXdlYi13b3JrZXItc2NyaXB0LWltcG9ydC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjYzNj
N2EyOTIyZGU3Y2IyNDc2ZmNkMDE0MDFlNzk5ZDg0ZDAwZWIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4t
d2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw4OCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgZm9yIGNvb2tpZSBibG9ja2luZyB3aGVuIHdlYiB3
b3JrZXJzIGltcG9ydCBjcm9zcy1zaXRlIHNjcmlwdHMuIik7CisgICAganNUZXN0SXNBc3luYyA9
IHRydWU7CisKKyAgICBjb25zdCBwYXJ0aXRpb25Ib3N0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAg
ICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAg
Y29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsgIi9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWUg
PSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNv
b2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAi
JnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCByZXR1cm5VcmwgPSAiaHR0cDovLzEyNy4wLjAuMTo4
MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQt
aW1wb3J0Lmh0bWwiOworICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tpZXMgPSAiL2dldC1jb29r
aWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWU7CisKKyAgICBmdW5jdGlvbiBv
cGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0g
dXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5v
bmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAgbGV0IHJlY2VpdmVkTWVzc2FnZXMg
PSAwOworICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgIGlmIChl
dmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICB0ZXN0RmFpbGVk
KGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworCisgICAg
ICAgICsrcmVjZWl2ZWRNZXNzYWdlczsKKyAgICAgICAgaWYgKHJlY2VpdmVkTWVzc2FnZXMgPj0g
MikKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsK
KyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNv
b2tpZSArICIjIiArIHJldHVyblVybCArICIjc3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5s
b2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJk
UGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVj
ZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggPSAic3RlcDQiOworICAgICAgICAgICAgICAgIGxldCB3MSA9IG5ldyBX
b3JrZXIoInJlc291cmNlcy93b3JrZXItaW1wb3J0aW5nLWxvY2FsaG9zdC1zY3JpcHQuanMiKTsK
KyAgICAgICAgICAgICAgICB3MS5vbm1lc3NhZ2UgPSByZWNlaXZlTWVzc2FnZTsKKyAgICAgICAg
ICAgICAgICB3MS5wb3N0TWVzc2FnZSgic2hvdWxkUmVjZWl2ZUNvb2tpZXM9dHJ1ZSIpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAg
ICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA1IjsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3Jp
Z2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMg
cHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNSI6Cisg
ICAgICAgICAgICAgICAgbGV0IHcyID0gbmV3IFdvcmtlcigicmVzb3VyY2VzL3dvcmtlci1pbXBv
cnRpbmctbG9jYWxob3N0LXNjcmlwdC5qcyIpOworICAgICAgICAgICAgICAgIHcyLm9ubWVzc2Fn
ZSA9IHJlY2VpdmVNZXNzYWdlOworICAgICAgICAgICAgICAgIHcyLnBvc3RNZXNzYWdlKCJzaG91
bGROb3RSZWNlaXZlQ29va2llcyIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IHBhcnRpdGlvbkhv
c3QgJiYgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIgJiYgd2luZG93LnRlc3RSdW5uZXIg
JiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFi
YXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikp
CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IHdhcyBjbGFzc2lmaWVkIGFz
IHByZXZhbGVudCByZXNvdXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAgICAg
ICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBydW5UZXN0
KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1h
Z2UtZm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1hZ2Ut
Zm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MGNjZTVhYTFjMzZhOTRkNTUwYmRlMjI5YWRlNDQ2ZmY4MzU1YzFjYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2Fj
aGUtbWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE0IEBACitUZXN0cyB0aGF0IGNhY2hlIG1heC1hZ2UgaXMgY2FwcGVkIGZvciBw
cmV2YWxlbnQgcmVzb3VyY2VzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBsb2FkZWRVcmwgaXMgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3Jlc291cmNlcy9lY2hvLXF1ZXJ5LnBocD92YWx1ZT0xMjM0IgorUEFTUyBsb2FkZWRVcmwg
aXMgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNl
cy9lY2hvLXF1ZXJ5LnBocD92YWx1ZT00MzIxIgorUEFTUyBsb2FkZWRVcmwgaXMgImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXF1ZXJ5
LnBocD92YWx1ZT0iCitQQVNTIGxvYWRlZFVybCBpcyAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPSIKK1BB
U1MgbG9hZGVkVXJsIGlzICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9IgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1mb3It
cHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1hZ2UtZm9yLXByZXZhbGVudC1y
ZXNvdXJjZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2NGE0NTE4YTgzMzk0NjA5MDczMzM3
M2YxZjYwMjE2M2FhYjkzMmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1hZ2UtZm9yLXByZXZhbGVu
dC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTEzIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMi
Pjwvc2NyaXB0PgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2FwcGVkIENhY2hlIE1heC1BZ2U8L3Rp
dGxlPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0
aGF0IGNhY2hlIG1heC1hZ2UgaXMgY2FwcGVkIGZvciBwcmV2YWxlbnQgcmVzb3VyY2VzLiIpOwor
ICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgdmFyIGxvYWRlZFVybDsKKyAgICBmdW5j
dGlvbiBmaXJzdEZldGNoKCkgeworICAgICAgICAvLyBUaGlzIHNob3VsZCBjcmVhdGUgYSBjYXBw
ZWQgY2FjaGUgZW50cnkuCisgICAgICAgIGZldGNoKCJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvY2FjaGVkLXBlcm1hbmVudC1yZWRpcmVjdC5w
aHAiLAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhY2hlOiAicmVsb2FkIiwKKyAg
ICAgICAgICAgICAgICBoZWFkZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICJYLVdlYktpdCI6
ICIxMjM0IiwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICkudGhl
bihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgbG9hZGVkVXJsID0gcmVzcG9uc2Uu
dXJsOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsb2FkZWRVcmwiLCAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8t
cXVlcnkucGhwP3ZhbHVlPTEyMzQiKTsKKyAgICAgICAgICAgIHNlY29uZEZldGNoKCk7CisgICAg
ICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKGVy
cm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNo
SlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2Vjb25kRmV0Y2go
KSB7CisgICAgICAgIC8vIFRoaXMgc2hvdWxkIG5vdCB0cmlnZ2VyIGEgc3VjY2Vzc2Z1bCBjYWNo
ZSBoaXQgYW5kIGluc3RlYWQgY3JlYXRlIGFub3RoZXIgY2FwcGVkIGNhY2hlIGVudHJ5LgorICAg
ICAgICBmZXRjaCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cmVzb3VyY2VzL2NhY2hlZC1wZXJtYW5lbnQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICBjYWNoZTogImZvcmNlLWNhY2hlIiwKKyAgICAgICAgICAgICAgICBo
ZWFkZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICJYLVdlYktpdCI6ICI0MzIxIiwKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICkudGhlbihmdW5jdGlvbihyZXNw
b25zZSkgeworICAgICAgICAgICAgbG9hZGVkVXJsID0gcmVzcG9uc2UudXJsOworICAgICAgICAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsb2FkZWRVcmwiLCAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVl
PTQzMjEiKTsKKyAgICAgICAgICAgIHRoaXJkRmV0Y2goKTsKKyAgICAgICAgfSkuY2F0Y2goZnVu
Y3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoZXJyb3IubWVzc2FnZSk7Cisg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAg
ICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0aGlyZEZldGNoKCkgeworICAgICAgICAvLyBU
aGlzIHNob3VsZCBub3QgdHJpZ2dlciBhIHN1Y2Nlc3NmdWwgY2FjaGUgaGl0IGFuZCBpbnN0ZWFk
IGNyZWF0ZSBhbm90aGVyIGNhcHBlZCBjYWNoZSBlbnRyeS4KKyAgICAgICAgZmV0Y2goImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9jYWNoZWQt
cGVybWFuZW50LXJlZGlyZWN0LnBocCIsCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
Y2FjaGU6ICJmb3JjZS1jYWNoZSIsCisgICAgICAgICAgICB9CisgICAgICAgICkudGhlbihmdW5j
dGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgbG9hZGVkVXJsID0gcmVzcG9uc2UudXJsOwor
ICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsb2FkZWRVcmwiLCAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnku
cGhwP3ZhbHVlPSIpOworICAgICAgICAgICAgZm91cnRoRmV0Y2goKTsKKyAgICAgICAgfSkuY2F0
Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoZXJyb3IubWVzc2Fn
ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOwor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmb3VydGhGZXRjaCgpIHsKKyAgICAg
ICAgLy8gVGhpcyBzaG91bGQgbm90IHRyaWdnZXIgYSBzdWNjZXNzZnVsIGNhY2hlIGhpdCBidXQg
Y2xlYXIgY2FwcGluZy4KKyAgICAgICAgZmV0Y2goImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9jYWNoZWQtcGVybWFuZW50LXJlZGlyZWN0LnBo
cCIsCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY2FjaGU6ICJmb3JjZS1jYWNoZSIs
CisgICAgICAgICAgICB9CisgICAgICAgICkudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAg
ICAgICAgICAgbG9hZGVkVXJsID0gcmVzcG9uc2UudXJsOworICAgICAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJsb2FkZWRVcmwiLCAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPSIpOworICAgICAg
ICAgICAgZmlmdGhGZXRjaCgpOworICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgewor
ICAgICAgICAgICAgdGVzdEZhaWxlZChlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIGZpZnRoRmV0Y2goKSB7CisgICAgICAgIC8vIFRoaXMgc2hvdWxkIHRyaWdn
ZXIgYSByZWd1bGFyLCBzdWNjZXNzZnVsIGNhY2hlIGhpdC4KKyAgICAgICAgZmV0Y2goImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9jYWNoZWQt
cGVybWFuZW50LXJlZGlyZWN0LnBocCIsCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
aGVhZGVyczogeworICAgICAgICAgICAgICAgICAgICAiWC1XZWJLaXQiOiAiMTIzNCIsCisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICApLnRoZW4oZnVuY3Rpb24ocmVz
cG9uc2UpIHsKKyAgICAgICAgICAgIGxvYWRlZFVybCA9IHJlc3BvbnNlLnVybDsKKyAgICAgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibG9hZGVkVXJsIiwgImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXF1ZXJ5LnBocD92YWx1
ZT0iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgICAgICB0ZXN0RmFp
bGVkKGVycm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfQorICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
Imh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3
YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0
ZWQuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzQ2FjaGVNYXhBZ2VDYXAo
MCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJo
dHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhmaXJzdEZldGNoKTsKKyAgICAgICAg
fSk7CisgICAgfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRp
bWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3It
Y29va2llLXNldC1pbi1qcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDg0NjIw
ZDZkMzMxMjExNjQ1MWE4YTU5Yzg0YmU2MTc2NGM0NmUzMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRp
bWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTEgQEAKK0NoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgd2l0aCBtYXgt
YWdlIG9yIGV4cGlyeSBsb25nZXIgdGhhbiBhIHdlZWsgZ2V0IGNhcHBlZCB0byBhIHdlZWsuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSB0d28gc2hvcnQtbGl2ZWQg
Y29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDE3MjgzMCBzZWNvbmRzLgorUEFT
UyBUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFu
IDYwNDgzMCBzZWNvbmRzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtZGF0YWJh
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
YXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtZGF0YWJhc2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lMmZmZDA0MWFlMzJkZTI4NjAzYjgxOTEwMzBjZThhMzA1ZDI2MjZiCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nh
cHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS5odG1sCkBAIC0wLDAg
KzEsODMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkNoZWNrIHRoYXQgY29v
a2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgd2l0aCBtYXgtYWdlIG9yIGV4cGlyeSBsb25nZXIg
dGhhbiBhIHdlZWsgZ2V0IGNhcHBlZCB0byBhIHdlZWsuIik7CisgICAganNUZXN0SXNBc3luYyA9
IHRydWU7CisgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKworICAgIGlm
IChpbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RW5hYmxlZCh0cnVlKTsKKworICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7CisgICAgZnVuY3Rpb24g
Y2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZURhdGEsIG1heEFnZUluU2Vj
b25kcykgeworICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKKyAgICAgICAgbGV0IG1heEV4
cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA9IG5vdy5nZXRUaW1lKCkgKyAobWF4QWdlSW5TZWNvbmRz
ICogMTAwMCk7CisKKyAgICAgICAgaWYgKG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA+IGNv
b2tpZURhdGFbImV4cGlyZXMiXSkKKyAgICAgICAgICAgICsrcGFzc2VkVGVzdHM7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBuYW1lZCAiICsgY29va2llRGF0
YVsibmFtZSJdICsgIiBleHBpcmVzIGluIG1vcmUgdGhhbiAiICsgbWF4QWdlSW5TZWNvbmRzICsg
IiBzZWNvbmRzLiIpOworICAgIH0KKworICAgIGNvbnN0IHR3b0RheXNJblNlY29uZHMgPSAyICog
MjQgKiA2MCAqIDYwOworICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUg
OiAic2hvcnRMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b0Rh
eXNJblNlY29uZHMgKyAiOyIgfTsKKyAgICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29v
a2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubGlm
ZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0ZSA9IGNy
ZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICBjb25zdCBz
aG9ydExpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJzaG9ydExpdmVkQ29va2llRXhwaXJl
cyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3b0RheXNBc0V4cGlyZXNEYXRlICsgIjsiIH07
CisgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubmFtZSArICI9
Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBhdGg9LyI7
CisKKyAgICBjb25zdCBvbmVXZWVrSW5TZWNvbmRzID0gNyAqIDI0ICogNjAgKiA2MDsKKyAgICBj
b25zdCB0d29XZWVrc0luU2Vjb25kcyA9IDIgKiBvbmVXZWVrSW5TZWNvbmRzOworICAgIGNvbnN0
IGxvbmdMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVNYXhBZ2Ui
LCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d29XZWVrc0luU2Vjb25kcyArICI7IiB9OworICAg
IGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7
ICIgKyBsb25nTGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICBj
b25zdCB0d29XZWVrc0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2Uo
dHdvV2Vla3NJblNlY29uZHMpOworICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMgPSB7
IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiAr
IHR3b1dlZWtzQXNFeHBpcmVzRGF0ZSArICI7IiB9OworICAgIGRvY3VtZW50LmNvb2tpZSA9IGxv
bmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2ll
RXhwaXJlcy5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgIGNvbnN0IG92ZXJUd29EYXlzSW5T
ZWNvbmRzID0gdHdvRGF5c0luU2Vjb25kcyArIDMwOworICAgIGNvbnN0IG92ZXJPbmVXZWVrSW5T
ZWNvbmRzID0gb25lV2Vla0luU2Vjb25kcyArIDMwOworICAgIGlmIChpbnRlcm5hbHMpIHsKKyAg
ICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICBpZiAo
IWNvb2tpZXMubGVuZ3RoKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gY29va2llcyBmb3Vu
ZC4iKTsKKyAgICAgICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAg
IHN3aXRjaCAoY29va2llLm5hbWUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRD
b29raWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9l
c05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3b0RheXNJblNlY29uZHMpOworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRDb29raWVF
eHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RF
eHBpcmVBZnRlcihjb29raWUsIG92ZXJUd29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29raWVNYXhBZ2Uu
bmFtZToKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFm
dGVyKGNvb2tpZSwgb3Zlck9uZVdlZWtJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZToK
KyAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNv
b2tpZSwgb3Zlck9uZVdlZWtJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJlc2V0Q29va2llc0ZvckN1cnJl
bnRPcmlnaW4oKTsKKworICAgICAgICBpZiAocGFzc2VkVGVzdHMgPT09IDQpIHsKKyAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUg
YWZ0ZXIgbW9yZSB0aGFuICIgKyBvdmVyVHdvRGF5c0luU2Vjb25kcyArICIgc2Vjb25kcy4iKTsK
KyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0
IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJPbmVXZWVrSW5TZWNvbmRzICsgIiBzZWNv
bmRzLiIpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkF0IGxlYXN0
IG9uZSBjb29raWUncyBleHBpcnkgYXR0cmlidXRlIHdhcyBiZXlvbmQgdGhlIHRlc3QgdGhyZXNo
b2xkcy4iKTsKKyAgICB9IGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiTm8gaW50ZXJuYWxzIG9i
amVjdC4iKTsKKworICAgIGlmIChpbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2ll
LXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nh
cHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1z
YW1lLXNpdGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0OTU0NWEwMzRkM2Fm
MjU5MGM5OTMzN2QyMzA1YTliZWZkYmE0MTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1j
b29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQg
YnkgSmF2YVNjcmlwdCBhZnRlciBhIHNhbWUtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBkZWNv
cmF0aW9uIGRvbid0IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIFRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGV4cGlyZSBhZnRl
ciBtb3JlIHRoYW4gODY0MzAgc2Vjb25kcy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWlu
LWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1m
b3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUtZGF0YWJh
c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lZDA5OTkxYjNmYThhY2Q0ODE5OWE4NTMyMzRkMjVhYjI4OTE1
ZGMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxp
bmstZGVjb3JhdGlvbi1zYW1lLXNpdGUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDg2IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2Nvb2tp
ZXMvcmVzb3VyY2VzL2Nvb2tpZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InNldFRpbWVvdXQoJ3J1blRlc3QoKScsIDApIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24o
IkNoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBzYW1lLXNp
dGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgZGVjb3JhdGlvbiBkb24ndCBnZXQgY2FwcGVkIHRvIDI0
IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rpb24gdGVz
dENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7CisKKyAgICAgICAgZnVu
Y3Rpb24gY2hlY2tUaGF0Q29va2llRG9lc0V4cGlyZUFmdGVyKGNvb2tpZURhdGEsIG1heEFnZUlu
U2Vjb25kcykgeworICAgICAgICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7CisgICAgICAgICAg
ICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93LmdldFRpbWUoKSArIChtYXhB
Z2VJblNlY29uZHMgKiAxMDAwKTsKKworICAgICAgICAgICAgaWYgKG1heEV4cGlyeURhdGVJbk1p
bGxpc2Vjb25kcyA8IGNvb2tpZURhdGFbImV4cGlyZXMiXSkKKyAgICAgICAgICAgICAgICArK3Bh
c3NlZFRlc3RzOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
IkNvb2tpZSBuYW1lZCAiICsgY29va2llRGF0YVsibmFtZSJdICsgIiBleHBpcmVzIGluIGxlc3Mg
dGhhbiAiICsgbWF4QWdlSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICB9CisKKyAg
ICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0gMjQgKiA2MCAqIDYwOworICAgICAgICBjb25z
dCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIG9uZURheUluU2Vjb25kczsKKyAgICAgICAgY29uc3Qg
bG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZU1heEFnZSIs
IGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b0RheXNJblNlY29uZHMgKyAiOyIgfTsKKyAgICAg
ICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2Jh
cjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAg
ICAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1h
eEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llRXhw
aXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhw
aXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQu
Y29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25n
TGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0
IG92ZXJPbmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMgKyAzMDsKKyAgICAgICAgaWYg
KGludGVybmFscykgeworICAgICAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29v
a2llcygpOworICAgICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAgICAgICAgZm9yIChsZXQg
Y29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvb2tpZS5uYW1l
KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWU6
CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzRXhwaXJlQWZ0ZXIo
Y29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFt
ZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNFeHBpcmVBZnRl
cihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBy
ZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAgICAgIGlmIChwYXNzZWRU
ZXN0cyA9PT0gMikgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gbG9uZy1s
aXZlZCBjb29raWVzIGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJPbmVEYXlJblNlY29u
ZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJpYnV0ZSB3YXMgYmVs
b3cgdGhlIHRlc3QgdGhyZXNob2xkcy4iKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOworCisgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdh
dGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHByZXZh
bGVudFJlc291cmNlT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUu
aHRtbD9saW5rPWRlY29yYXRpb24jZnJhZ21lbnQiOworICAgIH0KKworICAgIGNvbnN0IGRlc3Rp
bmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgcHJldmFs
ZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBmdW5jdGlv
biBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luID09PSBw
cmV2YWxlbnRSZXNvdXJjZU9yaWdpbiAmJiBkb2N1bWVudC5sb2NhdGlvbi5oYXNoICE9PSAiI2Zy
YWdtZW50IikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHBy
ZXZhbGVudFJlc291cmNlT3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZh
bGVudFJlc291cmNlT3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ikhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcobmF2
aWdhdGVDcm9zc09yaWdpbik7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdENvb2tpZXMoKTsKKyAgICAgICAg
fQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1m
b3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVz
b3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13
aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmY3YmFkMDMyYzZmMjI0NTczYTMzNWQzZjcwNDE5ZGNiNGJlNDNh
MTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGlu
ay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMSBAQAorQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlw
dCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgZnJhZ21lbnQgZ2V0IGNh
cHBlZCB0byAyNCBob3Vycy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
VGhlIHR3byBzaG9ydC1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4g
NDMyMzAgc2Vjb25kcy4KK1BBU1MgVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhw
aXJlIGFmdGVyIG1vcmUgdGhhbiA4NjQzMCBzZWNvbmRzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tp
ZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRh
dGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVu
dC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjODRm
Yjg5NGY5OWIzMjdjMTc3M2UyMDA3ZGMxMGQ5MWMyYTg3OTkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0
aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVu
dC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTAxIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2Nvb2tpZXMvcmVzb3VyY2Vz
L2Nvb2tpZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQo
J3J1blRlc3QoKScsIDApIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkNoZWNrIHRoYXQg
Y29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRp
b24gd2l0aCBsaW5rIGZyYWdtZW50IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuIik7CisgICAganNU
ZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29va2llcygpIHsKKyAgICAg
ICAgbGV0IHBhc3NlZFRlc3RzID0gMDsKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tUaGF0Q29va2ll
RG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZURhdGEsIG1heEFnZUluU2Vjb25kcykgeworICAgICAg
ICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7CisgICAgICAgICAgICBsZXQgbWF4RXhwaXJ5RGF0
ZUluTWlsbGlzZWNvbmRzID0gbm93LmdldFRpbWUoKSArIChtYXhBZ2VJblNlY29uZHMgKiAxMDAw
KTsKKworICAgICAgICAgICAgaWYgKG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA+IGNvb2tp
ZURhdGFbImV4cGlyZXMiXSkKKyAgICAgICAgICAgICAgICArK3Bhc3NlZFRlc3RzOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBuYW1lZCAiICsg
Y29va2llRGF0YVsibmFtZSJdICsgIiBleHBpcmVzIGluIG1vcmUgdGhhbiAiICsgbWF4QWdlSW5T
ZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgdHdlbHZl
SG91cnNJblNlY29uZHMgPSAxMiAqIDYwICogNjA7CisgICAgICAgIGNvbnN0IHNob3J0TGl2ZWRD
b29raWVNYXhBZ2UgPSB7IG5hbWUgOiAic2hvcnRMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1l
IDogIk1heC1BZ2U9IiArIHR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgIjsiIH07CisgICAgICAgIGRv
Y3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAi
ICsgc2hvcnRMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAg
ICBjb25zdCB0d2VsdmVIb3Vyc0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21N
YXhBZ2UodHdlbHZlSG91cnNJblNlY29uZHMpOworICAgICAgICBjb25zdCBzaG9ydExpdmVkQ29v
a2llRXhwaXJlcyA9IHsgbmFtZSA6ICJzaG9ydExpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0aW1l
IDogIkV4cGlyZXM9IiArIHR3ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0ZSArICI7IiB9OworICAgICAg
ICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29i
YXI7ICIgKyBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0vIjsKKwor
ICAgICAgICBjb25zdCBvbmVEYXlJblNlY29uZHMgPSAyICogdHdlbHZlSG91cnNJblNlY29uZHM7
CisgICAgICAgIGNvbnN0IHR3b0RheXNJblNlY29uZHMgPSAyICogb25lRGF5SW5TZWNvbmRzOwor
ICAgICAgICBjb25zdCBsb25nTGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUgOiAibG9uZ0xpdmVk
Q29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdvRGF5c0luU2Vjb25kcyAr
ICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVNYXhBZ2Uu
bmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1lICsgIiBw
YXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3b0RheXNBc0V4cGlyZXNEYXRlID0gY3JlYXRlRXhw
aXJlc0RhdGVGcm9tTWF4QWdlKHR3b0RheXNJblNlY29uZHMpOworICAgICAgICBjb25zdCBsb25n
TGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZUV4cGlyZXMiLCBs
aWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d29EYXlzQXNFeHBpcmVzRGF0ZSArICI7IiB9OworICAg
ICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAiPWZv
b2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisK
KyAgICAgICAgY29uc3Qgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzID0gdHdlbHZlSG91cnNJblNl
Y29uZHMgKyAzMDsKKyAgICAgICAgY29uc3Qgb3Zlck9uZURheUluU2Vjb25kcyA9IG9uZURheUlu
U2Vjb25kcyArIDMwOworICAgICAgICBpZiAoaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBsZXQg
Y29va2llcyA9IGludGVybmFscy5nZXRDb29raWVzKCk7CisgICAgICAgICAgICBpZiAoIWNvb2tp
ZXMubGVuZ3RoKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGNvb2tpZXMgZm91bmQu
Iik7CisgICAgICAgICAgICBmb3IgKGxldCBjb29raWUgb2YgY29va2llcykgeworICAgICAgICAg
ICAgICAgIHN3aXRjaCAoY29va2llLm5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBz
aG9ydExpdmVkQ29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVj
a1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdlbHZlSG91cnNJblNl
Y29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
ICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJUd2Vs
dmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUs
IG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAg
ICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNv
b2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJlc2V0
Q29va2llc0ZvckN1cnJlbnRPcmlnaW4oKTsKKworICAgICAgICAgICAgaWYgKHBhc3NlZFRlc3Rz
ID09PSA0KSB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBzaG9ydC1saXZl
ZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJUd2VsdmVIb3Vy
c0luU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJU
aGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIg
KyBvdmVyT25lRGF5SW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQXQgbGVhc3Qgb25lIGNvb2tpZSdzIGV4cGly
eSBhdHRyaWJ1dGUgd2FzIGJleW9uZCB0aGUgdGVzdCB0aHJlc2hvbGRzLiIpOworICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGludGVybmFscyBvYmplY3QuIik7CisK
KyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBuYXZpZ2F0ZUNyb3NzT3JpZ2luKCkgeworICAgICAgICBkb2N1bWVudC5s
b2NhdGlvbi5ocmVmID0gZGVzdGluYXRpb25PcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVu
dC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sI2xpbms9ZnJhZ21lbnQiOworICAgIH0KKwor
ICAgIGNvbnN0IGRlc3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7Cisg
ICAgY29uc3QgcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IjsKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRp
b24ub3JpZ2luID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luLCB0cnVl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0
aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcobmF2aWdhdGVDcm9zc09yaWdpbik7CisgICAgICAg
ICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgdGVzdENvb2tpZXMoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxp
bmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWFu
ZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNmU5OGRjOGY5MGUyZGExYjE5ODNiNDhkYzE4NmVhZDdhNjk2NWQ3YQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5
LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMSBAQAorQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNj
cmlwdCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVlcnkgYW5kIGZy
YWdtZW50IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIFRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0
ZXIgbW9yZSB0aGFuIDQzMjMwIHNlY29uZHMuCitQQVNTIFRoZSB0d28gbG9uZy1saXZlZCBjb29r
aWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gODY0MzAgc2Vjb25kcy4KK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0
aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJv
bS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQt
aW4tanMtd2l0aC1saW5rLXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJj
ZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1OTFlYjRlOTU4ZmIxYjUwZGI3ZjgyMmEyMDBl
Y2NjNjczODI0MTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0
YWJhc2UuaHRtbApAQCAtMCwwICsxLDEwMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0
aWVzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAw
KSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRl
ZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBx
dWVyeSBhbmQgZnJhZ21lbnQgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4iKTsKKyAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0aW9uIHRlc3RDb29raWVzKCkgeworICAgICAgICBs
ZXQgcGFzc2VkVGVzdHMgPSAwOworICAgICAgICBmdW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2Vz
Tm90RXhwaXJlQWZ0ZXIoY29va2llRGF0YSwgbWF4QWdlSW5TZWNvbmRzKSB7CisgICAgICAgICAg
ICBsZXQgbm93ID0gbmV3IERhdGUoKTsKKyAgICAgICAgICAgIGxldCBtYXhFeHBpcnlEYXRlSW5N
aWxsaXNlY29uZHMgPSBub3cuZ2V0VGltZSgpICsgKG1heEFnZUluU2Vjb25kcyAqIDEwMDApOwor
CisgICAgICAgICAgICBpZiAobWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID4gY29va2llRGF0
YVsiZXhwaXJlcyJdKQorICAgICAgICAgICAgICAgICsrcGFzc2VkVGVzdHM7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5hbWVkICIgKyBjb29r
aWVEYXRhWyJuYW1lIl0gKyAiIGV4cGlyZXMgaW4gbW9yZSB0aGFuICIgKyBtYXhBZ2VJblNlY29u
ZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCB0d2VsdmVIb3Vy
c0luU2Vjb25kcyA9IDEyICogNjAgKiA2MDsKKyAgICAgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tp
ZU1heEFnZSA9IHsgbmFtZSA6ICJzaG9ydExpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAi
TWF4LUFnZT0iICsgdHdlbHZlSG91cnNJblNlY29uZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1l
bnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBz
aG9ydExpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNv
bnN0IHR3ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFn
ZSh0d2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVF
eHBpcmVzID0geyBuYW1lIDogInNob3J0TGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAi
RXhwaXJlcz0iICsgdHdlbHZlSG91cnNBc0V4cGlyZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRv
Y3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAiPWZvb2Jhcjsg
IiArIHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAg
ICAgIGNvbnN0IG9uZURheUluU2Vjb25kcyA9IDIgKiB0d2VsdmVIb3Vyc0luU2Vjb25kczsKKyAg
ICAgICAgY29uc3QgdHdvRGF5c0luU2Vjb25kcyA9IDIgKiBvbmVEYXlJblNlY29uZHM7CisgICAg
ICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29r
aWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d29EYXlzSW5TZWNvbmRzICsgIjsi
IH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1l
ICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9
LyI7CisKKyAgICAgICAgY29uc3QgdHdvRGF5c0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVz
RGF0ZUZyb21NYXhBZ2UodHdvRGF5c0luU2Vjb25kcyk7CisgICAgICAgIGNvbnN0IGxvbmdMaXZl
ZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0
aW1lIDogIkV4cGlyZXM9IiArIHR3b0RheXNBc0V4cGlyZXNEYXRlICsgIjsiIH07CisgICAgICAg
IGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFy
OyAiICsgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0vIjsKKworICAg
ICAgICBjb25zdCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMgPSB0d2VsdmVIb3Vyc0luU2Vjb25k
cyArIDMwOworICAgICAgICBjb25zdCBvdmVyT25lRGF5SW5TZWNvbmRzID0gb25lRGF5SW5TZWNv
bmRzICsgMzA7CisgICAgICAgIGlmIChpbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGxldCBjb29r
aWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKTsKKyAgICAgICAgICAgIGlmICghY29va2llcy5s
ZW5ndGgpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gY29va2llcyBmb3VuZC4iKTsK
KyAgICAgICAgICAgIGZvciAobGV0IGNvb2tpZSBvZiBjb29raWVzKSB7CisgICAgICAgICAgICAg
ICAgc3dpdGNoIChjb29raWUubmFtZSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIHNob3J0
TGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhh
dENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25k
cyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
Y2FzZSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAgICAgICAg
ICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3ZWx2ZUhv
dXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAg
ICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3Zl
ck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAgICAg
ICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2ll
LCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVzZXRDb29r
aWVzRm9yQ3VycmVudE9yaWdpbigpOworCisgICAgICAgICAgICBpZiAocGFzc2VkVGVzdHMgPT09
IDQpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIHNob3J0LWxpdmVkIGNv
b2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3ZlclR3ZWx2ZUhvdXJzSW5T
ZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0
d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92
ZXJPbmVEYXlJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0
dHJpYnV0ZSB3YXMgYmV5b25kIHRoZSB0ZXN0IHRocmVzaG9sZHMuIik7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gaW50ZXJuYWxzIG9iamVjdC4iKTsKKworICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAg
IGZ1bmN0aW9uIG5hdmlnYXRlQ3Jvc3NPcmlnaW4oKSB7CisgICAgICAgIGRvY3VtZW50LmxvY2F0
aW9uLmhyZWYgPSBkZXN0aW5hdGlvbk9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
YXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWFuZC1m
cmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sP2xpbms9cXVlcnkjbGluaz1mcmFn
bWVudCI7CisgICAgfQorCisgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiA9ICJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlm
IChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVz
b3VyY2VPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAo
IXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3Vy
Y2VPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQg
bm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhuYXZpZ2F0ZUNyb3Nz
T3JpZ2luKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0Q29va2llcygpOworICAgICAgICB9CisgICAgfQor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUt
c2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVy
eS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDQ1ZGQxNmMyZWUwMTA4MGUzYzFmMWI0MDIwNmI2NmE4MDJlMGFjMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBw
ZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJl
dmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitD
aGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0
ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBxdWVyeSBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgdHdvIHNob3J0LWxpdmVkIGNv
b2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA0MzIzMCBzZWNvbmRzLgorUEFTUyBU
aGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDg2
NDMwIHNlY29uZHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmst
cXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNv
b2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRh
dGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODgyNjIzZDFmYzM3ZmM4NmI0Mzg3ZTRhY2FlYzBlMjQ4
NmFlODMzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0
aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAs
MCArMSwxMDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAg
ICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBh
ZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVlcnkgZ2V0IGNhcHBlZCB0
byAyNCBob3Vycy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0aW9u
IHRlc3RDb29raWVzKCkgeworICAgICAgICBsZXQgcGFzc2VkVGVzdHMgPSAwOworICAgICAgICBm
dW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llRGF0YSwgbWF4
QWdlSW5TZWNvbmRzKSB7CisgICAgICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKKyAgICAg
ICAgICAgIGxldCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPSBub3cuZ2V0VGltZSgpICsg
KG1heEFnZUluU2Vjb25kcyAqIDEwMDApOworCisgICAgICAgICAgICBpZiAobWF4RXhwaXJ5RGF0
ZUluTWlsbGlzZWNvbmRzID4gY29va2llRGF0YVsiZXhwaXJlcyJdKQorICAgICAgICAgICAgICAg
ICsrcGFzc2VkVGVzdHM7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiQ29va2llIG5hbWVkICIgKyBjb29raWVEYXRhWyJuYW1lIl0gKyAiIGV4cGlyZXMgaW4g
bW9yZSB0aGFuICIgKyBtYXhBZ2VJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgIH0K
KworICAgICAgICBjb25zdCB0d2VsdmVIb3Vyc0luU2Vjb25kcyA9IDEyICogNjAgKiA2MDsKKyAg
ICAgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJzaG9ydExpdmVk
Q29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdlbHZlSG91cnNJblNlY29u
ZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZU1h
eEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1l
ICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0ZSA9
IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAg
ICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogInNob3J0TGl2ZWRD
b29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdlbHZlSG91cnNBc0V4cGly
ZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29r
aWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLmxp
ZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG9uZURheUluU2Vjb25kcyA9IDIg
KiB0d2VsdmVIb3Vyc0luU2Vjb25kczsKKyAgICAgICAgY29uc3QgdHdvRGF5c0luU2Vjb25kcyA9
IDIgKiBvbmVEYXlJblNlY29uZHM7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZU1heEFn
ZSA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdl
PSIgKyB0d29EYXlzSW5TZWNvbmRzICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9
IGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29r
aWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdvRGF5c0Fz
RXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdvRGF5c0luU2Vjb25k
cyk7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAibG9u
Z0xpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3b0RheXNBc0V4
cGlyZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENv
b2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5s
aWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCBvdmVyVHdlbHZlSG91cnNJblNl
Y29uZHMgPSB0d2VsdmVIb3Vyc0luU2Vjb25kcyArIDMwOworICAgICAgICBjb25zdCBvdmVyT25l
RGF5SW5TZWNvbmRzID0gb25lRGF5SW5TZWNvbmRzICsgMzA7CisgICAgICAgIGlmIChpbnRlcm5h
bHMpIHsKKyAgICAgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKTsK
KyAgICAgICAgICAgIGlmICghY29va2llcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiTm8gY29va2llcyBmb3VuZC4iKTsKKyAgICAgICAgICAgIGZvciAobGV0IGNvb2tpZSBv
ZiBjb29raWVzKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjb29raWUubmFtZSkgeworICAg
ICAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29r
aWUsIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5u
YW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGly
ZUFmdGVyKGNvb2tpZSwgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tp
ZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9l
c05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRD
b29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29r
aWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgcmVzZXRDb29raWVzRm9yQ3VycmVudE9yaWdpbigpOworCisgICAg
ICAgICAgICBpZiAocGFzc2VkVGVzdHMgPT09IDQpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUg
dGhhbiAiICsgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAg
ICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0IGV4
cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJPbmVEYXlJblNlY29uZHMgKyAiIHNlY29uZHMu
Iik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBdCBs
ZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJpYnV0ZSB3YXMgYmV5b25kIHRoZSB0ZXN0IHRo
cmVzaG9sZHMuIik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8g
aW50ZXJuYWxzIG9iamVjdC4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBm
aW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG5hdmlnYXRlQ3Jvc3NPcmlnaW4o
KSB7CisgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbk9yaWdpbiAr
ICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQt
aW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWw/bGluaz1x
dWVyeSI7CisgICAgfQorCisgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiA9ICJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlm
IChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVz
b3VyY2VPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAo
IXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3Vy
Y2VPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQg
bm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhuYXZpZ2F0ZUNyb3Nz
T3JpZ2luKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0Q29va2llcygpOworICAgICAgICB9CisgICAgfQor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUt
c2V0LWluLWpzLXdpdGhvdXQtbGluay1kZWNvcmF0aW9uLWZyb20tcHJldmFsZW50LXJlc291cmNl
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91
dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjNiZjY0OWE1N2UxMzY0YzA2MDY0NTY5NDEzMDQ1NDExMzc0NTgz
MDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGhvdXQt
bGluay1kZWNvcmF0aW9uLWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEwIEBACitDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZh
U2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGhvdXQgbGluayBkZWNvcmF0
aW9uIGRvbid0IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIFRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGV4cGlyZSBhZnRlciBt
b3JlIHRoYW4gODY0MzAgc2Vjb25kcy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LXdpdGhvdXQtbGluay1kZWNvcmF0aW9uLWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2Fw
cGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGhvdXQtbGluay1kZWNvcmF0aW9u
LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjJmZWFk
OGI0NTA3OGYxYjBhZjUwNzgwZjNmN2Q2YmQ4OWQ4MGE3MAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRp
bWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2
YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDg2IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2Nvb2tpZXMvcmVzb3Vy
Y2VzL2Nvb2tpZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVv
dXQoJ3J1blRlc3QoKScsIDApIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkNoZWNrIHRo
YXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmln
YXRpb24gd2l0aG91dCBsaW5rIGRlY29yYXRpb24gZG9uJ3QgZ2V0IGNhcHBlZCB0byAyNCBob3Vy
cy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0aW9uIHRlc3RDb29r
aWVzKCkgeworICAgICAgICBsZXQgcGFzc2VkVGVzdHMgPSAwOworCisgICAgICAgIGZ1bmN0aW9u
IGNoZWNrVGhhdENvb2tpZURvZXNFeHBpcmVBZnRlcihjb29raWVEYXRhLCBtYXhBZ2VJblNlY29u
ZHMpIHsKKyAgICAgICAgICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpOworICAgICAgICAgICAgbGV0
IG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA9IG5vdy5nZXRUaW1lKCkgKyAobWF4QWdlSW5T
ZWNvbmRzICogMTAwMCk7CisKKyAgICAgICAgICAgIGlmIChtYXhFeHBpcnlEYXRlSW5NaWxsaXNl
Y29uZHMgPCBjb29raWVEYXRhWyJleHBpcmVzIl0pCisgICAgICAgICAgICAgICAgKytwYXNzZWRU
ZXN0czsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29r
aWUgbmFtZWQgIiArIGNvb2tpZURhdGFbIm5hbWUiXSArICIgZXhwaXJlcyBpbiBsZXNzIHRoYW4g
IiArIG1heEFnZUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgfQorCisgICAgICAg
IGNvbnN0IG9uZURheUluU2Vjb25kcyA9IDI0ICogNjAgKiA2MDsKKyAgICAgICAgY29uc3QgdHdv
RGF5c0luU2Vjb25kcyA9IDIgKiBvbmVEYXlJblNlY29uZHM7CisgICAgICAgIGNvbnN0IGxvbmdM
aXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZl
dGltZSA6ICJNYXgtQWdlPSIgKyB0d29EYXlzSW5TZWNvbmRzICsgIjsiIH07CisgICAgICAgIGRv
Y3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIg
KyBsb25nTGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAg
Y29uc3QgdHdvRGF5c0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2Uo
dHdvRGF5c0luU2Vjb25kcyk7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMg
PSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9
IiArIHR3b0RheXNBc0V4cGlyZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tp
ZSA9IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVk
Q29va2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCBvdmVy
T25lRGF5SW5TZWNvbmRzID0gb25lRGF5SW5TZWNvbmRzICsgMzA7CisgICAgICAgIGlmIChpbnRl
cm5hbHMpIHsKKyAgICAgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMo
KTsKKyAgICAgICAgICAgIGlmICghY29va2llcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiTm8gY29va2llcyBmb3VuZC4iKTsKKyAgICAgICAgICAgIGZvciAobGV0IGNvb2tp
ZSBvZiBjb29raWVzKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjb29raWUubmFtZSkgewor
ICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAg
ICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc0V4cGlyZUFmdGVyKGNvb2tp
ZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzRXhwaXJlQWZ0ZXIoY29v
a2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVzZXRD
b29raWVzRm9yQ3VycmVudE9yaWdpbigpOworCisgICAgICAgICAgICBpZiAocGFzc2VkVGVzdHMg
PT09IDIpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIGxvbmctbGl2ZWQg
Y29va2llcyBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBvdmVyT25lRGF5SW5TZWNvbmRzICsg
IiBzZWNvbmRzLiIpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiQXQgbGVhc3Qgb25lIGNvb2tpZSdzIGV4cGlyeSBhdHRyaWJ1dGUgd2FzIGJlbG93IHRo
ZSB0ZXN0IHRocmVzaG9sZHMuIik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZh
aWxlZCgiTm8gaW50ZXJuYWxzIG9iamVjdC4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG5hdmlnYXRlQ3Jv
c3NPcmlnaW4oKSB7CisgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlv
bk9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNv
b2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVz
b3VyY2UuaHRtbCI7CisgICAgfQorCisgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiA9
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAg
ICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHByZXZhbGVudFJlc291cmNlT3Jp
Z2luKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOwor
ICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFs
ZW50UmVzb3VyY2VPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50
UmVzb3VyY2VPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhuYXZpZ2F0
ZUNyb3NzT3JpZ2luKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0Q29va2llcygpOworICAgICAgICB9Cisg
ICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZh
bGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1u
b24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjIwYzI1OGI4ZTAwNWQzNTU0MTgyYWYwNmQ0ODI1ODNhZTc3ZTVhMTMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0
aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0IGRpZCBub3QgZ2V0
IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXBy
ZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXBy
ZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNGUwM2ZkODcxMmVmOWVkYzliMTg2MmY2MzZkMWU3NGVhNjg4ZDg0NAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2Uu
aHRtbApAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4K
KzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9y
IENsYXNzaWZpY2F0aW9uIEJhc2VkIG9uIE1peGVkIFN0YXRpc3RpY3M8L3RpdGxlPgorICAgIDxz
Y3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4w
LjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRl
clRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3
LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8x
MjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDov
LzEyNy4wLjAuNDo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgewor
ICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBw
cmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJl
U2Nhbm5lZCh0cnVlKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBh
cyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9w
RnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJl
c291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVS
ZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhj
b21wbGV0ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNz
U3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlm
IChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0
UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJ
VFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cisg
ICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsK
KyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11
bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZh
bGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwYzI1OGI4ZTAwNWQzNTU0MTgyYWYwNmQ0ODI1ODNh
ZTc3ZTVhMTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWIt
ZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCitQQVNTIEhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRl
ci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQt
b24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjg1NDA5MDhlZDgwZDEzNGU3MzgwNDk2YTI3NTA1YWQwMDVjOTdiYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJh
bWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgor
ICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gU3ViIEZyYW1lIFVu
ZGVyIFRvcCBGcmFtZSBPcmlnaW5zPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0
IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAg
ICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOwor
ICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7
CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1w
IjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGRpZCBub3QgZ2V0
IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNv
dXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVV
bmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmln
aW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJs
LCB0b3BGcmFtZU9yaWdpbjMpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0
aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxi
YWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1By
b2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisg
ICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93
LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNl
dFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRy
dWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVz
b3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5v
bi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMt
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwYzI1OGI4ZTAwNWQzNTU0MTgyYWYw
NmQ0ODI1ODNhZTc3ZTVhMTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNl
ZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKK1BBU1MgSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZh
bGVudCByZXNvdXJjZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3Vi
cmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJl
dmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFi
YXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMTYxMTIwYTg1OTMxMjExNDA3MmQ0NzI5YjM2YmEwYTE3N2Yz
ZGM0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291
cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1MCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBj
aGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBDbGFzc2lmaWNhdGlvbiBCYXNl
ZCBvbiBTdWJyZXNvdXJjZSBVbmRlciBUb3AgRnJhbWUgT3JpZ2luczwvdGl0bGU+CisgICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAu
MTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVy
VGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcu
MC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEy
Ny4wLjAuMzo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQo
Ikhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisK
KyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nh
bm5lZCh0cnVlKTsKKyAKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
aWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1Vy
bCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMg
bm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRv
cEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJy
ZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4y
KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRh
UmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7
CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRl
c3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0
ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NFbmFibGVkKHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgIH0KKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFz
ZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3Rz
LXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMGMyNThiOGUwMDVkMzU1NDE4
MmFmMDZkNDgyNTgzYWU3N2U1YTEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQt
YmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKK1BBU1MgSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZh
bGVudCByZXNvdXJjZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3Vi
cmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxl
bnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA3NThjYjA2YjZlMmE5YWZmZmEyZDc0M2QzZmViMmMwZGE1OGU2ZTkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlx
dWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYt
OCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBDbGFzc2lmaWNhdGlvbiBCYXNlZCBvbiBTdWJyZXNv
dXJjZSBVbmlxdWUgUmVkaXJlY3RzIFRvPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNv
bnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsK
KyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAi
OworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVt
cCI7CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBkaWQgbm90IGdl
dCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICBpbnRlcm5h
bHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAgICAgICB0ZXN0
UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOwor
IAorICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50
IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVk
aXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworCisgICAgICAgICAgICB0
ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29t
cGxldGVUZXN0KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0
YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAo
ZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1
bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQ
RGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAg
ICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7Cisg
ICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3Mt
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0
aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmRkNjlmOTQxOWY1MTk4OTU3
ZjA5MDhkZDY3NGQ2ODQzNmNiOWM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNl
ZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUg
QEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFT
UyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM4OTczMTlhYjBmYjEwMDA1NWE5MzVkNGE5NTJiMmFiOTk0NDgzMzYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbApA
QCAtMCwwICsxLDYyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFk
PgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIENsYXNz
aWZpY2F0aW9uIEJhc2VkIG9uIE1peGVkIFN0YXRpc3RpY3M8L3RpdGxlPgorICAgIDxzY3JpcHQg
c3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAw
MCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3Qg
KyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4y
OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4w
LjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4w
LjAuNDo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luNCA9ICJodHRwOi8vMTI3
LjAuMC41OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAg
ICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3Np
ZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkhvc3QgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xh
c3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgaW50ZXJuYWxzLnNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNv
dXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVV
bmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmln
aW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW40KTsKKworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJh
bWVPcmlnaW4zKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291
cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjQpOwor
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJl
ZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0
aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3Rh
bGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRh
UmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRp
b24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cu
aW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7
CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5hbHMu
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RS
dW5uZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lu
cy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11
bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzJkZDY5Zjk0MTlmNTE5ODk1N2YwOTA4ZGQ2NzRkNjg0MzZjYjljNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5z
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMg
cHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1
Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43ZWE3NjIwMGRhMmZmYjFhMDA1NWE4YTE5OGFlMjc4M2UyZWIzZjUzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9w
LWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU3IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04
Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIENsYXNzaWZpY2F0aW9uIEJhc2VkIG9uIFN1YiBGcmFt
ZSBVbmRlciBUb3AgRnJhbWUgT3JpZ2luczwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBj
b25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7
CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1w
IjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3Rl
bXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAv
dGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW40ID0gImh0dHA6Ly8xMjcuMC4wLjU6ODAw
MC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQor
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
VmVyeVByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZh
aWxlZCgiSG9zdCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFz
IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3Rp
Y3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1
blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3Rp
ZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworCisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFt
ZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVP
cmlnaW4zKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5k
ZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjQpOworCisgICAg
ICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2Fs
bGJhY2soY29tcGxldGVUZXN0KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
UHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisK
KyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5k
b3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQo
dHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291
cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50
LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTRkZGNlNWIzMTRjZDdkMmQwZGVjNDhiNmY5ZjllMGVjY2FiODMw
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVk
aXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitU
ZXN0cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24gc3VicmVzb3VyY2UgcmVkaXJlY3QgY29s
bHVzaW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBDb2xsdWRpbmcg
aG9zdCAxIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLgorUEFTUyBDb2xsdWRpbmcgaG9z
dCAyIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLgorUEFTUyBDb2xsdWRpbmcgaG9zdCAz
IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLgorUEFTUyBDb2xsdWRpbmcgaG9zdCA0IGdv
dCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLgorUEFTUyBDb2xsdWRpbmcgbG9jYWxob3N0IGdv
dCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIGFjdHVhbCBzdWIgZnJhbWUgcmVkaXJl
Y3QuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xs
dXNpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVk
aXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTFlMDQ3NzQ2OWQ0MDBi
YWE1NzU3ODgyOWFhMjE0ZTJlZDhlZDZiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQt
YmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWwKQEAg
LTAsMCArMSw3MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4K
KyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2Ny
aXB0aW9uKCJUZXN0cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24gc3VicmVzb3VyY2UgcmVk
aXJlY3QgY29sbHVzaW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29u
c3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGlj
c1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHN1
YnJlc291cmNlT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29u
c3Qgc3VicmVzb3VyY2VPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAg
ICBjb25zdCBzdWJyZXNvdXJjZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAi
OworICAgIGNvbnN0IHN1YnJlc291cmNlT3JpZ2luNCA9ICJodHRwOi8vMTI3LjAuMC41OjgwMDAv
dGVtcCI7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKHN0YXRpc3RpY3NVcmwsIHN1YnJlc291
cmNlT3JpZ2luMSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RGcm9tKHN1YnJlc291cmNlT3JpZ2luMSwgc3VicmVzb3VyY2VPcmlnaW4y
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdEZyb20oc3VicmVzb3VyY2VPcmlnaW4yLCBzdWJyZXNvdXJjZU9yaWdpbjMpOworICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShz
dWJyZXNvdXJjZU9yaWdpbjMsIHN1YnJlc291cmNlT3JpZ2luNCk7CisKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBleHBsaWNpdHkgc2V0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjEpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQo
IkNvbGx1ZGluZyBob3N0IDEgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAg
ICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uo
c3VicmVzb3VyY2VPcmlnaW4xKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRp
bmcgaG9zdCAxIGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOwor
ICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
c3VicmVzb3VyY2VPcmlnaW4yKSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRp
bmcgaG9zdCAyIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAg
aWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN1YnJlc291
cmNlT3JpZ2luMikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhvc3Qg
MiBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN1YnJlc291
cmNlT3JpZ2luMykpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3Qg
MyBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdp
bjMpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDMgZ290IGNs
YXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdp
bjQpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDQgZ290IHNl
dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW40KSkKKyAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCA0IGdvdCBjbGFzc2lmaWVk
IGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIp
KQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBsb2NhbGhvc3QgZ290IHNl
dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgYWN0dWFsIHN1YiBmcmFtZSByZWRpcmVjdC4i
KTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRS
ZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikpCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiQ29sbHVkaW5nIGxvY2FsaG9zdCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0
aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93
LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUp
OworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwsIGZhbHNlLCBmdW5jdGlvbigpwqB7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgICAgICAgICBpZnJhbWVFbGVt
ZW50Lm9ubG9hZCA9IHJ1blRlc3Q7CisgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMg
PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2Vz
L3JlZGlyZWN0LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL29uY2xpY2suaHRtbCI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3Qt
dG8tcHJldmFsZW50LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOGZjYmQ4ZDhm
NmQwNWZjNDk0ZDRlZWRkY2Q5Y2I1ZWJkZGUwYzM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZh
bGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBi
YXNlZCBvbiBzdWJyZXNvdXJjZSByZWRpcmVjdCB0byBvdGhlciBwcmV2YWxlbnQuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRp
cmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3Vi
cmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTZhNzM4OTUzMjc3MjI4YzZlZjU2OTFiZjcwMzU3OTM5OWQyNDY2ZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJldmFsZW50
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBs
YW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlw
dCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQg
b24gc3VicmVzb3VyY2UgcmVkaXJlY3QgdG8gb3RoZXIgcHJldmFsZW50LiIpOworICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6
ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRl
c3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAu
MC4yOjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAg
IGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmll
ZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UgaWYgKHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiSG9zdCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBj
bGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRl
c3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHRvcEZyYW1lT3JpZ2luMSwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1Vy
bCwgdG9wRnJhbWVPcmlnaW4xKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3Rh
dGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRz
KCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0
ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5h
bHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQo
dHJ1ZSk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBz
ZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICBydW5UZXN0
KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNl
LXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxl
bnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyZGQ2OWY5NDE5ZjUxOTg5NTdmMDkwOGRkNjc0ZDY4
NDM2Y2I5YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291
cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmln
aW5zLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVy
LXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQwMWVhNmJjMjQ5
Mzc1OTJmMGU4OTY3NjE1Yzk5YzVjOGRjM2ZhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxl
bnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2Uu
aHRtbApAQCAtMCwwICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4K
KzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9y
IENsYXNzaWZpY2F0aW9uIEJhc2VkIG9uIFN1YnJlc291cmNlIFVuZGVyIFRvcCBGcmFtZSBPcmln
aW5zPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RV
bmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAi
aHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9y
aWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1l
T3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJh
bWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BG
cmFtZU9yaWdpbjQgPSAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rp
b24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwor
ICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uo
c3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lm
aWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIp
OworCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChm
YWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3Rh
dGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRz
V2VyZVNjYW5uZWQodHJ1ZSk7CisgCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRp
c3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQg
c2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1l
T3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJj
ZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFt
ZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjQpOworCisgICAgICAgICAgICB0
ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29t
cGxldGVUZXN0KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0
YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAo
ZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1
bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQ
RGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAg
ICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7Cisg
ICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1
ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1v
bi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zMmRkNjlmOTQxOWY1MTk4OTU3ZjA5MDhkZDY3NGQ2ODQzNmNiOWM3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVk
aXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0IGNsYXNz
aWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJh
c2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1w
cmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFz
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjc4ZjdmMTM5MWM2MjFkZTg2NmUxYmQyM2IwMWJkYTMzMmQwZDlm
MzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVu
aXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU3IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVU
Ri04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIENsYXNzaWZpY2F0aW9uIEJhc2VkIG9uIFN1YnJl
c291cmNlIFVuaXF1ZSBSZWRpcmVjdHMgVG88L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAg
Y29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAi
OworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVt
cCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90
ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAw
L3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luNCA9ICJodHRwOi8vMTI3LjAuMC41Ojgw
MDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICgh
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBw
cmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkhvc3QgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBy
dW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90
aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFs
c2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsK
KworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVS
ZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlz
dGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3Vy
Y2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHND
YWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3Rp
Y3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0K
KworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdp
bmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZy
YW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50
LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZkMzkzOGI3NmM5NzQ0YzNhZmE3YjI1NTA1ZWFlYjQ5ZDg2NmI1MjAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVj
dC1jb2xsdXNpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3Rz
IGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0b3AgZnJhbWUgcmVkaXJlY3QgY29sbHVzaW9u
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBDb2xsdWRpbmcgaG9zdCAx
IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLgorUEFTUyBDb2xsdWRpbmcgaG9zdCAyIGdv
dCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLgorUEFTUyBDb2xsdWRpbmcgaG9zdCAzIGdvdCBz
ZXQgYXMgcHJldmFsZW50IHJlc291cmNlLgorUEFTUyBDb2xsdWRpbmcgaG9zdCA0IGdvdCBzZXQg
YXMgcHJldmFsZW50IHJlc291cmNlLgorUEFTUyBDb2xsdWRpbmcgbG9jYWxob3N0IGdvdCBzZXQg
YXMgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIGFjdHVhbCBuYXZpZ2F0aW9uYWwgcmVkaXJlY3Qu
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9u
LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1j
b2xsdXNpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMWRhMDAwZTljZmFhNzFhNjg1NTE3
Mjk0ZDJlZGJlMGRmZTBhNDQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1v
bi10b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw3
MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0
YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJU
ZXN0cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24gdG9wIGZyYW1lIHJlZGlyZWN0IGNvbGx1
c2lvbi4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRl
clRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0
cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdp
bjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3Jp
Z2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVP
cmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFt
ZU9yaWdpbjQgPSAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZy
YW1lT3JpZ2luNSA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvIjsKKworICAgIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVl
UmVkaXJlY3RGcm9tKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKHRvcEZyYW1l
T3JpZ2luMSwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20odG9wRnJhbWVPcmlnaW4yLCB0b3BGcmFtZU9y
aWdpbjMpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJl
ZGlyZWN0RnJvbSh0b3BGcmFtZU9yaWdpbjMsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwg
dHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiSG9zdCBleHBsaWNpdHkgc2V0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjEpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIkNvbGx1ZGluZyBob3N0IDEgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7Cisg
ICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3Vy
Y2UodG9wRnJhbWVPcmlnaW4xKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRp
bmcgaG9zdCAxIGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOwor
ICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
dG9wRnJhbWVPcmlnaW4yKSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcg
aG9zdCAyIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3Jp
Z2luMikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhvc3QgMiBnb3Qg
Y2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2lu
MykpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgMyBnb3Qgc2V0
IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjMpKQorICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDMgZ290IGNsYXNzaWZpZWQgYXMg
dmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjQpKQorICAgICAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDQgZ290IHNldCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5
UHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW40KSkKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCA0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50
IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW41KSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJDb2xsdWRpbmcgbG9jYWxob3N0IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlIGFm
dGVyIGFjdHVhbCBuYXZpZ2F0aW9uYWwgcmVkaXJlY3QuIik7CisgICAgICAgICAgICBpZiAodGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW41
KSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgbG9jYWxob3N0IGdvdCBj
bGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9
CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIgJiYgd2luZG93LnRlc3RS
dW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwp
KQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBh
cyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
bG9jYXRpb24uaHJlZiA9IHRvcEZyYW1lT3JpZ2luNSArICJyZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3Jlc291cmNlcy9yZWRpcmVjdC5waHA/cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAuMC4xOjgwMDAv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9w
LWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi5odG1sI2NvbnRpbnVlIjsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3Rp
Y3NOb3RpZnlPYnNlcnZlcigpOworICAgICAgICBydW5UZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1m
cmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZh
bGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OWY5OTUzMzgyODBmMzE1YjIyMDAzZjAwODJkMDgxNDg0
N2U5YWIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUt
cmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACitUZXN0cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24gdG9wIGZyYW1lIHJlZGlyZWN0
IHRvIG90aGVyIHByZXZhbGVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFs
ZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1k
YXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlOGIwMWQxNzhjMzIzOWViMGQxNjU4NDdkZmEyN2Qx
ZDY3ZDcwZDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFt
ZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDUxIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZv
ciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0b3AgZnJhbWUgcmVkaXJlY3QgdG8gb3RoZXIgcHJl
dmFsZW50LiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgaG9zdFVu
ZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJo
dHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3Jp
Z2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21w
bGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
ZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
IGVsc2UgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBnb3QgY2xhc3NpZmll
ZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMSwgdHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGly
ZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKworICAgICAgICAgICAgdGVz
dFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBs
ZXRlVGVzdCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlz
dGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1
bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVy
ICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRh
YmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFS
ZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAg
fQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJh
c2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0
YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0OTFiZjk2MDMzNTcwOWM5OTFkZjFmZmQz
MjQyOGJkYmFlODA2ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRv
cC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEwIEBACitUZXN0cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24gdG9wIGZyYW1lIHVu
aXF1ZSByZWRpcmVjdHMgdG8uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFz
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjVjNGM3ZWU1ZjZjM2ZlYTY1NjEzZjg1ODM2MjdhNGM5ODUwMzE1
ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlx
dWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NiBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYt
OCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBmb3IgY2xhc3Np
ZmljYXRpb24gYmFzZWQgb24gdG9wIGZyYW1lIHVuaXF1ZSByZWRpcmVjdHMgdG8uIik7CisgICAg
anNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4w
LjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVu
ZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8x
MjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDov
LzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRw
Oi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW40ID0gImh0
dHA6Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgp
IHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdl
dCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgaWYgKHRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQor
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZh
bGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgi
SG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5p
cXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGlj
c1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RU
byhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjQpOworCisgICAgICAgIHRlc3RSdW5uZXIu
aW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3Qp
OworCisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0
YVJlY29yZHMoKTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0g
aG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUp
OworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkp
CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFz
IG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgcnVuVGVzdCgpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRp
c3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJhc2VkLW9uLW1p
eGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwZjAzMWRj
YTVkMGM5NjA4ZjRkOGY1YWY4OTlhMTZlOWVmNTFjNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVy
eS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCBmb3IgY2xhc3NpZmljYXRpb24gYXMgdmVyeSBwcmV2
YWxlbnQgYmFzZWQgb24gbWl4ZWQgc3RhdGlzdGljcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNl
LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFi
YXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRh
YmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiMDZmYTIwOWVkYmI2ZjExODhhZmY3ZDE2MDYzMDQwMjdh
YmIxN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQt
c3RhdGlzdGljcy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgY2xhc3NpZmljYXRp
b24gYXMgdmVyeSBwcmV2YWxlbnQgYmFzZWQgb24gbWl4ZWQgc3RhdGlzdGljcy4iKTsKKyAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAu
MC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5k
ZXJUZXN0ICsgIi90ZW1wIjsKKyAgICB2YXIgdG9wRnJhbWVPcmlnaW5zID0gW107CisgICAgY29u
c3Qgc3RhcnROdW0gPSAyOworICAgIGNvbnN0IG51bWJlck9mU3VicmVzb3VyY2VEb21haW5zID0g
MzA7CisgICAgZm9yICh2YXIgaSA9IHN0YXJ0TnVtOyBpIDwgbnVtYmVyT2ZTdWJyZXNvdXJjZURv
bWFpbnMgKyBzdGFydE51bTsgKytpKQorICAgICAgICB0b3BGcmFtZU9yaWdpbnMucHVzaCgiaHR0
cDovLzEyNy4wLjAuIiArIGkgKyAiOjgwMDAvdGVtcCIpCisKKyAgICBmdW5jdGlvbiBjb21wbGV0
ZVRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlk
IG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGlm
ICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZp
ZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJj
ZS4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVk
KHRydWUpOworIAorICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IHN0YXJ0ZWQgb3V0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdmFyIGkgPSAwOworICAgICAgICAgICAgd2hp
bGUgKGkgPCBudW1iZXJPZlN1YnJlc291cmNlRG9tYWlucykgeworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0
aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaV0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJs
LCB0b3BGcmFtZU9yaWdpbnNbaV0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbnNbaV0pOworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2lu
c1tpKzFdKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNv
dXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2kr
MV0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaSsxXSk7CisK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9w
RnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2krMl0pOworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFt
ZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaSsyXSk7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRv
KHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpKzJdKTsKKyAgICAgICAgICAgICAgICBp
ICs9IDM7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0
YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3Jk
cygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9z
dCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJu
YWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgcnVuVGVzdFJ1bm5lclRlc3QpOworICAgIH0KKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVu
dC1zdG9yZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3Jl
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWUwMDMzZmZjY2FlYzI2M2E5NmYy
YjNkNzgzZWRjZjcwNDA4M2QzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVu
dC1zdG9yZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdHMgY2xl
YXJpbmcgb2Ygd2Vic2l0ZSBkYXRhIHN0b3JlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorUEFTUyBI
b3N0IGlzIG5vIGxvbmdlciBhIHByZXZhbGVudCByZXNvdXJjZSBhZnRlciB0aGUgc3RvcmUgd2Fz
IGNsZWFyZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFzZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWlu
LW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIx
N2ViYWJhZDkxN2FhZDQ5OTAzMzgxZWEzNTIzZTIwNjJiYWViMGEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4t
bWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2NyBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBj
aGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3QgQ2xlYXJlZCBTdG9yZTwvdGl0bGU+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBjbGVhcmluZyBvZiB3ZWJz
aXRlIGRhdGEgc3RvcmUuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25z
dCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNz
VXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9w
RnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0
b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0
IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisKKyAgICBm
dW5jdGlvbiB0ZXN0U3RlcDIoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdFBhc3Nl
ZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFz
IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3ND
bGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlKGNvbXBsZXRlVGVzdCk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkhvc3QgaXMgc3RpbGwgYSBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgdGhlIHN0
b3JlIHdhcyBjbGVhcmVkLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2Vk
KCJIb3N0IGlzIG5vIGxvbmdlciBhIHByZXZhbGVudCByZXNvdXJjZSBhZnRlciB0aGUgc3RvcmUg
d2FzIGNsZWFyZWQuIik7CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNo
SlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNX
ZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNl
dCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwg
dG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1
YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRv
cEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4o
c3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0
b3BGcmFtZU9yaWdpbjIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9w
RnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNr
KHRlc3RTdGVwMik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NT
dGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYg
KGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RS
dW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgICAgIH0pOworICAg
IH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVy
c2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1w
ZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wN2Y5OTljNmZlYjMyNjVkZWZmMzk1MWFjMmY4MTQwYWMxYTZlZWUwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFy
LWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdHMgY2xlYXJpbmcgb2Ygd2Vic2l0ZSBkYXRhIHN0
b3JlIChvbmUgaG91cikuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIEhv
c3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIEhvc3QgaXMgbm8gbG9u
Z2VyIGEgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIHRoZSBzdG9yZSB3YXMgY2xlYXJlZC4KK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXIt
aW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVt
b3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZmMxNWVjOGY5OWFhM2UzNWRlYzU2OTJlZTY3NjI5N2VkNjRmMmY5YgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVh
ci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UuaHRtbApA
QCAtMCwwICsxLDY2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFk
PgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+PC90aXRsZT4KKyAgICA8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGNsZWFyaW5nIG9mIHdlYnNpdGUg
ZGF0YSBzdG9yZSAob25lIGhvdXIpLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisg
ICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3Rh
dGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNv
bnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAg
Y29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAg
ICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOwor
CisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkhvc3QgaXMgc3RpbGwgYSBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgdGhl
IHN0b3JlIHdhcyBjbGVhcmVkLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJIb3N0IGlzIG5vIGxvbmdlciBhIHByZXZhbGVudCByZXNvdXJjZSBhZnRlciB0aGUgc3Rv
cmUgd2FzIGNsZWFyZWQuIik7CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0U3RlcDIoKSB7CisgICAgICAg
IGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwpKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3Jl
TW9kaWZpZWRTaW5jZUhvdXJzKDEsIGNvbXBsZXRlVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwg
ZmFsc2UsIGZ1bmN0aW9uKCkge30pOworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3Jp
Z2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0
b3BGcmFtZU9yaWdpbjEpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNv
dXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1l
T3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJs
LCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1l
T3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisKKyAgICAgICAgdGVzdFJ1
bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKHRlc3RTdGVw
Mik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmRE
YXRhUmVjb3JkcygpOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09
PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBydW5UZXN0
UnVubmVyVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRh
YmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIzZmNmYTA0OTM4Mzc5OTYyZGNkN2E3YmRh
NDM5NTUwMjJlYzJlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNTUgQEAKK1Rlc3QgZm9yIHBhcnRpdGlvbmVkIGFuZCB1bnBhcnRpdGlv
bmVkIGNvb2tpZSBkZWxldGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAKKworLS0t
LS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBm
aXJzdC1wYXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29r
aWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitD
bGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUKKworLS0t
LS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMi0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBu
byBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tp
ZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2llJy4KK0Ns
aWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1l
My0tPicKKy0tLS0tLS0tCitUcnkgdG8gc2V0IHRoaXJkIHBhcnR5IGNvb2tpZS4KKworCistLS0t
LS0tLQorRnJhbWU6ICc8IS0tZnJhbWU0LS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIG5v
IGNvb2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2ll
Jy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgorQ2xp
ZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWU1
LS0+JworLS0tLS0tLS0KK0FmdGVyIHJlbW92YWwsIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMu
CitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBu
b3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUg
ZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWU2LS0+JworLS0t
LS0tLS0KK0FmdGVyIGRlY2xhc3NpZmllZCwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4KK0Rp
ZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlkIG5vdCBy
ZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1
bWVudC5jb29raWU6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9uLWRhdGFi
YXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZTgzNGU4NzMwOGEwMzhkNDI0NjJiMTIxMTJlNGViYzE0NTU5
ZGVlNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDEx
NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0
YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJU
ZXN0IGZvciBwYXJ0aXRpb25lZCBhbmQgdW5wYXJ0aXRpb25lZCBjb29raWUgZGVsZXRpb24uIik7
CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBwYXJ0aXRpb25Ib3N0ID0g
IjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5
T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3Qg
Zmlyc3RQYXJ0eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3Qgc3Vi
UGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsgZmly
c3RQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5
Q29va2llTmFtZSA9ICJ0aGlyZFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRU
aGlyZFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyB0aGlyZFBhcnR5Q29v
a2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IGZyYWdtZW50V2l0aFJldHVyblVy
bCA9ICJodHRwOi8vIiArIHBhcnRpdGlvbkhvc3QgKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y29va2llLWRlbGV0aW9uLmh0bWwiOworICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tpZXMgPSAi
L2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiJm5hbWUy
PSIgKyB0aGlyZFBhcnR5Q29va2llTmFtZTsKKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7
CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAg
Y29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAg
ICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAg
ICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsKKyAgICAgICAgfQorICAgICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIH0KKworCisgICAgZnVu
Y3Rpb24gZmlyZURhdGFNb2RpZmljYXRpb25IYW5kbGVyQW5kQ29udGludWUoKSB7CisgICAgICAg
IHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQocnVuVGVzdCwgNTAwKTsKKyAgICAg
ICAgfSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5k
RGF0YVJlY29yZHMoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZXRBc05vblByZXZhbGVudEFu
ZENvbnRpbnVlKCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5
T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IHN0aWxsIHNldCBhcyBw
cmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NV
cGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5o
YXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgIC8vIFNl
dCBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRGaXJz
dFBhcnR5Q29va2llICsgIiMiICsgZnJhZ21lbnRXaXRoUmV0dXJuVXJsICsgIiNzdGVwMiI7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAg
ICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIHRoaXJkLXBhcnR5IGhhcyBhY2Nlc3MgdG8gaXRz
IGZpcnN0LXBhcnR5IGNvb2tpZXMuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFz
ZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgZmly
c3QtcGFydHkgY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSAiI3N0ZXAzIjoKKyAgICAgICAgICAgICAgICAvLyBDbGFzc2lmeSBsb2Nh
bGhvc3QgYXMgcHJldmFsZW50LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPSAic3RlcDQiOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5n
KHJ1blRlc3QpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0
IHRoZSB0aGlyZC1wYXJ0eSBubyBsb25nZXIgaGFzIGFjY2VzcyB0byBpdHMgZmlyc3QtcGFydHkg
Y29va2llcy4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA1
IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0
aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLiIsIHJ1
blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA1
IjoKKyAgICAgICAgICAgICAgICAvLyBUcnkgc2V0dGluZyBhIGNvb2tpZSBhcyB0aGlyZC1wYXJ0
eS4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA2IjsKKyAg
ICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0
VGhpcmRQYXJ0eUNvb2tpZSArICImbWVzc2FnZT1UcnkgdG8gc2V0IHRoaXJkIHBhcnR5IGNvb2tp
ZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
IiNzdGVwNiI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgdGhpcmQtcGFydHkg
c3RpbGwgaGFzIG5vIGFjY2VzcyB0byBjb29raWVzIGFuZCB0aGVuIGZpcmUgZGF0YSByZWNvcmQg
cmVtb3ZhbC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA3
IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0
aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLiIsIGZp
cmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlckFuZENvbnRpbnVlKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNyI6CisgICAgICAgICAgICAgICAgLy8gQ2hl
Y2sgdGhhdCB0aGUgdGhpcmQtcGFydHkgc3RpbGwgaGFzIG5vIGFjY2VzcyB0byBjb29raWVzIGFu
ZCB0aGVuIGRlY2xhc3NpZnkgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2ggPSAic3RlcDgiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQ
YXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPUFmdGVyIHJlbW92
YWwsIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwgc2V0QXNOb25QcmV2YWxlbnRBbmRDb250
aW51ZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDgi
OgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIHRoaXJkLXBhcnR5IHN0aWxsIGhh
cyBubyBhY2Nlc3MgdG8gY29va2llcy4KKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJk
UGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1BZnRlciBkZWNs
YXNzaWZpZWQsIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwgZmluaXNoVGVzdCk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQu
bG9jYXRpb24uaG9zdCA9PT0gcGFydGl0aW9uSG9zdCAmJiBkb2N1bWVudC5sb2NhdGlvbi5oYXNo
ID09PSAiIiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChm
YWxzZSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJl
dHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVt
cENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNo
ID0gInN0ZXAxIjsKKworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9
IGVsc2UgeworICAgICAgICBydW5UZXN0KCk7CisgICAgfQorCis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jb29raWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRh
YmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkMTA5MmVmZGVlZTQ2ZmFjNmUzNmFjMDc2ZDgx
NGQyYmJlNWM3YjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJh
Y3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjUgQEAKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAKKworLS0tLS0tLS0KK0Zy
YW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0
eSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xp
ZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCisKKy0tLS0t
LS0tCitGcmFtZTogJzwhLS1mcmFtZTItLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgbm8g
Y29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUn
LgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0t
ZnJhbWUzLS0+JworLS0tLS0tLS0KK0FmdGVyIHVzZXIgaW50ZXJhY3Rpb24sIHNob3VsZCBzdGls
bCByZWNlaXZlIG5vIGNvb2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJz
dFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdp
dGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0
aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWM3YTM5Yzcz
ZTlmMTVjNjY1MGExNzZiM2VjOTE4YzFiNWZmNjViYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdpdGgtYW5k
LXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsODQgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hh
cnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0IGZvciBQYXJ0aXRpb25lZCBDb29raWVzIFdp
dGggYW5kIFdpdGhvdXQgVXNlciBJbnRlcmFjdGlvbjwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9
Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
PgorICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0
IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCB0
aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJz
dFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0g
Ii9zZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9
dmFsdWUiOworICAgIGNvbnN0IGZyYWdtZW50V2l0aFJldHVyblVybCA9ICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdpdGgtYW5kLXdpdGhvdXQt
dXNlci1pbnRlcmFjdGlvbi5odG1sIjsKKyAgICBjb25zdCBzdWJQYXRoVG9HZXRDb29raWVzID0g
Ii9nZXQtY29va2llcy5waHA/bmFtZTE9IiArIGZpcnN0UGFydHlDb29raWVOYW1lOworCisgICAg
ZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAg
ICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhhbmRs
ZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlm
cmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9hZEhh
bmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsKKyAg
ICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHNldFVzZXJJbnRlcmFjdGlvbkFuZENvbnRpbnVlKCkgeworICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQ
YXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4pKQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRoaXJkIHBhcnR5IGRpZCBub3QgZ2V0IGxvZ2dl
ZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAg
ICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNo
IChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFzZVVy
bCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyBmcmFnbWVudFdpdGhSZXR1
cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJz
dGVwMyI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1
YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkg
Y29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSAiI3N0ZXAzIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0g
InN0ZXA0IjsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5U
ZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aGFzaCA9ICJzdGVwNSI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFz
ZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgbm8g
Y29va2llcy4iLCBzZXRVc2VySW50ZXJhY3Rpb25BbmRDb250aW51ZSk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDUiOgorICAgICAgICAgICAgICAgIG9w
ZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNz
YWdlPUFmdGVyIHVzZXIgaW50ZXJhY3Rpb24sIHNob3VsZCBzdGlsbCByZWNlaXZlIG5vIGNvb2tp
ZXMuIiwgZmluaXNoVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gcGFydGl0aW9uSG9zdCAm
JiBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09ICIiICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdp
bmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0
cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9u
Lmhhc2ggPSAic3RlcDEiOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiTG9jYWxob3N0IHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZSBi
ZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAg
ICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBydW5UZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNvb2tpZXMtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42MzQwN2RjZjNlZGVlYjYwZWM5NjQ5Mjg1MDE0NTFhMDUxOTI4
NDc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitDaGVjayB0aGF0IG9ubHkgSHR0cE9ubHkgY29v
a2llcyByZW1haW4gaWYgYWxsIHNjcmlwdC1hY2Nlc3NpYmxlIGNvb2tpZXMgYXJlIGRlbGV0ZWQu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIEJlZm9yZSBzY3JpcHQtYWNj
ZXNzaWJsZSBkZWxldGlvbjogQ2xpZW50LXNpZGUgY29va2llIGV4aXN0cy4KK1BBU1MgQmVmb3Jl
IHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiBIdHRwT25seSBjb29raWUgZXhpc3RzLgorUEFT
UyBCZWZvcmUgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246IFJlZ3VsYXIgc2VydmVyLXNpZGUg
Y29va2llIGV4aXN0cy4KK1BBU1MgQWZ0ZXIgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246ICBI
dHRwT25seSBjb29raWUgZXhpc3RzLgorUEFTUyBBZnRlciBmdWxsIGRlbGV0aW9uOiAgICAgICAg
ICAgICAgIEFsbCBjb29raWVzIGFyZSBnb25lLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUtY29va2ll
cy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjBmYzUzNzdkN2RlZTYwNDI5OTBiZTBjMmRiZmI3NDVhZTA1Y2Q1OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUtY29va2llcy1kYXRhYmFzZS5odG1sCkBAIC0wLDAg
KzEsNzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiQ2hlY2sg
dGhhdCBvbmx5IEh0dHBPbmx5IGNvb2tpZXMgcmVtYWluIGlmIGFsbCBzY3JpcHQtYWNjZXNzaWJs
ZSBjb29raWVzIGFyZSBkZWxldGVkLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisg
ICAgY29uc3QgaHR0cE9ubHlDb29raWVOYW1lID0gImh0dHAtb25seS1jb29raWUiOworICAgIGNv
bnN0IHNlcnZlclNpZGVDb29raWVOYW1lID0gInNlcnZlci1zaWRlLWNvb2tpZSI7CisgICAgY29u
c3QgY2xpZW50U2lkZUNvb2tpZU5hbWUgPSAiY2xpZW50LXNpZGUtY29va2llIjsKKworICAgIGZ1
bmN0aW9uIHNvcnRTdHJpbmdBcnJheShhLCBiKSB7CisgICAgICAgIGEgPSBhLnRvTG93ZXJDYXNl
KCk7CisgICAgICAgIGIgPSBiLnRvTG93ZXJDYXNlKCk7CisKKyAgICAgICAgcmV0dXJuIGEgPiBi
ID8gMSA6IGIgPiBhID8gLTEgOiAwOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNoZWNrQ29va2ll
cyhpc0FmdGVyU2NyaXB0QWNjZXNzaWJsZURlbGV0aW9uKSB7CisgICAgICAgIGxldCB1bnNvcnRl
ZFRlc3RQYXNzZWRNZXNzYWdlcyA9IFtdOworICAgICAgICBsZXQgY29va2llcyA9IGludGVybmFs
cy5nZXRDb29raWVzKCk7CisgICAgICAgIGlmICghY29va2llcy5sZW5ndGgpCisgICAgICAgICAg
ICB0ZXN0RmFpbGVkKChpc0FmdGVyU2NyaXB0QWNjZXNzaWJsZURlbGV0aW9uID8gIkFmdGVyIiA6
ICJCZWZvcmUiKSArICIgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246IE5vIGNvb2tpZXMgZm91
bmQuIik7CisgICAgICAgIGZvciAobGV0IGNvb2tpZSBvZiBjb29raWVzKSB7CisgICAgICAgICAg
ICBzd2l0Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAgICAgICAgICAgICAgY2FzZSBodHRwT25seUNv
b2tpZU5hbWU6CisgICAgICAgICAgICAgICAgICAgIHVuc29ydGVkVGVzdFBhc3NlZE1lc3NhZ2Vz
LnB1c2goKGlzQWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24gPyAiQWZ0ZXIiIDogIkJlZm9y
ZSIpICsgIiBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogIiArIChpc0FmdGVyU2NyaXB0QWNj
ZXNzaWJsZURlbGV0aW9uID8gIiAiIDogIiIpICsgIkh0dHBPbmx5IGNvb2tpZSBleGlzdHMuIik7
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2Ugc2VydmVy
U2lkZUNvb2tpZU5hbWU6CisgICAgICAgICAgICAgICAgICAgIGlmIChpc0FmdGVyU2NyaXB0QWNj
ZXNzaWJsZURlbGV0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQWZ0
ZXIgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246ICBSZWd1bGFyIHNlcnZlci1zaWRlIGNvb2tp
ZSBleGlzdHMuIik7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHVuc29ydGVkVGVzdFBhc3NlZE1lc3NhZ2VzLnB1c2goIkJlZm9yZSBzY3JpcHQtYWNj
ZXNzaWJsZSBkZWxldGlvbjogUmVndWxhciBzZXJ2ZXItc2lkZSBjb29raWUgZXhpc3RzLiIpOwor
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIGNsaWVudFNp
ZGVDb29raWVOYW1lOgorICAgICAgICAgICAgICAgICAgICBpZiAoaXNBZnRlclNjcmlwdEFjY2Vz
c2libGVEZWxldGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkFmdGVy
IHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiAgQ2xpZW50LXNpZGUgY29va2llIGV4aXN0cy4i
KTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgdW5z
b3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMucHVzaCgiQmVmb3JlIHNjcmlwdC1hY2Nlc3NpYmxlIGRl
bGV0aW9uOiBDbGllbnQtc2lkZSBjb29raWUgZXhpc3RzLiIpOworICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBsZXQgc29ydGVkVGVz
dFBhc3NlZE1lc3NhZ2VzID0gdW5zb3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMuc29ydChzb3J0U3Ry
aW5nQXJyYXkpOworICAgICAgICBmb3IgKGxldCB0ZXN0UGFzc2VkTWVzc2FnZSBvZiBzb3J0ZWRU
ZXN0UGFzc2VkTWVzc2FnZXMpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKHRlc3RQYXNzZWRNZXNz
YWdlKTsKKyAgICB9CisKKyAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBp
ZiAoIXRlc3RSdW5uZXIgfHwgIWludGVybmFscykgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgi
Tm8gdGVzdFJ1bm5lciBvciBubyBpbnRlcm5hbHMuIik7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAg
ICAgICAgYXdhaXQgZmV0Y2goIi9jb29raWVzL3Jlc291cmNlcy9zZXQtaHR0cC1vbmx5LWNvb2tp
ZS5waHA/Y29va2llTmFtZT0iICsgaHR0cE9ubHlDb29raWVOYW1lLCB7IGNyZWRlbnRpYWxzOiAi
c2FtZS1vcmlnaW4iIH0pOworICAgICAgICBhd2FpdCBmZXRjaCgiL2Nvb2tpZXMvcmVzb3VyY2Vz
L3NldENvb2tpZXMuY2dpIiwgeyBoZWFkZXJzOiB7ICJTZXQtQ29va2llIjogc2VydmVyU2lkZUNv
b2tpZU5hbWUgKyAiPTE7IHBhdGg9LzsiIH0sIGNyZWRlbnRpYWxzOiAic2FtZS1vcmlnaW4iIH0p
OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBjbGllbnRTaWRlQ29va2llTmFtZSArICI9MSI7
CisgICAgICAgIGNoZWNrQ29va2llcyhmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc0RlbGV0ZUNvb2tpZXNGb3JIb3N0KCJodHRwOi8vMTI3LjAuMC4xIiwgZmFsc2UpOworICAg
ICAgICBjaGVja0Nvb2tpZXModHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc0Rl
bGV0ZUNvb2tpZXNGb3JIb3N0KCJodHRwOi8vMTI3LjAuMC4xIiwgdHJ1ZSk7CisgICAgICAgIGxl
dCBjb29raWVzTGVmdCA9IGludGVybmFscy5nZXRDb29raWVzKCkubGVuZ3RoOworICAgICAgICBp
ZiAoY29va2llc0xlZnQgPT09IDApCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJBZnRlciBmdWxs
IGRlbGV0aW9uOiAgICAgICAgICAgICAgIEFsbCBjb29raWVzIGFyZSBnb25lLiIpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBZnRlciBmdWxsIGRlbGV0aW9uOiAgICAg
ICAgICAgICAgIiArIGNvb2tpZXNMZWZ0ICsgIiBjb29raWUocykgbGVmdC4iKTsKKyAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8t
bm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1u
b3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM3NDMwNjFmZjExOWZhZDNmNTk3ZGMxNWFlMDRiNGI4YzY5Mzc5NDgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0LWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTRUQ6IENvb2tpZSBzdWNjZXNzZnVs
bHkgc2V0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0LWRhdGFi
YXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
ZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDIxOWUzZDY4OTMyYmZmMThjNWEwMWM1Njg0YzQ0ZjM3MTZmZGU4MQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2Uu
aHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4K
KzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJU
ZXN0cyB0aGF0IGJsb2NraW5nIGlzIG5vdCBhcHBsaWVkIHRvIHRvcC1sZXZlbCBuYXZpZ2F0aW9u
IHJlZGlyZWN0cy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGludGVybmFs
cy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKworICAgIGZ1bmN0aW9u
IGRvUmVkaXJlY3QoKQorICAgIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFz
ZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0
cDovL2xvY2FsaG9zdCIsIHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBpZiAo
IXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhv
c3QiKSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0
IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3NldC1jb29raWUt
b24tcmVkaXJlY3QucGhwP3N0ZXA9MSI7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7Cisg
ICAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ2RvUmVk
aXJlY3QoKScsIDApIj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0
aWNzLWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVy
ZS1zdGF0aXN0aWNzLWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wNjljOTFjYWU2ZWFhM2JkY2M4NDYwYzYzMzdiMDJmN2Q2NGYyNGZk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2RvLW5vdC1jYXB0dXJlLXN0YXRpc3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2aWdh
dGlvbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgdGhhdCBh
IG5vbi1yZWRpcmVjdGVkIHRvcCBmcmFtZSBuYXZpZ2F0aW9uIGRvZXNuJ3QgZ2V0IGNhcHR1cmVk
IGluIHN0YXRpc3RpY3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xv
Y2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vMTI3LjAuMC4xIiwg
Imh0dHA6Ly9sb2NhbGhvc3QiKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNzLWZvci1z
aW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3It
c2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4MDkzNWEy
MzcwZWRiZDc2OTI1MTMxOWJhYzk0NGY3MjhiYzc2ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWNhcHR1cmUt
c3RhdGlzdGljcy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlw
dGlvbigiVGVzdCB0aGF0IGEgbm9uLXJlZGlyZWN0ZWQgdG9wIGZyYW1lIG5hdmlnYXRpb24gZG9l
c24ndCBnZXQgY2FwdHVyZWQgaW4gc3RhdGlzdGljcy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKyAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgIGxldCB0
aW1lckhhbmRsZSA9IDA7CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBp
ZiAodGltZXJIYW5kbGUpCisgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVySGFuZGxlKTsKKwor
ICAgICAgICBzaG91bGRCZUZhbHNlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7
CisgICAgICAgIHNob3VsZEJlRmFsc2UoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJl
ZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0Iikn
KTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50Lmxv
Y2F0aW9uLmhvc3QpIHsKKyAgICAgICAgICAgIGNhc2UgIjEyNy4wLjAuMTo4MDAwIjoKKyAgICAg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJMb2NhbGhvc3Qgd2FzIGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9y
ZSB0aGUgdGVzdCBzdGFydHMuIik7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0
aW9uLmhyZWYgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
ZG8tbm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy5odG1s
IjsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgImxvY2FsaG9zdDo4MDAwIjoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJl
Y29yZHNDYWxsYmFjayhmaW5pc2hUZXN0KTsKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5u
ZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCkpCisgICAgICAgICAgICAgICAgICAgIHRpbWVy
SGFuZGxlID0gc2V0VGltZW91dChmaW5pc2hUZXN0LCAxMDApOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJV
bmtub3duIGhvc3Q6ICIgKyBkb2N1bWVudC5sb2NhdGlvbi5ob3N0KTsKKyAgICAgICAgICAgICAg
ICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIgJiYgd2luZG93LmludGVybmFscykKKyAgICAgICAgcnVuVGVzdCgpOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1k
YXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWFkN2Q5ZTUwMDc2YjZkMTZiYmMyNmE1MDQ2ZTk5Njk2
ZDZlMDc2OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0LWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUxIEBACitUZXN0cyB0aGF0IGJsb2NraW5nIGlz
IG5vdCByZW1vdmVkIG1pZC1mbGlnaHQgaW4gcmVkaXJlY3RzLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0K
K1Nob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0LgorRGlkIG5v
dCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUlQJy4KK1JlY2VpdmVkIGNv
b2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUxvY2FsaG9zdCcuCitEaWQgbm90IHJlY2VpdmUg
Y29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNv
b2tpZTogZmlyc3RQYXJ0eUNvb2tpZUxvY2FsaG9zdD1sb2NhbGhvc3QKKworLS0tLS0tLS0KK0Zy
YW1lOiAnPCEtLWZyYW1lMi0tPicKKy0tLS0tLS0tCitSZWRpcmVjdCBjYXNlIDEsIHNob3VsZCBy
ZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgMTI3LjAuMC4xLgorUmVjZWl2ZWQgY29va2ll
IG5hbWVkICdmaXJzdFBhcnR5Q29va2llSVAnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1l
ZCAnZmlyc3RQYXJ0eUNvb2tpZUxvY2FsaG9zdCcuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5h
bWVkICd0aGlyZFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmly
c3RQYXJ0eUNvb2tpZUlQPTEyNy4wLjAuMQorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUz
LS0+JworLS0tLS0tLS0KK1RyeSB0byBzZXQgdGhpcmQtcGFydHkgY29va2llIGZvciBsb2NhbGhv
c3QgaW4gYmxvY2tlZCBtb2RlLgorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTQtLT4n
CistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgbm8gY29va2llLgorRGlkIG5vdCByZWNlaXZlIGNv
b2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUlQJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUg
bmFtZWQgJ2ZpcnN0UGFydHlDb29raWVMb2NhbGhvc3QnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tp
ZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6
CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTUtLT4nCistLS0tLS0tLQorUmVkaXJlY3Qg
Y2FzZSAyLCBzaG91bGQgbm90IHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llIGZvciAxMjcuMC4w
LjEuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llSVAnLgor
RGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUxvY2FsaG9zdCcu
CitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2llJy4KK0NsaWVu
dC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQYXJ0eUNvb2tpZUlQPTEyNy4wLjAuMQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rv
LW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2Nr
aW5nLWluLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzZkMzBhYWRlZjQ1Nzdi
ODUyNDIzYzZhMjM2ZjNhYTM3MTlmMTAyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5n
LWluLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMDAgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgi
PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBibG9ja2lu
ZyBpcyBub3QgcmVtb3ZlZCBtaWQtZmxpZ2h0IGluIHJlZGlyZWN0cy4iKTsKKyAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgw
MDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
IjsKKyAgICBjb25zdCByZXNvdXJjZVBhdGggPSAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVz
b3VyY2VzIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4g
KyByZXNvdXJjZVBhdGg7CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWVQcmVmaXggPSAi
Zmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWVJUCA9IGZp
cnN0UGFydHlDb29raWVOYW1lUHJlZml4ICsgIklQIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29v
a2llTmFtZUxvY2FsaG9zdCA9IGZpcnN0UGFydHlDb29raWVOYW1lUHJlZml4ICsgIkxvY2FsaG9z
dCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUNvb2tpZU5hbWUgPSAidGhpcmRQYXJ0eUNvb2tpZSI7
CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5w
aHA/bmFtZT0iICsgdGhpcmRQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBj
b25zdCBzdWJQYXRoVG9HZXRDb29raWVzID0gIi9nZXQtY29va2llcy5waHA/bmFtZTE9IiArIGZp
cnN0UGFydHlDb29raWVOYW1lSVAgKyAiJm5hbWUyPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZUxv
Y2FsaG9zdCArICImbmFtZTM9IiArIHRoaXJkUGFydHlDb29raWVOYW1lOworICAgIGNvbnN0IHJl
ZGlyZWN0Q2hhaW5VcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsgcmVzb3VyY2VQYXRoICsgIi9yZWRp
cmVjdC5waHA/cmVkaXJlY3RUbz1odHRwOi8vIiArIHBhcnRpdGlvbkhvc3QgKyByZXNvdXJjZVBh
dGggKyBzdWJQYXRoVG9HZXRDb29raWVzOworCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmws
IG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAg
aWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2Fk
SGFuZGxlcjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVs
ZW1lbnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRj
aCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoK
KyAgICAgICAgICAgICAgICAvLyBTZXQgZmlyc3QtcGFydHkgY29va2llcyBmb3IgMTI3LjAuMC4x
IGFuZCBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9y
aWdpbiA9PT0gdGhpcmRQYXJ0eU9yaWdpbikgeworICAgICAgICAgICAgICAgICAgICBkb2N1bWVu
dC5jb29raWUgPSBmaXJzdFBhcnR5Q29va2llTmFtZUxvY2FsaG9zdCArICI9bG9jYWxob3N0O3Bh
dGg9Jy8nIjsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9ICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3Zl
LWJsb2NraW5nLWluLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwjc3RlcDIiOworICAgICAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGZpcnN0
UGFydHlDb29raWVOYW1lSVAgKyAiPTEyNy4wLjAuMTtwYXRoPScvJyI7CisgICAgICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1k
YXRhYmFzZS5odG1sI3N0ZXAxIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAgICAgICAgIC8vIENo
ZWNrIHRoYXQgdGhlIGNvb2tpZSBnZXRzIHNlbnQgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4w
LjEgc2luY2UgbG9jYWxob3N0IGlzIG5vdCBwcmV2YWxlbnQuCisgICAgICAgICAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFt
ZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hv
dWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3QuIiwgcnVuVGVzdCk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDQiOworICAgICAgICAg
ICAgICAgIC8vIExvYWQgYW4gaWZyYW1lIGluIGEgcmVkaXJlY3QgY2hhaW4gdGhhdCBzdGFydHMg
d2l0aCBsb2NhbGhvc3QgYW5kIGVuZHMgd2l0aCAxMjcuMC4wLjEuIEV4cGVjdCBhIGNvb2tpZSBm
b3IgMTI3LjAuMC4xLgorICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUocmVkaXJlY3RDaGFpblVy
bCArICImbWVzc2FnZT1SZWRpcmVjdCBjYXNlIDEsIHNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5
IGNvb2tpZSBmb3IgMTI3LjAuMC4xLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICAvLyBTZXQgbG9j
YWxob3N0IGFzIHByZXZhbGVudCB0byBwdXQgaXQgaW4gdGhlIGJsb2NraW5nIGNhdGVnb3J5Lgor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJk
UGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAo
IXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdp
bikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0
IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0
ZXA1IjoKKyAgICAgICAgICAgICAgICAvLyBUcnkgdG8gc2V0IHBhcnRpdGlvbmVkIGNvb2tpZSBm
b3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMS4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5s
b2NhdGlvbi5oYXNoID0gInN0ZXA2IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJk
UGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNvb2tpZSArICImbWVzc2FnZT1U
cnkgdG8gc2V0IHRoaXJkLXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0IGluIGJsb2NrZWQgbW9k
ZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
IiNzdGVwNiI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBubyBjb29raWUgZ2V0cyBz
ZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCdzIGNvb2tp
ZXMgYXJlIGJsb2NrZWQuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9
ICJzdGVwNyI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCAr
IHN1YlBhdGhUb0dldENvb2tpZXMgKyAgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIG5vIGNvb2tp
ZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
IiNzdGVwNyI6CisgICAgICAgICAgICAgICAgLy8gTG9hZCBhbiBpZnJhbWUgaW4gYSByZWRpcmVj
dCBjaGFpbiB0aGF0IHN0YXJ0cyB3aXRoIGxvY2FsaG9zdCBhbmQgZW5kcyB3aXRoIDEyNy4wLjAu
MS4gRXhwZWN0IGEgY29va2llIGZvciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaGFzaCA9ICJzdGVwOCI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZShy
ZWRpcmVjdENoYWluVXJsICsgIiZtZXNzYWdlPVJlZGlyZWN0IGNhc2UgMiwgc2hvdWxkIG5vdCBy
ZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgMTI3LjAuMC4xLiIsIHJ1blRlc3QpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA4IjoKKyAgICAgICAg
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0
aW9uLmhhc2ggPT09ICIiKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2Uo
dHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGly
ZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2Fz
IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydHMu
Iik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAg
ICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAgICAgICBy
dW5UZXN0KCk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRlc3QoKTsK
KyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Np
b24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdp
dGhvdXQtaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwNWRj
MDliNjk2MzlmMWQ5MGM2YzM3YzIyZWQxYjk2Zjg2MWM0NDkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRj
aC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24t
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgdGhlIHNl
c3Npb24gaXMgbm90IHN3aXRjaGVkIHVwb24gdG9wIGZyYW1lIG5hdmlnYXRpb24gdG8gYSBwcmV2
YWxlbnQgcmVzb3VyY2Ugd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBTaG91bGQgaGF2ZSBhbmQgaGFzIHRoZSBzZXNzaW9uIGNv
b2tpZS4KK1BBU1MgU2hvdWxkIGhhdmUgYW5kIGhhcyB0aGUgcGVyc2lzdGVudCBjb29raWUuCitQ
QVNTIE9yaWdpbiBoYXMgbm8gaXNvbGF0ZWQgc2Vzc2lvbi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9u
LW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qt
c3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFj
dGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhYmZkYjljNDJiZTIwYTczOTY2MjI0NGVl
ZDRkNzM2NDhmNWMwZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRp
b24tdG8tcHJldmFsZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDExMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAg
ICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0
aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHNj
cmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB0aGUgc2Vzc2lvbiBpcyBub3Qgc3dp
dGNoZWQgdXBvbiB0b3AgZnJhbWUgbmF2aWdhdGlvbiB0byBhIHByZXZhbGVudCByZXNvdXJjZSB3
aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisK
KyAgICBjb25zdCBwcmV2YWxlbnRPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAg
ICBjb25zdCBub25QcmV2YWxlbnRPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAg
ICBjb25zdCBzZXNzaW9uQ29va2llTmFtZSA9ICJzZXNzaW9uQ29va2llIjsKKyAgICBjb25zdCBw
ZXJzaXN0ZW50Q29va2llTmFtZSA9ICJwZXJzaXN0ZW50Q29va2llIjsKKyAgICBjb25zdCB0d29N
aW51dGVzSW5TZWNvbmRzID0gMTIwOworCisgICAgZnVuY3Rpb24gc2V0U2Vzc2lvbkNvb2tpZSgp
IHsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2Vzc2lvbkNvb2tpZU5hbWUgKyAiPTE7IHBh
dGg9LyI7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2V0UGVyc2lzdGVudENvb2tpZSgpIHsKKyAg
ICAgICAgZG9jdW1lbnQuY29va2llID0gcGVyc2lzdGVudENvb2tpZU5hbWUgKyAiPTE7IHBhdGg9
LzsgTWF4LUFnZT0iICsgdHdvTWludXRlc0luU2Vjb25kcyArICI7IjsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBjaGVja0Nvb2tpZXMoc2hvdWxkSGF2ZVNlc3Npb25Db29raWUsIHNob3VsZEhhdmVQ
ZXJzaXN0ZW50Q29va2llKSB7CisgICAgICAgIGxldCBoYXNTZXNzaW9uQ29va2llID0gKGRvY3Vt
ZW50LmNvb2tpZSArICIiKS5pbmNsdWRlcyhzZXNzaW9uQ29va2llTmFtZSksCisgICAgICAgICAg
ICBoYXNQZXJzaXN0ZW50Q29va2llID0gKGRvY3VtZW50LmNvb2tpZSArICIiKS5pbmNsdWRlcyhw
ZXJzaXN0ZW50Q29va2llTmFtZSk7CisKKyAgICAgICAgaWYgKHNob3VsZEhhdmVTZXNzaW9uQ29v
a2llICYmIGhhc1Nlc3Npb25Db29raWUpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91bGQg
aGF2ZSBhbmQgaGFzIHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKKyAgICAgICAgZWxzZSBpZiAoc2hv
dWxkSGF2ZVNlc3Npb25Db29raWUgJiYgIWhhc1Nlc3Npb25Db29raWUpIHsKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoIlNob3VsZCBoYXZlIGJ1dCBkb2Vzbid0IGhhdmUgdGhlIHNlc3Npb24gY29v
a2llLiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKKyAgICAgICAgfSBlbHNlIGlmICghc2hvdWxkSGF2ZVNlc3Npb25Db29raWUgJiYgaGFzU2Vz
c2lvbkNvb2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkbid0IGhhdmUgYnV0
IGhhcyB0aGUgc2Vzc2lvbiBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIlNob3VsZG4ndCBoYXZlIGFuZCBkb2Vzbid0IGhhdmUgdGhlIHNlc3Npb24gY29va2ll
LiIpOworCisKKyAgICAgICAgaWYgKHNob3VsZEhhdmVQZXJzaXN0ZW50Q29va2llICYmIGhhc1Bl
cnNpc3RlbnRDb29raWUpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91bGQgaGF2ZSBhbmQg
aGFzIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsKKyAgICAgICAgZWxzZSBpZiAoc2hvdWxkSGF2
ZVBlcnNpc3RlbnRDb29raWUgJiYgIWhhc1BlcnNpc3RlbnRDb29raWUpIHsKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoIlNob3VsZCBoYXZlIGJ1dCBkb2Vzbid0IGhhdmUgdGhlIHBlcnNpc3RlbnQg
Y29va2llLiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNU
ZXN0KTsKKyAgICAgICAgfSBlbHNlIGlmICghc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29raWUgJiYg
aGFzUGVyc2lzdGVudENvb2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkbid0
IGhhdmUgYnV0IGhhcyB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIlNob3VsZG4ndCBoYXZlIGFuZCBkb2Vzbid0IGhhdmUgdGhlIHBl
cnNpc3RlbnQgY29va2llLiIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Cisg
ICAgICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2Fz
ZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAgICBzZXRTZXNzaW9uQ29va2llKCk7CisgICAgICAg
ICAgICAgICAgc2V0UGVyc2lzdGVudENvb2tpZSgpOworICAgICAgICAgICAgICAgIGNoZWNrQ29v
a2llcyh0cnVlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5oYXNTdGF0
aXN0aWNzSXNvbGF0ZWRTZXNzaW9uKHByZXZhbGVudE9yaWdpbikpIHsKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiT3JpZ2luIGhhcyBpc29sYXRlZCBzZXNzaW9uLiIpOworICAgICAg
ICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAg
ICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPcmln
aW4gaGFzIG5vIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
bG9jYXRpb24uaHJlZiA9IG5vblByZXZhbGVudE9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0
aG91dC1pbnRlcmFjdGlvbi5odG1sI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9u
Lm9yaWdpbiAhPT0gbm9uUHJldmFsZW50T3JpZ2luKQorICAgICAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJTdGVwIDIgaXMgbm90IG9uICIgKyBub25QcmV2YWxlbnRPcmlnaW4gKyAiLiIpOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHByZXZhbGVudE9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRP
cmlnaW4pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKHByZXZhbGVudE9y
aWdpbiArICIgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
dGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcocnVuVGVzdCk7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBwcmV2YWxlbnRPcmlnaW4g
KyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmln
YXRpb24tdG8tcHJldmFsZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24uaHRtbCNzdGVwNCI7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAg
ICAgICAgIGNoZWNrQ29va2llcyh0cnVlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBpZiAodGVz
dFJ1bm5lci5oYXNTdGF0aXN0aWNzSXNvbGF0ZWRTZXNzaW9uKHByZXZhbGVudE9yaWdpbikpCisg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk9yaWdpbiBoYXMgaXNvbGF0ZWQgc2Vzc2lv
bi4iKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIk9yaWdpbiBoYXMgbm8gaXNvbGF0ZWQgc2Vzc2lvbi4iKTsKKyAgICAgICAgICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJV
bmtub3duIGhhc2guIik7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2Nh
dGlvbi5oYXNoID09PSAiIikgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2lu
ICE9PSBwcmV2YWxlbnRPcmlnaW4pCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJUZXN0IGlzIG5v
dCBzdGFydGluZyBvdXQgb24gIiArIHByZXZhbGVudE9yaWdpbiArICIuIik7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50T3JpZ2lu
KSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKHByZXZhbGVudE9yaWdpbiArICIgd2FzIGNs
YXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydHMuIik7
CisgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAg
fSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZl
cnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3Vy
Y2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1s
aW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wZmJhODEwMzVlMmZlY2JhMTM5NGQwMWRmMmU5YmUyMDY5NWU4NWE1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZy
b20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACitDaGVjayB0aGF0IGRvY3VtZW50LnJlZmVycmVyIGlzIGRvd25ncmFkZWQgdG8gdGhlIGVU
TEQrMSBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVlcnkuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSByZWZlcnJlciBpcyBkb3duZ3Jh
ZGVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVyeS1mcm9t
LXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRp
b24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOWFlYmRlOTViZThhMDUyYWZmMzY3OWMwNjg4NWFlMTcwMmUxZDc1NAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVyeS1m
cm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvY29va2ll
cy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
c2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigi
Q2hlY2sgdGhhdCBkb2N1bWVudC5yZWZlcnJlciBpcyBkb3duZ3JhZGVkIHRvIHRoZSBlVExEKzEg
YWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIHF1ZXJ5LiIpOworICAgIGpz
VGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgbGV0IG51bWJlck9mVHJpZXMgPSAwOworICAgIGZ1
bmN0aW9uIHRlc3RSZWZlcnJlcigpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LnJlZmVycmVyID09
PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiArICIvIikgeworICAgICAgICAgICAgdGVzdFBhc3Nl
ZCgiVGhlIHJlZmVycmVyIGlzIGRvd25ncmFkZWQuIik7CisgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UgaWYgKCsrbnVtYmVy
T2ZUcmllcyA8PSA1KQorICAgICAgICAgICAgc2V0VGltZW91dCh0ZXN0UmVmZXJyZXIsIDIwMCk7
CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhlIHJlZmVycmVyIGlz
IG5vdCBkb3duZ3JhZGVkOiAiICsgZG9jdW1lbnQucmVmZXJyZXIpOworICAgICAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIGZ1bmN0aW9uIG5hdmlnYXRlU2FtZU9yaWdpblRvQWRkUXVlcnkoKSB7CisgICAgICAgIGRv
Y3VtZW50LmxvY2F0aW9uLmhyZWYgPSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiArICIvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgt
bGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sP2xpbms9cXVlcnkiOworICAg
IH0KKworICAgIGZ1bmN0aW9uIG5hdmlnYXRlQ3Jvc3NPcmlnaW4oKSB7CisgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbk9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVy
eS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sIjsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0
aW5hdGlvbk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHByZXZh
bGVudFJlc291cmNlT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rp
b24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0g
cHJldmFsZW50UmVzb3VyY2VPcmlnaW4gJiYgZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoID09PSAi
IikgeworICAgICAgICAgICAgbmF2aWdhdGVTYW1lT3JpZ2luVG9BZGRRdWVyeSgpOworICAgICAg
ICB9IGVsc2UgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJldmFsZW50UmVzb3Vy
Y2VPcmlnaW4pIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1
ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShw
cmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2
YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKG5h
dmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0UmVmZXJyZXIoKTsKKyAgICAgICAg
fQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2Rl
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjUyMTlkZDNiMTFmMmEzNGM0NTc1MzQwZTczOGRhZGNmYTBjY2ZjYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBA
QAorVGVzdCBmb3IgZW5hYmxpbmcgZGVidWcgbW9kZSBhbmQgdGhhdCBpdCBwZXJtYW5lbnRseSB0
cmVhdHMgM3JkcGFydHl0ZXN0d2Via2l0Lm9yZyBhcyBhIHByZXZhbGVudCByZXNvdXJjZS4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaHR0cDovLzNyZHBhcnR5dGVzdHdl
YmtpdC5vcmcgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgaW4gZGVidWcgbW9kZS4KK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5hYmxl
LWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjYzN2ZmOTIyNTY3ZjlhNDcyODI3M2RmYTQ3MzI2MzdhNDg1Y2I5ZjUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5h
YmxlLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04
Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgZm9yIGVuYWJsaW5n
IGRlYnVnIG1vZGUgYW5kIHRoYXQgaXQgcGVybWFuZW50bHkgdHJlYXRzIDNyZHBhcnR5dGVzdHdl
YmtpdC5vcmcgYXMgYSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAganNUZXN0SXNBc3luYyA9
IHRydWU7CisKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly8zcmRwYXJ0eXRl
c3R3ZWJraXQub3JnIjsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7Cisg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBp
ZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3Jp
Z2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKHRoaXJkUGFydHlPcmlnaW4gKyAiIGFs
cmVhZHkgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzRGVidWdNb2RlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGly
ZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCh0aGlyZFBhcnR5
T3JpZ2luICsgIiBkaWRuJ3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKHRoaXJkUGFy
dHlPcmlnaW4gKyAiIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlIGluIGRlYnVnIG1vZGUu
Iik7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzRGVidWdNb2RlKGZh
bHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFu
ZGZhdGhlcmluZy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjAxODAzYmZjYjUzYjE0MDQ5ZDVlMWRhYWU1YjI1YjYyN2ZhY2U1YTUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQ
QVNTIEdyYW5kZmF0aGVyZWQgY29va2llIHdhcyBub3QgcHVyZ2VkLgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJp
bmctZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiZGQwNDFk
ZGQxN2Y4ZjQ2ZWNhMzQ3MGYxODM0ZmZhNDJkNjVkOGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmct
ZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDExNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBs
YW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxl
PlRlc3QgZm9yIEdyYW5kZmF0aGVyaW5nPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAg
Y29uc3QgZmlyc3RQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNv
bnN0IGZpcnN0UGFydHlCYXNlVXJsID0gZmlyc3RQYXJ0eU9yaWdpbiArICIvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVOYW1lID0g
ImZpcnN0UGFydHlDb29raWUiOworICAgIGNvbnN0IHRoaXJkUGFydHlDb29raWVOYW1lID0gInRo
aXJkUGFydHlDb29raWUiOworICAgIGNvbnN0IGNvb2tpZVZhbHVlID0gInZhbHVlIjsKKyAgICBj
b25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1l
PSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9IiArIGNvb2tpZVZhbHVlOworICAg
IGNvbnN0IHJldHVyblVybCA9IGZpcnN0UGFydHlPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZ3JhbmRmYXRoZXJpbmcuaHRtbCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0g
dGhpcmRQYXJ0eU9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMiOwor
ICAgIGNvbnN0IHN1YlBhdGhUb1NldFRoaXJkUGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhw
P25hbWU9IiArIHRoaXJkUGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT0iICsgY29va2llVmFsdWU7
CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaXJlRGF0YU1vZGlmaWNhdGlv
bkhhbmRsZXJBbmRDb250aW51ZSgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlz
dGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
cnVuVGVzdCgpOworICAgICAgICB9KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJv
Y2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNs
ZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmVBbmRDb250aW51ZSgpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5zdGF0aXN0aWNzQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZShmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5o
YXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgIC8vIFNl
dCBhIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmxvY2F0aW9uLmhyZWYgPSBmaXJzdFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldEZp
cnN0UGFydHlDb29raWUgKyAiIyIgKyByZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAg
ZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAgICAgICAgLy8gQ2hl
Y2sgdGhhdCBsb2NhbGhvc3QncyBjb29raWUgaXMgdGhlcmUuCisgICAgICAgICAgICAgICAgaWYg
KGRvY3VtZW50LmNvb2tpZSAhPT0gZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiPSIgKyBjb29raWVW
YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiRmlyc3QtcGFydHkgY29va2ll
IG5vdCBzZXQuIik7CisgICAgICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAzIjoKKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA0IjsKKyAgICAgICAgICAgICAgICAvLyBDbGVhciBz
dG9yZSB0byB0cmlnZ2VyIGdyYW5kZmF0aGVyaW5nLgorICAgICAgICAgICAgICAgIGNsZWFySW5N
ZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmVBbmRDb250aW51ZSgpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5oYXNoID0gInN0ZXA1IjsKKyAgICAgICAgICAgICAgICAvLyBTZXQgbG9jYWxo
b3N0IGFzIHByZXZhbGVudCByZXNvdXJjZS4KKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIsIHRydWUsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFs
ZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIj
c3RlcDUiOgorICAgICAgICAgICAgICAgIC8vIFNldCBhIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3Ig
MTI3LjAuMC4xLgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGly
ZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldFRoaXJkUGFydHlDb29raWUgKyAiIyIgKyByZXR1
cm5VcmwgKyAiI3N0ZXA2IjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgIiNzdGVwNiI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJz
dGVwNyI7CisgICAgICAgICAgICAgICAgLy8gU2V0IDEyNy4wLjAuMSBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZSgiaHR0cDovLzEyNy4wLjAuMSIsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
Imh0dHA6Ly8xMjcuMC4wLjEiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
IjEyNy4wLjAuMSBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAg
ICAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDciOgorICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDgiOworICAgICAgICAgICAgICAgIC8v
IFRyaWdnZXIgYSBwdXJnZS4KKyAgICAgICAgICAgICAgICBmaXJlRGF0YU1vZGlmaWNhdGlvbkhh
bmRsZXJBbmRDb250aW51ZSgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSAiI3N0ZXA4IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IGxvY2FsaG9zdCdz
IGNvb2tpZSBpcyBzdGlsbCB0aGVyZS4KKyAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29v
a2llICE9PSBmaXJzdFBhcnR5Q29va2llTmFtZSArICI9IiArIGNvb2tpZVZhbHVlKQorICAgICAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJGaXJzdC1wYXJ0eSBjb29raWUgcHVyZ2VkLiIpOwor
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiR3Jh
bmRmYXRoZXJlZCBjb29raWUgd2FzIG5vdCBwdXJnZWQuIik7CisgICAgICAgICAgICAgICAgZmlu
aXNoVGVzdCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTaG91bGQgbm90IGJlIHJlYWNoZWQuIik7Cisg
ICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYg
KGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdp
bmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0
cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVm
b3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKworICAg
ICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOwor
ICAgIH0gZWxzZQorICAgICAgICBydW5UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4OWY4NTVhNzg5Y2YxMGJmMzMwZjRjOTJlYTEy
Yjk0MWFiZWZjMDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50
ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIENvb2tpZSBub3Qg
ZGVsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9u
LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJh
c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kOTdlODBmZDY2NGVlMWVhODAzOGQ5ZTg3MmM3Mzk1NzI5MGY1
MTFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9u
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBs
YW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxl
PlRlc3RzIGZvciBOb24tUHJldmFsZW50IFJlc291cmNlIFdpdGggVXNlciBJbnRlcmFjdGlvbjwv
dGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3
LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0
VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCBvdGhlclByZXZhbGVudFVybCA9ICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVz
dCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgbm90IGVtcHR5LiIpOworICAgICAgICBjb25zdCBj
b29raWUgPSAidGVzdENvb2tpZT10ZXN0VmFsdWUiOworICAgICAgICBkb2N1bWVudC5jb29raWUg
PSBjb29raWUgKyAiOyBtYXgtYWdlPTEwMDsiOworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2ll
ICE9PSBjb29raWUpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgZGlk
IG5vdCBnZXQgc2V0LiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0
IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIC8vIFRoaXMgaXMg
ZG9uZSB0byBub3QgaGF2ZSBhbiBlbXB0eSBzZXQgb2YgcHJldmFsZW50IHJlc291cmNlcy4KKyAg
ICAgICAgICAgIC8vIE90aGVyd2lzZSBkYXRhIHJlY29yZHMgYXJlIG5ldmVyIHNjYW5uZWQuCisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhl
clByZXZhbGVudFVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKG90aGVyUHJldmFsZW50VXJs
KSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3RoZXIgaG9zdCBkaWQgbm90IGdl
dCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIHRy
dWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVz
ZXIgaW50ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0
YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSA9PT0gY29va2llKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvb2tpZSBub3QgZGVsZXRlZC4i
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJDb29raWUgZGVsZXRlZCBvciBkb2N1bWVudC5jb29raWUgY29udGFp
bnMgb3RoZXIgY29va2llczogIiArIGRvY3VtZW50LmNvb2tpZSk7CisKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9y
ZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsK
KyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3Rp
Y3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09
PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3Rp
ZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAgcnVu
VGVzdFJ1bm5lclRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rp
b24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVy
YWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODlmODU1YTc4OWNmMTBi
ZjMzMGY0YzkyZWExMmI5NDFhYmVmYzA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Ut
d2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
UEFTUyBDb29raWUgbm90IGRlbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGhv
dXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11
c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmJjZTk5MDQ1ZjBhM2Vj
Y2RiYWQxODc4N2VlZDhmZmY2NjU3ZmY2NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNl
LXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjUgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hh
cnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgTm9uLVByZXZhbGVudCBSZXNvdXJj
ZSBXaXRob3V0IFVzZXIgSW50ZXJhY3Rpb248L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJl
c291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAg
ICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0
aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29u
c3Qgb3RoZXJQcmV2YWxlbnRVcmwgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3RlbXAiOworCisg
ICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5j
b29raWUgIT09ICIiKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIG5v
dCBlbXB0eS4iKTsKKyAgICAgICAgY29uc3QgY29va2llID0gInRlc3RDb29raWU9dGVzdFZhbHVl
IjsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gY29va2llICsgIjsgbWF4LWFnZT0xMDA7IjsK
KyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gY29va2llKQorICAgICAgICAgICAgdGVz
dEZhaWxlZCgiZG9jdW1lbnQuY29va2llIGRpZCBub3QgZ2V0IHNldC4iKTsKKworICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBm
YWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIp
OworCisgICAgICAgICAgICAvLyBUaGlzIGlzIGRvbmUgdG8gbm90IGhhdmUgYW4gZW1wdHkgc2V0
IG9mIHByZXZhbGVudCByZXNvdXJjZXMuCisgICAgICAgICAgICAvLyBPdGhlcndpc2UgZGF0YSBy
ZWNvcmRzIGFyZSBuZXZlciBzY2FubmVkLgorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uob3RoZXJQcmV2YWxlbnRVcmwsIHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShvdGhlclByZXZhbGVudFVybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIk90aGVyIGhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZGlkIG5vdCBnZXQgY2xlYXJlZCBvZiB1c2VyIGludGVyYWN0aW9uLiIpOworCisgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29y
ZHNDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb2N1
bWVudC5jb29raWUgPT09IGNvb2tpZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJDb29raWUgbm90IGRlbGV0ZWQuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIGRlbGV0
ZWQgb3IgZG9jdW1lbnQuY29va2llIGNvbnRhaW5zIG90aGVyIGNvb2tpZXM6ICIgKyBkb2N1bWVu
dC5jb29raWUpOworCisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOwor
ICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJl
dHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBp
ZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVz
dFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nh
bm5lZCh0cnVlKTsKKyAgICAgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgICAgIH0p
OworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVz
b3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRo
aXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmYjk3
ZjkxZmNkMzNjYzk3ODk3OWNkNDhhNTVhNDk0NzRkMjc3MTEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVu
dC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1k
YXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEt
LWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBvbmUgY29va2llLgorUmVjZWl2
ZWQgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50
LmNvb2tpZTogZmlyc3RQYXJ0eUNvb2tpZT12YWx1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Vz
LWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2UuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJl
dmFsZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250
ZXh0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzY0Y2ZjYjFmM2UzNzIwZmNhMjIzYzQyZDg3
OGMyNWE5NjYyMjliZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlcy1jYW4tYWNjZXNz
LWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCAr
MSw2NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8
bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3QgdG8gZW5zdXJlIG5vbi1wcmV2
YWxlbnQgcmVzb3VyY2VzIGNhbiBhY2Nlc3MgdGhlaXIgY29va2llcyBpbiBhIHRoaXJkIHBhcnR5
IGNvbnRleHQ8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBwYXJ0aXRpb25I
b3N0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGly
ZFBhcnR5T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAg
Y29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29u
c3Qgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0i
ICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCBmcmFn
bWVudFdpdGhSZXR1cm5VcmwgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEt
dGhpcmQtcGFydHktY29udGV4dC5odG1sIjsKKyAgICBjb25zdCBzdWJQYXRoVG9HZXRDb29raWVz
ID0gIi9nZXQtY29va2llcy5waHA/bmFtZTE9IiArIGZpcnN0UGFydHlDb29raWVOYW1lOworCisg
ICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhh
bmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9h
ZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsK
KyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1l
bnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAg
ICAgICAgICAvLyBTZXQgYSBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdC4KKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBz
dWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llICsgIiMiICsgZnJhZ21lbnRXaXRoUmV0dXJuVXJs
ICsgIiNzdGVwMiI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIj
c3RlcDIiOgorICAgICAgICAgICAgICAgIC8vIExvYWQgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAu
MSBhbmQgY2hlY2sgdGhhdCBpdCBnZXRzIGl0cyBjb29raWUuCisgICAgICAgICAgICAgICAgb3Bl
bklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3Nh
Z2U9U2hvdWxkIHJlY2VpdmUgb25lIGNvb2tpZS4iLCBmaW5pc2hUZXN0KTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlv
bi5ob3N0ID09PSBwYXJ0aXRpb25Ib3N0ICYmIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT0gIiIg
JiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0
UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsK
KyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmln
aW4sIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eU9yaWdpbiwgZmFsc2UsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0g
InN0ZXAxIjsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRl
Q29va2llQmxvY2tpbmcocnVuVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcnVuVGVzdCgpOworICAg
IH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44NjNjNzIwMmIwM2U3NzBkNmU0NDZmYjZmMzQwMGZiMzhjNTlmNTMwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1p
cC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRp
cmVjdHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8v
MTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVy
ZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIp
IGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVj
dGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmI1YmRhNmY5ZjFiY2ViZjQ4OTQ1NWJlY2U0ODVmNWNlY2QxZjYwOWMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRv
LWlwLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVj
dHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7Cisg
ICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rp
b24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0
Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOwor
CisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBp
ZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIikgeworICAgICAgICAg
ICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7Cisg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBh
IG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisK
KyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAg
ICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05v
dGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRz
KCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1Jl
Z2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4w
LjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8v
MTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0
dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOwor
ICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAg
ICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVy
KSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJh
Y2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRvPWh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRp
cmVjdC5waHAvP3JlZGlyZWN0VG89aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcmVzb3VyY2VzL2lmcmFtZS1yZXBvcnQtYmFjay1sb2FkZWQuaHRtbCI+Cis8L2lm
cmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1s
b2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44NjNjNzIwMmIwM2U3NzBkNmU0NDZmYjZmMzQwMGZiMzhjNTlm
NTMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1p
cC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rl
c3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVk
IHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhv
c3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6
Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0
IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8t
bG9jYWxob3N0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRv
LWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiNWVlOTkzNzA0MTA1
MmRjMjZlOGY2YTU4NjlhMjIxMzIwMDNhMzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAg
ICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQg
aWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZl
TWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAg
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9
CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7Cisg
ICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNl
aXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5p
bmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2
ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBl
Y3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAgICAgICBsYXN0UGFnZUlu
UmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVja2Vk
KQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAgICAg
ICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVy
KCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAg
c2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0
aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAg
ICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVk
aXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsKKwor
ICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0UGFn
ZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRz
Q2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIDwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocC8/cmVkaXJl
Y3RUbz1odHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMvcmVkaXJlY3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9pZnJhbWUtcmVwb3J0LWJhY2stbG9hZGVkLmh0bWwi
PgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlm
cmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10
by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWI1MTZmMTMyZjlmYjEwMTM2ODIyNjNjNmYyYzgxMGI3
ZmFmOWQ4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBu
b24tc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQg
Y291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8v
bG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIs
ICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xv
Y2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5k
Ym94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1p
cC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDljYTU5MDFk
YjgwZTBkZDAyYzIwNTIwMzNjMTU3ZGRkMzZlMzFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVz
dGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2Nh
bGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0
IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2Fu
ZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNB
c3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwg
cmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkg
eworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZh
bHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rp
b24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4g
PT09ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50
LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFu
IHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFz
dFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRz
Q2hlY2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsK
KyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAg
ICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJh
bWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNS
ZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOwor
ICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVy
ZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIp
Jyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAo
bGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVz
dCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRh
UmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0K
KyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9wYWdlLXdpdGgtbm9u
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLmh0bWwiPgor
PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFt
ZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1s
b2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1u
b24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjUxNmYxMzJmOWZiMTAxMzY4MjI2
M2M2ZjJjODEwYjdmYWY5ZDhmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUt
d2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9j
YWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0
IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2Fu
ZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJG
cmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVl
CitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygi
aHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcu
MC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlm
cmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10
by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRh
YmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxZTMzZjY2N2RhMzU5ZjNhODJiZjNjMGMzMTBkMzRlYzM3
NWIzNGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJh
c2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBu
b24tc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQg
Y291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAg
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZh
bHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAg
IHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIg
c3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2Uo
ZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFT
UyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJl
cGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2lu
OiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hh
aW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAg
ICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xv
Y2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1
ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRw
Oi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxk
QmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8o
Imh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAg
IHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0
Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlm
eVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNo
ZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9wYWdlLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC5odG1sIj4KKzwvaWZyYW1lPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43MTVjODVlYjQ3ZTBmMDg0MTZlNjFmZDAxNWZkN2FlM2NiODY2YjY5Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1z
YW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlw
LXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBA
QAorVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4g
YSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3Rl
cmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEi
KSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJl
Y3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQor
UEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0
dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1u
ZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxo
b3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hl
ZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTczOGVhM2I1OWEwYTcwNzQzZDM0NWRmMDUyZWE2MjlkMmY2YjkzZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0
aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBp
biBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAg
ICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
Im1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZp
bmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hK
U1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWlu
TG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAg
ICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2
ZW50Lm9yaWdpbiA9PT0gIm51bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEu
aW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChl
dmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhw
ZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJ
blJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tl
ZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91
bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRl
cigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAg
IHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVj
dGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAg
ICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1Jl
ZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisK
KyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBh
Z2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jk
c0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9wYWdlLXdpdGgtc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAuaHRtbCI+Cis8L2lmcmFtZT4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFi
YXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43MTVjODVlYjQ3ZTBmMDg0MTZlNjFmZDAxNWZkN2FlM2NiODY2YjY5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRi
b3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQg
cHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9z
dCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDov
LzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3Rl
cmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3Qi
KSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVk
LW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3Qt
dG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTdmYWYwMGE4ZmQ3
MmYxNDRlYWFlZWU0YTdkMmQwY2I0OWI4ZDk5NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3Rp
bmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAt
dG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhh
dCByZWRpcmVjdHMgZm9yIGEgc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJv
eGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3lu
YyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVj
ZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewor
ICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAg
ICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNl
OworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24g
cmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09
ICJudWxsIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1Mi
KSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBs
YWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjog
IiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWlu
TG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAg
ICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2Nh
bGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUo
J3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDov
L2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJl
VHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJo
dHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBz
dGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENo
YWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQ
YWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVj
a1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcGFnZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5n
LXRvLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTQ5YmZiOTBjYzFhYzVmOTMxNWRkZjA5Y2Q0YjkzMWM5OGI3NDdlZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRv
LXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNCBA
QAorVGVzdHMgdGhhdCBjb29raWUgYmxvY2tpbmcgaXMgYXBwbGllZCB0byBwaW5nIGxvYWRzLgor
ICAgCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorU2hvdWxk
IHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLgorUmVjZWl2ZWQgY29va2llIG5hbWVkICdmaXJz
dFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQYXJ0eUNv
b2tpZT12YWx1ZQorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUyLS0+JworLS0tLS0tLS0K
K1Nob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVk
ICdmaXJzdFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0t
LS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMy0tPicKKy0tLS0tLS0tCitQaW5nIHJlY2VpdmVkLgor
SFRUUF9IT1NUOiBsb2NhbGhvc3Q6ODAwMAorUkVRVUVTVF9VUkk6IC9jb250ZW50ZXh0ZW5zaW9u
cy9yZXNvdXJjZXMvc2F2ZS1waW5nLnBocD90ZXN0PXBpbmctdG8tcHJldmFsZW50LXJlc291cmNl
CitObyBjb29raWVzIGluIHBpbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJh
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9w
aW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlOGZh
MTFkOTczMTMwZGM4YjE5ZTI4Mjg4MmExZDM0OGFmOWYzOWMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1wcmV2
YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDk4IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04
Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgY29va2llIGJs
b2NraW5nIGlzIGFwcGxpZWQgdG8gcGluZyBsb2Fkcy48L2Rpdj4KKzxhIGlkPSJ0YXJnZXRMaW5r
IiBocmVmPSIjIiBwaW5nPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvY29udGVudGV4dGVuc2lvbnMv
cmVzb3VyY2VzL3NhdmUtcGluZy5waHA/dGVzdD1waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZSI+
VGhlIGxpbms8L2E+Cis8c2NyaXB0PgorICAgIGlmICh0ZXN0UnVubmVyKQorICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3
LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIjsKKyAgICBjb25zdCByZXNvdXJjZVBhdGggPSAiL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFy
dHlPcmlnaW4gKyByZXNvdXJjZVBhdGg7CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWUg
PSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNv
b2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAi
JnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCByZXR1cm5VcmwgPSAiaHR0cDovLyIgKyBwYXJ0aXRp
b25Ib3N0ICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291
cmNlLmh0bWwiOworICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tpZXMgPSAiL2dldC1jb29raWVz
LnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWU7CisKKyAgICBmdW5jdGlvbiBhY3Rp
dmF0ZUVsZW1lbnQoZWxlbWVudElELCBjYWxsYmFjaykgeworICAgICAgICB2YXIgZWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAgICAgIHZhciBjZW50ZXJY
ID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAg
IHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAv
IDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigK
KyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFjaygpOwor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAg
ICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Cisg
ICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgewor
ICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9Cisg
ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5o
YXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgIC8vIFNl
dCBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRGaXJz
dFBhcnR5Q29va2llICsgIiMiICsgcmV0dXJuVXJsICsgIiNzdGVwMiI7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAgICAgICAgIC8v
IENoZWNrIHRoYXQgdGhlIGNvb2tpZSBnZXRzIHNlbnQgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcu
MC4wLjEgc2luY2UgbG9jYWxob3N0IGlzIG5vdCBwcmV2YWxlbnQuCisgICAgICAgICAgICAgICAg
ZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAgICAgICAgb3Blbklm
cmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9
U2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAzIjoKKyAgICAgICAgICAgICAg
ICAvLyBTZXQgbG9jYWxob3N0IGFzIHByZXZhbGVudCB0byBwdXQgaXQgaW4gdGhlIGJsb2NraW5n
IGNhdGVnb3J5LgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhy
dW5UZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJz
dGVwNCI7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgbm8g
Y29va2llIGdldHMgc2VudCBmb3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMSBzaW5jZSBsb2Nh
bGhvc3QncyBjb29raWVzIGFyZSBibG9ja2VkLgorICAgICAgICAgICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQ
YXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgICImbWVzc2FnZT1TaG91bGQgcmVj
ZWl2ZSBubyBjb29raWVzLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSAiI3N0ZXA1IjoKKyAgICAgICAgICAgICAgICAvLyBDbGljayB0aGUgbGlu
ayB0byB0cmlnZ2VyIHRoZSBwaW5nLgorICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgi
dGFyZ2V0TGluayIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBvcGVuSWZyYW1l
KHRoaXJkUGFydHlPcmlnaW4gKyAiL2NvbnRlbnRleHRlbnNpb25zL3Jlc291cmNlcy9nZXQtcGlu
Zy1kYXRhLnBocD90ZXN0PXBpbmctdG8tcHJldmFsZW50LXJlc291cmNlIiwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOworICAgICAgICAgICAgICAgICAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZmV0Y2goIi9jb250ZW50ZXh0ZW5zaW9ucy9yZXNvdXJjZXMvZGVsZXRlLXBp
bmcucGhwP3Rlc3Q9cGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UiKS50aGVuKCgpPT57IHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOyB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5o
YXNoID09PSAiIikgeworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVt
cENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aGFzaCA9ICJzdGVwMSI7CisgICAgICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBydW5UZXN0KCk7CisgICAgfQor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQt
a2V5ZG93bi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1k
YXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTRlMzJjNTkzZGUxMGQ1NzczNzEwMTM1
NzFkZDM0OGY1Mzg1MTk2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlk
b3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHdl
IGdyYW50IFVzZXIgSW50ZXJhY3Rpb24gY3JlZGl0IGZvciBoYW5kbGVkIGtleXByZXNzZXMuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTaW11bGF0ZSB1c2VyIHR5cGluZyBsZXR0
ZXIgJ2EnIGludG8gdGhlIGZpZWxkLgorUEFTUyB0ZXN0SW5wdXQudmFsdWUgaXMgImEiCitQQVNT
IE9yaWdpbiB3YXMgZ3JhbnRlZCB1c2VyIGludGVyYWN0aW9uLgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhh
bmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVkLWtleWRvd24tZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTU2YTUwY2NjODRmODBhMTc1ZGY0NjdmZjc4ODk0Y2U3
YjUxOWZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVkLWtleWRvd24tZGF0YWJh
c2UuaHRtbApAQCAtMCwwICsxLDYyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHdlIGdyYW50IFVzZXIgSW50ZXJhY3Rp
b24gY3JlZGl0IGZvciBoYW5kbGVkIGtleXByZXNzZXMuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvdGVtcCI7
CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHRlc3RGcmFtZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0ZXN0RnJhbWUiKTsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
ciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0
YWJhc2UodHJ1ZSk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RW5hYmxlZCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFn
ZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICB9CisKKyAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBk
aWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCBm
YWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGVhcmVkIG9mIHVzZXIgaW50ZXJhY3Rpb24u
Iik7CisKKyAgICAgICAgICAgIHRlc3RJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
ZXN0SW5wdXQiKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0Rp
ZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXN0SW5wdXQudmFsdWUiLCAiYSIpOworCisgICAgICAg
ICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3JpZ2lu
IGRpZCBub3QgZ2V0IHVzZXIgaW50ZXJhY3Rpb24gY3JlZGl0LiIpOworICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiT3JpZ2luIHdhcyBncmFudGVk
IHVzZXIgaW50ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RnJhbWUuc3JjID0gImFib3V0OmJsYW5r
IjsKKyAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3Rh
dGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSwg
MCk7CisgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0
YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsK
KworICAgICAgICAgICAgZGVidWcoIlNpbXVsYXRlIHVzZXIgdHlwaW5nIGxldHRlciAnYScgaW50
byB0aGUgZmllbGQuIik7CisgICAgICAgICAgICB0ZXN0SW5wdXQuZm9jdXMoKTsKKyAgICAgICAg
ICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIu
a2V5RG93bigiYSIpOworICAgICAgICB9KTsKKyAgICB9KTsKK30KKzwvc2NyaXB0PgorPGlmcmFt
ZSBpZD0idGVzdEZyYW1lIiBzcmM9InJlc291cmNlcy9vbmNsaWNrLmh0bWwiPjwvaWZyYW1lPgor
PGlucHV0IGlkPSJ0ZXN0SW5wdXQiIHR5cGU9InRleHQiPgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3By
ZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50
LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zNmU1NTliZmEyZGQyNDYxNjc5ODliMjVhYjgyMzljNDU2YjE2NGIwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3By
ZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMSBAQAorVGVzdHMgdGhhdCB3ZSBkbyBub3QgZ3JhbnQgVXNlciBJbnRlcmFj
dGlvbiBjcmVkaXQgZm9yIHVuaGFuZGxlZCBrZXlwcmVzcy4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1NpbXVsYXRlIGFuIHVuaGFuZGxlZCB1c2VyIGtleSBwcmVzcy4KK1BBU1Mg
T3JpZ2luIGRpZCBub3QgZ2V0IHVzZXIgaW50ZXJhY3Rpb24gY3JlZGl0LgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3Vy
Y2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtl
eWRvd24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YWNkZWIyOGU0Y2NiNzEyODI1MzIxN2Jh
ODgxOWVhN2VhNmZiMmZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5
ZG93bi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgd2UgZG8gbm90IGdy
YW50IFVzZXIgSW50ZXJhY3Rpb24gY3JlZGl0IGZvciB1bmhhbmRsZWQga2V5cHJlc3MuIik7Citq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAvdGVtcCI7CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHRl
c3RGcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0RnJhbWUiKTsKKworICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAg
ICB9CisKKyAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAg
dGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIp
OworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bihzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkp
CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGVhcmVkIG9m
IHVzZXIgaW50ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0
YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworCisgICAg
ICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiT3Jp
Z2luIGRpZCBub3QgZ2V0IHVzZXIgaW50ZXJhY3Rpb24gY3JlZGl0LiIpOworCisgICAgICAgICAg
ICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZy
YW1lLnNyYyA9ICJhYm91dDpibGFuayI7CisgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3Rp
Y3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0sIDApOworICAgICAgICAgICAgICAgIH0sIDApOworICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFz
c2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1Jl
bW92YWwoMCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlz
dGljc0FuZERhdGFSZWNvcmRzKCk7CisKKyAgICAgICAgICAgIGRlYnVnKCJTaW11bGF0ZSBhbiB1
bmhhbmRsZWQgdXNlciBrZXkgcHJlc3MuIik7CisgICAgICAgICAgICBpZiAod2luZG93LmV2ZW50
U2VuZGVyKQorICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImEiLCBbIm1ldGFL
ZXkiXSk7CisgICAgICAgIH0pOworICAgIH0pOworfQorPC9zY3JpcHQ+Cis8aWZyYW1lIGlkPSJ0
ZXN0RnJhbWUiIHNyYz0icmVzb3VyY2VzL29uY2xpY2suaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRh
YmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg5Zjg1NWE3ODljZjEwYmYzMzBmNGM5MmVhMTJi
OTQxYWJlZmMwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0
aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBDb29raWUgbm90IGRlbGV0
ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJl
dmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmVjMTNhNTAyNzRjNmRkOTRiZmU4YTE2NDU5YzRjYmFiOGE5MGU5MGMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCkBA
IC0wLDAgKzEsNjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+
CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgUHJldmFs
ZW50IFJlc291cmNlIFdpdGggVXNlciBJbnRlcmFjdGlvbjwvdGl0bGU+CisgICAgPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJzZXRUaW1lb3V0KCdzZXRVcEFuZFJ1bigpJywgMCkiPgorPHNjcmlwdD4KKyAgICBpZiAodGVz
dFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICBjb25z
dCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNz
VXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3Qgb3Ro
ZXJQcmV2YWxlbnRVcmwgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3RlbXAiOworICAgIGZ1bmN0
aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9
PSAiIikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBub3QgZW1wdHku
Iik7CisgICAgICAgIGNvbnN0IGNvb2tpZSA9ICJ0ZXN0Q29va2llPXRlc3RWYWx1ZSI7CisgICAg
ICAgIGRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZSArICI7IG1heC1hZ2U9MTAwOyI7CisgICAgICAg
IGlmIChkb2N1bWVudC5jb29raWUgIT09IGNvb2tpZSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
ImRvY3VtZW50LmNvb2tpZSBkaWQgbm90IGdldCBzZXQuIik7CisKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAg
ICAgICAvLyBUaGlzIGlzIGRvbmUgdG8gbm90IGhhdmUgYW4gZW1wdHkgc2V0IG9mIHByZXZhbGVu
dCByZXNvdXJjZXMuCisgICAgICAgICAgICAvLyBPdGhlcndpc2UgZGF0YSByZWNvcmRzIGFyZSBu
ZXZlciBzY2FubmVkLgorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uob3RoZXJQcmV2YWxlbnRVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShv
dGhlclByZXZhbGVudFVybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk90aGVy
IGhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihz
dGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBn
ZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworCisgICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNr
KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tp
ZSA9PT0gY29va2llKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNv
b2tpZSBub3QgZGVsZXRlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgZGVsZXRlZCBvciBkb2N1
bWVudC5jb29raWUgY29udGFpbnMgb3RoZXIgY29va2llczogIiArIGRvY3VtZW50LmNvb2tpZSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3Np
ZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVj
b3Jkc1JlbW92YWwoMCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZXRV
cEFuZFJ1bigpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RV
bmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHJ1
blRlc3RSdW5uZXJUZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIldyb25nIGhvc3QsIG5vIHRlc3RSdW5uZXIsIG9yIG5vIGlu
dGVybmFscy4iKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291
cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQt
cmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmY3ODA5ZTkxYzIzYzIzYTIzNjljZDA4NTRlYjE4MTY0N2RmYWViNDMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBDb29raWUgZGVsZXRlZC4KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC1kYXRhYmFz
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3By
ZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC1kYXRhYmFzZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmIyMDg5NzA1ZDI3OGVhYTIyMTI2ODU2ZDFkNmQwOTlhNTlhMGE3YjcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBs
YW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxl
PlRlc3RzIGZvciBQcmV2YWxlbnQgUmVzb3VyY2UgV2l0aCBVc2VyIEludGVyYWN0aW9uIFRpbWVv
dXQ8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVu
ZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJo
dHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3RS
dW5uZXJUZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSAiIikKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBub3QgZW1wdHkuIik7CisgICAgICAg
IGNvbnN0IGNvb2tpZSA9ICJ0ZXN0Q29va2llPXRlc3RWYWx1ZSI7CisgICAgICAgIGRvY3VtZW50
LmNvb2tpZSA9IGNvb2tpZSArICI7IG1heC1hZ2U9MTAwOyI7CisgICAgICAgIGlmIChkb2N1bWVu
dC5jb29raWUgIT09IGNvb2tpZSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3VtZW50LmNv
b2tpZSBkaWQgbm90IGdldCBzZXQuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
c3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90
IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwgdHJ1
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJh
Y3Rpb24uIik7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNz
RGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJDb29raWUgbm90IGRlbGV0ZWQ6ICIgKyBkb2N1bWVudC5jb29raWUpOwor
ICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJDb29raWUgZGVsZXRlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURh
dGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RpbWVUb0xpdmVVc2VySW50ZXJhY3Rp
b24oMCk7CisKKyAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHRvIGVuc3VyZSB0aGUgdGltZW91
dCB3ZSdyZSB0ZXN0aW5nLgorICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoInRlc3RSdW5uZXIu
c3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKSIsIDEwMDApOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2Nh
dGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRv
dy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFs
cy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0
cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0
aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0
aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzgwOWU5MWMyM2MyM2EyMzY5
Y2QwODU0ZWIxODE2NDdkZmFlYjQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0
LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIENv
b2tpZSBkZWxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFj
dGlvbi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yN2IwYjJhYWUzMDg0ZDRjNDdkOWVjOWY3Y2UzMmZlNGQ0
MGI5YzRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rp
b24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
IGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0
bGU+VGVzdHMgZm9yIFByZXZhbGVudCBSZXNvdXJjZSBXaXRob3V0IFVzZXIgSW50ZXJhY3Rpb248
L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVy
VGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRw
Oi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworCisgICAgZnVuY3Rpb24gZmluaXNoVGVz
dCAoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09ICIiKQorICAgICAgICAgICAg
dGVzdEZhaWxlZCgiQ29va2llIG5vdCBkZWxldGVkOiAiICsgZG9jdW1lbnQuY29va2llKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29va2llIGRlbGV0ZWQuIik7Cisg
ICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7
CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
fSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAg
IGlmIChkb2N1bWVudC5jb29raWUgIT09ICIiKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9j
dW1lbnQuY29va2llIG5vdCBlbXB0eS4iKTsKKyAgICAgICAgY29uc3QgY29va2llID0gInRlc3RD
b29raWU9dGVzdFZhbHVlIjsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gY29va2llICsgIjsg
bWF4LWFnZT0xMDA7IjsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gY29va2llKQor
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIGRpZCBub3QgZ2V0IHNldC4i
KTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hh
ZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0
IGRpZCBub3QgZ2V0IGNsZWFyZWQgb2YgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0Nh
bGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCJmaW5p
c2hUZXN0KCkiLCAxMDAwKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFS
ZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29y
ZHMoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9j
dW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5l
ciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQo
dHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2Vy
ZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgfQorPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTc0NzU3
YmM1MjU2MDA1MjFkNDYxNTQ1ZDAzNjdjMGYwNTAxYmVmMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0
aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitUZXN0cyB0aGF0IHN0
YXRpc3RpY3MgYXJlIHBydW5lZCBpbiB0aGUgcmlnaHQgb3JkZXIuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIFRlc3QgaXRlcmF0aW9uIDEgcGFzc2VkLgorUEFTUyBUZXN0
IGl0ZXJhdGlvbiAyIHBhc3NlZC4KK1BBU1MgVGVzdCBpdGVyYXRpb24gMyBwYXNzZWQuCitQQVNT
IFRlc3QgaXRlcmF0aW9uIDQgcGFzc2VkLgorUEFTUyBUZXN0IGl0ZXJhdGlvbiA1IHBhc3NlZC4K
K1BBU1MgVGVzdCBpdGVyYXRpb24gNiBwYXNzZWQuCitQQVNTIFRlc3QgaXRlcmF0aW9uIDcgcGFz
c2VkLgorUEFTUyBUZXN0IGl0ZXJhdGlvbiA4IHBhc3NlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFz
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3By
dW5lLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2FiN2QzOTE3MWQwM2Y0
N2I0MTlkMmFkYjBjYTEzOGFkZjc4ZWI5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BydW5lLXN0YXRpc3RpY3MtZGF0YWJh
c2UuaHRtbApAQCAtMCwwICsxLDE2MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdCBmb3IgUmVzb3Vy
Y2UgTG9hZCBTdGF0aXN0aWNzIFBydW5pbmc8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgc3RhdGlzdGljcyBhcmUgcHJ1bmVk
IGluIHRoZSByaWdodCBvcmRlci4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAg
IGNvbnN0IG9sZGVyVGltZXN0YW1wID0gTWF0aC5yb3VuZCgobmV3IERhdGUoKSkuZ2V0VGltZSgp
IC8gMTAwMCk7CisgICAgY29uc3QgbmV3ZXJUaW1lc3RhbXAgPSBvbGRlclRpbWVzdGFtcCArIDEw
OworICAgIGNvbnN0IG5ld2VzdFRpbWVzdGFtcCA9IG5ld2VyVGltZXN0YW1wICsgMTA7CisKKyAg
ICBjb25zdCB1cmxzVG9CZVBydW5lZCA9IFsKKyAgICAgICAgeyB1cmw6ICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAvdGVtcCIsIHByZXZhbGVudDogZmFsc2UgfSwKKyAgICAgICAgeyB1cmw6ICJodHRw
Oi8vMTI3LjAuMC4yOjgwMDAvdGVtcCIsIHByZXZhbGVudDogZmFsc2UgfSwKKyAgICAgICAgeyB1
cmw6ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCIsIHByZXZhbGVudDogdHJ1ZSB9LAorICAg
ICAgICB7IHVybDogImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIiwgcHJldmFsZW50OiB0cnVl
IH0sCisgICAgICAgIHsgdXJsOiAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiLCBwcmV2YWxl
bnQ6IGZhbHNlIH0sCisgICAgICAgIHsgdXJsOiAiaHR0cDovLzEyNy4wLjAuNjo4MDAwL3RlbXAi
LCBwcmV2YWxlbnQ6IGZhbHNlIH0sCisgICAgICAgIHsgdXJsOiAiaHR0cDovLzEyNy4wLjAuNzo4
MDAwL3RlbXAiLCBwcmV2YWxlbnQ6IHRydWUgfSwKKyAgICAgICAgeyB1cmw6ICJodHRwOi8vMTI3
LjAuMC44OjgwMDAvdGVtcCIsIHByZXZhbGVudDogdHJ1ZSB9CisgICAgXTsKKworICAgIGZ1bmN0
aW9uIGNoZWNrSWZQcmV2YWxlbnRBY2NvcmRpbmdUb0luaXRpYWxFeHBlY3RhdGlvbihiZWdpbiwg
ZW5kKSB7CisgICAgICAgIHZhciBmYWlsZWQgPSBmYWxzZTsKKyAgICAgICAgZm9yICh2YXIgaSA9
IGJlZ2luOyBpIDwgZW5kOyArK2kpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1bmVkW2ldLnVybCkgIT09IHVybHNU
b0JlUHJ1bmVkW2ldLnByZXZhbGVudCkgeworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoImNo
ZWNrSWZQcmV2YWxlbnRBY2NvcmRpbmdUb0luaXRpYWxFeHBlY3RhdGlvbjogVGVzdCBpdGVyYXRp
b24gIiArIGN1cnJlbnRUZXN0ICsgIiBmYWlsZWQuICIgKyB1cmxzVG9CZVBydW5lZFtpXS51cmwg
KyAodXJsc1RvQmVQcnVuZWRbaV0ucHJldmFsZW50ID8gIiB3YXNuJ3QgIiA6ICIgd2FzICIpICsg
InByZXZhbGVudCIpOworICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZhaWxlZCkgeworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gY2hlY2tJZlByZXZhbGVudChiZWdpbiwgZW5kLCBleHBlY3Rl
ZCkgeworICAgICAgICB2YXIgZmFpbGVkID0gZmFsc2U7CisgICAgICAgIGZvciAodmFyIGkgPSBi
ZWdpbjsgaSA8IGVuZDsgKytpKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh1cmxzVG9CZVBydW5lZFtpXS51cmwpICE9PSBleHBlY3Rl
ZCkgeworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoImNoZWNrSWZQcmV2YWxlbnQ6IFRlc3Qg
aXRlcmF0aW9uICIgKyBjdXJyZW50VGVzdCArICIgZmFpbGVkLiAiICsgdXJsc1RvQmVQcnVuZWRb
aV0udXJsICsgKGV4cGVjdGVkID8gIiB3YXNuJ3QgIiA6ICIgd2FzICIpICsgInByZXZhbGVudCIp
OworICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyAgICAgICAgaWYgKGZhaWxlZCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQorCisgICAg
ZnVuY3Rpb24gaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyhzdGVwKSB7CisgICAgICAg
IHN3aXRjaCAoc3RlcCkgeworICAgICAgICAgICAgLy8gTm9uLXByZXZhbGVudCB3aXRob3V0IHVz
ZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIGZpcnN0LgorICAgICAgICAgICAgY2FzZSAxOgor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0Jl
UHJ1bmVkWzBdLnVybCwgb2xkZXJUaW1lc3RhbXAsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3Rh
dGlzdGljc0FuZFJ1blRlc3RzKDIpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NM
YXN0U2Vlbih1cmxzVG9CZVBydW5lZFsxXS51cmwsIG5ld2VyVGltZXN0YW1wLCBmdW5jdGlvbigp
IHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygzKTsgfSk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAvLyBQcmV2YWxlbnQgd2l0aG91dCB1c2VyIGludGVyYWN0
aW9uIHRvIGJlIHBydW5lZCBzZWNvbmQuCisgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsc1RvQmVQ
cnVuZWRbMl0udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRS
dW5UZXN0cyg0KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IDQ6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJs
c1RvQmVQcnVuZWRbMl0udXJsLCBvbGRlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxp
emVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoNSk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1bmVkWzNdLnVybCwgdHJ1ZSwgZnVuY3Rp
b24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoNik7IH0pOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVkWzNdLnVybCwgbmV3ZXJU
aW1lc3RhbXAsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDcp
OyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8vIE5vbi1wcmV2YWxl
bnQgd2l0aCB1c2VyIGludGVyYWN0aW9uIHRvIGJlIHBydW5lZCB0aGlyZC4KKyAgICAgICAgICAg
IGNhc2UgNzoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24odXJsc1RvQmVQcnVuZWRbNF0udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsg
aW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyg4KTsgfSk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIDg6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbNF0udXJsLCBvbGRlclRpbWVzdGFt
cCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoOSk7IH0pOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSA5OgorICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih1cmxzVG9C
ZVBydW5lZFs1XS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0Fu
ZFJ1blRlc3RzKDEwKTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIDEwOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVu
KHVybHNUb0JlUHJ1bmVkWzVdLnVybCwgbmV3ZXJUaW1lc3RhbXAsIGZ1bmN0aW9uKCkgeyBpbml0
aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDExKTsgfSk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAvLyBQcmV2YWxlbnQgd2l0aCB1c2VyIGludGVyYWN0aW9uIHRvIGJl
IHBydW5lZCBsYXN0LgorICAgICAgICAgICAgY2FzZSAxMToKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh1cmxzVG9CZVBydW5lZFs2XS51
cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDEy
KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDEyOgorICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bih1cmxzVG9CZVBydW5lZFs2XS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3Rh
dGlzdGljc0FuZFJ1blRlc3RzKDEzKTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIDEzOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVkWzZdLnVybCwgb2xkZXJUaW1lc3RhbXAsIGZ1bmN0aW9u
KCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDE0KTsgfSk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDE0OgorICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1bmVkWzddLnVy
bCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTUp
OyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTU6CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHVybHNUb0JlUHJ1bmVkWzddLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0
aXN0aWNzQW5kUnVuVGVzdHMoMTYpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgMTY6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
TGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbN10udXJsLCBuZXdlclRpbWVzdGFtcCwgZnVuY3Rpb24o
KSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTcpOyB9KTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTc6CisgICAgICAgICAgICAgICAgY2hlY2tJ
ZlByZXZhbGVudEFjY29yZGluZ1RvSW5pdGlhbEV4cGVjdGF0aW9uKDAsIHVybHNUb0JlUHJ1bmVk
Lmxlbmd0aCk7CisgICAgICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgdmFyIGN1cnJlbnRUZXN0OworICAgIGZ1bmN0
aW9uIGNoZWNrU3RhdGlzdGljc0FmdGVyUHJ1bmluZygpIHsKKyAgICAgICAgLy8gUHJ1bmVkIGVu
dHJpZXMgc2hvdWxkIG5vdCBiZSBwcmV2YWxlbnQuCisgICAgICAgIGNoZWNrSWZQcmV2YWxlbnQo
MCwgY3VycmVudFRlc3QsIGZhbHNlKTsKKyAgICAgICAgLy8gTm9uLXBydW5lZCBlbnRyaWVzIHNo
b3VsZCBrZWVwIHRoZWlyIGV4cGVjdGVkIHN0YXR1cy4KKyAgICAgICAgY2hlY2tJZlByZXZhbGVu
dEFjY29yZGluZ1RvSW5pdGlhbEV4cGVjdGF0aW9uKGN1cnJlbnRUZXN0LCB1cmxzVG9CZVBydW5l
ZC5sZW5ndGgpOworICAgICAgICB0ZXN0UGFzc2VkKCJUZXN0IGl0ZXJhdGlvbiAiICsgY3VycmVu
dFRlc3QgKyAiIHBhc3NlZC4iKTsKKyAgICAgICAgaWYgKGN1cnJlbnRUZXN0IDwgdXJsc1RvQmVQ
cnVuZWQubGVuZ3RoKSB7CisgICAgICAgICAgICArK2N1cnJlbnRUZXN0OworICAgICAgICAgICAg
dGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNo
ZWNrU3RhdGlzdGljc0FmdGVyUHJ1bmluZyk7CisgICAgICAgICAgICBpbml0aWFsaXplU3RhdGlz
dGljc0FuZFJ1blRlc3RzKDEpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9Cisg
ICAgfQorCisgICAgbGV0IGZpbGxlclVybDsKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAg
ICAgICBmaWxsZXJVcmwgPSAiaHR0cDovLzEyNy4wLiIgKyBjdXJyZW50VGVzdCArICIuMTo4MDAw
L3RlbXAiOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShmaWxsZXJVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKGZpbGxlclVybCwgdHJ1ZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4o
ZmlsbGVyVXJsLCBuZXdlc3RUaW1lc3RhbXAsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRz
KCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7Cisg
ICAgfQorCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxz
ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRh
dGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90
aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzTWF4U3RhdGlzdGljc0VudHJpZXModXJsc1RvQmVQcnVuZWQubGVu
Z3RoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJ1bmVFbnRyaWVzRG93blRv
KHVybHNUb0JlUHJ1bmVkLmxlbmd0aCk7CisKKyAgICAgICAgY3VycmVudFRlc3QgPSAxOworICAg
ICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJh
Y2soY2hlY2tTdGF0aXN0aWNzQWZ0ZXJQcnVuaW5nKTsKKyAgICAgICAgaW5pdGlhbGl6ZVN0YXRp
c3RpY3NBbmRSdW5UZXN0cygxKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3YzE0MzhiMTg2NDA2NDJhYTE2ZmMwNmI2
OWQ4NDFmZGYzYmYxNmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1s
b2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rl
c3RzIHRoYXQgcmVkaXJlY3RzIGZvciBzYW5kYm94ZWQgaWZyYW1lcyBnZXQgY291bnRlZCBwcm9w
ZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0Iiwg
Imh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3
LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpIGlz
IHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJh
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY2NzExMjA1MDY4MTgzOTFjYTk2N2ZmMjRmZmZjMDU4YzkyMTlmNDEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAt
ZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBm
b3Igc2FuZGJveGVkIGlmcmFtZXMgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpz
VGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVz
c2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNo
VGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVz
dCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFS
ZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQor
CisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAg
ICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2
ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJudWxs
IikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0g
LTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJG
QUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2
ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVk
ID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAg
ZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5j
dGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3Qi
LCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2Fs
aG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgn
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8v
MTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0No
ZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9h
ZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMiIHNy
Yz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2Vz
L3JlZGlyZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9pZnJhbWUtcmVw
b3J0LWJhY2stbG9hZGVkLmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFi
YXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2Nh
bGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3YzE0MzhiMTg2NDA2NDJh
YTE2ZmMwNmI2OWQ4NDFmZGYzYmYxNmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVj
dC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3Igc2FuZGJveGVkIGlmcmFtZXMg
Z2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0
cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhv
c3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6
Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRv
LWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0
LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwMjZiZDljMGMy
MTJiN2U1ZjE2NDliNTkzYjk3ODgzY2YzMTQ4ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKQEAgLTAs
MCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQg
c3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAg
ICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIHNhbmRib3hlZCBpZnJhbWVz
IGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2Fn
ZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAg
ICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQ
RGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBh
Z2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNoZWNr
U3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBh
Z2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tl
ZCA9IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7Cisg
ICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAibnVsbCIpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNz
YWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAg
ICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAg
ICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlP
YnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsK
KyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3Rl
cmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEi
KScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1Jl
Z2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4w
LjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8v
bG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAg
ICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAg
ICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPGlmcmFtZSBzYW5kYm94PSJhbGxvdy1zY3JpcHRzIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHAvP3JlZGly
ZWN0VG89aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3Vy
Y2VzL3JlZGlyZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvaWZyYW1lLXJlcG9ydC1iYWNrLWxvYWRlZC5odG1s
Ij4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFt
ZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1p
cC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hl
ZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yMzY1OGNkMzQzZjU1NmUwYzM0NDc1ZWY5ZWY0NWM2MjBkNGQ0Mjdl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hl
ZCBpZnJhbWUgbmVzdGVkIGluIGEgc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJs
eS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0
dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVn
aXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAu
MC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1Jl
ZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpIGlzIHRy
dWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdp
dGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRh
dGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDkyZDU5OTk2NGU3ZTYyZmQwNWZiMGQ3OGFlNWUyOTY2
MDU3YTA2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApA
QCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+Cisg
ICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJv
eGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBzYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Bl
cmx5LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAg
ICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5u
ZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7Cisg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRz
V2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3Rh
dGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5M
b2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAg
ICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZl
bnQub3JpZ2luID09PSAibnVsbCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5p
bmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2
ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBl
Y3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAgICAgICBsYXN0UGFnZUlu
UmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVja2Vk
KQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAgICAg
ICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVy
KCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAg
c2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0
aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAg
ICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVk
aXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsKKwor
ICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0UGFn
ZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7Cisg
ICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzYW5kYm94
PSJhbGxvdy1zY3JpcHRzIiBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3Jlc291cmNlcy9wYWdlLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJv
eGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9j
YWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjM2NThjZDM0M2Y1NTZlMGMzNDQ3NWVmOWVmNDVjNjIwZDRkNDI3ZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5k
Ym94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1s
b2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFt
ZSBuZXN0ZWQgaW4gYSBzYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEy
Ny4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVk
QXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBp
cyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3Rp
bmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94
ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2Nh
bGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdp
dGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2Fs
aG9zdC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmODZmZThjMzI5NGUyNTM5MjJjMjVlYTM3
OTI3ZmQ1Yzk0MzZmZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9u
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1k
YXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZv
ciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIHNhbmRib3hlZCBpZnJhbWUgZ2V0
IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAg
ICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBm
YWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAg
ICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRh
YmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNX
aGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0
cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUlu
UmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0g
ZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAg
ICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikgeworICAgICAgICAgICAgICAgIGlm
IChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2Ug
ZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAg
ICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlm
IChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2Vy
dmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7
CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4x
IiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NS
ZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2Nh
bGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAg
ICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZp
bmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
aWZyYW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMiIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAw
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1ub24tc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0Lmh0bWwiPgorPC9p
ZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgt
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43MTVjODVlYjQ3ZTBmMDg0MTZlNjFmZDAxNWZkN2FlM2NiODY2YjY5Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRi
b3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8t
bG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitU
ZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5v
bi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlz
IHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGlu
Z1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNT
IHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDov
LzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1p
ZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1p
cC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVk
aXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDZl
OTRhNDU5Njk4NTRkM2UzODhkMTBhYWRjYWYwYTFkMmE0ZGFhZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQt
bmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2Fs
aG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
cmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hl
ZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMg
PSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2Vp
dmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAg
ICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAg
IH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJh
Y2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHZh
ciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3Rh
dHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZl
bnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikgeworICAgICAg
ICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7
CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZl
ZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7
CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAg
ICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0
YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEy
Ny4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRw
Oi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwg
Imh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVl
OworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAg
ICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMiIHNyYz0iaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC5odG1sIj4KKzwv
aWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRo
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1k
YXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43MTVjODVlYjQ3ZTBmMDg0MTZlNjFmZDAxNWZkN2FlM2NiODY2YjY5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgc2FuZGJveGVk
IGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9w
ZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0Iiwg
Imh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3
LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpIGlz
IHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVj
dC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZy
YW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9j
YWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWUxOWRkMTAwMjExNWQ4YTE5NGZjMjI0
MWQ1OGY0ZjgyZTAwMmJkOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0
YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3Ig
YSBzYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBj
b3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFs
c2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJh
c2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hl
bkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdHMp
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJl
ZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZh
bHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAg
ICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAibnVsbCIpIHsKKyAgICAgICAgICAgICAgICBpZiAo
ZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZy
b20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAgICAg
ICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAo
c3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZl
cigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAg
ICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNT
dWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOwor
ICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVy
ZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIp
Jyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVn
aXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxo
b3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAg
IGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBmaW5p
c2hUZXN0KCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlm
cmFtZSBzYW5kYm94PSJhbGxvdy1zY3JpcHRzIiBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9wYWdlLXdpdGgtc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0Lmh0bWwiPgorPC9pZnJhbWU+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4tZGVi
dWctbW9kZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4tZGVi
dWctbW9kZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmRjMDczZGE0N2NiYTQ4
NjA3NzIzZDRmZGI2M2NiYTE1NmQ4N2U2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1y
ZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACitUZXN0IGZvciBlbmFibGluZyBkZWJ1ZyBtb2RlIGFuZCB0aGF0IGl0IGFsbG93cyBzZXR0
aW5nIGEgY3VzdG9tIGRvbWFpbiBhcyBhIHByZXZhbGVudCByZXNvdXJjZS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaHR0cDovL2xvY2FsaG9zdDo4MDAwIGdvdCBzZXQg
YXMgYSBjdXN0b20gcHJldmFsZW50IHJlc291cmNlIGluIGRlYnVnIG1vZGUuCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0b20tcHJl
dmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1y
ZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWZkYTgxMjAx
OWE5ZTczZmY5NTU4OTE1ZTBmODg5MjZhOGQ5MDQ5YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZh
bGVudC1yZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwzNiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBj
aGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0
IGZvciBlbmFibGluZyBkZWJ1ZyBtb2RlIGFuZCB0aGF0IGl0IGFsbG93cyBzZXR0aW5nIGEgY3Vz
dG9tIGRvbWFpbiBhcyBhIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIjsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxz
KSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKHRoaXJkUGFydHlPcmlnaW4gKyAiIGFscmVhZHkg
c2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUodGhpcmRQYXJ0eU9yaWdp
biwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
RGVidWdNb2RlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikp
CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKHRoaXJkUGFydHlPcmlnaW4gKyAi
IGRpZG4ndCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCh0aGlyZFBhcnR5
T3JpZ2luICsgIiBnb3Qgc2V0IGFzIGEgY3VzdG9tIHByZXZhbGVudCByZXNvdXJjZSBpbiBkZWJ1
ZyBtb2RlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NE
ZWJ1Z01vZGUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7Cisg
ICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3Jp
Z2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJp
cC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMt
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiZDU0M2VjOWFmMzI0YmQ1MGRjMWQ0
Yzg2Y2RiMDllOWM0ZDViMjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1w
cmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE1IEBACitUZXN0cyB0aGF0IG9ubHkgdGhlIG9yaWdpbiBpcyBzZW50IGFzIHJlZmVy
cmVyIGluIHJlZGlyZWN0cyB0byBwcmV2YWxlbnQgcmVzb3VyY2VzIHdpdGhvdXQgdXNlciBpbnRl
cmFjdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVmZXJyZXIg
aXMgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJl
ZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlZGlyZWN0cy1kYXRh
YmFzZS5odG1sIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxl
bnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZv
ci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjBmOGEyZjQyMGI1YWE2MmMzN2EyNWQ0YmRkZmVkMzNhMzNiZmE1ZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJp
cC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMt
ZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDUxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IG9u
bHkgdGhlIG9yaWdpbiBpcyBzZW50IGFzIHJlZmVycmVyIGluIHJlZGlyZWN0cyB0byBwcmV2YWxl
bnQgcmVzb3VyY2VzIHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKyAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworCisg
ICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgY29u
c3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBl
bGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAg
ICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsKKyAgICAgICAgfQorICAgICAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIH0KKworICAgIHZhciByZWZl
cnJlcjsKKyAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgIHNldEVu
YWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IikpCisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2FzIGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJl
c291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydGVkLiIpOworCisgICAgICAgIGZldGNoKCJyZXNv
dXJjZXMvZWNoby1yZWZlcnJlci5waHAiKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAg
ICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9u
KGRhdGEpIHsKKyAgICAgICAgICAgIHJlZmVycmVyID0gZGF0YTsKKyAgICAgICAgICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQt
c3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0bWwiKTsKKworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3Qi
LCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBk
YXRlQ29va2llQmxvY2tpbmcoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIG9wZW5J
ZnJhbWUoInJlc291cmNlcy9yZWRpcmVjdC5waHA/cmVkaXJlY3RUbz1odHRwOi8vbG9jYWxob3N0
OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1yZWZlcnJlci5waHAi
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVy
cm9yKSB7CisgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTsKKyAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0pOwor
ICAgIH0pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8t
b3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0
cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3Rz
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OWNjYjljMjFmZjAwNzFhOTgwMjM5
YjdiNzkzZjU1MTg3ZWJlZTVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3It
cHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE2IEBACitUZXN0cyB0aGF0IG9ubHkgdGhlIG9yaWdpbiBpcyBzZW50IGFzIHJlZmVy
cmVyIGZvciBwcmV2YWxlbnQgcmVzb3VyY2VzIHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbi4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVmZXJyZXIgaXMgImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9y
aWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFiYXNlLmh0bWwiCitQ
QVNTIHJlZmVycmVyIGlzICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvIgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKworLS0tLS0tLS0KK0ZyYW1lOiAn
PCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitodHRwOi8vMTI3LjAuMC4xOjgwMDAvCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAt
cmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0
YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1
ZXN0cy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1ZDRmMDM2NmY5N2NmY2U5NDI4YTZhODZl
NTE1NDgzNjBlMzIxNzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2
YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDYyIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAg
IGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IG9ubHkgdGhlIG9yaWdpbiBpcyBzZW50IGFzIHJlZmVy
cmVyIGZvciBwcmV2YWxlbnQgcmVzb3VyY2VzIHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbi4iKTsK
KyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1l
c0FzVGV4dCgpOworCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhhbmRsZXIp
IHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFt
ZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9hZEhhbmRs
ZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsKKyAgICAg
ICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIH0K
KworICAgIHZhciByZWZlcnJlcjsKKyAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRy
dWUpOworICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxo
b3N0IikpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2FzIGNsYXNzaWZpZWQg
YXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydGVkLiIpOworCisgICAg
ICAgIGZldGNoKCJyZXNvdXJjZXMvZWNoby1yZWZlcnJlci5waHAiKS50aGVuKGZ1bmN0aW9uKHJl
c3BvbnNlKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpOworICAgICAgICB9
KS50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgICAgICAgIHJlZmVycmVyID0gZGF0YTsKKyAg
ICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4w
LjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2lu
LWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UuaHRtbCIpOworCisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0
cDovL2xvY2FsaG9zdCIsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICgh
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9z
dCIpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNl
dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgZmV0Y2goImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3Jlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIpLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2Up
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7CisgICAg
ICAgICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgcmVmZXJyZXIgPSBkYXRhOworICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvIik7CisK
KyAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUoInJlc291cmNlcy9yZWRpcmVjdC5w
aHA/cmVkaXJlY3RUbz1odHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9yZXNvdXJjZXMvZWNoby1yZWZlcnJlci5waHAiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICAgICAgfSkuY2F0
Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9n
KGVycm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24o
ZXJyb3IpIHsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yLm1lc3NhZ2UpOworICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSk7
CisgICAgfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1v
bi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
d2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9u
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDM5MjJmZDkzZjFhNTQ0NGYyY2Iw
Njg4NGVmYzMyOTBiYWU1MWY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24t
dG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgdGhlIHNlc3Npb24gaXMgc3dpdGNoZWQgdXBvbiB0b3Ag
ZnJhbWUgbmF2aWdhdGlvbiB0byBhIHByZXZhbGVudCByZXNvdXJjZSB3aXRoIHVzZXIgaW50ZXJh
Y3Rpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFNob3VsZCBoYXZl
IGFuZCBoYXMgdGhlIHNlc3Npb24gY29va2llLgorUEFTUyBTaG91bGQgaGF2ZSBhbmQgaGFzIHRo
ZSBwZXJzaXN0ZW50IGNvb2tpZS4KK1BBU1MgT3JpZ2luIGhhcyBpc29sYXRlZCBzZXNzaW9uLgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0
Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRh
dGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFj
dGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyNzBjMDBiMDQ4MTY2NjBiYzgxZDBkNmVl
ODljYWE3MGUxZjc0YmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1w
cmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTExIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNo
YXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorICAg
IGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRoZSBzZXNzaW9uIGlzIHN3aXRjaGVkIHVwb24gdG9w
IGZyYW1lIG5hdmlnYXRpb24gdG8gYSBwcmV2YWxlbnQgcmVzb3VyY2Ugd2l0aCB1c2VyIGludGVy
YWN0aW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgcHJldmFs
ZW50T3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgbm9uUHJldmFs
ZW50T3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3Qgc2Vzc2lvbkNv
b2tpZU5hbWUgPSAic2Vzc2lvbkNvb2tpZSI7CisgICAgY29uc3QgcGVyc2lzdGVudENvb2tpZU5h
bWUgPSAicGVyc2lzdGVudENvb2tpZSI7CisgICAgY29uc3QgdHdvTWludXRlc0luU2Vjb25kcyA9
IDEyMDsKKworICAgIGZ1bmN0aW9uIHNldFNlc3Npb25Db29raWUoKSB7CisgICAgICAgIGRvY3Vt
ZW50LmNvb2tpZSA9IHNlc3Npb25Db29raWVOYW1lICsgIj0xOyBwYXRoPS8iOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHNldFBlcnNpc3RlbnRDb29raWUoKSB7CisgICAgICAgIGRvY3VtZW50LmNv
b2tpZSA9IHBlcnNpc3RlbnRDb29raWVOYW1lICsgIj0xOyBwYXRoPS87IE1heC1BZ2U9IiArIHR3
b01pbnV0ZXNJblNlY29uZHMgKyAiOyI7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2hlY2tDb29r
aWVzKHNob3VsZEhhdmVTZXNzaW9uQ29va2llLCBzaG91bGRIYXZlUGVyc2lzdGVudENvb2tpZSkg
eworICAgICAgICBsZXQgaGFzU2Vzc2lvbkNvb2tpZSA9IChkb2N1bWVudC5jb29raWUgKyAiIiku
aW5jbHVkZXMoc2Vzc2lvbkNvb2tpZU5hbWUpLAorICAgICAgICAgICAgaGFzUGVyc2lzdGVudENv
b2tpZSA9IChkb2N1bWVudC5jb29raWUgKyAiIikuaW5jbHVkZXMocGVyc2lzdGVudENvb2tpZU5h
bWUpOworCisgICAgICAgIGlmIChzaG91bGRIYXZlU2Vzc2lvbkNvb2tpZSAmJiBoYXNTZXNzaW9u
Q29va2llKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxkIGhhdmUgYW5kIGhhcyB0aGUg
c2Vzc2lvbiBjb29raWUuIik7CisgICAgICAgIGVsc2UgaWYgKHNob3VsZEhhdmVTZXNzaW9uQ29v
a2llICYmICFoYXNTZXNzaW9uQ29va2llKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTaG91
bGQgaGF2ZSBidXQgZG9lc24ndCBoYXZlIHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKKyAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0gZWxz
ZSBpZiAoIXNob3VsZEhhdmVTZXNzaW9uQ29va2llICYmIGhhc1Nlc3Npb25Db29raWUpIHsKKyAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZG4ndCBoYXZlIGJ1dCBoYXMgdGhlIHNlc3Npb24g
Y29va2llLiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNU
ZXN0KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91bGRuJ3Qg
aGF2ZSBhbmQgZG9lc24ndCBoYXZlIHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKKworCisgICAgICAg
IGlmIChzaG91bGRIYXZlUGVyc2lzdGVudENvb2tpZSAmJiBoYXNQZXJzaXN0ZW50Q29va2llKQor
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxkIGhhdmUgYW5kIGhhcyB0aGUgcGVyc2lzdGVu
dCBjb29raWUuIik7CisgICAgICAgIGVsc2UgaWYgKHNob3VsZEhhdmVQZXJzaXN0ZW50Q29va2ll
ICYmICFoYXNQZXJzaXN0ZW50Q29va2llKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTaG91
bGQgaGF2ZSBidXQgZG9lc24ndCBoYXZlIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsKKyAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0g
ZWxzZSBpZiAoIXNob3VsZEhhdmVQZXJzaXN0ZW50Q29va2llICYmIGhhc1BlcnNpc3RlbnRDb29r
aWUpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZG4ndCBoYXZlIGJ1dCBoYXMgdGhl
IHBlcnNpc3RlbnQgY29va2llLiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2Vk
KCJTaG91bGRuJ3QgaGF2ZSBhbmQgZG9lc24ndCBoYXZlIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4i
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRv
Y3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHByZXZhbGVudE9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
IHNldFNlc3Npb25Db29raWUoKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0UGVyc2lzdGVudENv
b2tpZSgpOworICAgICAgICAgICAgICAgICAgICBjaGVja0Nvb2tpZXModHJ1ZSwgdHJ1ZSk7Cisg
ICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmhhc1N0YXRpc3RpY3NJc29sYXRlZFNl
c3Npb24ocHJldmFsZW50T3JpZ2luKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiT3JpZ2luIGhhcyBpc29sYXRlZCBzZXNzaW9uLiIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAg
ICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPcmln
aW4gaGFzIG5vIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhyZWYgPSBub25QcmV2YWxlbnRPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aC1p
bnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAgICAg
ICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiAhPT0gbm9uUHJldmFsZW50T3JpZ2luKQor
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTdGVwIDIgaXMgbm90IG9uICIgKyBub25Q
cmV2YWxlbnRPcmlnaW4gKyAiLiIpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudE9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRPcmlnaW4pKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKHByZXZhbGVudE9yaWdpbiArICIgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZh
bGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcocnVu
VGVzdCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9u
LmhyZWYgPSBwcmV2YWxlbnRPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNo
LXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRh
YmFzZS5odG1sI3N0ZXA0IjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgY2hlY2tDb29raWVzKHRydWUsIHRydWUpOwor
ICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmhhc1N0YXRpc3RpY3NJc29sYXRlZFNlc3Np
b24ocHJldmFsZW50T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiT3Jp
Z2luIGhhcyBpc29sYXRlZCBzZXNzaW9uLiIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3JpZ2luIGhhcyBubyBpc29sYXRlZCBzZXNzaW9u
LiIpOworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVz
dCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIlVua25vd24gaGFzaC4iKTsKKyAgICAgICAgICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisgICAgfQor
CisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiKSB7CisgICAgICAgIGlmIChk
b2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gIT09IHByZXZhbGVudE9yaWdpbikKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoIlRlc3QgaXMgbm90IHN0YXJ0aW5nIG91dCBvbiAiICsgcHJldmFsZW50T3Jp
Z2luICsgIi4iKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsK
KyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRP
cmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQocHJldmFsZW50T3JpZ2luICsgIiB3
YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0
cy4iKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEiOworICAg
ICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVy
YWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJh
Y3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjg0MjczMGE0NWRhZGU2ZWE2ZjE1ZGVjYzM5YTdlNWE5YTBlMzEyYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3RzIHRoYXQgdXNlciBpbnRlcmFjdGlvbiBp
cyBhbHdheXMgbG9nZ2VkIGZvciB0aGUgdG9wIGRvY3VtZW50L2ZyYW1lLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gaXMgdG9w
RnJhbWVPcmlnaW4KK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24odG9wRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdp
bikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbihzdWJGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmln
aW4tc3ViLWZyYW1lLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZy
YW1lLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmVmNjIzYzE4MGQ2M2QzYzZiNjEwZWViMzcx
YmQ4ODQ1ODYxZGQ4ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1z
dWItZnJhbWUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDQ5IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB1c2VyIGludGVyYWN0aW9uIGlzIGFs
d2F5cyBsb2dnZWQgZm9yIHRoZSB0b3AgZG9jdW1lbnQvZnJhbWUuIik7Citqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKK3Rlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisKK2NvbnN0IHRv
cEZyYW1lT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7Citjb25zdCBzdWJGcmFtZU9y
aWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworCitmdW5jdGlvbiBhY3RpdmF0ZUVsZW1l
bnQoZWxlbWVudElkKSB7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChlbGVtZW50SWQpOworICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxl
bWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRv
cCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNl
bnRlclgsIGNlbnRlclkpOworfQorCitmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgIHNob3Vs
ZEJlVHJ1ZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9w
RnJhbWVPcmlnaW4pIik7CisgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7CisKKyAgICBzZXRFbmFi
bGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworfQorCitvbmxvYWQgPSBmdW5jdGlvbigp
IHsKKyAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAo
dGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5
UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhmaW5pc2hU
ZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIHNob3VsZEJlKCJkb2N1bWVudC5sb2NhdGlvbi5v
cmlnaW4iLCAidG9wRnJhbWVPcmlnaW4iKTsKKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgewor
ICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIik7CisgICAgICAgICAgICBzaG91bGRCZUZh
bHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFt
ZU9yaWdpbikiKTsKKworICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0ZXN0RnJhbWUiKTsK
KyAgICAgICAgfQorICAgIH0pOworfTsKKzwvc2NyaXB0PgorPGlmcmFtZSBpZD0idGVzdEZyYW1l
IiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291
cmNlcy9kdW1teS5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVy
YWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9y
dC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQzMmJj
OGVkNzM4MWZiYzQ5OGRiMzRjMGZiM2JlN2E1N2JkOTFkMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0
aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3RzIHRoYXQgdXNlciBpbnRlcmFj
dGlvbiBpcyBub3QgcmVwb3J0ZWQgcmVwZWF0ZWRseSB3aXRoaW4gYSBzaG9ydCBwZXJpb2Qgb2Yg
dGltZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQubG9j
YXRpb24ub3JpZ2luIGlzIHRvcEZyYW1lT3JpZ2luCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdp
bikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24odG9wRnJhbWVPcmlnaW4pIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2lu
KSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1RoaXMgaXMgdGhlIHRl
c3QgZWxlbWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1z
aG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1v
bmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU1ZGViOTcyOWJkNWI5Yjk2MzdjMDhiOTljNjEzMTUzN2I2MWFhMzEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1p
bnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1l
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHVzZXIgaW50ZXJhY3Rpb24gaXMgbm90IHJl
cG9ydGVkIHJlcGVhdGVkbHkgd2l0aGluIGEgc2hvcnQgcGVyaW9kIG9mIHRpbWUuIik7CisgICAg
anNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbiA9ICJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN1YkZyYW1lT3JpZ2luID0gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCI7CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElk
LCBjYWxsYmFjaykgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGVsZW1lbnRJZCk7CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0
ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVu
dC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVy
LmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlzZSBy
ZWplY3RlZC4iKTsKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5p
c2hKU1Rlc3QpOworICAgICAgICAgICAgfQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0
aW9uIGZpcnN0SW50ZXJhY3Rpb24oKSB7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOwor
ICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0
ZXN0RWxlbWVudCIsIHNlY29uZEludGVyYWN0aW9uKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBz
ZWNvbmRJbnRlcmFjdGlvbigpIHsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICAg
ICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0
b3BGcmFtZU9yaWdpbiwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRv
cEZyYW1lT3JpZ2luKSIpOworCisgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0ZXN0
RWxlbWVudCIsIGZpbmlzaFRlc3QpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdp
bikiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNI
YWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7CisKKyAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBvbmxvYWQgPSBmdW5j
dGlvbigpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHNo
b3VsZEJlKCJkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4iLCAidG9wRnJhbWVPcmlnaW4iKTsKKwor
ICAgICAgICAgICAgZmlyc3RJbnRlcmFjdGlvbigpOworICAgICAgICB9KTsKKyAgICB9OworPC9z
Y3JpcHQ+Cis8ZGl2IGlkPSJ0ZXN0RWxlbWVudCI+VGhpcyBpcyB0aGUgdGVzdCBlbGVtZW50PC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13
ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1yZXBvcnRl
ZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYmYyOGM5OWIzMDI0NDQ1NjBiNTFiMzQ4Yjk2MDIxYjA1ODU2ZWEzYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91
c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitUZXN0cyB0aGF0IHVzZXIgaW50ZXJh
Y3Rpb24gaXMgcmVwb3J0ZWQgYWZ0ZXIgaGlzdG9yeSByZW1vdmFsIHNpbmNlIHRoYXQgbWVhbnMg
YWxsIHN0YXRpc3RpY3MgaGF2ZSBiZWVuIHJlc2V0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gaXMgdG9wRnJhbWVPcmlnaW4K
K1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJh
bWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgdHJ1ZQor
UEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFt
ZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2Vy
SW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyB0cnVlCitQ
QVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1l
T3JpZ2luKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCitUaGlzIGlzIHRoZSB0ZXN0IGVsZW1lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJl
cG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1y
ZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFzZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJiZWI0MmY5NDJmMWI2OGZmYWNmZTBlZmIxZmU5MjM5NjJmMjI2OGQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNl
ci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFz
ZS5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4K
KzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICBk
ZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB1c2VyIGludGVyYWN0aW9uIGlzIHJlcG9ydGVkIGFmdGVy
IGhpc3RvcnkgcmVtb3ZhbCBzaW5jZSB0aGF0IG1lYW5zIGFsbCBzdGF0aXN0aWNzIGhhdmUgYmVl
biByZXNldC4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHRvcEZy
YW1lT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3ViRnJhbWVP
cmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKworICAgIGZ1bmN0aW9uIGFjdGl2YXRl
RWxlbWVudChlbGVtZW50SWQsIGNhbGxiYWNrKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBl
bGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFy
IGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsK
KyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAg
ICAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gZmlyc3RJbnRlcmFjdGlvbigpIHsKKyAgICAgICAgc2hvdWxk
QmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9w
RnJhbWVPcmlnaW4pIik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworICAgICAgICBh
Y3RpdmF0ZUVsZW1lbnQoInRlc3RFbGVtZW50IiwgY2xlYXJXZWJzaXRlRGF0YSk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gY2xlYXJXZWJzaXRlRGF0YSgpIHsKKyAgICAgICAgc2hvdWxkQmVUcnVl
KCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9y
aWdpbikiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NI
YXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7CisKKyAgICAgICAgaWYgKHRl
c3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NDbGVhclRocm91Z2hX
ZWJzaXRlRGF0YVJlbW92YWwoc2Vjb25kSW50ZXJhY3Rpb24pOworICAgIH0KKworICAgIGZ1bmN0
aW9uIHNlY29uZEludGVyYWN0aW9uKCkgeworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsK
KyAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0ZXN0RWxlbWVudCIsIGZpbmlzaFRlc3QpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgi
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmln
aW4pIik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworCisgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgb25sb2FkID0gZnVu
Y3Rpb24oKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7Cisg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBz
aG91bGRCZSgiZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luIiwgInRvcEZyYW1lT3JpZ2luIik7CisK
KyAgICAgICAgICAgIGZpcnN0SW50ZXJhY3Rpb24oKTsKKyAgICAgICAgfSk7CisgICAgfTsKKzwv
c2NyaXB0PgorPGRpdiBpZD0idGVzdEVsZW1lbnQiPlRoaXMgaXMgdGhlIHRlc3QgZWxlbWVudDwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCBhYWJjZjlhODYyZDFlZTMzYzM2NWZiZDZiNGEyMjc0NGZhYTkwZmNhLi43
ZmVlNzQ5NWQyYzhlODc1MGIyMzMzZDQzNDEzM2VhZWQ3ZjhiNGE2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTg2LDYgKzk4Niw4IEBAIGh0dHAvdGVz
dHMvbmF2aWdhdGlvbi9rZXlib2FyZC1ldmVudHMtZHVyaW5nLXByb3Zpc2lvbmFsLW5hdmlnYXRp
b24uaHRtbCBbIFNraXAKIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9rZXlib2FyZC1ldmVudHMtZHVy
aW5nLXByb3Zpc2lvbmFsLXN1YmZyYW1lLW5hdmlnYXRpb24uaHRtbCBbIFNraXAgXQogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVkLWtl
eWRvd24uaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3By
ZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi5odG1sIFsgU2tpcCBdCitodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5
ZG93bi1kYXRhYmFzZS5odG1sIFsgU2tpcCBdCitodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwg
WyBTa2lwIF0KIG1lZGlhL2F1ZGlvLXBsYXliYWNrLXZvbHVtZS1jaGFuZ2VzLXdpdGgtcmVzdHJp
Y3Rpb25zLWFuZC11c2VyLWdlc3R1cmVzLmh0bWwgWyBTa2lwIF0KIG1lZGlhL2F1ZGlvLXBsYXli
YWNrLXZvbHVtZS1jaGFuZ2VzLXdpdGgtcmVzdHJpY3Rpb25zLmh0bWwgWyBTa2lwIF0KIG1lZGlh
L3BpY3R1cmUtaW4tcGljdHVyZS1pbnRlcnJ1cHRpb24uaHRtbCBbIFNraXAgXQpAQCAtMjc3OSw2
ICsyNzgxLDkgQEAgZmFzdC9jYW52YXMvd2ViZ2wvcmVhZFBpeGVscy1mbG9hdC5odG1sIFsgU2tp
cCBdCiB3ZWJraXQub3JnL2IvMTc0MTIwIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUuaHRtbCBbIFNraXAg
XQogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25s
eS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS5odG1sIFsgU2tpcCBd
CiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1yZXBv
cnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC5odG1sIFsgU2tpcCBdCit3ZWJraXQub3Jn
L2IvMTc0MTIwIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0
aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UuaHRtbCBbIFNraXAgXQoraHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBv
cnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS5odG1sIFsgU2tp
cCBdCitodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1y
ZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFzZS5odG1sIFsgU2tpcCBd
CiAjIFNraXBwZWQgaW4gV0syIGV4cGVjdGF0aW9ucyBiZWNhdXNlIGNvb2tpZSBwYXJ0aXRpb25p
bmcgaXMgb25seSBhdmFpbGFibGUgaW4gbWFjT1MgSGlnaCBTaWVycmEgYW5kIGlPUyAxMS4KIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24uaHRtbCBbIFBh
c3MgXQogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQt
d2l0aG91dC11c2VyLWludGVyYWN0aW9uLmh0bWwgWyBQYXNzIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379274</attachid>
            <date>2019-09-20 15:05:53 -0700</date>
            <delta_ts>2019-09-24 13:43:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195420-20190920150552.patch</filename>
            <type>text/plain</type>
            <size>381558</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5ODM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTlmYTg2ZjUzZTBmODYz
NjY1MDNmNTgxMDc5YjhlNDU5NDA5MjdiYS4uNjJjODlkZDg4OGNmY2NkMmU3NzQ0YmM2OTg4NDUy
NjcxNGQ4MTI3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDE5LTA5LTIwICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBM
YXlvdXRUZXN0cyB1c2luZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFNRTGl0ZSBiYWNrZW5kICgx
OTU0MjApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTU0MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjEzNTUxPiAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tp
bmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1m
b3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRo
LWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAg
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29v
a2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2Ut
ZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVl
cnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlm
ZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50
LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0
aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1l
LW9yaWdpbnMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVz
b3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2
YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdp
bnMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRp
cmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJy
ZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMt
dG8tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJl
Y3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZy
YW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJh
c2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12
ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1t
ZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAg
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVy
c2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9uLWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29r
aWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlw
dC1hY2Nlc3NpYmxlLWNvb2tpZXMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdh
dGlvbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxl
LXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVj
dC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50
LXdpdGhvdXQtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmln
YXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmFi
bGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJhc2UuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQt
cmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291
cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAg
ICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJj
ZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0
LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVk
LW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxo
b3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFt
ZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRh
dGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZh
bGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1k
YXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwK
KyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxl
bnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3Vy
Y2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJj
ZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAg
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BydW5lLXN0YXRpc3RpY3MtZGF0YWJh
c2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0
YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAg
ICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZy
YW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRv
LWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbAorICAg
ICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1u
ZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRv
LWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4t
ZGVidWctbW9kZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQt
c3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9y
LXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sCisgICAgICAgICAg
ICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24t
bmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRl
cmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9u
LW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUtZGF0YWJhc2Uu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Vz
ZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwtZGF0YWJh
c2UuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmg6CisgICAg
ICAgIEFkZGVkIFdFQkNPUkVfRVhQT1JUIHByZWZpeCB0byAyIGZ1bmN0aW9ucyBuZWVkZWQgaW4g
dGhlIElUUCBEYXRhYmFzZSAKKyAgICAgICAgdG8gY2xlYXIgb3V0IHRoZSBkYXRhYmFzZS4KKwog
MjAxOS0wOS0xMyAgUnVzc2VsbCBFcHN0ZWluICA8cmVwc3RlaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDk3MDkuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZlZGI3ZmVk
OWRjMTM5ZTYxZGM1MDIxNTgyMWI5ZGNlZGE2NWM0ZDIuLmRiZWM5OGMyZDhjNWIxMzI0NjgwYmFh
ZGMyZjE3YWJmZmE3Zjc4OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTY1IEBACisyMDE5LTA5LTIw
ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEVu
YWJsZSBMYXlvdXRUZXN0cyB1c2luZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFNRTGl0ZSBiYWNr
ZW5kICgxOTU0MjApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTU0MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjEzNTUxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZSk6CisgICAgICAgIEFkZGVkIGF1dG92YWN1dW1p
bmcgdG8gdGhlIGNvbnN0cnVjdG9yIHRvIGF2b2lkIG1hbnVhbGx5IGNhbGxpbmcKKyAgICAgICAg
cnVuVmFjdXVtQ29tbWFuZCgpLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJlU3RhdGVtZW50cyk6CisgICAgICAgIEFkZGVkIDIg
c3RhdGVtZW50cyB0aGF0IHdlcmUgbm90IGJlaW5nIHByZXBhcmVkLgorCisgICAgICAgIChXZWJL
aXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWxhdGlvbnNoaXBFeGlz
dHMgY29uc3QpOgorICAgICAgICBDb3JyZWN0ZWQgaW5jb3JyZWN0IGNhcGl0YWxpemF0aW9uLiBB
ZGRlZCBjaGVjayBmb3IgbnVsbG9wdCBpbiBjYXNlCisgICAgICAgIGRvbWFpbklEIGlzIGZvciBh
IGRvbWFpbiBub3QgaW4gdGhlIGRhdGFiYXNlIHlldC4KKworICAgICAgICAoV2ViS2l0OjpSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZG9tYWluSUQgY29uc3QpOgorICAgICAg
ICBDaGFuZ2VkIHJldHVybiB2YWx1ZSB0byBPcHRpb25hbDx1bnNpZ25lZD4uIFNvbWUgdGVzdHMg
d2VyZSBkaXJlY3RseQorICAgICAgICBjaGVja2luZyBmb3Igc3ViZnJhbWVzIHVuZGVyIHRvcCBm
cmFtZSBkb21haW5zIG9uIGRvbWFpbnMgdGhhdCBoYWQKKyAgICAgICAgbm90IGJlZW4gaW5zZXJ0
ZWQgeWV0LiBOb3csIGRvbWFpbklEKCkgd29uJ3QgY3Jhc2ggYnV0IHdpbGwgcmV0dXJuCisgICAg
ICAgIGEgbnVsbG9wdCB2YWx1ZSB3aGljaCBjYW4gYmUgY2hlY2tlZCB0byBrbm93IHRoYXQgdGhl
IHRlc3RzIGZhaWxlZC4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwcyk6CisgICAgICAgIEFkZGVk
IGEgY2hlY2sgdG8gYXNzdXJlIGRvbWFpbklEIGV4aXN0cyBhbmQgdXBkYXRlZCB0aGUgZG9tYWlu
SUQKKyAgICAgICAgaW50ZXJhY3Rpb25zIHRvIHdvcmsgYXMgT3B0aW9uYWxzLgorCisgICAgICAg
IChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwb3B1bGF0ZUZy
b21NZW1vcnlTdG9yZSk6CisgICAgICAgIE1vdmVkIHRoZSBwcmVwYXJlU3RhdGVtZW50cygpIGNh
bGwgYWZ0ZXIgdGhlIHZhY3V1bSBjb21tYW5kIGluIHRoZSBjYXNlCisgICAgICAgIHdoZXJlIHRo
ZSBkYXRhYmFzZSBpcyBlbXB0eS4gT3RoZXJ3aXNlIGNhbGxlZCBpdCBiZWZvcmUgcmV0dXJuaW5n
LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpyZWN1cnNpdmVseUZpbmROb25QcmV2YWxlbnREb21haW5zVGhhdFJlZGlyZWN0ZWRUb1RoaXNE
b21haW4pOgorICAgICAgICBBZGRlZCBhIHNwYWNlIHRvIHRoZSBTUUwgY29tbWFuZHMgdG8gY29y
cmVjdCB0aGUgc3ludGF4LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpmaW5kTm90VmVyeVByZXZhbGVudFJlc291cmNlcyk6CisgICAgICAg
IENvcnJlY3RlZCBhIGJ1ZyBpbiB0aGUgU1FMIGNvbW1hbmQgZm9yIHF1ZXJ5aW5nCisgICAgICAg
IHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbi4gVGhlIG9sZCBxdWVyeSB3YXMgYXNraW5nIGZv
ciBzdWJyZXNvdXJjZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6cmVjbGFzc2lmeVJlc291cmNlcyk6CisgICAgICAgIFNwZWxsaW5nIGZp
eC4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICBDaGFuZ2VkIHN0cmluZyBjb25jYXRl
bmF0aW9uIHRvIGJpbmRpbmcuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OmdyYW5kZmF0aGVyRGF0YUZvckRvbWFpbnMpOgorICAgICAgICBU
aGUgZ3JhbmRmYXRoZXJpbmcuaHRtbCB0ZXN0IHdhcyBmYWlsaW5nIGJlY2F1c2UgZG9tYWlucyB3
ZXJlIGJlaW5nCisgICAgICAgICJzZXQiIHRvIGdyYW5kZmF0aGVyZWQgaW4gdGhlIGRhdGFiYXNl
IGJlZm9yZSBiZWluZyBpbnNlcnRlZC4gVGhpcyBmaXgKKyAgICAgICAgZW5zdXJlcyBhbGwgZG9t
YWlucyBiZWZvcmUgc2V0dGluZyB0aGUgZ3JhbmRmYXRoZXJpbmcgZmxhZy4KKworICAgICAgICAo
V2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nRnJhbWVOYXZp
Z2F0aW9uKToKKyAgICAgICAgTXVsdGlwbGUgdGVzdHMgd2VyZSBmYWlsaW5nIGJlY2F1c2UgdGhl
IHF1ZXJ5IHRvIGluc2VydCB0aGUgcmVsYXRpb25zaGlwCisgICAgICAgIGZvciB0aGUgc291cmNl
IGRvbWFpbiByZWxpZXMgb24gdGhlIHRhcmdldCBkb21haW4gYmVpbmcgaW4gdGhlCisgICAgICAg
IE9ic2VydmVkRG9tYWlucyB0YWJsZS4gVGhpcyBwYXRjaCBlbnN1cmVzIGFsbCBkb21haW5zIGFy
ZSBhZGRlZCBiZWZvcmUKKyAgICAgICAgcGVyZm9ybWluZyB0aGUgcXVlcnkuCisKKyAgICAgICAg
KFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFVzZXJJbnRl
cmFjdGlvbik6CisgICAgICAgIEFkZGVkIGEgIT0gU1FMSVRFX09LIGNoZWNrIHRvIG1ha2Ugc3Vy
ZSBhbiBlcnJvciBpcyBsb2dnZWQgaWYgdGhlCisgICAgICAgIHN0YXRlbWVudCBmYWlscyB0byBi
aW5kLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpjbGVhclVzZXJJbnRlcmFjdGlvbik6CisgICAgICAgIENoYW5nZWQgc3RyaW5nIGNvbmNh
dGVuYXRpb24gdG8gYmluZGluZy4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVXNlckludGVyYWN0aW9uKTogICAKKyAgICAgICAg
VGhlIFNRTCBzdGF0ZW1lbnQgd2FzIGJlaW5nIGJvdW5kIHRvIGEgdmFsdWUgYW5kIG5vdCBiZWlu
ZyByZXNldC4gVGhpcworICAgICAgICBwYXRjaCByZXNldHMgdGhlIHN0YXRlbWVudCBhZnRlciBi
aW5kaW5nLiBBZGRpdGlvbmFsbHksIHRoZSBzdGVwKCkKKyAgICAgICAgZnVuY3Rpb24gd2FzIGJl
aW5nIGNvbXBhcmVkIHRvIFNRTElURV9ET05FIGluc3RlYWQgb2YgU1FMSVRFX1JPVywKKyAgICAg
ICAgY2F1c2luZyBhbiBlcnJvciBpZiB0aGUgcXVlcnkgcmV0dXJuZWQgcmVzdWx0cy4gVGhlCisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpIHdhcyBjYXVzaW5nIG51bGwgc2VhcmNoZXMgdG8g
Y3Jhc2ggaW5zdGVhZCBvZgorICAgICAgICByZXR1cm5pbmcgZmFsc2UgKGkuZS4gaWYgYSBkb21h
aW4gaXMgbm90IGluIHRoZSBkYXRhYmFzZSBpdCBzaG91bGQKKyAgICAgICAgcmV0dXJuIHRoYXQg
aXQgaGFzIG5vIHVzZXIgaW50ZXJhY3Rpb24gaW5zdGVhZCBvZiBjcmFzaGluZykuCisKKyAgICAg
ICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFByZXZh
bGVudFJlc291cmNlKTogCisgICAgICAgIFVwZGF0ZWQgZG9tYWluSUQgY2FsbCB0byBhY3QgYXMg
YW4gT3B0aW9uYWwuIAorICAgICAgICAKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZWRpY2F0ZVZhbHVlRm9yRG9tYWluIGNvbnN0KToKKyAg
ICAgICAgVGhlIFNRTCBzdGF0ZW1lbnQgd2FzIGJlaW5nIGJvdW5kIHRvIGEgdmFsdWUgYW5kIG5v
dCBiZWluZyByZXNldC4gVGhpcworICAgICAgICBwYXRjaCByZXNldHMgdGhlIHN0YXRlbWVudCBh
ZnRlciBiaW5kaW5nLiBTUUxJVEVfRE9ORSBjaGFuZ2VkIHRvCisgICAgICAgIFNRTElURV9ST1cg
dG8gcmV0dXJuIG5vbi1lbXB0eSBxdWVyeSByZXN1bHRzLiBBU1NFUlRfTk9UX1JFQUNIRUQoKQor
ICAgICAgICByZW1vdmVkIGZvciB0aGUgc2FtZSByZWFzb25zIGFzIGFib3ZlLiAKKworICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZW5zdXJlUmVz
b3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4pOgorICAgICAgICBGaXhlZCB0aGUg
cmVsZWFzZSBsb2cgc3RhdGVtZW50IHdoaWNoIHdhcyBsb2dnaW5nIHRoZSB3cm9uZyBmdW5jdGlv
biAKKyAgICAgICAgbmFtZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJEYXRhYmFzZUNvbnRlbnRzKTogCisgICAgICAgIENsZWFy
cyB0aGUgZGF0YWJhc2UgYW5kIHJlYnVpbGRzIHRoZSB0YWJsZXMgb24gYSBjbGVhciBjb21tYW5k
IHRvCisgICAgICAgIG1hdGNoIHRoZSBmdW5jdGlvbmFsaXR5IGluIHRoZSBNZW1vcnkgU3RvcmUu
CisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmNsZWFyKTogICAgICAgICAgICAgICAgICAgCisgICAgICAgIENhbGwgdGhlIGNsZWFyRGF0YWJh
c2VDb250ZW50cyBmdW5jdGlvbiB0byBtYXRjaCB0aGUgZnVuY3Rpb25hbGl0eSAKKyAgICAgICAg
aW4gdGhlIE1lbW9yeSBTdG9yZS4gCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc1VzZXJHcmFudGVkU3RvcmFnZUFjY2Vzc1Rocm91Z2hQ
cm9tcHQgY29uc3QpOgorICAgICAgICBVcGRhdGVkIGRvbWFpbklEIGNhbGwgdG8gYWN0IGFzIGFu
IE9wdGlvbmFsLiAKKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6aGFzSGFkVW5leHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9uKToKKyAgICAg
ICAgVGVzdHMgd2VyZSBmYWlsaW5nIGJlY2F1c2Ugc2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFG
b3IoKSB3YXMgbm90IAorICAgICAgICBjaGVja2luZyBmb3IgZXhwaXJlZCB1c2VyIGludGVyYWN0
aW9uLiBNYXRjaGVkIGZ1bmN0aW9uYWxpdHkgaW4gdGhlCisgICAgICAgIE1lbW9yeSBTdG9yZS4K
KworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
c2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3IpOgorICAgICAgICBUZXN0cyB3ZXJlIGZhaWxp
bmcgYmVjYXVzZSBzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvcigpIHdhcyBub3QgCisgICAg
ICAgIGNoZWNraW5nIGZvciBleHBpcmVkIHVzZXIgaW50ZXJhY3Rpb24uIE1hdGNoZWQgZnVuY3Rp
b25hbGl0eSBpbiB0aGUKKyAgICAgICAgTWVtb3J5IFN0b3JlLiAKKworICAgICAgICAoV2ViS2l0
OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVnaXN0cmFibGVEb21haW5z
VG9SZW1vdmVXZWJzaXRlRGF0YUZvcik6CisgICAgICAgIFNwZWxsaW5nIGZpeC4gCisKKyAgICAg
ICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBydW5lU3Rh
dGlzdGljc0lmTmVlZGVkKTogCisgICAgICAgIExhc3Qgc2VlbiBzaG91bGQgYmUgc29ydGVkIGlu
IGFzY2VuZGluZyBvcmRlciBiZWNhdXNlIHlvdSB3YW50IHRvIAorICAgICAgICBwcnVuZSB0aGUg
b2xkZXIgc3RhdGlzdGljcyBmaXJzdCwgd2hpY2ggd2lsbCBoYXZlIGEgbG93ZXIgbGFzdFNlZW4K
KyAgICAgICAgZmllbGQgKHNlY29uZHNTaW5jZUVwb2NoKCkgd2lsbCBiZSBsb3dlciBmb3Igb2xk
ZXIgdmFsdWVzKS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6c2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3IgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICBEZWxldGVkIGNvbnN0IHNwZWNpZmllciBiZWNhdXNlIHRoZSBmdW5jdGlvbiBu
ZWVkcyB0byBjbGVhciB0aGUKKyAgICAgICAgZGF0YWJhc2UuIAorCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5o
OiAgICAgIAorICAgICAgICBEZWNsYXJlZCBuZXcgZnVuY3Rpb25zLiBVcGRhdGVkIHNwZWxsaW5n
IGVycm9yIChyZWdpc3RlcmFibGUgLS0+IAorICAgICAgICByZWdpc3RyYWJsZSkuIAorCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuY3BwOiAKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUpOgorICAgICAgICBJVFAgZGF0YWJh
c2UgZmxhZyBub3cgaXMgc3RvcmVkIGluIHRoZSBOZXR3b3JrUHJvY2Vzcy4KKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6IAorCisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOiAKKyAgICAgICAgU2V0IHRo
ZSBJVFAgZGF0YWJhc2UgZmxhZyB3aGljaCBpcyBub3cgc3RvcmVkIGluIHRoZSBOZXR3b3JrIFBy
b2Nlc3MuIAorCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphZGRXZWJzaXRlRGF0
YVN0b3JlKToKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5IHdh
cyBub3QgZ2V0dGluZyBjYWxsZWQgb24gdGhlIAorICAgICAgICBXZWJLaXRUZXN0UnVubmVyIHJl
c291cmNlTG9hZFN0YXRpc3RpY3MgcGF0aC4gVGhpcyB3YXMgcHJldmVudGluZworICAgICAgICB0
aGUgZGF0YWJhc2UgZmlsZSBmcm9tIG9wZW5pbmcuIAorCisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjpzZXRVc2VJVFBEYXRhYmFzZSk6IAorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppc0lU
UERhdGFiYXNlRW5hYmxlZCBjb25zdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgIFBhc3NlZCB0aGUgc2V0VXNlSVRQRGF0YWJh
c2UgZmxhZyB0byB0aGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gCisgICAgICAgIG9mIHRoZSBz
dGF0aXN0aWNzIHN0b3JlIHRvIGVuYWJsZSB0aGUgZGF0YWJhc2UgYmFja2VuZC4KKworICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Nlc3Npb246OnJlY3JlYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljU3RvcmUpOgorICAg
ICAgICBEZXN0cm95IG9sZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgYW5kIGNyZWF0
ZSBhIG5ldyBvbmUgdXNpbmcKKyAgICAgICAgdGhlIElUUCBkYXRhYmFzZS4KKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHA6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3Rv
cmVTZXRVc2VJVFBEYXRhYmFzZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0
ZURhdGFTdG9yZVJlZi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRV
c2VJVFBEYXRhYmFzZSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0VXNlSVRQRGF0
YWJhc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
Lmg6CisgICAgICAgIFBhc3NlZCB0aGUgc2V0VXNlSVRQRGF0YWJhc2UgZmxhZyB0byB0aGUgaW5p
dGlhbGl6YXRpb24gZnVuY3Rpb24KKyAgICAgICAgb2YgdGhlIHN0YXRpc3RpY3Mgc3RvcmUgdG8g
ZW5hYmxlIHRoZSBkYXRhYmFzZSBiYWNrZW5kLiAKKwogMjAxOS0wOS0xMyAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEF1eGlsaWFyeVByb2Nl
c3NQcm94eTo6c2VuZFdpdGhBc3luY1JlcGx5IHNob3VsZCBxdWV1ZSB1cCBtZXNzYWdlcyBpZiBz
ZW50IHdoaWxlIHRoZSBwcm9jZXNzIGlzIHN0YXJ0aW5nIGxpa2UgaXQgZG9lcyBtZXNzYWdlcyB3
aXRob3V0IHJlcGxpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9T
UUxpdGVEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFi
YXNlLmgKaW5kZXggMTQ5ODY2ZmJjMTE5N2JhMDlkYTIxNTc1ZjFjZWFmYWQ2NDE5ZmU2Yi4uNTIy
NGYxZTc3N2M1NmJlZmIzZDY2ZjhlMDU4OGFkMDA4YTIwNDI0ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGlj
OgogICAgIGJvb2wgcmV0dXJuc0F0TGVhc3RPbmVSZXN1bHQoY29uc3QgU3RyaW5nJik7CiAgICAg
CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCB0YWJsZUV4aXN0cyhjb25zdCBTdHJpbmcmKTsKLSAg
ICB2b2lkIGNsZWFyQWxsVGFibGVzKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhckFs
bFRhYmxlcygpOwogICAgIFdFQkNPUkVfRVhQT1JUIGludCBydW5WYWN1dW1Db21tYW5kKCk7CiAg
ICAgaW50IHJ1bkluY3JlbWVudGFsVmFjdXVtQ29tbWFuZCgpOwogICAgIApAQCAtMTI1LDcgKzEy
NSw3IEBAIHB1YmxpYzoKICAgICAvLyAgICAgICAgICAgICAgIGZpbGUsIGJ1dCByZW1vdmVzIHRo
ZSBlbXB0eSBwYWdlcyBvbmx5IHdoZW4gUFJBR01BIElOQ1JFTUFOVEFMX1ZBQ1VVTQogICAgIC8v
ICAgICAgICAgICAgICAgaXMgY2FsbGVkLgogICAgIGVudW0gQXV0b1ZhY3V1bVByYWdtYSB7IEF1
dG9WYWN1dW1Ob25lID0gMCwgQXV0b1ZhY3V1bUZ1bGwgPSAxLCBBdXRvVmFjdXVtSW5jcmVtZW50
YWwgPSAyIH07Ci0gICAgYm9vbCB0dXJuT25JbmNyZW1lbnRhbEF1dG9WYWN1dW0oKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBib29sIHR1cm5PbkluY3JlbWVudGFsQXV0b1ZhY3V1bSgpOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb2xsYXRpb25GdW5jdGlvbihjb25zdCBTdHJpbmcmIGNv
bGxhdGlvbk5hbWUsIFdURjo6RnVuY3Rpb248aW50KGludCwgY29uc3Qgdm9pZCosIGludCwgY29u
c3Qgdm9pZCopPiYmKTsKICAgICB2b2lkIHJlbW92ZUNvbGxhdGlvbkZ1bmN0aW9uKGNvbnN0IFN0
cmluZyYgY29sbGF0aW9uTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAppbmRleCBkNGVjODRjN2M3ZDJlMTViNGU3OGMwMjli
YTE2ZjIyNjY3ZGMyMzY2Li44MzEzNGUxYzNlZjZjYjZhZTVjNmZlYjRiNzQ1ZGNmYTA4YWY1MGYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZS5jcHAKQEAgLTIxMiw2ICsyMTIsOSBAQCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUoV2ViUmVzbwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQorICAgIAorICAgIGlmICghbV9kYXRh
YmFzZS50dXJuT25JbmNyZW1lbnRhbEF1dG9WYWN1dW0oKSkKKyAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OnR1cm5PbkluY3JlbWVudGFsQXV0b1ZhY3V1bSBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVi
bGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKIAogICAgIGlmICghcHJl
cGFyZVN0YXRlbWVudHMoKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAi
JXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVu
dHMgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zLCBkYXRhYmFzZSBwYXRoOiAle3B1
YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSwgbV9zdG9yYWdlRGlyZWN0
b3J5UGF0aC51dGY4KCkuZGF0YSgpKTsKQEAgLTMyOCw3ICszMzEsOCBAQCBib29sIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJlU3RhdGVtZW50cygpCiAgICAgICAg
IHx8IG1fdXBkYXRlR3JhbmRmYXRoZXJlZFN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09L
CiAgICAgICAgIHx8IG1faXNHcmFuZGZhdGhlcmVkU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJ
VEVfT0sKICAgICAgICAgfHwgbV9maW5kRXhwaXJlZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5w
cmVwYXJlKCkgIT0gU1FMSVRFX09LCi0gICAgICAgICkgeworICAgICAgICB8fCBtX3RvcEZyYW1l
TGlua0RlY29yYXRpb25zRnJvbS5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IG1f
dG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tRXhpc3RzLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sp
IHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZXBhcmVTdGF0ZW1lbnRzIGZhaWxlZCB0byBwcmVw
YXJlLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CkBAIC0zNzIsMTEgKzM3NiwxNCBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjppbnNlcnRPYnNlcnZlZERvbWFpbihjb25zdCBSZXNvdXJjZUxvYQogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpyZWxhdGlvbnNoaXBFeGlzdHMoV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50JiBzdGF0ZW1l
bnQsIHVuc2lnbmVkIGZpcnN0RG9tYWluSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzZWNv
bmREb21haW4pIGNvbnN0Citib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpyZWxhdGlvbnNoaXBFeGlzdHMoV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50JiBzdGF0ZW1lbnQs
IE9wdGlvbmFsPHVuc2lnbmVkPiBmaXJzdERvbWFpbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgc2Vjb25kRG9tYWluKSBjb25zdAogeworICAgIGlmICghZmlyc3REb21haW5JRCkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIAogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwog
Ci0gICAgaWYgKHN0YXRlbWVudC5iaW5kSW50KDEsIGZpcnN0RG9tYWluSUQpICE9IFNRTElURV9P
SworICAgIGlmIChzdGF0ZW1lbnQuYmluZEludCgxLCAqZmlyc3REb21haW5JRCkgIT0gU1FMSVRF
X09LCiAgICAgICAgIHx8IHN0YXRlbWVudC5iaW5kVGV4dCgyLCBzZWNvbmREb21haW4uc3RyaW5n
KCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9S
T1cpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1faW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwU3Rh
dGVtZW50IGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CkBAIC0zODQsMTIgKzM5MSwxMiBAQCBib29sIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWxhdGlvbnNoaXBFeGlzdHMoV2Vi
Q29yZTo6U1FMaXRlU3RhdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIAotICAg
IGJvb2wgcmVsYXRpb25TaGlwRXhpc3RzID0gISFzdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDApOwor
ICAgIGJvb2wgcmVsYXRpb25zaGlwRXhpc3RzID0gISFzdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDAp
OwogCiAgICAgaW50IHJlc2V0UmVzdWx0ID0gc3RhdGVtZW50LnJlc2V0KCk7CiAgICAgQVNTRVJU
X1VOVVNFRChyZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQgPT0gU1FMSVRFX09LKTsKICAgICAKLSAg
ICByZXR1cm4gcmVsYXRpb25TaGlwRXhpc3RzOworICAgIHJldHVybiByZWxhdGlvbnNoaXBFeGlz
dHM7CiB9CiAKIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2Vy
dERvbWFpblJlbGF0aW9uc2hpcChXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQmIHN0YXRlbWVudCwg
dW5zaWduZWQgZG9tYWluSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZSkKQEAg
LTQzNCwxNyArNDQxLDIxIEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OmNvbmZpcm1Eb21haW5Eb2VzTm90RXhpc3QoY29uc3QgUmVnaXN0CiB9CiAjZW5kaWYKIAot
dW5zaWduZWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmRvbWFpbklEKGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4pIGNvbnN0CitPcHRpb25hbDx1bnNpZ25lZD4g
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmRvbWFpbklEKGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiBkb21haW4pIGNvbnN0CiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01h
aW4oKSk7CiAKICAgICB1bnNpZ25lZCBkb21haW5JRCA9IDA7CiAKLSAgICBpZiAobV9kb21haW5J
REZyb21TdHJpbmdTdGF0ZW1lbnQuYmluZFRleHQoMSwgZG9tYWluLnN0cmluZygpKSAhPSBTUUxJ
VEVfT0sKLSAgICAgICAgfHwgbV9kb21haW5JREZyb21TdHJpbmdTdGF0ZW1lbnQuc3RlcCgpICE9
IFNRTElURV9ST1cpIHsKKyAgICBpZiAobV9kb21haW5JREZyb21TdHJpbmdTdGF0ZW1lbnQuYmlu
ZFRleHQoMSwgZG9tYWluLnN0cmluZygpKSAhPSBTUUxJVEVfT0spIHsKICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OmRvbWFpbklERnJvbVN0cmluZyBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGlj
fXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKLSAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBkb21haW5JRDsKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKyAgICB9CisgICAgCisgICAgaWYgKG1fZG9tYWluSURGcm9tU3RyaW5nU3Rh
dGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfUk9XKSB7CisgICAgICAgIGludCByZXNldFJlc3VsdCA9
IG1fZG9tYWluSURGcm9tU3RyaW5nU3RhdGVtZW50LnJlc2V0KCk7CisgICAgICAgIEFTU0VSVF9V
TlVTRUQocmVzZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNRTElURV9PSyk7CisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgZG9tYWluSUQgPSBtX2RvbWFpbklERnJv
bVN0cmluZ1N0YXRlbWVudC5nZXRDb2x1bW5JbnQoMCk7CkBAIC00NTgsMjggKzQ2OSwzMSBAQCB1
bnNpZ25lZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZG9tYWluSUQoY29u
c3QgUmVnaXN0cmFibGVEb21haW4mCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjppbnNlcnREb21haW5SZWxhdGlvbnNoaXBzKGNvbnN0IFJlc291cmNlTG9hZFN0YXRp
c3RpY3MmIGxvYWRTdGF0aXN0aWNzKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkp
OwotCiAgICAgYXV0byByZWdpc3RyYWJsZURvbWFpbklEID0gZG9tYWluSUQobG9hZFN0YXRpc3Rp
Y3MucmVnaXN0cmFibGVEb21haW4pOworICAgIAorICAgIGlmICghcmVnaXN0cmFibGVEb21haW5J
RCkKKyAgICAgICAgcmV0dXJuOworICAgIAogICAgIGZvciAoYXV0byYgdG9wRnJhbWVEb21haW4g
OiBsb2FkU3RhdGlzdGljcy5zdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMpCi0gICAg
ICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1l
RG9tYWluc1N0YXRlbWVudCwgcmVnaXN0cmFibGVEb21haW5JRCwgdG9wRnJhbWVEb21haW4pOwor
ICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdG9yYWdlQWNjZXNzVW5kZXJUb3BG
cmFtZURvbWFpbnNTdGF0ZW1lbnQsIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgdG9wRnJh
bWVEb21haW4pOwogCiAgICAgZm9yIChhdXRvJiB0b0RvbWFpbiA6IGxvYWRTdGF0aXN0aWNzLnRv
cEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8pCi0gICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hp
cChtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8sIHJlZ2lzdHJhYmxlRG9tYWluSUQsIHRvRG9t
YWluKTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fdG9wRnJhbWVVbmlxdWVS
ZWRpcmVjdHNUbywgcmVnaXN0cmFibGVEb21haW5JRC52YWx1ZSgpLCB0b0RvbWFpbik7CiAgICAg
CiAgICAgZm9yIChhdXRvJiBmcm9tRG9tYWluIDogbG9hZFN0YXRpc3RpY3MudG9wRnJhbWVVbmlx
dWVSZWRpcmVjdHNGcm9tKQotICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV90b3BG
cmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHJlZ2lzdHJhYmxlRG9tYWluSUQsIGZyb21Eb21haW4p
OworICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV90b3BGcmFtZVVuaXF1ZVJlZGly
ZWN0c0Zyb20sIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgZnJvbURvbWFpbik7CiAgICAg
CiAgICAgZm9yIChhdXRvJiB0b3BGcmFtZURvbWFpbiA6IGxvYWRTdGF0aXN0aWNzLnN1YmZyYW1l
VW5kZXJUb3BGcmFtZURvbWFpbnMpCi0gICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcCht
X3N1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMsIHJlZ2lzdHJhYmxlRG9tYWluSUQsIHRvcEZy
YW1lRG9tYWluKTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fc3ViZnJhbWVV
bmRlclRvcEZyYW1lRG9tYWlucywgcmVnaXN0cmFibGVEb21haW5JRC52YWx1ZSgpLCB0b3BGcmFt
ZURvbWFpbik7CiAgICAgCiAgICAgZm9yIChhdXRvJiB0b3BGcmFtZURvbWFpbiA6IGxvYWRTdGF0
aXN0aWNzLnN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMpCi0gICAgICAgIGluc2VydERv
bWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMsIHJlZ2lz
dHJhYmxlRG9tYWluSUQsIHRvcEZyYW1lRG9tYWluKTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVs
YXRpb25zaGlwKG1fc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlucywgcmVnaXN0cmFibGVE
b21haW5JRC52YWx1ZSgpLCB0b3BGcmFtZURvbWFpbik7CiAgICAgCiAgICAgZm9yIChhdXRvJiB0
b0RvbWFpbiA6IGxvYWRTdGF0aXN0aWNzLnN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8pCi0g
ICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJl
Y3RzVG8sIHJlZ2lzdHJhYmxlRG9tYWluSUQsIHRvRG9tYWluKTsKKyAgICAgICAgaW5zZXJ0RG9t
YWluUmVsYXRpb25zaGlwKG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbywgcmVnaXN0cmFi
bGVEb21haW5JRC52YWx1ZSgpLCB0b0RvbWFpbik7CiAgICAgCiAgICAgZm9yIChhdXRvJiBmcm9t
RG9tYWluIDogbG9hZFN0YXRpc3RpY3Muc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tKQot
ICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGly
ZWN0c0Zyb20sIHJlZ2lzdHJhYmxlRG9tYWluSUQsIGZyb21Eb21haW4pOworICAgICAgICBpbnNl
cnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHJl
Z2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgZnJvbURvbWFpbik7CiB9CiAKIHZvaWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBvcHVsYXRlRnJvbU1lbW9yeVN0b3JlKGNv
bnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZSYgbWVtb3J5U3RvcmUpCkBAIC00
OTcsOCArNTExLDYgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
cG9wdWxhdGVGcm9tTWVtb3J5U3RvcmUoY29uc3QgUmVzb3VyY2UKICAgICAvLyBjYW4gcmVmZXIg
dG8gdGhlIE9ic2VydmVkRG9tYWluIHRhYmxlIGVudHJpZXMKICAgICBmb3IgKGF1dG8mIHN0YXRp
c3RpYyA6IHN0YXRpc3RpY3NNYXApCiAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcHMo
c3RhdGlzdGljLnZhbHVlKTsKLQotICAgIG1fZGF0YWJhc2UucnVuVmFjdXVtQ29tbWFuZCgpOwog
fQogCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjYWxjdWxhdGVB
bmRTdWJtaXRUZWxlbWV0cnkoKSBjb25zdApAQCAtNTQ2LDI0ICs1NTgsMzQgQEAgdW5zaWduZWQg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlY3Vyc2l2ZWx5RmluZE5vblBy
ZXZhbGVudERvbWFpbnMKICAgICArK251bWJlck9mUmVjdXJzaXZlQ2FsbHM7CiAKICAgICBTdGRT
ZXQ8dW5zaWduZWQ+IG5ld2x5SWRlbnRpZmllZERvbWFpbnM7Ci0gICAgU1FMaXRlU3RhdGVtZW50
IGZpbmRTdWJyZXNvdXJjZXMobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIFN1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQgZnJvbSBTdWJyZXNvdXJjZVVuaXF1
ZVJlZGlyZWN0c0Zyb20gSU5ORVIgSk9JTiBPYnNlcnZlZERvbWFpbnMgT04gT2JzZXJ2ZWREb21h
aW5zLmRvbWFpbklEID0gU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5J
RCBXSEVSRSBzdWJyZXNvdXJjZURvbWFpbklEID0gIiwgU3RyaW5nOjpudW1iZXIocHJpbWFyeURv
bWFpbklEKSwgIkFORCBPYnNlcnZlZERvbWFpbnMuaXNQcmV2YWxlbnQgPSAwIikpOwotICAgIGlm
IChmaW5kU3VicmVzb3VyY2VzLnByZXBhcmUoKSA9PSBTUUxJVEVfT0spIHsKLSAgICAgICAgd2hp
bGUgKGZpbmRTdWJyZXNvdXJjZXMuc3RlcCgpID09IFNRTElURV9ST1cpIHsKLSAgICAgICAgICAg
IGF1dG8gbmV3RG9tYWluSUQgPSBmaW5kU3VicmVzb3VyY2VzLmdldENvbHVtbkludCgwKTsKLSAg
ICAgICAgICAgIGF1dG8gaW5zZXJ0UmVzdWx0ID0gbm9uUHJldmFsZW50UmVkaXJlY3Rpb25Tb3Vy
Y2VzLmluc2VydChuZXdEb21haW5JRCk7Ci0gICAgICAgICAgICBpZiAoaW5zZXJ0UmVzdWx0LnNl
Y29uZCkKLSAgICAgICAgICAgICAgICBuZXdseUlkZW50aWZpZWREb21haW5zLmluc2VydChuZXdE
b21haW5JRCk7Ci0gICAgICAgIH0KKyAgICBTUUxpdGVTdGF0ZW1lbnQgZmluZFN1YnJlc291cmNl
cyhtX2RhdGFiYXNlLCAiU0VMRUNUIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9t
RG9tYWluSUQgZnJvbSBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20gSU5ORVIgSk9JTiBP
YnNlcnZlZERvbWFpbnMgT04gT2JzZXJ2ZWREb21haW5zLmRvbWFpbklEID0gU3VicmVzb3VyY2VV
bmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5JRCBXSEVSRSBzdWJyZXNvdXJjZURvbWFpbklE
ID0gPyBBTkQgT2JzZXJ2ZWREb21haW5zLmlzUHJldmFsZW50ID0gMCJfcyk7CisgICAgaWYgKGZp
bmRTdWJyZXNvdXJjZXMucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICB8fCBmaW5kU3Vi
cmVzb3VyY2VzLmJpbmRJbnQoMSwgcHJpbWFyeURvbWFpbklEKSAhPSBTUUxJVEVfT0spIHsKKyAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OnJlY3Vyc2l2ZWx5RmluZE5vblByZXZhbGVudERvbWFpbnNUaGF0
UmVkaXJlY3RlZFRvVGhpc0RvbWFpbiBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMi
LCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAKKyAgICB3aGlsZSAoZmlu
ZFN1YnJlc291cmNlcy5zdGVwKCkgPT0gU1FMSVRFX1JPVykgeworICAgICAgICBpbnQgbmV3RG9t
YWluSUQgPSBmaW5kU3VicmVzb3VyY2VzLmdldENvbHVtbkludCgwKTsKKyAgICAgICAgYXV0byBp
bnNlcnRSZXN1bHQgPSBub25QcmV2YWxlbnRSZWRpcmVjdGlvblNvdXJjZXMuaW5zZXJ0KG5ld0Rv
bWFpbklEKTsKKyAgICAgICAgaWYgKGluc2VydFJlc3VsdC5zZWNvbmQpCisgICAgICAgICAgICBu
ZXdseUlkZW50aWZpZWREb21haW5zLmluc2VydChuZXdEb21haW5JRCk7CiAgICAgfQogCi0gICAg
U1FMaXRlU3RhdGVtZW50IGZpbmRUb3BGcmFtZXMobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VM
RUNUIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQgZnJvbSBUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0c0Zyb20gSU5ORVIgSk9JTiBPYnNlcnZlZERvbWFpbnMgT04gT2JzZXJ2
ZWREb21haW5zLmRvbWFpbklEID0gVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21h
aW5JRCBXSEVSRSB0YXJnZXREb21haW5JRCA9ICIsIFN0cmluZzo6bnVtYmVyKHByaW1hcnlEb21h
aW5JRCksICJBTkQgT2JzZXJ2ZWREb21haW5zLmlzUHJldmFsZW50ID0gMCIpKTsKLSAgICBpZiAo
ZmluZFRvcEZyYW1lcy5wcmVwYXJlKCkgPT0gU1FMSVRFX09LKSB7Ci0gICAgICAgIHdoaWxlIChm
aW5kVG9wRnJhbWVzLnN0ZXAoKSA9PSBTUUxJVEVfUk9XKSB7Ci0gICAgICAgICAgICBhdXRvIG5l
d0RvbWFpbklEID0gZmluZFRvcEZyYW1lcy5nZXRDb2x1bW5JbnQoMCk7Ci0gICAgICAgICAgICBh
dXRvIGluc2VydFJlc3VsdCA9IG5vblByZXZhbGVudFJlZGlyZWN0aW9uU291cmNlcy5pbnNlcnQo
bmV3RG9tYWluSUQpOwotICAgICAgICAgICAgaWYgKGluc2VydFJlc3VsdC5zZWNvbmQpCi0gICAg
ICAgICAgICAgICAgbmV3bHlJZGVudGlmaWVkRG9tYWlucy5pbnNlcnQobmV3RG9tYWluSUQpOwot
ICAgICAgICB9CisgICAgU1FMaXRlU3RhdGVtZW50IGZpbmRUb3BGcmFtZXMobV9kYXRhYmFzZSwg
IlNFTEVDVCBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20uZnJvbURvbWFpbklEIGZyb20gVG9w
RnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tIElOTkVSIEpPSU4gT2JzZXJ2ZWREb21haW5zIE9OIE9i
c2VydmVkRG9tYWlucy5kb21haW5JRCA9IFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9t
RG9tYWluSUQgV0hFUkUgdGFyZ2V0RG9tYWluSUQgPSA/IEFORCBPYnNlcnZlZERvbWFpbnMuaXNQ
cmV2YWxlbnQgPSAwIl9zKTsKKyAgICBpZiAoZmluZFRvcEZyYW1lcy5wcmVwYXJlKCkgIT0gU1FM
SVRFX09LCisgICAgICAgIHx8IGZpbmRUb3BGcmFtZXMuYmluZEludCgxLCBwcmltYXJ5RG9tYWlu
SUQpICE9IFNRTElURV9PSykgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAi
JXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVjdXJzaXZlbHlGaW5k
Tm9uUHJldmFsZW50RG9tYWluc1RoYXRSZWRpcmVjdGVkVG9UaGlzRG9tYWluIGZhaWxlZCwgZXJy
b3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkp
OworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
fQorICAgIAorICAgIHdoaWxlIChmaW5kVG9wRnJhbWVzLnN0ZXAoKSA9PSBTUUxJVEVfUk9XKSB7
CisgICAgICAgIGludCBuZXdEb21haW5JRCA9IGZpbmRUb3BGcmFtZXMuZ2V0Q29sdW1uSW50KDAp
OworICAgICAgICBhdXRvIGluc2VydFJlc3VsdCA9IG5vblByZXZhbGVudFJlZGlyZWN0aW9uU291
cmNlcy5pbnNlcnQobmV3RG9tYWluSUQpOworICAgICAgICBpZiAoaW5zZXJ0UmVzdWx0LnNlY29u
ZCkKKyAgICAgICAgICAgIG5ld2x5SWRlbnRpZmllZERvbWFpbnMuaW5zZXJ0KG5ld0RvbWFpbklE
KTsKICAgICB9CiAKICAgICBpZiAobmV3bHlJZGVudGlmaWVkRG9tYWlucy5lbXB0eSgpKQpAQCAt
NjU3LDcgKzY3OSw3IEBAIEhhc2hNYXA8dW5zaWduZWQsIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpOb3RWZXJ5UHJldmFsZW50UmVzb3VyY2VzCiAgICAgICAgIH0KICAgICB9
CiAKLSAgICBTUUxpdGVTdGF0ZW1lbnQgc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluc0NvdW50
U3RhdGVtZW50KG1fZGF0YWJhc2UsIG1ha2VTdHJpbmcoIlNFTEVDVCBzdWJyZXNvdXJjZURvbWFp
bklELCBDT1VOVCh0b3BGcmFtZURvbWFpbklEKSBGUk9NIFN1YnJlc291cmNlVW5kZXJUb3BGcmFt
ZURvbWFpbnMgV0hFUkUgc3VicmVzb3VyY2VEb21haW5JRCBJTiAoIiwgZG9tYWluSURzT2ZJbnRl
cmVzdCwgIikgR1JPVVAgQlkgc3VicmVzb3VyY2VEb21haW5JRCIpKTsKKyAgICBTUUxpdGVTdGF0
ZW1lbnQgc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluc0NvdW50U3RhdGVtZW50KG1fZGF0YWJh
c2UsIG1ha2VTdHJpbmcoIlNFTEVDVCBzdWJmcmFtZURvbWFpbklELCBDT1VOVCh0b3BGcmFtZURv
bWFpbklEKSBGUk9NIFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMgV0hFUkUgc3ViZnJhbWVE
b21haW5JRCBJTiAoIiwgZG9tYWluSURzT2ZJbnRlcmVzdCwgIikgR1JPVVAgQlkgc3ViZnJhbWVE
b21haW5JRCIpKTsKICAgICBpZiAoc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluc0NvdW50U3Rh
dGVtZW50LnByZXBhcmUoKSA9PSBTUUxJVEVfT0spIHsKICAgICAgICAgd2hpbGUgKHN1YmZyYW1l
VW5kZXJUb3BGcmFtZURvbWFpbnNDb3VudFN0YXRlbWVudC5zdGVwKCkgPT0gU1FMSVRFX1JPVykg
ewogICAgICAgICAgICAgdW5zaWduZWQgZG9tYWluSUQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
c3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluc0NvdW50U3RhdGVtZW50LmdldENvbHVtbkludCgw
KSk7CkBAIC02ODcsMTIgKzcwOSwxMiBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpyZWNsYXNzaWZ5UmVzb3VyY2VzKCkKICAgICBhdXRvIG5vdFZlcnlQcmV2YWxl
bnRSZXNvdXJjZXMgPSBmaW5kTm90VmVyeVByZXZhbGVudFJlc291cmNlcygpOwogCiAgICAgZm9y
IChhdXRvJiByZXNvdXJjZVN0YXRpc3RpYyA6IG5vdFZlcnlQcmV2YWxlbnRSZXNvdXJjZXMudmFs
dWVzKCkpIHsKLSAgICAgICAgaWYgKHNob3VsZFNraXAocmVzb3VyY2VTdGF0aXN0aWMucmVnaXN0
ZXJhYmxlRG9tYWluKSkKKyAgICAgICAgaWYgKHNob3VsZFNraXAocmVzb3VyY2VTdGF0aXN0aWMu
cmVnaXN0cmFibGVEb21haW4pKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgYXV0
byBuZXdQcmV2YWxlbmNlID0gY2xhc3NpZmllcigpLmNhbGN1bGF0ZVJlc291cmNlUHJldmFsZW5j
ZShyZXNvdXJjZVN0YXRpc3RpYy5zdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnQs
IHJlc291cmNlU3RhdGlzdGljLnN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9Db3VudCwgcmVz
b3VyY2VTdGF0aXN0aWMuc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluc0NvdW50LCByZXNvdXJj
ZVN0YXRpc3RpYy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvQ291bnQsIHJlc291cmNlU3RhdGlz
dGljLnByZXZhbGVuY2UpOwogICAgICAgICBpZiAobmV3UHJldmFsZW5jZSAhPSByZXNvdXJjZVN0
YXRpc3RpYy5wcmV2YWxlbmNlKQotICAgICAgICAgICAgc2V0UHJldmFsZW50UmVzb3VyY2UocmVz
b3VyY2VTdGF0aXN0aWMucmVnaXN0ZXJhYmxlRG9tYWluLCBuZXdQcmV2YWxlbmNlKTsKKyAgICAg
ICAgICAgIHNldFByZXZhbGVudFJlc291cmNlKHJlc291cmNlU3RhdGlzdGljLnJlZ2lzdHJhYmxl
RG9tYWluLCBuZXdQcmV2YWxlbmNlKTsKICAgICB9CiB9CiAKQEAgLTc3NSwxMSArNzk3LDEzIEBA
IHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9yYWdl
QWNjZXNzKFN1YkZyYW1lRG9tYWluJiYKICAgICBpZiAodXNlcldhc1Byb21wdGVkRWFybGllciA9
PSBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd246OlllcykKICAgICAgICAgUkVMRUFTRV9MT0df
SU5GT19JRihkZWJ1Z0xvZ2dpbmdFbmFibGVkKCksIElUUERlYnVnLCAiU3RvcmFnZSBhY2Nlc3Mg
d2FzIGdyYW50ZWQgdG8gJXtwdWJsaWN9cyB1bmRlciAle3B1YmxpY31zLiIsIHN1YkZyYW1lRG9t
YWluLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHRvcEZyYW1lRG9tYWluLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOwogCi0gICAgU1FMaXRlU3RhdGVtZW50IGluY3JlbWVudFN0b3JhZ2VBY2Nlc3Mo
bV9kYXRhYmFzZSwgbWFrZVN0cmluZygiVVBEQVRFIE9ic2VydmVkRG9tYWlucyBTRVQgdGltZXNB
Y2Nlc3NlZEFzRmlyc3RQYXJ0eUR1ZVRvU3RvcmFnZUFjY2Vzc0FQSSA9IHRpbWVzQWNjZXNzZWRB
c0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VBY2Nlc3NBUEkgKyAxIFdIRVJFIGRvbWFpbklEID0gIiwg
U3RyaW5nOjpudW1iZXIoc3ViRnJhbWVTdGF0dXMuc2Vjb25kKSkpOworICAgIFNRTGl0ZVN0YXRl
bWVudCBpbmNyZW1lbnRTdG9yYWdlQWNjZXNzKG1fZGF0YWJhc2UsICJVUERBVEUgT2JzZXJ2ZWRE
b21haW5zIFNFVCB0aW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9TdG9yYWdlQWNjZXNzQVBJ
ID0gdGltZXNBY2Nlc3NlZEFzRmlyc3RQYXJ0eUR1ZVRvU3RvcmFnZUFjY2Vzc0FQSSArIDEgV0hF
UkUgZG9tYWluSUQgPSA/Iik7CiAgICAgaWYgKGluY3JlbWVudFN0b3JhZ2VBY2Nlc3MucHJlcGFy
ZSgpICE9IFNRTElURV9PSworICAgICAgICB8fCBpbmNyZW1lbnRTdG9yYWdlQWNjZXNzLmJpbmRJ
bnQoMSwgc3ViRnJhbWVTdGF0dXMuc2Vjb25kKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgaW5j
cmVtZW50U3RvcmFnZUFjY2Vzcy5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtw
dWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKICAgICBncmFu
dFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0
b3BGcmFtZURvbWFpbiksIGZyYW1lSUQsIHBhZ2VJRCwgdXNlcldhc1Byb21wdGVkRWFybGllciwg
W2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZCB3YXNHcmFudGVkKSBtdXRhYmxlIHsKQEAgLTg1MSw2ICs4NzUsOSBA
QCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFuZGZhdGhlckRh
dGFGb3JEb21haW5zKGNvbnN0IEhhc2hTZQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWlu
KCkpOwogCisgICAgZm9yIChhdXRvJiByZWdpc3RyYWJsZURvbWFpbiA6IGRvbWFpbnMpCisgICAg
ICAgIGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHJlZ2lzdHJh
YmxlRG9tYWluKTsKKwogICAgIFNRTGl0ZVN0YXRlbWVudCBkb21haW5zVG9VcGRhdGVTdGF0ZW1l
bnQobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiVVBEQVRFIE9ic2VydmVkRG9tYWlucyBTRVQgZ3Jh
bmRmYXRoZXJlZCA9IDEgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gSU4gKCIsIGRvbWFpbnNUb1N0
cmluZyhkb21haW5zKSwgIikiKSk7CiAgICAgaWYgKGRvbWFpbnNUb1VwZGF0ZVN0YXRlbWVudC5w
cmVwYXJlKCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IGRvbWFpbnNUb1VwZGF0ZVN0YXRlbWVu
dC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKQEAgLTg5NCw3ICs5MjEsNyBAQCB2b2lkIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3Qg
UmVnaXN0cmFibGVEbwogICAgIGlmICghaXNNYWluRnJhbWUgJiYgIShhcmVUYXJnZXRBbmRUb3BG
cmFtZURvbWFpbnNTYW1lU2l0ZSB8fCBhcmVUYXJnZXRBbmRTb3VyY2VEb21haW5zU2FtZVNpdGUp
KSB7CiAgICAgICAgIGF1dG8gdGFyZ2V0UmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNz
Rm9yUmVnaXN0cmFibGVEb21haW4odGFyZ2V0RG9tYWluKTsKICAgICAgICAgdXBkYXRlTGFzdFNl
ZW4odGFyZ2V0RG9tYWluLCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpyZWR1Y2VUaW1lUmVzb2x1
dGlvbihXYWxsVGltZTo6bm93KCkpKTsKLQorICAgICAgICBlbnN1cmVSZXNvdXJjZVN0YXRpc3Rp
Y3NGb3JSZWdpc3RyYWJsZURvbWFpbih0b3BGcmFtZURvbWFpbik7CiAgICAgICAgIGlmICghcmVs
YXRpb25zaGlwRXhpc3RzKG1fc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluRXhpc3RzLCB0YXJn
ZXRSZXN1bHQuc2Vjb25kLCB0b3BGcmFtZURvbWFpbikpIHsKICAgICAgICAgICAgIGluc2VydERv
bWFpblJlbGF0aW9uc2hpcChtX3N1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMsIHRhcmdldFJl
c3VsdC5zZWNvbmQsIHRvcEZyYW1lRG9tYWluKTsKICAgICAgICAgICAgIHN0YXRpc3RpY3NXZXJl
VXBkYXRlZCA9IHRydWU7CkBAIC05MDQsMjQgKzkzMSwyNSBAQCB2b2lkIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgUmVnaXN0cmFi
bGVEbwogICAgIGlmIChpc1JlZGlyZWN0ICYmICFhcmVUYXJnZXRBbmRTb3VyY2VEb21haW5zU2Ft
ZVNpdGUpIHsKICAgICAgICAgaWYgKGlzTWFpbkZyYW1lKSB7CiAgICAgICAgICAgICBhdXRvIHJl
ZGlyZWN0aW5nRG9tYWluUmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0
cmFibGVEb21haW4oc291cmNlRG9tYWluKTsKKyAgICAgICAgICAgIGF1dG8gdGFyZ2V0UmVzdWx0
ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4odGFyZ2V0RG9t
YWluKTsKKwogICAgICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV90b3BGcmFtZVVu
aXF1ZVJlZGlyZWN0c1RvRXhpc3RzLCByZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQsIHRh
cmdldERvbWFpbikpIHsKICAgICAgICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAo
bV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvLCByZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNv
bmQsIHRhcmdldERvbWFpbik7CiAgICAgICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVk
ID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgYXV0byB0YXJnZXRSZXN1bHQg
PSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0YXJnZXREb21h
aW4pOwogICAgICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV90b3BGcmFtZVVuaXF1
ZVJlZGlyZWN0c0Zyb21FeGlzdHMsIHRhcmdldFJlc3VsdC5zZWNvbmQsIHNvdXJjZURvbWFpbikp
IHsKICAgICAgICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV90b3BGcmFtZVVu
aXF1ZVJlZGlyZWN0c0Zyb20sIHRhcmdldFJlc3VsdC5zZWNvbmQsIHNvdXJjZURvbWFpbik7CiAg
ICAgICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGF1dG8gcmVkaXJlY3RpbmdEb21haW5S
ZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihzb3Vy
Y2VEb21haW4pOworICAgICAgICAgICAgYXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJj
ZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0YXJnZXREb21haW4pOwogICAgICAgICAg
ICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1Rv
RXhpc3RzLCByZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQsIHRhcmdldERvbWFpbikpIHsK
ICAgICAgICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVu
aXF1ZVJlZGlyZWN0c1RvLCByZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQsIHRhcmdldERv
bWFpbik7CiAgICAgICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKICAg
ICAgICAgICAgIH0KIAotICAgICAgICAgICAgYXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNv
dXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0YXJnZXREb21haW4pOwogICAgICAg
ICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0
c0Zyb21FeGlzdHMsIHRhcmdldFJlc3VsdC5zZWNvbmQsIHNvdXJjZURvbWFpbikpIHsKICAgICAg
ICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVuaXF1ZVJl
ZGlyZWN0c0Zyb20sIHRhcmdldFJlc3VsdC5zZWNvbmQsIHNvdXJjZURvbWFpbik7CiAgICAgICAg
ICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKQEAgLTk1MCw3ICs5NzgsNyBA
QCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRVc2VySW50ZXJh
Y3Rpb24oY29uc3QgUmVnaXN0cmFibGVEbwogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWlu
KCkpOwogCi0gICAgaWYgKG1fbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5iaW5k
SW50KDEsIGhhZFVzZXJJbnRlcmFjdGlvbikKKyAgICBpZiAobV9tb3N0UmVjZW50VXNlckludGVy
YWN0aW9uU3RhdGVtZW50LmJpbmRJbnQoMSwgaGFkVXNlckludGVyYWN0aW9uKSAhPSBTUUxJVEVf
T0sKICAgICAgICAgfHwgbV9tb3N0UmVjZW50VXNlckludGVyYWN0aW9uU3RhdGVtZW50LmJpbmRE
b3VibGUoMiwgbW9zdFJlY2VudEludGVyYWN0aW9uLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUo
KSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblN0
YXRlbWVudC5iaW5kVGV4dCgzLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSwogICAgICAg
ICB8fCBtX21vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElU
RV9ET05FKSB7CkBAIC05NzgsOCArMTAwNiw5IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OmNsZWFyVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlCiAg
ICAgYXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3Ry
YWJsZURvbWFpbihkb21haW4pOwogICAgIHNldFVzZXJJbnRlcmFjdGlvbihkb21haW4sIGZhbHNl
LCB7IH0pOwogCi0gICAgU1FMaXRlU3RhdGVtZW50IHJlbW92ZVN0b3JhZ2VBY2Nlc3MobV9kYXRh
YmFzZSwgbWFrZVN0cmluZygiREVMRVRFIEZST00gU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVE
b21haW5zIFdIRVJFIGRvbWFpbklEID0gIiwgU3RyaW5nOjpudW1iZXIodGFyZ2V0UmVzdWx0LnNl
Y29uZCkpKTsKKyAgICBTUUxpdGVTdGF0ZW1lbnQgcmVtb3ZlU3RvcmFnZUFjY2VzcyhtX2RhdGFi
YXNlLCAiREVMRVRFIEZST00gU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJF
IGRvbWFpbklEID0gPyIpOwogICAgIGlmIChyZW1vdmVTdG9yYWdlQWNjZXNzLnByZXBhcmUoKSAh
PSBTUUxJVEVfT0sKKyAgICAgICAgfHwgcmVtb3ZlU3RvcmFnZUFjY2Vzcy5iaW5kSW50KDEsIHRh
cmdldFJlc3VsdC5zZWNvbmQpICE9IFNRTElURV9PSwogICAgICAgICB8fCByZW1vdmVTdG9yYWdl
QWNjZXNzLnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9n
VXNlckludGVyYWN0aW9uIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31z
IiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwpAQCAtOTkxLDE1ICsxMDIwLDIwIEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6Omhhc0hhZFVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJs
CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBpZiAobV9oYWRVc2VySW50
ZXJhY3Rpb25TdGF0ZW1lbnQuYmluZFRleHQoMSwgZG9tYWluLnN0cmluZygpKSAhPSBTUUxJVEVf
T0sKLSAgICAgICAgfHwgbV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuc3RlcCgpICE9IFNR
TElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptX3VwZGF0ZVByZXZhbGVudFJlc291
cmNlU3RhdGVtZW50IGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1f
ZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgfHwgbV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElU
RV9ST1cpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1faGFkVXNlckludGVyYWN0aW9uU3RhdGVt
ZW50IGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2Uu
bGFzdEVycm9yTXNnKCkpOworCisgICAgICAgIGludCByZXNldFJlc3VsdCA9IG1faGFkVXNlcklu
dGVyYWN0aW9uU3RhdGVtZW50LnJlc2V0KCk7CisgICAgICAgIEFTU0VSVF9VTlVTRUQocmVzZXRS
ZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNRTElURV9PSyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAKICAgICBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiA9ICEhbV9oYWRVc2VySW50ZXJh
Y3Rpb25TdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDApOwotICAgIGlmICghaGFkVXNlckludGVyYWN0
aW9uKQorICAgIGlmICghaGFkVXNlckludGVyYWN0aW9uKSB7CisgICAgICAgIGludCByZXNldFJl
c3VsdCA9IG1faGFkVXNlckludGVyYWN0aW9uU3RhdGVtZW50LnJlc2V0KCk7CisgICAgICAgIEFT
U0VSVF9VTlVTRUQocmVzZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNRTElURV9PSyk7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgCiAgICAgV2FsbFRpbWUgbW9zdFJlY2VudFVz
ZXJJbnRlcmFjdGlvblRpbWUgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMobV9oYWRVc2VySW50
ZXJhY3Rpb25TdGF0ZW1lbnQuZ2V0Q29sdW1uRG91YmxlKDEpKTsKIApAQCAtMTAxMSw2ICsxMDQ1
LDkgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVXNl
ckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmwKICAgICAgICAgaGFkVXNlckludGVyYWN0aW9u
ID0gZmFsc2U7CiAgICAgfQogICAgIAorICAgIGludCByZXNldFJlc3VsdCA9IG1faGFkVXNlcklu
dGVyYWN0aW9uU3RhdGVtZW50LnJlc2V0KCk7CisgICAgQVNTRVJUX1VOVVNFRChyZXNldFJlc3Vs
dCwgcmVzZXRSZXN1bHQgPT0gU1FMSVRFX09LKTsKKwogICAgIHJldHVybiBoYWRVc2VySW50ZXJh
Y3Rpb247CiB9CiAKQEAgLTEwNDUsNyArMTA4Miw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OnNldFByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxl
CiAgICAgfQogCiAgICAgU3RkU2V0PHVuc2lnbmVkPiBub25QcmV2YWxlbnRSZWRpcmVjdGlvblNv
dXJjZXM7Ci0gICAgcmVjdXJzaXZlbHlGaW5kTm9uUHJldmFsZW50RG9tYWluc1RoYXRSZWRpcmVj
dGVkVG9UaGlzRG9tYWluKGRvbWFpbklEKGRvbWFpbiksIG5vblByZXZhbGVudFJlZGlyZWN0aW9u
U291cmNlcywgMCk7CisgICAgcmVjdXJzaXZlbHlGaW5kTm9uUHJldmFsZW50RG9tYWluc1RoYXRS
ZWRpcmVjdGVkVG9UaGlzRG9tYWluKGRvbWFpbklEKGRvbWFpbikudmFsdWUoKSwgbm9uUHJldmFs
ZW50UmVkaXJlY3Rpb25Tb3VyY2VzLCAwKTsKICAgICBzZXREb21haW5zQXNQcmV2YWxlbnQoV1RG
TW92ZShub25QcmV2YWxlbnRSZWRpcmVjdGlvblNvdXJjZXMpKTsKIH0KIApAQCAtMTA3Niw5ICsx
MTEzLDEyIEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZWRp
Y2F0ZVZhbHVlRm9yRG9tYWluKFdlYkNvcmU6OlNRTGl0CiAgICAgQVNTRVJUKCFSdW5Mb29wOjpp
c01haW4oKSk7CiAgICAgCiAgICAgaWYgKHByZWRpY2F0ZVN0YXRlbWVudC5iaW5kVGV4dCgxLCBk
b21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSwotICAgICAgICB8fCBwcmVkaWNhdGVTdGF0ZW1l
bnQuc3RlcCgpICE9IFNRTElURV9ET05FKSB7CisgICAgICAgIHx8IHByZWRpY2F0ZVN0YXRlbWVu
dC5zdGVwKCkgIT0gU1FMSVRFX1JPVykgeworCisgICAgICAgIGludCByZXNldFJlc3VsdCA9IHBy
ZWRpY2F0ZVN0YXRlbWVudC5yZXNldCgpOworICAgICAgICBBU1NFUlRfVU5VU0VEKHJlc2V0UmVz
dWx0LCByZXNldFJlc3VsdCA9PSBTUUxJVEVfT0spOworCiAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpw
cmVkaWNhdGVWYWx1ZUZvckRvbWFpbiBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJXtw
dWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwotICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTI0
OCw3ICsxMjg4LDcgQEAgc3RkOjpwYWlyPFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpBZGRlZFJlY29yZCwgdW5zaWduZWQ+IFJlc291cmNlTG8KICAgICBBU1NFUlQoIVJ1bkxv
b3A6OmlzTWFpbigpKTsKIAogICAgIGlmIChtX2RvbWFpbklERnJvbVN0cmluZ1N0YXRlbWVudC5i
aW5kVGV4dCgxLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSykgewotICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6Y3JlYXRlU2NoZW1hIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIs
IHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
ZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4gZmFpbGVkLCBlcnJv
ciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7
CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4geyBBZGRlZFJl
Y29yZDo6Tm8sIDAgfTsKICAgICB9CkBAIC0xMjY3LDEzICsxMzA3LDI1IEBAIHN0ZDo6cGFpcjxS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6QWRkZWRSZWNvcmQsIHVuc2lnbmVk
PiBSZXNvdXJjZUxvCiAgICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBuZXdPYnNlcnZhdGlvbihk
b21haW4pOwogICAgIGluc2VydE9ic2VydmVkRG9tYWluKG5ld09ic2VydmF0aW9uKTsKIAotICAg
IHJldHVybiB7IEFkZGVkUmVjb3JkOjpZZXMsIGRvbWFpbklEKGRvbWFpbikgfTsKKyAgICByZXR1
cm4geyBBZGRlZFJlY29yZDo6WWVzLCBkb21haW5JRChkb21haW4pLnZhbHVlKCkgfTsKK30KKwor
dm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJEYXRhYmFzZUNv
bnRlbnRzKCkKK3sKKyAgICBtX2RhdGFiYXNlLmNsZWFyQWxsVGFibGVzKCk7CisKKyAgICBpZiAo
IWNyZWF0ZVNjaGVtYSgpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIl
cCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhckRhdGFiYXNlQ29u
dGVudHMgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zLCBkYXRhYmFzZSBwYXRoOiAl
e3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSwgbV9zdG9yYWdlRGly
ZWN0b3J5UGF0aC51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OmNsZWFyKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAorICAgIGNs
ZWFyRGF0YWJhc2VDb250ZW50cygpOwogICAgIGNsZWFyT3BlcmF0aW5nRGF0ZXMoKTsKIAogICAg
IGF1dG8gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwpAQCAtMTI4OSw4ICsxMzQxLDkgQEAgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OkNvb2tpZVRyZWF0bWVudFJlc3VsdCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWMKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAg
IFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNU
IGlzUHJldmFsZW50LCBoYWRVc2VySW50ZXJhY3Rpb24gRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hF
UkUgcmVnaXN0cmFibGVEb21haW4gPSAiLCBkb21haW4uc3RyaW5nKCkpKTsKKyAgICBTUUxpdGVT
dGF0ZW1lbnQgc3RhdGVtZW50KG1fZGF0YWJhc2UsICJTRUxFQ1QgaXNQcmV2YWxlbnQsIGhhZFVz
ZXJJbnRlcmFjdGlvbiBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFp
biA9ID8iKTsKICAgICBpZiAoc3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAg
ICAgfHwgc3RhdGVtZW50LmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09L
CiAgICAgICAgIHx8IHN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX1JPVykgewogICAgICAgICBy
ZXR1cm4gQ29va2llVHJlYXRtZW50UmVzdWx0OjpBbGxvdzsKICAgICB9CkBAIC0xMzA3LDEwICsx
MzYwLDEyIEBAIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6aGFzVXNlckdyYW50ZWRTCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29w
Ojppc01haW4oKSk7CiAKLSAgICBhdXRvIGZpcnN0UGFydHlQcmltYXJ5RG9tYWluSUQgPSBkb21h
aW5JRChmaXJzdFBhcnR5RG9tYWluKTsKKyAgICBhdXRvIGZpcnN0UGFydHlQcmltYXJ5RG9tYWlu
SUQgPSBkb21haW5JRChmaXJzdFBhcnR5RG9tYWluKS52YWx1ZSgpOwogCi0gICAgU1FMaXRlU3Rh
dGVtZW50IHN0YXRlbWVudChtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgQ09VTlQoKikg
RlJPTSBTdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMgV0hFUkUgZG9tYWluSUQgPSAi
LCBTdHJpbmc6Om51bWJlcihyZXF1ZXN0aW5nRG9tYWluSUQpLCAiIEFORCB0b3BMZXZlbERvbWFp
bklEID0gIiwgU3RyaW5nOjpudW1iZXIoZmlyc3RQYXJ0eVByaW1hcnlEb21haW5JRCkpKTsKKyAg
ICBTUUxpdGVTdGF0ZW1lbnQgc3RhdGVtZW50KG1fZGF0YWJhc2UsICJTRUxFQ1QgQ09VTlQoKikg
RlJPTSBTdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMgV0hFUkUgZG9tYWluSUQgPSA/
IEFORCB0b3BMZXZlbERvbWFpbklEID0gPyIpOwogICAgIGlmIChzdGF0ZW1lbnQucHJlcGFyZSgp
ICE9IFNRTElURV9PSworICAgICAgICB8fCBzdGF0ZW1lbnQuYmluZEludCgxLCByZXF1ZXN0aW5n
RG9tYWluSUQpICE9IFNRTElURV9PSworICAgICAgICB8fCBzdGF0ZW1lbnQuYmluZEludCgyLCBm
aXJzdFBhcnR5UHJpbWFyeURvbWFpbklEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc3RhdGVt
ZW50LnN0ZXAoKSAhPSBTUUxJVEVfUk9XKQogICAgICAgICByZXR1cm4gU3RvcmFnZUFjY2Vzc1By
b21wdFdhc1Nob3duOjpObzsKIApAQCAtMTQ2Miw5ICsxNTE3LDE5IEBAIHZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyR3JhbmRmYXRoZXJpbmcoVmVjdG9yPHVu
c2lnbmVkPiYmCiAgICAgfQogfQogCi1ib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvcihjb25zdCBQcmV2YWxlbnREb21h
aW5EYXRhJiByZXNvdXJjZVN0YXRpc3RpYywgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVy
aW5nKSBjb25zdAorYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFz
SGFkVW5leHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9uKGNvbnN0IFByZXZhbGVudERvbWFpbkRh
dGEmIHJlc291cmNlU3RhdGlzdGljLCBPcGVyYXRpbmdEYXRlc1dpbmRvdyBvcGVyYXRpbmdEYXRl
c1dpbmRvdykKK3sKKyAgICBpZiAocmVzb3VyY2VTdGF0aXN0aWMuaGFkVXNlckludGVyYWN0aW9u
ICYmIGhhc1N0YXRpc3RpY3NFeHBpcmVkKHJlc291cmNlU3RhdGlzdGljLm1vc3RSZWNlbnRVc2Vy
SW50ZXJhY3Rpb25UaW1lLCBvcGVyYXRpbmdEYXRlc1dpbmRvdykpIHsKKyAgICAgICAgY2xlYXJV
c2VySW50ZXJhY3Rpb24ocmVzb3VyY2VTdGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4pOworICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHJlc291cmNlU3RhdGlzdGlj
LmhhZFVzZXJJbnRlcmFjdGlvbjsKK30KKworYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6c2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3IoY29uc3QgUHJldmFsZW50
RG9tYWluRGF0YSYgcmVzb3VyY2VTdGF0aXN0aWMsIGJvb2wgc2hvdWxkQ2hlY2tGb3JHcmFuZGZh
dGhlcmluZykKIHsKLSAgICByZXR1cm4gIXJlc291cmNlU3RhdGlzdGljLmhhZFVzZXJJbnRlcmFj
dGlvbiAmJiAoIXNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcgfHwgIXJlc291cmNlU3RhdGlz
dGljLmdyYW5kZmF0aGVyZWQpOworICAgIHJldHVybiAhaGFzSGFkVW5leHBpcmVkUmVjZW50VXNl
ckludGVyYWN0aW9uKHJlc291cmNlU3RhdGlzdGljLCBPcGVyYXRpbmdEYXRlc1dpbmRvdzo6TG9u
ZykgJiYgKCFzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nIHx8ICFyZXNvdXJjZVN0YXRpc3Rp
Yy5ncmFuZGZhdGhlcmVkKTsKIH0KIAogYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6c2hvdWxkUmVtb3ZlQWxsQnV0Q29va2llc0Zvcihjb25zdCBQcmV2YWxlbnREb21h
aW5EYXRhJiByZXNvdXJjZVN0YXRpc3RpYywgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVy
aW5nKSBjb25zdApAQCAtMTQ5Miw5ICsxNTU3LDkgQEAgVmVjdG9yPHN0ZDo6cGFpcjxSZWdpc3Ry
YWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZT4+IFJlc291cmNlTG9hZFN0YXRpc3RpY3MK
ICAgICBWZWN0b3I8dW5zaWduZWQ+IGRvbWFpbklEc1RvQ2xlYXJHcmFuZGZhdGhlcmluZzsKICAg
ICBmb3IgKGF1dG8mIHN0YXRpc3RpYyA6IHByZXZhbGVudERvbWFpbnMpIHsKICAgICAgICAgaWYg
KHNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9yKHN0YXRpc3RpYywgc2hvdWxkQ2hlY2tGb3JH
cmFuZGZhdGhlcmluZykpCi0gICAgICAgICAgICBkb21haW5zVG9SZW1vdmVXZWJzaXRlRGF0YUZv
ci5hcHBlbmQoc3RkOjptYWtlX3BhaXIoc3RhdGlzdGljLnJlZ2lzdGVyYWJsZURvbWFpbiwgV2Vi
c2l0ZURhdGFUb1JlbW92ZTo6QWxsKSk7CisgICAgICAgICAgICBkb21haW5zVG9SZW1vdmVXZWJz
aXRlRGF0YUZvci5hcHBlbmQoc3RkOjptYWtlX3BhaXIoc3RhdGlzdGljLnJlZ2lzdHJhYmxlRG9t
YWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlOjpBbGwpKTsKICAgICAgICAgZWxzZSBpZiAoc2hvdWxk
UmVtb3ZlQWxsQnV0Q29va2llc0ZvcihzdGF0aXN0aWMsIHNob3VsZENoZWNrRm9yR3JhbmRmYXRo
ZXJpbmcpKQotICAgICAgICAgICAgZG9tYWluc1RvUmVtb3ZlV2Vic2l0ZURhdGFGb3IuYXBwZW5k
KHN0ZDo6bWFrZV9wYWlyKHN0YXRpc3RpYy5yZWdpc3RlcmFibGVEb21haW4sIFdlYnNpdGVEYXRh
VG9SZW1vdmU6OkFsbEJ1dENvb2tpZXMpKTsKKyAgICAgICAgICAgIGRvbWFpbnNUb1JlbW92ZVdl
YnNpdGVEYXRhRm9yLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihzdGF0aXN0aWMucmVnaXN0cmFibGVE
b21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU6OkFsbEJ1dENvb2tpZXMpKTsKIAogICAgICAgICBp
ZiAoc2hvdWxkQ2xlYXJHcmFuZGZhdGhlcmluZyAmJiBzdGF0aXN0aWMuZ3JhbmRmYXRoZXJlZCkK
ICAgICAgICAgICAgIGRvbWFpbklEc1RvQ2xlYXJHcmFuZGZhdGhlcmluZy5hcHBlbmQoc3RhdGlz
dGljLmRvbWFpbklEKTsKQEAgLTE1MjQsOCArMTU4OSw5IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OnBydW5lU3RhdGlzdGljc0lmTmVlZGVkKCkKICAgICBzaXpl
X3QgY291bnRMZWZ0VG9QcnVuZSA9IGNvdW50IC0gcGFyYW1ldGVycygpLnBydW5lRW50cmllc0Rv
d25UbzsKICAgICBBU1NFUlQoY291bnRMZWZ0VG9QcnVuZSk7CiAKLSAgICBTUUxpdGVTdGF0ZW1l
bnQgcmVjb3Jkc1RvUHJ1bmUobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIGRvbWFpbklE
IEZST00gT2JzZXJ2ZWREb21haW5zIE9SREVSIEJZIGhhZFVzZXJJbnRlcmFjdGlvbiwgaXNQcmV2
YWxlbnQsIGxhc3RTZWVuIERFU0MgTElNSVQgIiwgU3RyaW5nOjpudW1iZXIoY291bnRMZWZ0VG9Q
cnVuZSkpKTsKLSAgICBpZiAocmVjb3Jkc1RvUHJ1bmUucHJlcGFyZSgpICE9IFNRTElURV9PSykg
eworICAgIFNRTGl0ZVN0YXRlbWVudCByZWNvcmRzVG9QcnVuZShtX2RhdGFiYXNlLCAiU0VMRUNU
IGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIE9SREVSIEJZIGhhZFVzZXJJbnRlcmFjdGlv
biwgaXNQcmV2YWxlbnQsIGxhc3RTZWVuIExJTUlUID8iKTsKKyAgICBpZiAocmVjb3Jkc1RvUHJ1
bmUucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICB8fCByZWNvcmRzVG9QcnVuZS5iaW5k
SW50KDEsIGNvdW50TGVmdFRvUHJ1bmUpICE9IFNRTElURV9PSykgewogICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6cHJ1bmVTdGF0aXN0aWNzSWZOZWVkZWQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1
YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCmluZGV4IDBmYjI0YWQwNjcwNDVjOWFk
MzE0ZjIzY2ZiNDQ0MGQ4YWY4NDVmZWMuLjA4ZDk5Nzg4OWNhOTA1Y2M0OWNlNDBiMWIyMzFmZTcx
YjQ4NzQ2MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZS5oCkBAIC0xMDUsMTEgKzEwNSwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRM
YXN0U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIFNlY29uZHMpIG92ZXJyaWRlOwogCiBw
cml2YXRlOgorICAgIHZvaWQgY2xlYXJEYXRhYmFzZUNvbnRlbnRzKCk7CiAgICAgYm9vbCBpbnNl
cnRPYnNlcnZlZERvbWFpbihjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJik7CiAgICAgdm9p
ZCBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBzKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3Mm
KTsKICAgICBib29sIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChXZWJDb3JlOjpTUUxpdGVTdGF0
ZW1lbnQmLCB1bnNpZ25lZCBkb21haW5JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZy
YW1lRG9tYWluKTsKLSAgICBib29sIHJlbGF0aW9uc2hpcEV4aXN0cyhXZWJDb3JlOjpTUUxpdGVT
dGF0ZW1lbnQmLCB1bnNpZ25lZCBmaXJzdERvbWFpbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgc2Vjb25kRG9tYWluKSBjb25zdDsKLSAgICB1bnNpZ25lZCBkb21haW5JRChjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYpIGNvbnN0OworICAgIGJvb2wgcmVsYXRpb25zaGlwRXhpc3RzKFdlYkNv
cmU6OlNRTGl0ZVN0YXRlbWVudCYsIE9wdGlvbmFsPHVuc2lnbmVkPiBmaXJzdERvbWFpbklELCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc2Vjb25kRG9tYWluKSBjb25zdDsKKyAgICBPcHRpb25h
bDx1bnNpZ25lZD4gZG9tYWluSUQoY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBjb25zdDsKICNp
Zm5kZWYgTkRFQlVHCiAgICAgYm9vbCBjb25maXJtRG9tYWluRG9lc05vdEV4aXN0KGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJikgY29uc3Q7CiAjZW5kaWYKQEAgLTEyMCwxMiArMTIxLDEzIEBAIHBy
aXZhdGU6CiAKICAgICBzdHJ1Y3QgUHJldmFsZW50RG9tYWluRGF0YSB7CiAgICAgICAgIHVuc2ln
bmVkIGRvbWFpbklEOwotICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWdpc3RlcmFibGVEb21h
aW47CisgICAgICAgIFJlZ2lzdHJhYmxlRG9tYWluIHJlZ2lzdHJhYmxlRG9tYWluOwogICAgICAg
ICBXYWxsVGltZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZTsKICAgICAgICAgYm9vbCBo
YWRVc2VySW50ZXJhY3Rpb247CiAgICAgICAgIGJvb2wgZ3JhbmRmYXRoZXJlZDsKICAgICB9Owog
ICAgIFZlY3RvcjxQcmV2YWxlbnREb21haW5EYXRhPiBwcmV2YWxlbnREb21haW5zKCkgY29uc3Q7
CisgICAgYm9vbCBoYXNIYWRVbmV4cGlyZWRSZWNlbnRVc2VySW50ZXJhY3Rpb24oY29uc3QgUHJl
dmFsZW50RG9tYWluRGF0YSYsIE9wZXJhdGluZ0RhdGVzV2luZG93KTsKICAgICBWZWN0b3I8dW5z
aWduZWQ+IGZpbmRFeHBpcmVkVXNlckludGVyYWN0aW9ucygpIGNvbnN0OwogICAgIHZvaWQgY2xl
YXJFeHBpcmVkVXNlckludGVyYWN0aW9ucygpOwogICAgIHZvaWQgY2xlYXJHcmFuZGZhdGhlcmlu
ZyhWZWN0b3I8dW5zaWduZWQ+JiYpOwpAQCAtMTM0LDcgKzEzNiw3IEBAIHByaXZhdGU6CiAKICAg
ICB2b2lkIHJlY2xhc3NpZnlSZXNvdXJjZXMoKTsKICAgICBzdHJ1Y3QgTm90VmVyeVByZXZhbGVu
dFJlc291cmNlcyB7Ci0gICAgICAgIFJlZ2lzdHJhYmxlRG9tYWluIHJlZ2lzdGVyYWJsZURvbWFp
bjsKKyAgICAgICAgUmVnaXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW47CiAgICAgICAg
IFJlc291cmNlTG9hZFByZXZhbGVuY2UgcHJldmFsZW5jZTsKICAgICAgICAgdW5zaWduZWQgc3Vi
cmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluc0NvdW50OwogICAgICAgICB1bnNpZ25lZCBzdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvQ291bnQ7CkBAIC0xNTgsNyArMTYwLDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHBydW5lU3RhdGlzdGljc0lmTmVlZGVkKCkgb3ZlcnJpZGU7CiAgICAgZW51
bSBjbGFzcyBBZGRlZFJlY29yZCB7IE5vLCBZZXMgfTsKICAgICBzdGQ6OnBhaXI8QWRkZWRSZWNv
cmQsIHVuc2lnbmVkPiBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFp
bihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpOwotICAgIGJvb2wgc2hvdWxkUmVtb3ZlQWxsV2Vi
c2l0ZURhdGFGb3IoY29uc3QgUHJldmFsZW50RG9tYWluRGF0YSYsIGJvb2wgc2hvdWxkQ2hlY2tG
b3JHcmFuZGZhdGhlcmluZykgY29uc3Q7CisgICAgYm9vbCBzaG91bGRSZW1vdmVBbGxXZWJzaXRl
RGF0YUZvcihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiwgYm9vbCBzaG91bGRDaGVja0Zvckdy
YW5kZmF0aGVyaW5nKTsKICAgICBib29sIHNob3VsZFJlbW92ZUFsbEJ1dENvb2tpZXNGb3IoY29u
c3QgUHJldmFsZW50RG9tYWluRGF0YSYsIGJvb2wgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmlu
ZykgY29uc3Q7CiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxSZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0
ZURhdGFUb1JlbW92ZT4+IHJlZ2lzdHJhYmxlRG9tYWluc1RvUmVtb3ZlV2Vic2l0ZURhdGFGb3Io
KSBvdmVycmlkZTsKICAgICBib29sIGlzRGF0YWJhc2VTdG9yZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5jcHAKaW5kZXggZTQ4N2ZhNjFjNThjNTVhMjMxZmVkZjhhZTljYzEzOTZlYjYwNzIyZi4uNjc4
NWMwN2NlODYwNjg0NzRmNmJkOTc0YjM4YzI2N2U2YTdhN2NlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTE1Niw5ICsxNTYsOSBAQCBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZShOZXR3b3JrU2Vzc2lvbiYgbgogICAgICwgbV9kYWlseVRhc2tzVGltZXIoUnVuTG9vcDo6
bWFpbigpLCB0aGlzLCAmV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpwZXJmb3JtRGFp
bHlUYXNrcykKIHsKICAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAg
Ci0gICAgcG9zdFRhc2soW3RoaXMsIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5Lmlzb2xhdGVkQ29weSgpLCBzaG91bGRJbmNs
dWRlTG9jYWxob3N0XSB7Ci0gICAgICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLmlzSVRQRGF0YWJhc2VFbmFibGVkKCkpIHsKKworICAgIHBvc3RUYXNrKFt0
aGlzLCBkYXRhYmFzZUVuYWJsZWQgPSBuZXR3b3JrU2Vzc2lvbi5uZXR3b3JrUHJvY2VzcygpLmlz
SVRQRGF0YWJhc2VFbmFibGVkKCksIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5Lmlzb2xhdGVkQ29weSgpLCBzaG91bGRJbmNs
dWRlTG9jYWxob3N0XSB7CisgICAgICAgIGlmIChkYXRhYmFzZUVuYWJsZWQpIHsKICAgICAgICAg
ICAgIG1fc3RhdGlzdGljc1N0b3JlID0gbWFrZVVuaXF1ZTxSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZT4oKnRoaXMsIG1fc3RhdGlzdGljc1F1ZXVlLCBzaG91bGRJbmNsdWRlTG9j
YWxob3N0LCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KTsKIAogICAgICAgICAgICAg
YXV0byBtZW1vcnlTdG9yZSA9IG1ha2VVbmlxdWU8UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9y
eVN0b3JlPigqdGhpcywgbV9zdGF0aXN0aWNzUXVldWUsIHNob3VsZEluY2x1ZGVMb2NhbGhvc3Qp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApp
bmRleCBlYzFhYTJkODZkNjAyOWI1NGJlNmU4MThkOWZkMTI2Yjg3ZDljOWM2Li5iNTY1NjA2MmEw
ZDFmMzg5MTJkOTE1YjJjNzk5N2U5NmYyNDlhOTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMzE0LDcgKzMxNCw5IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYmCiAgICAgICAgIG1fZGVmYXVsdE5ldHdvcmtTdG9yYWdlU2Vzc2lv
biA9IG5ld1Rlc3RpbmdTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkp
OwogICAgIH0KIAotICAgIFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkuc2V0SXNJVFBEYXRhYmFzZUVuYWJsZWQocGFyYW1ldGVycy5zaG91bGRFbmFibGVJ
VFBEYXRhYmFzZSk7CisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyAgICBt
X2lzSVRQRGF0YWJhc2VFbmFibGVkID0gcGFyYW1ldGVycy5zaG91bGRFbmFibGVJVFBEYXRhYmFz
ZTsKKyNlbmRpZgogCiAgICAgV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS5zZXRBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkKHBhcmFtZXRl
cnMuZW5hYmxlQWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlKTsKIApAQCAtNDU5LDYgKzQ2MSw4
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmFkZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CiAgICAgYWRkSW5kZXhlZERhdGFiYXNlU2Vzc2lvbihwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9u
UGFyYW1ldGVycy5zZXNzaW9uSUQsIHBhcmFtZXRlcnMuaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5
LCBwYXJhbWV0ZXJzLmluZGV4ZWREYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAj
ZW5kaWYKKyAgICAKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFy
YW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAg
ICAgaWYgKHBhcmVudFByb2Nlc3NIYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQoKSkKQEAgLTY5
NSw2ICs2OTksMTcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0R3JhbmRmYXRoZXJlZChQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmwKICAgICB9CiB9CiAKK3ZvaWQg
TmV0d29ya1Byb2Nlc3M6OnNldFVzZUlUUERhdGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgYm9vbCB2YWx1ZSkKK3sKKyAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSB0aGlzLT5u
ZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CisgICAgICAgIGlmIChtX2lzSVRQRGF0YWJhc2VF
bmFibGVkICE9IHZhbHVlKSB7CisgICAgICAgICAgICBtX2lzSVRQRGF0YWJhc2VFbmFibGVkID0g
dmFsdWU7CisgICAgICAgICAgICBuZXR3b3JrU2Vzc2lvbi0+cmVjcmVhdGVSZXNvdXJjZUxvYWRT
dGF0aXN0aWNTdG9yZSgpOworICAgICAgICB9CisgICAgfSBlbHNlCisgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRQcmV2YWxlbnRSZXNv
dXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBk
b21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSB0aGlzLT5uZXR3b3JrU2Vzc2lvbihzZXNz
aW9uSUQpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmgKaW5kZXggYjhkZGM4ZjQ1ODkxNTYwNTAzMmUyMmNmZTkwODI2NmI1NjAyZDIyMS4uOWY0Y2E4
YzI4Nzc3MGVmOWE0MTJjNjk2ZGE3YTM4M2I2NDE4OWQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMjI0LDYgKzIyNCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGlzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihQQUw6OlNlc3Npb25JRCwg
Y29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgaXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJj
ZVVuZGVyKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdWJSZXNvdXJjZURvbWFpbiYsIGNvbnN0IFRv
cEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9p
ZCBzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYsIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwor
ICAgIHZvaWQgc2V0VXNlSVRQRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQsIGJvb2wgdmFsdWUpOwog
ICAgIHZvaWQgc2V0TWF4U3RhdGlzdGljc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90
IG1heGltdW1FbnRyeUNvdW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgc2V0UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFByZXZh
bGVudFJlc291cmNlRm9yRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CkBAIC0yNjQsNiArMjY1LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0Q3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbkZv
clRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmcm9tRG9t
YWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9Eb21haW4sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAgICAgdm9pZCByZXNldENyb3NzU2l0ZUxvYWRzV2l0aExpbmtEZWNvcmF0
aW9uRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIGhhc0lzb2xhdGVkU2Vzc2lvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KSBjb25zdDsKKyAgICBib29sIGlzSVRQRGF0YWJhc2VFbmFibGVkKCkgY29uc3QgeyByZXR1cm4g
bV9pc0lUUERhdGFiYXNlRW5hYmxlZDsgfQogI2VuZGlmCiAKICAgICB1c2luZyBDYWNoZVN0b3Jh
Z2VSb290UGF0aENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcmJik+OwpA
QCAtNTUwLDYgKzU1MiwxMCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3Jr
SFRUUFNVcGdyYWRlQ2hlY2tlcj4gbV9uZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlcjsKICNlbmRp
ZgogCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyAgICBib29sIG1faXNJ
VFBEYXRhYmFzZUVuYWJsZWQgeyBmYWxzZSB9OworI2VuZGlmCisgICAgCiAgICAgY2xhc3MgU3Rv
cmFnZVF1b3RhTWFuYWdlcnMgewogICAgIHB1YmxpYzoKICAgICAgICAgdWludDY0X3QgZGVmYXVs
dFF1b3RhKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luKSBjb25zdCB7IHJldHVy
biBvcmlnaW4udG9wT3JpZ2luID09IG9yaWdpbi5jbGllbnRPcmlnaW4gPyBtX2RlZmF1bHRRdW90
YSA6IG1fZGVmYXVsdFRoaXJkUGFydHlRdW90YTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggYTNmN2Vh
MzI2NGFmZjAxZDg2Y2QwNzkyYjExNzU1NDMzYWVmMmQwNi4uM2E5NzI5NDYzOTkxZDg4MTE4Mjcy
YTI4MGRkMWYyNDNjY2JhMDEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xMTMsNiArMTEzLDcgQEAg
bWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFN1Ym1pdFRl
bGVtZXRyeShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCiAgICAgU2V0Q2Fj
aGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCiAgICAgU2V0R3JhbmRmYXRoZXJlZChQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNl
RG9tYWluLCBib29sIGlzR3JhbmRmYXRoZXJlZCkgLT4gKCkgQXN5bmMKKyAgICBTZXRVc2VJVFBE
YXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUpCiAgICAgU2V0R3Jh
bmRmYXRoZXJpbmdUaW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRz
KSAtPiAoKSBBc3luYwogICAgIFNldE1heFN0YXRpc3RpY3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgdWludDY0X3QgbWF4aW11bUVudHJ5Q291bnQpIC0+ICgpIEFzeW5jCiAgICAg
U2V0TWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzKSAtPiAoKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCBjM2VlODYzMjk5ZjViY2E4
NjkyMjU2OTI1MTAzODk0YWM4Y2Q0ZTBjLi44MzEwN2ZlZTY0MDZhYjc2NmIyOTg2OTk0ZmU2ZjJi
NWMyYWQ1YTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uLmNwcApAQCAtMTYxLDYgKzE2MSwxMiBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uOjpzZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChib29sIGVuYWJsZSkKICAgICAgICAgbV9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShtX3Jl
c291cmNlTG9hZFN0YXRpc3RpY3NNYW51YWxQcmV2YWxlbnRSZXNvdXJjZSwgW10geyB9KTsKIH0K
IAordm9pZCBOZXR3b3JrU2Vzc2lvbjo6cmVjcmVhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNTdG9y
ZSgpCit7CisgICAgZGVzdHJveVJlc291cmNlTG9hZFN0YXRpc3RpY3MoKTsKKyAgICBtX3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MgPSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNyZWF0
ZSgqdGhpcywgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBtX3Nob3VsZEluY2x1
ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3MpOworfQorCiB2b2lkIE5ldHdvcmtT
ZXNzaW9uOjpub3RpZnlSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUHJvY2Vzc2VkKCkKIHsKICAgICBt
X25ldHdvcmtQcm9jZXNzLT5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpOb3RpZnlSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUHJvY2Vz
c2VkKCksIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lv
bi5oCmluZGV4IDMxOGVjZTRhNDRiMjRjNDVmMWQ3MDY5ZDk4NmEzMzIyYTlhNTAyOWIuLjUzZTlm
ZjdkY2Y1OGY2Y2NiZjIxZjQzMjg0Mzg2Mzk3MWUyZDIwYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAgLTg0LDYgKzg0LDcgQEAgcHVibGlj
OgogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkgY29uc3QgeyByZXR1
cm4gbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmdldCgpOyB9CiAgICAgdm9pZCBzZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChib29sKTsKKyAgICB2b2lkIHJlY3JlYXRlUmVzb3VyY2VM
b2FkU3RhdGlzdGljU3RvcmUoKTsKICAgICB2b2lkIG5vdGlmeVJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NQcm9jZXNzZWQoKTsKICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVE
b21haW5zKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBWZWN0b3I8c3RkOjpwYWlyPFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlPj4mJiwgYm9vbCBzaG91
bGROb3RpZnlQYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEhhc2hTZXQ8V2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4+Jik+JiYpOwogICAgIHZvaWQgcmVnaXN0cmFibGVEb21haW5z
V2l0aFdlYnNpdGVEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBib29sIHNob3VsZE5v
dGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzaFNldDxXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbj4mJik+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKaW5kZXggMTg3ZTgxYTM4NmNjYjU3OTYz
MDc4NTE2YzA5NGExM2IyMTJkZjgyNS4uZTJjZWI5ZGUyZjUwNzFmYjg5MTgzZTFlYjBiOTNlM2Nk
MmUxNjMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJz
aXRlRGF0YVN0b3JlUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCkBAIC0yNjcsNiArMjY3LDEzIEBAIHZvaWQgV0tXZWJz
aXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1dlYnNpdGVEYXRhU3RvcmVS
ZWYgZGF0YVN0b3JlCiAjZW5kaWYKIH0KIAordm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRVc2VJ
VFBEYXRhYmFzZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBib29sIHZhbHVl
KQoreworI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgV2ViS2l0Ojp0
b0ltcGwoZGF0YVN0b3JlUmVmKS0+d2Vic2l0ZURhdGFTdG9yZSgpLnNldFVzZUlUUERhdGFiYXNl
KHZhbHVlKTsKKyNlbmRpZgorfQorCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3Rp
Y3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFT
dG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0KQogewog
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oCmluZGV4IGU0OWRl
MjBiOGYyNGFmMWI3MDZlNzc3NzgxNzUzNDI2ZWQ2ODQwOTcuLmYyZjljNjJiNTIzODJkMjJjMDQz
NmNmMTA4MzhkMmJiYzQ5NTQ5YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oCkBAIC03MCw2ICs3MCw3IEBAIFdLX0VY
UE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbihXS1dlYnNpdGVEYXRhCiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRT
dGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVm
LCBXS1N0cmluZ1JlZiBob3N0LCBib29sIHZhbHVlKTsKIHR5cGVkZWYgdm9pZCAoKldLV2Vic2l0
ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWRGdW5jdGlvbikoYm9vbCBpc0dyYW5k
ZmF0aGVyZWQsIHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNp
dGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLV2Vic2l0ZURhdGFTdG9yZVJl
ZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0
ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWRGdW5jdGlvbiBjYWxsYmFjayk7CitX
S19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRVc2VJVFBEYXRhYmFzZShXS1dlYnNp
dGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBib29sIHZhbHVlKTsKIFdLX0VYUE9SVCB2b2lk
IFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmln
aW4oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwg
V0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0KTsKIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFT
dG9yZVNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oV0tXZWJzaXRl
RGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYg
dG9wRnJhbWVIb3N0KTsKIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRp
c3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRh
dGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgaG9zdFJlZGlyZWN0ZWRU
byk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcAppbmRleCA1MWIzZTkwODA2NmU1ZjhjNDFlZDgwMWY2MWFlOWIxMDE3
ZGY0ODVjLi4xODUwNGFiZjIxNTMyYjczOTAwMTQ3Yjg0YmNmNTA0YTlhZDQ2NzE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAKQEAgLTc3Myw2ICs3NzMsMTQgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpz
ZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXMKICAg
ICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRHcmFuZGZh
dGhlcmVkKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4sIGlzR3JhbmRmYXRoZXJlZCksIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpz
ZXRVc2VJVFBEYXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUpCit7
CisgICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAg
c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFVzZUlUUERhdGFiYXNlKHNlc3Npb25J
RCwgdmFsdWUpLCAwKTsKK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXF1ZXN0U3Rv
cmFnZUFjY2Vzc0NvbmZpcm0oV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4s
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvKiBwYWdlID0g
V2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDg4ZGE3YzA0
ZjY2MmM4N2FiODMzNDkyZGI4ODkwOTY3N2M0NjM4YTAuLmQwYjcxOWFiN2U4MjY4ZjlkZTVjNDgw
YmRmYjkzMjU1ZDZmZGUxZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0xMTYsNiArMTE2LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQs
IE9wdGlvbmFsPFNlY29uZHM+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgc2V0Q2FjaGVNYXhBZ2VDYXAoUEFMOjpTZXNzaW9uSUQsIFNlY29uZHMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lv
bklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0VXNlSVRQRGF0YWJhc2UoUEFM
OjpTZXNzaW9uSUQsIGJvb2wgdmFsdWUpOwogICAgIHZvaWQgc2V0Tm90aWZ5UGFnZXNXaGVuRGF0
YVJlY29yZHNXZXJlU2Nhbm5lZChQQUw6OlNlc3Npb25JRCwgYm9vbCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldElzUnVubmluZ1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NUZXN0KFBBTDo6U2Vzc2lvbklELCBib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwogICAgIHZvaWQgc2V0Tm90aWZ5UGFnZXNXaGVuVGVsZW1ldHJ5V2FzQ2FwdHVyZWQoUEFMOjpT
ZXNzaW9uSUQsIGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwCmluZGV4IDk1YWVkZmUxNDM3OGU2YTU4NDI0ZTc1ZTViM2RlNWE4ZGY4ZWNiNmYuLmZjMzZi
YTg2ZDZiODZkODNlMzlhY2RkNDJjZmE5YTA5ODdlYzIyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBA
IC0xNjQxLDYgKzE2NDEsMTQgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRHcmFuZGZhdGhl
cmVkKGNvbnN0IFVSTCYgdXJsLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgQ28KICAgICB9CiB9CiAK
K3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0VXNlSVRQRGF0YWJhc2UoYm9vbCB2YWx1ZSkKK3sK
KyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgZm9yIChhdXRvJiBwcm9jZXNz
UG9vbCA6IHByb2Nlc3NQb29scygpKQorICAgICAgICBwcm9jZXNzUG9vbC0+ZW5zdXJlTmV0d29y
a1Byb2Nlc3MoKS5zZXRVc2VJVFBEYXRhYmFzZShtX3Nlc3Npb25JRCwgdmFsdWUpOworfQorCiB2
b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb25G
b3JUZXN0aW5nKGNvbnN0IFVSTCYgZnJvbVVSTCwgY29uc3QgVVJMJiB0b1VSTCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChSdW5M
b29wOjppc01haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggZjUyZmFkZWU4Yzg2YmMxYWZjNWQ3MTg4
Y2VhYTI1MWRhZGE5ZGM2My4uZWYxNTA4YTg4YzMyYjBjMWRhOTc4OTU5OGI3ODczOGY1MDJhNTAx
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaApAQCAtMTU0LDYgKzE1NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNj
aGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vzc2luZyhDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc3VibWl0VGVsZW1ldHJ5KCk7CiAgICAgdm9pZCBzZXRH
cmFuZGZhdGhlcmVkKGNvbnN0IFVSTCYsIGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CisgICAgdm9pZCBzZXRVc2VJVFBEYXRhYmFzZShib29sKTsKICAgICB2b2lkIHNldEdyYW5k
ZmF0aGVyaW5nVGltZShTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAg
IHZvaWQgc2V0TGFzdFNlZW4oY29uc3QgVVJMJiwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNj
YW5uZWQoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzYzRmZmZkYWEzZjI5ZjI3ZWVl
NjQ3Zjk1NGE5NTk2ZGM4Y2Y0NzIxLi5lNmRhMWFmNTliM2ExZTMzN2M0NzJkYzk5Zjc0MzIwZTA0
ZDkxMjQ1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjQgQEAKKzIwMTktMDktMjAgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2No
ZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIExheW91dFRlc3RzIHVzaW5nIFJlc291
cmNlTG9hZFN0YXRpc3RpY3MgU1FMaXRlIGJhY2tlbmQgKDE5NTQyMCkgCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTU0MjAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQyMTM1NTE+ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKKworICAgICAgICBBZGRlZCBpbiBsb2dpYyB0byBzZW5kIGEgbWVzc2FnZSBmcm9tIHRo
ZSBVSVByb2Nlc3MgdG8gdGhlIE5ldHdvcmsgICAgICAKKyAgICAgICAgUHJvY2VzcyB3aGljaCB3
aWxsIGluaXRhbGl6ZSB0aGUgSVRQIERhdGFiYXNlIGJhY2tlbmQgdG8gYWxsb3cgZm9yICAgICAg
CisgICAgICAgIGxheW91dCB0ZXN0aW5nLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVz
dFJ1bm5lcjo6c2V0VXNlSVRQRGF0YWJhc2UpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0VXNl
SVRQRGF0YWJhc2UpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
aDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAg
ICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9t
SW5qZWN0ZWRCdW5kbGUpOgorCiAyMDE5LTA5LTEzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW2lPU10gVGVzdFdlYktpdEFQSS5XZWJLaXQu
VExTVmVyc2lvbldlYlNvY2tldCBpcyBhIGZsYWt5IGZhaWx1cmUKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5u
ZXIuaWRsCmluZGV4IGY1MzRiYjAxMGI2ZjZmMTM3MGIwOWJlNTg0ZmI5ODY1MDBmM2I4MjQuLmE2
MzI1MjZhOTc0NDgxOWM5NDE4Y2FlZGMzZDgwMGVjOWI5NjEzMWQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0
UnVubmVyLmlkbApAQCAtMzA5LDYgKzMwOSw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAg
ICBib29sZWFuIGlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihET01TdHJpbmcgaG9z
dE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoRE9NU3RyaW5nIGhv
c3ROYW1lLCBib29sZWFuIHZhbHVlKTsKICAgICBib29sZWFuIGlzU3RhdGlzdGljc0dyYW5kZmF0
aGVyZWQoRE9NU3RyaW5nIGhvc3ROYW1lKTsKKyAgICB2b2lkIHNldFVzZUlUUERhdGFiYXNlKGJv
b2xlYW4gdmFsdWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFt
ZU9yaWdpbihET01TdHJpbmcgaG9zdE5hbWUsIERPTVN0cmluZyB0b3BGcmFtZUhvc3ROYW1lKTsK
ICAgICB2b2lkIHNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oRE9N
U3RyaW5nIGhvc3ROYW1lLCBET01TdHJpbmcgdG9wRnJhbWVIb3N0TmFtZSk7CiAgICAgdm9pZCBz
ZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKERPTVN0cmluZyBob3N0TmFt
ZSwgRE9NU3RyaW5nIGhvc3ROYW1lUmVkaXJlY3RlZFRvKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDE1NzRlYzRj
YzYyODc5YjA4MmFlMjczOGEyZmM4MWQ3MDQwOWQ0ZTYuLjM3MjNiZmIyNjYxYWIyNGY5YmNjNWU5
NWJiOGQ1YzJjZWJmNjYyMzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMTY5NCw3ICsxNjk0LDE1IEBAIHZvaWQg
VGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoSlNTdHJpbmdSZWYgaG9zdE5h
bWUsIGJvb2wgdmFsdWUpCiAgICAgCiAgICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdl
KEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCks
IG1lc3NhZ2VCb2R5LmdldCgpLCBudWxscHRyKTsKIH0KKwordm9pZCBUZXN0UnVubmVyOjpzZXRV
c2VJVFBEYXRhYmFzZShib29sIHZhbHVlKQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVm
PiBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlNl
dFVzZUlUUERhdGFiYXNlIikpOworICAgIFdLUmV0YWluUHRyPFdLQm9vbGVhblJlZj4gbWVzc2Fn
ZUJvZHkgPSBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZSh2YWx1ZSkpOwogICAgIAorICAgIFdLQnVu
ZGxlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVu
ZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSwgbnVsbHB0cik7Cit9
CisKIGJvb2wgVGVzdFJ1bm5lcjo6aXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChKU1N0cmluZ1Jl
ZiBob3N0TmFtZSkKIHsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUg
PSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJJc1N0YXRpc3RpY3NHcmFu
ZGZhdGhlcmVkIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuaAppbmRleCA5MzliNmJlOWQ4ZTUxYTcwNjI1NDVkNDM0NmY1YjQ1Yzdl
YWE1YWUwLi5hZjEwMmU1MDQ1OTBkOTZjNTVmODI2Y2E5N2NlOTEwNGMzMGZlNjIxIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApA
QCAtNDEwLDYgKzQxMCw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzU3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbihKU1N0cmluZ1JlZiBob3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0
aWNzR3JhbmRmYXRoZXJlZChKU1N0cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSk7CiAgICAg
Ym9vbCBpc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKEpTU3RyaW5nUmVmIGhvc3ROYW1lKTsKKyAg
ICB2b2lkIHNldFVzZUlUUERhdGFiYXNlKGJvb2wgdmFsdWUpOwogICAgIHZvaWQgc2V0U3RhdGlz
dGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihKU1N0cmluZ1JlZiBob3N0TmFtZSwgSlNT
dHJpbmdSZWYgdG9wRnJhbWVIb3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3VicmVz
b3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBKU1N0cmluZ1Jl
ZiB0b3BGcmFtZUhvc3ROYW1lKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVu
aXF1ZVJlZGlyZWN0VG8oSlNTdHJpbmdSZWYgaG9zdE5hbWUsIEpTU3RyaW5nUmVmIGhvc3ROYW1l
UmVkaXJlY3RlZFRvKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAK
aW5kZXggOWE5MWY1ZDJmNDg2ODRlOGY1MWRhYzk1M2NjZmEwODJiMzY4MGM1Mi4uM2NlNWM2OGYy
MGEwZjJhNzFlOGFhMmFiOWM4OTQ2MmFiZjI1NjlhYiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTMzNTIsNiArMzM1MiwxMSBAQCBib29sIFRlc3RDb250
cm9sbGVyOjppc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLU3RyaW5nUmVmIGhvc3QpCiAgICAg
cmV0dXJuIGNvbnRleHQucmVzdWx0OwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRVc2VJ
VFBEYXRhYmFzZShib29sIHZhbHVlKQoreworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFVzZUlU
UERhdGFiYXNlKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIHZhbHVlKTsKK30K
Kwogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFt
ZU9yaWdpbihXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3QpCiB7CiAg
ICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9y
aWdpbihUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCBob3N0LCB0b3BGcmFtZUhv
c3QpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5o
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IDgzN2U0YWIy
Y2IwZTY2MTcxY2RlZjQwYmRiMTQ4NmM2ZTBiZDcxNDguLjY3M2YyZGM4ODNlOTQyNWEwZmE1OWI4
MWFjYzhmMjMzOGM3NWExMGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmgKQEAgLTIyMiw2ICsyMjIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1N0YXRpc3RpY3NIYXNI
YWRVc2VySW50ZXJhY3Rpb24oV0tTdHJpbmdSZWYgaG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3Rh
dGlzdGljc0dyYW5kZmF0aGVyZWQoV0tTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpOwog
ICAgIGJvb2wgaXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1N0cmluZ1JlZiBob3N0TmFtZSk7
CisgICAgdm9pZCBzZXRVc2VJVFBEYXRhYmFzZShib29sIHZhbHVlKTsKICAgICB2b2lkIHNldFN0
YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oV0tTdHJpbmdSZWYgaG9zdE5hbWUs
IFdLU3RyaW5nUmVmIHRvcEZyYW1lSG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1
YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihXS1N0cmluZ1JlZiBob3N0TmFtZSwgV0tTdHJp
bmdSZWYgdG9wRnJhbWVIb3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3VicmVzb3Vy
Y2VVbmlxdWVSZWRpcmVjdFRvKFdLU3RyaW5nUmVmIGhvc3ROYW1lLCBXS1N0cmluZ1JlZiBob3N0
TmFtZVJlZGlyZWN0ZWRUbyk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
Y3BwCmluZGV4IDYwN2U1YmJkYjRiMDU2ZWI2YjViNjRlYjAwMTdkYjgwNWMwN2E5OTIuLjMwN2Qy
YWJkMWQ2MWI3YWYzZjE1Njc4OWEwODNjZWVlM2I0NDA1YzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0xMjQxLDYgKzEyNDEsMTQgQEAgV0tSZXRhaW5Q
dHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2Fn
ZUZyb21JbmplY3RlZEIKICAgICAgICAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiByZXN1bHQgPSBh
ZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZShpc0dyYW5kZmF0aGVyZWQpKTsKICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICB9CisKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyht
ZXNzYWdlTmFtZSwgIlNldFVzZUlUUERhdGFiYXNlIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0
VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0Jvb2xlYW5HZXRUeXBlSUQoKSk7CisKKyAgICAgICAg
V0tCb29sZWFuUmVmIHZhbHVlID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihtZXNzYWdlQm9k
eSk7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRVc2VJVFBEYXRhYmFz
ZShXS0Jvb2xlYW5HZXRWYWx1ZSh2YWx1ZSkpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICB9CiAgICAgCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5h
bWUsICJTZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luIikpIHsKICAgICAg
ICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25hcnlHZXRUeXBl
SUQoKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNTdmNmE3OTMyMDEyODZhMTNmZGU5NWM3YTE4NzAwY2U2ZDllMjlmYS4u
ZmIxMmM5M2FhN2EzMDQ3MDdkMzFhZjUxMzI5NDZmNTM3OGEyNjkyOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1OCBAQAorMjAxOS0wOS0yMCAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxl
LmNvbT4KKworICAgICAgICBFbmFibGUgTGF5b3V0VGVzdHMgdXNpbmcgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyBTUUxpdGUgYmFja2VuZCAoMTk1NDIwKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1NDIwIAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTQyMTM1NTE+CisKKyAgICAgICAgQWRkZWQgYSBmbGFnIHRvIGFsbCBJVFAgdGVzdHMgdG8gZW5h
YmxlIHRoZSBJVFAgZGF0YWJhc2UgYmFja2VuZCB0byAKKyAgICAgICAgYWxsb3cgZm9yIHRlc3Rp
bmcgZnVuY3Rpb25hbGl0eSBhZ2FpbnN0IHRoZSBtZW1vcnkgc3RvcmUuIFRlc3RzIHdlcmUgCisg
ICAgICAgIG5vdCBjcmVhdGVkIGZvciB0ZWxlbWV0cnktZ2VuZXJhdGlvbi5odG1sLCAKKyAgICAg
ICAgbG9nLWNyb3NzLXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sLCBvciAKKyAg
ICAgICAgd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUtbmF2aWdhdGVkLXRvLXdpdGgtbGlu
ay1kZWNvcmF0aW9uLmh0bWwsIAorICAgICAgICBiZWNhdXNlIHRoZXNlIHJlbHkgb24gZnVuY3Rp
b25zIG5vdCB5ZXQgaW1wbGVtZW50ZWQgaW4gdGhlIElUUCBkYXRhYmFzZS4KKyAgICAgICAgQWRk
aXRpb25hbGx5LCBhZGRlZCBmbGFncyB0byBzb21lIG1lbW9yeSBzdG9yZSB0ZXN0cyB0byBlbnN1
cmUgdGhleQorICAgICAgICBhcmUgdXNpbmcgdGhlIG1lbW9yeSBzdG9yZSBiZWZvcmUgY2FsbGlu
ZyBmdW5jdGlvbnMgbm90IGltcGxlbWVudGVkIGluCisgICAgICAgIHRoZSBkYXRhYmFzZSBzdG9y
ZSB5ZXQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGly
ZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
YmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Js
b2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0LWltcG9ydC1kYXRhYmFzZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1h
eC1hZ2UtZm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUt
bWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUt
Zm9yLWNvb2tpZS1zZXQtaW4tanMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZv
ci1jb29raWUtc2V0LWluLWpzLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlv
bi1zYW1lLXNpdGUtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1q
cy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFn
bWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZv
ci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2
YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQt
cmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13
aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9t
LXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUt
c2V0LWluLWpzLXdpdGhvdXQtbGluay1kZWNvcmF0aW9uLWZyb20tcHJldmFsZW50LXJlc291cmNl
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13
aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3Rh
dGlzdGljcy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWIt
ZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdp
bnMtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3Vy
Y2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
bm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lu
cy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJj
ZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1w
cmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFz
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3Rp
Y3MtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5k
ZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFs
ZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1
c2lvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3Vi
cmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxl
bnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVj
dC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1z
dWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9y
aWdpbnMtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJj
ZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZh
bGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lv
bi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZy
YW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJh
c2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10by1wcmV2
YWxlbnQtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUt
dW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxl
bnQtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXZlcnktcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlz
dGljcy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFz
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1k
YXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY29va2llLWRlbGV0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlv
bi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0
YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24t
ZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxv
Y2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90
LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2Fw
dHVyZS1zdGF0aXN0aWNzLWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2RvLW5vdC1jYXB0dXJlLXN0YXRpc3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2aWdhdGlvbnMt
ZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90
LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGhvdXQtaW50ZXJh
Y3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRp
b24tdG8tcHJldmFsZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQt
cmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJl
c291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRp
b24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmFi
bGUtZGVidWctbW9kZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFz
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJh
c2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2xvZy1jcm9zcy1zaXRlLWxvYWQtd2l0aC1saW5rLWRlY29yYXRpb24uaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNv
dXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVu
dC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQt
cmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1w
cmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24t
cHJldmFsZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1j
b250ZXh0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nl
c3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94
ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0
YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1s
b2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3Qt
bG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0
aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2Fs
aG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1l
LXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlw
LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hl
ZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3Qt
aXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVz
dGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9z
dC10by1pcC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRi
b3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5n
LXRvLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZhbGVu
dC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1k
YXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFi
YXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxl
bnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZh
bGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1y
ZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC1kYXRhYmFzZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9w
cmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2Uu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3ByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFz
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRh
dGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1k
YXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9z
dC10by1pcC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8t
aXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3Rp
bmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxo
b3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRo
LW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRh
YmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
YW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVj
dC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGlu
Zy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10
by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2Fu
ZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2Nh
bGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0
aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlw
LXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4t
ZGVidWctbW9kZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJj
ZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXBy
ZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVm
ZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFi
YXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1y
ZXF1ZXN0cy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXBy
ZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24t
bmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0
aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy90ZWxlbWV0cnktZ2VuZXJhdGlvbi5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9y
aWdpbi1zdWItZnJhbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9z
cy1vcmlnaW4tc3ViLWZyYW1lLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0
ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNl
ci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10
aW1lLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0
YS1yZW1vdmFsLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0
ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZv
ci1zaXRlLW5hdmlnYXRlZC10by13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sOgorICAgICAgICAq
IHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICBBZGRlZCB0ZXN0IGV4cGVj
dGF0aW9ucyB0byBza2lwIGRhdGFiYXNlIHRlc3RzIHdoaWNoIGRvIG5vdCB3b3JrIGluIAorICAg
ICAgICBpb3MgYmVjYXVzZSBvZiByZWxpYW5jZSBvbiBFdmVudFNlbmRlci5rZXlkb3duKCkgd2hp
Y2ggaXMgbm90CisgICAgICAgIHN1cHBvcnRlZCBvbiBpT1MgYW5kIGFsc28gdGhvc2Ugd2hpY2gg
dXNlIFVJSGVscGVyLmFjdGl2YXRlQXQoKSB3aGljaAorICAgICAgICBkb2VzIG5vdCBwcm9kdWNl
IGEgdXNlciBnZXN0dXJlIGNhcHR1cmVkIGJ5IElUUCBpbiBpT1MuCisKIDIwMTktMDktMTMgIFJ1
c3NlbGwgRXBzdGVpbiAgPHJlcHN0ZWluQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMjQ5NzA5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hZmVmOWNkMjZlODYxYjBmZGIxNGY1ZGMwYjBhMTYwMGY0ZThkYWQ0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw2MyBAQAorVGVzdHMgdGhhdCBibG9ja2luZyBpcyBhZGRlZCBtaWQtZmxpZ2h0IGluIHJlZGly
ZWN0cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAKKworLS0tLS0tLS0KK0ZyYW1lOiAn
PCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29r
aWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlkIG5vdCBy
ZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9uZWRDb29raWUnLgorQ2xpZW50LXNpZGUgZG9j
dW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCisKKy0tLS0tLS0tCitGcmFtZTog
JzwhLS1mcmFtZTItLT4nCistLS0tLS0tLQorUmVkaXJlY3QgY2FzZSAxLCBzaG91bGQgcmVjZWl2
ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlD
b29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9uZWRDb29raWUn
LgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCisK
Ky0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTMtLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2Vp
dmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlD
b29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9uZWRDb29raWUn
LgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0t
ZnJhbWU0LS0+JworLS0tLS0tLS0KK1JlZGlyZWN0IGNhc2UgMiwgc2hvdWxkIHJlY2VpdmUgbm8g
Y29va2llLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScu
CitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitDbGll
bnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTUt
LT4nCistLS0tLS0tLQorVHJ5IHRvIHNldCB0aGlyZC1wYXJ0eSBjb29raWUgaW4gYmxvY2tlZCBt
b2RlLgorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTYtLT4nCistLS0tLS0tLQorQWZ0
ZXIgYXR0ZW1wdGVkIGNvb2tpZSBjcmVhdGlvbiwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llLgor
RGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90
IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitDbGllbnQtc2lkZSBk
b2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTctLT4nCistLS0t
LS0tLQorUmVkaXJlY3QgY2FzZSAzLCBhZnRlciBhdHRlbXB0ZWQgY29va2llIGNyZWF0aW9uLCBz
aG91bGQgcmVjZWl2ZSBubyBjb29raWUuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdm
aXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3BhcnRpdGlv
bmVkQ29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmct
dG8tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wMWQ2M2E1MTY4NzhhMDgzOGQyOThlNzYzZTAzZDJlYjg0NmEwOTlkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTA0
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRh
IGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRl
c3RzIHRoYXQgYmxvY2tpbmcgaXMgYWRkZWQgbWlkLWZsaWdodCBpbiByZWRpcmVjdHMuIik7Cisg
ICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBwYXJ0aXRpb25Ib3N0ID0gIjEy
Ny4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCI7CisgICAgY29uc3QgcmVzb3VyY2VQYXRoID0gIi9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBh
cnR5T3JpZ2luICsgcmVzb3VyY2VQYXRoOworICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVOYW1l
ID0gImZpcnN0UGFydHlDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldEZpcnN0UGFydHlD
b29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsg
IiZ2YWx1ZT12YWx1ZSI7CisgICAgY29uc3QgcGFydGl0aW9uZWRDb29raWVOYW1lID0gInBhcnRp
dGlvbmVkQ29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRQYXJ0aXRpb25lZENvb2tpZSA9
ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsgcGFydGl0aW9uZWRDb29raWVOYW1lICsgIiZ2YWx1
ZT12YWx1ZSI7CisgICAgY29uc3QgcmV0dXJuVXJsID0gImh0dHA6Ly8iICsgcGFydGl0aW9uSG9z
dCArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QuaHRt
bCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMucGhwP25h
bWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImbmFtZTI9IiArIHBhcnRpdGlvbmVkQ29v
a2llTmFtZTsKKyAgICBjb25zdCByZWRpcmVjdENoYWluVXJsID0gImh0dHA6Ly8iICsgcGFydGl0
aW9uSG9zdCArIHJlc291cmNlUGF0aCArICIvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89IiArIHRo
aXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llczsKKworICAgIGZ1bmN0aW9uIG9w
ZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMgPSB1
cmw7CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVtZW50Lm9u
bG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgewor
ICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNh
c2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgLy8gU2V0IGZpcnN0LXBhcnR5IGNvb2tpZSBm
b3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0
aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyBy
ZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgY29va2ll
IGdldHMgc2VudCBmb3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMSBzaW5jZSBsb2NhbGhvc3Qg
aXMgbm90IHByZXZhbGVudC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNo
ID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJs
ICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBmaXJzdC1w
YXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPSAic3RlcDQiOworICAgICAgICAgICAgICAgIC8vIExvYWQgYW4gaWZyYW1lIGluIGEgcmVk
aXJlY3QgY2hhaW4gdGhhdCBzdGFydHMgd2l0aCAxMjcuMC4wLjEgYW5kIGVuZHMgd2l0aCBsb2Nh
bGhvc3QuIEV4cGVjdCBhIGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIG9w
ZW5JZnJhbWUocmVkaXJlY3RDaGFpblVybCArICImbWVzc2FnZT1SZWRpcmVjdCBjYXNlIDEsIHNo
b3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAg
Ly8gU2V0IGxvY2FsaG9zdCBhcyBwcmV2YWxlbnQgdG8gcHV0IGl0IGluIHRoZSBibG9ja2luZyBj
YXRlZ29yeS4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA1
IjsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSh0aGlyZFBhcnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJk
UGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBk
aWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwNSI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBubyBjb29raWUg
Z2V0cyBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCdz
IGNvb2tpZXMgYXJlIGJsb2NrZWQuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aGFzaCA9ICJzdGVwNiI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFz
ZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIG5v
IGNvb2tpZXMuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlICIjc3RlcDYiOgorICAgICAgICAgICAgICAgIC8vIExvYWQgYW4gaWZyYW1lIGluIGEg
cmVkaXJlY3QgY2hhaW4gdGhhdCBzdGFydHMgd2l0aCAxMjcuMC4wLjEgYW5kIGVuZHMgd2l0aCBs
b2NhbGhvc3QuIEV4cGVjdCBubyBjb29raWUgZm9yIGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAg
ICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA3IjsKKyAgICAgICAgICAgICAgICBvcGVu
SWZyYW1lKHJlZGlyZWN0Q2hhaW5VcmwgKyAiJm1lc3NhZ2U9UmVkaXJlY3QgY2FzZSAyLCBzaG91
bGQgcmVjZWl2ZSBubyBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlICIjc3RlcDciOgorICAgICAgICAgICAgICAgIC8vIFRyeSB0byBz
ZXQgY29va2llIGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xLgorICAgICAgICAgICAgICAg
IGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDgiOworICAgICAgICAgICAgICAgIG9wZW5J
ZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRQYXJ0aXRpb25lZENvb2tpZSAr
ICImbWVzc2FnZT1UcnkgdG8gc2V0IHRoaXJkLXBhcnR5IGNvb2tpZSBpbiBibG9ja2VkIG1vZGUu
IiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIj
c3RlcDgiOgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgbm8gY29va2llIGdldHMgc2Vu
dCBmb3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMSBzaW5jZSBsb2NhbGhvc3QncyBjb29raWVz
IGFyZSBibG9ja2VkLgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAi
c3RlcDkiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBz
dWJQYXRoVG9HZXRDb29raWVzICsgICImbWVzc2FnZT1BZnRlciBhdHRlbXB0ZWQgY29va2llIGNy
ZWF0aW9uLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDkiOgorICAgICAgICAgICAgICAg
IC8vIExvYWQgYW4gaWZyYW1lIGluIGEgcmVkaXJlY3QgY2hhaW4gdGhhdCBzdGFydHMgd2l0aCAx
MjcuMC4wLjEgYW5kIGVuZHMgd2l0aCBsb2NhbGhvc3QuIEV4cGVjdCBubyBjb29raWUgZm9yIGxv
Y2FsaG9zdC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAx
MCI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZShyZWRpcmVjdENoYWluVXJsICsgIiZtZXNz
YWdlPVJlZGlyZWN0IGNhc2UgMywgYWZ0ZXIgYXR0ZW1wdGVkIGNvb2tpZSBjcmVhdGlvbiwgc2hv
dWxkIHJlY2VpdmUgbm8gY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxMCI6CisgICAgICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIikg
eworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3YXMgY2xhc3NpZmllZCBhcyBw
cmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0cy4iKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAg
ICAgfSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcnVuVGVzdCgpOworICAgIH0KKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Jsb2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0LWltcG9y
dC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Y2I3OTk0M2VkOGI0OWE4NDFiZDEyOWIzZjVh
Y2E2ZTJhM2IyMWJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Jsb2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0LWltcG9y
dC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorVGVzdCBmb3IgY29va2ll
IGJsb2NraW5nIHdoZW4gd2ViIHdvcmtlcnMgaW1wb3J0IGNyb3NzLXNpdGUgc2NyaXB0cy4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgRGlkIHJlY2VpdmUgZmlyc3RQYXJ0
eUNvb2tpZSA9PSB2YWx1ZQorUEFTUyBEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkIGZpcnN0
UGFydHlDb29raWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorU2hv
dWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLgorUmVjZWl2ZWQgY29va2llIG5hbWVkICdm
aXJzdFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQYXJ0
eUNvb2tpZT12YWx1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2Jsb2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0LWltcG9ydC1kYXRh
YmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2Jsb2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0LWltcG9ydC1kYXRhYmFzZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmNjMjAxMDg1MTA2NWFjYTg0YTJhMmY4ZTk5NzkwNzgxODU3ZmIxOWIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
YmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLmh0bWwKQEAgLTAs
MCArMSw4OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgZm9yIGNvb2tpZSBibG9ja2lu
ZyB3aGVuIHdlYiB3b3JrZXJzIGltcG9ydCBjcm9zcy1zaXRlIHNjcmlwdHMuIik7CisgICAganNU
ZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBwYXJ0aXRpb25Ib3N0ID0gIjEyNy4wLjAu
MTo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsg
Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3QgZmlyc3RQYXJ0
eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0
Rmlyc3RQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsgZmlyc3RQYXJ0eUNv
b2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCByZXR1cm5VcmwgPSAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdv
cmtlci1zY3JpcHQtaW1wb3J0Lmh0bWwiOworICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tpZXMg
PSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWU7CisKKyAg
ICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25z
dCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVs
ZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAg
ICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAgbGV0IHJlY2Vp
dmVkTWVzc2FnZXMgPSAwOworICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7Cisg
ICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAg
ICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAi
IikpOworCisgICAgICAgICsrcmVjZWl2ZWRNZXNzYWdlczsKKyAgICAgICAgaWYgKHJlY2VpdmVk
TWVzc2FnZXMgPj0gMikgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5s
b2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhU
b1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyByZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAgICAgICAg
b3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1l
c3NhZ2U9U2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLiIsIHJ1blRlc3QpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAzIjoKKyAgICAgICAg
ICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA0IjsKKyAgICAgICAgICAgICAg
ICBsZXQgdzEgPSBuZXcgV29ya2VyKCJyZXNvdXJjZXMvd29ya2VyLWltcG9ydGluZy1sb2NhbGhv
c3Qtc2NyaXB0LmpzIik7CisgICAgICAgICAgICAgICAgdzEub25tZXNzYWdlID0gcmVjZWl2ZU1l
c3NhZ2U7CisgICAgICAgICAgICAgICAgdzEucG9zdE1lc3NhZ2UoInNob3VsZFJlY2VpdmVDb29r
aWVzPXRydWUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNz
dGVwNCI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNSI7
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBh
cnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlk
IG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcocnVuVGVzdCk7Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlICIjc3RlcDUiOgorICAgICAgICAgICAgICAgIGxldCB3MiA9IG5ldyBXb3JrZXIoInJlc291
cmNlcy93b3JrZXItaW1wb3J0aW5nLWxvY2FsaG9zdC1zY3JpcHQuanMiKTsKKyAgICAgICAgICAg
ICAgICB3Mi5vbm1lc3NhZ2UgPSByZWNlaXZlTWVzc2FnZTsKKyAgICAgICAgICAgICAgICB3Mi5w
b3N0TWVzc2FnZSgic2hvdWxkTm90UmVjZWl2ZUNvb2tpZXMiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0
ID09PSBwYXJ0aXRpb25Ib3N0ICYmIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiICYmIHdp
bmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3Rl
cDEiOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAg
ICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRo
aXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3
YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0
cy4iKTsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgcnVuVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcC1jYWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nh
cC1jYWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjBjY2U1YWExYzM2YTk0ZDU1MGJkZTIyOWFkZTQ0NmZmODM1NWMxY2IK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1hZ2UtZm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMgdGhhdCBjYWNoZSBtYXgtYWdl
IGlzIGNhcHBlZCBmb3IgcHJldmFsZW50IHJlc291cmNlcy4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgbG9hZGVkVXJsIGlzICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9MTIzNCIK
K1BBU1MgbG9hZGVkVXJsIGlzICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9NDMyMSIKK1BBU1MgbG9hZGVk
VXJsIGlzICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNv
dXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9IgorUEFTUyBsb2FkZWRVcmwgaXMgImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXF1ZXJ5
LnBocD92YWx1ZT0iCitQQVNTIGxvYWRlZFVybCBpcyAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPSIKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNh
Y2hlLW1heC1hZ2UtZm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdl
LWZvci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNjRhNDUx
OGE4MzM5NDYwOTA3MzMzNzNmMWY2MDIxNjNhYWI5MzJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1jYWNoZS1tYXgt
YWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDExMyBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJl
c291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIENhcHBlZCBD
YWNoZSBNYXgtQWdlPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNj
cmlwdGlvbigiVGVzdHMgdGhhdCBjYWNoZSBtYXgtYWdlIGlzIGNhcHBlZCBmb3IgcHJldmFsZW50
IHJlc291cmNlcy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIHZhciBsb2Fk
ZWRVcmw7CisgICAgZnVuY3Rpb24gZmlyc3RGZXRjaCgpIHsKKyAgICAgICAgLy8gVGhpcyBzaG91
bGQgY3JlYXRlIGEgY2FwcGVkIGNhY2hlIGVudHJ5LgorICAgICAgICBmZXRjaCgiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2NhY2hlZC1wZXJt
YW5lbnQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjYWNo
ZTogInJlbG9hZCIsCisgICAgICAgICAgICAgICAgaGVhZGVyczogeworICAgICAgICAgICAgICAg
ICAgICAiWC1XZWJLaXQiOiAiMTIzNCIsCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fQorICAgICAgICApLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGxvYWRl
ZFVybCA9IHJlc3BvbnNlLnVybDsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
bG9hZGVkVXJsIiwgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3Jlc291cmNlcy9lY2hvLXF1ZXJ5LnBocD92YWx1ZT0xMjM0Iik7CisgICAgICAgICAgICBzZWNv
bmRGZXRjaCgpOworICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAg
ICAgdGVzdEZhaWxlZChlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0
aW9uIHNlY29uZEZldGNoKCkgeworICAgICAgICAvLyBUaGlzIHNob3VsZCBub3QgdHJpZ2dlciBh
IHN1Y2Nlc3NmdWwgY2FjaGUgaGl0IGFuZCBpbnN0ZWFkIGNyZWF0ZSBhbm90aGVyIGNhcHBlZCBj
YWNoZSBlbnRyeS4KKyAgICAgICAgZmV0Y2goImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9jYWNoZWQtcGVybWFuZW50LXJlZGlyZWN0LnBocCIs
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY2FjaGU6ICJmb3JjZS1jYWNoZSIsCisg
ICAgICAgICAgICAgICAgaGVhZGVyczogeworICAgICAgICAgICAgICAgICAgICAiWC1XZWJLaXQi
OiAiNDMyMSIsCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICApLnRo
ZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGxvYWRlZFVybCA9IHJlc3BvbnNl
LnVybDsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibG9hZGVkVXJsIiwgImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hv
LXF1ZXJ5LnBocD92YWx1ZT00MzIxIik7CisgICAgICAgICAgICB0aGlyZEZldGNoKCk7CisgICAg
ICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKGVy
cm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNo
SlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGhpcmRGZXRjaCgp
IHsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgbm90IHRyaWdnZXIgYSBzdWNjZXNzZnVsIGNhY2hl
IGhpdCBhbmQgaW5zdGVhZCBjcmVhdGUgYW5vdGhlciBjYXBwZWQgY2FjaGUgZW50cnkuCisgICAg
ICAgIGZldGNoKCJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9y
ZXNvdXJjZXMvY2FjaGVkLXBlcm1hbmVudC1yZWRpcmVjdC5waHAiLAorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIGNhY2hlOiAiZm9yY2UtY2FjaGUiLAorICAgICAgICAgICAgfQorICAg
ICAgICApLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGxvYWRlZFVybCA9
IHJlc3BvbnNlLnVybDsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibG9hZGVk
VXJsIiwgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291
cmNlcy9lY2hvLXF1ZXJ5LnBocD92YWx1ZT0iKTsKKyAgICAgICAgICAgIGZvdXJ0aEZldGNoKCk7
CisgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgICAgICB0ZXN0RmFp
bGVkKGVycm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZm91cnRo
RmV0Y2goKSB7CisgICAgICAgIC8vIFRoaXMgc2hvdWxkIG5vdCB0cmlnZ2VyIGEgc3VjY2Vzc2Z1
bCBjYWNoZSBoaXQgYnV0IGNsZWFyIGNhcHBpbmcuCisgICAgICAgIGZldGNoKCJodHRwOi8vbG9j
YWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvY2FjaGVkLXBlcm1h
bmVudC1yZWRpcmVjdC5waHAiLAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhY2hl
OiAiZm9yY2UtY2FjaGUiLAorICAgICAgICAgICAgfQorICAgICAgICApLnRoZW4oZnVuY3Rpb24o
cmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGxvYWRlZFVybCA9IHJlc3BvbnNlLnVybDsKKyAgICAg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibG9hZGVkVXJsIiwgImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXF1ZXJ5LnBocD92
YWx1ZT0iKTsKKyAgICAgICAgICAgIGZpZnRoRmV0Y2goKTsKKyAgICAgICAgfSkuY2F0Y2goZnVu
Y3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoZXJyb3IubWVzc2FnZSk7Cisg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAg
ICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaWZ0aEZldGNoKCkgeworICAgICAgICAvLyBU
aGlzIHNob3VsZCB0cmlnZ2VyIGEgcmVndWxhciwgc3VjY2Vzc2Z1bCBjYWNoZSBoaXQuCisgICAg
ICAgIGZldGNoKCJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9y
ZXNvdXJjZXMvY2FjaGVkLXBlcm1hbmVudC1yZWRpcmVjdC5waHAiLAorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgIlgtV2ViS2l0
IjogIjEyMzQiLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgKS50
aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBsb2FkZWRVcmwgPSByZXNwb25z
ZS51cmw7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxvYWRlZFVybCIsICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNo
by1xdWVyeS5waHA/dmFsdWU9Iik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgeworICAg
ICAgICAgICAgdGVzdEZhaWxlZChlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0pOworICAgIH0KKyAgICB0
ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgIHNldEVuYWJsZUZlYXR1cmUo
dHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IikpCisgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJMb2NhbGhvc3Qgd2FzIGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9y
ZSB0aGUgdGVzdCBzdGFydGVkLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c0NhY2hlTWF4QWdlQ2FwKDApOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIsIHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcoZmlyc3RG
ZXRjaCk7CisgICAgICAgIH0pOworICAgIH0pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBw
ZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ4NDYyMGQ2ZDMzMTIxMTY0NTFhOGE1OWM4NGJlNjE3NjRjNDZlMzEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDExIEBACitDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZh
U2NyaXB0IHdpdGggbWF4LWFnZSBvciBleHBpcnkgbG9uZ2VyIHRoYW4gYSB3ZWVrIGdldCBjYXBw
ZWQgdG8gYSB3ZWVrLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUg
dHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAxNzI4
MzAgc2Vjb25kcy4KK1BBU1MgVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJl
IGFmdGVyIG1vcmUgdGhhbiA2MDQ4MzAgc2Vjb25kcy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUt
c2V0LWluLWpzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLWRhdGFi
YXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZTJmZmQwNDFhZTMyZGUyODYwM2I4MTkxMDMwY2U4YTMwNWQy
NjI2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtZGF0YWJh
c2UuaHRtbApAQCAtMCwwICsxLDgzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iL2Nvb2tpZXMvcmVzb3VyY2VzL2Nvb2tpZS11dGlsaXRpZXMu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9u
KCJDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IHdpdGggbWF4LWFnZSBv
ciBleHBpcnkgbG9uZ2VyIHRoYW4gYSB3ZWVrIGdldCBjYXBwZWQgdG8gYSB3ZWVrLiIpOworICAg
IGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2Uo
dHJ1ZSk7CisKKyAgICBpZiAoaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisKKyAgICBsZXQgcGFzc2VkVGVzdHMgPSAw
OworICAgIGZ1bmN0aW9uIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWVE
YXRhLCBtYXhBZ2VJblNlY29uZHMpIHsKKyAgICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7Cisg
ICAgICAgIGxldCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPSBub3cuZ2V0VGltZSgpICsg
KG1heEFnZUluU2Vjb25kcyAqIDEwMDApOworCisgICAgICAgIGlmIChtYXhFeHBpcnlEYXRlSW5N
aWxsaXNlY29uZHMgPiBjb29raWVEYXRhWyJleHBpcmVzIl0pCisgICAgICAgICAgICArK3Bhc3Nl
ZFRlc3RzOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgbmFt
ZWQgIiArIGNvb2tpZURhdGFbIm5hbWUiXSArICIgZXhwaXJlcyBpbiBtb3JlIHRoYW4gIiArIG1h
eEFnZUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICB9CisKKyAgICBjb25zdCB0d29EYXlz
SW5TZWNvbmRzID0gMiAqIDI0ICogNjAgKiA2MDsKKyAgICBjb25zdCBzaG9ydExpdmVkQ29va2ll
TWF4QWdlID0geyBuYW1lIDogInNob3J0TGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJN
YXgtQWdlPSIgKyB0d29EYXlzSW5TZWNvbmRzICsgIjsiIH07CisgICAgZG9jdW1lbnQuY29va2ll
ID0gc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBzaG9ydExpdmVk
Q29va2llTWF4QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgY29uc3QgdHdvRGF5c0Fz
RXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdvRGF5c0luU2Vjb25k
cyk7CisgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAic2hvcnRM
aXZlZENvb2tpZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d29EYXlzQXNFeHBp
cmVzRGF0ZSArICI7IiB9OworICAgIGRvY3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29raWVF
eHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0
aW1lICsgIiBwYXRoPS8iOworCisgICAgY29uc3Qgb25lV2Vla0luU2Vjb25kcyA9IDcgKiAyNCAq
IDYwICogNjA7CisgICAgY29uc3QgdHdvV2Vla3NJblNlY29uZHMgPSAyICogb25lV2Vla0luU2Vj
b25kczsKKyAgICBjb25zdCBsb25nTGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUgOiAibG9uZ0xp
dmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdvV2Vla3NJblNlY29u
ZHMgKyAiOyIgfTsKKyAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVNYXhBZ2Uu
bmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1lICsgIiBw
YXRoPS8iOworCisgICAgY29uc3QgdHdvV2Vla3NBc0V4cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJl
c0RhdGVGcm9tTWF4QWdlKHR3b1dlZWtzSW5TZWNvbmRzKTsKKyAgICBjb25zdCBsb25nTGl2ZWRD
b29raWVFeHBpcmVzID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZUV4cGlyZXMiLCBsaWZldGlt
ZSA6ICJFeHBpcmVzPSIgKyB0d29XZWVrc0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICBkb2N1
bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiAr
IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICBjb25z
dCBvdmVyVHdvRGF5c0luU2Vjb25kcyA9IHR3b0RheXNJblNlY29uZHMgKyAzMDsKKyAgICBjb25z
dCBvdmVyT25lV2Vla0luU2Vjb25kcyA9IG9uZVdlZWtJblNlY29uZHMgKyAzMDsKKyAgICBpZiAo
aW50ZXJuYWxzKSB7CisgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMo
KTsKKyAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ik5vIGNvb2tpZXMgZm91bmQuIik7CisgICAgICAgIGZvciAobGV0IGNvb2tpZSBvZiBjb29raWVz
KSB7CisgICAgICAgICAgICBzd2l0Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAgICAgICAgICAgICAg
Y2FzZSBzaG9ydExpdmVkQ29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgIGNo
ZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJUd29EYXlzSW5TZWNv
bmRzKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBz
aG9ydExpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAgICAgICBjaGVja1Ro
YXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdvRGF5c0luU2Vjb25kcyk7
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xp
dmVkQ29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tp
ZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVXZWVrSW5TZWNvbmRzKTsKKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29r
aWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNO
b3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVXZWVrSW5TZWNvbmRzKTsKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXNl
dENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAgaWYgKHBhc3NlZFRlc3RzID09
PSA0KSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tp
ZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3ZlclR3b0RheXNJblNlY29uZHMg
KyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIGxvbmctbGl2
ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBvdmVyT25lV2Vla0lu
U2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJpYnV0ZSB3YXMgYmV5b25k
IHRoZSB0ZXN0IHRocmVzaG9sZHMuIik7CisgICAgfSBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQo
Ik5vIGludGVybmFscyBvYmplY3QuIik7CisKKyAgICBpZiAoaW50ZXJuYWxzKQorICAgICAgICBp
bnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCisgICAg
ZmluaXNoSlNUZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlm
ZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1zaXRl
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1s
aW5rLWRlY29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hNDk1NDVhMDM0ZDNhZjI1OTBjOTkzMzdkMjMwNWE5YmVmZGJhNDEwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBl
ZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1l
LXNpdGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0NoZWNrIHRoYXQg
Y29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBzYW1lLXNpdGUgbmF2aWdhdGlv
biB3aXRoIGxpbmsgZGVjb3JhdGlvbiBkb24ndCBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgdHdvIGxvbmctbGl2ZWQgY29v
a2llcyBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDg2NDMwIHNlY29uZHMuCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1m
b3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUtZGF0YWJh
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
YXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24t
c2FtZS1zaXRlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWQwOTk5MWIzZmE4YWNkNDgxOTlh
ODUzMjM0ZDI1YWIyODkxNWRjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNlLmh0bWwKQEAg
LTAsMCArMSw4NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKSI+Cis8c2NyaXB0Pgor
ICAgIGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0
IGFmdGVyIGEgc2FtZS1zaXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIGRlY29yYXRpb24gZG9uJ3Qg
Z2V0IGNhcHBlZCB0byAyNCBob3Vycy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
ICAgIGZ1bmN0aW9uIHRlc3RDb29raWVzKCkgeworICAgICAgICBsZXQgcGFzc2VkVGVzdHMgPSAw
OworCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrVGhhdENvb2tpZURvZXNFeHBpcmVBZnRlcihjb29r
aWVEYXRhLCBtYXhBZ2VJblNlY29uZHMpIHsKKyAgICAgICAgICAgIGxldCBub3cgPSBuZXcgRGF0
ZSgpOworICAgICAgICAgICAgbGV0IG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA9IG5vdy5n
ZXRUaW1lKCkgKyAobWF4QWdlSW5TZWNvbmRzICogMTAwMCk7CisKKyAgICAgICAgICAgIGlmICht
YXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPCBjb29raWVEYXRhWyJleHBpcmVzIl0pCisgICAg
ICAgICAgICAgICAgKytwYXNzZWRUZXN0czsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJDb29raWUgbmFtZWQgIiArIGNvb2tpZURhdGFbIm5hbWUiXSArICIg
ZXhwaXJlcyBpbiBsZXNzIHRoYW4gIiArIG1heEFnZUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsK
KyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IG9uZURheUluU2Vjb25kcyA9IDI0ICogNjAgKiA2
MDsKKyAgICAgICAgY29uc3QgdHdvRGF5c0luU2Vjb25kcyA9IDIgKiBvbmVEYXlJblNlY29uZHM7
CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJsb25nTGl2
ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d29EYXlzSW5TZWNvbmRz
ICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZU1heEFn
ZS5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAi
IHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdvRGF5c0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVF
eHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdvRGF5c0luU2Vjb25kcyk7CisgICAgICAgIGNvbnN0IGxv
bmdMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llRXhwaXJlcyIs
IGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3b0RheXNBc0V4cGlyZXNEYXRlICsgIjsiIH07Cisg
ICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZSArICI9
Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0vIjsK
KworICAgICAgICBjb25zdCBvdmVyT25lRGF5SW5TZWNvbmRzID0gb25lRGF5SW5TZWNvbmRzICsg
MzA7CisgICAgICAgIGlmIChpbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGxldCBjb29raWVzID0g
aW50ZXJuYWxzLmdldENvb2tpZXMoKTsKKyAgICAgICAgICAgIGlmICghY29va2llcy5sZW5ndGgp
CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gY29va2llcyBmb3VuZC4iKTsKKyAgICAg
ICAgICAgIGZvciAobGV0IGNvb2tpZSBvZiBjb29raWVzKSB7CisgICAgICAgICAgICAgICAgc3dp
dGNoIChjb29raWUubmFtZSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENv
b2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2ll
RG9lc0V4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRD
b29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29r
aWVEb2VzRXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgcmVzZXRDb29raWVzRm9yQ3VycmVudE9yaWdpbigpOworCisgICAgICAg
ICAgICBpZiAocGFzc2VkVGVzdHMgPT09IDIpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2Vk
KCJUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBv
dmVyT25lRGF5SW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQXQgbGVhc3Qgb25lIGNvb2tpZSdzIGV4cGlyeSBh
dHRyaWJ1dGUgd2FzIGJlbG93IHRoZSB0ZXN0IHRocmVzaG9sZHMuIik7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gaW50ZXJuYWxzIG9iamVjdC4iKTsKKworICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAg
IGZ1bmN0aW9uIG5hdmlnYXRlQ3Jvc3NPcmlnaW4oKSB7CisgICAgICAgIGRvY3VtZW50LmxvY2F0
aW9uLmhyZWYgPSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29y
YXRpb24tc2FtZS1zaXRlLmh0bWw/bGluaz1kZWNvcmF0aW9uI2ZyYWdtZW50IjsKKyAgICB9CisK
KyAgICBjb25zdCBkZXN0aW5hdGlvbk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOwor
ICAgIGNvbnN0IHByZXZhbGVudFJlc291cmNlT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0
aW9uLm9yaWdpbiA9PT0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gJiYgZG9jdW1lbnQubG9jYXRp
b24uaGFzaCAhPT0gIiNmcmFnbWVudCIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNv
b2tpZUJsb2NraW5nKG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOwor
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RDb29r
aWVzKCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
YXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZy
b20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNv
b2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNl
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mN2JhZDAzMmM2ZjIyNDU3M2EzMzVk
M2Y3MDQxOWRjYjRiZTQzYTE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNl
dC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0NoZWNrIHRoYXQgY29va2llcyBjcmVh
dGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aCBsaW5r
IGZyYWdtZW50IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIFRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUg
YWZ0ZXIgbW9yZSB0aGFuIDQzMjMwIHNlY29uZHMuCitQQVNTIFRoZSB0d28gbG9uZy1saXZlZCBj
b29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gODY0MzAgc2Vjb25kcy4KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxp
ZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZh
bGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13
aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41Yzg0ZmI4OTRmOTliMzI3YzE3NzNlMjAwN2RjMTBkOTFjMmE4Nzk5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21l
bnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDEwMSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9j
b29raWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0
aW9uKCJDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgY3Jv
c3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBmcmFnbWVudCBnZXQgY2FwcGVkIHRvIDI0IGhv
dXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rpb24gdGVzdENv
b2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7CisgICAgICAgIGZ1bmN0aW9u
IGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWVEYXRhLCBtYXhBZ2VJblNl
Y29uZHMpIHsKKyAgICAgICAgICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpOworICAgICAgICAgICAg
bGV0IG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA9IG5vdy5nZXRUaW1lKCkgKyAobWF4QWdl
SW5TZWNvbmRzICogMTAwMCk7CisKKyAgICAgICAgICAgIGlmIChtYXhFeHBpcnlEYXRlSW5NaWxs
aXNlY29uZHMgPiBjb29raWVEYXRhWyJleHBpcmVzIl0pCisgICAgICAgICAgICAgICAgKytwYXNz
ZWRUZXN0czsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJD
b29raWUgbmFtZWQgIiArIGNvb2tpZURhdGFbIm5hbWUiXSArICIgZXhwaXJlcyBpbiBtb3JlIHRo
YW4gIiArIG1heEFnZUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGNvbnN0IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzID0gMTIgKiA2MCAqIDYwOworICAgICAgICBj
b25zdCBzaG9ydExpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogInNob3J0TGl2ZWRDb29raWVN
YXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d2VsdmVIb3Vyc0luU2Vjb25kcyArICI7
IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29va2llTWF4QWdlLm5h
bWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBh
dGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdlbHZlSG91cnNBc0V4cGlyZXNEYXRlID0gY3JlYXRl
RXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgY29u
c3Qgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAic2hvcnRMaXZlZENvb2tpZUV4
cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d2VsdmVIb3Vyc0FzRXhwaXJlc0RhdGUg
KyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZUV4cGly
ZXMubmFtZSArICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUg
KyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0gMiAqIHR3ZWx2
ZUhvdXJzSW5TZWNvbmRzOworICAgICAgICBjb25zdCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIG9u
ZURheUluU2Vjb25kczsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBu
YW1lIDogImxvbmdMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3
b0RheXNJblNlY29uZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xp
dmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFn
ZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVz
RGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAg
ICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRD
b29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0Rh
dGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhw
aXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1l
ICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyA9
IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgMzA7CisgICAgICAgIGNvbnN0IG92ZXJPbmVEYXlJblNl
Y29uZHMgPSBvbmVEYXlJblNlY29uZHMgKyAzMDsKKyAgICAgICAgaWYgKGludGVybmFscykgewor
ICAgICAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAg
ICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJO
byBjb29raWVzIGZvdW5kLiIpOworICAgICAgICAgICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tp
ZXMpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAgICAgICAg
ICAgICAgICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAg
ICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3Zl
clR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIo
Y29va2llLCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llTWF4QWdl
Lm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhw
aXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZUV4
cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNO
b3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAgICAg
IGlmIChwYXNzZWRUZXN0cyA9PT0gNCkgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRo
ZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIg
KyBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFm
dGVyIG1vcmUgdGhhbiAiICsgb3Zlck9uZURheUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAg
ICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkF0IGxlYXN0IG9u
ZSBjb29raWUncyBleHBpcnkgYXR0cmlidXRlIHdhcyBiZXlvbmQgdGhlIHRlc3QgdGhyZXNob2xk
cy4iKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5h
bHMgb2JqZWN0LiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpT
VGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAg
ICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13
aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbCNsaW5rPWZyYWdt
ZW50IjsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5hdGlvbk9yaWdpbiA9ICJodHRwOi8vbG9j
YWxob3N0OjgwMDAiOworICAgIGNvbnN0IHByZXZhbGVudFJlc291cmNlT3JpZ2luID0gImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYg
KGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4pIHsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNv
dXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgh
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJj
ZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKG5hdmlnYXRlQ3Jvc3NP
cmlnaW4pOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RDb29raWVzKCk7CisgICAgICAgIH0KKyAgICB9Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNv
dXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdp
dGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlOThkYzhmOTBlMmRhMWIxOTgzYjQ4ZGMxODZl
YWQ3YTY5NjVkN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0NoZWNrIHRoYXQgY29va2llcyBj
cmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aCBs
aW5rIHF1ZXJ5IGFuZCBmcmFnbWVudCBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMg
ZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA0MzIzMCBzZWNvbmRzLgorUEFTUyBUaGUgdHdv
IGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDg2NDMwIHNl
Y29uZHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnkt
YW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1l
LWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1w
cmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNTkxZWI0ZTk1OGZi
MWI1MGRiN2Y4MjJhMjAwZWNjYzY3MzgyNDE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3It
Y29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFs
ZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMDEgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvY29va2llcy9yZXNvdXJj
ZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91
dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhh
dCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdh
dGlvbiB3aXRoIGxpbmsgcXVlcnkgYW5kIGZyYWdtZW50IGdldCBjYXBwZWQgdG8gMjQgaG91cnMu
Iik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29va2ll
cygpIHsKKyAgICAgICAgbGV0IHBhc3NlZFRlc3RzID0gMDsKKyAgICAgICAgZnVuY3Rpb24gY2hl
Y2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZURhdGEsIG1heEFnZUluU2Vjb25k
cykgeworICAgICAgICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7CisgICAgICAgICAgICBsZXQg
bWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93LmdldFRpbWUoKSArIChtYXhBZ2VJblNl
Y29uZHMgKiAxMDAwKTsKKworICAgICAgICAgICAgaWYgKG1heEV4cGlyeURhdGVJbk1pbGxpc2Vj
b25kcyA+IGNvb2tpZURhdGFbImV4cGlyZXMiXSkKKyAgICAgICAgICAgICAgICArK3Bhc3NlZFRl
c3RzOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tp
ZSBuYW1lZCAiICsgY29va2llRGF0YVsibmFtZSJdICsgIiBleHBpcmVzIGluIG1vcmUgdGhhbiAi
ICsgbWF4QWdlSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICB9CisKKyAgICAgICAg
Y29uc3QgdHdlbHZlSG91cnNJblNlY29uZHMgPSAxMiAqIDYwICogNjA7CisgICAgICAgIGNvbnN0
IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUgOiAic2hvcnRMaXZlZENvb2tpZU1heEFn
ZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgIjsiIH07
CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZSAr
ICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0v
IjsKKworICAgICAgICBjb25zdCB0d2VsdmVIb3Vyc0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBp
cmVzRGF0ZUZyb21NYXhBZ2UodHdlbHZlSG91cnNJblNlY29uZHMpOworICAgICAgICBjb25zdCBz
aG9ydExpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJzaG9ydExpdmVkQ29va2llRXhwaXJl
cyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0ZSArICI7
IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5u
YW1lICsgIj1mb29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSArICIg
cGF0aD0vIjsKKworICAgICAgICBjb25zdCBvbmVEYXlJblNlY29uZHMgPSAyICogdHdlbHZlSG91
cnNJblNlY29uZHM7CisgICAgICAgIGNvbnN0IHR3b0RheXNJblNlY29uZHMgPSAyICogb25lRGF5
SW5TZWNvbmRzOworICAgICAgICBjb25zdCBsb25nTGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUg
OiAibG9uZ0xpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdvRGF5
c0luU2Vjb25kcyArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRD
b29raWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llTWF4QWdlLmxp
ZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3b0RheXNBc0V4cGlyZXNEYXRl
ID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3b0RheXNJblNlY29uZHMpOworICAgICAg
ICBjb25zdCBsb25nTGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tp
ZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d29EYXlzQXNFeHBpcmVzRGF0ZSAr
ICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVFeHBpcmVz
Lm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAi
IHBhdGg9LyI7CisKKyAgICAgICAgY29uc3Qgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzID0gdHdl
bHZlSG91cnNJblNlY29uZHMgKyAzMDsKKyAgICAgICAgY29uc3Qgb3Zlck9uZURheUluU2Vjb25k
cyA9IG9uZURheUluU2Vjb25kcyArIDMwOworICAgICAgICBpZiAoaW50ZXJuYWxzKSB7CisgICAg
ICAgICAgICBsZXQgY29va2llcyA9IGludGVybmFscy5nZXRDb29raWVzKCk7CisgICAgICAgICAg
ICBpZiAoIWNvb2tpZXMubGVuZ3RoKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGNv
b2tpZXMgZm91bmQuIik7CisgICAgICAgICAgICBmb3IgKGxldCBjb29raWUgb2YgY29va2llcykg
eworICAgICAgICAgICAgICAgIHN3aXRjaCAoY29va2llLm5hbWUpIHsKKyAgICAgICAgICAgICAg
ICAgICAgY2FzZSBzaG9ydExpdmVkQ29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAg
ICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdl
bHZlSG91cnNJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29r
aWUsIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29raWVNYXhBZ2UubmFt
ZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVB
ZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llRXhwaXJl
cy5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4
cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIHJlc2V0Q29va2llc0ZvckN1cnJlbnRPcmlnaW4oKTsKKworICAgICAgICAgICAgaWYg
KHBhc3NlZFRlc3RzID09PSA0KSB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3
byBzaG9ydC1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92
ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIg
bW9yZSB0aGFuICIgKyBvdmVyT25lRGF5SW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQXQgbGVhc3Qgb25lIGNv
b2tpZSdzIGV4cGlyeSBhdHRyaWJ1dGUgd2FzIGJleW9uZCB0aGUgdGVzdCB0aHJlc2hvbGRzLiIp
OworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGludGVybmFscyBv
YmplY3QuIik7CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBuYXZpZ2F0ZUNyb3NzT3JpZ2luKCkgeworICAgICAg
ICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gZGVzdGluYXRpb25PcmlnaW4gKyAiL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgt
bGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbD9saW5r
PXF1ZXJ5I2xpbms9ZnJhZ21lbnQiOworICAgIH0KKworICAgIGNvbnN0IGRlc3RpbmF0aW9uT3Jp
Z2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgcHJldmFsZW50UmVzb3Vy
Y2VPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBmdW5jdGlvbiBydW5UZXN0
KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luID09PSBwcmV2YWxlbnRS
ZXNvdXJjZU9yaWdpbikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFz
ZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHByZXZhbGVudFJlc291cmNlT3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tp
bmcobmF2aWdhdGVDcm9zc09yaWdpbik7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdENvb2tpZXMoKTsKKyAg
ICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQt
cmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1q
cy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQ0NWRkMTZjMmVlMDEwODBlM2MxZjFiNDAyMDZiNjZhODAyZTBh
YzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGlu
ay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMSBAQAorQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBh
ZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVlcnkgZ2V0IGNhcHBlZCB0
byAyNCBob3Vycy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHR3
byBzaG9ydC1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gNDMyMzAg
c2Vjb25kcy4KK1BBU1MgVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFm
dGVyIG1vcmUgdGhhbiA4NjQzMCBzZWNvbmRzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQt
aW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVk
LWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZh
bGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1ZjA5NzZiMjQ4NjY2Njg5
YzE4MWFhNTk1ZjBjMThmZjZhZjA1MGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRh
YmFzZS5odG1sCkBAIC0wLDAgKzEsMTAxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2Nvb2tpZXMvcmVzb3VyY2VzL2Nvb2tpZS11dGlsaXRp
ZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1blRlc3QoKScsIDAp
Ij4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkNoZWNrIHRoYXQgY29va2llcyBjcmVhdGVk
IGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIHF1
ZXJ5IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7
CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29va2llcygpIHsKKyAgICAgICAgbGV0IHBhc3NlZFRlc3Rz
ID0gMDsKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVy
KGNvb2tpZURhdGEsIG1heEFnZUluU2Vjb25kcykgeworICAgICAgICAgICAgbGV0IG5vdyA9IG5l
dyBEYXRlKCk7CisgICAgICAgICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0g
bm93LmdldFRpbWUoKSArIChtYXhBZ2VJblNlY29uZHMgKiAxMDAwKTsKKworICAgICAgICAgICAg
aWYgKG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA+IGNvb2tpZURhdGFbImV4cGlyZXMiXSkK
KyAgICAgICAgICAgICAgICArK3Bhc3NlZFRlc3RzOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBuYW1lZCAiICsgY29va2llRGF0YVsibmFtZSJd
ICsgIiBleHBpcmVzIGluIG1vcmUgdGhhbiAiICsgbWF4QWdlSW5TZWNvbmRzICsgIiBzZWNvbmRz
LiIpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgdHdlbHZlSG91cnNJblNlY29uZHMgPSAx
MiAqIDYwICogNjA7CisgICAgICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5h
bWUgOiAic2hvcnRMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3
ZWx2ZUhvdXJzSW5TZWNvbmRzICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNo
b3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENvb2tp
ZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCB0d2VsdmVIb3Vy
c0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdlbHZlSG91cnNJ
blNlY29uZHMpOworICAgICAgICBjb25zdCBzaG9ydExpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFt
ZSA6ICJzaG9ydExpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3
ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0ZSArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUg
PSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBzaG9ydExpdmVk
Q29va2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCBvbmVE
YXlJblNlY29uZHMgPSAyICogdHdlbHZlSG91cnNJblNlY29uZHM7CisgICAgICAgIGNvbnN0IHR3
b0RheXNJblNlY29uZHMgPSAyICogb25lRGF5SW5TZWNvbmRzOworICAgICAgICBjb25zdCBsb25n
TGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llTWF4QWdlIiwgbGlm
ZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdvRGF5c0luU2Vjb25kcyArICI7IiB9OworICAgICAgICBk
b2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAi
ICsgbG9uZ0xpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAg
IGNvbnN0IHR3b0RheXNBc0V4cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdl
KHR3b0RheXNJblNlY29uZHMpOworICAgICAgICBjb25zdCBsb25nTGl2ZWRDb29raWVFeHBpcmVz
ID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVz
PSIgKyB0d29EYXlzQXNFeHBpcmVzRGF0ZSArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29r
aWUgPSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZl
ZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3Qgb3Zl
clR3ZWx2ZUhvdXJzSW5TZWNvbmRzID0gdHdlbHZlSG91cnNJblNlY29uZHMgKyAzMDsKKyAgICAg
ICAgY29uc3Qgb3Zlck9uZURheUluU2Vjb25kcyA9IG9uZURheUluU2Vjb25kcyArIDMwOworICAg
ICAgICBpZiAoaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBsZXQgY29va2llcyA9IGludGVybmFs
cy5nZXRDb29raWVzKCk7CisgICAgICAgICAgICBpZiAoIWNvb2tpZXMubGVuZ3RoKQorICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGNvb2tpZXMgZm91bmQuIik7CisgICAgICAgICAgICBm
b3IgKGxldCBjb29raWUgb2YgY29va2llcykgeworICAgICAgICAgICAgICAgIHN3aXRjaCAoY29v
a2llLm5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBzaG9ydExpdmVkQ29va2llTWF4
QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90
RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMpOworICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2Ugc2hvcnRMaXZl
ZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENv
b2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyk7
CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBsb25nTGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNo
ZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29u
ZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAg
IGNhc2UgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAgICAgICAg
ICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUlu
U2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJlc2V0Q29va2llc0ZvckN1cnJlbnRP
cmlnaW4oKTsKKworICAgICAgICAgICAgaWYgKHBhc3NlZFRlc3RzID09PSA0KSB7CisgICAgICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBzaG9ydC1saXZlZCBjb29raWVzIGRvbid0IGV4
cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyArICIgc2Vj
b25kcy4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIGxvbmctbGl2ZWQg
Y29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBvdmVyT25lRGF5SW5TZWNv
bmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiQXQgbGVhc3Qgb25lIGNvb2tpZSdzIGV4cGlyeSBhdHRyaWJ1dGUgd2FzIGJl
eW9uZCB0aGUgdGVzdCB0aHJlc2hvbGRzLiIpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoIk5vIGludGVybmFscyBvYmplY3QuIik7CisgICAgICAgIAorICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIG5hdmlnYXRlQ3Jvc3NPcmlnaW4oKSB7CisgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhy
ZWYgPSBkZXN0aW5hdGlvbk9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQt
bGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFs
ZW50LXJlc291cmNlLmh0bWw/bGluaz1xdWVyeSI7CisgICAgfQorCisgICAgY29uc3QgZGVzdGlu
YXRpb25PcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCBwcmV2YWxl
bnRSZXNvdXJjZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHBy
ZXZhbGVudFJlc291cmNlT3JpZ2luKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29r
aWVCbG9ja2luZyhuYXZpZ2F0ZUNyb3NzT3JpZ2luKTsKKyAgICAgICAgICAgICAgICB9KTsKKwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0Q29va2ll
cygpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2Fw
cGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGhvdXQtbGluay1kZWNvcmF0aW9u
LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9y
LWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQt
cmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiZjY0OWE1N2UxMzY0
YzA2MDY0NTY5NDEzMDQ1NDExMzc0NTgzMDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1j
b29raWUtc2V0LWluLWpzLXdpdGhvdXQtbGluay1kZWNvcmF0aW9uLWZyb20tcHJldmFsZW50LXJl
c291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitDaGVjayB0aGF0
IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0
aW9uIHdpdGhvdXQgbGluayBkZWNvcmF0aW9uIGRvbid0IGdldCBjYXBwZWQgdG8gMjQgaG91cnMu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSB0d28gbG9uZy1saXZl
ZCBjb29raWVzIGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gODY0MzAgc2Vjb25kcy4KK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0
aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGhvdXQtbGluay1kZWNvcmF0aW9uLWZyb20tcHJl
dmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LXdpdGhvdXQtbGluay1kZWNvcmF0aW9uLWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYWU0N2I0OTQ4N2U4OTY3MjlkMGE0Yjc3NzBiNTFkNzgzZjRlOGNm
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1s
aW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApAQCAt
MCwwICsxLDg2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlw
dCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0iL2Nvb2tpZXMvcmVzb3VyY2VzL2Nvb2tpZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1blRlc3QoKScsIDApIj4KKzxzY3JpcHQ+Cisg
ICAgZGVzY3JpcHRpb24oIkNoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQg
YWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aG91dCBsaW5rIGRlY29yYXRpb24gZG9u
J3QgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KworICAgIGZ1bmN0aW9uIHRlc3RDb29raWVzKCkgeworICAgICAgICBsZXQgcGFzc2VkVGVzdHMg
PSAwOworCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrVGhhdENvb2tpZURvZXNFeHBpcmVBZnRlcihj
b29raWVEYXRhLCBtYXhBZ2VJblNlY29uZHMpIHsKKyAgICAgICAgICAgIGxldCBub3cgPSBuZXcg
RGF0ZSgpOworICAgICAgICAgICAgbGV0IG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA9IG5v
dy5nZXRUaW1lKCkgKyAobWF4QWdlSW5TZWNvbmRzICogMTAwMCk7CisKKyAgICAgICAgICAgIGlm
IChtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPCBjb29raWVEYXRhWyJleHBpcmVzIl0pCisg
ICAgICAgICAgICAgICAgKytwYXNzZWRUZXN0czsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgbmFtZWQgIiArIGNvb2tpZURhdGFbIm5hbWUiXSAr
ICIgZXhwaXJlcyBpbiBsZXNzIHRoYW4gIiArIG1heEFnZUluU2Vjb25kcyArICIgc2Vjb25kcy4i
KTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IG9uZURheUluU2Vjb25kcyA9IDI0ICogNjAg
KiA2MDsKKyAgICAgICAgY29uc3QgdHdvRGF5c0luU2Vjb25kcyA9IDIgKiBvbmVEYXlJblNlY29u
ZHM7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJsb25n
TGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d29EYXlzSW5TZWNv
bmRzICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZU1h
eEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUg
KyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdvRGF5c0FzRXhwaXJlc0RhdGUgPSBjcmVh
dGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdvRGF5c0luU2Vjb25kcyk7CisgICAgICAgIGNvbnN0
IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llRXhwaXJl
cyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3b0RheXNBc0V4cGlyZXNEYXRlICsgIjsiIH07
CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZSAr
ICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0v
IjsKKworICAgICAgICBjb25zdCBvdmVyT25lRGF5SW5TZWNvbmRzID0gb25lRGF5SW5TZWNvbmRz
ICsgMzA7CisgICAgICAgIGlmIChpbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGxldCBjb29raWVz
ID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKTsKKyAgICAgICAgICAgIGlmICghY29va2llcy5sZW5n
dGgpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gY29va2llcyBmb3VuZC4iKTsKKyAg
ICAgICAgICAgIGZvciAobGV0IGNvb2tpZSBvZiBjb29raWVzKSB7CisgICAgICAgICAgICAgICAg
c3dpdGNoIChjb29raWUubmFtZSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZl
ZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29v
a2llRG9lc0V4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2
ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRD
b29raWVEb2VzRXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgcmVzZXRDb29raWVzRm9yQ3VycmVudE9yaWdpbigpOworCisgICAg
ICAgICAgICBpZiAocGFzc2VkVGVzdHMgPT09IDIpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIg
KyBvdmVyT25lRGF5SW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQXQgbGVhc3Qgb25lIGNvb2tpZSdzIGV4cGly
eSBhdHRyaWJ1dGUgd2FzIGJlbG93IHRoZSB0ZXN0IHRocmVzaG9sZHMuIik7CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gaW50ZXJuYWxzIG9iamVjdC4iKTsKKyAg
ICAgICAgICAgIAorICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIG5hdmlnYXRlQ3Jvc3NPcmlnaW4oKSB7CisgICAgICAg
IGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbk9yaWdpbiArICIvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91
dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbCI7CisgICAgfQor
CisgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsK
KyAgICBjb25zdCBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5sb2Nh
dGlvbi5vcmlnaW4gPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luKSB7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4sIHRy
dWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4pKQorICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMg
cHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhuYXZpZ2F0ZUNyb3NzT3JpZ2luKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgfSk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICB0ZXN0Q29va2llcygpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1z
dGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9u
LW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwYzI1
OGI4ZTAwNWQzNTU0MTgyYWYwNmQ0ODI1ODNhZTc3ZTVhMTMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
bm9uLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorUEFTUyBIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFs
ZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1taXhl
ZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1taXhl
ZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGUwM2ZkODcxMmVmOWVkYzli
MTg2MmY2MzZkMWU3NGVhNjg4ZDg0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50
LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDUyIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNo
YXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIENsYXNzaWZpY2F0aW9uIEJhc2Vk
IG9uIE1peGVkIFN0YXRpc3RpY3M8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qg
c3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAg
IGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7Cisg
ICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsK
KyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAi
OworCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAodGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgZGlkIG5vdCBnZXQg
Y2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgdGVzdFJ1bm5l
ci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKworICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291
cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVu
ZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9y
aWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NV
cmwsIHRvcEZyYW1lT3JpZ2luMyk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0
YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNv
cmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5o
b3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5l
clRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lu
cy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJh
bWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIwYzI1OGI4ZTAwNWQzNTU0MTgyYWYwNmQ0ODI1ODNhZTc3ZTVhMTMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1l
LW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhvc3QgZGlkIG5v
dCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1u
b24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1k
YXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRv
cC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjg1NDA5MDhlZDgwZDEz
NGU3MzgwNDk2YTI3NTA1YWQwMDVjOTdiYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFs
ZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5o
dG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgor
PGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3Ig
Q2xhc3NpZmljYXRpb24gQmFzZWQgb24gU3ViIEZyYW1lIFVuZGVyIFRvcCBGcmFtZSBPcmlnaW5z
PC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRl
clRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0
cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdp
bjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3Jp
Z2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVP
cmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNv
bXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0
IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFs
ZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9D
b25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5l
clRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hl
bkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBk
aWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0
YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9w
RnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZy
YW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOwor
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNv
cmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFs
bFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0
YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0
aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93
LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUp
OworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxz
LnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICBydW5UZXN0
UnVubmVyVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1l
LW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24t
c3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjIwYzI1OGI4ZTAwNWQzNTU0MTgyYWYwNmQ0ODI1ODNhZTc3ZTVhMTMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRl
ci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBA
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1Mg
SG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZy
YW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJl
c291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTYxMTIwYTg1OTMxMjExNDA3MmQ0NzI5YjM2YmEwYTE3N2YzZGM0MQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1v
cmlnaW5zLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAg
PHRpdGxlPlRlc3RzIGZvciBDbGFzc2lmaWNhdGlvbiBCYXNlZCBvbiBTdWJyZXNvdXJjZSBVbmRl
ciBUb3AgRnJhbWUgT3JpZ2luczwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4K
KyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBz
dGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAg
Y29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAg
ICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOwor
CisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xh
c3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5z
dGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1Vy
bCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJj
ZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VV
bmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVP
cmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKworICAgICAgICAgICAgdGVz
dFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBs
ZXRlVGVzdCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0
aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRv
Y3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5u
ZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERh
dGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAg
ICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAg
ICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5p
cXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1i
YXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yMGMyNThiOGUwMDVkMzU1NDE4MmFmMDZkNDgyNTgzYWU3N2U1YTEz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2Ut
dW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBA
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1Mg
SG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGly
ZWN0cy10by1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3Vy
Y2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhNWE1ZDRi
ZGE0ZTRmZGVlZDE4NmEzZjA4ODEyZmI4ZTI4NmQ1OTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9u
LXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFi
YXNlLmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJl
biI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3Rz
IGZvciBDbGFzc2lmaWNhdGlvbiBCYXNlZCBvbiBTdWJyZXNvdXJjZSBVbmlxdWUgUmVkaXJlY3Rz
IFRvPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RV
bmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAi
aHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9y
aWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1l
T3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBj
b21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZh
bGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNl
dFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RS
dW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdl
c1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworIAorICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0
VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJs
LCB0b3BGcmFtZU9yaWdpbjIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0
aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3Jk
cygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9z
dCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJu
YWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5uZXJU
ZXN0KCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UoZmFsc2UpOworICAg
IH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1i
YXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxl
bnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzJkZDY5Zjk0MTlmNTE5ODk1N2YwOTA4ZGQ2NzRkNjg0MzZjYjljNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0
aWNzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3Mt
ZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODk3MzE5YWIwZmIxMDAwNTVhOTM1ZDRhOTUyYjJh
Yjk5NDQ4MzM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1z
dGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2MiBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Cisg
ICAgPHRpdGxlPlRlc3RzIGZvciBDbGFzc2lmaWNhdGlvbiBCYXNlZCBvbiBNaXhlZCBTdGF0aXN0
aWNzPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RV
bmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAi
aHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9y
aWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1l
T3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJh
bWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BG
cmFtZU9yaWdpbjQgPSAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rp
b24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwor
ICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uo
c3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lm
aWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIp
OworCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChm
YWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3Rh
dGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRz
V2VyZVNjYW5uZWQodHJ1ZSk7CisgCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRp
c3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQg
c2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJs
LCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2lu
NCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5k
ZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3Jp
Z2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGlj
c1VybCwgdG9wRnJhbWVPcmlnaW40KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1l
T3JpZ2luMyk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0Nh
bGxiYWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQor
CisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2lu
ZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVy
LnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVk
KHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgIH0KKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJh
bWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZh
bGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyZGQ2OWY5NDE5ZjUxOTg5NTdmMDkwOGRkNjc0ZDY4
NDM2Y2I5YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFt
ZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
K1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMt
ZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1m
cmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VhNzYyMDBkYTJmZmIxYTAw
NTVhOGExOThhZTI3ODNlMmViM2Y1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKQEAg
LTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4K
KyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBDbGFzc2lm
aWNhdGlvbiBCYXNlZCBvbiBTdWIgRnJhbWUgVW5kZXIgVG9wIEZyYW1lIE9yaWdpbnM8L3RpdGxl
PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9
ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiAr
IGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJo
dHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0g
Imh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMg
PSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2lu
NCA9ICJodHRwOi8vMTI3LjAuMC41OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21wbGV0
ZVRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlk
IG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZ290IGNsYXNzaWZpZWQgYXMgdmVy
eSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAg
ICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5l
ZCh0cnVlKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24t
cHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVP
cmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5k
ZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lu
KHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwg
dG9wRnJhbWVPcmlnaW40KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlz
dGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMo
KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3Qg
PT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFs
cykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVz
dCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXBy
ZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1j
b2xsdXNpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0ZGRjZTViMzE0Y2Q3
ZDJkMGRlYzQ4YjZmOWY5ZTBlY2NhYjgzMDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50
LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9u
IHN1YnJlc291cmNlIHJlZGlyZWN0IGNvbGx1c2lvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgQ29sbHVkaW5nIGhvc3QgMSBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNv
dXJjZS4KK1BBU1MgQ29sbHVkaW5nIGhvc3QgMiBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJj
ZS4KK1BBU1MgQ29sbHVkaW5nIGhvc3QgMyBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4K
K1BBU1MgQ29sbHVkaW5nIGhvc3QgNCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BB
U1MgQ29sbHVkaW5nIGxvY2FsaG9zdCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZSBhZnRl
ciBhY3R1YWwgc3ViIGZyYW1lIHJlZGlyZWN0LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
c3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50
LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU0YmZiMmYyNTc3Y2JjYmRmM2MxZjRjMTRhNDZhOWFhZDYxNmY3YWUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNv
bGx1c2lvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNzEgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAg
IDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9u
IGJhc2VkIG9uIHN1YnJlc291cmNlIHJlZGlyZWN0IGNvbGx1c2lvbi4iKTsKKyAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgw
MDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0
ICsgIi90ZW1wIjsKKyAgICBjb25zdCBzdWJyZXNvdXJjZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4w
LjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHN1YnJlc291cmNlT3JpZ2luMiA9ICJodHRwOi8v
MTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3Qgc3VicmVzb3VyY2VPcmlnaW4zID0gImh0
dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCBzdWJyZXNvdXJjZU9yaWdpbjQg
PSAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gcnVuVGVzdCgp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKworICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJv
bShzdGF0aXN0aWNzVXJsLCBzdWJyZXNvdXJjZU9yaWdpbjEpOworICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShzdWJyZXNvdXJjZU9y
aWdpbjEsIHN1YnJlc291cmNlT3JpZ2luMik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKHN1YnJlc291cmNlT3JpZ2luMiwgc3Vi
cmVzb3VyY2VPcmlnaW4zKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVz
b3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oc3VicmVzb3VyY2VPcmlnaW4zLCBzdWJyZXNvdXJjZU9y
aWdpbjQpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKCF0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZXhwbGljaXR5IHNldCBkaWQgbm90IGdl
dCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4xKSkKKyAg
ICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCAxIGdvdCBzZXQgYXMgcHJl
dmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luMSkpCisgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhvc3QgMSBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5
IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luMikpCisgICAgICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgMiBnb3Qgc2V0IGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQ
cmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjIpKQorICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDIgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjMpKQorICAgICAgICAgICAgICAgIHRl
c3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDMgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50
UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4zKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJDb2xsdWRpbmcgaG9zdCAzIGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291
cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW40KSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2Vk
KCJDb2xsdWRpbmcgaG9zdCA0IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAg
ICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNl
KHN1YnJlc291cmNlT3JpZ2luNCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVk
aW5nIGhvc3QgNCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KCJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJD
b2xsdWRpbmcgbG9jYWxob3N0IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIGFj
dHVhbCBzdWIgZnJhbWUgcmVkaXJlY3QuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIp
KQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBsb2NhbGhvc3QgZ290IGNs
YXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5k
ZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24o
KcKgeworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworICAg
ICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
aWZyYW1lIik7CisgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBydW5UZXN0
OworICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/cmVkaXJl
Y3RUbz1odHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9vbmNsaWNr
Lmh0bWwiOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1l
RWxlbWVudCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJl
c291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJl
dmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjhmY2JkOGQ4ZjZkMDVmYzQ5NGQ0ZWVkZGNkOWNi
NWViZGRlMGMzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVz
b3VyY2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEwIEBACitUZXN0cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24gc3VicmVzb3VyY2Ug
cmVkaXJlY3QgdG8gb3RoZXIgcHJldmFsZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRh
dGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRv
LXByZXZhbGVudC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1ODBhNTlmNjlhZTBlNzA5ZTUw
NDBlYmYzNTA3NzJhNmRmOGJmNGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlw
dGlvbigiVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHN1YnJlc291cmNlIHJlZGly
ZWN0IHRvIG90aGVyIHByZXZhbGVudC4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
ICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0
YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBj
b25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworCisg
ICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291
cmNlLiIpOworICAgICAgICBlbHNlIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgewor
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFt
ZU9yaWdpbjEsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZy
YW1lT3JpZ2luMSk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NE
aWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAg
ICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9z
dFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOwor
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5v
bi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgcnVuVGVzdCgpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10
b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zMmRkNjlmOTQxOWY1MTk4OTU3ZjA5MDhkZDY3NGQ2ODQzNmNiOWM3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRl
ci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBA
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1Mg
SG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXBy
ZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRh
YmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJh
bWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkMDFlYTZiYzI0OTM3NTkyZjBl
ODk2NzYxNWM5OWM1YzhkYzNmYTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKQEAg
LTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4K
KyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBDbGFzc2lm
aWNhdGlvbiBCYXNlZCBvbiBTdWJyZXNvdXJjZSBVbmRlciBUb3AgRnJhbWUgT3JpZ2luczwvdGl0
bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0
ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8i
ICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0g
Imh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIg
PSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2lu
MyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmln
aW40ID0gImh0dHA6Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBs
ZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBk
aWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
aWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBnb3QgY2xhc3NpZmllZCBhcyB2
ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVz
dFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAg
ICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOwor
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0p
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2Fu
bmVkKHRydWUpOworIAorICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBp
ZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJs
KSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBu
b24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9w
RnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJl
c291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRv
cEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4o
c3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW40KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVz
dCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNz
QW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50
LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYg
d2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNl
KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50
ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICBy
dW5UZXN0UnVubmVyVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJl
Y3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVz
b3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzJkZDY5Zjk0MTlmNTE5ODk1N2YwOTA4ZGQ2NzRkNjg0MzZjYjljNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10
by1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFz
IHByZXZhbGVudCByZXNvdXJjZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1z
dWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50
LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43OGY3ZjEzOTFjNjIxZGU4NjZlMWJkMjNiMDFiZGEzMzJkMGQ5ZjM3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVk
aXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Cisg
ICAgPHRpdGxlPlRlc3RzIGZvciBDbGFzc2lmaWNhdGlvbiBCYXNlZCBvbiBTdWJyZXNvdXJjZSBV
bmlxdWUgUmVkaXJlY3RzIFRvPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgor
ICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0
YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBj
b25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAg
IGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7Cisg
ICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsK
KyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjQgPSAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAi
OworCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJl
dmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFs
ZW50IHJlc291cmNlLiIpOworCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0
VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1
bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2Vz
V2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgCisgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RU
byhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmws
IHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NT
dWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4z
KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVl
UmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjQpOworCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2so
Y29tcGxldGVUZXN0KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vz
c1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBp
ZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVz
dFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7
CisgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRp
cmVjdC1jb2xsdXNpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1v
bi10b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mZDM5MzhiNzZjOTc0NGMzYWZhN2IyNTUwNWVhZWI0OWQ4NjZiNTIwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVz
aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0cyBmb3IgY2xh
c3NpZmljYXRpb24gYmFzZWQgb24gdG9wIGZyYW1lIHJlZGlyZWN0IGNvbGx1c2lvbi4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgQ29sbHVkaW5nIGhvc3QgMSBnb3Qgc2V0
IGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1MgQ29sbHVkaW5nIGhvc3QgMiBnb3Qgc2V0IGFz
IHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1MgQ29sbHVkaW5nIGhvc3QgMyBnb3Qgc2V0IGFzIHBy
ZXZhbGVudCByZXNvdXJjZS4KK1BBU1MgQ29sbHVkaW5nIGhvc3QgNCBnb3Qgc2V0IGFzIHByZXZh
bGVudCByZXNvdXJjZS4KK1BBU1MgQ29sbHVkaW5nIGxvY2FsaG9zdCBnb3Qgc2V0IGFzIHByZXZh
bGVudCByZXNvdXJjZSBhZnRlciBhY3R1YWwgbmF2aWdhdGlvbmFsIHJlZGlyZWN0LgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFz
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9u
LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGE5ODNiYzA2ZDM1MGVkNTY1NTI0MDJkZmNmZDMz
NDU5YzYwNWNlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZy
YW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNzEgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNl
dD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgZm9y
IGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHRvcCBmcmFtZSByZWRpcmVjdCBjb2xsdXNpb24uIik7
CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0g
IjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsg
aG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0
dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAi
aHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9
ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW40
ID0gImh0dHA6Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdp
bjUgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwLyI7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkg
eworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0
RnJvbShzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSh0b3BGcmFtZU9yaWdpbjEs
IHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZy
YW1lVW5pcXVlUmVkaXJlY3RGcm9tKHRvcEZyYW1lT3JpZ2luMiwgdG9wRnJhbWVPcmlnaW4zKTsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZy
b20odG9wRnJhbWVPcmlnaW4zLCB0b3BGcmFtZU9yaWdpbjQpOworCisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ikhvc3QgZXhwbGljaXR5IHNldCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UodG9wRnJhbWVPcmlnaW4xKSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xs
dWRpbmcgaG9zdCAxIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHRvcEZy
YW1lT3JpZ2luMSkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhvc3Qg
MSBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1l
T3JpZ2luMikpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgMiBn
b3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjIpKQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDIgZ290IGNsYXNzaWZp
ZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjMpKQorICAg
ICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDMgZ290IHNldCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NWZXJ5UHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4zKSkKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCAzIGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJl
dmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW40KSkKKyAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCA0IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVu
dFJlc291cmNlKHRvcEZyYW1lT3JpZ2luNCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
Q29sbHVkaW5nIGhvc3QgNCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJj
ZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHRvcEZyYW1lT3JpZ2luNSkpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29s
bHVkaW5nIGxvY2FsaG9zdCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZSBhZnRlciBhY3R1
YWwgbmF2aWdhdGlvbmFsIHJlZGlyZWN0LiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luNSkpCisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGxvY2FsaG9zdCBnb3QgY2xhc3NpZmll
ZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSk7Cisg
ICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiICYmIHdpbmRvdy50
ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRV
c2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBz
ZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhyZWYgPSB0b3BGcmFtZU9yaWdpbjUgKyAicmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89aHR0cDovLzEyNy4wLjAuMTo4
MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9u
LXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24uaHRtbCNjb250aW51ZSI7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0
aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgcnVuVGVzdCgpOworICAgIH0KKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10
b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1w
cmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTlmOTk1MzM4MjgwZjMxNWIyMjAwM2YwMDgyZDA4
MTQ4NDdlOWFiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZy
YW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMCBAQAorVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHRvcCBmcmFtZSByZWRp
cmVjdCB0byBvdGhlciBwcmV2YWxlbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXBy
ZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxl
bnQtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTJjNzUxNjg4OTcxNTk1MzU0ZTYyMDY0ZTk4
MzgzMzBlZmNhZTk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3At
ZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1MSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBj
aGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0
cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24gdG9wIGZyYW1lIHJlZGlyZWN0IHRvIG90aGVy
IHByZXZhbGVudC4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGhv
c3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwg
PSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFt
ZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24g
Y29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAg
ICAgICBlbHNlIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJj
ZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZ290IGNsYXNz
aWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisgICAgICAgIAorICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rl
c3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMSwgdHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0Nh
bGxiYWNrKGNvbXBsZXRlVGVzdCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQ
cm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRv
dy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBh
Z2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJj
ZS4iKTsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRp
cmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0OTFiZjk2MDMzNTcw
OWM5OTFkZjFmZmQzMjQyOGJkYmFlODA2ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50
LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24g
dG9wIGZyYW1lIHVuaXF1ZSByZWRpcmVjdHMgdG8uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRh
YmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0
cy10by1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjNGM3ZWU1ZjZjM2ZlYTY1NjEzZjg1ODM2
MjdhNGM5ODUwMzE1ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRv
cC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBj
aGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0
cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24gdG9wIGZyYW1lIHVuaXF1ZSByZWRpcmVjdHMg
dG8uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJU
ZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6
Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4x
ID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdp
bjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3Jp
Z2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVP
cmlnaW40ID0gImh0dHA6Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNv
bXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN0YXRp
c3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBnb3QgY2xhc3NpZmllZCBh
cyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
dGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKwor
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEp
OworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0
VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZy
YW1lT3JpZ2luMyk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5p
cXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjQpOworCisgICAgICAg
IHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhj
b21wbGV0ZVRlc3QpOworCisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0
aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRp
b24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cu
aW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7
CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVT
Y2FubmVkKHRydWUpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3Rh
dGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5v
dCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAg
cnVuVGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJhc2VkLW9u
LW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50
LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmIwZjAzMWRjYTVkMGM5NjA4ZjRkOGY1YWY4OTlhMTZlOWVmNTFjNTgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCBmb3IgY2xhc3NpZmljYXRpb24g
YXMgdmVyeSBwcmV2YWxlbnQgYmFzZWQgb24gbWl4ZWQgc3RhdGlzdGljcy4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFs
ZW50IHJlc291cmNlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0
aXN0aWNzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3Rh
dGlzdGljcy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiMDZmYTIwOWVkYmI2ZjExODhhZmY3
ZDE2MDYzMDQwMjdhYmIxN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFz
ZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNl
dD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCBmb3Ig
Y2xhc3NpZmljYXRpb24gYXMgdmVyeSBwcmV2YWxlbnQgYmFzZWQgb24gbWl4ZWQgc3RhdGlzdGlj
cy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRl
c3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDov
LyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICB2YXIgdG9wRnJhbWVPcmlnaW5zID0g
W107CisgICAgY29uc3Qgc3RhcnROdW0gPSAyOworICAgIGNvbnN0IG51bWJlck9mU3VicmVzb3Vy
Y2VEb21haW5zID0gMzA7CisgICAgZm9yICh2YXIgaSA9IHN0YXJ0TnVtOyBpIDwgbnVtYmVyT2ZT
dWJyZXNvdXJjZURvbWFpbnMgKyBzdGFydE51bTsgKytpKQorICAgICAgICB0b3BGcmFtZU9yaWdp
bnMucHVzaCgiaHR0cDovLzEyNy4wLjAuIiArIGkgKyAiOjgwMDAvdGVtcCIpCisKKyAgICBmdW5j
dGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3Qg
Z2V0IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZh
bGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5p
c2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgewor
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jk
c1dlcmVTY2FubmVkKHRydWUpOworIAorICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IHN0YXJ0ZWQgb3V0
IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdmFyIGkgPSAwOworICAg
ICAgICAgICAgd2hpbGUgKGkgPCBudW1iZXJPZlN1YnJlc291cmNlRG9tYWlucykgeworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9y
aWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaV0pOworICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihz
dGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaV0pOworICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbnNbaV0pOworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRv
cEZyYW1lT3JpZ2luc1tpKzFdKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJh
bWVPcmlnaW5zW2krMV0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdp
bnNbaSsxXSk7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJm
cmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2kr
Ml0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNl
VW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaSsyXSk7
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpKzJdKTsKKyAgICAg
ICAgICAgICAgICBpICs9IDM7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRl
c3QpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NB
bmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQu
bG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3
aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2Uo
dHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgcnVuVGVzdFJ1bm5lclRlc3Qp
OworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1h
bmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJz
aXN0ZW50LXN0b3JlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWUwMDMzZmZj
Y2FlYzI2M2E5NmYyYjNkNzgzZWRjZjcwNDA4M2QzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1h
bmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBA
QAorVGVzdHMgY2xlYXJpbmcgb2Ygd2Vic2l0ZSBkYXRhIHN0b3JlLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291
cmNlLgorUEFTUyBIb3N0IGlzIG5vIGxvbmdlciBhIHByZXZhbGVudCByZXNvdXJjZSBhZnRlciB0
aGUgc3RvcmUgd2FzIGNsZWFyZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1k
YXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFzZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjIxN2ViYWJhZDkxN2FhZDQ5OTAzMzgxZWEzNTIzZTIwNjJiYWViMGEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLmh0bWwKQEAg
LTAsMCArMSw2NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4K
KyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3QgQ2xlYXJlZCBTdG9y
ZTwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBjbGVh
cmluZyBvZiB3ZWJzaXRlIGRhdGEgc3RvcmUuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7
CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25z
dCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7Cisg
ICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsK
KyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAi
OworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVt
cCI7CisKKyAgICBmdW5jdGlvbiB0ZXN0U3RlcDIoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBj
bGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICB0ZXN0UnVubmVy
LnN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlKGNvbXBsZXRlVGVzdCk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAodGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgaXMgc3RpbGwgYSBwcmV2YWxlbnQgcmVzb3VyY2Ug
YWZ0ZXIgdGhlIHN0b3JlIHdhcyBjbGVhcmVkLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJIb3N0IGlzIG5vIGxvbmdlciBhIHByZXZhbGVudCByZXNvdXJjZSBhZnRl
ciB0aGUgc3RvcmUgd2FzIGNsZWFyZWQuIik7CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVy
VGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVu
RGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRp
ZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3Rh
dGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BG
cmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVz
b3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9w
RnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0
aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZy
YW1lT3JpZ2luMyk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNv
dXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsK
KworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVj
b3Jkc0NhbGxiYWNrKHRlc3RTdGVwMik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAg
fQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYg
d2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVu
bmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRy
dWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAg
ICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1l
bW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4t
bWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wN2Y5OTljNmZlYjMyNjVkZWZmMzk1MWFjMmY4MTQwYWMxYTZlZWUwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRh
YmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdHMgY2xlYXJpbmcgb2Ygd2Vi
c2l0ZSBkYXRhIHN0b3JlIChvbmUgaG91cikuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIEhv
c3QgaXMgbm8gbG9uZ2VyIGEgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIHRoZSBzdG9yZSB3YXMg
Y2xlYXJlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFi
YXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTZiYjA2NWUzN2JkYTI0NDgwNDMzNzIzNDU1ZmU4ZjdkODY5NjhjMAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0
YWJhc2UuaHRtbApAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9
ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+PC90
aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGNsZWFyaW5n
IG9mIHdlYnNpdGUgZGF0YSBzdG9yZSAob25lIGhvdXIpLiIpOworICAgIGpzVGVzdElzQXN5bmMg
PSB0cnVlOworCisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7Cisg
ICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3Rl
bXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAv
dGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAw
MC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4
MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgaXMgc3RpbGwgYSBwcmV2YWxlbnQgcmVzb3Vy
Y2UgYWZ0ZXIgdGhlIHN0b3JlIHdhcyBjbGVhcmVkLiIpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJIb3N0IGlzIG5vIGxvbmdlciBhIHByZXZhbGVudCByZXNvdXJjZSBh
ZnRlciB0aGUgc3RvcmUgd2FzIGNsZWFyZWQuIik7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdFN0ZXAyKCkg
eworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzQ2xlYXJJbk1lbW9yeUFuZFBlcnNp
c3RlbnRTdG9yZU1vZGlmaWVkU2luY2VIb3VycygxLCBjb21wbGV0ZVRlc3QpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOwor
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRp
c3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHt9KTsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291
cmNlLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJU
b3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlz
dGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1l
T3JpZ2luMSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5k
ZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3Rh
dGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1l
T3JpZ2luMyk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5k
ZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworCisgICAg
ICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFj
ayh0ZXN0U3RlcDIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0
aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRp
b24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cu
aW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7
CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVs
ZXRpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiM2ZjZmEwNDkzODM3OTk2
MmRjZDdhN2JkYTQzOTU1MDIyZWMyZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9uLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU1IEBACitUZXN0IGZvciBwYXJ0aXRpb25lZCBhbmQg
dW5wYXJ0aXRpb25lZCBjb29raWUgZGVsZXRpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KyAgCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorU2hvdWxk
IHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLgorUmVjZWl2ZWQgY29va2llIG5hbWVkICdmaXJz
dFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlD
b29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZh
bHVlCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTItLT4nCistLS0tLS0tLQorU2hvdWxk
IHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0
UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNv
b2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFtZTog
JzwhLS1mcmFtZTMtLT4nCistLS0tLS0tLQorVHJ5IHRvIHNldCB0aGlyZCBwYXJ0eSBjb29raWUu
CisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNC0tPicKKy0tLS0tLS0tCitTaG91bGQg
cmVjZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQ
YXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29v
a2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAn
PCEtLWZyYW1lNS0tPicKKy0tLS0tLS0tCitBZnRlciByZW1vdmFsLCBzaG91bGQgcmVjZWl2ZSBu
byBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tp
ZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2llJy4KK0Ns
aWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1l
Ni0tPicKKy0tLS0tLS0tCitBZnRlciBkZWNsYXNzaWZpZWQsIHNob3VsZCByZWNlaXZlIG5vIGNv
b2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4K
K0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgorQ2xpZW50
LXNpZGUgZG9jdW1lbnQuY29va2llOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFzZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxl
dGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4MzRlODczMDhhMDM4ZDQyNDYyYjEyMTEy
ZTRlYmMxNDU1OWRlZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9uLWRhdGFiYXNlLmh0bWwKQEAg
LTAsMCArMSwxMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+
CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNj
cmlwdGlvbigiVGVzdCBmb3IgcGFydGl0aW9uZWQgYW5kIHVucGFydGl0aW9uZWQgY29va2llIGRl
bGV0aW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgcGFydGl0
aW9uSG9zdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0g
dGhpcmRQYXJ0eU9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMiOwor
ICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVOYW1lID0gImZpcnN0UGFydHlDb29raWUiOworICAg
IGNvbnN0IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhwP25h
bWU9IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgY29uc3Qg
dGhpcmRQYXJ0eUNvb2tpZU5hbWUgPSAidGhpcmRQYXJ0eUNvb2tpZSI7CisgICAgY29uc3Qgc3Vi
UGF0aFRvU2V0VGhpcmRQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsgdGhp
cmRQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCBmcmFnbWVudFdp
dGhSZXR1cm5VcmwgPSAiaHR0cDovLyIgKyBwYXJ0aXRpb25Ib3N0ICsgIi9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi5odG1sIjsKKyAgICBjb25zdCBzdWJQYXRoVG9HZXRD
b29raWVzID0gIi9nZXQtY29va2llcy5waHA/bmFtZTE9IiArIGZpcnN0UGFydHlDb29raWVOYW1l
ICsgIiZuYW1lMj0iICsgdGhpcmRQYXJ0eUNvb2tpZU5hbWU7CisKKyAgICBmdW5jdGlvbiBmaW5p
c2hUZXN0KCkgeworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7
CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUi
KTsKKyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVy
KSB7CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAg
IH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisK
KworICAgIGZ1bmN0aW9uIGZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlckFuZENvbnRpbnVlKCkg
eworICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRz
Q2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KHJ1blRlc3QsIDUw
MCk7CisgICAgICAgIH0pOworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3Rh
dGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2V0QXNOb25Q
cmV2YWxlbnRBbmRDb250aW51ZSgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgZmFsc2UsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
dGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBzdGls
bCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
dGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcocnVuVGVzdCk7CisgICAgICAgIH0pOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQu
bG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAg
ICAgICAvLyBTZXQgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3QuCisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0
aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIGZyYWdtZW50V2l0aFJldHVyblVybCArICIj
c3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAy
IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSB0aGlyZC1wYXJ0eSBoYXMgYWNj
ZXNzIHRvIGl0cyBmaXJzdC1wYXJ0eSBjb29raWVzLgorICAgICAgICAgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhp
cmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCBy
ZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgLy8gQ2xh
c3NpZnkgbG9jYWxob3N0IGFzIHByZXZhbGVudC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5s
b2NhdGlvbi5oYXNoID0gInN0ZXA0IjsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29r
aWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgLy8g
Q2hlY2sgdGhhdCB0aGUgdGhpcmQtcGFydHkgbm8gbG9uZ2VyIGhhcyBhY2Nlc3MgdG8gaXRzIGZp
cnN0LXBhcnR5IGNvb2tpZXMuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFz
aCA9ICJzdGVwNSI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVy
bCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgbm8gY29v
a2llcy4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgIiNzdGVwNSI6CisgICAgICAgICAgICAgICAgLy8gVHJ5IHNldHRpbmcgYSBjb29raWUgYXMg
dGhpcmQtcGFydHkuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJz
dGVwNiI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1
YlBhdGhUb1NldFRoaXJkUGFydHlDb29raWUgKyAiJm1lc3NhZ2U9VHJ5IHRvIHNldCB0aGlyZCBw
YXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlICIjc3RlcDYiOgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIHRo
aXJkLXBhcnR5IHN0aWxsIGhhcyBubyBhY2Nlc3MgdG8gY29va2llcyBhbmQgdGhlbiBmaXJlIGRh
dGEgcmVjb3JkIHJlbW92YWwuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFz
aCA9ICJzdGVwNyI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVy
bCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgbm8gY29v
a2llcy4iLCBmaXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXJBbmRDb250aW51ZSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDciOgorICAgICAgICAgICAg
ICAgIC8vIENoZWNrIHRoYXQgdGhlIHRoaXJkLXBhcnR5IHN0aWxsIGhhcyBubyBhY2Nlc3MgdG8g
Y29va2llcyBhbmQgdGhlbiBkZWNsYXNzaWZ5IGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA4IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZy
YW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1B
ZnRlciByZW1vdmFsLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLiIsIHNldEFzTm9uUHJldmFs
ZW50QW5kQ29udGludWUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSAiI3N0ZXA4IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSB0aGlyZC1wYXJ0
eSBzdGlsbCBoYXMgbm8gYWNjZXNzIHRvIGNvb2tpZXMuCisgICAgICAgICAgICAgICAgb3Blbklm
cmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9
QWZ0ZXIgZGVjbGFzc2lmaWVkLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLiIsIGZpbmlzaFRl
c3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYg
KGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IHBhcnRpdGlvbkhvc3QgJiYgZG9jdW1lbnQubG9j
YXRpb24uaGFzaCA9PT0gIiIgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFs
cykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jk
c1JlbW92YWwoZmFsc2UpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWlu
aW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworCisgICAgICAgICAgICB0ZXN0
UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaGFzaCA9ICJzdGVwMSI7CisKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAg
fSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcnVuVGVzdCgpOworICAgIH0KKworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJh
Y3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0
aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZDEwOTJlZmRlZWU0NmZhYzZl
MzZhYzA3NmQ4MTRkMmJiZTVjN2I5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11
c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI1IEBACitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAgCisKKy0t
LS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUg
Zmlyc3QtcGFydHkgY29va2llLgorUmVjZWl2ZWQgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29v
a2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQYXJ0eUNvb2tpZT12YWx1
ZQorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUyLS0+JworLS0tLS0tLS0KK1Nob3VsZCBy
ZWNlaXZlIG5vIGNvb2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBh
cnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0Zy
YW1lOiAnPCEtLWZyYW1lMy0tPicKKy0tLS0tLS0tCitBZnRlciB1c2VyIGludGVyYWN0aW9uLCBz
aG91bGQgc3RpbGwgcmVjZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBu
YW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdp
dGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjljN2EzOWM3M2U5ZjE1YzY2NTBhMTc2YjNlYzkxOGMxYjVmZjY1YmEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2ll
cy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDg0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAg
IDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdCBmb3IgUGFydGl0aW9uZWQg
Q29va2llcyBXaXRoIGFuZCBXaXRob3V0IFVzZXIgSW50ZXJhY3Rpb248L3RpdGxlPgorICAgIDxz
Y3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KKyAgICBjb25zdCBwYXJ0aXRpb25Ib3N0ID0gIjEyNy4wLjAuMTo4MDAwIjsK
KyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7Cisg
ICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsgIi9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5h
bWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0
eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUg
KyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCBmcmFnbWVudFdpdGhSZXR1cm5VcmwgPSAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llcy13aXRoLWFu
ZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0
Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFt
ZTsKKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBv
bkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgIGlm
IChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhh
bmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVt
ZW50KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZXRVc2VySW50ZXJhY3Rpb25BbmRDb250aW51
ZSgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5
T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJUaGlyZCBwYXJ0eSBkaWQgbm90
IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAgICAgICBydW5UZXN0
KCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAg
ICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAi
I3N0ZXAxIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQ
YXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llICsgIiMiICsgZnJhZ21l
bnRXaXRoUmV0dXJuVXJsICsgIiNzdGVwMiI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9u
Lmhhc2ggPSAic3RlcDMiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJh
c2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIGZp
cnN0LXBhcnR5IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxv
Y2tpbmcocnVuVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhp
cmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCBy
ZWNlaXZlIG5vIGNvb2tpZXMuIiwgc2V0VXNlckludGVyYWN0aW9uQW5kQ29udGludWUpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA1IjoKKyAgICAgICAg
ICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2ll
cyArICImbWVzc2FnZT1BZnRlciB1c2VyIGludGVyYWN0aW9uLCBzaG91bGQgc3RpbGwgcmVjZWl2
ZSBubyBjb29raWVzLiIsIGZpbmlzaFRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IHBhcnRp
dGlvbkhvc3QgJiYgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PSAiIiAmJiB3aW5kb3cudGVzdFJ1
bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQ
RGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0cy4iKTsKKyAgICAgICAgICAgIHJ1blRlc3Qo
KTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcnVuVGVzdCgpOworICAgIH0K
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1j
b29raWVzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUtY29va2llcy1kYXRh
YmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjM0MDdkY2YzZWRlZWI2MGVjOTY0OTI4NTAx
NDUxYTA1MTkyODQ3OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUtY29va2llcy1k
YXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorQ2hlY2sgdGhhdCBvbmx5IEh0
dHBPbmx5IGNvb2tpZXMgcmVtYWluIGlmIGFsbCBzY3JpcHQtYWNjZXNzaWJsZSBjb29raWVzIGFy
ZSBkZWxldGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBCZWZvcmUg
c2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246IENsaWVudC1zaWRlIGNvb2tpZSBleGlzdHMuCitQ
QVNTIEJlZm9yZSBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogSHR0cE9ubHkgY29va2llIGV4
aXN0cy4KK1BBU1MgQmVmb3JlIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiBSZWd1bGFyIHNl
cnZlci1zaWRlIGNvb2tpZSBleGlzdHMuCitQQVNTIEFmdGVyIHNjcmlwdC1hY2Nlc3NpYmxlIGRl
bGV0aW9uOiAgSHR0cE9ubHkgY29va2llIGV4aXN0cy4KK1BBU1MgQWZ0ZXIgZnVsbCBkZWxldGlv
bjogICAgICAgICAgICAgICBBbGwgY29va2llcyBhcmUgZ29uZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3Np
YmxlLWNvb2tpZXMtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUtY29va2llcy1kYXRhYmFz
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjYwZmM1Mzc3ZDdkZWU2MDQyOTkwYmUwYzJkYmZiNzQ1YWUwNWNk
NTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNvb2tpZXMtZGF0YWJhc2UuaHRt
bApAQCAtMCwwICsxLDczIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAg
PHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRp
b24oIkNoZWNrIHRoYXQgb25seSBIdHRwT25seSBjb29raWVzIHJlbWFpbiBpZiBhbGwgc2NyaXB0
LWFjY2Vzc2libGUgY29va2llcyBhcmUgZGVsZXRlZC4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKworICAgIGNvbnN0IGh0dHBPbmx5Q29va2llTmFtZSA9ICJodHRwLW9ubHktY29va2ll
IjsKKyAgICBjb25zdCBzZXJ2ZXJTaWRlQ29va2llTmFtZSA9ICJzZXJ2ZXItc2lkZS1jb29raWUi
OworICAgIGNvbnN0IGNsaWVudFNpZGVDb29raWVOYW1lID0gImNsaWVudC1zaWRlLWNvb2tpZSI7
CisKKyAgICBmdW5jdGlvbiBzb3J0U3RyaW5nQXJyYXkoYSwgYikgeworICAgICAgICBhID0gYS50
b0xvd2VyQ2FzZSgpOworICAgICAgICBiID0gYi50b0xvd2VyQ2FzZSgpOworCisgICAgICAgIHJl
dHVybiBhID4gYiA/IDEgOiBiID4gYSA/IC0xIDogMDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBj
aGVja0Nvb2tpZXMoaXNBZnRlclNjcmlwdEFjY2Vzc2libGVEZWxldGlvbikgeworICAgICAgICBs
ZXQgdW5zb3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMgPSBbXTsKKyAgICAgICAgbGV0IGNvb2tpZXMg
PSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICBpZiAoIWNvb2tpZXMubGVuZ3RoKQor
ICAgICAgICAgICAgdGVzdEZhaWxlZCgoaXNBZnRlclNjcmlwdEFjY2Vzc2libGVEZWxldGlvbiA/
ICJBZnRlciIgOiAiQmVmb3JlIikgKyAiIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiBObyBj
b29raWVzIGZvdW5kLiIpOworICAgICAgICBmb3IgKGxldCBjb29raWUgb2YgY29va2llcykgewor
ICAgICAgICAgICAgc3dpdGNoIChjb29raWUubmFtZSkgeworICAgICAgICAgICAgICAgIGNhc2Ug
aHR0cE9ubHlDb29raWVOYW1lOgorICAgICAgICAgICAgICAgICAgICB1bnNvcnRlZFRlc3RQYXNz
ZWRNZXNzYWdlcy5wdXNoKChpc0FmdGVyU2NyaXB0QWNjZXNzaWJsZURlbGV0aW9uID8gIkFmdGVy
IiA6ICJCZWZvcmUiKSArICIgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246ICIgKyAoaXNBZnRl
clNjcmlwdEFjY2Vzc2libGVEZWxldGlvbiA/ICIgIiA6ICIiKSArICJIdHRwT25seSBjb29raWUg
ZXhpc3RzLiIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBj
YXNlIHNlcnZlclNpZGVDb29raWVOYW1lOgorICAgICAgICAgICAgICAgICAgICBpZiAoaXNBZnRl
clNjcmlwdEFjY2Vzc2libGVEZWxldGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkFmdGVyIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiAgUmVndWxhciBzZXJ2ZXIt
c2lkZSBjb29raWUgZXhpc3RzLiIpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNvcnRlZFRlc3RQYXNzZWRNZXNzYWdlcy5wdXNoKCJCZWZvcmUg
c2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246IFJlZ3VsYXIgc2VydmVyLXNpZGUgY29va2llIGV4
aXN0cy4iKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2Fz
ZSBjbGllbnRTaWRlQ29va2llTmFtZToKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzQWZ0ZXJT
Y3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJBZnRlciBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogIENsaWVudC1zaWRlIGNvb2tp
ZSBleGlzdHMuIik7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHVuc29ydGVkVGVzdFBhc3NlZE1lc3NhZ2VzLnB1c2goIkJlZm9yZSBzY3JpcHQtYWNj
ZXNzaWJsZSBkZWxldGlvbjogQ2xpZW50LXNpZGUgY29va2llIGV4aXN0cy4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbGV0
IHNvcnRlZFRlc3RQYXNzZWRNZXNzYWdlcyA9IHVuc29ydGVkVGVzdFBhc3NlZE1lc3NhZ2VzLnNv
cnQoc29ydFN0cmluZ0FycmF5KTsKKyAgICAgICAgZm9yIChsZXQgdGVzdFBhc3NlZE1lc3NhZ2Ug
b2Ygc29ydGVkVGVzdFBhc3NlZE1lc3NhZ2VzKQorICAgICAgICAgICAgdGVzdFBhc3NlZCh0ZXN0
UGFzc2VkTWVzc2FnZSk7CisgICAgfQorCisgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
KyAgICAgICAgaWYgKCF0ZXN0UnVubmVyIHx8ICFpbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoIk5vIHRlc3RSdW5uZXIgb3Igbm8gaW50ZXJuYWxzLiIpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2Uo
dHJ1ZSk7CisgICAgICAgIGF3YWl0IGZldGNoKCIvY29va2llcy9yZXNvdXJjZXMvc2V0LWh0dHAt
b25seS1jb29raWUucGhwP2Nvb2tpZU5hbWU9IiArIGh0dHBPbmx5Q29va2llTmFtZSwgeyBjcmVk
ZW50aWFsczogInNhbWUtb3JpZ2luIiB9KTsKKyAgICAgICAgYXdhaXQgZmV0Y2goIi9jb29raWVz
L3Jlc291cmNlcy9zZXRDb29raWVzLmNnaSIsIHsgaGVhZGVyczogeyAiU2V0LUNvb2tpZSI6IHNl
cnZlclNpZGVDb29raWVOYW1lICsgIj0xOyBwYXRoPS87IiB9LCBjcmVkZW50aWFsczogInNhbWUt
b3JpZ2luIiB9KTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gY2xpZW50U2lkZUNvb2tpZU5h
bWUgKyAiPTEiOworICAgICAgICBjaGVja0Nvb2tpZXMoZmFsc2UpOworICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NEZWxldGVDb29raWVzRm9ySG9zdCgiaHR0cDovLzEyNy4wLjAuMSIsIGZh
bHNlKTsKKyAgICAgICAgY2hlY2tDb29raWVzKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NEZWxldGVDb29raWVzRm9ySG9zdCgiaHR0cDovLzEyNy4wLjAuMSIsIHRydWUpOwor
ICAgICAgICBsZXQgY29va2llc0xlZnQgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpLmxlbmd0aDsK
KyAgICAgICAgaWYgKGNvb2tpZXNMZWZ0ID09PSAwKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgi
QWZ0ZXIgZnVsbCBkZWxldGlvbjogICAgICAgICAgICAgICBBbGwgY29va2llcyBhcmUgZ29uZS4i
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiQWZ0ZXIgZnVsbCBkZWxl
dGlvbjogICAgICAgICAgICAgICIgKyBjb29raWVzTGVmdCArICIgY29va2llKHMpIGxlZnQuIik7
CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRpcmVjdC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0LWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNzQzMDYxZmYxMTlmYWQzZjU5N2RjMTVhZTA0YjRi
OGM2OTM3OTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRp
cmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorUEFTU0VEOiBDb29raWUg
c3VjY2Vzc2Z1bGx5IHNldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRp
cmVjdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRpcmVjdC1kYXRh
YmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyMTllM2Q2ODkzMmJmZjE4YzVhMDFjNTY4NGM0NGYzNzE2
ZmRlODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBs
YW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlw
dCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICBkZXNj
cmlwdGlvbigiVGVzdHMgdGhhdCBibG9ja2luZyBpcyBub3QgYXBwbGllZCB0byB0b3AtbGV2ZWwg
bmF2aWdhdGlvbiByZWRpcmVjdHMuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAg
ICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisKKyAg
ICBmdW5jdGlvbiBkb1JlZGlyZWN0KCkKKyAgICB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRw
Oi8vbG9jYWxob3N0IikpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBk
aWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9z
ZXQtY29va2llLW9uLXJlZGlyZWN0LnBocD9zdGVwPTEiOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1l
b3V0KCdkb1JlZGlyZWN0KCknLCAwKSI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWNhcHR1
cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8t
bm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDY5YzkxY2FlNmVhYTNiZGNjODQ2MGM2MzM3YjAy
ZjdkNjRmMjRmZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNzLWZvci1zaW1wbGUt
dG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitU
ZXN0IHRoYXQgYSBub24tcmVkaXJlY3RlZCB0b3AgZnJhbWUgbmF2aWdhdGlvbiBkb2Vzbid0IGdl
dCBjYXB0dXJlZCBpbiBzdGF0aXN0aWNzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIo
Imh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIGZhbHNlCitQQVNTIHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovLzEy
Ny4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWNhcHR1cmUtc3RhdGlz
dGljcy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1jYXB0dXJlLXN0YXRp
c3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2aWdhdGlvbnMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iODA5MzVhMjM3MGVkYmQ3NjkyNTEzMTliYWM5NDRmNzI4YmM3NmU2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5v
dC1jYXB0dXJlLXN0YXRpc3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2aWdhdGlvbnMtZGF0YWJhc2Uu
aHRtbApAQCAtMCwwICsxLDQ5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4K
KzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cisg
ICAgZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBhIG5vbi1yZWRpcmVjdGVkIHRvcCBmcmFtZSBuYXZp
Z2F0aW9uIGRvZXNuJ3QgZ2V0IGNhcHR1cmVkIGluIHN0YXRpc3RpY3MuIik7CisgICAganNUZXN0
SXNBc3luYyA9IHRydWU7CisgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsK
KyAgICBsZXQgdGltZXJIYW5kbGUgPSAwOworCisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsK
KyAgICAgICAgaWYgKHRpbWVySGFuZGxlKQorICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lckhh
bmRsZSk7CisKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NS
ZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcu
MC4wLjEiKScpOworICAgICAgICBzaG91bGRCZUZhbHNlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xv
Y2FsaG9zdCIpJyk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVz
dCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChk
b2N1bWVudC5sb2NhdGlvbi5ob3N0KSB7CisgICAgICAgICAgICBjYXNlICIxMjcuMC4wLjE6ODAw
MCI6CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNv
dXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAgICAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5ocmVmID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2RvLW5vdC1jYXB0dXJlLXN0YXRpc3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2aWdh
dGlvbnMuaHRtbCI7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlICJsb2NhbGhvc3Q6ODAwMCI6CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5l
ZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlk
U2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soZmluaXNoVGVzdCk7CisgICAgICAgICAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpKQorICAgICAgICAgICAgICAg
ICAgICB0aW1lckhhbmRsZSA9IHNldFRpbWVvdXQoZmluaXNoVGVzdCwgMTAwKTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiVW5rbm93biBob3N0OiAiICsgZG9jdW1lbnQubG9jYXRpb24uaG9zdCk7CisgICAg
ICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHJ1blRlc3QoKTsK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4t
cmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3Qt
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhZDdkOWU1MDA3NmI2ZDE2YmJjMjZh
NTA0NmU5OTY5NmQ2ZTA3NjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRp
cmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1MSBAQAorVGVzdHMgdGhhdCBi
bG9ja2luZyBpcyBub3QgcmVtb3ZlZCBtaWQtZmxpZ2h0IGluIHJlZGlyZWN0cy4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorICAKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicK
Ky0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9z
dC4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWVJUCcuCitS
ZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWVMb2NhbGhvc3QnLgorRGlkIG5v
dCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBk
b2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWVMb2NhbGhvc3Q9bG9jYWxob3N0CisKKy0t
LS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTItLT4nCistLS0tLS0tLQorUmVkaXJlY3QgY2FzZSAx
LCBzaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIDEyNy4wLjAuMS4KK1JlY2Vp
dmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUlQJy4KK0RpZCBub3QgcmVjZWl2ZSBj
b29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWVMb2NhbGhvc3QnLgorRGlkIG5vdCByZWNlaXZl
IGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5j
b29raWU6IGZpcnN0UGFydHlDb29raWVJUD0xMjcuMC4wLjEKKworLS0tLS0tLS0KK0ZyYW1lOiAn
PCEtLWZyYW1lMy0tPicKKy0tLS0tLS0tCitUcnkgdG8gc2V0IHRoaXJkLXBhcnR5IGNvb2tpZSBm
b3IgbG9jYWxob3N0IGluIGJsb2NrZWQgbW9kZS4KKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0t
ZnJhbWU0LS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIG5vIGNvb2tpZS4KK0RpZCBub3Qg
cmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWVJUCcuCitEaWQgbm90IHJlY2Vp
dmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llTG9jYWxob3N0Jy4KK0RpZCBub3QgcmVj
ZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1l
bnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWU1LS0+JworLS0tLS0tLS0K
K1JlZGlyZWN0IGNhc2UgMiwgc2hvdWxkIG5vdCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZSBm
b3IgMTI3LjAuMC4xLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNv
b2tpZUlQJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWVM
b2NhbGhvc3QnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tp
ZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWVJUD0xMjcu
MC4wLjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJl
bW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2ZDMw
YWFkZWY0NTc3Yjg1MjQyM2M2YTIzNmYzYWEzNzE5ZjEwMmQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92
ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTAwIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRo
YXQgYmxvY2tpbmcgaXMgbm90IHJlbW92ZWQgbWlkLWZsaWdodCBpbiByZWRpcmVjdHMuIik7Cisg
ICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBwYXJ0aXRpb25Ib3N0ID0gIjEy
Ny4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCI7CisgICAgY29uc3QgcmVzb3VyY2VQYXRoID0gIi9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBh
cnR5T3JpZ2luICsgcmVzb3VyY2VQYXRoOworICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVOYW1l
UHJlZml4ID0gImZpcnN0UGFydHlDb29raWUiOworICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVO
YW1lSVAgPSBmaXJzdFBhcnR5Q29va2llTmFtZVByZWZpeCArICJJUCI7CisgICAgY29uc3QgZmly
c3RQYXJ0eUNvb2tpZU5hbWVMb2NhbGhvc3QgPSBmaXJzdFBhcnR5Q29va2llTmFtZVByZWZpeCAr
ICJMb2NhbGhvc3QiOworICAgIGNvbnN0IHRoaXJkUGFydHlDb29raWVOYW1lID0gInRoaXJkUGFy
dHlDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldFRoaXJkUGFydHlDb29raWUgPSAiL3Nl
dC1jb29raWUucGhwP25hbWU9IiArIHRoaXJkUGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT12YWx1
ZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMucGhwP25h
bWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZUlQICsgIiZuYW1lMj0iICsgZmlyc3RQYXJ0eUNv
b2tpZU5hbWVMb2NhbGhvc3QgKyAiJm5hbWUzPSIgKyB0aGlyZFBhcnR5Q29va2llTmFtZTsKKyAg
ICBjb25zdCByZWRpcmVjdENoYWluVXJsID0gdGhpcmRQYXJ0eU9yaWdpbiArIHJlc291cmNlUGF0
aCArICIvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89aHR0cDovLyIgKyBwYXJ0aXRpb25Ib3N0ICsg
cmVzb3VyY2VQYXRoICsgc3ViUGF0aFRvR2V0Q29va2llczsKKworICAgIGZ1bmN0aW9uIG9wZW5J
ZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7
CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9h
ZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAg
ICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2Ug
IiNzdGVwMSI6CisgICAgICAgICAgICAgICAgLy8gU2V0IGZpcnN0LXBhcnR5IGNvb2tpZXMgZm9y
IDEyNy4wLjAuMSBhbmQgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5s
b2NhdGlvbi5vcmlnaW4gPT09IHRoaXJkUGFydHlPcmlnaW4pIHsKKyAgICAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuY29va2llID0gZmlyc3RQYXJ0eUNvb2tpZU5hbWVMb2NhbGhvc3QgKyAiPWxv
Y2FsaG9zdDtwYXRoPScvJyI7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9u
LmhyZWYgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8t
bm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sI3N0ZXAyIjsKKyAg
ICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29r
aWUgPSBmaXJzdFBhcnR5Q29va2llTmFtZUlQICsgIj0xMjcuMC4wLjE7cGF0aD0nLyciOworICAg
ICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4t
cmVkaXJlY3QtZGF0YWJhc2UuaHRtbCNzdGVwMSI7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAg
ICAgICAvLyBDaGVjayB0aGF0IHRoZSBjb29raWUgZ2V0cyBzZW50IGZvciBsb2NhbGhvc3QgdW5k
ZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCBpcyBub3QgcHJldmFsZW50LgorICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAgICAgICAgICAg
IG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZt
ZXNzYWdlPVNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0LiIs
IHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0
ZXAzIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA0IjsK
KyAgICAgICAgICAgICAgICAvLyBMb2FkIGFuIGlmcmFtZSBpbiBhIHJlZGlyZWN0IGNoYWluIHRo
YXQgc3RhcnRzIHdpdGggbG9jYWxob3N0IGFuZCBlbmRzIHdpdGggMTI3LjAuMC4xLiBFeHBlY3Qg
YSBjb29raWUgZm9yIDEyNy4wLjAuMS4KKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHJlZGly
ZWN0Q2hhaW5VcmwgKyAiJm1lc3NhZ2U9UmVkaXJlY3QgY2FzZSAxLCBzaG91bGQgcmVjZWl2ZSBm
aXJzdC1wYXJ0eSBjb29raWUgZm9yIDEyNy4wLjAuMS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAg
Ly8gU2V0IGxvY2FsaG9zdCBhcyBwcmV2YWxlbnQgdG8gcHV0IGl0IGluIHRoZSBibG9ja2luZyBj
YXRlZ29yeS4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA1
IjsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSh0aGlyZFBhcnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJk
UGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBk
aWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwNSI6CisgICAgICAgICAgICAgICAgLy8gVHJ5IHRvIHNldCBwYXJ0aXRpb25l
ZCBjb29raWUgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAg
ZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNiI7CisgICAgICAgICAgICAgICAgb3Blbklm
cmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldFRoaXJkUGFydHlDb29raWUgKyAi
Jm1lc3NhZ2U9VHJ5IHRvIHNldCB0aGlyZC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdCBpbiBi
bG9ja2VkIG1vZGUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlICIjc3RlcDYiOgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgbm8gY29v
a2llIGdldHMgc2VudCBmb3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMSBzaW5jZSBsb2NhbGhv
c3QncyBjb29raWVzIGFyZSBibG9ja2VkLgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0
aW9uLmhhc2ggPSAic3RlcDciOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0
eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgICImbWVzc2FnZT1TaG91bGQgcmVjZWl2
ZSBubyBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlICIjc3RlcDciOgorICAgICAgICAgICAgICAgIC8vIExvYWQgYW4gaWZyYW1lIGlu
IGEgcmVkaXJlY3QgY2hhaW4gdGhhdCBzdGFydHMgd2l0aCBsb2NhbGhvc3QgYW5kIGVuZHMgd2l0
aCAxMjcuMC4wLjEuIEV4cGVjdCBhIGNvb2tpZSBmb3IgMTI3LjAuMC4xLgorICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDgiOworICAgICAgICAgICAgICAgIG9w
ZW5JZnJhbWUocmVkaXJlY3RDaGFpblVybCArICImbWVzc2FnZT1SZWRpcmVjdCBjYXNlIDIsIHNo
b3VsZCBub3QgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIDEyNy4wLjAuMS4iLCBydW5U
ZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwOCI6
CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIikgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTG9j
YWxob3N0IHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZSBiZWZvcmUgdGhlIHRl
c3Qgc3RhcnRzLiIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1Rl
eHQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEiOworICAg
ICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBy
dW5UZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXN3
aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGhvdXQtaW50ZXJhY3Rp
b24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXBy
ZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kMDVkYzA5YjY5NjM5ZjFkOTBjNmMzN2MyMmVkMWI5NmY4NjFjNDQ5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rv
LW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWlu
dGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0
aGF0IHRoZSBzZXNzaW9uIGlzIG5vdCBzd2l0Y2hlZCB1cG9uIHRvcCBmcmFtZSBuYXZpZ2F0aW9u
IHRvIGEgcHJldmFsZW50IHJlc291cmNlIHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbi4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgU2hvdWxkIGhhdmUgYW5kIGhhcyB0aGUg
c2Vzc2lvbiBjb29raWUuCitQQVNTIFNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHBlcnNpc3RlbnQg
Y29va2llLgorUEFTUyBPcmlnaW4gaGFzIG5vIGlzb2xhdGVkIHNlc3Npb24uCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gt
c2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9uLWRh
dGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGhv
dXQtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YWJmZGI5YzQyYmUyMGE3
Mzk2NjIyNDRlZWQ0ZDczNjQ4ZjVjMGQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1v
bi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9uLWRhdGFiYXNlLmh0
bWwKQEAgLTAsMCArMSwxMTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgor
PGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJl
c291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdGhlIHNlc3Npb24g
aXMgbm90IHN3aXRjaGVkIHVwb24gdG9wIGZyYW1lIG5hdmlnYXRpb24gdG8gYSBwcmV2YWxlbnQg
cmVzb3VyY2Ugd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMg
PSB0cnVlOworCisgICAgY29uc3QgcHJldmFsZW50T3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMCI7CisgICAgY29uc3Qgbm9uUHJldmFsZW50T3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCI7CisgICAgY29uc3Qgc2Vzc2lvbkNvb2tpZU5hbWUgPSAic2Vzc2lvbkNvb2tpZSI7Cisg
ICAgY29uc3QgcGVyc2lzdGVudENvb2tpZU5hbWUgPSAicGVyc2lzdGVudENvb2tpZSI7CisgICAg
Y29uc3QgdHdvTWludXRlc0luU2Vjb25kcyA9IDEyMDsKKworICAgIGZ1bmN0aW9uIHNldFNlc3Np
b25Db29raWUoKSB7CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNlc3Npb25Db29raWVOYW1l
ICsgIj0xOyBwYXRoPS8iOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNldFBlcnNpc3RlbnRDb29r
aWUoKSB7CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHBlcnNpc3RlbnRDb29raWVOYW1lICsg
Ij0xOyBwYXRoPS87IE1heC1BZ2U9IiArIHR3b01pbnV0ZXNJblNlY29uZHMgKyAiOyI7CisgICAg
fQorCisgICAgZnVuY3Rpb24gY2hlY2tDb29raWVzKHNob3VsZEhhdmVTZXNzaW9uQ29va2llLCBz
aG91bGRIYXZlUGVyc2lzdGVudENvb2tpZSkgeworICAgICAgICBsZXQgaGFzU2Vzc2lvbkNvb2tp
ZSA9IChkb2N1bWVudC5jb29raWUgKyAiIikuaW5jbHVkZXMoc2Vzc2lvbkNvb2tpZU5hbWUpLAor
ICAgICAgICAgICAgaGFzUGVyc2lzdGVudENvb2tpZSA9IChkb2N1bWVudC5jb29raWUgKyAiIiku
aW5jbHVkZXMocGVyc2lzdGVudENvb2tpZU5hbWUpOworCisgICAgICAgIGlmIChzaG91bGRIYXZl
U2Vzc2lvbkNvb2tpZSAmJiBoYXNTZXNzaW9uQ29va2llKQorICAgICAgICAgICAgdGVzdFBhc3Nl
ZCgiU2hvdWxkIGhhdmUgYW5kIGhhcyB0aGUgc2Vzc2lvbiBjb29raWUuIik7CisgICAgICAgIGVs
c2UgaWYgKHNob3VsZEhhdmVTZXNzaW9uQ29va2llICYmICFoYXNTZXNzaW9uQ29va2llKSB7Cisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJTaG91bGQgaGF2ZSBidXQgZG9lc24ndCBoYXZlIHRoZSBz
ZXNzaW9uIGNvb2tpZS4iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgICAgIH0gZWxzZSBpZiAoIXNob3VsZEhhdmVTZXNzaW9uQ29va2ll
ICYmIGhhc1Nlc3Npb25Db29raWUpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZG4n
dCBoYXZlIGJ1dCBoYXMgdGhlIHNlc3Npb24gY29va2llLiIpOworICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJTaG91bGRuJ3QgaGF2ZSBhbmQgZG9lc24ndCBoYXZlIHRoZSBzZXNz
aW9uIGNvb2tpZS4iKTsKKworCisgICAgICAgIGlmIChzaG91bGRIYXZlUGVyc2lzdGVudENvb2tp
ZSAmJiBoYXNQZXJzaXN0ZW50Q29va2llKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxk
IGhhdmUgYW5kIGhhcyB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgICAgIGVsc2UgaWYg
KHNob3VsZEhhdmVQZXJzaXN0ZW50Q29va2llICYmICFoYXNQZXJzaXN0ZW50Q29va2llKSB7Cisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJTaG91bGQgaGF2ZSBidXQgZG9lc24ndCBoYXZlIHRoZSBw
ZXJzaXN0ZW50IGNvb2tpZS4iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2Us
IGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0gZWxzZSBpZiAoIXNob3VsZEhhdmVQZXJzaXN0ZW50
Q29va2llICYmIGhhc1BlcnNpc3RlbnRDb29raWUpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
IlNob3VsZG4ndCBoYXZlIGJ1dCBoYXMgdGhlIHBlcnNpc3RlbnQgY29va2llLiIpOworICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91bGRuJ3QgaGF2ZSBhbmQgZG9lc24ndCBo
YXZlIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5U
ZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAg
ICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgc2V0U2Vzc2lvbkNvb2tpZSgp
OworICAgICAgICAgICAgICAgIHNldFBlcnNpc3RlbnRDb29raWUoKTsKKyAgICAgICAgICAgICAg
ICBjaGVja0Nvb2tpZXModHJ1ZSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5u
ZXIuaGFzU3RhdGlzdGljc0lzb2xhdGVkU2Vzc2lvbihwcmV2YWxlbnRPcmlnaW4pKSB7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk9yaWdpbiBoYXMgaXNvbGF0ZWQgc2Vzc2lvbi4i
KTsKKyAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNU
ZXN0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBh
c3NlZCgiT3JpZ2luIGhhcyBubyBpc29sYXRlZCBzZXNzaW9uLiIpOworICAgICAgICAgICAgICAg
IGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBub25QcmV2YWxlbnRPcmlnaW4gKyAiL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJl
dmFsZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24uaHRtbCNzdGVwMiI7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAgICAgICAgICAgIGlmIChkb2N1bWVu
dC5sb2NhdGlvbi5vcmlnaW4gIT09IG5vblByZXZhbGVudE9yaWdpbikKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiU3RlcCAyIGlzIG5vdCBvbiAiICsgbm9uUHJldmFsZW50T3JpZ2lu
ICsgIi4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShwcmV2YWxlbnRPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
cHJldmFsZW50T3JpZ2luKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChw
cmV2YWxlbnRPcmlnaW4gKyAiIGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5p
c2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAi
I3N0ZXAzIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gcHJldmFs
ZW50T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lv
bi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9uLmh0bWwjc3Rl
cDQiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoK
KyAgICAgICAgICAgICAgICBjaGVja0Nvb2tpZXModHJ1ZSwgdHJ1ZSk7CisgICAgICAgICAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaGFzU3RhdGlzdGljc0lzb2xhdGVkU2Vzc2lvbihwcmV2YWxlbnRP
cmlnaW4pKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPcmlnaW4gaGFzIGlzb2xh
dGVkIHNlc3Npb24uIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJPcmlnaW4gaGFzIG5vIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAgICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiVW5rbm93biBoYXNoLiIpOworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9j
dW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0
aW9uLm9yaWdpbiAhPT0gcHJldmFsZW50T3JpZ2luKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgi
VGVzdCBpcyBub3Qgc3RhcnRpbmcgb3V0IG9uICIgKyBwcmV2YWxlbnRPcmlnaW4gKyAiLiIpOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRy
dWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZh
bGVudE9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChwcmV2YWxlbnRPcmlnaW4g
KyAiIHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZSBiZWZvcmUgdGhlIHRlc3Qg
c3RhcnRzLiIpOworICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7
CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25n
cmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFs
ZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0
aW9uLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMGZiYTgxMDM1ZTJmZWNiYTEzOTRkMDFkZjJlOWJlMjA2OTVl
ODVhNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGlu
ay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMCBAQAorQ2hlY2sgdGhhdCBkb2N1bWVudC5yZWZlcnJlciBpcyBkb3duZ3JhZGVk
IHRvIHRoZSBlVExEKzEgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIHF1
ZXJ5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgcmVmZXJyZXIg
aXMgZG93bmdyYWRlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmst
cXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZv
ci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRh
YmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhZWJkZTk1YmU4YTA1MmFmZjM2NzljMDY4ODVhZTE3MDJl
MWQ3NTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxp
bmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsx
LDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iL2Nvb2tpZXMvcmVzb3VyY2VzL2Nvb2tpZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1blRlc3QoKScsIDApIj4KKzxzY3JpcHQ+CisgICAgZGVz
Y3JpcHRpb24oIkNoZWNrIHRoYXQgZG9jdW1lbnQucmVmZXJyZXIgaXMgZG93bmdyYWRlZCB0byB0
aGUgZVRMRCsxIGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBxdWVyeS4i
KTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGxldCBudW1iZXJPZlRyaWVzID0g
MDsKKyAgICBmdW5jdGlvbiB0ZXN0UmVmZXJyZXIoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5y
ZWZlcnJlciA9PT0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gKyAiLyIpIHsKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQoIlRoZSByZWZlcnJlciBpcyBkb3duZ3JhZGVkLiIpOworICAgICAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSBlbHNlIGlm
ICgrK251bWJlck9mVHJpZXMgPD0gNSkKKyAgICAgICAgICAgIHNldFRpbWVvdXQodGVzdFJlZmVy
cmVyLCAyMDApOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRoZSBy
ZWZlcnJlciBpcyBub3QgZG93bmdyYWRlZDogIiArIGRvY3VtZW50LnJlZmVycmVyKTsKKyAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBmdW5jdGlvbiBuYXZpZ2F0ZVNhbWVPcmlnaW5Ub0FkZFF1ZXJ5KCkgewor
ICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4g
KyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdh
dGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbD9saW5rPXF1
ZXJ5IjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBuYXZpZ2F0ZUNyb3NzT3JpZ2luKCkgeworICAg
ICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gZGVzdGluYXRpb25PcmlnaW4gKyAiL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRo
LWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbCI7CisgICAgfQorCisgICAg
Y29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBj
b25zdCBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOwor
ICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5v
cmlnaW4gPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luICYmIGRvY3VtZW50LmxvY2F0aW9uLnNl
YXJjaCA9PT0gIiIpIHsKKyAgICAgICAgICAgIG5hdmlnYXRlU2FtZU9yaWdpblRvQWRkUXVlcnko
KTsKKyAgICAgICAgfSBlbHNlIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHByZXZh
bGVudFJlc291cmNlT3JpZ2luKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERh
dGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIp
OworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVC
bG9ja2luZyhuYXZpZ2F0ZUNyb3NzT3JpZ2luKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdFJlZmVycmVyKCk7
CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmFibGUt
ZGVidWctbW9kZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5hYmxlLWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY1MjE5ZGQzYjExZjJhMzRjNDU3NTM0MGU3MzhkYWRjZmEwY2Nm
Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvZW5hYmxlLWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTAgQEAKK1Rlc3QgZm9yIGVuYWJsaW5nIGRlYnVnIG1vZGUgYW5kIHRoYXQgaXQgcGVy
bWFuZW50bHkgdHJlYXRzIDNyZHBhcnR5dGVzdHdlYmtpdC5vcmcgYXMgYSBwcmV2YWxlbnQgcmVz
b3VyY2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGh0dHA6Ly8zcmRw
YXJ0eXRlc3R3ZWJraXQub3JnIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlIGluIGRlYnVn
IG1vZGUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5hYmxlLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42MzdmZjkyMjU2N2Y5YTQ3MjgyNzNkZmE0NzMyNjM3YTQ4NWNiOWY1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwzNCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFy
c2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IGZv
ciBlbmFibGluZyBkZWJ1ZyBtb2RlIGFuZCB0aGF0IGl0IHBlcm1hbmVudGx5IHRyZWF0cyAzcmRw
YXJ0eXRlc3R3ZWJraXQub3JnIGFzIGEgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8v
M3JkcGFydHl0ZXN0d2Via2l0Lm9yZyI7CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYg
d2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNl
KHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhp
cmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCh0aGlyZFBhcnR5T3Jp
Z2luICsgIiBhbHJlYWR5IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0RlYnVnTW9kZSh0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
dGhpcmRQYXJ0eU9yaWdpbiArICIgZGlkbid0IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3Nl
ZCh0aGlyZFBhcnR5T3JpZ2luICsgIiBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZSBpbiBk
ZWJ1ZyBtb2RlLiIpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0Rl
YnVnTW9kZShmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTgwM2JmY2I1M2IxNDA0OWQ1ZTFkYWFlNWIyNWI2
MjdmYWNlNWE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorUEFTUyBHcmFuZGZhdGhlcmVkIGNvb2tpZSB3YXMgbm90IHB1cmdlZC4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dy
YW5kZmF0aGVyaW5nLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hYWYwYjg1N2YyZThjMDc0MWE1YTVjYzg0YTc4OTg3ZDNjNWM4NWY0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5k
ZmF0aGVyaW5nLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMTYgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgor
ICAgIDx0aXRsZT5UZXN0IGZvciBHcmFuZGZhdGhlcmluZzwvdGl0bGU+CisgICAgPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0PgorICAgIGNvbnN0IGZpcnN0UGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
IjsKKyAgICBjb25zdCBmaXJzdFBhcnR5QmFzZVVybCA9IGZpcnN0UGFydHlPcmlnaW4gKyAiL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29v
a2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5Q29va2ll
TmFtZSA9ICJ0aGlyZFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBjb29raWVWYWx1ZSA9ICJ2YWx1
ZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tp
ZS5waHA/bmFtZT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPSIgKyBjb29raWVW
YWx1ZTsKKyAgICBjb25zdCByZXR1cm5VcmwgPSBmaXJzdFBhcnR5T3JpZ2luICsgIi9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLmh0bWwiOworICAgIGNvbnN0IHRoaXJkUGFy
dHlPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5
QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVz
b3VyY2VzIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRUaGlyZFBhcnR5Q29va2llID0gIi9zZXQt
Y29va2llLnBocD9uYW1lPSIgKyB0aGlyZFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9IiArIGNv
b2tpZVZhbHVlOworCisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRVc2VJVFBEYXRhYmFzZShmYWxzZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGZpcmVEYXRhTW9kaWZpY2F0aW9u
SGFuZGxlckFuZENvbnRpbnVlKCkgeworICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0
aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBy
dW5UZXN0KCk7CisgICAgICAgIH0pOworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9j
ZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2xl
YXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZUFuZENvbnRpbnVlKCkgeworICAgICAgICB0ZXN0
UnVubmVyLnN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlKGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhh
c2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgLy8gU2V0
IGEgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaHJlZiA9IGZpcnN0UGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0Rmly
c3RQYXJ0eUNvb2tpZSArICIjIiArIHJldHVyblVybCArICIjc3RlcDIiOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICAvLyBDaGVj
ayB0aGF0IGxvY2FsaG9zdCdzIGNvb2tpZSBpcyB0aGVyZS4KKyAgICAgICAgICAgICAgICBpZiAo
ZG9jdW1lbnQuY29va2llICE9PSBmaXJzdFBhcnR5Q29va2llTmFtZSArICI9IiArIGNvb2tpZVZh
bHVlKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJGaXJzdC1wYXJ0eSBjb29raWUg
bm90IHNldC4iKTsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDQiOworICAgICAgICAgICAgICAgIC8vIENsZWFyIHN0
b3JlIHRvIHRyaWdnZXIgZ3JhbmRmYXRoZXJpbmcuCisgICAgICAgICAgICAgICAgY2xlYXJJbk1l
bW9yeUFuZFBlcnNpc3RlbnRTdG9yZUFuZENvbnRpbnVlKCk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAgICAgICAgICAgIC8vIFNldCBsb2NhbGhv
c3QgYXMgcHJldmFsZW50IHJlc291cmNlLgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNz
dGVwNSI6CisgICAgICAgICAgICAgICAgLy8gU2V0IGEgZmlyc3QtcGFydHkgY29va2llIGZvciAx
MjcuMC4wLjEuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJk
UGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNvb2tpZSArICIjIiArIHJldHVy
blVybCArICIjc3RlcDYiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSAiI3N0ZXA2IjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0
ZXA3IjsKKyAgICAgICAgICAgICAgICAvLyBTZXQgMTI3LjAuMC4xIGFzIHByZXZhbGVudCByZXNv
dXJjZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKCJodHRwOi8vMTI3LjAuMC4xIiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgi
aHR0cDovLzEyNy4wLjAuMSIpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
MTI3LjAuMC4xIGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAg
ICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNyI6CisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwOCI7CisgICAgICAgICAgICAgICAgLy8g
VHJpZ2dlciBhIHB1cmdlLgorICAgICAgICAgICAgICAgIGZpcmVEYXRhTW9kaWZpY2F0aW9uSGFu
ZGxlckFuZENvbnRpbnVlKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlICIjc3RlcDgiOgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgbG9jYWxob3N0J3Mg
Y29va2llIGlzIHN0aWxsIHRoZXJlLgorICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5jb29r
aWUgIT09IGZpcnN0UGFydHlDb29raWVOYW1lICsgIj0iICsgY29va2llVmFsdWUpCisgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkZpcnN0LXBhcnR5IGNvb2tpZSBwdXJnZWQuIik7Cisg
ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJHcmFu
ZGZhdGhlcmVkIGNvb2tpZSB3YXMgbm90IHB1cmdlZC4iKTsKKyAgICAgICAgICAgICAgICBmaW5p
c2hUZXN0KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCBub3QgYmUgcmVhY2hlZC4iKTsKKyAg
ICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAo
ZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2lu
ZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRy
dWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZv
cmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworCisgICAg
ICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlv
bi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgfSk7Cisg
ICAgfSBlbHNlCisgICAgICAgIHJ1blRlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2xvZy1jcm9zcy1zaXRlLWxvYWQtd2l0aC1saW5rLWRlY29yYXRpb24uaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9sb2ctY3Jvc3Mtc2l0ZS1s
b2FkLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0bWwKaW5kZXggYzZjYjBkYmEwNTZjMTkxYWI5NGVh
YjM3YjNkZjEzZTJjYjllOGYxOS4uZmNjODJjNTY1NjgyOGRmMDVhY2JjMjNhYjgwZWUwNjRiYTBh
NzhmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2xvZy1jcm9zcy1zaXRlLWxvYWQtd2l0aC1saW5rLWRlY29yYXRpb24uaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbG9nLWNyb3Nz
LXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sCkBAIC04LDYgKzgsNyBAQAogPGRp
diBpZD0ib3V0cHV0Ij48L2Rpdj4KIDxzY3JpcHQ+CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UoZmFsc2UpOwogICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0
aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFj
dGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg5Zjg1NWE3ODljZjEwYmYz
MzBmNGM5MmVhMTJiOTQxYWJlZmMwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdp
dGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBA
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1Mg
Q29va2llIG5vdCBkZWxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXIt
aW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFj
dGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5N2U4MGZkNjY0ZWUxZWE4MDM4ZDllODcy
YzczOTU3MjkwZjUxMWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXIt
aW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4K
KyAgICA8dGl0bGU+VGVzdHMgZm9yIE5vbi1QcmV2YWxlbnQgUmVzb3VyY2UgV2l0aCBVc2VyIElu
dGVyYWN0aW9uPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVy
VGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRw
Oi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IG90aGVyUHJldmFsZW50
VXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIHJ1blRl
c3RSdW5uZXJUZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSAiIikKKyAg
ICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBub3QgZW1wdHkuIik7CisgICAg
ICAgIGNvbnN0IGNvb2tpZSA9ICJ0ZXN0Q29va2llPXRlc3RWYWx1ZSI7CisgICAgICAgIGRvY3Vt
ZW50LmNvb2tpZSA9IGNvb2tpZSArICI7IG1heC1hZ2U9MTAwOyI7CisgICAgICAgIGlmIChkb2N1
bWVudC5jb29raWUgIT09IGNvb2tpZSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3VtZW50
LmNvb2tpZSBkaWQgbm90IGdldCBzZXQuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQg
bm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAg
Ly8gVGhpcyBpcyBkb25lIHRvIG5vdCBoYXZlIGFuIGVtcHR5IHNldCBvZiBwcmV2YWxlbnQgcmVz
b3VyY2VzLgorICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIGRhdGEgcmVjb3JkcyBhcmUgbmV2ZXIg
c2Nhbm5lZC4KKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKG90aGVyUHJldmFsZW50VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uob3RoZXJQ
cmV2YWxlbnRVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPdGhlciBob3N0
IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlz
dGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkp
CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGxv
Z2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llID09PSBj
b29raWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29va2llIG5v
dCBkZWxldGVkLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBkZWxldGVkIG9yIGRvY3VtZW50LmNv
b2tpZSBjb250YWlucyBvdGhlciBjb29raWVzOiAiICsgZG9jdW1lbnQuY29va2llKTsKKworICAg
ICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVz
b3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNS
ZW1vdmFsKDApOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9j
ZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0
aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93
LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUp
OworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAg
ICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNl
ci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0
LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4OWY4
NTVhNzg5Y2YxMGJmMzMwZjRjOTJlYTEyYjk0MWFiZWZjMDcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVu
dC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCitQQVNTIENvb2tpZSBub3QgZGVsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVz
b3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJj
ZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YmNl
OTkwNDVmMGEzZWNjZGJhZDE4Nzg3ZWVkOGZmZjY2NTdmZjY1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxl
bnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKQEAgLTAs
MCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAg
ICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBOb24tUHJldmFs
ZW50IFJlc291cmNlIFdpdGhvdXQgVXNlciBJbnRlcmFjdGlvbjwvdGl0bGU+CisgICAgPHNjcmlw
dCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAg
IGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1w
IjsKKyAgICBjb25zdCBvdGhlclByZXZhbGVudFVybCA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAv
dGVtcCI7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgaWYg
KGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVu
dC5jb29raWUgbm90IGVtcHR5LiIpOworICAgICAgICBjb25zdCBjb29raWUgPSAidGVzdENvb2tp
ZT10ZXN0VmFsdWUiOworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBjb29raWUgKyAiOyBtYXgt
YWdlPTEwMDsiOworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSBjb29raWUpCisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgZGlkIG5vdCBnZXQgc2V0LiIpOwor
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRp
c3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgZG9uZSB0byBub3QgaGF2ZSBh
biBlbXB0eSBzZXQgb2YgcHJldmFsZW50IHJlc291cmNlcy4KKyAgICAgICAgICAgIC8vIE90aGVy
d2lzZSBkYXRhIHJlY29yZHMgYXJlIG5ldmVyIHNjYW5uZWQuCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZhbGVudFVybCwgdHJ1
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsKSkKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiT3RoZXIgaG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
SGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGVhcmVkIG9mIHVzZXIgaW50ZXJhY3Rpb24uIik7
CisKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNj
YW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKGRvY3VtZW50LmNvb2tpZSA9PT0gY29va2llKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIkNvb2tpZSBub3QgZGVsZXRlZC4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJD
b29raWUgZGVsZXRlZCBvciBkb2N1bWVudC5jb29raWUgY29udGFpbnMgb3RoZXIgY29va2llczog
IiArIGRvY3VtZW50LmNvb2tpZSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3Zh
bChmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01p
bmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3Jkcygp
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAg
IH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYm
IHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVj
b3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsK
KyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXBy
ZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29u
dGV4dC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29r
aWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMGZiOTdmOTFmY2QzM2NjOTc4OTc5Y2Q0OGE1NWE0OTQ3NGQyNzcxMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tcHJldmFsZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0
eS1jb250ZXh0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCistLS0tLS0tLQor
RnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIG9uZSBjb29r
aWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNp
ZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVu
dC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1k
YXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJk
LXBhcnR5LWNvbnRleHQtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjRjZmNiMWYzZTM3MjBm
Y2EyMjNjNDJkODc4YzI1YTk2NjIyOWJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Vz
LWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2UuaHRt
bApAQCAtMCwwICsxLDY0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxo
ZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdCB0byBlbnN1
cmUgbm9uLXByZXZhbGVudCByZXNvdXJjZXMgY2FuIGFjY2VzcyB0aGVpciBjb29raWVzIGluIGEg
dGhpcmQgcGFydHkgY29udGV4dDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0
IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlP
cmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFz
ZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3Vy
Y2VzIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2ll
IjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29va2ll
LnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAg
IGNvbnN0IGZyYWdtZW50V2l0aFJldHVyblVybCA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNv
b2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0Lmh0bWwiOworICAgIGNvbnN0IHN1YlBhdGhU
b0dldENvb2tpZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tp
ZU5hbWU7CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVy
bCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAg
ICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxv
YWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
ZWxlbWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dp
dGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEi
OgorICAgICAgICAgICAgICAgIC8vIFNldCBhIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxo
b3N0LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5
QmFzZVVybCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyBmcmFnbWVudFdp
dGhSZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgLy8gTG9hZCBsb2NhbGhvc3QgdW5k
ZXIgMTI3LjAuMC4xIGFuZCBjaGVjayB0aGF0IGl0IGdldHMgaXRzIGNvb2tpZS4KKyAgICAgICAg
ICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2ll
cyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBvbmUgY29va2llLiIsIGZpbmlzaFRlc3QpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3Vt
ZW50LmxvY2F0aW9uLmhvc3QgPT09IHBhcnRpdGlvbkhvc3QgJiYgZG9jdW1lbnQubG9jYXRpb24u
aGFzaCA9PSAiIiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1l
c0FzVGV4dCgpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhp
cmRQYXJ0eU9yaWdpbiwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5T3JpZ2lu
LCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0
aW9uLmhhc2ggPSAic3RlcDEiOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBydW5U
ZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hl
ZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24t
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2M2M3MjAyYjAzZTc3MGQ2ZTQ0NmZiNmYzNDAwZmIz
OGM1OWY1MzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9j
YWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0
cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBw
cm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0
IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8v
MTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVy
ZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIp
IGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlw
LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlw
LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjViZGE2ZjlmMWJjZWJmNDg5NDU1YmVjZTQ4NWY1
Y2VjZDFmNjA5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1s
b2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0
aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9w
ZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAg
ICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFn
ZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2Vk
ID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAg
ICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiKSB7
CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkK
KyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwg
IiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
IlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQu
b3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0
cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBmaW5p
c2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
dGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9u
IGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJo
dHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0
IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcu
MC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tl
ZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQp
CisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2Uo
dHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJl
Y29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9Cisg
ICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8vMTI3LjAu
MC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3Jl
ZGlyZWN0VG89aHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVz
b3VyY2VzL3JlZGlyZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvaWZyYW1lLXJlcG9ydC1iYWNrLWxvYWRlZC5o
dG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2M2M3MjAyYjAzZTc3MGQ2ZTQ0NmZiNmYz
NDAwZmIzOGM1OWY1MzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9j
YWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUg
Z2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0
cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhv
c3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6
Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9z
dC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1s
b2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGI1
ZWU5OTM3MDQxMDUyZGMyNmU4ZjZhNTg2OWEyMjEzMjAwM2EzMwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNl
Lmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgbm9u
LXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2Fn
ZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVz
dCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQg
PSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1
bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3Jp
Z2luID09PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikgeworICAgICAgICAgICAgICAgIGlmIChl
dmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJv
bSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAg
IGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChz
dGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVy
KCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAg
ICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1
YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7Cisg
ICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJl
ZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikn
KTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdp
c3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhv
c3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAg
aWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlz
aFRlc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRy
dWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2Fu
RGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8v
bG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3Qu
cGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHAvP3JlZGlyZWN0VG89aHR0cDovL2xvY2FsaG9zdDo4
MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2lmcmFtZS1yZXBvcnQtYmFjay1s
b2FkZWQuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVk
LW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8t
bG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1l
LXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlw
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjUxNmYxMzJmOWZiMTAxMzY4MjI2
M2M2ZjJjODEwYjdmYWY5ZDhmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUt
d2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAt
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJl
Y3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQg
aWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5k
ZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1Mg
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8v
bG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIs
ICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdp
dGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRh
dGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJkOWNhNTkwMWRiODBlMGRkMDJjMjA1MjAzM2MxNTdkZGQzNmUzMWQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNh
bmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24o
IlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBp
biBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAg
ICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
Im1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZp
bmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hK
U1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWlu
TG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAg
ICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2
ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNz
YWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAg
ICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAg
ICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlP
YnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsK
KyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3Rl
cmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEi
KScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1Jl
Z2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4w
LjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8v
bG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAg
ICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAg
ICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgewor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nh
bm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNz
RGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0i
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3Bh
Z2Utd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8t
aXAuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5l
c3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0
LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlm
cmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10
by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliNTE2ZjEzMmY5
ZmIxMDEzNjgyMjYzYzZmMmM4MTBiN2ZhZjlkOGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0
aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10
by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAK
K1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBp
biBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lz
dGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAu
MSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRp
cmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVl
CitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygi
aHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVk
LW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxo
b3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUt
d2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9j
YWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFlMzNmNjY3ZGEzNTlmM2E4MmJmM2Mw
YzMxMGQzNGVjMzc1YjM0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdp
dGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2Fs
aG9zdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJl
Y3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQg
aWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZl
TWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAg
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9
CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7Cisg
ICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNl
aXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5p
bmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2
ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBl
Y3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAgICAgICBsYXN0UGFnZUlu
UmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVja2Vk
KQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAgICAg
ICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVy
KCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAg
c2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0
aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAg
ICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVk
aXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsKKwor
ICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0UGFn
ZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRz
Q2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIDwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4
MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1ub24tc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0Lmh0bWwiPgor
PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFt
ZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQxNmU2MWZkMDE1ZmQ3YWUzY2I4NjZiNjkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQgaWZyYW1l
IG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5Lgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDov
LzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3Rl
cmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEi
KSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJl
Y3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24t
c2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1p
cC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdp
dGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJh
c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45NzM4ZWEzYjU5YTBhNzA3NDNkMzQ1ZGYwNTJlYTYyOWQyZjZi
OTNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAg
ICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJh
bWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHku
Iik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAg
ZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFs
c2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJl
ZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZh
bHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAg
ICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAibnVsbCIpIHsKKyAgICAgICAgICAgICAgICBpZiAo
ZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZy
b20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAgICAg
ICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAo
c3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZl
cigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAg
ICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNT
dWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOwor
ICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVy
ZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIp
Jyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVn
aXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxo
b3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAg
IGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBmaW5p
c2hUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0
cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2Nh
bkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDov
LzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0
aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC5odG1sIj4K
KzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2Nh
bGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQxNmU2MWZkMDE1ZmQ3
YWUzY2I4NjZiNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRh
YmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMg
Zm9yIGEgc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlmcmFtZSBn
ZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRw
Oi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9z
dCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDov
L2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRi
b3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFz
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
bi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
N2ZhZjAwYThmZDcyZjE0NGVhYWVlZTRhN2QyZDBjYjQ5YjhkOTk1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5k
Ym94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2Fs
aG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9u
KCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBh
IG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1l
c3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlz
aFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rl
c3QpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9h
ZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAg
ICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50
Lm9yaWdpbiA9PT0gIm51bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5k
ZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVu
dC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0
ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJl
ZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkK
KyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAg
fQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRC
ZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigi
aHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNo
b3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGlu
Z1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAg
ICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGly
ZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAg
ICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJ
blJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAg
ICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0Nh
bGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9wYWdlLXdpdGgtc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0Lmh0bWwiPgorPC9pZnJh
bWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41NDliZmI5MGNjMWFjNWY5MzE1ZGRmMDljZDRiOTMxYzk4Yjc0N2VmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDI0IEBACitUZXN0cyB0aGF0IGNvb2tpZSBibG9ja2luZyBpcyBhcHBsaWVkIHRvIHBp
bmcgbG9hZHMuCisgICAKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0t
LS0tCitTaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29raWUg
bmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBm
aXJzdFBhcnR5Q29va2llPXZhbHVlCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTItLT4n
CistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBj
b29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29v
a2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUzLS0+JworLS0tLS0tLS0KK1Bpbmcg
cmVjZWl2ZWQuCitIVFRQX0hPU1Q6IGxvY2FsaG9zdDo4MDAwCitSRVFVRVNUX1VSSTogL2NvbnRl
bnRleHRlbnNpb25zL3Jlc291cmNlcy9zYXZlLXBpbmcucGhwP3Rlc3Q9cGluZy10by1wcmV2YWxl
bnQtcmVzb3VyY2UKK05vIGNvb2tpZXMgaW4gcGluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZhbGVudC1yZXNv
dXJjZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTYyMTI4MTE1OGZkMzdlYWVkZDBjNTRlYWIxZTQ3MzhlOTBhNjVkYgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9w
aW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTAwIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNo
YXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhl
bHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRo
YXQgY29va2llIGJsb2NraW5nIGlzIGFwcGxpZWQgdG8gcGluZyBsb2Fkcy48L2Rpdj4KKzxhIGlk
PSJ0YXJnZXRMaW5rIiBocmVmPSIjIiBwaW5nPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvY29udGVu
dGV4dGVuc2lvbnMvcmVzb3VyY2VzL3NhdmUtcGluZy5waHA/dGVzdD1waW5nLXRvLXByZXZhbGVu
dC1yZXNvdXJjZSI+VGhlIGxpbms8L2E+Cis8c2NyaXB0PgorICAgIGlmICh0ZXN0UnVubmVyKQor
ICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgIGNvbnN0IHBhcnRpdGlv
bkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCByZXNvdXJjZVBhdGggPSAiL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVy
bCA9IHRoaXJkUGFydHlPcmlnaW4gKyByZXNvdXJjZVBhdGg7CisgICAgY29uc3QgZmlyc3RQYXJ0
eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0
Rmlyc3RQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsgZmlyc3RQYXJ0eUNv
b2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCByZXR1cm5VcmwgPSAiaHR0cDov
LyIgKyBwYXJ0aXRpb25Ib3N0ICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJl
dmFsZW50LXJlc291cmNlLmh0bWwiOworICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tpZXMgPSAi
L2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWU7CisKKyAgICBm
dW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElELCBjYWxsYmFjaykgeworICAgICAgICB2
YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAgICAg
IHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAv
IDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9m
ZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2Vu
dGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBj
YWxsYmFjaygpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFu
ZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
aWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2Fk
SGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOwor
ICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1bWVu
dC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAg
ICAgICAgIC8vIFNldCBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdC4KKyAgICAgICAg
ICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQ
YXRoVG9TZXRGaXJzdFBhcnR5Q29va2llICsgIiMiICsgcmV0dXJuVXJsICsgIiNzdGVwMiI7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAg
ICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIGNvb2tpZSBnZXRzIHNlbnQgZm9yIGxvY2FsaG9z
dCB1bmRlciAxMjcuMC4wLjEgc2luY2UgbG9jYWxob3N0IGlzIG5vdCBwcmV2YWxlbnQuCisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAg
ICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMg
KyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLiIsIHJ1blRlc3Qp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAzIjoKKyAg
ICAgICAgICAgICAgICAvLyBTZXQgbG9jYWxob3N0IGFzIHByZXZhbGVudCB0byBwdXQgaXQgaW4g
dGhlIGJsb2NraW5nIGNhdGVnb3J5LgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29r
aWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAgIC8vIENo
ZWNrIHRoYXQgbm8gY29va2llIGdldHMgc2VudCBmb3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAu
MSBzaW5jZSBsb2NhbGhvc3QncyBjb29raWVzIGFyZSBibG9ja2VkLgorICAgICAgICAgICAgICAg
IGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAgICAgICAgICAgIG9wZW5J
ZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgICImbWVzc2Fn
ZT1TaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA1IjoKKyAgICAgICAgICAgICAgICAvLyBD
bGljayB0aGUgbGluayB0byB0cmlnZ2VyIHRoZSBwaW5nLgorICAgICAgICAgICAgICAgIGFjdGl2
YXRlRWxlbWVudCgidGFyZ2V0TGluayIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICBvcGVuSWZyYW1lKHRoaXJkUGFydHlPcmlnaW4gKyAiL2NvbnRlbnRleHRlbnNpb25zL3Jlc291
cmNlcy9nZXQtcGluZy1kYXRhLnBocD90ZXN0PXBpbmctdG8tcHJldmFsZW50LXJlc291cmNlIiwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92
ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOworICAgICAgICAg
ICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIGZldGNoKCIvY29udGVudGV4dGVuc2lvbnMvcmVzb3VyY2VzL2RlbGV0
ZS1waW5nLnBocD90ZXN0PXBpbmctdG8tcHJldmFsZW50LXJlc291cmNlIikudGhlbigoKT0+ewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIpIHsKKyAgICAgICAgaWYgKHRlc3RS
dW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7
CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEiOworICAgICAgICAgICAgICAg
IHJ1blRlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgcnVuVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3By
ZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1y
ZXNvdXJjZS1oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmU0ZTMyYzU5M2RlMTBkNTc3MzcxMDEzNTcxZGQzNDhmNTM4NTE5NmQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFs
ZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMiBAQAorVGVzdHMgdGhhdCB3ZSBncmFudCBVc2VyIEludGVyYWN0aW9uIGNyZWRpdCBm
b3IgaGFuZGxlZCBrZXlwcmVzc2VzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
U2ltdWxhdGUgdXNlciB0eXBpbmcgbGV0dGVyICdhJyBpbnRvIHRoZSBmaWVsZC4KK1BBU1MgdGVz
dElucHV0LnZhbHVlIGlzICJhIgorUEFTUyBPcmlnaW4gd2FzIGdyYW50ZWQgdXNlciBpbnRlcmFj
dGlvbi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVz
b3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2U1NmE1MGNj
Yzg0ZjgwYTE3NWRmNDY3ZmY3ODg5NGNlN2I1MTlmYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3Vy
Y2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2MiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhh
dCB3ZSBncmFudCBVc2VyIEludGVyYWN0aW9uIGNyZWRpdCBmb3IgaGFuZGxlZCBrZXlwcmVzc2Vz
LiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2NvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwL3RlbXAiOworCitvbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB0ZXN0RnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdEZyYW1lIik7CisK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAg
ICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBpbnRlcm5hbHMu
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1
ZSk7CisgICAgfQorCisgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICghdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNv
dXJjZS4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
aWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xl
YXJlZCBvZiB1c2VyIGludGVyYWN0aW9uLiIpOworCisgICAgICAgICAgICB0ZXN0SW5wdXQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdElucHV0Iik7CisKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidGVzdElucHV0
LnZhbHVlIiwgImEiKTsKKworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIk9yaWdpbiBkaWQgbm90IGdldCB1c2VyIGludGVyYWN0aW9uIGNy
ZWRpdC4iKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIk9yaWdpbiB3YXMgZ3JhbnRlZCB1c2VyIGludGVyYWN0aW9uLiIpOworCisgICAgICAg
ICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVz
dEZyYW1lLnNyYyA9ICJhYm91dDpibGFuayI7CisgICAgICAgICAgICAgICAgICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgICAgIH0sIDApOworICAgICAgICAgICAgICAgIH0sIDApOworICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRD
bGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jk
c1JlbW92YWwoMCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3Rh
dGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisKKyAgICAgICAgICAgIGRlYnVnKCJTaW11bGF0ZSB1
c2VyIHR5cGluZyBsZXR0ZXIgJ2EnIGludG8gdGhlIGZpZWxkLiIpOworICAgICAgICAgICAgdGVz
dElucHV0LmZvY3VzKCk7CisgICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQorICAg
ICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImEiKTsKKyAgICAgICAgfSk7CisgICAg
fSk7Cit9Cis8L3NjcmlwdD4KKzxpZnJhbWUgaWQ9InRlc3RGcmFtZSIgc3JjPSJyZXNvdXJjZXMv
b25jbGljay5odG1sIj48L2lmcmFtZT4KKzxpbnB1dCBpZD0idGVzdElucHV0IiB0eXBlPSJ0ZXh0
Ij4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRv
d24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRh
YmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzZlNTU5YmZhMmRkMjQ2MTY3OTg5YjI1YWI4
MjM5YzQ1NmIxNjRiMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRv
d24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3RzIHRoYXQgd2Ug
ZG8gbm90IGdyYW50IFVzZXIgSW50ZXJhY3Rpb24gY3JlZGl0IGZvciB1bmhhbmRsZWQga2V5cHJl
c3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTaW11bGF0ZSBhbiB1bmhhbmRs
ZWQgdXNlciBrZXkgcHJlc3MuCitQQVNTIE9yaWdpbiBkaWQgbm90IGdldCB1c2VyIGludGVyYWN0
aW9uIGNyZWRpdC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFs
ZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NWFjZGViMjhlNGNjYjcxMjgyNTMyMTdiYTg4MTllYTdlYTZmYjJmZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxl
bnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9u
KCJUZXN0cyB0aGF0IHdlIGRvIG5vdCBncmFudCBVc2VyIEludGVyYWN0aW9uIGNyZWRpdCBmb3Ig
dW5oYW5kbGVkIGtleXByZXNzLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2NvbnN0IHN0
YXRpc3RpY3NVcmwgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3RlbXAiOworCitvbmxvYWQgPSBm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB0ZXN0RnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGVzdEZyYW1lIik7CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93Lmlu
dGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOwor
ICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNv
cmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgfQorCisgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0
IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZGlkIG5vdCBnZXQgY2xlYXJlZCBvZiB1c2VyIGludGVyYWN0aW9uLiIpOworCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxs
YmFjayhmdW5jdGlvbigpIHsKKworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAg
ICAgICAgICAgIHRlc3RQYXNzZWQoIk9yaWdpbiBkaWQgbm90IGdldCB1c2VyIGludGVyYWN0aW9u
IGNyZWRpdC4iKTsKKworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RGcmFtZS5zcmMgPSAiYWJvdXQ6YmxhbmsiOworICAgICAg
ICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAg
ICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1Jl
bW92YWwoZmFsc2UpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11
bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworCisgICAgICAg
ICAgICBkZWJ1ZygiU2ltdWxhdGUgYW4gdW5oYW5kbGVkIHVzZXIga2V5IHByZXNzLiIpOworICAg
ICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAgICAgICBldmVudFNl
bmRlci5rZXlEb3duKCJhIiwgWyJtZXRhS2V5Il0pOworICAgICAgICB9KTsKKyAgICB9KTsKK30K
Kzwvc2NyaXB0PgorPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBzcmM9InJlc291cmNlcy9vbmNsaWNr
Lmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13
aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRo
LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4OWY4
NTVhNzg5Y2YxMGJmMzMwZjRjOTJlYTEyYjk0MWFiZWZjMDcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJl
c291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKK1BBU1MgQ29va2llIG5vdCBkZWxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgt
dXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJh
Y3Rpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYzEzYTUwMjc0YzZkZDk0YmZlOGExNjQ1
OWM0Y2JhYjhhOTBlOTBjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50
ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY5IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAg
ICA8dGl0bGU+VGVzdHMgZm9yIFByZXZhbGVudCBSZXNvdXJjZSBXaXRoIFVzZXIgSW50ZXJhY3Rp
b248L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgnc2V0VXBBbmRSdW4oKScsIDAp
Ij4KKzxzY3JpcHQ+CisgICAgaWYgKHRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOworCisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAw
MCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3Qg
KyAiL3RlbXAiOworICAgIGNvbnN0IG90aGVyUHJldmFsZW50VXJsID0gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC90ZW1wIjsKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAg
ICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJk
b2N1bWVudC5jb29raWUgbm90IGVtcHR5LiIpOworICAgICAgICBjb25zdCBjb29raWUgPSAidGVz
dENvb2tpZT10ZXN0VmFsdWUiOworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBjb29raWUgKyAi
OyBtYXgtYWdlPTEwMDsiOworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSBjb29raWUp
CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgZGlkIG5vdCBnZXQgc2V0
LiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKCF0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgLy8gVGhpcyBpcyBkb25lIHRvIG5vdCBoYXZl
IGFuIGVtcHR5IHNldCBvZiBwcmV2YWxlbnQgcmVzb3VyY2VzLgorICAgICAgICAgICAgLy8gT3Ro
ZXJ3aXNlIGRhdGEgcmVjb3JkcyBhcmUgbmV2ZXIgc2Nhbm5lZC4KKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsLCB0
cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uob3RoZXJQcmV2YWxlbnRVcmwpKQorICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJPdGhlciBob3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4i
KTsKKworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlk
TW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgPT09IGNvb2tpZSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb29raWUgbm90IGRlbGV0ZWQuIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiQ29va2llIGRlbGV0ZWQgb3IgZG9jdW1lbnQuY29va2llIGNvbnRhaW5zIG90aGVyIGNvb2tp
ZXM6ICIgKyBkb2N1bWVudC5jb29raWUpOworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1v
dmFsKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
TWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRz
KCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gc2V0VXBBbmRSdW4oKSB7CisgICAgICAgIGlmIChkb2N1bWVu
dC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYm
IHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0
YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJXcm9uZyBob3N0
LCBubyB0ZXN0UnVubmVyLCBvciBubyBpbnRlcm5hbHMuIik7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGltZW91
dC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10
aW1lb3V0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzgwOWU5MWMyM2MyM2Ey
MzY5Y2QwODU0ZWIxODE2NDdkZmFlYjQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRo
LXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
K1BBU1MgQ29va2llIGRlbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWlu
dGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVy
YWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMjA4OTcwNWQyNzhlYWEy
MjEyNjg1NmQxZDZkMDk5YTU5YTBhN2I3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRo
LXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTcgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hh
cnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgUHJldmFsZW50IFJlc291cmNlIFdp
dGggVXNlciBJbnRlcmFjdGlvbiBUaW1lb3V0PC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAg
IGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1w
IjsKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3Vt
ZW50LmNvb2tpZSAhPT0gIiIpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29r
aWUgbm90IGVtcHR5LiIpOworICAgICAgICBjb25zdCBjb29raWUgPSAidGVzdENvb2tpZT10ZXN0
VmFsdWUiOworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBjb29raWUgKyAiOyBtYXgtYWdlPTEw
MDsiOworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSBjb29raWUpCisgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgZGlkIG5vdCBnZXQgc2V0LiIpOworCisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
IGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlz
dGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBn
ZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworCisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09ICIi
KQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5vdCBkZWxldGVk
OiAiICsgZG9jdW1lbnQuY29va2llKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29va2llIGRlbGV0ZWQuIik7CisgICAgICAg
ICAgICAgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChm
YWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9D
b25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxk
Q2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFS
ZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKDApOworCisgICAgICAgICAgICAgICAgLy8gVGhp
cyBpcyB0byBlbnN1cmUgdGhlIHRpbWVvdXQgd2UncmUgdGVzdGluZy4KKyAgICAgICAgICAgICAg
ICBzZXRUaW1lb3V0KCJ0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERh
dGFSZWNvcmRzKCkiLCAxMDAwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9
CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3
aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJs
ZWQodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hl
bkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0
KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291
cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291
cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjc4MDllOTFjMjNjMjNhMjM2OWNkMDg1NGViMTgxNjQ3ZGZhZWI0MwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9w
cmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorUEFTUyBDb29raWUgZGVsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNv
dXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0
aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjdiMGIyYWFl
MzA4NGQ0YzQ3ZDllYzlmN2NlMzJmZTRkNDBiOWM0YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3Vy
Y2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1OSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBj
aGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBQcmV2YWxlbnQgUmVzb3VyY2Ug
V2l0aG91dCBVc2VyIEludGVyYWN0aW9uPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNv
bnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsK
KworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QgKCkgeworICAgICAgICBpZiAoZG9jdW1lbnQuY29v
a2llICE9PSAiIikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBub3QgZGVsZXRlZDog
IiArIGRvY3VtZW50LmNvb2tpZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIkNvb2tpZSBkZWxldGVkLiIpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NS
ZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRl
c3RSdW5uZXJUZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSAiIikKKyAg
ICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBub3QgZW1wdHkuIik7CisgICAg
ICAgIGNvbnN0IGNvb2tpZSA9ICJ0ZXN0Q29va2llPXRlc3RWYWx1ZSI7CisgICAgICAgIGRvY3Vt
ZW50LmNvb2tpZSA9IGNvb2tpZSArICI7IG1heC1hZ2U9MTAwOyI7CisgICAgICAgIGlmIChkb2N1
bWVudC5jb29raWUgIT09IGNvb2tpZSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3VtZW50
LmNvb2tpZSBkaWQgbm90IGdldCBzZXQuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQg
bm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwg
ZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGVhcmVkIG9mIHVzZXIgaW50
ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0
aWNzRGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgc2V0VGltZW91dCgiZmluaXNoVGVzdCgpIiwgMTAwMCk7CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xh
c3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNv
cmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9j
ZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRl
clRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLnNldFVz
ZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3Rp
ZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICBydW5UZXN0
UnVubmVyVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BydW5l
LXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BydW5lLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmU3NDc1N2JjNTI1NjAwNTIxZDQ2MTU0NWQwMzY3YzBmMDUwMWJl
ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxNyBAQAorVGVzdHMgdGhhdCBzdGF0aXN0aWNzIGFyZSBwcnVuZWQgaW4gdGhlIHJpZ2h0
IG9yZGVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUZXN0IGl0ZXJh
dGlvbiAxIHBhc3NlZC4KK1BBU1MgVGVzdCBpdGVyYXRpb24gMiBwYXNzZWQuCitQQVNTIFRlc3Qg
aXRlcmF0aW9uIDMgcGFzc2VkLgorUEFTUyBUZXN0IGl0ZXJhdGlvbiA0IHBhc3NlZC4KK1BBU1Mg
VGVzdCBpdGVyYXRpb24gNSBwYXNzZWQuCitQQVNTIFRlc3QgaXRlcmF0aW9uIDYgcGFzc2VkLgor
UEFTUyBUZXN0IGl0ZXJhdGlvbiA3IHBhc3NlZC4KK1BBU1MgVGVzdCBpdGVyYXRpb24gOCBwYXNz
ZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3BydW5lLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMGNhYjdkMzkxNzFkMDNmNDdiNDE5ZDJhZGIwY2ExMzhhZGY3OGViOQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxNjMgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Cisg
ICAgPHRpdGxlPlRlc3QgZm9yIFJlc291cmNlIExvYWQgU3RhdGlzdGljcyBQcnVuaW5nPC90aXRs
ZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0
aGF0IHN0YXRpc3RpY3MgYXJlIHBydW5lZCBpbiB0aGUgcmlnaHQgb3JkZXIuIik7CisgICAganNU
ZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBvbGRlclRpbWVzdGFtcCA9IE1hdGgucm91
bmQoKG5ldyBEYXRlKCkpLmdldFRpbWUoKSAvIDEwMDApOworICAgIGNvbnN0IG5ld2VyVGltZXN0
YW1wID0gb2xkZXJUaW1lc3RhbXAgKyAxMDsKKyAgICBjb25zdCBuZXdlc3RUaW1lc3RhbXAgPSBu
ZXdlclRpbWVzdGFtcCArIDEwOworCisgICAgY29uc3QgdXJsc1RvQmVQcnVuZWQgPSBbCisgICAg
ICAgIHsgdXJsOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3RlbXAiLCBwcmV2YWxlbnQ6IGZhbHNl
IH0sCisgICAgICAgIHsgdXJsOiAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiLCBwcmV2YWxl
bnQ6IGZhbHNlIH0sCisgICAgICAgIHsgdXJsOiAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAi
LCBwcmV2YWxlbnQ6IHRydWUgfSwKKyAgICAgICAgeyB1cmw6ICJodHRwOi8vMTI3LjAuMC40Ojgw
MDAvdGVtcCIsIHByZXZhbGVudDogdHJ1ZSB9LAorICAgICAgICB7IHVybDogImh0dHA6Ly8xMjcu
MC4wLjU6ODAwMC90ZW1wIiwgcHJldmFsZW50OiBmYWxzZSB9LAorICAgICAgICB7IHVybDogImh0
dHA6Ly8xMjcuMC4wLjY6ODAwMC90ZW1wIiwgcHJldmFsZW50OiBmYWxzZSB9LAorICAgICAgICB7
IHVybDogImh0dHA6Ly8xMjcuMC4wLjc6ODAwMC90ZW1wIiwgcHJldmFsZW50OiB0cnVlIH0sCisg
ICAgICAgIHsgdXJsOiAiaHR0cDovLzEyNy4wLjAuODo4MDAwL3RlbXAiLCBwcmV2YWxlbnQ6IHRy
dWUgfQorICAgIF07CisKKyAgICBmdW5jdGlvbiBjaGVja0lmUHJldmFsZW50QWNjb3JkaW5nVG9J
bml0aWFsRXhwZWN0YXRpb24oYmVnaW4sIGVuZCkgeworICAgICAgICB2YXIgZmFpbGVkID0gZmFs
c2U7CisgICAgICAgIGZvciAodmFyIGkgPSBiZWdpbjsgaSA8IGVuZDsgKytpKSB7CisgICAgICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh1cmxzVG9C
ZVBydW5lZFtpXS51cmwpICE9PSB1cmxzVG9CZVBydW5lZFtpXS5wcmV2YWxlbnQpIHsKKyAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJjaGVja0lmUHJldmFsZW50QWNjb3JkaW5nVG9Jbml0aWFs
RXhwZWN0YXRpb246IFRlc3QgaXRlcmF0aW9uICIgKyBjdXJyZW50VGVzdCArICIgZmFpbGVkLiAi
ICsgdXJsc1RvQmVQcnVuZWRbaV0udXJsICsgKHVybHNUb0JlUHJ1bmVkW2ldLnByZXZhbGVudCA/
ICIgd2Fzbid0ICIgOiAiIHdhcyAiKSArICJwcmV2YWxlbnQiKTsKKyAgICAgICAgICAgICAgICBm
YWlsZWQgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChmYWls
ZWQpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50
U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIGNoZWNrSWZQcmV2
YWxlbnQoYmVnaW4sIGVuZCwgZXhwZWN0ZWQpIHsKKyAgICAgICAgdmFyIGZhaWxlZCA9IGZhbHNl
OworICAgICAgICBmb3IgKHZhciBpID0gYmVnaW47IGkgPCBlbmQ7ICsraSkgeworICAgICAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsc1RvQmVQ
cnVuZWRbaV0udXJsKSAhPT0gZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJjaGVja0lmUHJldmFsZW50OiBUZXN0IGl0ZXJhdGlvbiAiICsgY3VycmVudFRlc3QgKyAiIGZh
aWxlZC4gIiArIHVybHNUb0JlUHJ1bmVkW2ldLnVybCArIChleHBlY3RlZCA/ICIgd2Fzbid0ICIg
OiAiIHdhcyAiKSArICJwcmV2YWxlbnQiKTsKKyAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVl
OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChmYWlsZWQpIHsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIGluaXRpYWxpemVTdGF0aXN0aWNzQW5k
UnVuVGVzdHMoc3RlcCkgeworICAgICAgICBzd2l0Y2ggKHN0ZXApIHsKKyAgICAgICAgICAgIC8v
IE5vbi1wcmV2YWxlbnQgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uIHRvIGJlIHBydW5lZCBmaXJz
dC4KKyAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFswXS51cmwsIG9sZGVyVGltZXN0YW1wLCBm
dW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygyKTsgfSk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbMV0udXJsLCBu
ZXdlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVz
dHMoMyk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgLy8gUHJldmFs
ZW50IHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbiB0byBiZSBwcnVuZWQgc2Vjb25kLgorICAgICAg
ICAgICAgY2FzZSAzOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1bmVkWzJdLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7
IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoNCk7IH0pOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVkWzJdLnVybCwgb2xkZXJUaW1lc3Rh
bXAsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDUpOyB9KTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh1cmxzVG9CZVBy
dW5lZFszXS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1
blRlc3RzKDYpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
NjoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxz
VG9CZVBydW5lZFszXS51cmwsIG5ld2VyVGltZXN0YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6
ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyg3KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAvLyBOb24tcHJldmFsZW50IHdpdGggdXNlciBpbnRlcmFjdGlvbiB0byBiZSBw
cnVuZWQgdGhpcmQuCisgICAgICAgICAgICBjYXNlIDc6CisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHVybHNUb0JlUHJ1bmVkWzRd
LnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMo
OCk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSA4OgorICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1
bmVkWzRdLnVybCwgb2xkZXJUaW1lc3RhbXAsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlz
dGljc0FuZFJ1blRlc3RzKDkpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgOToKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNI
YWRVc2VySW50ZXJhY3Rpb24odXJsc1RvQmVQcnVuZWRbNV0udXJsLCB0cnVlLCBmdW5jdGlvbigp
IHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxMCk7IH0pOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxMDoKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFs1XS51cmwsIG5ld2VyVGlt
ZXN0YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxMSk7
IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgLy8gUHJldmFsZW50IHdp
dGggdXNlciBpbnRlcmFjdGlvbiB0byBiZSBwcnVuZWQgbGFzdC4KKyAgICAgICAgICAgIGNhc2Ug
MTE6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UodXJsc1RvQmVQcnVuZWRbNl0udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6
ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxMik7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSAxMjoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odXJsc1RvQmVQcnVuZWRbNl0udXJsLCB0cnVlLCBm
dW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxMyk7IH0pOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxMzoKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFs2XS51cmws
IG9sZGVyVGltZXN0YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5U
ZXN0cygxNCk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAx
NDoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSh1cmxzVG9CZVBydW5lZFs3XS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXpl
U3RhdGlzdGljc0FuZFJ1blRlc3RzKDE1KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIDE1OgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih1cmxzVG9CZVBydW5lZFs3XS51cmwsIHRydWUsIGZ1
bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDE2KTsgfSk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDE2OgorICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVkWzddLnVybCwg
bmV3ZXJUaW1lc3RhbXAsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRl
c3RzKDE3KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDE3
OgorICAgICAgICAgICAgICAgIGNoZWNrSWZQcmV2YWxlbnRBY2NvcmRpbmdUb0luaXRpYWxFeHBl
Y3RhdGlvbigwLCB1cmxzVG9CZVBydW5lZC5sZW5ndGgpOworICAgICAgICAgICAgICAgIHJ1blRl
c3QoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZh
ciBjdXJyZW50VGVzdDsKKyAgICBmdW5jdGlvbiBjaGVja1N0YXRpc3RpY3NBZnRlclBydW5pbmco
KSB7CisgICAgICAgIC8vIFBydW5lZCBlbnRyaWVzIHNob3VsZCBub3QgYmUgcHJldmFsZW50Lgor
ICAgICAgICBjaGVja0lmUHJldmFsZW50KDAsIGN1cnJlbnRUZXN0LCBmYWxzZSk7CisgICAgICAg
IC8vIE5vbi1wcnVuZWQgZW50cmllcyBzaG91bGQga2VlcCB0aGVpciBleHBlY3RlZCBzdGF0dXMu
CisgICAgICAgIGNoZWNrSWZQcmV2YWxlbnRBY2NvcmRpbmdUb0luaXRpYWxFeHBlY3RhdGlvbihj
dXJyZW50VGVzdCwgdXJsc1RvQmVQcnVuZWQubGVuZ3RoKTsKKyAgICAgICAgdGVzdFBhc3NlZCgi
VGVzdCBpdGVyYXRpb24gIiArIGN1cnJlbnRUZXN0ICsgIiBwYXNzZWQuIik7CisgICAgICAgIGlm
IChjdXJyZW50VGVzdCA8IHVybHNUb0JlUHJ1bmVkLmxlbmd0aCkgeworICAgICAgICAgICAgKytj
dXJyZW50VGVzdDsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRT
Y2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRpc3RpY3NBZnRlclBydW5pbmcpOworICAg
ICAgICAgICAgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxKTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50
U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCBmaWxsZXJVcmw7CisgICAg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgZmlsbGVyVXJsID0gImh0dHA6Ly8xMjcuMC4i
ICsgY3VycmVudFRlc3QgKyAiLjE6ODAwMC90ZW1wIjsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoZmlsbGVyVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bihmaWxsZXJVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVuKGZpbGxlclVybCwgbmV3ZXN0VGltZXN0YW1wLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vz
c1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZv
cmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5u
ZWQodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01heFN0YXRpc3RpY3NF
bnRyaWVzKHVybHNUb0JlUHJ1bmVkLmxlbmd0aCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1BydW5lRW50cmllc0Rvd25Ubyh1cmxzVG9CZVBydW5lZC5sZW5ndGgpOworCisgICAg
ICAgIGN1cnJlbnRUZXN0ID0gMTsKKyAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGlj
c0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdGlzdGljc0FmdGVyUHJ1bmluZyk7
CisgICAgICAgIGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMSk7CisgICAgfQorPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10
by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3Qt
aXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
N2MxNDM4YjE4NjQwNjQyYWExNmZjMDZiNjlkODQxZmRmM2JmMTZlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hl
ZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3Igc2FuZGJveGVk
IGlmcmFtZXMgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVV
bmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFT
UyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6
Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4x
IiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAt
dG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1s
b2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NjcxMTIwNTA2ODE4Mzkx
Y2E5NjdmZjI0ZmZmYzA1OGM5MjE5ZjQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlv
bigiVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIHNhbmRib3hlZCBpZnJhbWVzIGdldCBjb3VudGVk
IHByb3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOwor
CisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRl
c3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1
ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFS
ZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0
YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0
Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOwor
CisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBp
ZiAoZXZlbnQub3JpZ2luID09PSAibnVsbCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQu
ZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4g
dW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAgICAgICBsYXN0
UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3RhdHND
aGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOwor
ICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAgICAgICAg
IHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFt
ZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAg
ICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1Jl
ZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7Cisg
ICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJl
ZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0Iikn
KTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChs
YXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0
KCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBz
YW5kYm94PSJhbGxvdy1zY3JpcHRzIiBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHAvP3JlZGlyZWN0VG89aHR0cDov
L2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0
LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9yZXNvdXJjZXMvaWZyYW1lLXJlcG9ydC1iYWNrLWxvYWRlZC5odG1sIj4KKzwvaWZyYW1l
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0
LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVj
dC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iN2MxNDM4YjE4NjQwNjQyYWExNmZjMDZiNjlkODQxZmRmM2JmMTZlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1k
YXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVj
dHMgZm9yIHNhbmRib3hlZCBpZnJhbWVzIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lz
dGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAu
MSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRp
cmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVl
CitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygi
aHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mMDI2YmQ5YzBjMjEyYjdlNWYxNjQ5YjU5M2I5Nzg4M2NmMzE0OGZjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2Fs
aG9zdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJl
Y3RzIGZvciBzYW5kYm94ZWQgaWZyYW1lcyBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAg
ICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBm
aW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNo
SlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRy
dWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2Fu
RGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7
CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiBy
ZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0g
Im51bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIp
ID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxh
Y2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAi
ICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5M
b2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAg
ICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAg
IGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2Fs
aG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgn
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8v
bG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVU
cnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0
dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0
YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hh
aW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisgICAg
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc2NyaXB0
cyIgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNv
dXJjZXMvcmVkaXJlY3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHAvP3JlZGlyZWN0VG89aHR0
cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2lmcmFt
ZS1yZXBvcnQtYmFjay1sb2FkZWQuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5n
LWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9z
dC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM2NThjZDM0M2Y1NTZl
MGMzNDQ3NWVmOWVmNDVjNjIwZDRkNDI3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8t
aXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVk
aXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIHNhbmRib3hlZCBp
ZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRl
cigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9s
b2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwg
Imh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5v
bi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFz
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Nh
bmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5MmQ1OTk5
NjRlN2U2MmZkMDVmYjBkNzhhZTVlMjk2NjA1N2EwNjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3Rp
bmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxo
b3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBy
ZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgc2FuZGJveGVk
IGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9
IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2
ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAg
fQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NO
b3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFj
ayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgdmFy
IGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0
c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVu
dCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gIm51bGwiKSB7CisgICAgICAg
ICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsK
KyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVk
IGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsK
KworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAg
ICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
Tm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3Rh
dHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3
LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6
Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAi
aHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7
CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAg
ICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc2NyaXB0cyIgc3JjPSJodHRwOi8vMTI3
LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcGFnZS13aXRoLW5v
bi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC5odG1sIj4K
KzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13
aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2Nh
bGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzNjU4Y2QzNDNmNTU2ZTBjMzQ0NzVlZjllZjQ1
YzYyMGQ0ZDQyN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRh
YmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMg
Zm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgc2FuZGJveGVkIGlmcmFtZSBn
ZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRw
Oi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9z
dCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDov
L2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRi
b3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFz
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Nh
bmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
Zjg2ZmU4YzMyOTRlMjUzOTIyYzI1ZWEzNzkyN2ZkNWM5NDM2ZmY4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hl
ZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2Fs
aG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9u
KCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQg
aW4gYSBzYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1l
c3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlz
aFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rl
c3QpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRh
UmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0K
KworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAg
ICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2Vp
dmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAibnVs
bCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09
IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgi
RkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBl
dmVudC5vcmlnaW4pOworCisgICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRl
ZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAg
IGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVu
Y3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0
IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2Nh
bGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUo
J3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDov
LzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHND
aGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxv
YWRlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKyAgICA8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzYW5kYm94PSJhbGxvdy1zY3JpcHRzIiBz
cmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNl
cy9wYWdlLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlw
LXRvLWxvY2FsaG9zdC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRi
b3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8t
bG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0
aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE1Yzg1ZWI0N2UwZjA4NDE2ZTYxZmQwMTVmZDdh
ZTNjYjg2NmI2OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94
ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgc2FuZGJv
eGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBw
cm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0
IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8v
MTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVy
ZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIp
IGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUt
d2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRh
YmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2ZTk0YTQ1OTY5ODU0ZDNlMzg4ZDEwYWFkY2FmMGExZDJh
NGRhYWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAg
IGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQgaWZyYW1l
IG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIp
OworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1
bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNj
YW5uZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGlj
c0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQg
PSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1
bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3Jp
Z2luID09PSAibnVsbCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9m
KCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRh
dGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBv
cmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJl
Y3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAg
ICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAgICAgICB9CisK
KyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1
ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRw
Oi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxk
QmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8o
Imh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBz
aG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3Rp
bmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsKKworICAgICAg
ICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVk
aXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAg
IH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzYW5kYm94PSJhbGxv
dy1zY3JpcHRzIiBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3Jlc291cmNlcy9wYWdlLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1s
b2NhbGhvc3QtdG8taXAuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5k
Ym94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2Fs
aG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlm
cmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxv
Y2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE1Yzg1ZWI0N2UwZjA4
NDE2ZTYxZmQwMTVmZDdhZTNjYjg2NmI2OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2Nh
bGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQg
cmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hl
ZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVV
bmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFT
UyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6
Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4x
IiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRo
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1k
YXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjVlMTlkZDEwMDIxMTVkOGExOTRmYzIyNDFkNThmNGY4MmUwMDJiZDgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJv
eGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhv
c3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigi
VGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBu
b24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNU
ZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNz
YWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hU
ZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJl
Y29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisK
KyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAg
ICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZl
TWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gIm51bGwi
KSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAt
MSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZB
SUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZl
bnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQg
PSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBm
aW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0
aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIs
ICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxo
b3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8x
MjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hl
Y2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2Fk
ZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisgICAgPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc2NyaXB0cyIgc3Jj
PSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMv
cGFnZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxv
Y2FsaG9zdC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0b20t
cHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0b20t
cHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjJkYzA3M2RhNDdjYmE0ODYwNzcyM2Q0ZmRiNjNjYmExNTZkODdlNjIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4tZGVidWctbW9kZS1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCBmb3IgZW5hYmxpbmcgZGVidWcgbW9k
ZSBhbmQgdGhhdCBpdCBhbGxvd3Mgc2V0dGluZyBhIGN1c3RvbSBkb21haW4gYXMgYSBwcmV2YWxl
bnQgcmVzb3VyY2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMCBnb3Qgc2V0IGFzIGEgY3VzdG9tIHByZXZhbGVudCByZXNvdXJjZSBp
biBkZWJ1ZyBtb2RlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRh
dGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4tZGVidWctbW9kZS1kYXRhYmFzZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjVmZGE4MTIwMTlhOWU3M2ZmOTU1ODkxNWUwZjg4OTI2YThkOTA0OWEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4tZGVidWctbW9kZS1kYXRh
YmFzZS5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0i
ZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgZW5hYmxpbmcgZGVidWcgbW9kZSBhbmQgdGhh
dCBpdCBhbGxvd3Mgc2V0dGluZyBhIGN1c3RvbSBkb21haW4gYXMgYSBwcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCB0aGlyZFBhcnR5
T3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisKKyAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCh0aGly
ZFBhcnR5T3JpZ2luICsgIiBhbHJlYWR5IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRm9y
RGVidWdNb2RlKHRoaXJkUGFydHlPcmlnaW4sIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0RlYnVnTW9kZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCh0aGlyZFBhcnR5T3JpZ2luICsgIiBkaWRuJ3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQodGhpcmRQYXJ0eU9yaWdpbiArICIgZ290IHNldCBhcyBhIGN1c3RvbSBw
cmV2YWxlbnQgcmVzb3VyY2UgaW4gZGVidWcgbW9kZS4iKTsKKyAgICAgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzRGVidWdNb2RlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVz
dCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJl
ZGlyZWN0cy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxl
bnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43YmQ1NDNlYzlhZjMyNGJkNTBkYzFkNGM4NmNkYjA5ZTljNGQ1YjI4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlw
LXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlZGlyZWN0cy1k
YXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdHMgdGhhdCBvbmx5IHRo
ZSBvcmlnaW4gaXMgc2VudCBhcyByZWZlcnJlciBpbiByZWRpcmVjdHMgdG8gcHJldmFsZW50IHJl
c291cmNlcyB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHJlZmVycmVyIGlzICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1z
dWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRtbCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1m
cmFtZTEtLT4nCistLS0tLS0tLQoraHR0cDovLzEyNy4wLjAuMTo4MDAwLwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVy
cmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlZGlyZWN0cy1kYXRhYmFz
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0
cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlZGlyZWN0
cy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwZjhhMmY0MjBiNWFhNjJjMzdhMjVkNGJkZGZl
ZDMzYTMzYmZhNWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxl
bnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1MSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBk
ZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBvbmx5IHRoZSBvcmlnaW4gaXMgc2VudCBhcyByZWZlcnJl
ciBpbiByZWRpcmVjdHMgdG8gcHJldmFsZW50IHJlc291cmNlcyB3aXRob3V0IHVzZXIgaW50ZXJh
Y3Rpb24uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgdGVzdFJ1bm5lci5kdW1w
Q2hpbGRGcmFtZXNBc1RleHQoKTsKKworICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxv
YWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChv
bkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRs
ZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50
KTsKKyAgICB9CisKKyAgICB2YXIgcmVmZXJyZXI7CisgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBE
YXRhYmFzZSh0cnVlKTsKKyAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0
cDovL2xvY2FsaG9zdCIpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IHdhcyBj
bGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRlZC4i
KTsKKworICAgICAgICBmZXRjaCgicmVzb3VyY2VzL2VjaG8tcmVmZXJyZXIucGhwIikudGhlbihm
dW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsK
KyAgICAgICAgfSkudGhlbihmdW5jdGlvbihkYXRhKSB7CisgICAgICAgICAgICByZWZlcnJlciA9
IGRhdGE7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVy
LXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS5o
dG1sIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRw
Oi8vbG9jYWxob3N0IikpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlk
IG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKCJyZXNvdXJjZXMvcmVkaXJlY3QucGhwP3Jl
ZGlyZWN0VG89aHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVz
b3VyY2VzL2VjaG8tcmVmZXJyZXIucGhwIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAgY29uc29sZS5sb2co
ZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5p
c2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNl
LXJlcXVlc3RzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZh
bGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODljY2I5YzIxZmYwMDcxYTk4MDIzOWI3Yjc5M2Y1NTE4N2ViZWU1ZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJp
cC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1k
YXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorVGVzdHMgdGhhdCBvbmx5IHRo
ZSBvcmlnaW4gaXMgc2VudCBhcyByZWZlcnJlciBmb3IgcHJldmFsZW50IHJlc291cmNlcyB3aXRo
b3V0IHVzZXIgaW50ZXJhY3Rpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIHJlZmVycmVyIGlzICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1y
ZXF1ZXN0cy1kYXRhYmFzZS5odG1sIgorUEFTUyByZWZlcnJlciBpcyAiaHR0cDovLzEyNy4wLjAu
MTo4MDAwLyIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQoraHR0cDov
LzEyNy4wLjAuMTo4MDAwLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50
LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1w
cmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
NWQ0ZjAzNjZmOTdjZmNlOTQyOGE2YTg2ZTUxNTQ4MzYwZTMyMTc3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJl
ZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFi
YXNlLmh0bWwKQEAgLTAsMCArMSw2MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBvbmx5IHRo
ZSBvcmlnaW4gaXMgc2VudCBhcyByZWZlcnJlciBmb3IgcHJldmFsZW50IHJlc291cmNlcyB3aXRo
b3V0IHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAg
dGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKworICAgIGZ1bmN0aW9uIG9wZW5J
ZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7
CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9h
ZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAgICB2YXIgcmVmZXJyZXI7CisgICAgdGVzdFJ1
bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUs
IGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgi
TG9jYWxob3N0IHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZSBiZWZvcmUgdGhl
IHRlc3Qgc3RhcnRlZC4iKTsKKworICAgICAgICBmZXRjaCgicmVzb3VyY2VzL2VjaG8tcmVmZXJy
ZXIucGhwIikudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgcmV0dXJuIHJl
c3BvbnNlLnRleHQoKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbihkYXRhKSB7CisgICAgICAg
ICAgICByZWZlcnJlciA9IGRhdGE7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
InJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVl
c3RzLWRhdGFiYXNlLmh0bWwiKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmco
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGZldGNoKCJodHRwOi8vbG9jYWxob3N0
OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1yZWZlcnJlci5waHAi
KS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gcmVzcG9uc2UudGV4dCgpOworICAgICAgICAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9u
KGRhdGEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVycmVyID0gZGF0YTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwLyIpOworCisgICAgICAgICAgICAgICAgICAgICAgICBvcGVuSWZy
YW1lKCJyZXNvdXJjZXMvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89aHR0cDovL2xvY2FsaG9zdDo4
MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcmVmZXJyZXIucGhwIiwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworCisg
ICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgICAgICBjb25zb2xlLmxv
ZyhlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgICAgIH0pOworICAgIH0pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aC1p
bnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1w
cmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzQzOTIyZmQ5M2YxYTU0NDRmMmNiMDY4ODRlZmMzMjkwYmFlNTFmNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0
Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHRoZSBzZXNz
aW9uIGlzIHN3aXRjaGVkIHVwb24gdG9wIGZyYW1lIG5hdmlnYXRpb24gdG8gYSBwcmV2YWxlbnQg
cmVzb3VyY2Ugd2l0aCB1c2VyIGludGVyYWN0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBTaG91bGQgaGF2ZSBhbmQgaGFzIHRoZSBzZXNzaW9uIGNvb2tpZS4KK1BB
U1MgU2hvdWxkIGhhdmUgYW5kIGhhcyB0aGUgcGVyc2lzdGVudCBjb29raWUuCitQQVNTIE9yaWdp
biBoYXMgaXNvbGF0ZWQgc2Vzc2lvbi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2
YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24t
dG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
MjcwYzAwYjA0ODE2NjYwYmM4MWQwZDZlZTg5Y2FhNzBlMWY3NGJjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1z
ZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJh
c2UuaHRtbApAQCAtMCwwICsxLDExMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJl
biI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9
Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB0aGUgc2Vz
c2lvbiBpcyBzd2l0Y2hlZCB1cG9uIHRvcCBmcmFtZSBuYXZpZ2F0aW9uIHRvIGEgcHJldmFsZW50
IHJlc291cmNlIHdpdGggdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKworICAgIGNvbnN0IHByZXZhbGVudE9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAiOworICAgIGNvbnN0IG5vblByZXZhbGVudE9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0Ojgw
MDAiOworICAgIGNvbnN0IHNlc3Npb25Db29raWVOYW1lID0gInNlc3Npb25Db29raWUiOworICAg
IGNvbnN0IHBlcnNpc3RlbnRDb29raWVOYW1lID0gInBlcnNpc3RlbnRDb29raWUiOworICAgIGNv
bnN0IHR3b01pbnV0ZXNJblNlY29uZHMgPSAxMjA7CisKKyAgICBmdW5jdGlvbiBzZXRTZXNzaW9u
Q29va2llKCkgeworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzZXNzaW9uQ29va2llTmFtZSAr
ICI9MTsgcGF0aD0vIjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZXRQZXJzaXN0ZW50Q29va2ll
KCkgeworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBwZXJzaXN0ZW50Q29va2llTmFtZSArICI9
MTsgcGF0aD0vOyBNYXgtQWdlPSIgKyB0d29NaW51dGVzSW5TZWNvbmRzICsgIjsiOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGNoZWNrQ29va2llcyhzaG91bGRIYXZlU2Vzc2lvbkNvb2tpZSwgc2hv
dWxkSGF2ZVBlcnNpc3RlbnRDb29raWUpIHsKKyAgICAgICAgbGV0IGhhc1Nlc3Npb25Db29raWUg
PSAoZG9jdW1lbnQuY29va2llICsgIiIpLmluY2x1ZGVzKHNlc3Npb25Db29raWVOYW1lKSwKKyAg
ICAgICAgICAgIGhhc1BlcnNpc3RlbnRDb29raWUgPSAoZG9jdW1lbnQuY29va2llICsgIiIpLmlu
Y2x1ZGVzKHBlcnNpc3RlbnRDb29raWVOYW1lKTsKKworICAgICAgICBpZiAoc2hvdWxkSGF2ZVNl
c3Npb25Db29raWUgJiYgaGFzU2Vzc2lvbkNvb2tpZSkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQo
IlNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHNlc3Npb24gY29va2llLiIpOworICAgICAgICBlbHNl
IGlmIChzaG91bGRIYXZlU2Vzc2lvbkNvb2tpZSAmJiAhaGFzU2Vzc2lvbkNvb2tpZSkgeworICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkIGhhdmUgYnV0IGRvZXNuJ3QgaGF2ZSB0aGUgc2Vz
c2lvbiBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5p
c2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UgaWYgKCFzaG91bGRIYXZlU2Vzc2lvbkNvb2tpZSAm
JiBoYXNTZXNzaW9uQ29va2llKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTaG91bGRuJ3Qg
aGF2ZSBidXQgaGFzIHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKKyAgICAgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiU2hvdWxkbid0IGhhdmUgYW5kIGRvZXNuJ3QgaGF2ZSB0aGUgc2Vzc2lv
biBjb29raWUuIik7CisKKworICAgICAgICBpZiAoc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29raWUg
JiYgaGFzUGVyc2lzdGVudENvb2tpZSkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlNob3VsZCBo
YXZlIGFuZCBoYXMgdGhlIHBlcnNpc3RlbnQgY29va2llLiIpOworICAgICAgICBlbHNlIGlmIChz
aG91bGRIYXZlUGVyc2lzdGVudENvb2tpZSAmJiAhaGFzUGVyc2lzdGVudENvb2tpZSkgeworICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkIGhhdmUgYnV0IGRvZXNuJ3QgaGF2ZSB0aGUgcGVy
c2lzdGVudCBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBm
aW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UgaWYgKCFzaG91bGRIYXZlUGVyc2lzdGVudENv
b2tpZSAmJiBoYXNQZXJzaXN0ZW50Q29va2llKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJT
aG91bGRuJ3QgaGF2ZSBidXQgaGFzIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsKKyAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxkbid0IGhhdmUgYW5kIGRvZXNuJ3QgaGF2
ZSB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAg
ICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihwcmV2YWxlbnRPcmlnaW4sIHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICBzZXRTZXNzaW9uQ29va2llKCk7CisgICAgICAgICAg
ICAgICAgICAgIHNldFBlcnNpc3RlbnRDb29raWUoKTsKKyAgICAgICAgICAgICAgICAgICAgY2hl
Y2tDb29raWVzKHRydWUsIHRydWUpOworICAgICAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5l
ci5oYXNTdGF0aXN0aWNzSXNvbGF0ZWRTZXNzaW9uKHByZXZhbGVudE9yaWdpbikpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk9yaWdpbiBoYXMgaXNvbGF0ZWQgc2Vzc2lv
bi4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiT3JpZ2luIGhhcyBubyBpc29sYXRlZCBzZXNzaW9uLiIpOwor
ICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gbm9uUHJldmFsZW50
T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmln
YXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCNzdGVwMiI7
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlICIjc3RlcDIiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2gg
PSAic3RlcDMiOworICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4g
IT09IG5vblByZXZhbGVudE9yaWdpbikKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
U3RlcCAyIGlzIG5vdCBvbiAiICsgbm9uUHJldmFsZW50T3JpZ2luICsgIi4iKTsKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxl
bnRPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50T3JpZ2luKSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChwcmV2YWxlbnRPcmlnaW4gKyAi
IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAzIjoKKyAgICAgICAg
ICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gcHJldmFsZW50T3JpZ2luICsgIi9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFs
ZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCNzdGVwNCI7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAgIGNo
ZWNrQ29va2llcyh0cnVlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5o
YXNTdGF0aXN0aWNzSXNvbGF0ZWRTZXNzaW9uKHByZXZhbGVudE9yaWdpbikpCisgICAgICAgICAg
ICAgICAgICAgIHRlc3RQYXNzZWQoIk9yaWdpbiBoYXMgaXNvbGF0ZWQgc2Vzc2lvbi4iKTsKKyAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk9yaWdp
biBoYXMgbm8gaXNvbGF0ZWQgc2Vzc2lvbi4iKTsKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJVbmtub3duIGhh
c2guIik7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNU
ZXN0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNo
ID09PSAiIikgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luICE9PSBwcmV2
YWxlbnRPcmlnaW4pCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJUZXN0IGlzIG5vdCBzdGFydGlu
ZyBvdXQgb24gIiArIHByZXZhbGVudE9yaWdpbiArICIuIik7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwg
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UocHJldmFsZW50T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKHByZXZhbGVudE9yaWdpbiArICIgd2FzIGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291
cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydHMuIik7CisgICAgICAgICAgICBkb2N1bWVudC5sb2Nh
dGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvdGVsZW1ldHJ5LWdlbmVyYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy90ZWxlbWV0cnktZ2VuZXJhdGlvbi5odG1s
CmluZGV4IDg0MTk1NjIwNzBiMjg3ODQ4NmUwOTQxYjJlMmUxY2IyNWU4NjE3MmMuLjY0N2RiMzAw
ZWY4YTI1ODE0NDA5ZDhlMTVlNmJiYjkzNjU1YjU5ZGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy90ZWxlbWV0cnktZ2VuZXJhdGlvbi5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy90
ZWxlbWV0cnktZ2VuZXJhdGlvbi5odG1sCkBAIC04LDYgKzgsNyBAQAogPC9oZWFkPgogPGJvZHk+
CiA8c2NyaXB0PgorICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UoZmFsc2UpOwogICAg
IGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRlbGVtZXRyeSBmb3IgcHJldmFsZW50IHJlc291cmNl
cyBpcyBjYWxjdWxhdGVkIGNvcnJlY3RseS4iKTsKICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODQyNzMwYTQ1ZGFkZTZlYTZmMTVkZWNjMzlhN2U1YTlh
MGUzMTJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFt
ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMgdGhhdCB1c2Vy
IGludGVyYWN0aW9uIGlzIGFsd2F5cyBsb2dnZWQgZm9yIHRoZSB0b3AgZG9jdW1lbnQvZnJhbWUu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50LmxvY2F0aW9u
Lm9yaWdpbiBpcyB0b3BGcmFtZU9yaWdpbgorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlz
IGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHRvcEZyYW1lT3JpZ2luKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9u
LWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3Nz
LW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjc0ZDA5MDk3MGM1
NjNiZmJhNGQ5M2NmYTY0NWNhYjE1YTU5NGUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4t
Y3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHVzZXIgaW50
ZXJhY3Rpb24gaXMgYWx3YXlzIGxvZ2dlZCBmb3IgdGhlIHRvcCBkb2N1bWVudC9mcmFtZS4iKTsK
K2pzVGVzdElzQXN5bmMgPSB0cnVlOwordGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKworY29uc3QgdG9wRnJhbWVPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKK2Nv
bnN0IHN1YkZyYW1lT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisKK2Z1bmN0aW9u
IGFjdGl2YXRlRWxlbWVudChlbGVtZW50SWQpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9m
ZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICB2YXIgY2VudGVyWSA9IGVs
ZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgIFVJSGVscGVy
LmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSk7Cit9CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3Qo
KSB7CisgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsK
KyAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworfQorCitvbmxvYWQg
PSBmdW5jdGlvbigpIHsKKyAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxs
YmFjayhmaW5pc2hUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIHNob3VsZEJlKCJkb2N1bWVu
dC5sb2NhdGlvbi5vcmlnaW4iLCAidG9wRnJhbWVPcmlnaW4iKTsKKworICAgICAgICBpZiAodGVz
dFJ1bm5lcikgeworICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIik7CisgICAgICAgICAg
ICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKworICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0
ZXN0RnJhbWUiKTsKKyAgICAgICAgfQorICAgIH0pOworfTsKKzwvc2NyaXB0PgorPGlmcmFtZSBp
ZD0idGVzdEZyYW1lIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3Jlc291cmNlcy9kdW1teS5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9k
LW9mLXRpbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNl
LXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTQzMmJjOGVkNzM4MWZiYzQ5OGRiMzRjMGZiM2JlN2E1N2JkOTFkMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91
c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9m
LXRpbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3RzIHRoYXQg
dXNlciBpbnRlcmFjdGlvbiBpcyBub3QgcmVwb3J0ZWQgcmVwZWF0ZWRseSB3aXRoaW4gYSBzaG9y
dCBwZXJpb2Qgb2YgdGltZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
ZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luIGlzIHRvcEZyYW1lT3JpZ2luCitQQVNTIHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyBm
YWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihz
dWJGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNI
YWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZh
bHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRv
cEZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hh
ZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZh
bHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1Ro
aXMgaXMgdGhlIHRlc3QgZWxlbWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1v
bmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25s
eS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjYwOTUyNDJjYWQ2NzQwNDE3YWE5OTcyNDYxODk4MTQ0ZGMyY2U5M2UKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBl
cmlvZC1vZi10aW1lLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVs
cGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHVzZXIgaW50ZXJhY3Rp
b24gaXMgbm90IHJlcG9ydGVkIHJlcGVhdGVkbHkgd2l0aGluIGEgc2hvcnQgcGVyaW9kIG9mIHRp
bWUuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCB0b3BGcmFtZU9y
aWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN1YkZyYW1lT3JpZ2lu
ID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1l
bnQoZWxlbWVudElkLCBjYWxsYmFjaykgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVu
dC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50
ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAg
ICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAg
ICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiUHJvbWlzZSByZWplY3RlZC4iKTsKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgfQorICAgICAgICApOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGZpcnN0SW50ZXJhY3Rpb24oKSB7CisgICAgICAgIHNob3VsZEJlRmFs
c2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1l
T3JpZ2luKSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgYWN0aXZh
dGVFbGVtZW50KCJ0ZXN0RWxlbWVudCIsIHNlY29uZEludGVyYWN0aW9uKTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBzZWNvbmRJbnRlcmFjdGlvbigpIHsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdp
bikiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNI
YWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7CisKKyAgICAgICAgaWYgKHRlc3RS
dW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbiwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworCisgICAgICAgICAgICAgICAgYWN0aXZhdGVF
bGVtZW50KCJ0ZXN0RWxlbWVudCIsIGZpbmlzaFRlc3QpOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBzaG91
bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0
b3BGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7CisgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgb25s
b2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2Uo
dHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBzaG91bGRCZSgiZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luIiwgInRvcEZyYW1lT3Jp
Z2luIik7CisKKyAgICAgICAgICAgIGZpcnN0SW50ZXJhY3Rpb24oKTsKKyAgICAgICAgfSk7Cisg
ICAgfTsKKzwvc2NyaXB0PgorPGRpdiBpZD0idGVzdEVsZW1lbnQiPlRoaXMgaXMgdGhlIHRlc3Qg
ZWxlbWVudDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0
ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rp
b24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJmMjhjOTliMzAyNDQ0NTYwYjUxYjM0OGI5NjAyMWIwNTg1NmVhM2MK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVt
b3ZhbC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGVzdHMgdGhhdCB1
c2VyIGludGVyYWN0aW9uIGlzIHJlcG9ydGVkIGFmdGVyIGhpc3RvcnkgcmVtb3ZhbCBzaW5jZSB0
aGF0IG1lYW5zIGFsbCBzdGF0aXN0aWNzIGhhdmUgYmVlbiByZXNldC4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luIGlzIHRvcEZy
YW1lT3JpZ2luCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4p
IGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rp
b24oc3ViRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
SGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikg
aXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bihzdWJGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorVGhpcyBpcyB0aGUgdGVzdCBlbGVtZW50CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRl
cmFjdGlvbi1yZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFzZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50
ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwtZGF0YWJhc2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yYmViNDJmOTQyZjFiNjhmZmFjZmUwZWZiMWZlOTIzOTYyZjIyNjhkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92
YWwtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdXNlciBpbnRlcmFjdGlvbiBpcyByZXBv
cnRlZCBhZnRlciBoaXN0b3J5IHJlbW92YWwgc2luY2UgdGhhdCBtZWFucyBhbGwgc3RhdGlzdGlj
cyBoYXZlIGJlZW4gcmVzZXQuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBj
b25zdCB0b3BGcmFtZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0
IHN1YkZyYW1lT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisKKyAgICBmdW5jdGlv
biBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElkLCBjYWxsYmFjaykgeworICAgICAgICB2YXIgZWxl
bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgIHZhciBj
ZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Cisg
ICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhl
aWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSku
dGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGNhbGxiYWNr
KCk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiUHJvbWlzZSByZWplY3RlZC4iKTsKKyAgICAgICAgICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgfQorICAg
ICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIGZpcnN0SW50ZXJhY3Rpb24oKSB7CisgICAg
ICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsK
KyAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0ZXN0RWxlbWVudCIsIGNsZWFyV2Vic2l0ZURhdGEp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIGNsZWFyV2Vic2l0ZURhdGEoKSB7CisgICAgICAgIHNo
b3VsZEJlVHJ1ZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24o
dG9wRnJhbWVPcmlnaW4pIik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworCisgICAg
ICAgIGlmICh0ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzQ2xl
YXJUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKHNlY29uZEludGVyYWN0aW9uKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBzZWNvbmRJbnRlcmFjdGlvbigpIHsKKyAgICAgICAgc2hvdWxkQmVGYWxz
ZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVP
cmlnaW4pIik7CisgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGVzdEVsZW1lbnQiLCBmaW5pc2hU
ZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBzaG91
bGRCZVRydWUoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRv
cEZyYW1lT3JpZ2luKSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKworICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIG9u
bG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNl
KHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiIsICJ0b3BGcmFtZU9y
aWdpbiIpOworCisgICAgICAgICAgICBmaXJzdEludGVyYWN0aW9uKCk7CisgICAgICAgIH0pOwor
ICAgIH07Cis8L3NjcmlwdD4KKzxkaXYgaWQ9InRlc3RFbGVtZW50Ij5UaGlzIGlzIHRoZSB0ZXN0
IGVsZW1lbnQ8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy93ZWJzaXRlLWRhdGEtcmVtb3ZhbC1m
b3Itc2l0ZS1uYXZpZ2F0ZWQtdG8td2l0aC1saW5rLWRlY29yYXRpb24uaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy93ZWJzaXRlLWRhdGEtcmVtb3Zh
bC1mb3Itc2l0ZS1uYXZpZ2F0ZWQtdG8td2l0aC1saW5rLWRlY29yYXRpb24uaHRtbAppbmRleCBi
ZDNmNjYzYWI3M2Q5ZGQwZjE4NjExNjQwNWFhOWJhMzdmM2UwNWQ5Li42ZWI2MTlhYzc1MjE2ZGRj
NTU5YzVhN2ZmZDFhYzJmYTVkMTgwNmVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUt
bmF2aWdhdGVkLXRvLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZv
ci1zaXRlLW5hdmlnYXRlZC10by13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sCkBAIC0xMCw2ICsx
MCw3IEBACiA8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgogPGJyPgogPHNjcmlwdD4KKyAgICB0ZXN0
UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKGZhbHNlKTsKICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhYWJjZjlhODYyZDFlZTMzYzM2NWZiZDZi
NGEyMjc0NGZhYTkwZmNhLi43ZmVlNzQ5NWQyYzhlODc1MGIyMzMzZDQzNDEzM2VhZWQ3ZjhiNGE2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTg2LDYg
Kzk4Niw4IEBAIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9rZXlib2FyZC1ldmVudHMtZHVyaW5nLXBy
b3Zpc2lvbmFsLW5hdmlnYXRpb24uaHRtbCBbIFNraXAKIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9r
ZXlib2FyZC1ldmVudHMtZHVyaW5nLXByb3Zpc2lvbmFsLXN1YmZyYW1lLW5hdmlnYXRpb24uaHRt
bCBbIFNraXAgXQogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1y
ZXNvdXJjZS1oYW5kbGVkLWtleWRvd24uaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi5odG1s
IFsgU2tpcCBdCitodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJl
c291cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sIFsgU2tpcCBdCitodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlk
b3duLWRhdGFiYXNlLmh0bWwgWyBTa2lwIF0KIG1lZGlhL2F1ZGlvLXBsYXliYWNrLXZvbHVtZS1j
aGFuZ2VzLXdpdGgtcmVzdHJpY3Rpb25zLWFuZC11c2VyLWdlc3R1cmVzLmh0bWwgWyBTa2lwIF0K
IG1lZGlhL2F1ZGlvLXBsYXliYWNrLXZvbHVtZS1jaGFuZ2VzLXdpdGgtcmVzdHJpY3Rpb25zLmh0
bWwgWyBTa2lwIF0KIG1lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS1pbnRlcnJ1cHRpb24uaHRtbCBb
IFNraXAgXQpAQCAtMjc3OSw2ICsyNzgxLDkgQEAgZmFzdC9jYW52YXMvd2ViZ2wvcmVhZFBpeGVs
cy1mbG9hdC5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTc0MTIwIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWIt
ZnJhbWUuaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Vz
ZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2Yt
dGltZS5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNl
ci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC5odG1sIFsg
U2tpcCBdCit3ZWJraXQub3JnL2IvMTc0MTIwIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2Uu
aHRtbCBbIFNraXAgXQoraHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50
ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1k
YXRhYmFzZS5odG1sIFsgU2tpcCBdCitodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
dXNlci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRh
YmFzZS5odG1sIFsgU2tpcCBdCiAjIFNraXBwZWQgaW4gV0syIGV4cGVjdGF0aW9ucyBiZWNhdXNl
IGNvb2tpZSBwYXJ0aXRpb25pbmcgaXMgb25seSBhdmFpbGFibGUgaW4gbWFjT1MgSGlnaCBTaWVy
cmEgYW5kIGlPUyAxMS4KIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUt
ZGVsZXRpb24uaHRtbCBbIFBhc3MgXQogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLmh0bWwgWyBQYXNzIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379487</attachid>
            <date>2019-09-24 13:43:02 -0700</date>
            <delta_ts>2019-09-24 15:38:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195420-20190924134301.patch</filename>
            <type>text/plain</type>
            <size>397414</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5ODM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTlmYTg2ZjUzZTBmODYz
NjY1MDNmNTgxMDc5YjhlNDU5NDA5MjdiYS4uNjNhMDA4MDhjNTE4MmU2ZWM3ZjBmMTAwZDhiODYx
MWJjMjI2YmQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDE5LTA5LTI0ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBM
YXlvdXRUZXN0cyB1c2luZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFNRTGl0ZSBiYWNrZW5kICgx
OTU0MjApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTU0MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjEzNTUxPiAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tp
bmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1m
b3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRo
LWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAg
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29v
a2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2Ut
ZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVl
cnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlm
ZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50
LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0
aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1l
LW9yaWdpbnMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVz
b3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2
YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdp
bnMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRp
cmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJy
ZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMt
dG8tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJl
Y3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZy
YW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJh
c2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12
ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1t
ZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAg
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVy
c2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9uLWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29r
aWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlw
dC1hY2Nlc3NpYmxlLWNvb2tpZXMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdh
dGlvbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxl
LXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVj
dC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50
LXdpdGhvdXQtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmln
YXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmFi
bGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJhc2UuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQt
cmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291
cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAg
ICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJj
ZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0
LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVk
LW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxo
b3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFt
ZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRh
dGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZh
bGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1k
YXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwK
KyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxl
bnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3Vy
Y2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJj
ZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAg
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BydW5lLXN0YXRpc3RpY3MtZGF0YWJh
c2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0
YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAg
ICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZy
YW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRv
LWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbAorICAg
ICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1u
ZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRv
LWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4t
ZGVidWctbW9kZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQt
c3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9y
LXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sCisgICAgICAgICAg
ICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24t
bmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRl
cmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9u
LW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUtZGF0YWJhc2Uu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Vz
ZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwtZGF0YWJh
c2UuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmg6CisgICAg
ICAgIEFkZGVkIFdFQkNPUkVfRVhQT1JUIHByZWZpeCB0byAyIGZ1bmN0aW9ucyBuZWVkZWQgaW4g
dGhlIElUUCBEYXRhYmFzZSAKKyAgICAgICAgdG8gY2xlYXIgb3V0IHRoZSBkYXRhYmFzZS4KKwog
MjAxOS0wOS0xMyAgUnVzc2VsbCBFcHN0ZWluICA8cmVwc3RlaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDk3MDkuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZlZGI3ZmVk
OWRjMTM5ZTYxZGM1MDIxNTgyMWI5ZGNlZGE2NWM0ZDIuLjFmNmYwZGUzMjVlMmFjYzlkNWMwYzNh
MjhjYWVlZTFhODQzMTVhZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcwIEBACisyMDE5LTA5LTI0
ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEVu
YWJsZSBMYXlvdXRUZXN0cyB1c2luZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFNRTGl0ZSBiYWNr
ZW5kICgxOTU0MjApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTU0MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjEzNTUxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZWQgYWxsIFJFTEVB
U0VfTE9HX0VSUk9SKCkgY2FsbHMgaW52b2x2aW5nIGRvbWFpbiBzdHJpbmdzIHRvCisgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoKSB0byBwcmV2ZW50IGxlYWtpbmcgaW5mb3Jt
YXRpb24gYWJvdXQKKyAgICAgICAgdGhlIGRvbWFpbiBzdHJpbmdzIG9ubHkgaWYgc2Vzc2lvbklE
LmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZSk6CisgICAgICAgIEFkZGVkIGF1dG92YWN1dW1p
bmcgdG8gdGhlIGNvbnN0cnVjdG9yIHRvIGF2b2lkIG1hbnVhbGx5IGNhbGxpbmcKKyAgICAgICAg
cnVuVmFjdXVtQ29tbWFuZCgpLiBDaGFuZ2VkIGNvbnN0cnVjdG9yIHRvIHRha2UgaW4gc2Vzc2lv
bklEIHNvIGl0CisgICAgICAgIGNhbiB1c2UgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCB3
aGljaCByZXF1aXJlcyB0aGUgc2Vzc2lvbklELgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJlU3RhdGVtZW50cyk6CisgICAgICAg
IEFkZGVkIDIgc3RhdGVtZW50cyB0aGF0IHdlcmUgbm90IGJlaW5nIHByZXBhcmVkLgorCisgICAg
ICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWxhdGlv
bnNoaXBFeGlzdHMgY29uc3QpOgorICAgICAgICBDb3JyZWN0ZWQgaW5jb3JyZWN0IGNhcGl0YWxp
emF0aW9uLiBBZGRlZCBjaGVjayBmb3IgbnVsbG9wdCBpbiBjYXNlCisgICAgICAgIGRvbWFpbklE
IGlzIGZvciBhIGRvbWFpbiBub3QgaW4gdGhlIGRhdGFiYXNlIHlldC4KKworICAgICAgICAoV2Vi
S2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZG9tYWluSUQgY29uc3Qp
OgorICAgICAgICBDaGFuZ2VkIHJldHVybiB2YWx1ZSB0byBPcHRpb25hbDx1bnNpZ25lZD4uIFNv
bWUgdGVzdHMgd2VyZSBkaXJlY3RseQorICAgICAgICBjaGVja2luZyBmb3Igc3ViZnJhbWVzIHVu
ZGVyIHRvcCBmcmFtZSBkb21haW5zIG9uIGRvbWFpbnMgdGhhdCBoYWQKKyAgICAgICAgbm90IGJl
ZW4gaW5zZXJ0ZWQgeWV0LiBOb3csIGRvbWFpbklEKCkgd29uJ3QgY3Jhc2ggYnV0IHdpbGwgcmV0
dXJuCisgICAgICAgIGEgbnVsbG9wdCB2YWx1ZSB3aGljaCBjYW4gYmUgY2hlY2tlZCB0byBrbm93
IHRoYXQgdGhlIHRlc3RzIGZhaWxlZC4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwcyk6CisgICAg
ICAgIEFkZGVkIGEgY2hlY2sgdG8gYXNzdXJlIGRvbWFpbklEIGV4aXN0cyBhbmQgdXBkYXRlZCB0
aGUgZG9tYWluSUQKKyAgICAgICAgaW50ZXJhY3Rpb25zIHRvIHdvcmsgYXMgT3B0aW9uYWxzLgor
CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpw
b3B1bGF0ZUZyb21NZW1vcnlTdG9yZSk6CisgICAgICAgIE1vdmVkIHRoZSBwcmVwYXJlU3RhdGVt
ZW50cygpIGNhbGwgYWZ0ZXIgdGhlIHZhY3V1bSBjb21tYW5kIGluIHRoZSBjYXNlCisgICAgICAg
IHdoZXJlIHRoZSBkYXRhYmFzZSBpcyBlbXB0eS4gT3RoZXJ3aXNlIGNhbGxlZCBpdCBiZWZvcmUg
cmV0dXJuaW5nLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpyZWN1cnNpdmVseUZpbmROb25QcmV2YWxlbnREb21haW5zVGhhdFJlZGlyZWN0
ZWRUb1RoaXNEb21haW4pOgorICAgICAgICBBZGRlZCBhIHNwYWNlIHRvIHRoZSBTUUwgY29tbWFu
ZHMgdG8gY29ycmVjdCB0aGUgc3ludGF4LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpmaW5kTm90VmVyeVByZXZhbGVudFJlc291cmNlcyk6
CisgICAgICAgIENvcnJlY3RlZCBhIGJ1ZyBpbiB0aGUgU1FMIGNvbW1hbmQgZm9yIHF1ZXJ5aW5n
CisgICAgICAgIHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbi4gVGhlIG9sZCBxdWVyeSB3YXMg
YXNraW5nIGZvciBzdWJyZXNvdXJjZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVjbGFzc2lmeVJlc291cmNlcyk6CisgICAgICAgIFNw
ZWxsaW5nIGZpeC4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICBDaGFuZ2VkIHN0cmlu
ZyBjb25jYXRlbmF0aW9uIHRvIGJpbmRpbmcuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW5kZmF0aGVyRGF0YUZvckRvbWFpbnMpOgor
ICAgICAgICBUaGUgZ3JhbmRmYXRoZXJpbmcuaHRtbCB0ZXN0IHdhcyBmYWlsaW5nIGJlY2F1c2Ug
ZG9tYWlucyB3ZXJlIGJlaW5nCisgICAgICAgICJzZXQiIHRvIGdyYW5kZmF0aGVyZWQgaW4gdGhl
IGRhdGFiYXNlIGJlZm9yZSBiZWluZyBpbnNlcnRlZC4gVGhpcyBmaXgKKyAgICAgICAgZW5zdXJl
cyBhbGwgZG9tYWlucyBiZWZvcmUgc2V0dGluZyB0aGUgZ3JhbmRmYXRoZXJpbmcgZmxhZy4KKwor
ICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9n
RnJhbWVOYXZpZ2F0aW9uKToKKyAgICAgICAgTXVsdGlwbGUgdGVzdHMgd2VyZSBmYWlsaW5nIGJl
Y2F1c2UgdGhlIHF1ZXJ5IHRvIGluc2VydCB0aGUgcmVsYXRpb25zaGlwCisgICAgICAgIGZvciB0
aGUgc291cmNlIGRvbWFpbiByZWxpZXMgb24gdGhlIHRhcmdldCBkb21haW4gYmVpbmcgaW4gdGhl
CisgICAgICAgIE9ic2VydmVkRG9tYWlucyB0YWJsZS4gVGhpcyBwYXRjaCBlbnN1cmVzIGFsbCBk
b21haW5zIGFyZSBhZGRlZCBiZWZvcmUKKyAgICAgICAgcGVyZm9ybWluZyB0aGUgcXVlcnkuCisK
KyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNl
dFVzZXJJbnRlcmFjdGlvbik6CisgICAgICAgIEFkZGVkIGEgIT0gU1FMSVRFX09LIGNoZWNrIHRv
IG1ha2Ugc3VyZSBhbiBlcnJvciBpcyBsb2dnZWQgaWYgdGhlCisgICAgICAgIHN0YXRlbWVudCBm
YWlscyB0byBiaW5kLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpjbGVhclVzZXJJbnRlcmFjdGlvbik6CisgICAgICAgIENoYW5nZWQgc3Ry
aW5nIGNvbmNhdGVuYXRpb24gdG8gYmluZGluZy4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVXNlckludGVyYWN0aW9uKTogICAK
KyAgICAgICAgVGhlIFNRTCBzdGF0ZW1lbnQgd2FzIGJlaW5nIGJvdW5kIHRvIGEgdmFsdWUgYW5k
IG5vdCBiZWluZyByZXNldC4gVGhpcworICAgICAgICBwYXRjaCByZXNldHMgdGhlIHN0YXRlbWVu
dCBhZnRlciBiaW5kaW5nLiBBZGRpdGlvbmFsbHksIHRoZSBzdGVwKCkKKyAgICAgICAgZnVuY3Rp
b24gd2FzIGJlaW5nIGNvbXBhcmVkIHRvIFNRTElURV9ET05FIGluc3RlYWQgb2YgU1FMSVRFX1JP
VywKKyAgICAgICAgY2F1c2luZyBhbiBlcnJvciBpZiB0aGUgcXVlcnkgcmV0dXJuZWQgcmVzdWx0
cy4gVGhlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpIHdhcyBjYXVzaW5nIG51bGwgc2Vh
cmNoZXMgdG8gY3Jhc2ggaW5zdGVhZCBvZgorICAgICAgICByZXR1cm5pbmcgZmFsc2UgKGkuZS4g
aWYgYSBkb21haW4gaXMgbm90IGluIHRoZSBkYXRhYmFzZSBpdCBzaG91bGQKKyAgICAgICAgcmV0
dXJuIHRoYXQgaXQgaGFzIG5vIHVzZXIgaW50ZXJhY3Rpb24gaW5zdGVhZCBvZiBjcmFzaGluZyku
CisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OnNldFByZXZhbGVudFJlc291cmNlKTogCisgICAgICAgIFVwZGF0ZWQgZG9tYWluSUQgY2FsbCB0
byBhY3QgYXMgYW4gT3B0aW9uYWwuIAorICAgICAgICAKKyAgICAgICAgKFdlYktpdDo6UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZWRpY2F0ZVZhbHVlRm9yRG9tYWluIGNv
bnN0KToKKyAgICAgICAgVGhlIFNRTCBzdGF0ZW1lbnQgd2FzIGJlaW5nIGJvdW5kIHRvIGEgdmFs
dWUgYW5kIG5vdCBiZWluZyByZXNldC4gVGhpcworICAgICAgICBwYXRjaCByZXNldHMgdGhlIHN0
YXRlbWVudCBhZnRlciBiaW5kaW5nLiBTUUxJVEVfRE9ORSBjaGFuZ2VkIHRvCisgICAgICAgIFNR
TElURV9ST1cgdG8gcmV0dXJuIG5vbi1lbXB0eSBxdWVyeSByZXN1bHRzLiBBU1NFUlRfTk9UX1JF
QUNIRUQoKQorICAgICAgICByZW1vdmVkIGZvciB0aGUgc2FtZSByZWFzb25zIGFzIGFib3ZlLiAK
KworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
ZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4pOgorICAgICAgICBG
aXhlZCB0aGUgcmVsZWFzZSBsb2cgc3RhdGVtZW50IHdoaWNoIHdhcyBsb2dnaW5nIHRoZSB3cm9u
ZyBmdW5jdGlvbiAKKyAgICAgICAgbmFtZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJEYXRhYmFzZUNvbnRlbnRzKTogCisgICAg
ICAgIENsZWFycyB0aGUgZGF0YWJhc2UgYW5kIHJlYnVpbGRzIHRoZSB0YWJsZXMgb24gYSBjbGVh
ciBjb21tYW5kIHRvCisgICAgICAgIG1hdGNoIHRoZSBmdW5jdGlvbmFsaXR5IGluIHRoZSBNZW1v
cnkgU3RvcmUuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OmNsZWFyKTogICAgICAgICAgICAgICAgICAgCisgICAgICAgIENhbGwgdGhlIGNs
ZWFyRGF0YWJhc2VDb250ZW50cyBmdW5jdGlvbiB0byBtYXRjaCB0aGUgZnVuY3Rpb25hbGl0eSAK
KyAgICAgICAgaW4gdGhlIE1lbW9yeSBTdG9yZS4gCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc1VzZXJHcmFudGVkU3RvcmFnZUFjY2Vz
c1Rocm91Z2hQcm9tcHQgY29uc3QpOgorICAgICAgICBVcGRhdGVkIGRvbWFpbklEIGNhbGwgdG8g
YWN0IGFzIGFuIE9wdGlvbmFsLiAKKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVW5leHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9u
KToKKyAgICAgICAgVGVzdHMgd2VyZSBmYWlsaW5nIGJlY2F1c2Ugc2hvdWxkUmVtb3ZlQWxsV2Vi
c2l0ZURhdGFGb3IoKSB3YXMgbm90IAorICAgICAgICBjaGVja2luZyBmb3IgZXhwaXJlZCB1c2Vy
IGludGVyYWN0aW9uLiBNYXRjaGVkIGZ1bmN0aW9uYWxpdHkgaW4gdGhlCisgICAgICAgIE1lbW9y
eSBTdG9yZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6c2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3IpOgorICAgICAgICBUZXN0cyB3
ZXJlIGZhaWxpbmcgYmVjYXVzZSBzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvcigpIHdhcyBu
b3QgCisgICAgICAgIGNoZWNraW5nIGZvciBleHBpcmVkIHVzZXIgaW50ZXJhY3Rpb24uIE1hdGNo
ZWQgZnVuY3Rpb25hbGl0eSBpbiB0aGUKKyAgICAgICAgTWVtb3J5IFN0b3JlLiAKKworICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVnaXN0cmFi
bGVEb21haW5zVG9SZW1vdmVXZWJzaXRlRGF0YUZvcik6CisgICAgICAgIFNwZWxsaW5nIGZpeC4g
CisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OnBydW5lU3RhdGlzdGljc0lmTmVlZGVkKTogCisgICAgICAgIExhc3Qgc2VlbiBzaG91bGQgYmUg
c29ydGVkIGluIGFzY2VuZGluZyBvcmRlciBiZWNhdXNlIHlvdSB3YW50IHRvIAorICAgICAgICBw
cnVuZSB0aGUgb2xkZXIgc3RhdGlzdGljcyBmaXJzdCwgd2hpY2ggd2lsbCBoYXZlIGEgbG93ZXIg
bGFzdFNlZW4KKyAgICAgICAgZmllbGQgKHNlY29uZHNTaW5jZUVwb2NoKCkgd2lsbCBiZSBsb3dl
ciBmb3Igb2xkZXIgdmFsdWVzKS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3IgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICBEZWxldGVkIGNvbnN0IHNwZWNpZmllciBiZWNhdXNlIHRoZSBm
dW5jdGlvbiBuZWVkcyB0byBjbGVhciB0aGUKKyAgICAgICAgZGF0YWJhc2UuIAorCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZS5oOiAgICAgIAorICAgICAgICBEZWNsYXJlZCBuZXcgZnVuY3Rpb25zLiBVcGRhdGVk
IHNwZWxsaW5nIGVycm9yIChyZWdpc3RlcmFibGUgLS0+IAorICAgICAgICByZWdpc3RyYWJsZSku
IFVwZGF0ZWQgY29uc3RydWN0b3IgdG8gdGFrZSBzZXNzaW9uSUQuIAorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3Bw
OiAKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUpOgorICAgICAgICBJVFAgZGF0YWJhc2UgZmxhZyBu
b3cgaXMgc3RvcmVkIGluIHRoZSBOZXR3b3JrUHJvY2Vzcy4KKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6IAorCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOiAKKyAgICAgICAgU2V0IHRoZSBJVFAgZGF0
YWJhc2UgZmxhZyB3aGljaCBpcyBub3cgc3RvcmVkIGluIHRoZSBOZXR3b3JrIFByb2Nlc3MuIAor
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphZGRXZWJzaXRlRGF0YVN0b3JlKToK
KyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5IHdhcyBub3QgZ2V0
dGluZyBjYWxsZWQgb24gdGhlIAorICAgICAgICBXZWJLaXRUZXN0UnVubmVyIHJlc291cmNlTG9h
ZFN0YXRpc3RpY3MgcGF0aC4gVGhpcyB3YXMgcHJldmVudGluZworICAgICAgICB0aGUgZGF0YWJh
c2UgZmlsZSBmcm9tIG9wZW5pbmcuIAorCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpzZXRVc2VJVFBEYXRhYmFzZSk6IAorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppc0lUUERhdGFiYXNl
RW5hYmxlZCBjb25zdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
bWVzc2FnZXMuaW46CisgICAgICAgIFBhc3NlZCB0aGUgc2V0VXNlSVRQRGF0YWJhc2UgZmxhZyB0
byB0aGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gCisgICAgICAgIG9mIHRoZSBzdGF0aXN0aWNz
IHN0b3JlIHRvIGVuYWJsZSB0aGUgZGF0YWJhc2UgYmFja2VuZC4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nl
c3Npb246OnJlY3JlYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljU3RvcmUpOgorICAgICAgICBEZXN0
cm95IG9sZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgYW5kIGNyZWF0ZSBhIG5ldyBv
bmUgdXNpbmcKKyAgICAgICAgdGhlIElUUCBkYXRhYmFzZS4KKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vi
c2l0ZURhdGFTdG9yZVJlZi5jcHA6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRVc2VJ
VFBEYXRhYmFzZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9y
ZVJlZi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRVc2VJVFBEYXRh
YmFzZSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0VXNlSVRQRGF0YWJhc2UpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAg
ICAgIFBhc3NlZCB0aGUgc2V0VXNlSVRQRGF0YWJhc2UgZmxhZyB0byB0aGUgaW5pdGlhbGl6YXRp
b24gZnVuY3Rpb24KKyAgICAgICAgb2YgdGhlIHN0YXRpc3RpY3Mgc3RvcmUgdG8gZW5hYmxlIHRo
ZSBkYXRhYmFzZSBiYWNrZW5kLiAKKwogMjAxOS0wOS0xMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFj
aHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEF1eGlsaWFyeVByb2Nlc3NQcm94eTo6
c2VuZFdpdGhBc3luY1JlcGx5IHNob3VsZCBxdWV1ZSB1cCBtZXNzYWdlcyBpZiBzZW50IHdoaWxl
IHRoZSBwcm9jZXNzIGlzIHN0YXJ0aW5nIGxpa2UgaXQgZG9lcyBtZXNzYWdlcyB3aXRob3V0IHJl
cGxpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRh
YmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKaW5k
ZXggMTQ5ODY2ZmJjMTE5N2JhMDlkYTIxNTc1ZjFjZWFmYWQ2NDE5ZmU2Yi4uNTIyNGYxZTc3N2M1
NmJlZmIzZDY2ZjhlMDU4OGFkMDA4YTIwNDI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIGJv
b2wgcmV0dXJuc0F0TGVhc3RPbmVSZXN1bHQoY29uc3QgU3RyaW5nJik7CiAgICAgCiAgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCB0YWJsZUV4aXN0cyhjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIGNs
ZWFyQWxsVGFibGVzKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhckFsbFRhYmxlcygp
OwogICAgIFdFQkNPUkVfRVhQT1JUIGludCBydW5WYWN1dW1Db21tYW5kKCk7CiAgICAgaW50IHJ1
bkluY3JlbWVudGFsVmFjdXVtQ29tbWFuZCgpOwogICAgIApAQCAtMTI1LDcgKzEyNSw3IEBAIHB1
YmxpYzoKICAgICAvLyAgICAgICAgICAgICAgIGZpbGUsIGJ1dCByZW1vdmVzIHRoZSBlbXB0eSBw
YWdlcyBvbmx5IHdoZW4gUFJBR01BIElOQ1JFTUFOVEFMX1ZBQ1VVTQogICAgIC8vICAgICAgICAg
ICAgICAgaXMgY2FsbGVkLgogICAgIGVudW0gQXV0b1ZhY3V1bVByYWdtYSB7IEF1dG9WYWN1dW1O
b25lID0gMCwgQXV0b1ZhY3V1bUZ1bGwgPSAxLCBBdXRvVmFjdXVtSW5jcmVtZW50YWwgPSAyIH07
Ci0gICAgYm9vbCB0dXJuT25JbmNyZW1lbnRhbEF1dG9WYWN1dW0oKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBib29sIHR1cm5PbkluY3JlbWVudGFsQXV0b1ZhY3V1bSgpOwogCiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRDb2xsYXRpb25GdW5jdGlvbihjb25zdCBTdHJpbmcmIGNvbGxhdGlvbk5h
bWUsIFdURjo6RnVuY3Rpb248aW50KGludCwgY29uc3Qgdm9pZCosIGludCwgY29uc3Qgdm9pZCop
PiYmKTsKICAgICB2b2lkIHJlbW92ZUNvbGxhdGlvbkZ1bmN0aW9uKGNvbnN0IFN0cmluZyYgY29s
bGF0aW9uTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlLmNwcAppbmRleCBkNGVjODRjN2M3ZDJlMTViNGU3OGMwMjliYTE2ZjIyNjY3
ZGMyMzY2Li5lZDcwNjE5OTI2NzQxYTUzNmNjOTQ3MDEyOTEzNDllNGY3MWY4MGM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAK
QEAgLTE2MCw3ICsxNjAsNyBAQCBjb25zdGV4cHIgYXV0byBjcmVhdGVTdWJyZXNvdXJjZVVuaXF1
ZVJlZGlyZWN0c0Zyb20gPSAiQ1JFQVRFIFRBQkxFIFN1YnJlc291cmNlVQogICAgICJGT1JFSUdO
IEtFWShzdWJyZXNvdXJjZURvbWFpbklEKSBSRUZFUkVOQ0VTIE9ic2VydmVkRG9tYWlucyhkb21h
aW5JRCkgT04gREVMRVRFIENBU0NBREUsICIKICAgICAiRk9SRUlHTiBLRVkoZnJvbURvbWFpbklE
KSBSRUZFUkVOQ0VTIE9ic2VydmVkRG9tYWlucyhkb21haW5JRCkgT04gREVMRVRFIENBU0NBREUp
OyJfczsKICAgICAKLVJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZShXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUmIHN0b3JlLCBXb3JrUXVldWUmIHdvcmtRdWV1ZSwgU2hvdWxkSW5jbHVkZUxvY2FsaG9zdCBz
aG91bGRJbmNsdWRlTG9jYWxob3N0LCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VEaXJlY3RvcnlQYXRo
KQorUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlKFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSYgc3RvcmUs
IFdvcmtRdWV1ZSYgd29ya1F1ZXVlLCBTaG91bGRJbmNsdWRlTG9jYWxob3N0IHNob3VsZEluY2x1
ZGVMb2NhbGhvc3QsIGNvbnN0IFN0cmluZyYgc3RvcmFnZURpcmVjdG9yeVBhdGgsIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkKICAgICA6IFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShzdG9y
ZSwgd29ya1F1ZXVlLCBzaG91bGRJbmNsdWRlTG9jYWxob3N0KQogICAgICwgbV9zdG9yYWdlRGly
ZWN0b3J5UGF0aChzdG9yYWdlRGlyZWN0b3J5UGF0aCArICIvb2JzZXJ2YXRpb25zLmRiIikKICAg
ICAsIG1fb2JzZXJ2ZWREb21haW5Db3VudChtX2RhdGFiYXNlLCBvYnNlcnZlZERvbWFpbkNvdW50
UXVlcnkpCkBAIC0xOTMsNiArMTkzLDcgQEAgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlKFdlYlJlc28KICAgICAs
IG1fdXBkYXRlR3JhbmRmYXRoZXJlZFN0YXRlbWVudChtX2RhdGFiYXNlLCB1cGRhdGVHcmFuZGZh
dGhlcmVkUXVlcnkpCiAgICAgLCBtX2lzR3JhbmRmYXRoZXJlZFN0YXRlbWVudChtX2RhdGFiYXNl
LCBpc0dyYW5kZmF0aGVyZWRRdWVyeSkKICAgICAsIG1fZmluZEV4cGlyZWRVc2VySW50ZXJhY3Rp
b25TdGF0ZW1lbnQobV9kYXRhYmFzZSwgZmluZEV4cGlyZWRVc2VySW50ZXJhY3Rpb25RdWVyeSkK
KyAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6Omlz
TWFpbigpKTsKIApAQCAtMjEyLDYgKzIxMyw5IEBAIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZShXZWJSZXNvCiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CisgICAgCisgICAgaWYgKCFtX2Rh
dGFiYXNlLnR1cm5PbkluY3JlbWVudGFsQXV0b1ZhY3V1bSgpKQorICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6dHVybk9uSW5jcmVtZW50YWxBdXRvVmFjdXVtIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtw
dWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogCiAgICAgaWYgKCFw
cmVwYXJlU3RhdGVtZW50cygpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmss
ICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJlU3RhdGVt
ZW50cyBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMsIGRhdGFiYXNlIHBhdGg6ICV7
cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpLCBtX3N0b3JhZ2VEaXJl
Y3RvcnlQYXRoLnV0ZjgoKS5kYXRhKCkpOwpAQCAtMzI4LDcgKzMzMiw4IEBAIGJvb2wgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZXBhcmVTdGF0ZW1lbnRzKCkKICAgICAg
ICAgfHwgbV91cGRhdGVHcmFuZGZhdGhlcmVkU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVf
T0sKICAgICAgICAgfHwgbV9pc0dyYW5kZmF0aGVyZWRTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNR
TElURV9PSwogICAgICAgICB8fCBtX2ZpbmRFeHBpcmVkVXNlckludGVyYWN0aW9uU3RhdGVtZW50
LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgKSB7CisgICAgICAgIHx8IG1fdG9wRnJh
bWVMaW5rRGVjb3JhdGlvbnNGcm9tLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwg
bV90b3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb21FeGlzdHMucHJlcGFyZSgpICE9IFNRTElURV9P
SykgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMgZmFpbGVkIHRvIHBy
ZXBhcmUsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RF
cnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKQEAgLTM1NSw3ICszNjAsNyBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjppbnNlcnRPYnNlcnZlZERvbWFpbihjb25zdCBSZXNvdXJjZUxvYQogICAg
ICAgICB8fCBtX2luc2VydE9ic2VydmVkRG9tYWluU3RhdGVtZW50LmJpbmRJbnQoOCwgbG9hZFN0
YXRpc3RpY3MuZGF0YVJlY29yZHNSZW1vdmVkKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9p
bnNlcnRPYnNlcnZlZERvbWFpblN0YXRlbWVudC5iaW5kSW50KDksIGxvYWRTdGF0aXN0aWNzLnRp
bWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1VzZXJJbnRlcmFjdGlvbikgIT0gU1FMSVRFX09L
CiAgICAgICAgIHx8IG1faW5zZXJ0T2JzZXJ2ZWREb21haW5TdGF0ZW1lbnQuYmluZEludCgxMCwg
bG9hZFN0YXRpc3RpY3MudGltZXNBY2Nlc3NlZEFzRmlyc3RQYXJ0eUR1ZVRvU3RvcmFnZUFjY2Vz
c0FQSSkgIT0gU1FMSVRFX09LKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmss
ICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNlcnRPYnNlcnZl
ZERvbWFpbiBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMs
IG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9J
Rl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6aW5zZXJ0T2JzZXJ2ZWREb21haW4gZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3Nh
Z2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBA
IC0zNzIsMjQgKzM3NywyNiBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjppbnNlcnRPYnNlcnZlZERvbWFpbihjb25zdCBSZXNvdXJjZUxvYQogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWxh
dGlvbnNoaXBFeGlzdHMoV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50JiBzdGF0ZW1lbnQsIHVuc2ln
bmVkIGZpcnN0RG9tYWluSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzZWNvbmREb21haW4p
IGNvbnN0Citib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWxhdGlv
bnNoaXBFeGlzdHMoV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50JiBzdGF0ZW1lbnQsIE9wdGlvbmFs
PHVuc2lnbmVkPiBmaXJzdERvbWFpbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc2Vjb25k
RG9tYWluKSBjb25zdAogeworICAgIGlmICghZmlyc3REb21haW5JRCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIAogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgaWYg
KHN0YXRlbWVudC5iaW5kSW50KDEsIGZpcnN0RG9tYWluSUQpICE9IFNRTElURV9PSworICAgIGlm
IChzdGF0ZW1lbnQuYmluZEludCgxLCAqZmlyc3REb21haW5JRCkgIT0gU1FMSVRFX09LCiAgICAg
ICAgIHx8IHN0YXRlbWVudC5iaW5kVGV4dCgyLCBzZWNvbmREb21haW4uc3RyaW5nKCkpICE9IFNR
TElURV9PSwogICAgICAgICB8fCBzdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ST1cpIHsKLSAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6Om1faW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwU3RhdGVtZW50IGZh
aWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFz
ZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQo
bV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpt
X2luc2VydERvbWFpblJlbGF0aW9uc2hpcFN0YXRlbWVudCBmYWlsZWQgdG8gYmluZCwgZXJyb3Ig
bWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KLSAgICAKLSAgICBib29sIHJlbGF0aW9uU2hpcEV4aXN0cyA9ICEhc3RhdGVtZW50LmdldENv
bHVtbkludCgwKTsKKyAgICBib29sIHJlbGF0aW9uc2hpcEV4aXN0cyA9ICEhc3RhdGVtZW50Lmdl
dENvbHVtbkludCgwKTsKIAogICAgIGludCByZXNldFJlc3VsdCA9IHN0YXRlbWVudC5yZXNldCgp
OwogICAgIEFTU0VSVF9VTlVTRUQocmVzZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNRTElURV9P
Syk7CiAgICAgCi0gICAgcmV0dXJuIHJlbGF0aW9uU2hpcEV4aXN0czsKKyAgICByZXR1cm4gcmVs
YXRpb25zaGlwRXhpc3RzOwogfQogCiBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjppbnNlcnREb21haW5SZWxhdGlvbnNoaXAoV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50
JiBzdGF0ZW1lbnQsIHVuc2lnbmVkIGRvbWFpbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
dG9wRnJhbWUpCkBAIC0zOTksNyArNDA2LDcgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKFdlYkNvcmU6OlNRTGkKICAg
ICBpZiAoc3RhdGVtZW50LmJpbmRJbnQoMSwgZG9tYWluSUQpICE9IFNRTElURV9PSwogICAgICAg
ICB8fCBzdGF0ZW1lbnQuYmluZFRleHQoMiwgdG9wRnJhbWUuc3RyaW5nKCkpICE9IFNRTElURV9P
SwogICAgICAgICB8fCBzdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjptX2luc2VydERvbWFpblJlbGF0aW9uc2hpcFN0YXRlbWVudCBmYWlsZWQg
dG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFz
dEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vz
c2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV9pbnNl
cnREb21haW5SZWxhdGlvbnNoaXBTdGF0ZW1lbnQgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3Nh
Z2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBA
IC00MTYsNyArNDIzLDcgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6Y29uZmlybURvbWFpbkRvZXNOb3RFeGlzdChjb25zdCBSZWdpc3QKICAgICBBU1NFUlQoIVJ1
bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGlmIChtX2RvbWFpbklERnJvbVN0cmluZ1N0YXRlbWVu
dC5iaW5kVGV4dCgxLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSykgewotICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6Y29uZmlybURvbWFpbkRvZXNOb3RFeGlzdCBmYWlsZWQgdG8gYmluZCwgZXJy
b3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkp
OworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAg
LSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y29uZmlybURvbWFpbkRvZXNO
b3RFeGlzdCBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMs
IG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTQzNCwxNyArNDQxLDIxIEBAIGJv
b2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNvbmZpcm1Eb21haW5Eb2Vz
Tm90RXhpc3QoY29uc3QgUmVnaXN0CiB9CiAjZW5kaWYKIAotdW5zaWduZWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmRvbWFpbklEKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBkb21haW4pIGNvbnN0CitPcHRpb25hbDx1bnNpZ25lZD4gUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OmRvbWFpbklEKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4p
IGNvbnN0CiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICB1bnNpZ25l
ZCBkb21haW5JRCA9IDA7CiAKLSAgICBpZiAobV9kb21haW5JREZyb21TdHJpbmdTdGF0ZW1lbnQu
YmluZFRleHQoMSwgZG9tYWluLnN0cmluZygpKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgfHwgbV9k
b21haW5JREZyb21TdHJpbmdTdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ST1cpIHsKLSAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OmRvbWFpbklERnJvbVN0cmluZyBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6
ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKLSAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBkb21haW5JRDsKKyAgICBpZiAo
bV9kb21haW5JREZyb21TdHJpbmdTdGF0ZW1lbnQuYmluZFRleHQoMSwgZG9tYWluLnN0cmluZygp
KSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCht
X3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmRv
bWFpbklERnJvbVN0cmluZyBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlz
LCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKyAgICB9CisgICAgCisgICAgaWYgKG1fZG9tYWluSURGcm9tU3RyaW5nU3RhdGVtZW50LnN0
ZXAoKSAhPSBTUUxJVEVfUk9XKSB7CisgICAgICAgIGludCByZXNldFJlc3VsdCA9IG1fZG9tYWlu
SURGcm9tU3RyaW5nU3RhdGVtZW50LnJlc2V0KCk7CisgICAgICAgIEFTU0VSVF9VTlVTRUQocmVz
ZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNRTElURV9PSyk7CisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CiAgICAgfQogCiAgICAgZG9tYWluSUQgPSBtX2RvbWFpbklERnJvbVN0cmluZ1N0
YXRlbWVudC5nZXRDb2x1bW5JbnQoMCk7CkBAIC00NTgsMjggKzQ2OSwzMSBAQCB1bnNpZ25lZCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZG9tYWluSUQoY29uc3QgUmVnaXN0
cmFibGVEb21haW4mCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpp
bnNlcnREb21haW5SZWxhdGlvbnNoaXBzKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MmIGxv
YWRTdGF0aXN0aWNzKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwotCiAgICAg
YXV0byByZWdpc3RyYWJsZURvbWFpbklEID0gZG9tYWluSUQobG9hZFN0YXRpc3RpY3MucmVnaXN0
cmFibGVEb21haW4pOworICAgIAorICAgIGlmICghcmVnaXN0cmFibGVEb21haW5JRCkKKyAgICAg
ICAgcmV0dXJuOworICAgIAogICAgIGZvciAoYXV0byYgdG9wRnJhbWVEb21haW4gOiBsb2FkU3Rh
dGlzdGljcy5zdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMpCi0gICAgICAgIGluc2Vy
dERvbWFpblJlbGF0aW9uc2hpcChtX3N0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWluc1N0
YXRlbWVudCwgcmVnaXN0cmFibGVEb21haW5JRCwgdG9wRnJhbWVEb21haW4pOworICAgICAgICBp
bnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFp
bnNTdGF0ZW1lbnQsIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgdG9wRnJhbWVEb21haW4p
OwogCiAgICAgZm9yIChhdXRvJiB0b0RvbWFpbiA6IGxvYWRTdGF0aXN0aWNzLnRvcEZyYW1lVW5p
cXVlUmVkaXJlY3RzVG8pCi0gICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3RvcEZy
YW1lVW5pcXVlUmVkaXJlY3RzVG8sIHJlZ2lzdHJhYmxlRG9tYWluSUQsIHRvRG9tYWluKTsKKyAg
ICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNU
bywgcmVnaXN0cmFibGVEb21haW5JRC52YWx1ZSgpLCB0b0RvbWFpbik7CiAgICAgCiAgICAgZm9y
IChhdXRvJiBmcm9tRG9tYWluIDogbG9hZFN0YXRpc3RpY3MudG9wRnJhbWVVbmlxdWVSZWRpcmVj
dHNGcm9tKQotICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV90b3BGcmFtZVVuaXF1
ZVJlZGlyZWN0c0Zyb20sIHJlZ2lzdHJhYmxlRG9tYWluSUQsIGZyb21Eb21haW4pOworICAgICAg
ICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20s
IHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgZnJvbURvbWFpbik7CiAgICAgCiAgICAgZm9y
IChhdXRvJiB0b3BGcmFtZURvbWFpbiA6IGxvYWRTdGF0aXN0aWNzLnN1YmZyYW1lVW5kZXJUb3BG
cmFtZURvbWFpbnMpCi0gICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YmZyYW1l
VW5kZXJUb3BGcmFtZURvbWFpbnMsIHJlZ2lzdHJhYmxlRG9tYWluSUQsIHRvcEZyYW1lRG9tYWlu
KTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fc3ViZnJhbWVVbmRlclRvcEZy
YW1lRG9tYWlucywgcmVnaXN0cmFibGVEb21haW5JRC52YWx1ZSgpLCB0b3BGcmFtZURvbWFpbik7
CiAgICAgCiAgICAgZm9yIChhdXRvJiB0b3BGcmFtZURvbWFpbiA6IGxvYWRTdGF0aXN0aWNzLnN1
YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMpCi0gICAgICAgIGluc2VydERvbWFpblJlbGF0
aW9uc2hpcChtX3N1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMsIHJlZ2lzdHJhYmxlRG9t
YWluSUQsIHRvcEZyYW1lRG9tYWluKTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlw
KG1fc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlucywgcmVnaXN0cmFibGVEb21haW5JRC52
YWx1ZSgpLCB0b3BGcmFtZURvbWFpbik7CiAgICAgCiAgICAgZm9yIChhdXRvJiB0b0RvbWFpbiA6
IGxvYWRTdGF0aXN0aWNzLnN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8pCi0gICAgICAgIGlu
c2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8sIHJl
Z2lzdHJhYmxlRG9tYWluSUQsIHRvRG9tYWluKTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRp
b25zaGlwKG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbywgcmVnaXN0cmFibGVEb21haW5J
RC52YWx1ZSgpLCB0b0RvbWFpbik7CiAgICAgCiAgICAgZm9yIChhdXRvJiBmcm9tRG9tYWluIDog
bG9hZFN0YXRpc3RpY3Muc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tKQotICAgICAgICBp
bnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20s
IHJlZ2lzdHJhYmxlRG9tYWluSUQsIGZyb21Eb21haW4pOworICAgICAgICBpbnNlcnREb21haW5S
ZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHJlZ2lzdHJhYmxl
RG9tYWluSUQudmFsdWUoKSwgZnJvbURvbWFpbik7CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OnBvcHVsYXRlRnJvbU1lbW9yeVN0b3JlKGNvbnN0IFJlc291
cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZSYgbWVtb3J5U3RvcmUpCkBAIC00OTcsOCArNTEx
LDYgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cG9wdWxhdGVG
cm9tTWVtb3J5U3RvcmUoY29uc3QgUmVzb3VyY2UKICAgICAvLyBjYW4gcmVmZXIgdG8gdGhlIE9i
c2VydmVkRG9tYWluIHRhYmxlIGVudHJpZXMKICAgICBmb3IgKGF1dG8mIHN0YXRpc3RpYyA6IHN0
YXRpc3RpY3NNYXApCiAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcHMoc3RhdGlzdGlj
LnZhbHVlKTsKLQotICAgIG1fZGF0YWJhc2UucnVuVmFjdXVtQ29tbWFuZCgpOwogfQogCiB2b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjYWxjdWxhdGVBbmRTdWJtaXRU
ZWxlbWV0cnkoKSBjb25zdApAQCAtNTI5LDcgKzU0MSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OmluY3JlbWVudFJlY29yZHNEZWxldGVkQ291bnRGb3JEb21h
aW5zCiAgICAgU1FMaXRlU3RhdGVtZW50IGRvbWFpbnNUb1VwZGF0ZVN0YXRlbWVudChtX2RhdGFi
YXNlLCBtYWtlU3RyaW5nKCJVUERBVEUgT2JzZXJ2ZWREb21haW5zIFNFVCBkYXRhUmVjb3Jkc1Jl
bW92ZWQgPSBkYXRhUmVjb3Jkc1JlbW92ZWQgKyAxIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluIElO
ICgiLCBkb21haW5zVG9TdHJpbmcoZG9tYWlucyksICIpIikpOwogICAgIGlmIChkb21haW5zVG9V
cGRhdGVTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwogICAgICAgICB8fCBkb21haW5z
VG9VcGRhdGVTdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjppbmNyZW1lbnRTdGF0aXN0aWNzRm9yRG9tYWlucyBmYWlsZWQsIGVycm9yIG1lc3Nh
Z2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmluY3JlbWVudFN0YXRpc3RpY3NGb3JEb21h
aW5zIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2Uu
bGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiB9
CkBAIC01NDYsMjQgKzU1OCwzNCBAQCB1bnNpZ25lZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6cmVjdXJzaXZlbHlGaW5kTm9uUHJldmFsZW50RG9tYWlucwogICAgICsrbnVt
YmVyT2ZSZWN1cnNpdmVDYWxsczsKIAogICAgIFN0ZFNldDx1bnNpZ25lZD4gbmV3bHlJZGVudGlm
aWVkRG9tYWluczsKLSAgICBTUUxpdGVTdGF0ZW1lbnQgZmluZFN1YnJlc291cmNlcyhtX2RhdGFi
YXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLmZy
b21Eb21haW5JRCBmcm9tIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSBJTk5FUiBKT0lO
IE9ic2VydmVkRG9tYWlucyBPTiBPYnNlcnZlZERvbWFpbnMuZG9tYWluSUQgPSBTdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0c0Zyb20uZnJvbURvbWFpbklEIFdIRVJFIHN1YnJlc291cmNlRG9tYWlu
SUQgPSAiLCBTdHJpbmc6Om51bWJlcihwcmltYXJ5RG9tYWluSUQpLCAiQU5EIE9ic2VydmVkRG9t
YWlucy5pc1ByZXZhbGVudCA9IDAiKSk7Ci0gICAgaWYgKGZpbmRTdWJyZXNvdXJjZXMucHJlcGFy
ZSgpID09IFNRTElURV9PSykgewotICAgICAgICB3aGlsZSAoZmluZFN1YnJlc291cmNlcy5zdGVw
KCkgPT0gU1FMSVRFX1JPVykgewotICAgICAgICAgICAgYXV0byBuZXdEb21haW5JRCA9IGZpbmRT
dWJyZXNvdXJjZXMuZ2V0Q29sdW1uSW50KDApOwotICAgICAgICAgICAgYXV0byBpbnNlcnRSZXN1
bHQgPSBub25QcmV2YWxlbnRSZWRpcmVjdGlvblNvdXJjZXMuaW5zZXJ0KG5ld0RvbWFpbklEKTsK
LSAgICAgICAgICAgIGlmIChpbnNlcnRSZXN1bHQuc2Vjb25kKQotICAgICAgICAgICAgICAgIG5l
d2x5SWRlbnRpZmllZERvbWFpbnMuaW5zZXJ0KG5ld0RvbWFpbklEKTsKLSAgICAgICAgfQorICAg
IFNRTGl0ZVN0YXRlbWVudCBmaW5kU3VicmVzb3VyY2VzKG1fZGF0YWJhc2UsICJTRUxFQ1QgU3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5JRCBmcm9tIFN1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RzRnJvbSBJTk5FUiBKT0lOIE9ic2VydmVkRG9tYWlucyBPTiBPYnNlcnZl
ZERvbWFpbnMuZG9tYWluSUQgPSBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20uZnJvbURv
bWFpbklEIFdIRVJFIHN1YnJlc291cmNlRG9tYWluSUQgPSA/IEFORCBPYnNlcnZlZERvbWFpbnMu
aXNQcmV2YWxlbnQgPSAwIl9zKTsKKyAgICBpZiAoZmluZFN1YnJlc291cmNlcy5wcmVwYXJlKCkg
IT0gU1FMSVRFX09LCisgICAgICAgIHx8IGZpbmRTdWJyZXNvdXJjZXMuYmluZEludCgxLCBwcmlt
YXJ5RG9tYWluSUQpICE9IFNRTElURV9PSykgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9J
Rl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6cmVjdXJzaXZlbHlGaW5kTm9uUHJldmFsZW50RG9tYWluc1RoYXRSZWRpcmVjdGVk
VG9UaGlzRG9tYWluIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1f
ZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIAorICAgIHdoaWxlIChmaW5kU3VicmVzb3Vy
Y2VzLnN0ZXAoKSA9PSBTUUxJVEVfUk9XKSB7CisgICAgICAgIGludCBuZXdEb21haW5JRCA9IGZp
bmRTdWJyZXNvdXJjZXMuZ2V0Q29sdW1uSW50KDApOworICAgICAgICBhdXRvIGluc2VydFJlc3Vs
dCA9IG5vblByZXZhbGVudFJlZGlyZWN0aW9uU291cmNlcy5pbnNlcnQobmV3RG9tYWluSUQpOwor
ICAgICAgICBpZiAoaW5zZXJ0UmVzdWx0LnNlY29uZCkKKyAgICAgICAgICAgIG5ld2x5SWRlbnRp
ZmllZERvbWFpbnMuaW5zZXJ0KG5ld0RvbWFpbklEKTsKICAgICB9CiAKLSAgICBTUUxpdGVTdGF0
ZW1lbnQgZmluZFRvcEZyYW1lcyhtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgVG9wRnJh
bWVVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5JRCBmcm9tIFRvcEZyYW1lVW5pcXVlUmVk
aXJlY3RzRnJvbSBJTk5FUiBKT0lOIE9ic2VydmVkRG9tYWlucyBPTiBPYnNlcnZlZERvbWFpbnMu
ZG9tYWluSUQgPSBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20uZnJvbURvbWFpbklEIFdIRVJF
IHRhcmdldERvbWFpbklEID0gIiwgU3RyaW5nOjpudW1iZXIocHJpbWFyeURvbWFpbklEKSwgIkFO
RCBPYnNlcnZlZERvbWFpbnMuaXNQcmV2YWxlbnQgPSAwIikpOwotICAgIGlmIChmaW5kVG9wRnJh
bWVzLnByZXBhcmUoKSA9PSBTUUxJVEVfT0spIHsKLSAgICAgICAgd2hpbGUgKGZpbmRUb3BGcmFt
ZXMuc3RlcCgpID09IFNRTElURV9ST1cpIHsKLSAgICAgICAgICAgIGF1dG8gbmV3RG9tYWluSUQg
PSBmaW5kVG9wRnJhbWVzLmdldENvbHVtbkludCgwKTsKLSAgICAgICAgICAgIGF1dG8gaW5zZXJ0
UmVzdWx0ID0gbm9uUHJldmFsZW50UmVkaXJlY3Rpb25Tb3VyY2VzLmluc2VydChuZXdEb21haW5J
RCk7Ci0gICAgICAgICAgICBpZiAoaW5zZXJ0UmVzdWx0LnNlY29uZCkKLSAgICAgICAgICAgICAg
ICBuZXdseUlkZW50aWZpZWREb21haW5zLmluc2VydChuZXdEb21haW5JRCk7Ci0gICAgICAgIH0K
KyAgICBTUUxpdGVTdGF0ZW1lbnQgZmluZFRvcEZyYW1lcyhtX2RhdGFiYXNlLCAiU0VMRUNUIFRv
cEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQgZnJvbSBUb3BGcmFtZVVuaXF1
ZVJlZGlyZWN0c0Zyb20gSU5ORVIgSk9JTiBPYnNlcnZlZERvbWFpbnMgT04gT2JzZXJ2ZWREb21h
aW5zLmRvbWFpbklEID0gVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5JRCBX
SEVSRSB0YXJnZXREb21haW5JRCA9ID8gQU5EIE9ic2VydmVkRG9tYWlucy5pc1ByZXZhbGVudCA9
IDAiX3MpOworICAgIGlmIChmaW5kVG9wRnJhbWVzLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAg
ICAgICAgfHwgZmluZFRvcEZyYW1lcy5iaW5kSW50KDEsIHByaW1hcnlEb21haW5JRCkgIT0gU1FM
SVRFX09LKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9u
SUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWN1cnNpdmVs
eUZpbmROb25QcmV2YWxlbnREb21haW5zVGhhdFJlZGlyZWN0ZWRUb1RoaXNEb21haW4gZmFpbGVk
LCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JN
c2coKSk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gMDsK
KyAgICB9CisgICAgCisgICAgd2hpbGUgKGZpbmRUb3BGcmFtZXMuc3RlcCgpID09IFNRTElURV9S
T1cpIHsKKyAgICAgICAgaW50IG5ld0RvbWFpbklEID0gZmluZFRvcEZyYW1lcy5nZXRDb2x1bW5J
bnQoMCk7CisgICAgICAgIGF1dG8gaW5zZXJ0UmVzdWx0ID0gbm9uUHJldmFsZW50UmVkaXJlY3Rp
b25Tb3VyY2VzLmluc2VydChuZXdEb21haW5JRCk7CisgICAgICAgIGlmIChpbnNlcnRSZXN1bHQu
c2Vjb25kKQorICAgICAgICAgICAgbmV3bHlJZGVudGlmaWVkRG9tYWlucy5pbnNlcnQobmV3RG9t
YWluSUQpOwogICAgIH0KIAogICAgIGlmIChuZXdseUlkZW50aWZpZWREb21haW5zLmVtcHR5KCkp
CkBAIC02MDcsNyArNjI5LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6bWFya0FzUHJldmFsZW50SWZIYXNSZWRpcmVjdGVkVG9QcmV2YWwKICAgICBTUUxpdGVT
dGF0ZW1lbnQgbWFya1ByZXZhbGVudFN0YXRlbWVudChtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJV
UERBVEUgT2JzZXJ2ZWREb21haW5zIFNFVCBpc1ByZXZhbGVudCA9IDEgV0hFUkUgZG9tYWluSUQg
SU4gKCIsIGJ1aWxkTGlzdChXVEY6Okl0ZXJhdG9yUmFuZ2U8U3RkU2V0PHVuc2lnbmVkPjo6aXRl
cmF0b3I+KHByZXZhbGVudER1ZVRvUmVkaXJlY3QuYmVnaW4oKSwgcHJldmFsZW50RHVlVG9SZWRp
cmVjdC5lbmQoKSkpLCAiKSIpKTsKICAgICBpZiAobWFya1ByZXZhbGVudFN0YXRlbWVudC5wcmVw
YXJlKCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1hcmtQcmV2YWxlbnRTdGF0ZW1lbnQuc3Rl
cCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmss
ICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptYXJrQXNQcmV2YWxl
bnRJZkhhc1JlZGlyZWN0ZWRUb1ByZXZhbGVudCBmYWlsZWQgdG8gZXhlY3V0ZSwgZXJyb3IgbWVz
c2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWFya0FzUHJldmFsZW50SWZIYXNSZWRp
cmVjdGVkVG9QcmV2YWxlbnQgZmFpbGVkIHRvIGV4ZWN1dGUsIGVycm9yIG1lc3NhZ2U6ICV7cHVi
bGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgfQogfQpAQCAtNjU3LDcgKzY3OSw3IEBAIEhhc2hNYXA8dW5z
aWduZWQsIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpOb3RWZXJ5UHJldmFs
ZW50UmVzb3VyY2VzCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBTUUxpdGVTdGF0ZW1lbnQgc3Vi
ZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluc0NvdW50U3RhdGVtZW50KG1fZGF0YWJhc2UsIG1ha2VT
dHJpbmcoIlNFTEVDVCBzdWJyZXNvdXJjZURvbWFpbklELCBDT1VOVCh0b3BGcmFtZURvbWFpbklE
KSBGUk9NIFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMgV0hFUkUgc3VicmVzb3VyY2VE
b21haW5JRCBJTiAoIiwgZG9tYWluSURzT2ZJbnRlcmVzdCwgIikgR1JPVVAgQlkgc3VicmVzb3Vy
Y2VEb21haW5JRCIpKTsKKyAgICBTUUxpdGVTdGF0ZW1lbnQgc3ViZnJhbWVVbmRlclRvcEZyYW1l
RG9tYWluc0NvdW50U3RhdGVtZW50KG1fZGF0YWJhc2UsIG1ha2VTdHJpbmcoIlNFTEVDVCBzdWJm
cmFtZURvbWFpbklELCBDT1VOVCh0b3BGcmFtZURvbWFpbklEKSBGUk9NIFN1YmZyYW1lVW5kZXJU
b3BGcmFtZURvbWFpbnMgV0hFUkUgc3ViZnJhbWVEb21haW5JRCBJTiAoIiwgZG9tYWluSURzT2ZJ
bnRlcmVzdCwgIikgR1JPVVAgQlkgc3ViZnJhbWVEb21haW5JRCIpKTsKICAgICBpZiAoc3ViZnJh
bWVVbmRlclRvcEZyYW1lRG9tYWluc0NvdW50U3RhdGVtZW50LnByZXBhcmUoKSA9PSBTUUxJVEVf
T0spIHsKICAgICAgICAgd2hpbGUgKHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNDb3VudFN0
YXRlbWVudC5zdGVwKCkgPT0gU1FMSVRFX1JPVykgewogICAgICAgICAgICAgdW5zaWduZWQgZG9t
YWluSUQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlu
c0NvdW50U3RhdGVtZW50LmdldENvbHVtbkludCgwKSk7CkBAIC02ODcsMTIgKzcwOSwxMiBAQCB2
b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWNsYXNzaWZ5UmVzb3Vy
Y2VzKCkKICAgICBhdXRvIG5vdFZlcnlQcmV2YWxlbnRSZXNvdXJjZXMgPSBmaW5kTm90VmVyeVBy
ZXZhbGVudFJlc291cmNlcygpOwogCiAgICAgZm9yIChhdXRvJiByZXNvdXJjZVN0YXRpc3RpYyA6
IG5vdFZlcnlQcmV2YWxlbnRSZXNvdXJjZXMudmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKHNob3Vs
ZFNraXAocmVzb3VyY2VTdGF0aXN0aWMucmVnaXN0ZXJhYmxlRG9tYWluKSkKKyAgICAgICAgaWYg
KHNob3VsZFNraXAocmVzb3VyY2VTdGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4pKQogICAgICAg
ICAgICAgY29udGludWU7CiAKICAgICAgICAgYXV0byBuZXdQcmV2YWxlbmNlID0gY2xhc3NpZmll
cigpLmNhbGN1bGF0ZVJlc291cmNlUHJldmFsZW5jZShyZXNvdXJjZVN0YXRpc3RpYy5zdWJyZXNv
dXJjZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnQsIHJlc291cmNlU3RhdGlzdGljLnN1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RzVG9Db3VudCwgcmVzb3VyY2VTdGF0aXN0aWMuc3ViZnJhbWVVbmRl
clRvcEZyYW1lRG9tYWluc0NvdW50LCByZXNvdXJjZVN0YXRpc3RpYy50b3BGcmFtZVVuaXF1ZVJl
ZGlyZWN0c1RvQ291bnQsIHJlc291cmNlU3RhdGlzdGljLnByZXZhbGVuY2UpOwogICAgICAgICBp
ZiAobmV3UHJldmFsZW5jZSAhPSByZXNvdXJjZVN0YXRpc3RpYy5wcmV2YWxlbmNlKQotICAgICAg
ICAgICAgc2V0UHJldmFsZW50UmVzb3VyY2UocmVzb3VyY2VTdGF0aXN0aWMucmVnaXN0ZXJhYmxl
RG9tYWluLCBuZXdQcmV2YWxlbmNlKTsKKyAgICAgICAgICAgIHNldFByZXZhbGVudFJlc291cmNl
KHJlc291cmNlU3RhdGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluLCBuZXdQcmV2YWxlbmNlKTsKICAg
ICB9CiB9CiAKQEAgLTc3NSwxMSArNzk3LDEzIEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYKICAg
ICBpZiAodXNlcldhc1Byb21wdGVkRWFybGllciA9PSBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d246OlllcykKICAgICAgICAgUkVMRUFTRV9MT0dfSU5GT19JRihkZWJ1Z0xvZ2dpbmdFbmFibGVk
KCksIElUUERlYnVnLCAiU3RvcmFnZSBhY2Nlc3Mgd2FzIGdyYW50ZWQgdG8gJXtwdWJsaWN9cyB1
bmRlciAle3B1YmxpY31zLiIsIHN1YkZyYW1lRG9tYWluLnN0cmluZygpLnV0ZjgoKS5kYXRhKCks
IHRvcEZyYW1lRG9tYWluLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCi0gICAgU1FMaXRlU3Rh
dGVtZW50IGluY3JlbWVudFN0b3JhZ2VBY2Nlc3MobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiVVBE
QVRFIE9ic2VydmVkRG9tYWlucyBTRVQgdGltZXNBY2Nlc3NlZEFzRmlyc3RQYXJ0eUR1ZVRvU3Rv
cmFnZUFjY2Vzc0FQSSA9IHRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VBY2Nl
c3NBUEkgKyAxIFdIRVJFIGRvbWFpbklEID0gIiwgU3RyaW5nOjpudW1iZXIoc3ViRnJhbWVTdGF0
dXMuc2Vjb25kKSkpOworICAgIFNRTGl0ZVN0YXRlbWVudCBpbmNyZW1lbnRTdG9yYWdlQWNjZXNz
KG1fZGF0YWJhc2UsICJVUERBVEUgT2JzZXJ2ZWREb21haW5zIFNFVCB0aW1lc0FjY2Vzc2VkQXNG
aXJzdFBhcnR5RHVlVG9TdG9yYWdlQWNjZXNzQVBJID0gdGltZXNBY2Nlc3NlZEFzRmlyc3RQYXJ0
eUR1ZVRvU3RvcmFnZUFjY2Vzc0FQSSArIDEgV0hFUkUgZG9tYWluSUQgPSA/Iik7CiAgICAgaWYg
KGluY3JlbWVudFN0b3JhZ2VBY2Nlc3MucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICB8
fCBpbmNyZW1lbnRTdG9yYWdlQWNjZXNzLmJpbmRJbnQoMSwgc3ViRnJhbWVTdGF0dXMuc2Vjb25k
KSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgaW5jcmVtZW50U3RvcmFnZUFjY2Vzcy5zdGVwKCkg
IT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVw
IC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNj
ZXNzIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2Uu
bGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1f
c2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVx
dWVzdFN0b3JhZ2VBY2Nlc3MgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhp
cywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAogICAgIGdyYW50U3RvcmFnZUFjY2Vz
c0ludGVybmFsKFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWlu
KSwgZnJhbWVJRCwgcGFnZUlELCB1c2VyV2FzUHJvbXB0ZWRFYXJsaWVyLCBbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKFN0b3JhZ2VBY2Nlc3NXYXNHcmFu
dGVkIHdhc0dyYW50ZWQpIG11dGFibGUgewpAQCAtODUxLDEwICs4NzUsMTMgQEAgdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbmRmYXRoZXJEYXRhRm9yRG9tYWlu
cyhjb25zdCBIYXNoU2UKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAorICAg
IGZvciAoYXV0byYgcmVnaXN0cmFibGVEb21haW4gOiBkb21haW5zKQorICAgICAgICBlbnN1cmVS
ZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihyZWdpc3RyYWJsZURvbWFpbik7
CisKICAgICBTUUxpdGVTdGF0ZW1lbnQgZG9tYWluc1RvVXBkYXRlU3RhdGVtZW50KG1fZGF0YWJh
c2UsIG1ha2VTdHJpbmcoIlVQREFURSBPYnNlcnZlZERvbWFpbnMgU0VUIGdyYW5kZmF0aGVyZWQg
PSAxIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluIElOICgiLCBkb21haW5zVG9TdHJpbmcoZG9tYWlu
cyksICIpIikpOwogICAgIGlmIChkb21haW5zVG9VcGRhdGVTdGF0ZW1lbnQucHJlcGFyZSgpICE9
IFNRTElURV9PSwogICAgICAgICB8fCBkb21haW5zVG9VcGRhdGVTdGF0ZW1lbnQuc3RlcCgpICE9
IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAt
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFuZGZhdGhlckRhdGFGb3JE
b21haW5zIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJh
c2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VE
KG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
Z3JhbmRmYXRoZXJEYXRhRm9yRG9tYWlucyBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGlj
fXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgfQogfQpAQCAtODk0LDcgKzkyMSw3IEBAIHZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBSZWdp
c3RyYWJsZURvCiAgICAgaWYgKCFpc01haW5GcmFtZSAmJiAhKGFyZVRhcmdldEFuZFRvcEZyYW1l
RG9tYWluc1NhbWVTaXRlIHx8IGFyZVRhcmdldEFuZFNvdXJjZURvbWFpbnNTYW1lU2l0ZSkpIHsK
ICAgICAgICAgYXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JS
ZWdpc3RyYWJsZURvbWFpbih0YXJnZXREb21haW4pOwogICAgICAgICB1cGRhdGVMYXN0U2Vlbih0
YXJnZXREb21haW4sIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OnJlZHVjZVRpbWVSZXNvbHV0aW9u
KFdhbGxUaW1lOjpub3coKSkpOwotCisgICAgICAgIGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0Zv
clJlZ2lzdHJhYmxlRG9tYWluKHRvcEZyYW1lRG9tYWluKTsKICAgICAgICAgaWYgKCFyZWxhdGlv
bnNoaXBFeGlzdHMobV9zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5FeGlzdHMsIHRhcmdldFJl
c3VsdC5zZWNvbmQsIHRvcEZyYW1lRG9tYWluKSkgewogICAgICAgICAgICAgaW5zZXJ0RG9tYWlu
UmVsYXRpb25zaGlwKG1fc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlucywgdGFyZ2V0UmVzdWx0
LnNlY29uZCwgdG9wRnJhbWVEb21haW4pOwogICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRh
dGVkID0gdHJ1ZTsKQEAgLTkwNCwyNCArOTMxLDI1IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBSZWdpc3RyYWJsZURv
CiAgICAgaWYgKGlzUmVkaXJlY3QgJiYgIWFyZVRhcmdldEFuZFNvdXJjZURvbWFpbnNTYW1lU2l0
ZSkgewogICAgICAgICBpZiAoaXNNYWluRnJhbWUpIHsKICAgICAgICAgICAgIGF1dG8gcmVkaXJl
Y3RpbmdEb21haW5SZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJs
ZURvbWFpbihzb3VyY2VEb21haW4pOworICAgICAgICAgICAgYXV0byB0YXJnZXRSZXN1bHQgPSBl
bnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0YXJnZXREb21haW4p
OworCiAgICAgICAgICAgICBpZiAoIXJlbGF0aW9uc2hpcEV4aXN0cyhtX3RvcEZyYW1lVW5pcXVl
UmVkaXJlY3RzVG9FeGlzdHMsIHJlZGlyZWN0aW5nRG9tYWluUmVzdWx0LnNlY29uZCwgdGFyZ2V0
RG9tYWluKSkgewogICAgICAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3Rv
cEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8sIHJlZGlyZWN0aW5nRG9tYWluUmVzdWx0LnNlY29uZCwg
dGFyZ2V0RG9tYWluKTsKICAgICAgICAgICAgICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQgPSB0
cnVlOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBhdXRvIHRhcmdldFJlc3VsdCA9IGVu
c3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHRhcmdldERvbWFpbik7
CiAgICAgICAgICAgICBpZiAoIXJlbGF0aW9uc2hpcEV4aXN0cyhtX3RvcEZyYW1lVW5pcXVlUmVk
aXJlY3RzRnJvbUV4aXN0cywgdGFyZ2V0UmVzdWx0LnNlY29uZCwgc291cmNlRG9tYWluKSkgewog
ICAgICAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3RvcEZyYW1lVW5pcXVl
UmVkaXJlY3RzRnJvbSwgdGFyZ2V0UmVzdWx0LnNlY29uZCwgc291cmNlRG9tYWluKTsKICAgICAg
ICAgICAgICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVlOwogICAgICAgICAgICAgfQog
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgYXV0byByZWRpcmVjdGluZ0RvbWFpblJlc3Vs
dCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHNvdXJjZURv
bWFpbik7CisgICAgICAgICAgICBhdXRvIHRhcmdldFJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3Rh
dGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHRhcmdldERvbWFpbik7CiAgICAgICAgICAgICBp
ZiAoIXJlbGF0aW9uc2hpcEV4aXN0cyhtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9FeGlz
dHMsIHJlZGlyZWN0aW5nRG9tYWluUmVzdWx0LnNlY29uZCwgdGFyZ2V0RG9tYWluKSkgewogICAg
ICAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5pcXVl
UmVkaXJlY3RzVG8sIHJlZGlyZWN0aW5nRG9tYWluUmVzdWx0LnNlY29uZCwgdGFyZ2V0RG9tYWlu
KTsKICAgICAgICAgICAgICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVlOwogICAgICAg
ICAgICAgfQogCi0gICAgICAgICAgICBhdXRvIHRhcmdldFJlc3VsdCA9IGVuc3VyZVJlc291cmNl
U3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHRhcmdldERvbWFpbik7CiAgICAgICAgICAg
ICBpZiAoIXJlbGF0aW9uc2hpcEV4aXN0cyhtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJv
bUV4aXN0cywgdGFyZ2V0UmVzdWx0LnNlY29uZCwgc291cmNlRG9tYWluKSkgewogICAgICAgICAg
ICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJl
Y3RzRnJvbSwgdGFyZ2V0UmVzdWx0LnNlY29uZCwgc291cmNlRG9tYWluKTsKICAgICAgICAgICAg
ICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVlOwpAQCAtOTUwLDExICs5NzgsMTEgQEAg
dm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0VXNlckludGVyYWN0
aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG8KIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigp
KTsKIAotICAgIGlmIChtX21vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuYmluZElu
dCgxLCBoYWRVc2VySW50ZXJhY3Rpb24pCisgICAgaWYgKG1fbW9zdFJlY2VudFVzZXJJbnRlcmFj
dGlvblN0YXRlbWVudC5iaW5kSW50KDEsIGhhZFVzZXJJbnRlcmFjdGlvbikgIT0gU1FMSVRFX09L
CiAgICAgICAgIHx8IG1fbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5iaW5kRG91
YmxlKDIsIG1vc3RSZWNlbnRJbnRlcmFjdGlvbi5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkp
ICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX21vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25TdGF0
ZW1lbnQuYmluZFRleHQoMywgZG9tYWluLnN0cmluZygpKSAhPSBTUUxJVEVfT0sKICAgICAgICAg
fHwgbV9tb3N0UmVjZW50VXNlckludGVyYWN0aW9uU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVf
RE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0VXNlckludGVyYWN0aW9uLCBlcnJvciBt
ZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7Cisg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRVc2VySW50ZXJhY3Rpb24sIGVy
cm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygp
KTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CkBAIC05NzgsMTAgKzEwMDYsMTEgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6Y2xlYXJVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0cmFibGUKICAgICBhdXRv
IHRhcmdldFJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9t
YWluKGRvbWFpbik7CiAgICAgc2V0VXNlckludGVyYWN0aW9uKGRvbWFpbiwgZmFsc2UsIHsgfSk7
CiAKLSAgICBTUUxpdGVTdGF0ZW1lbnQgcmVtb3ZlU3RvcmFnZUFjY2VzcyhtX2RhdGFiYXNlLCBt
YWtlU3RyaW5nKCJERUxFVEUgRlJPTSBTdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMg
V0hFUkUgZG9tYWluSUQgPSAiLCBTdHJpbmc6Om51bWJlcih0YXJnZXRSZXN1bHQuc2Vjb25kKSkp
OworICAgIFNRTGl0ZVN0YXRlbWVudCByZW1vdmVTdG9yYWdlQWNjZXNzKG1fZGF0YWJhc2UsICJE
RUxFVEUgRlJPTSBTdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMgV0hFUkUgZG9tYWlu
SUQgPSA/Iik7CiAgICAgaWYgKHJlbW92ZVN0b3JhZ2VBY2Nlc3MucHJlcGFyZSgpICE9IFNRTElU
RV9PSworICAgICAgICB8fCByZW1vdmVTdG9yYWdlQWNjZXNzLmJpbmRJbnQoMSwgdGFyZ2V0UmVz
dWx0LnNlY29uZCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHJlbW92ZVN0b3JhZ2VBY2Nlc3Mu
c3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdv
cmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dVc2VySW50
ZXJhY3Rpb24gZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlz
LCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Jf
SUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OmxvZ1VzZXJJbnRlcmFjdGlvbiBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2Fn
ZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiB9CkBAIC05OTEsMTUgKzEwMjAsMjAgQEAg
Ym9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVXNlckludGVy
YWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmwKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsK
IAogICAgIGlmIChtX2hhZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5iaW5kVGV4dCgxLCBkb21h
aW4uc3RyaW5nKCkpICE9IFNRTElURV9PSwotICAgICAgICB8fCBtX2hhZFVzZXJJbnRlcmFjdGlv
blN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
Om1fdXBkYXRlUHJldmFsZW50UmVzb3VyY2VTdGF0ZW1lbnQgZmFpbGVkLCBlcnJvciBtZXNzYWdl
OiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB8fCBtX2hhZFVzZXJJbnRlcmFjdGlvblN0
YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX1JPVykgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJP
Ul9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6bV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQgZmFpbGVkLCBlcnJvciBt
ZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisK
KyAgICAgICAgaW50IHJlc2V0UmVzdWx0ID0gbV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQu
cmVzZXQoKTsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChyZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQg
PT0gU1FMSVRFX09LKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIGJvb2wg
aGFkVXNlckludGVyYWN0aW9uID0gISFtX2hhZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5nZXRD
b2x1bW5JbnQoMCk7Ci0gICAgaWYgKCFoYWRVc2VySW50ZXJhY3Rpb24pCisgICAgaWYgKCFoYWRV
c2VySW50ZXJhY3Rpb24pIHsKKyAgICAgICAgaW50IHJlc2V0UmVzdWx0ID0gbV9oYWRVc2VySW50
ZXJhY3Rpb25TdGF0ZW1lbnQucmVzZXQoKTsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChyZXNldFJl
c3VsdCwgcmVzZXRSZXN1bHQgPT0gU1FMSVRFX09LKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KICAgICAKICAgICBXYWxsVGltZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZSA9
IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhtX2hhZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5n
ZXRDb2x1bW5Eb3VibGUoMSkpOwogCkBAIC0xMDExLDYgKzEwNDUsOSBAQCBib29sIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNIYWRVc2VySW50ZXJhY3Rpb24oY29uc3Qg
UmVnaXN0cmFibAogICAgICAgICBoYWRVc2VySW50ZXJhY3Rpb24gPSBmYWxzZTsKICAgICB9CiAg
ICAgCisgICAgaW50IHJlc2V0UmVzdWx0ID0gbV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQu
cmVzZXQoKTsKKyAgICBBU1NFUlRfVU5VU0VEKHJlc2V0UmVzdWx0LCByZXNldFJlc3VsdCA9PSBT
UUxJVEVfT0spOworCiAgICAgcmV0dXJuIGhhZFVzZXJJbnRlcmFjdGlvbjsKIH0KIApAQCAtMTAy
Myw3ICsxMDYwLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
c2V0UHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGUKICAgICBpZiAobV91cGRhdGVQ
cmV2YWxlbnRSZXNvdXJjZVN0YXRlbWVudC5iaW5kSW50KDEsIDEpICE9IFNRTElURV9PSwogICAg
ICAgICB8fCBtX3VwZGF0ZVByZXZhbGVudFJlc291cmNlU3RhdGVtZW50LmJpbmRUZXh0KDIsIGRv
bWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fdXBkYXRlUHJldmFsZW50
UmVzb3VyY2VTdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjptX3VwZGF0ZVByZXZhbGVudFJlc291cmNlU3RhdGVtZW50IGZhaWxlZCwgZXJyb3Ig
bWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwor
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV91cGRhdGVQcmV2YWxlbnRSZXNv
dXJjZVN0YXRlbWVudCBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBt
X2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMDM1LDcgKzEwNzIsNyBAQCB2b2lkIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRQcmV2YWxlbnRSZXNvdXJjZShjb25z
dCBSZWdpc3RyYWJsZQogICAgICAgICBpZiAobV91cGRhdGVWZXJ5UHJldmFsZW50UmVzb3VyY2VT
dGF0ZW1lbnQuYmluZEludCgxLCAxKSAhPSBTUUxJVEVfT0sKICAgICAgICAgICAgIHx8IG1fdXBk
YXRlVmVyeVByZXZhbGVudFJlc291cmNlU3RhdGVtZW50LmJpbmRUZXh0KDIsIGRvbWFpbi5zdHJp
bmcoKSkgIT0gU1FMSVRFX09LCiAgICAgICAgICAgICB8fCBtX3VwZGF0ZVZlcnlQcmV2YWxlbnRS
ZXNvdXJjZVN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjptX3VwZGF0ZVZlcnlQcmV2YWxlbnRSZXNvdXJjZVN0YXRlbWVudCBmYWlsZWQs
IGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1z
ZygpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9u
SUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptX3VwZGF0ZVZl
cnlQcmV2YWxlbnRSZXNvdXJjZVN0YXRlbWVudCBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVi
bGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0x
MDQ1LDcgKzEwODIsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpzZXRQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZQogICAgIH0KIAogICAgIFN0
ZFNldDx1bnNpZ25lZD4gbm9uUHJldmFsZW50UmVkaXJlY3Rpb25Tb3VyY2VzOwotICAgIHJlY3Vy
c2l2ZWx5RmluZE5vblByZXZhbGVudERvbWFpbnNUaGF0UmVkaXJlY3RlZFRvVGhpc0RvbWFpbihk
b21haW5JRChkb21haW4pLCBub25QcmV2YWxlbnRSZWRpcmVjdGlvblNvdXJjZXMsIDApOworICAg
IHJlY3Vyc2l2ZWx5RmluZE5vblByZXZhbGVudERvbWFpbnNUaGF0UmVkaXJlY3RlZFRvVGhpc0Rv
bWFpbihkb21haW5JRChkb21haW4pLnZhbHVlKCksIG5vblByZXZhbGVudFJlZGlyZWN0aW9uU291
cmNlcywgMCk7CiAgICAgc2V0RG9tYWluc0FzUHJldmFsZW50KFdURk1vdmUobm9uUHJldmFsZW50
UmVkaXJlY3Rpb25Tb3VyY2VzKSk7CiB9CiAKQEAgLTEwNTYsNyArMTA5Myw3IEBAIHZvaWQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldERvbWFpbnNBc1ByZXZhbGVudChT
dGRTZXQ8dW5zaWduZWQ+CiAgICAgU1FMaXRlU3RhdGVtZW50IGRvbWFpbnNUb1VwZGF0ZVN0YXRl
bWVudChtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJVUERBVEUgT2JzZXJ2ZWREb21haW5zIFNFVCBp
c1ByZXZhbGVudCA9IDEgV0hFUkUgZG9tYWluSUQgSU4gKCIsIGJ1aWxkTGlzdChXVEY6Okl0ZXJh
dG9yUmFuZ2U8U3RkU2V0PHVuc2lnbmVkPjo6aXRlcmF0b3I+KGRvbWFpbnMuYmVnaW4oKSwgZG9t
YWlucy5lbmQoKSkpLCAiKSIpKTsKICAgICBpZiAoZG9tYWluc1RvVXBkYXRlU3RhdGVtZW50LnBy
ZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgZG9tYWluc1RvVXBkYXRlU3RhdGVtZW50
LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3
b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0RG9tYWlu
c0FzUHJldmFsZW50IGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1f
ZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9B
TExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6c2V0RG9tYWluc0FzUHJldmFsZW50IGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJs
aWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEwNzYsOSArMTExMywx
MiBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVkaWNhdGVW
YWx1ZUZvckRvbWFpbihXZWJDb3JlOjpTUUxpdAogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWlu
KCkpOwogICAgIAogICAgIGlmIChwcmVkaWNhdGVTdGF0ZW1lbnQuYmluZFRleHQoMSwgZG9tYWlu
LnN0cmluZygpKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgfHwgcHJlZGljYXRlU3RhdGVtZW50LnN0
ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3Jr
LCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlZGljYXRlVmFs
dWVGb3JEb21haW4gZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0
aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIHx8IHByZWRpY2F0ZVN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX1JP
VykgeworCisgICAgICAgIGludCByZXNldFJlc3VsdCA9IHByZWRpY2F0ZVN0YXRlbWVudC5yZXNl
dCgpOworICAgICAgICBBU1NFUlRfVU5VU0VEKHJlc2V0UmVzdWx0LCByZXNldFJlc3VsdCA9PSBT
UUxJVEVfT0spOworCisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNz
aW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVkaWNh
dGVWYWx1ZUZvckRvbWFpbiBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9
cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogCkBAIC0xMTM3LDcgKzExNzcsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhclByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJh
YgogICAgIAogICAgIGlmIChtX2NsZWFyUHJldmFsZW50UmVzb3VyY2VTdGF0ZW1lbnQuYmluZFRl
eHQoMSwgZG9tYWluLnN0cmluZygpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9jbGVhclBy
ZXZhbGVudFJlc291cmNlU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6Y2xlYXJQcmV2YWxlbnRSZXNvdXJjZSwgZXJyb3IgbWVzc2FnZTogJXtw
dWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJQcmV2YWxlbnRSZXNvdXJjZSwgZXJyb3IgbWVz
c2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEx
NTUsNyArMTE5NSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OnNldEdyYW5kZmF0aGVyZWQoY29uc3QgUmVnaXN0cmFibGVEb21hCiAgICAgaWYgKG1fdXBkYXRl
R3JhbmRmYXRoZXJlZFN0YXRlbWVudC5iaW5kSW50KDEsIHZhbHVlKSAhPSBTUUxJVEVfT0sKICAg
ICAgICAgfHwgbV91cGRhdGVHcmFuZGZhdGhlcmVkU3RhdGVtZW50LmJpbmRUZXh0KDEsIGRvbWFp
bi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fdXBkYXRlR3JhbmRmYXRoZXJl
ZFN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OnNldEdyYW5kZmF0aGVyZWQgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGlj
fXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OnNldEdyYW5kZmF0aGVyZWQgZmFpbGVkIHRvIGJpbmQsIGVycm9y
IG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC0xMjQ4LDcgKzEyODgsNyBAQCBzdGQ6OnBhaXI8UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OkFkZGVkUmVjb3JkLCB1bnNpZ25lZD4gUmVzb3VyY2VMbwogICAgIEFTU0VSVCgh
UnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgaWYgKG1fZG9tYWluSURGcm9tU3RyaW5nU3RhdGVt
ZW50LmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LKSB7Ci0gICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpjcmVhdGVTY2hlbWEgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1Ymxp
Y31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjplbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJs
ZURvbWFpbiBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFi
YXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgIHJldHVybiB7IEFkZGVkUmVjb3JkOjpObywgMCB9OwogICAgIH0KQEAgLTEyNjcsMTMgKzEz
MDcsMjUgQEAgc3RkOjpwYWlyPFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpB
ZGRlZFJlY29yZCwgdW5zaWduZWQ+IFJlc291cmNlTG8KICAgICBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzIG5ld09ic2VydmF0aW9uKGRvbWFpbik7CiAgICAgaW5zZXJ0T2JzZXJ2ZWREb21haW4obmV3
T2JzZXJ2YXRpb24pOwogCi0gICAgcmV0dXJuIHsgQWRkZWRSZWNvcmQ6OlllcywgZG9tYWluSUQo
ZG9tYWluKSB9OworICAgIHJldHVybiB7IEFkZGVkUmVjb3JkOjpZZXMsIGRvbWFpbklEKGRvbWFp
bikudmFsdWUoKSB9OworfQorCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpjbGVhckRhdGFiYXNlQ29udGVudHMoKQoreworICAgIG1fZGF0YWJhc2UuY2xlYXJBbGxU
YWJsZXMoKTsKKworICAgIGlmICghY3JlYXRlU2NoZW1hKCkpIHsKKyAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OmNsZWFyRGF0YWJhc2VDb250ZW50cyBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGlj
fXMsIGRhdGFiYXNlIHBhdGg6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJv
ck1zZygpLCBtX3N0b3JhZ2VEaXJlY3RvcnlQYXRoLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIH0KIAogdm9pZCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXIoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6
aXNNYWluKCkpOwogCisgICAgY2xlYXJEYXRhYmFzZUNvbnRlbnRzKCk7CiAgICAgY2xlYXJPcGVy
YXRpbmdEYXRlcygpOwogCiAgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0Fn
Z3JlZ2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CkBAIC0xMjg5LDEy
ICsxMzQxLDE2IEBAIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpDb29raWVU
cmVhdG1lbnRSZXN1bHQgUmVzb3VyY2VMb2FkU3RhdGlzdGljCiB7CiAgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7CiAKLSAgICBTUUxpdGVTdGF0ZW1lbnQgc3RhdGVtZW50KG1fZGF0YWJh
c2UsIG1ha2VTdHJpbmcoIlNFTEVDVCBpc1ByZXZhbGVudCwgaGFkVXNlckludGVyYWN0aW9uIEZS
T00gT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0gIiwgZG9tYWluLnN0
cmluZygpKSk7CisgICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudChtX2RhdGFiYXNlLCAiU0VM
RUNUIGlzUHJldmFsZW50LCBoYWRVc2VySW50ZXJhY3Rpb24gRlJPTSBPYnNlcnZlZERvbWFpbnMg
V0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/Iik7CiAgICAgaWYgKHN0YXRlbWVudC5wcmVwYXJl
KCkgIT0gU1FMSVRFX09LCi0gICAgICAgIHx8IHN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX1JP
VykgewotICAgICAgICByZXR1cm4gQ29va2llVHJlYXRtZW50UmVzdWx0OjpBbGxvdzsKKyAgICAg
ICAgfHwgc3RhdGVtZW50LmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09L
KSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIl
cCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjb29raWVUcmVhdG1lbnRG
b3JPcmlnaW4gZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlz
LCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgfQogICAgIAorICAgIGlmIChzdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ST1cp
CisgICAgICAgIHJldHVybiBDb29raWVUcmVhdG1lbnRSZXN1bHQ6OkFsbG93OworICAgIAogICAg
IGJvb2wgaXNQcmV2YWxlbnQgPSAhIXN0YXRlbWVudC5nZXRDb2x1bW5JbnQoMCk7CiAgICAgaWYg
KCFpc1ByZXZhbGVudCkKICAgICAgICAgcmV0dXJuIENvb2tpZVRyZWF0bWVudFJlc3VsdDo6QWxs
b3c7CkBAIC0xMzA3LDEwICsxMzYzLDEyIEBAIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzVXNlckdyYW50ZWRTCiB7CiAg
ICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBhdXRvIGZpcnN0UGFydHlQcmlt
YXJ5RG9tYWluSUQgPSBkb21haW5JRChmaXJzdFBhcnR5RG9tYWluKTsKKyAgICBhdXRvIGZpcnN0
UGFydHlQcmltYXJ5RG9tYWluSUQgPSBkb21haW5JRChmaXJzdFBhcnR5RG9tYWluKS52YWx1ZSgp
OwogCi0gICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudChtX2RhdGFiYXNlLCBtYWtlU3RyaW5n
KCJTRUxFQ1QgQ09VTlQoKikgRlJPTSBTdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMg
V0hFUkUgZG9tYWluSUQgPSAiLCBTdHJpbmc6Om51bWJlcihyZXF1ZXN0aW5nRG9tYWluSUQpLCAi
IEFORCB0b3BMZXZlbERvbWFpbklEID0gIiwgU3RyaW5nOjpudW1iZXIoZmlyc3RQYXJ0eVByaW1h
cnlEb21haW5JRCkpKTsKKyAgICBTUUxpdGVTdGF0ZW1lbnQgc3RhdGVtZW50KG1fZGF0YWJhc2Us
ICJTRUxFQ1QgQ09VTlQoKikgRlJPTSBTdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMg
V0hFUkUgZG9tYWluSUQgPSA/IEFORCB0b3BMZXZlbERvbWFpbklEID0gPyIpOwogICAgIGlmIChz
dGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICB8fCBzdGF0ZW1lbnQuYmlu
ZEludCgxLCByZXF1ZXN0aW5nRG9tYWluSUQpICE9IFNRTElURV9PSworICAgICAgICB8fCBzdGF0
ZW1lbnQuYmluZEludCgyLCBmaXJzdFBhcnR5UHJpbWFyeURvbWFpbklEKSAhPSBTUUxJVEVfT0sK
ICAgICAgICAgfHwgc3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfUk9XKQogICAgICAgICByZXR1
cm4gU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObzsKIApAQCAtMTQzOCw3ICsxNDk2LDcg
QEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJFeHBpcmVk
VXNlckludGVyYWN0aW9ucygpCiAKICAgICBpZiAoY2xlYXJFeHBpcmVkSW50ZXJhY3Rpb24uc3Rl
cCgpICE9IFNRTElURV9ET05FCiAgICAgICAgIHx8IHJlbW92ZVN0b3JhZ2VBY2Nlc3Muc3RlcCgp
ICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIl
cCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dVc2VySW50ZXJhY3Rp
b24gZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2Rh
dGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29y
aywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyRXhwaXJl
ZFVzZXJJbnRlcmFjdGlvbnMgc3RhdGVtZW50KHMpIGZhaWxlZCB0byBzdGVwLCBlcnJvciBtZXNz
YWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIH0KQEAgLTE0NTcsMTQgKzE1MTUsMjQg
QEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJHcmFuZGZh
dGhlcmluZyhWZWN0b3I8dW5zaWduZWQ+JiYKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGlm
IChjbGVhckdyYW5kZmF0aGVyaW5nU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewot
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJHcmFuZGZhdGhlcmluZyBmYWlsZWQgdG8gYmluZCwg
ZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNn
KCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAi
JXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJHcmFuZGZhdGhl
cmluZyBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1f
ZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICB9CiB9CiAKLWJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNo
b3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9yKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmIHJl
c291cmNlU3RhdGlzdGljLCBib29sIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpIGNvbnN0
Citib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNIYWRVbmV4cGly
ZWRSZWNlbnRVc2VySW50ZXJhY3Rpb24oY29uc3QgUHJldmFsZW50RG9tYWluRGF0YSYgcmVzb3Vy
Y2VTdGF0aXN0aWMsIE9wZXJhdGluZ0RhdGVzV2luZG93IG9wZXJhdGluZ0RhdGVzV2luZG93KQog
ewotICAgIHJldHVybiAhcmVzb3VyY2VTdGF0aXN0aWMuaGFkVXNlckludGVyYWN0aW9uICYmICgh
c2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZyB8fCAhcmVzb3VyY2VTdGF0aXN0aWMuZ3JhbmRm
YXRoZXJlZCk7CisgICAgaWYgKHJlc291cmNlU3RhdGlzdGljLmhhZFVzZXJJbnRlcmFjdGlvbiAm
JiBoYXNTdGF0aXN0aWNzRXhwaXJlZChyZXNvdXJjZVN0YXRpc3RpYy5tb3N0UmVjZW50VXNlcklu
dGVyYWN0aW9uVGltZSwgb3BlcmF0aW5nRGF0ZXNXaW5kb3cpKSB7CisgICAgICAgIGNsZWFyVXNl
ckludGVyYWN0aW9uKHJlc291cmNlU3RhdGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluKTsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiByZXNvdXJjZVN0YXRpc3RpYy5o
YWRVc2VySW50ZXJhY3Rpb247Cit9CisKK2Jvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OnNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9yKGNvbnN0IFByZXZhbGVudERv
bWFpbkRhdGEmIHJlc291cmNlU3RhdGlzdGljLCBib29sIHNob3VsZENoZWNrRm9yR3JhbmRmYXRo
ZXJpbmcpCit7CisgICAgcmV0dXJuICFoYXNIYWRVbmV4cGlyZWRSZWNlbnRVc2VySW50ZXJhY3Rp
b24ocmVzb3VyY2VTdGF0aXN0aWMsIE9wZXJhdGluZ0RhdGVzV2luZG93OjpMb25nKSAmJiAoIXNo
b3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcgfHwgIXJlc291cmNlU3RhdGlzdGljLmdyYW5kZmF0
aGVyZWQpOwogfQogCiBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpz
aG91bGRSZW1vdmVBbGxCdXRDb29raWVzRm9yKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmIHJl
c291cmNlU3RhdGlzdGljLCBib29sIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpIGNvbnN0
CkBAIC0xNDkyLDkgKzE1NjAsOSBAQCBWZWN0b3I8c3RkOjpwYWlyPFJlZ2lzdHJhYmxlRG9tYWlu
LCBXZWJzaXRlRGF0YVRvUmVtb3ZlPj4gUmVzb3VyY2VMb2FkU3RhdGlzdGljcwogICAgIFZlY3Rv
cjx1bnNpZ25lZD4gZG9tYWluSURzVG9DbGVhckdyYW5kZmF0aGVyaW5nOwogICAgIGZvciAoYXV0
byYgc3RhdGlzdGljIDogcHJldmFsZW50RG9tYWlucykgewogICAgICAgICBpZiAoc2hvdWxkUmVt
b3ZlQWxsV2Vic2l0ZURhdGFGb3Ioc3RhdGlzdGljLCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVy
aW5nKSkKLSAgICAgICAgICAgIGRvbWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yLmFwcGVuZChz
dGQ6Om1ha2VfcGFpcihzdGF0aXN0aWMucmVnaXN0ZXJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRv
UmVtb3ZlOjpBbGwpKTsKKyAgICAgICAgICAgIGRvbWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9y
LmFwcGVuZChzdGQ6Om1ha2VfcGFpcihzdGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4sIFdlYnNp
dGVEYXRhVG9SZW1vdmU6OkFsbCkpOwogICAgICAgICBlbHNlIGlmIChzaG91bGRSZW1vdmVBbGxC
dXRDb29raWVzRm9yKHN0YXRpc3RpYywgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZykpCi0g
ICAgICAgICAgICBkb21haW5zVG9SZW1vdmVXZWJzaXRlRGF0YUZvci5hcHBlbmQoc3RkOjptYWtl
X3BhaXIoc3RhdGlzdGljLnJlZ2lzdGVyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZTo6
QWxsQnV0Q29va2llcykpOworICAgICAgICAgICAgZG9tYWluc1RvUmVtb3ZlV2Vic2l0ZURhdGFG
b3IuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKHN0YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbiwgV2Vi
c2l0ZURhdGFUb1JlbW92ZTo6QWxsQnV0Q29va2llcykpOwogCiAgICAgICAgIGlmIChzaG91bGRD
bGVhckdyYW5kZmF0aGVyaW5nICYmIHN0YXRpc3RpYy5ncmFuZGZhdGhlcmVkKQogICAgICAgICAg
ICAgZG9tYWluSURzVG9DbGVhckdyYW5kZmF0aGVyaW5nLmFwcGVuZChzdGF0aXN0aWMuZG9tYWlu
SUQpOwpAQCAtMTUyNCw4ICsxNTkyLDkgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6cHJ1bmVTdGF0aXN0aWNzSWZOZWVkZWQoKQogICAgIHNpemVfdCBjb3VudExl
ZnRUb1BydW5lID0gY291bnQgLSBwYXJhbWV0ZXJzKCkucHJ1bmVFbnRyaWVzRG93blRvOwogICAg
IEFTU0VSVChjb3VudExlZnRUb1BydW5lKTsKIAotICAgIFNRTGl0ZVN0YXRlbWVudCByZWNvcmRz
VG9QcnVuZShtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNl
cnZlZERvbWFpbnMgT1JERVIgQlkgaGFkVXNlckludGVyYWN0aW9uLCBpc1ByZXZhbGVudCwgbGFz
dFNlZW4gREVTQyBMSU1JVCAiLCBTdHJpbmc6Om51bWJlcihjb3VudExlZnRUb1BydW5lKSkpOwot
ICAgIGlmIChyZWNvcmRzVG9QcnVuZS5wcmVwYXJlKCkgIT0gU1FMSVRFX09LKSB7CisgICAgU1FM
aXRlU3RhdGVtZW50IHJlY29yZHNUb1BydW5lKG1fZGF0YWJhc2UsICJTRUxFQ1QgZG9tYWluSUQg
RlJPTSBPYnNlcnZlZERvbWFpbnMgT1JERVIgQlkgaGFkVXNlckludGVyYWN0aW9uLCBpc1ByZXZh
bGVudCwgbGFzdFNlZW4gTElNSVQgPyIpOworICAgIGlmIChyZWNvcmRzVG9QcnVuZS5wcmVwYXJl
KCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHJlY29yZHNUb1BydW5lLmJpbmRJbnQoMSwgY291
bnRMZWZ0VG9QcnVuZSkgIT0gU1FMSVRFX09LKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcnVu
ZVN0YXRpc3RpY3NJZk5lZWRlZCBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0
aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTE1NDAsNyArMTYwOSw3IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBydW5lU3RhdGlzdGljc0lmTmVlZGVkKCkK
ICAgICBTUUxpdGVTdGF0ZW1lbnQgcHJ1bmVDb21tYW5kKG1fZGF0YWJhc2UsIG1ha2VTdHJpbmco
IkRFTEVURSBmcm9tIE9ic2VydmVkRG9tYWlucyBXSEVSRSBkb21haW5JRCBJTiAoIiwgbGlzdFRv
UHJ1bmUsICIpIikpOwogICAgIGlmIChwcnVuZUNvbW1hbmQucHJlcGFyZSgpICE9IFNRTElURV9P
SwogICAgICAgICB8fCBwcnVuZUNvbW1hbmQuc3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpwcnVuZVN0YXRpc3RpY3NJZk5lZWRlZCBmYWlsZWQsIGVycm9yIG1l
c3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBydW5lU3RhdGlzdGljc0lmTmVlZGVk
IGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFz
dEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTE1NTMsNyArMTYyMiw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OnVwZGF0ZUxhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
CiAgICAgaWYgKG1fdXBkYXRlTGFzdFNlZW5TdGF0ZW1lbnQuYmluZERvdWJsZSgxLCBsYXN0U2Vl
bi5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBt
X3VwZGF0ZUxhc3RTZWVuU3RhdGVtZW50LmJpbmRUZXh0KDIsIGRvbWFpbi5zdHJpbmcoKSkgIT0g
U1FMSVRFX09LCiAgICAgICAgIHx8IG1fdXBkYXRlTGFzdFNlZW5TdGF0ZW1lbnQuc3RlcCgpICE9
IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAt
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp1cGRhdGVMYXN0U2VlbiBmYWls
ZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2Uu
bGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1f
c2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6dXBk
YXRlTGFzdFNlZW4gZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0
aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCmluZGV4IDBmYjI0YWQwNjcwNDVjOWFkMzE0
ZjIzY2ZiNDQ0MGQ4YWY4NDVmZWMuLmYxZDU2NTVkZWViY2RiMDQ3Y2RkOTZkMmU5MzU2MzRjZWFj
MDFkM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZS5oCkBAIC01MSw3ICs1MSw3IEBAIGNsYXNzIFJlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZTsKIC8vIFRoaXMgaXMgYWx3YXlzIGNvbnN0cnVjdGVkIC8gdXNlZCAvIGRlc3Ry
b3llZCBvbiB0aGUgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlJ3Mgc3RhdGlzdGljcyBx
dWV1ZS4KIGNsYXNzIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlIGZpbmFsIDog
cHVibGljIFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSB7CiBwdWJsaWM6Ci0gICAgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUoV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlJiwgV29ya1F1ZXVlJiwgU2hvdWxkSW5jbHVkZUxvY2FsaG9zdCwgY29uc3QgU3RyaW5nJiBz
dG9yYWdlRGlyZWN0b3J5UGF0aCk7CisgICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmUoV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlJiwgV29ya1F1ZXVlJiwgU2hvdWxk
SW5jbHVkZUxvY2FsaG9zdCwgY29uc3QgU3RyaW5nJiBzdG9yYWdlRGlyZWN0b3J5UGF0aCwgUEFM
OjpTZXNzaW9uSUQpOwogCiAgICAgdm9pZCBwb3B1bGF0ZUZyb21NZW1vcnlTdG9yZShjb25zdCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUmKTsKIApAQCAtMTA1LDExICsxMDUsMTIg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0TGFzdFNlZW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4m
LCBTZWNvbmRzKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKKyAgICB2b2lkIGNsZWFyRGF0YWJhc2VD
b250ZW50cygpOwogICAgIGJvb2wgaW5zZXJ0T2JzZXJ2ZWREb21haW4oY29uc3QgUmVzb3VyY2VM
b2FkU3RhdGlzdGljcyYpOwogICAgIHZvaWQgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwcyhjb25z
dCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJik7CiAgICAgYm9vbCBpbnNlcnREb21haW5SZWxhdGlv
bnNoaXAoV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50JiwgdW5zaWduZWQgZG9tYWluSUQsIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbik7Ci0gICAgYm9vbCByZWxhdGlvbnNo
aXBFeGlzdHMoV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50JiwgdW5zaWduZWQgZmlyc3REb21haW5J
RCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHNlY29uZERvbWFpbikgY29uc3Q7Ci0gICAgdW5z
aWduZWQgZG9tYWluSUQoY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBjb25zdDsKKyAgICBib29s
IHJlbGF0aW9uc2hpcEV4aXN0cyhXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQmLCBPcHRpb25hbDx1
bnNpZ25lZD4gZmlyc3REb21haW5JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHNlY29uZERv
bWFpbikgY29uc3Q7CisgICAgT3B0aW9uYWw8dW5zaWduZWQ+IGRvbWFpbklEKGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJikgY29uc3Q7CiAjaWZuZGVmIE5ERUJVRwogICAgIGJvb2wgY29uZmlybURv
bWFpbkRvZXNOb3RFeGlzdChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIGNvbnN0OwogI2VuZGlm
CkBAIC0xMjAsMTIgKzEyMSwxMyBAQCBwcml2YXRlOgogCiAgICAgc3RydWN0IFByZXZhbGVudERv
bWFpbkRhdGEgewogICAgICAgICB1bnNpZ25lZCBkb21haW5JRDsKLSAgICAgICAgUmVnaXN0cmFi
bGVEb21haW4gcmVnaXN0ZXJhYmxlRG9tYWluOworICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiBy
ZWdpc3RyYWJsZURvbWFpbjsKICAgICAgICAgV2FsbFRpbWUgbW9zdFJlY2VudFVzZXJJbnRlcmFj
dGlvblRpbWU7CiAgICAgICAgIGJvb2wgaGFkVXNlckludGVyYWN0aW9uOwogICAgICAgICBib29s
IGdyYW5kZmF0aGVyZWQ7CiAgICAgfTsKICAgICBWZWN0b3I8UHJldmFsZW50RG9tYWluRGF0YT4g
cHJldmFsZW50RG9tYWlucygpIGNvbnN0OworICAgIGJvb2wgaGFzSGFkVW5leHBpcmVkUmVjZW50
VXNlckludGVyYWN0aW9uKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmLCBPcGVyYXRpbmdEYXRl
c1dpbmRvdyk7CiAgICAgVmVjdG9yPHVuc2lnbmVkPiBmaW5kRXhwaXJlZFVzZXJJbnRlcmFjdGlv
bnMoKSBjb25zdDsKICAgICB2b2lkIGNsZWFyRXhwaXJlZFVzZXJJbnRlcmFjdGlvbnMoKTsKICAg
ICB2b2lkIGNsZWFyR3JhbmRmYXRoZXJpbmcoVmVjdG9yPHVuc2lnbmVkPiYmKTsKQEAgLTEzNCw3
ICsxMzYsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZWNsYXNzaWZ5UmVzb3VyY2VzKCk7CiAg
ICAgc3RydWN0IE5vdFZlcnlQcmV2YWxlbnRSZXNvdXJjZXMgewotICAgICAgICBSZWdpc3RyYWJs
ZURvbWFpbiByZWdpc3RlcmFibGVEb21haW47CisgICAgICAgIFJlZ2lzdHJhYmxlRG9tYWluIHJl
Z2lzdHJhYmxlRG9tYWluOwogICAgICAgICBSZXNvdXJjZUxvYWRQcmV2YWxlbmNlIHByZXZhbGVu
Y2U7CiAgICAgICAgIHVuc2lnbmVkIHN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnNDb3Vu
dDsKICAgICAgICAgdW5zaWduZWQgc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb0NvdW50OwpA
QCAtMTU4LDcgKzE2MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwcnVuZVN0YXRpc3RpY3NJZk5l
ZWRlZCgpIG92ZXJyaWRlOwogICAgIGVudW0gY2xhc3MgQWRkZWRSZWNvcmQgeyBObywgWWVzIH07
CiAgICAgc3RkOjpwYWlyPEFkZGVkUmVjb3JkLCB1bnNpZ25lZD4gZW5zdXJlUmVzb3VyY2VTdGF0
aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mKTsKLSAg
ICBib29sIHNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9yKGNvbnN0IFByZXZhbGVudERvbWFp
bkRhdGEmLCBib29sIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpIGNvbnN0OworICAgIGJv
b2wgc2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3IoY29uc3QgUHJldmFsZW50RG9tYWluRGF0
YSYsIGJvb2wgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZyk7CiAgICAgYm9vbCBzaG91bGRS
ZW1vdmVBbGxCdXRDb29raWVzRm9yKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmLCBib29sIHNo
b3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpIGNvbnN0OwogICAgIFZlY3RvcjxzdGQ6OnBhaXI8
UmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU+PiByZWdpc3RyYWJsZURvbWFp
bnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0RhdGFiYXNl
U3RvcmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CkBAIC0xOTgsNiArMjAwLDcgQEAg
cHJpdmF0ZToKICAgICBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQgbV91cGRhdGVHcmFuZGZhdGhl
cmVkU3RhdGVtZW50OwogICAgIG11dGFibGUgV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50IG1faXNH
cmFuZGZhdGhlcmVkU3RhdGVtZW50OwogICAgIG11dGFibGUgV2ViQ29yZTo6U1FMaXRlU3RhdGVt
ZW50IG1fZmluZEV4cGlyZWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQ7CisgICAgUEFMOjpTZXNz
aW9uSUQgbV9zZXNzaW9uSUQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXggZTQ4N2ZhNjFj
NThjNTVhMjMxZmVkZjhhZTljYzEzOTZlYjYwNzIyZi4uYzk2MTEyNjJmODdkOGRjNzVjMzVhMGJj
NTQ2NjgyZjM2MThhNDY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5jcHAKQEAgLTE1NiwxMCArMTU2LDEwIEBAIFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKE5ldHdvcmtTZXNzaW9u
JiBuCiAgICAgLCBtX2RhaWx5VGFza3NUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnBlcmZvcm1EYWlseVRhc2tzKQogewogICAgIFJF
TEVBU0VfQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICAKLSAgICBwb3N0VGFzayhbdGhp
cywgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9IHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3RvcnkuaXNvbGF0ZWRDb3B5KCksIHNob3VsZEluY2x1ZGVMb2NhbGhvc3RdIHsKLSAg
ICAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaXNJVFBE
YXRhYmFzZUVuYWJsZWQoKSkgewotICAgICAgICAgICAgbV9zdGF0aXN0aWNzU3RvcmUgPSBtYWtl
VW5pcXVlPFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlPigqdGhpcywgbV9zdGF0
aXN0aWNzUXVldWUsIHNob3VsZEluY2x1ZGVMb2NhbGhvc3QsIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3RvcnkpOworCisgICAgcG9zdFRhc2soW3RoaXMsIGRhdGFiYXNlRW5hYmxlZCA9IG5l
dHdvcmtTZXNzaW9uLm5ldHdvcmtQcm9jZXNzKCkuaXNJVFBEYXRhYmFzZUVuYWJsZWQoKSwgcmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9IHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJl
Y3RvcnkuaXNvbGF0ZWRDb3B5KCksIHNob3VsZEluY2x1ZGVMb2NhbGhvc3QsIHNlc3Npb25JRCA9
IG5ldHdvcmtTZXNzaW9uLnNlc3Npb25JRCgpXSB7CisgICAgICAgIGlmIChkYXRhYmFzZUVuYWJs
ZWQpIHsKKyAgICAgICAgICAgIG1fc3RhdGlzdGljc1N0b3JlID0gbWFrZVVuaXF1ZTxSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZT4oKnRoaXMsIG1fc3RhdGlzdGljc1F1ZXVlLCBz
aG91bGRJbmNsdWRlTG9jYWxob3N0LCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBz
ZXNzaW9uSUQpOwogCiAgICAgICAgICAgICBhdXRvIG1lbW9yeVN0b3JlID0gbWFrZVVuaXF1ZTxS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU+KCp0aGlzLCBtX3N0YXRpc3RpY3NRdWV1
ZSwgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCk7CiAgICAgICAgICAgICBhdXRvIHBlcnNpc3RlbnRT
dG9yZSA9IG1ha2VVbmlxdWU8UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdl
PigqbWVtb3J5U3RvcmUsIG1fc3RhdGlzdGljc1F1ZXVlLCByZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGlyZWN0b3J5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAKaW5kZXggZWMxYWEyZDg2ZDYwMjliNTRiZTZlODE4ZDlmZDEyNmI4N2Q5YzljNi4u
YjU2NTYwNjJhMGQxZjM4OTEyZDkxNWIyYzc5OTdlOTZmMjQ5YTk1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTMxNCw3ICszMTQs
OSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJgogICAgICAgICBtX2RlZmF1bHROZXR3b3JrU3Rv
cmFnZVNlc3Npb24gPSBuZXdUZXN0aW5nU2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNl
c3Npb25JRCgpKTsKICAgICB9CiAKLSAgICBXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLnNldElzSVRQRGF0YWJhc2VFbmFibGVkKHBhcmFtZXRlcnMuc2hv
dWxkRW5hYmxlSVRQRGF0YWJhc2UpOworI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCisgICAgbV9pc0lUUERhdGFiYXNlRW5hYmxlZCA9IHBhcmFtZXRlcnMuc2hvdWxkRW5hYmxl
SVRQRGF0YWJhc2U7CisjZW5kaWYKIAogICAgIFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0QWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxl
ZChwYXJhbWV0ZXJzLmVuYWJsZUFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZSk7CiAKQEAgLTQ1
OSw2ICs0NjEsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjphZGRXZWJzaXRlRGF0YVN0b3JlKFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycwogI2lmIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQogICAgIGFkZEluZGV4ZWREYXRhYmFzZVNlc3Npb24ocGFyYW1ldGVycy5uZXR3
b3JrU2Vzc2lvblBhcmFtZXRlcnMuc2Vzc2lvbklELCBwYXJhbWV0ZXJzLmluZGV4ZWREYXRhYmFz
ZURpcmVjdG9yeSwgcGFyYW1ldGVycy5pbmRleGVkRGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGUpOwogI2VuZGlmCisgICAgCisgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1h
bmVudGx5KHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0
YXRpc3RpY3NEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQogICAgIGlmIChwYXJlbnRQcm9jZXNzSGFzU2VydmljZVdvcmtlckVudGl0bGVtZW50
KCkpCkBAIC02OTUsNiArNjk5LDE3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldEdyYW5kZmF0
aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsCiAgICAgfQog
fQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRVc2VJVFBEYXRhYmFzZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUpCit7CisgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9u
ID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgeworICAgICAgICBpZiAobV9pc0lU
UERhdGFiYXNlRW5hYmxlZCAhPSB2YWx1ZSkgeworICAgICAgICAgICAgbV9pc0lUUERhdGFiYXNl
RW5hYmxlZCA9IHZhbHVlOworICAgICAgICAgICAgbmV0d29ya1Nlc3Npb24tPnJlY3JlYXRlUmVz
b3VyY2VMb2FkU3RhdGlzdGljU3RvcmUoKTsKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UHJl
dmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgZG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nl
c3Npb24oc2Vzc2lvbklEKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oCmluZGV4IGI4ZGRjOGY0NTg5MTU2MDUwMzJlMjJjZmU5MDgyNjZiNTYwMmQy
MjEuLjlmNGNhOGMyODc3NzBlZjlhNDEyYzY5NmRhN2EzODNiNjQxODlkM2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTIyNCw2ICsyMjQs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBpc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIGlzUmVnaXN0ZXJlZEFz
U3VicmVzb3VyY2VVbmRlcihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3ViUmVzb3VyY2VEb21haW4m
LCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OwogICAgIHZvaWQgc2V0R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKKyAgICB2b2lkIHNldFVzZUlUUERhdGFiYXNlKFBBTDo6U2Vzc2lvbklELCBib29s
IHZhbHVlKTsKICAgICB2b2lkIHNldE1heFN0YXRpc3RpY3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklE
LCB1aW50NjRfdCBtYXhpbXVtRW50cnlDb3VudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9p
ZCBzZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShQQUw6OlNlc3Npb25JRCwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtMjY0
LDYgKzI2NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENyb3NzU2l0ZUxvYWRXaXRoTGlua0Rl
Y29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgZnJvbURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvRG9tYWluLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcmVzZXRDcm9zc1NpdGVMb2Fkc1dpdGhM
aW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAgICAgdm9pZCBoYXNJc29sYXRlZFNlc3Npb24oUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJikgY29uc3Q7CisgICAgYm9vbCBpc0lUUERhdGFiYXNlRW5hYmxlZCgpIGNvbnN0
IHsgcmV0dXJuIG1faXNJVFBEYXRhYmFzZUVuYWJsZWQ7IH0KICNlbmRpZgogCiAgICAgdXNpbmcg
Q2FjaGVTdG9yYWdlUm9vdFBhdGhDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Ry
aW5nJiYpPjsKQEAgLTU1MCw2ICs1NTIsMTAgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8TmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXI+IG1fbmV0d29ya0hUVFBTVXBncmFkZUNoZWNr
ZXI7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisgICAg
Ym9vbCBtX2lzSVRQRGF0YWJhc2VFbmFibGVkIHsgZmFsc2UgfTsKKyNlbmRpZgorICAgIAogICAg
IGNsYXNzIFN0b3JhZ2VRdW90YU1hbmFnZXJzIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHVpbnQ2
NF90IGRlZmF1bHRRdW90YShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbikgY29u
c3QgeyByZXR1cm4gb3JpZ2luLnRvcE9yaWdpbiA9PSBvcmlnaW4uY2xpZW50T3JpZ2luID8gbV9k
ZWZhdWx0UXVvdGEgOiBtX2RlZmF1bHRUaGlyZFBhcnR5UXVvdGE7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmlu
ZGV4IGEzZjdlYTMyNjRhZmYwMWQ4NmNkMDc5MmIxMTc1NTQzM2FlZjJkMDYuLjNhOTcyOTQ2Mzk5
MWQ4ODExODI3MmEyODBkZDFmMjQzY2NiYTAxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTEzLDYg
KzExMyw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAg
ICBTdWJtaXRUZWxlbWV0cnkoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwog
ICAgIFNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzKSAtPiAoKSBBc3luYwogICAgIFNldEdyYW5kZmF0
aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biByZXNvdXJjZURvbWFpbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQpIC0+ICgpIEFzeW5jCisgICAg
U2V0VXNlSVRQRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlKQog
ICAgIFNldEdyYW5kZmF0aGVyaW5nVGltZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNlY29u
ZHMgc2Vjb25kcykgLT4gKCkgQXN5bmMKICAgICBTZXRNYXhTdGF0aXN0aWNzRW50cmllcyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IG1heGltdW1FbnRyeUNvdW50KSAtPiAoKSBB
c3luYwogICAgIFNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25kcykgLT4gKCkgQXN5bmMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXggYzNlZTg2
MzI5OWY1YmNhODY5MjI1NjkyNTEwMzg5NGFjOGNkNGUwYy4uODMxMDdmZWU2NDA2YWI3NjZiMjk4
Njk5NGZlNmYyYjVjMmFkNWE0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTE2MSw2ICsxNjEsMTIgQEAgdm9pZCBOZXR3b3JrU2Vz
c2lvbjo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoYm9vbCBlbmFibGUpCiAgICAg
ICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1
Z01vZGUobV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2UsIFtd
IHsgfSk7CiB9CiAKK3ZvaWQgTmV0d29ya1Nlc3Npb246OnJlY3JlYXRlUmVzb3VyY2VMb2FkU3Rh
dGlzdGljU3RvcmUoKQoreworICAgIGRlc3Ryb3lSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCk7Cisg
ICAgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpjcmVhdGUoKnRoaXMsIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgbV9z
aG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzKTsKK30KKwogdm9p
ZCBOZXR3b3JrU2Vzc2lvbjo6bm90aWZ5UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Byb2Nlc3NlZCgp
CiB7CiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2Vu
ZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6Tm90aWZ5UmVzb3VyY2VMb2FkU3RhdGlz
dGljc1Byb2Nlc3NlZCgpLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb24uaAppbmRleCAzMThlY2U0YTQ0YjI0YzQ1ZjFkNzA2OWQ5ODZhMzMyMmE5YTUw
MjliLi41M2U5ZmY3ZGNmNThmNmNjYmYyMWY0MzI4NDM4NjM5NzFlMmQyMGI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCkBAIC04NCw2ICs4NCw3
IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSogcmVzb3VyY2VMb2FkU3RhdGlzdGljcygpIGNv
bnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcy5nZXQoKTsgfQogICAgIHZvaWQg
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoYm9vbCk7CisgICAgdm9pZCByZWNyZWF0
ZVJlc291cmNlTG9hZFN0YXRpc3RpY1N0b3JlKCk7CiAgICAgdm9pZCBub3RpZnlSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzUHJvY2Vzc2VkKCk7CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvclJl
Z2lzdHJhYmxlRG9tYWlucyhPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgVmVjdG9yPHN0ZDo6
cGFpcjxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZT4+JiYs
IGJvb2wgc2hvdWxkTm90aWZ5UGFnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBIYXNo
U2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiYpPiYmKTsKICAgICB2b2lkIHJlZ2lzdHJh
YmxlRG9tYWluc1dpdGhXZWJzaXRlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgYm9v
bCBzaG91bGROb3RpZnlQYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc2hTZXQ8V2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4+JiYpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCmluZGV4IDE4N2U4MWEz
ODZjY2I1Nzk2MzA3ODUxNmMwOTRhMTNiMjEyZGY4MjUuLmUyY2ViOWRlMmY1MDcxZmI4OTE4M2Ux
ZWIwYjkzZTNjZDJlMTYzMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcApAQCAtMjY3LDYgKzI2NywxMyBAQCB2
b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tXZWJzaXRl
RGF0YVN0b3JlUmVmIGRhdGFTdG9yZQogI2VuZGlmCiB9CiAKK3ZvaWQgV0tXZWJzaXRlRGF0YVN0
b3JlU2V0VXNlSVRQRGF0YWJhc2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwg
Ym9vbCB2YWx1ZSkKK3sKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAg
IFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPndlYnNpdGVEYXRhU3RvcmUoKS5zZXRVc2VJ
VFBEYXRhYmFzZSh2YWx1ZSk7CisjZW5kaWYKK30KKwogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVT
ZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKFdLV2Vic2l0ZURhdGFTdG9y
ZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIHRvcEZyYW1l
SG9zdCkKIHsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaApp
bmRleCBlNDlkZTIwYjhmMjRhZjFiNzA2ZTc3Nzc4MTc1MzQyNmVkNjg0MDk3Li5mMmY5YzYyYjUy
MzgyZDIyYzA0MzZjZjEwODM4ZDJiYmM0OTU0OWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaApAQCAtNzAsNiArNzAs
NyBAQCBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24oV0tXZWJzaXRlRGF0YQogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0
YVN0b3JlU2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRh
dGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgYm9vbCB2YWx1ZSk7CiB0eXBlZGVmIHZvaWQg
KCpXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkRnVuY3Rpb24pKGJv
b2wgaXNHcmFuZGZhdGhlcmVkLCB2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwogV0tfRVhQT1JUIHZv
aWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1dlYnNpdGVE
YXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCB2b2lkKiBjb250ZXh0
LCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkRnVuY3Rpb24gY2Fs
bGJhY2spOworV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0VXNlSVRQRGF0YWJh
c2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgYm9vbCB2YWx1ZSk7CiBXS19F
WFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRv
cEZyYW1lT3JpZ2luKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5n
UmVmIGhvc3QsIFdLU3RyaW5nUmVmIHRvcEZyYW1lSG9zdCk7CiBXS19FWFBPUlQgdm9pZCBXS1dl
YnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lu
KFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdL
U3RyaW5nUmVmIHRvcEZyYW1lSG9zdCk7CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3Rv
cmVTZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKFdLV2Vic2l0ZURhdGFT
dG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIGhvc3RS
ZWRpcmVjdGVkVG8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggNTFiM2U5MDgwNjZlNWY4YzQxZWQ4MDFm
NjFhZTliMTAxN2RmNDg1Yy4uMTg1MDRhYmYyMTUzMmI3MzkwMDE0N2I4NGJjZjUwNGE5YWQ0Njcx
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCkBAIC03NzMsNiArNzczLDE0IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6c2V0R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFJlZ2lzCiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6
U2V0R3JhbmRmYXRoZXJlZChzZXNzaW9uSUQsIHJlc291cmNlRG9tYWluLCBpc0dyYW5kZmF0aGVy
ZWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6c2V0VXNlSVRQRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29s
IHZhbHVlKQoreworICAgIGlmICghY2FuU2VuZE1lc3NhZ2UoKSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIAorICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRVc2VJVFBEYXRhYmFz
ZShzZXNzaW9uSUQsIHZhbHVlKSwgMCk7Cit9CisKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6
cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlE
LCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZy
YW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0
byogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRl
eCA4OGRhN2MwNGY2NjJjODdhYjgzMzQ5MmRiODg5MDk2NzdjNDYzOGEwLi5kMGI3MTlhYjdlODI2
OGY5ZGU1YzQ4MGJkZmI5MzI1NWQ2ZmRlMWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMTE2LDYgKzExNiw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKFBBTDo6
U2Vzc2lvbklELCBPcHRpb25hbDxTZWNvbmRzPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIHNldENhY2hlTWF4QWdlQ2FwKFBBTDo6U2Vzc2lvbklELCBTZWNvbmRzLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0R3JhbmRmYXRoZXJlZChQ
QUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBib29sIGlzR3JhbmRmYXRo
ZXJlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFVzZUlUUERh
dGFiYXNlKFBBTDo6U2Vzc2lvbklELCBib29sIHZhbHVlKTsKICAgICB2b2lkIHNldE5vdGlmeVBh
Z2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQoUEFMOjpTZXNzaW9uSUQsIGJvb2wsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRJc1J1bm5pbmdSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzVGVzdChQQUw6OlNlc3Npb25JRCwgYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldE5vdGlmeVBhZ2VzV2hlblRlbGVtZXRyeVdhc0NhcHR1
cmVkKFBBTDo6U2Vzc2lvbklELCBib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmNwcAppbmRleCA5NWFlZGZlMTQzNzhlNmE1ODQyNGU3NWU1YjNkZTVhOGRmOGVj
YjZmLi5mYzM2YmE4NmQ2Yjg2ZDgzZTM5YWNkZDQyY2ZhOWEwOTg3ZWMyMmQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcApAQCAtMTY0MSw2ICsxNjQxLDE0IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0
R3JhbmRmYXRoZXJlZChjb25zdCBVUkwmIHVybCwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIENvCiAg
ICAgfQogfQogCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldFVzZUlUUERhdGFiYXNlKGJvb2wg
dmFsdWUpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGZvciAoYXV0
byYgcHJvY2Vzc1Bvb2wgOiBwcm9jZXNzUG9vbHMoKSkKKyAgICAgICAgcHJvY2Vzc1Bvb2wtPmVu
c3VyZU5ldHdvcmtQcm9jZXNzKCkuc2V0VXNlSVRQRGF0YWJhc2UobV9zZXNzaW9uSUQsIHZhbHVl
KTsKK30KKwogdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRDcm9zc1NpdGVMb2FkV2l0aExpbmtE
ZWNvcmF0aW9uRm9yVGVzdGluZyhjb25zdCBVUkwmIGZyb21VUkwsIGNvbnN0IFVSTCYgdG9VUkws
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IGY1MmZhZGVlOGM4NmJj
MWFmYzVkNzE4OGNlYWEyNTFkYWRhOWRjNjMuLmVmMTUwOGE4OGMzMmIwYzFkYTk3ODk1OThiNzg3
MzhmNTAyYTUwMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTE1NCw2ICsxNTQsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzY2hlZHVsZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3NpbmcoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHN1Ym1pdFRlbGVtZXRyeSgpOwogICAg
IHZvaWQgc2V0R3JhbmRmYXRoZXJlZChjb25zdCBVUkwmLCBib29sLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0VXNlSVRQRGF0YWJhc2UoYm9vbCk7CiAgICAgdm9p
ZCBzZXRHcmFuZGZhdGhlcmluZ1RpbWUoU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICAgICB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFVSTCYsIFNlY29uZHMsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXROb3RpZnlQYWdlc1doZW5EYXRhUmVj
b3Jkc1dlcmVTY2FubmVkKGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2M0ZmZmZGFh
M2YyOWYyN2VlZTY0N2Y5NTRhOTU5NmRjOGNmNDcyMS4uODg1ZTlmZGUyYTI1ZTc4MjA4ZDBkZTNi
MmRmMGZiOTAxZGVlNzUyMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTA5LTI0ICBLYXRlIENoZW5leSAgPGth
dGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBMYXlvdXRUZXN0cyB1
c2luZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFNRTGl0ZSBiYWNrZW5kICgxOTU0MjApIAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1NDIwICAgICAg
ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjEzNTUxPiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCisKKyAgICAgICAgQWRkZWQgaW4gbG9naWMgdG8gc2VuZCBhIG1lc3Nh
Z2UgZnJvbSB0aGUgVUlQcm9jZXNzIHRvIHRoZSBOZXR3b3JrICAgICAgCisgICAgICAgIFByb2Nl
c3Mgd2hpY2ggd2lsbCBpbml0YWxpemUgdGhlIElUUCBEYXRhYmFzZSBiYWNrZW5kIHRvIGFsbG93
IGZvciAgICAgIAorICAgICAgICBsYXlvdXQgdGVzdGluZy4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAg
IChXVFI6OlRlc3RSdW5uZXI6OnNldFVzZUlUUERhdGFiYXNlKToKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OnNldFVzZUlUUERhdGFiYXNlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5j
cHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNN
ZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAxOS0wOS0xMyAgQWxleCBDaHJpc3RlbnNl
biAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFtpT1NdIFRlc3RXZWJLaXRB
UEkuV2ViS2l0LlRMU1ZlcnNpb25XZWJTb2NrZXQgaXMgYSBmbGFreSBmYWlsdXJlCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RS
dW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbAppbmRleCBmNTM0YmIwMTBiNmY2ZjEzNzBiMDliZTU4NGZiOTg2NTAw
ZjNiODI0Li5hNjMyNTI2YTk3NDQ4MTljOTQxOGNhZWRjM2Q4MDBlYzliOTYxMzFkIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RS
dW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTMwOSw2ICszMDksNyBAQCBpbnRlcmZhY2UgVGVzdFJ1
bm5lciB7CiAgICAgYm9vbGVhbiBpc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oRE9N
U3RyaW5nIGhvc3ROYW1lKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKERP
TVN0cmluZyBob3N0TmFtZSwgYm9vbGVhbiB2YWx1ZSk7CiAgICAgYm9vbGVhbiBpc1N0YXRpc3Rp
Y3NHcmFuZGZhdGhlcmVkKERPTVN0cmluZyBob3N0TmFtZSk7CisgICAgdm9pZCBzZXRVc2VJVFBE
YXRhYmFzZShib29sZWFuIHZhbHVlKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NTdWJmcmFtZVVu
ZGVyVG9wRnJhbWVPcmlnaW4oRE9NU3RyaW5nIGhvc3ROYW1lLCBET01TdHJpbmcgdG9wRnJhbWVI
b3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1l
T3JpZ2luKERPTVN0cmluZyBob3N0TmFtZSwgRE9NU3RyaW5nIHRvcEZyYW1lSG9zdE5hbWUpOwog
ICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhET01TdHJp
bmcgaG9zdE5hbWUsIERPTVN0cmluZyBob3N0TmFtZVJlZGlyZWN0ZWRUbyk7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRl
eCAxNTc0ZWM0Y2M2Mjg3OWIwODJhZTI3MzhhMmZjODFkNzA0MDlkNGU2Li4zNzIzYmZiMjY2MWFi
MjRmOWJjYzVlOTViYjhkNWMyY2ViZjY2MjMyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTE2OTQsNyArMTY5NCwx
NSBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKEpTU3RyaW5n
UmVmIGhvc3ROYW1lLCBib29sIHZhbHVlKQogICAgIAogICAgIFdLQnVuZGxlUG9zdFN5bmNocm9u
b3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VO
YW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSwgbnVsbHB0cik7CiB9CisKK3ZvaWQgVGVzdFJ1
bm5lcjo6c2V0VXNlSVRQRGF0YWJhc2UoYm9vbCB2YWx1ZSkKK3sKKyAgICBXS1JldGFpblB0cjxX
S1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJTZXRVc2VJVFBEYXRhYmFzZSIpKTsKKyAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5S
ZWY+IG1lc3NhZ2VCb2R5ID0gYWRvcHRXSyhXS0Jvb2xlYW5DcmVhdGUodmFsdWUpKTsKICAgICAK
KyAgICBXS0J1bmRsZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmds
ZXRvbigpLmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCksIG51
bGxwdHIpOworfQorCiBib29sIFRlc3RSdW5uZXI6OmlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQo
SlNTdHJpbmdSZWYgaG9zdE5hbWUpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1l
c3NhZ2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiSXNTdGF0
aXN0aWNzR3JhbmRmYXRoZXJlZCIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggOTM5YjZiZTlkOGU1MWE3MDYyNTQ1ZDQz
NDZmNWI0NWM3ZWFhNWFlMC4uYWYxMDJlNTA0NTkwZDk2YzU1ZjgyNmNhOTdjZTkxMDRjMzBmZTYy
MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmgKQEAgLTQxMCw2ICs0MTAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1N0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oSlNTdHJpbmdSZWYgaG9zdE5hbWUpOwogICAgIHZvaWQg
c2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoSlNTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFs
dWUpOwogICAgIGJvb2wgaXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChKU1N0cmluZ1JlZiBob3N0
TmFtZSk7CisgICAgdm9pZCBzZXRVc2VJVFBEYXRhYmFzZShib29sIHZhbHVlKTsKICAgICB2b2lk
IHNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oSlNTdHJpbmdSZWYgaG9z
dE5hbWUsIEpTU3RyaW5nUmVmIHRvcEZyYW1lSG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlz
dGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihKU1N0cmluZ1JlZiBob3N0TmFtZSwg
SlNTdHJpbmdSZWYgdG9wRnJhbWVIb3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBKU1N0cmluZ1Jl
ZiBob3N0TmFtZVJlZGlyZWN0ZWRUbyk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCmluZGV4IDlhOTFmNWQyZjQ4Njg0ZThmNTFkYWM5NTNjY2ZhMDgyYjM2ODBjNTIu
LjNjZTVjNjhmMjBhMGYyYTcxZThhYTJhYjljODk0NjJhYmYyNTY5YWIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zMzUyLDYgKzMzNTIsMTEgQEAgYm9v
bCBUZXN0Q29udHJvbGxlcjo6aXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1N0cmluZ1JlZiBo
b3N0KQogICAgIHJldHVybiBjb250ZXh0LnJlc3VsdDsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxl
cjo6c2V0VXNlSVRQRGF0YWJhc2UoYm9vbCB2YWx1ZSkKK3sKKyAgICBXS1dlYnNpdGVEYXRhU3Rv
cmVTZXRVc2VJVFBEYXRhYmFzZShUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCB2
YWx1ZSk7Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NTdWJmcmFtZVVu
ZGVyVG9wRnJhbWVPcmlnaW4oV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgdG9wRnJhbWVI
b3N0KQogewogICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVy
VG9wRnJhbWVPcmlnaW4oVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgaG9zdCwg
dG9wRnJhbWVIb3N0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRl
eCA4MzdlNGFiMmNiMGU2NjE3MWNkZWY0MGJkYjE0ODZjNmUwYmQ3MTQ4Li42NzNmMmRjODgzZTk0
MjVhMGZhNTliODFhY2M4ZjIzMzhjNzVhMTBkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oCkBAIC0yMjIsNiArMjIyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKFdLU3RyaW5nUmVmIGhvc3ROYW1lKTsKICAgICB2
b2lkIHNldFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLU3RyaW5nUmVmIGhvc3ROYW1lLCBib29s
IHZhbHVlKTsKICAgICBib29sIGlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tTdHJpbmdSZWYg
aG9zdE5hbWUpOworICAgIHZvaWQgc2V0VXNlSVRQRGF0YWJhc2UoYm9vbCB2YWx1ZSk7CiAgICAg
dm9pZCBzZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKFdLU3RyaW5nUmVm
IGhvc3ROYW1lLCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3ROYW1lKTsKICAgICB2b2lkIHNldFN0
YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oV0tTdHJpbmdSZWYgaG9zdE5h
bWUsIFdLU3RyaW5nUmVmIHRvcEZyYW1lSG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGlj
c1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhXS1N0cmluZ1JlZiBob3N0TmFtZSwgV0tTdHJp
bmdSZWYgaG9zdE5hbWVSZWRpcmVjdGVkVG8pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJ
bnZvY2F0aW9uLmNwcAppbmRleCA2MDdlNWJiZGI0YjA1NmViNmI1YjY0ZWIwMDE3ZGI4MDVjMDdh
OTkyLi4zMDdkMmFiZDFkNjFiN2FmM2YxNTY3ODlhMDgzY2VlZTNiNDQwNWM2IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTI0MSw2ICsxMjQxLDE0IEBA
IFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJv
bm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgICAgIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4g
cmVzdWx0ID0gYWRvcHRXSyhXS0Jvb2xlYW5DcmVhdGUoaXNHcmFuZGZhdGhlcmVkKSk7CiAgICAg
ICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQorCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRG
OENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRVc2VJVFBEYXRhYmFzZSIpKSB7CisgICAgICAgIEFT
U0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tCb29sZWFuR2V0VHlwZUlEKCkpOwor
CisgICAgICAgIFdLQm9vbGVhblJlZiB2YWx1ZSA9IHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4o
bWVzc2FnZUJvZHkpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0VXNl
SVRQRGF0YWJhc2UoV0tCb29sZWFuR2V0VmFsdWUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgfQogICAgIAogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5n
KG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbiIp
KSB7CiAgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tEaWN0aW9u
YXJ5R2V0VHlwZUlEKCkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU3ZjZhNzkzMjAxMjg2YTEzZmRlOTVjN2ExODcwMGNl
NmQ5ZTI5ZmEuLjg4NjI4OTVkNGM3MjI1MmY2MGQxNzJiMzZkYWMzMjAzOTUwYzgxMGEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNTggQEAKKzIwMTktMDktMjQgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2No
ZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIExheW91dFRlc3RzIHVzaW5nIFJlc291
cmNlTG9hZFN0YXRpc3RpY3MgU1FMaXRlIGJhY2tlbmQgKDE5NTQyMCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTQyMCAKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzU0MjEzNTUxPgorCisgICAgICAgIEFkZGVkIGEgZmxhZyB0byBhbGwgSVRQIHRl
c3RzIHRvIGVuYWJsZSB0aGUgSVRQIGRhdGFiYXNlIGJhY2tlbmQgdG8gCisgICAgICAgIGFsbG93
IGZvciB0ZXN0aW5nIGZ1bmN0aW9uYWxpdHkgYWdhaW5zdCB0aGUgbWVtb3J5IHN0b3JlLiBUZXN0
cyB3ZXJlIAorICAgICAgICBub3QgY3JlYXRlZCBmb3IgdGVsZW1ldHJ5LWdlbmVyYXRpb24uaHRt
bCwgCisgICAgICAgIGxvZy1jcm9zcy1zaXRlLWxvYWQtd2l0aC1saW5rLWRlY29yYXRpb24uaHRt
bCwgb3IgCisgICAgICAgIHdlYnNpdGUtZGF0YS1yZW1vdmFsLWZvci1zaXRlLW5hdmlnYXRlZC10
by13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sLCAKKyAgICAgICAgYmVjYXVzZSB0aGVzZSByZWx5
IG9uIGZ1bmN0aW9ucyBub3QgeWV0IGltcGxlbWVudGVkIGluIHRoZSBJVFAgZGF0YWJhc2UuCisg
ICAgICAgIEFkZGl0aW9uYWxseSwgYWRkZWQgZmxhZ3MgdG8gc29tZSBtZW1vcnkgc3RvcmUgdGVz
dHMgdG8gZW5zdXJlIHRoZXkKKyAgICAgICAgYXJlIHVzaW5nIHRoZSBtZW1vcnkgc3RvcmUgYmVm
b3JlIGNhbGxpbmcgZnVuY3Rpb25zIG5vdCBpbXBsZW1lbnRlZCBpbgorICAgICAgICB0aGUgZGF0
YWJhc2Ugc3RvcmUgeWV0LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2lu
Zy10by1yZWRpcmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3Qt
ZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2Jsb2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0LWltcG9ydC1kYXRhYmFzZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nh
cC1jYWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2FwLWNhY2hlLW1heC1hZ2UtZm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVk
LWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1s
aWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZv
ci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5r
LWRlY29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tp
ZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRo
LWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1s
aWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50
LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGlt
ZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20t
cHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmst
cXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1m
b3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVu
dC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2Ut
ZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlz
dGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9u
LW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFz
ZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1m
cmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9u
LXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZy
YW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24t
c3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMt
dG8tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0
aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhl
ZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3Vi
LWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMt
ZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRp
cmVjdC1jb2xsdXNpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJh
c2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1k
YXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3Vy
Y2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQt
YmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRv
cC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
c3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1k
YXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVj
dC1jb2xsdXNpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXBy
ZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJl
Y3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
dG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFi
YXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNz
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJhc2VkLW9uLW1p
eGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1z
dG9yZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3Rv
cmUtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91
ci1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUt
b25lLWhvdXItZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29r
aWUtZGVsZXRpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVy
YWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWlu
dGVyYWN0aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUtY29va2llcy1kYXRh
YmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUtY29va2llcy1kYXRhYmFzZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
ZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRpcmVjdC1kYXRhYmFzZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
ZG8tbm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy1kYXRh
YmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNzLWZvci1zaW1wbGUtdG9wLW5h
dmlnYXRpb25zLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0LWRh
dGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJh
c2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRo
b3V0LWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1v
bi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9uLWRhdGFiYXNlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9k
b3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVyeS1mcm9tLXBy
ZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZv
ci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRh
YmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZW5hYmxlLWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5hYmxlLWRlYnVnLW1v
ZGUtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVy
aW5nLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9sb2ctY3Jvc3Mtc2l0ZS1sb2FkLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0
bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2
YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
bi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24t
cHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRh
YmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhp
cmQtcGFydHktY29udGV4dC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNl
cy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0LWRhdGFiYXNlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0
LXRvLWlwLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3Qt
dG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5k
Ym94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1p
cC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0
aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2Fs
aG9zdC10by1pcC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5v
bi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3Qt
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0
YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2Fu
ZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10
by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUt
d2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhv
c3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRh
YmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10
by1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVk
LWtleWRvd24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5
ZG93bi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFz
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9w
cmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0
LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rp
b24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3BydW5lLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3Rh
dGlzdGljcy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhv
c3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10
by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9j
YWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRi
b3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlw
LXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1p
ZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3Qt
dG8taXAtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94
ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJh
bWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJv
eGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1s
b2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1l
LXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0
YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVk
aXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5k
Ym94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2Fs
aG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0b20tcHJldmFsZW50LXJl
c291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2YWxl
bnQtcmVzb3VyY2UtaW4tZGVidWctbW9kZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3Jp
Z2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlZGly
ZWN0cy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3Vi
cmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3Jp
Z2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1z
ZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0
aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdGVsZW1ldHJ5LWdlbmVyYXRpb24uaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1p
bi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rp
b24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1v
bmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1w
ZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13
ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJl
cG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy93ZWJzaXRlLWRhdGEt
cmVtb3ZhbC1mb3Itc2l0ZS1uYXZpZ2F0ZWQtdG8td2l0aC1saW5rLWRlY29yYXRpb24uaHRtbDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgQWRkZWQg
dGVzdCBleHBlY3RhdGlvbnMgdG8gc2tpcCBkYXRhYmFzZSB0ZXN0cyB3aGljaCBkbyBub3Qgd29y
ayBpbiAKKyAgICAgICAgaW9zIGJlY2F1c2Ugb2YgcmVsaWFuY2Ugb24gRXZlbnRTZW5kZXIua2V5
ZG93bigpIHdoaWNoIGlzIG5vdAorICAgICAgICBzdXBwb3J0ZWQgb24gaU9TIGFuZCBhbHNvIHRo
b3NlIHdoaWNoIHVzZSBVSUhlbHBlci5hY3RpdmF0ZUF0KCkgd2hpY2gKKyAgICAgICAgZG9lcyBu
b3QgcHJvZHVjZSBhIHVzZXIgZ2VzdHVyZSBjYXB0dXJlZCBieSBJVFAgaW4gaU9TLgorCiAyMDE5
LTA5LTEzICBSdXNzZWxsIEVwc3RlaW4gIDxyZXBzdGVpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI0OTcwOS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJl
Y3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYWZlZjljZDI2ZTg2MWIwZmRiMTRmNWRjMGIwYTE2MDBmNGU4ZGFk
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNjMgQEAKK1Rlc3RzIHRoYXQgYmxvY2tpbmcgaXMgYWRkZWQgbWlkLWZsaWdo
dCBpbiByZWRpcmVjdHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAgCisKKy0tLS0tLS0t
CitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgZmlyc3Qt
cGFydHkgY29va2llLgorUmVjZWl2ZWQgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4K
K0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3BhcnRpdGlvbmVkQ29va2llJy4KK0NsaWVu
dC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQYXJ0eUNvb2tpZT12YWx1ZQorCistLS0tLS0t
LQorRnJhbWU6ICc8IS0tZnJhbWUyLS0+JworLS0tLS0tLS0KK1JlZGlyZWN0IGNhc2UgMSwgc2hv
dWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLgorUmVjZWl2ZWQgY29va2llIG5hbWVkICdm
aXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3BhcnRpdGlv
bmVkQ29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQYXJ0eUNvb2tp
ZT12YWx1ZQorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUzLS0+JworLS0tLS0tLS0KK1No
b3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdm
aXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3BhcnRpdGlv
bmVkQ29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0Zy
YW1lOiAnPCEtLWZyYW1lNC0tPicKKy0tLS0tLS0tCitSZWRpcmVjdCBjYXNlIDIsIHNob3VsZCBy
ZWNlaXZlIG5vIGNvb2tpZS4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFy
dHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9uZWRDb29r
aWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8
IS0tZnJhbWU1LS0+JworLS0tLS0tLS0KK1RyeSB0byBzZXQgdGhpcmQtcGFydHkgY29va2llIGlu
IGJsb2NrZWQgbW9kZS4KKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWU2LS0+JworLS0t
LS0tLS0KK0FmdGVyIGF0dGVtcHRlZCBjb29raWUgY3JlYXRpb24sIHNob3VsZCByZWNlaXZlIG5v
IGNvb2tpZS4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUn
LgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9uZWRDb29raWUnLgorQ2xp
ZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWU3
LS0+JworLS0tLS0tLS0KK1JlZGlyZWN0IGNhc2UgMywgYWZ0ZXIgYXR0ZW1wdGVkIGNvb2tpZSBj
cmVhdGlvbiwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llLgorRGlkIG5vdCByZWNlaXZlIGNvb2tp
ZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVk
ICdwYXJ0aXRpb25lZENvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRk
LWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFi
YXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMDFkNjNhNTE2ODc4YTA4MzhkMjk4ZTc2M2UwM2QyZWI4NDZh
MDk5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbApAQCAt
MCwwICsxLDEwNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4K
KyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2Ny
aXB0aW9uKCJUZXN0cyB0aGF0IGJsb2NraW5nIGlzIGFkZGVkIG1pZC1mbGlnaHQgaW4gcmVkaXJl
Y3RzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgcGFydGl0aW9u
SG9zdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHJlc291cmNlUGF0aCA9ICIvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJs
ID0gdGhpcmRQYXJ0eU9yaWdpbiArIHJlc291cmNlUGF0aDsKKyAgICBjb25zdCBmaXJzdFBhcnR5
Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRG
aXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29v
a2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHBhcnRpdGlvbmVkQ29va2llTmFt
ZSA9ICJwYXJ0aXRpb25lZENvb2tpZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0UGFydGl0aW9u
ZWRDb29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIHBhcnRpdGlvbmVkQ29va2llTmFt
ZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHJldHVyblVybCA9ICJodHRwOi8vIiArIHBh
cnRpdGlvbkhvc3QgKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJl
ZGlyZWN0Lmh0bWwiOworICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tpZXMgPSAiL2dldC1jb29r
aWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiJm5hbWUyPSIgKyBwYXJ0
aXRpb25lZENvb2tpZU5hbWU7CisgICAgY29uc3QgcmVkaXJlY3RDaGFpblVybCA9ICJodHRwOi8v
IiArIHBhcnRpdGlvbkhvc3QgKyByZXNvdXJjZVBhdGggKyAiL3JlZGlyZWN0LnBocD9yZWRpcmVj
dFRvPSIgKyB0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXM7CisKKyAgICBm
dW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBl
bGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1l
bnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAg
ZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVu
VGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAg
ICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgIC8vIFNldCBmaXJzdC1wYXJ0
eSBjb29raWUgZm9yIGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlv
bi5ocmVmID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2ll
ICsgIiMiICsgcmV0dXJuVXJsICsgIiNzdGVwMiI7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQg
dGhlIGNvb2tpZSBnZXRzIHNlbnQgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEgc2luY2Ug
bG9jYWxob3N0IGlzIG5vdCBwcmV2YWxlbnQuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBh
cnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2Vp
dmUgZmlyc3QtcGFydHkgY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSAiI3N0ZXAzIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5s
b2NhdGlvbi5oYXNoID0gInN0ZXA0IjsKKyAgICAgICAgICAgICAgICAvLyBMb2FkIGFuIGlmcmFt
ZSBpbiBhIHJlZGlyZWN0IGNoYWluIHRoYXQgc3RhcnRzIHdpdGggMTI3LjAuMC4xIGFuZCBlbmRz
IHdpdGggbG9jYWxob3N0LiBFeHBlY3QgYSBjb29raWUgZm9yIGxvY2FsaG9zdC4KKyAgICAgICAg
ICAgICAgICBvcGVuSWZyYW1lKHJlZGlyZWN0Q2hhaW5VcmwgKyAiJm1lc3NhZ2U9UmVkaXJlY3Qg
Y2FzZSAxLCBzaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAg
ICAgICAgICAgIC8vIFNldCBsb2NhbGhvc3QgYXMgcHJldmFsZW50IHRvIHB1dCBpdCBpbiB0aGUg
YmxvY2tpbmcgY2F0ZWdvcnkuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFz
aCA9ICJzdGVwNSI7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmco
cnVuVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlICIjc3RlcDUiOgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQg
bm8gY29va2llIGdldHMgc2VudCBmb3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMSBzaW5jZSBs
b2NhbGhvc3QncyBjb29raWVzIGFyZSBibG9ja2VkLgorICAgICAgICAgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggPSAic3RlcDYiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhp
cmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgICImbWVzc2FnZT1TaG91bGQg
cmVjZWl2ZSBubyBjb29raWVzLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSAiI3N0ZXA2IjoKKyAgICAgICAgICAgICAgICAvLyBMb2FkIGFuIGlm
cmFtZSBpbiBhIHJlZGlyZWN0IGNoYWluIHRoYXQgc3RhcnRzIHdpdGggMTI3LjAuMC4xIGFuZCBl
bmRzIHdpdGggbG9jYWxob3N0LiBFeHBlY3Qgbm8gY29va2llIGZvciBsb2NhbGhvc3QuCisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNyI7CisgICAgICAgICAg
ICAgICAgb3BlbklmcmFtZShyZWRpcmVjdENoYWluVXJsICsgIiZtZXNzYWdlPVJlZGlyZWN0IGNh
c2UgMiwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA3IjoKKyAgICAgICAgICAgICAgICAv
LyBUcnkgdG8gc2V0IGNvb2tpZSBmb3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMS4KKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA4IjsKKyAgICAgICAgICAg
ICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0UGFydGl0aW9u
ZWRDb29raWUgKyAiJm1lc3NhZ2U9VHJ5IHRvIHNldCB0aGlyZC1wYXJ0eSBjb29raWUgaW4gYmxv
Y2tlZCBtb2RlLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSAiI3N0ZXA4IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IG5vIGNvb2tp
ZSBnZXRzIHNlbnQgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEgc2luY2UgbG9jYWxob3N0
J3MgY29va2llcyBhcmUgYmxvY2tlZC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlv
bi5oYXNoID0gInN0ZXA5IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlC
YXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICAiJm1lc3NhZ2U9QWZ0ZXIgYXR0ZW1wdGVk
IGNvb2tpZSBjcmVhdGlvbiwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llLiIsIHJ1blRlc3QpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA5IjoKKyAgICAg
ICAgICAgICAgICAvLyBMb2FkIGFuIGlmcmFtZSBpbiBhIHJlZGlyZWN0IGNoYWluIHRoYXQgc3Rh
cnRzIHdpdGggMTI3LjAuMC4xIGFuZCBlbmRzIHdpdGggbG9jYWxob3N0LiBFeHBlY3Qgbm8gY29v
a2llIGZvciBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFz
aCA9ICJzdGVwMTAiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUocmVkaXJlY3RDaGFpblVy
bCArICImbWVzc2FnZT1SZWRpcmVjdCBjYXNlIDMsIGFmdGVyIGF0dGVtcHRlZCBjb29raWUgY3Jl
YXRpb24sIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMTAiOgorICAgICAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFz
aCA9PT0gIiIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsK
KyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5
T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2FzIGNsYXNz
aWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydHMuIik7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAgICAgICBydW5UZXN0
KCk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNj
cmlwdC1pbXBvcnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Jsb2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0LWlt
cG9ydC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWNiNzk5NDNlZDhiNDlhODQx
YmQxMjliM2Y1YWNhNmUyYTNiMjFiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNj
cmlwdC1pbXBvcnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1Rlc3Qg
Zm9yIGNvb2tpZSBibG9ja2luZyB3aGVuIHdlYiB3b3JrZXJzIGltcG9ydCBjcm9zcy1zaXRlIHNj
cmlwdHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIERpZCByZWNlaXZl
IGZpcnN0UGFydHlDb29raWUgPT0gdmFsdWUKK1BBU1MgRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBu
YW1lZCBmaXJzdFBhcnR5Q29va2llCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0t
LS0tLS0KK1Nob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tp
ZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6
IGZpcnN0UGFydHlDb29raWU9dmFsdWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNjcmlwdC1p
bXBvcnQtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jYzIwMTA4NTEwNjVhY2E4NGEyYTJmOGU5OTc5MDc4MTg1N2ZiMTli
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2Jsb2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0LWltcG9ydC1kYXRhYmFzZS5o
dG1sCkBAIC0wLDAgKzEsODggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgor
PGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IGZvciBjb29r
aWUgYmxvY2tpbmcgd2hlbiB3ZWIgd29ya2VycyBpbXBvcnQgY3Jvc3Mtc2l0ZSBzY3JpcHRzLiIp
OworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgcGFydGl0aW9uSG9zdCA9
ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8v
bG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0
eU9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0
IGZpcnN0UGFydHlDb29raWVOYW1lID0gImZpcnN0UGFydHlDb29raWUiOworICAgIGNvbnN0IHN1
YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIGZp
cnN0UGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgY29uc3QgcmV0dXJuVXJs
ID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Jsb2NraW5n
LWluLXdlYi13b3JrZXItc2NyaXB0LWltcG9ydC5odG1sIjsKKyAgICBjb25zdCBzdWJQYXRoVG9H
ZXRDb29raWVzID0gIi9nZXQtY29va2llcy5waHA/bmFtZTE9IiArIGZpcnN0UGFydHlDb29raWVO
YW1lOworCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAg
ICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwor
ICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsK
KyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsKKyAgICAgICAgfQor
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIH0KKworICAg
IGxldCByZWNlaXZlZE1lc3NhZ2VzID0gMDsKKyAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShl
dmVudCkgeworICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQor
ICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJlcGxhY2Uo
IlBBU1MgIiwgIiIpKTsKKworICAgICAgICArK3JlY2VpdmVkTWVzc2FnZXM7CisgICAgICAgIGlm
IChyZWNlaXZlZE1lc3NhZ2VzID49IDIpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcnVuVGVz
dCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAo
ZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eUJhc2VVcmwg
KyBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llICsgIiMiICsgcmV0dXJuVXJsICsgIiNzdGVw
MiI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAg
ICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29r
aWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4iLCBydW5U
ZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAg
ICAgICAgICAgICAgbGV0IHcxID0gbmV3IFdvcmtlcigicmVzb3VyY2VzL3dvcmtlci1pbXBvcnRp
bmctbG9jYWxob3N0LXNjcmlwdC5qcyIpOworICAgICAgICAgICAgICAgIHcxLm9ubWVzc2FnZSA9
IHJlY2VpdmVNZXNzYWdlOworICAgICAgICAgICAgICAgIHcxLnBvc3RNZXNzYWdlKCJzaG91bGRS
ZWNlaXZlQ29va2llcz10cnVlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2gg
PSAic3RlcDUiOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1
blRlc3QpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSAiI3N0ZXA1IjoKKyAgICAgICAgICAgICAgICBsZXQgdzIgPSBuZXcgV29y
a2VyKCJyZXNvdXJjZXMvd29ya2VyLWltcG9ydGluZy1sb2NhbGhvc3Qtc2NyaXB0LmpzIik7Cisg
ICAgICAgICAgICAgICAgdzIub25tZXNzYWdlID0gcmVjZWl2ZU1lc3NhZ2U7CisgICAgICAgICAg
ICAgICAgdzIucG9zdE1lc3NhZ2UoInNob3VsZE5vdFJlY2VpdmVDb29raWVzIik7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9j
YXRpb24uaG9zdCA9PT0gcGFydGl0aW9uSG9zdCAmJiBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09
PSAiIiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAg
IHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5o
YXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNU
ZXh0KCk7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJM
b2NhbGhvc3Qgd2FzIGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUg
dGVzdCBzdGFydHMuIik7CisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAg
IH0gZWxzZSB7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2NlNWFhMWMzNmE5NGQ1NTBiZGUyMjlhZGU0NDZm
ZjgzNTVjMWNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3Vy
Y2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3RzIHRoYXQgY2Fj
aGUgbWF4LWFnZSBpcyBjYXBwZWQgZm9yIHByZXZhbGVudCByZXNvdXJjZXMuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGxvYWRlZFVybCBpcyAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3Zh
bHVlPTEyMzQiCitQQVNTIGxvYWRlZFVybCBpcyAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPTQzMjEiCitQ
QVNTIGxvYWRlZFVybCBpcyAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPSIKK1BBU1MgbG9hZGVkVXJsIGlz
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMv
ZWNoby1xdWVyeS5waHA/dmFsdWU9IgorUEFTUyBsb2FkZWRVcmwgaXMgImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXF1ZXJ5LnBocD92
YWx1ZT0iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2Fj
aGUtbWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjY0YTQ1MThhODMzOTQ2MDkwNzMzMzczZjFmNjAyMTYzYWFiOTMyYQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAt
Y2FjaGUtbWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAs
MCArMSwxMTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHRpdGxlPlRlc3RzIGZv
ciBDYXBwZWQgQ2FjaGUgTWF4LUFnZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgY2FjaGUgbWF4LWFnZSBpcyBjYXBwZWQgZm9y
IHByZXZhbGVudCByZXNvdXJjZXMuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAg
ICB2YXIgbG9hZGVkVXJsOworICAgIGZ1bmN0aW9uIGZpcnN0RmV0Y2goKSB7CisgICAgICAgIC8v
IFRoaXMgc2hvdWxkIGNyZWF0ZSBhIGNhcHBlZCBjYWNoZSBlbnRyeS4KKyAgICAgICAgZmV0Y2go
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9j
YWNoZWQtcGVybWFuZW50LXJlZGlyZWN0LnBocCIsCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgY2FjaGU6ICJyZWxvYWQiLAorICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsKKyAgICAg
ICAgICAgICAgICAgICAgIlgtV2ViS2l0IjogIjEyMzQiLAorICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0KKyAgICAgICAgKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAg
ICAgICBsb2FkZWRVcmwgPSByZXNwb25zZS51cmw7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImxvYWRlZFVybCIsICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9MTIzNCIpOworICAgICAg
ICAgICAgc2Vjb25kRmV0Y2goKTsKKyAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBzZWNvbmRGZXRjaCgpIHsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgbm90
IHRyaWdnZXIgYSBzdWNjZXNzZnVsIGNhY2hlIGhpdCBhbmQgaW5zdGVhZCBjcmVhdGUgYW5vdGhl
ciBjYXBwZWQgY2FjaGUgZW50cnkuCisgICAgICAgIGZldGNoKCJodHRwOi8vbG9jYWxob3N0Ojgw
MDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvY2FjaGVkLXBlcm1hbmVudC1yZWRp
cmVjdC5waHAiLAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhY2hlOiAiZm9yY2Ut
Y2FjaGUiLAorICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAg
IlgtV2ViS2l0IjogIjQzMjEiLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAg
ICAgICAgKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBsb2FkZWRVcmwg
PSByZXNwb25zZS51cmw7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxvYWRl
ZFVybCIsICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNv
dXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9NDMyMSIpOworICAgICAgICAgICAgdGhpcmRGZXRj
aCgpOworICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAgdGVz
dEZhaWxlZChlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFs
c2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRo
aXJkRmV0Y2goKSB7CisgICAgICAgIC8vIFRoaXMgc2hvdWxkIG5vdCB0cmlnZ2VyIGEgc3VjY2Vz
c2Z1bCBjYWNoZSBoaXQgYW5kIGluc3RlYWQgY3JlYXRlIGFub3RoZXIgY2FwcGVkIGNhY2hlIGVu
dHJ5LgorICAgICAgICBmZXRjaCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcmVzb3VyY2VzL2NhY2hlZC1wZXJtYW5lbnQtcmVkaXJlY3QucGhwIiwKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICBjYWNoZTogImZvcmNlLWNhY2hlIiwKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBs
b2FkZWRVcmwgPSByZXNwb25zZS51cmw7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImxvYWRlZFVybCIsICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9Iik7CisgICAgICAgICAgICBmb3Vy
dGhGZXRjaCgpOworICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAg
ICAgdGVzdEZhaWxlZChlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0
aW9uIGZvdXJ0aEZldGNoKCkgeworICAgICAgICAvLyBUaGlzIHNob3VsZCBub3QgdHJpZ2dlciBh
IHN1Y2Nlc3NmdWwgY2FjaGUgaGl0IGJ1dCBjbGVhciBjYXBwaW5nLgorICAgICAgICBmZXRjaCgi
aHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2Nh
Y2hlZC1wZXJtYW5lbnQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICBjYWNoZTogImZvcmNlLWNhY2hlIiwKKyAgICAgICAgICAgIH0KKyAgICAgICAgKS50aGVu
KGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBsb2FkZWRVcmwgPSByZXNwb25zZS51
cmw7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxvYWRlZFVybCIsICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1x
dWVyeS5waHA/dmFsdWU9Iik7CisgICAgICAgICAgICBmaWZ0aEZldGNoKCk7CisgICAgICAgIH0p
LmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKGVycm9yLm1l
c3NhZ2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmlmdGhGZXRjaCgpIHsKKyAg
ICAgICAgLy8gVGhpcyBzaG91bGQgdHJpZ2dlciBhIHJlZ3VsYXIsIHN1Y2Nlc3NmdWwgY2FjaGUg
aGl0LgorICAgICAgICBmZXRjaCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcmVzb3VyY2VzL2NhY2hlZC1wZXJtYW5lbnQtcmVkaXJlY3QucGhwIiwKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICBoZWFkZXJzOiB7CisgICAgICAgICAgICAgICAgICAg
ICJYLVdlYktpdCI6ICIxMjM0IiwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Cisg
ICAgICAgICkudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgbG9hZGVkVXJs
ID0gcmVzcG9uc2UudXJsOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsb2Fk
ZWRVcmwiLCAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVz
b3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPSIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJy
b3IpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAg
ICB9CisgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICBzZXRFbmFi
bGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNv
dXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRlZC4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NDYWNoZU1heEFnZUNhcCgwKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2Nr
aW5nKGZpcnN0RmV0Y2gpOworICAgICAgICB9KTsKKyAgICB9KTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40ODQ2MjBkNmQzMzEyMTE2NDUxYThhNTljODRiZTYxNzY0YzQ2
ZTMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0
ZWQgYnkgSmF2YVNjcmlwdCB3aXRoIG1heC1hZ2Ugb3IgZXhwaXJ5IGxvbmdlciB0aGFuIGEgd2Vl
ayBnZXQgY2FwcGVkIHRvIGEgd2Vlay4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgVGhlIHR3byBzaG9ydC1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3Jl
IHRoYW4gMTcyODMwIHNlY29uZHMuCitQQVNTIFRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRv
bid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gNjA0ODMwIHNlY29uZHMuCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1m
b3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1p
bi1qcy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyZmZkMDQxYWUzMmRlMjg2MDNiODE5MTAz
MGNlOGEzMDVkMjYyNmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWlu
LWpzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw4MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUt
dXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBk
ZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCB3aXRo
IG1heC1hZ2Ugb3IgZXhwaXJ5IGxvbmdlciB0aGFuIGEgd2VlayBnZXQgY2FwcGVkIHRvIGEgd2Vl
ay4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworCisgICAgaWYgKGludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxz
LnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworCisgICAgbGV0IHBhc3Nl
ZFRlc3RzID0gMDsKKyAgICBmdW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0
ZXIoY29va2llRGF0YSwgbWF4QWdlSW5TZWNvbmRzKSB7CisgICAgICAgIGxldCBub3cgPSBuZXcg
RGF0ZSgpOworICAgICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93Lmdl
dFRpbWUoKSArIChtYXhBZ2VJblNlY29uZHMgKiAxMDAwKTsKKworICAgICAgICBpZiAobWF4RXhw
aXJ5RGF0ZUluTWlsbGlzZWNvbmRzID4gY29va2llRGF0YVsiZXhwaXJlcyJdKQorICAgICAgICAg
ICAgKytwYXNzZWRUZXN0czsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgi
Q29va2llIG5hbWVkICIgKyBjb29raWVEYXRhWyJuYW1lIl0gKyAiIGV4cGlyZXMgaW4gbW9yZSB0
aGFuICIgKyBtYXhBZ2VJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgfQorCisgICAgY29u
c3QgdHdvRGF5c0luU2Vjb25kcyA9IDIgKiAyNCAqIDYwICogNjA7CisgICAgY29uc3Qgc2hvcnRM
aXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJzaG9ydExpdmVkQ29va2llTWF4QWdlIiwgbGlm
ZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdvRGF5c0luU2Vjb25kcyArICI7IiB9OworICAgIGRvY3Vt
ZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsg
c2hvcnRMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgIGNvbnN0
IHR3b0RheXNBc0V4cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3b0Rh
eXNJblNlY29uZHMpOworICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1l
IDogInNob3J0TGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdv
RGF5c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExp
dmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llRXhw
aXJlcy5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgIGNvbnN0IG9uZVdlZWtJblNlY29uZHMg
PSA3ICogMjQgKiA2MCAqIDYwOworICAgIGNvbnN0IHR3b1dlZWtzSW5TZWNvbmRzID0gMiAqIG9u
ZVdlZWtJblNlY29uZHM7CisgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1l
IDogImxvbmdMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b1dl
ZWtzSW5TZWNvbmRzICsgIjsiIH07CisgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29v
a2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZl
dGltZSArICIgcGF0aD0vIjsKKworICAgIGNvbnN0IHR3b1dlZWtzQXNFeHBpcmVzRGF0ZSA9IGNy
ZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d29XZWVrc0luU2Vjb25kcyk7CisgICAgY29uc3Qg
bG9uZ0xpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVz
IiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvV2Vla3NBc0V4cGlyZXNEYXRlICsgIjsiIH07
CisgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1m
b29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOwor
CisgICAgY29uc3Qgb3ZlclR3b0RheXNJblNlY29uZHMgPSB0d29EYXlzSW5TZWNvbmRzICsgMzA7
CisgICAgY29uc3Qgb3Zlck9uZVdlZWtJblNlY29uZHMgPSBvbmVXZWVrSW5TZWNvbmRzICsgMzA7
CisgICAgaWYgKGludGVybmFscykgeworICAgICAgICBsZXQgY29va2llcyA9IGludGVybmFscy5n
ZXRDb29raWVzKCk7CisgICAgICAgIGlmICghY29va2llcy5sZW5ndGgpCisgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAgICBmb3IgKGxldCBjb29raWUg
b2YgY29va2llcykgeworICAgICAgICAgICAgc3dpdGNoIChjb29raWUubmFtZSkgeworICAgICAg
ICAgICAgICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAg
ICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdv
RGF5c0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAg
ICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3b0RheXNJ
blNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBj
YXNlIGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICBjaGVj
a1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lV2Vla0luU2Vjb25k
cyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgbG9u
Z0xpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRD
b29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lV2Vla0luU2Vjb25kcyk7Cisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAg
ICAgICAgcmVzZXRDb29raWVzRm9yQ3VycmVudE9yaWdpbigpOworCisgICAgICAgIGlmIChwYXNz
ZWRUZXN0cyA9PT0gNCkgeworICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBzaG9ydC1s
aXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJUd29EYXlz
SW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3
byBsb25nLWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3Zl
ck9uZVdlZWtJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiQXQgbGVhc3Qgb25lIGNvb2tpZSdzIGV4cGlyeSBhdHRyaWJ1dGUg
d2FzIGJleW9uZCB0aGUgdGVzdCB0aHJlc2hvbGRzLiIpOworICAgIH0gZWxzZQorICAgICAgICB0
ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOworCisgICAgaWYgKGludGVybmFscykK
KyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNl
KTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9u
LXNhbWUtc2l0ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWlu
LWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTQ5NTQ1YTAzNGQzYWYyNTkwYzk5MzM3ZDIzMDVhOWJlZmRiYTQxMAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29y
YXRpb24tc2FtZS1zaXRlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitD
aGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgc2FtZS1zaXRl
IG5hdmlnYXRpb24gd2l0aCBsaW5rIGRlY29yYXRpb24gZG9uJ3QgZ2V0IGNhcHBlZCB0byAyNCBo
b3Vycy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHR3byBsb25n
LWxpdmVkIGNvb2tpZXMgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA4NjQzMCBzZWNvbmRzLgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQt
bGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1z
aXRlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1k
ZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkMDk5OTFiM2Zh
OGFjZDQ4MTk5YTg1MzIzNGQyNWFiMjg5MTVkYzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZv
ci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFz
ZS5odG1sCkBAIC0wLDAgKzEsODYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgor
PHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkg
SmF2YVNjcmlwdCBhZnRlciBhIHNhbWUtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBkZWNvcmF0
aW9uIGRvbid0IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuIik7CisgICAganNUZXN0SXNBc3luYyA9
IHRydWU7CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29va2llcygpIHsKKyAgICAgICAgbGV0IHBhc3Nl
ZFRlc3RzID0gMDsKKworICAgICAgICBmdW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzRXhwaXJl
QWZ0ZXIoY29va2llRGF0YSwgbWF4QWdlSW5TZWNvbmRzKSB7CisgICAgICAgICAgICBsZXQgbm93
ID0gbmV3IERhdGUoKTsKKyAgICAgICAgICAgIGxldCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29u
ZHMgPSBub3cuZ2V0VGltZSgpICsgKG1heEFnZUluU2Vjb25kcyAqIDEwMDApOworCisgICAgICAg
ICAgICBpZiAobWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzIDwgY29va2llRGF0YVsiZXhwaXJl
cyJdKQorICAgICAgICAgICAgICAgICsrcGFzc2VkVGVzdHM7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5hbWVkICIgKyBjb29raWVEYXRhWyJu
YW1lIl0gKyAiIGV4cGlyZXMgaW4gbGVzcyB0aGFuICIgKyBtYXhBZ2VJblNlY29uZHMgKyAiIHNl
Y29uZHMuIik7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBvbmVEYXlJblNlY29uZHMgPSAy
NCAqIDYwICogNjA7CisgICAgICAgIGNvbnN0IHR3b0RheXNJblNlY29uZHMgPSAyICogb25lRGF5
SW5TZWNvbmRzOworICAgICAgICBjb25zdCBsb25nTGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUg
OiAibG9uZ0xpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdvRGF5
c0luU2Vjb25kcyArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRD
b29raWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llTWF4QWdlLmxp
ZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3b0RheXNBc0V4cGlyZXNEYXRl
ID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3b0RheXNJblNlY29uZHMpOworICAgICAg
ICBjb25zdCBsb25nTGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tp
ZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d29EYXlzQXNFeHBpcmVzRGF0ZSAr
ICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVFeHBpcmVz
Lm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAi
IHBhdGg9LyI7CisKKyAgICAgICAgY29uc3Qgb3Zlck9uZURheUluU2Vjb25kcyA9IG9uZURheUlu
U2Vjb25kcyArIDMwOworICAgICAgICBpZiAoaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBsZXQg
Y29va2llcyA9IGludGVybmFscy5nZXRDb29raWVzKCk7CisgICAgICAgICAgICBpZiAoIWNvb2tp
ZXMubGVuZ3RoKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGNvb2tpZXMgZm91bmQu
Iik7CisgICAgICAgICAgICBmb3IgKGxldCBjb29raWUgb2YgY29va2llcykgeworICAgICAgICAg
ICAgICAgIHN3aXRjaCAoY29va2llLm5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBs
b25nTGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNr
VGhhdENvb2tpZURvZXNFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2Ug
bG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hl
Y2tUaGF0Q29va2llRG9lc0V4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7
CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIHJlc2V0Q29va2llc0ZvckN1cnJlbnRPcmlnaW4oKTsK
KworICAgICAgICAgICAgaWYgKHBhc3NlZFRlc3RzID09PSAyKSB7CisgICAgICAgICAgICAgICAg
dGVzdFBhc3NlZCgiVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZXhwaXJlIGFmdGVyIG1vcmUg
dGhhbiAiICsgb3Zlck9uZURheUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkF0IGxlYXN0IG9uZSBjb29raWUn
cyBleHBpcnkgYXR0cmlidXRlIHdhcyBiZWxvdyB0aGUgdGVzdCB0aHJlc2hvbGRzLiIpOworICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGludGVybmFscyBvYmplY3Qu
Iik7CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBuYXZpZ2F0ZUNyb3NzT3JpZ2luKCkgeworICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5ocmVmID0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gKyAiL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgt
bGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS5odG1sP2xpbms9ZGVjb3JhdGlvbiNmcmFnbWVudCI7
CisgICAgfQorCisgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIjsKKyAgICBjb25zdCBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiA9ICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1
bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luICYmIGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggIT09ICIjZnJhZ21lbnQiKSB7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4sIHRydWUsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4pKQorICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFs
ZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3Rp
Y3NVcGRhdGVDb29raWVCbG9ja2luZyhuYXZpZ2F0ZUNyb3NzT3JpZ2luKTsKKyAgICAgICAgICAg
ICAgICB9KTsKKworICAgICAgICAgICAgfSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICB0ZXN0Q29va2llcygpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1m
cmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0
aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVu
dC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdiYWQwMzJjNmYy
MjQ1NzNhMzM1ZDNmNzA0MTlkY2I0YmU0M2ExNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9y
LWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291
cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitDaGVjayB0aGF0IGNv
b2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9u
IHdpdGggbGluayBmcmFnbWVudCBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9u
J3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA0MzIzMCBzZWNvbmRzLgorUEFTUyBUaGUgdHdvIGxv
bmctbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDg2NDMwIHNlY29u
ZHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQt
ZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFi
YXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNWM4NGZiODk0Zjk5YjMyN2MxNzczZTIwMDdkYzEwZDkxYzJh
ODc5OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1s
aW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAs
MCArMSwxMDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAg
ICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBh
ZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgZnJhZ21lbnQgZ2V0IGNhcHBl
ZCB0byAyNCBob3Vycy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0
aW9uIHRlc3RDb29raWVzKCkgeworICAgICAgICBsZXQgcGFzc2VkVGVzdHMgPSAwOworICAgICAg
ICBmdW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llRGF0YSwg
bWF4QWdlSW5TZWNvbmRzKSB7CisgICAgICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKKyAg
ICAgICAgICAgIGxldCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPSBub3cuZ2V0VGltZSgp
ICsgKG1heEFnZUluU2Vjb25kcyAqIDEwMDApOworCisgICAgICAgICAgICBpZiAobWF4RXhwaXJ5
RGF0ZUluTWlsbGlzZWNvbmRzID4gY29va2llRGF0YVsiZXhwaXJlcyJdKQorICAgICAgICAgICAg
ICAgICsrcGFzc2VkVGVzdHM7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiQ29va2llIG5hbWVkICIgKyBjb29raWVEYXRhWyJuYW1lIl0gKyAiIGV4cGlyZXMg
aW4gbW9yZSB0aGFuICIgKyBtYXhBZ2VJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAg
IH0KKworICAgICAgICBjb25zdCB0d2VsdmVIb3Vyc0luU2Vjb25kcyA9IDEyICogNjAgKiA2MDsK
KyAgICAgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJzaG9ydExp
dmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdlbHZlSG91cnNJblNl
Y29uZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tp
ZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llTWF4QWdlLmxpZmV0
aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0
ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d2VsdmVIb3Vyc0luU2Vjb25kcyk7Cisg
ICAgICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogInNob3J0TGl2
ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdlbHZlSG91cnNBc0V4
cGlyZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRD
b29raWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVFeHBpcmVz
LmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG9uZURheUluU2Vjb25kcyA9
IDIgKiB0d2VsdmVIb3Vyc0luU2Vjb25kczsKKyAgICAgICAgY29uc3QgdHdvRGF5c0luU2Vjb25k
cyA9IDIgKiBvbmVEYXlJblNlY29uZHM7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZU1h
eEFnZSA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgt
QWdlPSIgKyB0d29EYXlzSW5TZWNvbmRzICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tp
ZSA9IGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRD
b29raWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdvRGF5
c0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdvRGF5c0luU2Vj
b25kcyk7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAi
bG9uZ0xpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3b0RheXNB
c0V4cGlyZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZl
ZENvb2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llRXhwaXJl
cy5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCBvdmVyVHdlbHZlSG91cnNJ
blNlY29uZHMgPSB0d2VsdmVIb3Vyc0luU2Vjb25kcyArIDMwOworICAgICAgICBjb25zdCBvdmVy
T25lRGF5SW5TZWNvbmRzID0gb25lRGF5SW5TZWNvbmRzICsgMzA7CisgICAgICAgIGlmIChpbnRl
cm5hbHMpIHsKKyAgICAgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMo
KTsKKyAgICAgICAgICAgIGlmICghY29va2llcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiTm8gY29va2llcyBmb3VuZC4iKTsKKyAgICAgICAgICAgIGZvciAobGV0IGNvb2tp
ZSBvZiBjb29raWVzKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjb29raWUubmFtZSkgewor
ICAgICAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihj
b29raWUsIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBzaG9ydExpdmVkQ29va2llRXhwaXJl
cy5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4
cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENv
b2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2ll
RG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2
ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRD
b29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgcmVzZXRDb29raWVzRm9yQ3VycmVudE9yaWdpbigpOworCisg
ICAgICAgICAgICBpZiAocGFzc2VkVGVzdHMgPT09IDQpIHsKKyAgICAgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1v
cmUgdGhhbiAiICsgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAg
ICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0
IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJPbmVEYXlJblNlY29uZHMgKyAiIHNlY29u
ZHMuIik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJB
dCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJpYnV0ZSB3YXMgYmV5b25kIHRoZSB0ZXN0
IHRocmVzaG9sZHMuIik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgi
Tm8gaW50ZXJuYWxzIG9iamVjdC4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG5hdmlnYXRlQ3Jvc3NPcmln
aW4oKSB7CisgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbk9yaWdp
biArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWwj
bGluaz1mcmFnbWVudCI7CisgICAgfQorCisgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCBwcmV2YWxlbnRSZXNvdXJjZU9yaWdp
biA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Cisg
ICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHByZXZhbGVudFJlc291cmNl
T3JpZ2luKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUp
OworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJl
dmFsZW50UmVzb3VyY2VPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
ICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFs
ZW50UmVzb3VyY2VPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhuYXZp
Z2F0ZUNyb3NzT3JpZ2luKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0Q29va2llcygpOworICAgICAgICB9
CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZv
ci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2
YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNl
dC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291
cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTk4ZGM4ZjkwZTJkYTFiMTk4
M2I0OGRjMTg2ZWFkN2E2OTY1ZDdhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2ll
LXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJl
c291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitDaGVjayB0aGF0
IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0
aW9uIHdpdGggbGluayBxdWVyeSBhbmQgZnJhZ21lbnQgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHR3byBzaG9ydC1saXZl
ZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gNDMyMzAgc2Vjb25kcy4KK1BB
U1MgVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhh
biA4NjQzMCBzZWNvbmRzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1s
aW5rLXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBl
ZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdt
ZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzU5
MWViNGU5NThmYjFiNTBkYjdmODIyYTIwMGVjY2M2NzM4MjQxNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlm
ZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWFuZC1mcmFnbWVudC1m
cm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTAxIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2Nvb2tp
ZXMvcmVzb3VyY2VzL2Nvb2tpZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InNldFRpbWVvdXQoJ3J1blRlc3QoKScsIDApIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24o
IkNoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1z
aXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIHF1ZXJ5IGFuZCBmcmFnbWVudCBnZXQgY2FwcGVkIHRv
IDI0IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rpb24g
dGVzdENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7CisgICAgICAgIGZ1
bmN0aW9uIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWVEYXRhLCBtYXhB
Z2VJblNlY29uZHMpIHsKKyAgICAgICAgICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpOworICAgICAg
ICAgICAgbGV0IG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA9IG5vdy5nZXRUaW1lKCkgKyAo
bWF4QWdlSW5TZWNvbmRzICogMTAwMCk7CisKKyAgICAgICAgICAgIGlmIChtYXhFeHBpcnlEYXRl
SW5NaWxsaXNlY29uZHMgPiBjb29raWVEYXRhWyJleHBpcmVzIl0pCisgICAgICAgICAgICAgICAg
KytwYXNzZWRUZXN0czsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJDb29raWUgbmFtZWQgIiArIGNvb2tpZURhdGFbIm5hbWUiXSArICIgZXhwaXJlcyBpbiBt
b3JlIHRoYW4gIiArIG1heEFnZUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgfQor
CisgICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzID0gMTIgKiA2MCAqIDYwOworICAg
ICAgICBjb25zdCBzaG9ydExpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogInNob3J0TGl2ZWRD
b29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d2VsdmVIb3Vyc0luU2Vjb25k
cyArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29va2llTWF4
QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUg
KyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdlbHZlSG91cnNBc0V4cGlyZXNEYXRlID0g
Y3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAg
ICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAic2hvcnRMaXZlZENv
b2tpZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d2VsdmVIb3Vyc0FzRXhwaXJl
c0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tp
ZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubGlm
ZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0gMiAq
IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzOworICAgICAgICBjb25zdCB0d29EYXlzSW5TZWNvbmRzID0g
MiAqIG9uZURheUluU2Vjb25kczsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdl
ID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9
IiArIHR3b0RheXNJblNlY29uZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0g
bG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tp
ZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCB0d29EYXlzQXNF
eHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRz
KTsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25n
TGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhw
aXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29v
a2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxp
ZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG92ZXJUd2VsdmVIb3Vyc0luU2Vj
b25kcyA9IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgMzA7CisgICAgICAgIGNvbnN0IG92ZXJPbmVE
YXlJblNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMgKyAzMDsKKyAgICAgICAgaWYgKGludGVybmFs
cykgeworICAgICAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOwor
ICAgICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAgICAgICAgZm9yIChsZXQgY29va2llIG9m
IGNvb2tpZXMpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAg
ICAgICAgICAgICAgICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAg
ICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tp
ZSwgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLm5h
bWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJl
QWZ0ZXIoY29va2llLCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMpOworICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2ll
TWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2Vz
Tm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENv
b2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tp
ZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fQorCisgICAgICAgICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAg
ICAgICAgIGlmIChwYXNzZWRUZXN0cyA9PT0gNCkgeworICAgICAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIlRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0
aGFuICIgKyBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhw
aXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3Zlck9uZURheUluU2Vjb25kcyArICIgc2Vjb25kcy4i
KTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkF0IGxl
YXN0IG9uZSBjb29raWUncyBleHBpcnkgYXR0cmlidXRlIHdhcyBiZXlvbmQgdGhlIHRlc3QgdGhy
ZXNob2xkcy4iKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBp
bnRlcm5hbHMgb2JqZWN0LiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdpbigp
IHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsg
Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1p
bi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNl
Lmh0bWw/bGluaz1xdWVyeSNsaW5rPWZyYWdtZW50IjsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0
aW5hdGlvbk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHByZXZh
bGVudFJlc291cmNlT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rp
b24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0g
cHJldmFsZW50UmVzb3VyY2VPcmlnaW4pIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNv
b2tpZUJsb2NraW5nKG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOwor
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RDb29r
aWVzKCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
YXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20t
cHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tp
ZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDVkZDE2YzJlZTAxMDgwZTNjMWYxYjQwMjA2
YjY2YTgwMmUwYWMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1q
cy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0NoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEph
dmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIHF1ZXJ5IGdl
dCBjYXBwZWQgdG8gMjQgaG91cnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIFRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0
aGFuIDQzMjMwIHNlY29uZHMuCitQQVNTIFRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0
IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gODY0MzAgc2Vjb25kcy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1j
b29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1k
YXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnkt
ZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNWYwOTc2
YjI0ODY2NjY4OWMxODFhYTU5NWYwYzE4ZmY2YWYwNTBiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGlt
ZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVz
b3VyY2UtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDEwMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29r
aWUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0
aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5U
ZXN0KCknLCAwKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IGNvb2tp
ZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdp
dGggbGluayBxdWVyeSBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5
bmMgPSB0cnVlOworCisgICAgZnVuY3Rpb24gdGVzdENvb2tpZXMoKSB7CisgICAgICAgIGxldCBw
YXNzZWRUZXN0cyA9IDA7CisgICAgICAgIGZ1bmN0aW9uIGNoZWNrVGhhdENvb2tpZURvZXNOb3RF
eHBpcmVBZnRlcihjb29raWVEYXRhLCBtYXhBZ2VJblNlY29uZHMpIHsKKyAgICAgICAgICAgIGxl
dCBub3cgPSBuZXcgRGF0ZSgpOworICAgICAgICAgICAgbGV0IG1heEV4cGlyeURhdGVJbk1pbGxp
c2Vjb25kcyA9IG5vdy5nZXRUaW1lKCkgKyAobWF4QWdlSW5TZWNvbmRzICogMTAwMCk7CisKKyAg
ICAgICAgICAgIGlmIChtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPiBjb29raWVEYXRhWyJl
eHBpcmVzIl0pCisgICAgICAgICAgICAgICAgKytwYXNzZWRUZXN0czsKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgbmFtZWQgIiArIGNvb2tpZURh
dGFbIm5hbWUiXSArICIgZXhwaXJlcyBpbiBtb3JlIHRoYW4gIiArIG1heEFnZUluU2Vjb25kcyAr
ICIgc2Vjb25kcy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzSW5T
ZWNvbmRzID0gMTIgKiA2MCAqIDYwOworICAgICAgICBjb25zdCBzaG9ydExpdmVkQ29va2llTWF4
QWdlID0geyBuYW1lIDogInNob3J0TGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgt
QWdlPSIgKyB0d2VsdmVIb3Vyc0luU2Vjb25kcyArICI7IiB9OworICAgICAgICBkb2N1bWVudC5j
b29raWUgPSBzaG9ydExpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0
TGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3Qg
dHdlbHZlSG91cnNBc0V4cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3
ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZUV4cGly
ZXMgPSB7IG5hbWUgOiAic2hvcnRMaXZlZENvb2tpZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBp
cmVzPSIgKyB0d2VsdmVIb3Vyc0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1l
bnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsg
c2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAg
Y29uc3Qgb25lRGF5SW5TZWNvbmRzID0gMiAqIHR3ZWx2ZUhvdXJzSW5TZWNvbmRzOworICAgICAg
ICBjb25zdCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIG9uZURheUluU2Vjb25kczsKKyAgICAgICAg
Y29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZU1h
eEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b0RheXNJblNlY29uZHMgKyAiOyIgfTsK
KyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAi
PWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsK
KworICAgICAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRl
RnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29v
a2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUg
OiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9j
dW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIg
KyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAg
IGNvbnN0IG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyA9IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsg
MzA7CisgICAgICAgIGNvbnN0IG92ZXJPbmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMg
KyAzMDsKKyAgICAgICAgaWYgKGludGVybmFscykgeworICAgICAgICAgICAgbGV0IGNvb2tpZXMg
PSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0
aCkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAg
ICAgICAgICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAgICAgICBz
d2l0Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2Ugc2hvcnRMaXZl
ZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29v
a2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNl
IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBj
aGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdlbHZlSG91cnNJ
blNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAg
ICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25l
RGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92
ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXNldENvb2tpZXNG
b3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAgICAgIGlmIChwYXNzZWRUZXN0cyA9PT0gNCkg
eworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2ll
cyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBvdmVyVHdlbHZlSG91cnNJblNlY29u
ZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBs
b25nLWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3Zlck9u
ZURheUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkF0IGxlYXN0IG9uZSBjb29raWUncyBleHBpcnkgYXR0cmli
dXRlIHdhcyBiZXlvbmQgdGhlIHRlc3QgdGhyZXNob2xkcy4iKTsKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOworICAgICAgICAK
KyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBuYXZpZ2F0ZUNyb3NzT3JpZ2luKCkgeworICAgICAgICBkb2N1bWVudC5s
b2NhdGlvbi5ocmVmID0gZGVzdGluYXRpb25PcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1m
cm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sP2xpbms9cXVlcnkiOworICAgIH0KKworICAgIGNv
bnN0IGRlc3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29u
c3QgcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAg
ICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3Jp
Z2luID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikgeworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
dHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luLCB0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
VXBkYXRlQ29va2llQmxvY2tpbmcobmF2aWdhdGVDcm9zc09yaWdpbik7CisgICAgICAgICAgICAg
ICAgfSk7CisKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
dGVzdENvb2tpZXMoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmst
ZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxp
ZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGhvdXQtbGluay1kZWNvcmF0aW9uLWZyb20t
cHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYmY2
NDlhNTdlMTM2NGMwNjA2NDU2OTQxMzA0NTQxMTM3NDU4MzAxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXBy
ZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAor
Q2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBhZnRlciBhIGNyb3NzLXNp
dGUgbmF2aWdhdGlvbiB3aXRob3V0IGxpbmsgZGVjb3JhdGlvbiBkb24ndCBnZXQgY2FwcGVkIHRv
IDI0IGhvdXJzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgdHdv
IGxvbmctbGl2ZWQgY29va2llcyBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDg2NDMwIHNlY29uZHMu
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nh
cHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlv
bi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2ll
LXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJj
ZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlNDdiNDk0ODdlODk2NzI5ZDBhNGI3NzcwYjUx
ZDc4M2Y0ZThjZjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LXdpdGhvdXQtbGluay1kZWNvcmF0aW9uLWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
Lmh0bWwKQEAgLTAsMCArMSw4NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKSI+Cis8
c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBK
YXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGhvdXQgbGluayBkZWNv
cmF0aW9uIGRvbid0IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuIik7CisgICAganNUZXN0SXNBc3lu
YyA9IHRydWU7CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29va2llcygpIHsKKyAgICAgICAgbGV0IHBh
c3NlZFRlc3RzID0gMDsKKworICAgICAgICBmdW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzRXhw
aXJlQWZ0ZXIoY29va2llRGF0YSwgbWF4QWdlSW5TZWNvbmRzKSB7CisgICAgICAgICAgICBsZXQg
bm93ID0gbmV3IERhdGUoKTsKKyAgICAgICAgICAgIGxldCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNl
Y29uZHMgPSBub3cuZ2V0VGltZSgpICsgKG1heEFnZUluU2Vjb25kcyAqIDEwMDApOworCisgICAg
ICAgICAgICBpZiAobWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzIDwgY29va2llRGF0YVsiZXhw
aXJlcyJdKQorICAgICAgICAgICAgICAgICsrcGFzc2VkVGVzdHM7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5hbWVkICIgKyBjb29raWVEYXRh
WyJuYW1lIl0gKyAiIGV4cGlyZXMgaW4gbGVzcyB0aGFuICIgKyBtYXhBZ2VJblNlY29uZHMgKyAi
IHNlY29uZHMuIik7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBvbmVEYXlJblNlY29uZHMg
PSAyNCAqIDYwICogNjA7CisgICAgICAgIGNvbnN0IHR3b0RheXNJblNlY29uZHMgPSAyICogb25l
RGF5SW5TZWNvbmRzOworICAgICAgICBjb25zdCBsb25nTGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5h
bWUgOiAibG9uZ0xpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdv
RGF5c0luU2Vjb25kcyArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2
ZWRDb29raWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llTWF4QWdl
LmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3b0RheXNBc0V4cGlyZXNE
YXRlID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3b0RheXNJblNlY29uZHMpOworICAg
ICAgICBjb25zdCBsb25nTGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogImxvbmdMaXZlZENv
b2tpZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d29EYXlzQXNFeHBpcmVzRGF0
ZSArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVFeHBp
cmVzLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUg
KyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3Qgb3Zlck9uZURheUluU2Vjb25kcyA9IG9uZURh
eUluU2Vjb25kcyArIDMwOworICAgICAgICBpZiAoaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBs
ZXQgY29va2llcyA9IGludGVybmFscy5nZXRDb29raWVzKCk7CisgICAgICAgICAgICBpZiAoIWNv
b2tpZXMubGVuZ3RoKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGNvb2tpZXMgZm91
bmQuIik7CisgICAgICAgICAgICBmb3IgKGxldCBjb29raWUgb2YgY29va2llcykgeworICAgICAg
ICAgICAgICAgIHN3aXRjaCAoY29va2llLm5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBsb25nTGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNo
ZWNrVGhhdENvb2tpZURvZXNFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMp
OworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNh
c2UgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAg
Y2hlY2tUaGF0Q29va2llRG9lc0V4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25k
cyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJlc2V0Q29va2llc0ZvckN1cnJlbnRPcmlnaW4o
KTsKKworICAgICAgICAgICAgaWYgKHBhc3NlZFRlc3RzID09PSAyKSB7CisgICAgICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZXhwaXJlIGFmdGVyIG1v
cmUgdGhhbiAiICsgb3Zlck9uZURheUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkF0IGxlYXN0IG9uZSBjb29r
aWUncyBleHBpcnkgYXR0cmlidXRlIHdhcyBiZWxvdyB0aGUgdGVzdCB0aHJlc2hvbGRzLiIpOwor
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGludGVybmFscyBvYmpl
Y3QuIik7CisgICAgICAgICAgICAKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBuYXZpZ2F0ZUNyb3NzT3JpZ2luKCkg
eworICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gZGVzdGluYXRpb25PcmlnaW4gKyAi
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWlu
LWpzLXdpdGhvdXQtbGluay1kZWNvcmF0aW9uLWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWwi
OworICAgIH0KKworICAgIGNvbnN0IGRlc3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCI7CisgICAgY29uc3QgcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwIjsKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9j
dW1lbnQubG9jYXRpb24ub3JpZ2luID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNl
T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3Jp
Z2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBn
ZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcobmF2aWdhdGVDcm9zc09yaWdp
bik7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgdGVzdENvb2tpZXMoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQt
b24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVu
dC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMGMyNThiOGUwMDVkMzU1NDE4MmFmMDZkNDgyNTgzYWU3N2U1YTEzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVk
IGFzIHByZXZhbGVudCByZXNvdXJjZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFz
ZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFz
ZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlMDNmZDg3
MTJlZjllZGM5YjE4NjJmNjM2ZDFlNzRlYTY4OGQ4NDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9u
LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKQEAgLTAs
MCArMSw1MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAg
ICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBDbGFzc2lmaWNh
dGlvbiBCYXNlZCBvbiBNaXhlZCBTdGF0aXN0aWNzPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOwor
ICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90
ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAw
L3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgw
MDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6
ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkp
CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJl
c291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGRp
ZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1
ZSk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
c3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZh
bGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2lu
MSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVy
VG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhz
dGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworCisgICAgICAgICAgICB0ZXN0UnVubmVy
Lmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0
KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NB
bmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQu
bG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3
aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2Uo
dHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRl
cm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHJ1
blRlc3RSdW5uZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZy
YW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQt
b24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yMGMyNThiOGUwMDVkMzU1NDE4MmFmMDZkNDgyNTgzYWU3N2U1YTEzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVy
LXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBI
b3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1l
LW9yaWdpbnMtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFt
ZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4NTQw
OTA4ZWQ4MGQxMzRlNzM4MDQ5NmEyNzUwNWFkMDA1Yzk3YmEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
bm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMt
ZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDUzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxh
bmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+
VGVzdHMgZm9yIENsYXNzaWZpY2F0aW9uIEJhc2VkIG9uIFN1YiBGcmFtZSBVbmRlciBUb3AgRnJh
bWUgT3JpZ2luczwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25z
dCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNz
VXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9w
RnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0
b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0
IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisKKyAgICBm
dW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZh
aWxlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVk
IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3Rp
Y3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1
blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3Rp
ZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworCisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFt
ZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVP
cmlnaW4zKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNj
YW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0
ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlz
dGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1
bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVy
ICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRh
YmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAg
IGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAg
ICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVy
LXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50
LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMGMyNThiOGUwMDVkMzU1NDE4MmFmMDZkNDgyNTgzYWU3
N2U1YTEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVz
b3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCitQQVNTIEhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVu
ZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNl
ZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjE2MTEyMGE4NTkzMTIxMTQwNzJkNDcyOWIzNmJhMGExNzdmM2RjNDEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10
b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRG
LTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gU3VicmVz
b3VyY2UgVW5kZXIgVG9wIEZyYW1lIE9yaWdpbnM8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIv
anMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7Cisg
ICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3Rl
bXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAv
dGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAw
MC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291
cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGRpZCBu
b3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHRl
c3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7
CisgCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1
YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdp
bjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRl
clRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxs
YmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQ
cm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRv
dy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0
cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJl
c291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1w
cmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBjMjU4YjhlMDA1ZDM1NTQxODJhZjA2ZDQ4MjU4
M2FlNzdlNWExMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1
YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCitQQVNTIEhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVu
aXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9u
LXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xYTVhNWQ0YmRhNGU0ZmRlZWQxODZhM2YwODgxMmZiOGUyODZkNTkwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0
cy10by1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0
aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gU3VicmVzb3VyY2UgVW5pcXVl
IFJlZGlyZWN0cyBUbzwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBj
b25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0
aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3Qg
dG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25z
dCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworCisgICAg
ZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmll
ZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0
aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwg
ZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4i
KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3Rh
dGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5p
bnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7
CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5k
RGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50Lmxv
Y2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2lu
ZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRy
dWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJu
YWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICBydW5U
ZXN0UnVubmVyVGVzdCgpOworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKGZh
bHNlKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1w
cmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjMyZGQ2OWY5NDE5ZjUxOTg5NTdmMDkwOGRkNjc0ZDY4NDM2Y2I5YzcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3Mt
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBw
cmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4
ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1z
dGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg5NzMxOWFiMGZiMTAwMDU1YTkz
NWQ0YTk1MmIyYWI5OTQ0ODMzNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0i
VVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gTWl4
ZWQgU3RhdGlzdGljczwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBj
b25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0
aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3Qg
dG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25z
dCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNv
bnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisgICAg
Y29uc3QgdG9wRnJhbWVPcmlnaW40ID0gImh0dHA6Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIjsKKwor
ICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAg
dGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNv
dXJjZS4iKTsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBn
b3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0VuYWJsZWQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29u
c2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJU
ZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5E
YXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworIAorICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRp
ZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3Rh
dGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BG
cmFtZU9yaWdpbjQpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJy
ZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4y
KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJU
b3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lu
KHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJs
LCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2lu
MSk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0
YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVubmVy
LnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0p
OworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJU
ZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5z
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmRkNjlmOTQxOWY1MTk4OTU3ZjA5
MDhkZDY3NGQ2ODQzNmNiOWM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1v
bi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFt
ZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11
bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlYTc2MjAw
ZGEyZmZiMWEwMDU1YThhMTk4YWUyNzgzZTJlYjNmNTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJl
dmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFz
ZS5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4i
PgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBm
b3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gU3ViIEZyYW1lIFVuZGVyIFRvcCBGcmFtZSBPcmln
aW5zPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RV
bmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAi
aHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9y
aWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1l
T3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJh
bWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BG
cmFtZU9yaWdpbjQgPSAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rp
b24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwor
ICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uo
c3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lm
aWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIp
OworCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChm
YWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3Rh
dGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRz
V2VyZVNjYW5uZWQodHJ1ZSk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlz
dGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBz
ZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmws
IHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NT
dWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4y
KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BG
cmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRp
c3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5z
dGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOwor
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERh
dGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2Nh
dGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRv
dy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFs
cy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVuVGVz
dFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9u
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2Ut
cmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGRk
Y2U1YjMxNGNkN2QyZDBkZWM0OGI2ZjlmOWUwZWNjYWI4MzA5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3RzIGZvciBjbGFzc2lmaWNhdGlv
biBiYXNlZCBvbiBzdWJyZXNvdXJjZSByZWRpcmVjdCBjb2xsdXNpb24uCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIENvbGx1ZGluZyBob3N0IDEgZ290IHNldCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBob3N0IDIgZ290IHNldCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBob3N0IDMgZ290IHNldCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBob3N0IDQgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuCitQQVNTIENvbGx1ZGluZyBsb2NhbGhvc3QgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UgYWZ0ZXIgYWN0dWFsIHN1YiBmcmFtZSByZWRpcmVjdC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50
LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJh
c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lNGJmYjJmMjU3N2NiY2JkZjNjMWY0YzE0YTQ2YTlhYWQ2MTZm
N2FlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1y
ZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDcxIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVU
Ri04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZvciBjbGFz
c2lmaWNhdGlvbiBiYXNlZCBvbiBzdWJyZXNvdXJjZSByZWRpcmVjdCBjb2xsdXNpb24uIik7Cisg
ICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEy
Ny4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9z
dFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3Qgc3VicmVzb3VyY2VPcmlnaW4xID0gImh0
dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCBzdWJyZXNvdXJjZU9yaWdpbjIg
PSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHN1YnJlc291cmNlT3Jp
Z2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisgICAgY29uc3Qgc3VicmVzb3Vy
Y2VPcmlnaW40ID0gImh0dHA6Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVy
KCk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVS
ZWRpcmVjdEZyb20oc3RhdGlzdGljc1VybCwgc3VicmVzb3VyY2VPcmlnaW4xKTsKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oc3Vi
cmVzb3VyY2VPcmlnaW4xLCBzdWJyZXNvdXJjZU9yaWdpbjIpOworICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShzdWJyZXNvdXJjZU9y
aWdpbjIsIHN1YnJlc291cmNlT3JpZ2luMyk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKHN1YnJlc291cmNlT3JpZ2luMywgc3Vi
cmVzb3VyY2VPcmlnaW40KTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGV4cGxpY2l0eSBzZXQg
ZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN1YnJlc291cmNlT3Jp
Z2luMSkpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgMSBnb3Qg
c2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjEpKQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDEgZ290IGNsYXNzaWZp
ZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjIpKQor
ICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDIgZ290IHNldCBhcyBw
cmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4yKSkKKyAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCAyIGdvdCBjbGFzc2lmaWVkIGFzIHZl
cnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4zKSkKKyAgICAgICAg
ICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCAzIGdvdCBzZXQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVy
eVByZXZhbGVudFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luMykpCisgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhvc3QgMyBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZh
bGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luNCkpCisgICAgICAgICAgICAgICAg
dGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgNCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJj
ZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxl
bnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjQpKQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkNvbGx1ZGluZyBob3N0IDQgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikpCisgICAgICAgICAgICAgICAgdGVz
dFBhc3NlZCgiQ29sbHVkaW5nIGxvY2FsaG9zdCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJj
ZSBhZnRlciBhY3R1YWwgc3ViIGZyYW1lIHJlZGlyZWN0LiIpOworICAgICAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgbG9jYWxo
b3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICAgICAgCisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9
PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxz
KSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2Us
IGZ1bmN0aW9uKCnCoHsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJj
ZS4iKTsKKyAgICAgICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQub25sb2Fk
ID0gcnVuVGVzdDsKKyAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8v
bG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3Qu
cGhwP3JlZGlyZWN0VG89aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvb25jbGljay5odG1sIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGlmcmFtZUVsZW1lbnQpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0K
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNl
ZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxl
bnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4ZmNiZDhkOGY2ZDA1ZmM0OTRk
NGVlZGRjZDljYjVlYmRkZTBjMzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHN1
YnJlc291cmNlIHJlZGlyZWN0IHRvIG90aGVyIHByZXZhbGVudC4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJj
ZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXBy
ZXZhbGVudC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1y
ZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTgwYTU5ZjY5
YWUwZTcwOWU1MDQwZWJmMzUwNzcyYTZkZjhiZjRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZh
bGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2Uu
aHRtbApAQCAtMCwwICsxLDUxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4K
KzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cisg
ICAgZGVzY3JpcHRpb24oIlRlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiBzdWJyZXNv
dXJjZSByZWRpcmVjdCB0byBvdGhlciBwcmV2YWxlbnQuIik7CisgICAganNUZXN0SXNBc3luYyA9
IHRydWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAg
ICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVt
cCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90
ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZh
bGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZSBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQg
YXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgCisgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVu
VGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UodG9wRnJhbWVPcmlnaW4xLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbjEpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxT
dGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29y
ZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhv
c3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVy
bmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5l
ZCh0cnVlKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0
IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgIHJ1blRl
c3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3Vy
Y2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZh
bGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJkZDY5Zjk0MTlmNTE5ODk1N2YwOTA4ZGQ2NzRk
Njg0MzZjYjljNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVz
b3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9y
aWdpbnMtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5k
ZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDAxZWE2YmMy
NDkzNzU5MmYwZTg5Njc2MTVjOTljNWM4ZGMzZmE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZh
bGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFz
ZS5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4i
PgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBm
b3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gU3VicmVzb3VyY2UgVW5kZXIgVG9wIEZyYW1lIE9y
aWdpbnM8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9z
dFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9
ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1l
T3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJh
bWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BG
cmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRv
cEZyYW1lT3JpZ2luNCA9ICJodHRwOi8vMTI3LjAuMC41OjgwMDAvdGVtcCI7CisKKyAgICBmdW5j
dGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJj
ZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZ290IGNsYXNz
aWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVk
KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRT
dGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29y
ZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3Rh
dGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdl
dCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJh
bWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291
cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZy
YW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhj
b21wbGV0ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNz
U3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlm
IChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0
UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJ
VFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cisg
ICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsK
KyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5p
cXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjMyZGQ2OWY5NDE5ZjUxOTg5NTdmMDkwOGRkNjc0ZDY4NDM2Y2I5YzcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1y
ZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhvc3QgY2xh
c3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQt
YmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFi
YXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhmN2YxMzkxYzYyMWRlODY2ZTFiZDIzYjAxYmRhMzMyZDBk
OWYzNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2Ut
dW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0i
VVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gU3Vi
cmVzb3VyY2UgVW5pcXVlIFJlZGlyZWN0cyBUbzwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9q
cy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAg
ICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVt
cCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90
ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAw
L3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40Ojgw
MDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW40ID0gImh0dHA6Ly8xMjcuMC4wLjU6
ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwp
KQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFz
IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVz
dEZhaWxlZCgiSG9zdCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVk
IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NO
b3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworIAorICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBm
YWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIp
OworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1
ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0
aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZy
YW1lT3JpZ2luMyk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW40KTsKKwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jk
c0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAg
fQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYg
d2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVu
bmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFi
bGVkKHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgIH0KKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3At
ZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxl
bnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZmQzOTM4Yjc2Yzk3NDRjM2FmYTdiMjU1MDVlYWViNDlkODY2YjUy
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGly
ZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVz
dHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHRvcCBmcmFtZSByZWRpcmVjdCBjb2xsdXNp
b24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIENvbGx1ZGluZyBob3N0
IDEgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBob3N0IDIg
Z290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBob3N0IDMgZ290
IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBob3N0IDQgZ290IHNl
dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBsb2NhbGhvc3QgZ290IHNl
dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgYWN0dWFsIG5hdmlnYXRpb25hbCByZWRpcmVj
dC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNp
b24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0
LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhOTgzYmMwNmQzNTBlZDU2NTUy
NDAyZGZjZmQzMzQ1OWM2MDVjZWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsx
LDcxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxt
ZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24o
IlRlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0b3AgZnJhbWUgcmVkaXJlY3QgY29s
bHVzaW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgaG9zdFVu
ZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJo
dHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3Jp
Z2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVP
cmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFt
ZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZy
YW1lT3JpZ2luNCA9ICJodHRwOi8vMTI3LjAuMC41OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9w
RnJhbWVPcmlnaW41ID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC8iOworCisgICAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlx
dWVSZWRpcmVjdEZyb20oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20odG9wRnJh
bWVPcmlnaW4xLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSh0b3BGcmFtZU9yaWdpbjIsIHRvcEZyYW1l
T3JpZ2luMyk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVl
UmVkaXJlY3RGcm9tKHRvcEZyYW1lT3JpZ2luMywgdG9wRnJhbWVPcmlnaW40KTsKKworICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJs
LCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJIb3N0IGV4cGxpY2l0eSBzZXQgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMSkpCisgICAgICAgICAgICAgICAgdGVzdFBh
c3NlZCgiQ29sbHVkaW5nIGhvc3QgMSBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNv
dXJjZSh0b3BGcmFtZU9yaWdpbjEpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1
ZGluZyBob3N0IDEgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSh0b3BGcmFtZU9yaWdpbjIpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGlu
ZyBob3N0IDIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBp
ZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVP
cmlnaW4yKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCAyIGdv
dCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAg
aWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmln
aW4zKSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCAzIGdvdCBz
ZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMykpCisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhvc3QgMyBnb3QgY2xhc3NpZmllZCBh
cyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luNCkpCisgICAgICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgNCBnb3Qgc2V0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1Zl
cnlQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjQpKQorICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDQgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjUpKQorICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIkNvbGx1ZGluZyBsb2NhbGhvc3QgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Ug
YWZ0ZXIgYWN0dWFsIG5hdmlnYXRpb25hbCByZWRpcmVjdC4iKTsKKyAgICAgICAgICAgIGlmICh0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdp
bjUpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBsb2NhbGhvc3QgZ290
IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIiAm
JiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
dHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
c3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlk
IG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdG9wRnJhbWVPcmlnaW41ICsgInJlc291cmNl
TG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9uLmh0bWwjY29udGludWUiOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RS
dW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIHJ1blRlc3QoKTsKKyAg
ICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQt
YmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxl
bnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5Zjk5NTMzODI4MGYzMTViMjIw
MDNmMDA4MmQwODE0ODQ3ZTlhYjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0b3Ag
ZnJhbWUgcmVkaXJlY3QgdG8gb3RoZXIgcHJldmFsZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVu
dC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3Qt
dG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjkyYzc1MTY4ODk3MTU5NTM1
NGU2MjA2NGU5ODM4MzMwZWZjYWU5NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlw
dGlvbigiVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHRvcCBmcmFtZSByZWRpcmVj
dCB0byBvdGhlciBwcmV2YWxlbnQuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAg
ICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0
aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29u
c3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKworICAg
IGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVz
dEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJj
ZS4iKTsKKyAgICAgICAgZWxzZSBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0
IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOworICAgICAgICAKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdp
bjEsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2lu
MSk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0
YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
dGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsK
KyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVz
dCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10
by1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11
bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDkx
YmY5NjAzMzU3MDljOTkxZGYxZmZkMzI0MjhiZGJhZTgwNmY4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9u
IGJhc2VkIG9uIHRvcCBmcmFtZSB1bmlxdWUgcmVkaXJlY3RzIHRvLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291
cmNlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVj
dHMtdG8tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1
ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YzRjN2VlNWY2YzNmZWE2
NTYxM2Y4NTgzNjI3YTRjOTg1MDMxNWRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1i
YXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsNTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlw
dGlvbigiVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHRvcCBmcmFtZSB1bmlxdWUg
cmVkaXJlY3RzIHRvLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3Qg
aG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1Vy
bCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZy
YW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9w
RnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0
b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworICAgIGNvbnN0
IHRvcEZyYW1lT3JpZ2luNCA9ICJodHRwOi8vMTI3LjAuMC41OjgwMDAvdGVtcCI7CisKKyAgICBm
dW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNv
dXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZ290IGNs
YXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJh
bWVPcmlnaW4xKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlx
dWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NU
b3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW40KTsK
KworICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRz
Q2FsbGJhY2soY29tcGxldGVUZXN0KTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQ
cm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgfQorCisgICAgaWYgKGRvY3Vt
ZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIg
JiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFi
YXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJl
Y29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVu
dC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5
LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iMGYwMzFkY2E1ZDBjOTYwOGY0ZDhmNWFmODk5YTE2ZTllZjUxYzU4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3Rp
Y3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgZm9yIGNsYXNz
aWZpY2F0aW9uIGFzIHZlcnkgcHJldmFsZW50IGJhc2VkIG9uIG1peGVkIHN0YXRpc3RpY3MuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyB2
ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24t
bWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJhc2VkLW9u
LW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjA2ZmEyMDllZGJi
NmYxMTg4YWZmN2QxNjA2MzA0MDI3YWJiMTdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJl
dmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsx
LDY2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxt
ZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24o
IlRlc3QgZm9yIGNsYXNzaWZpY2F0aW9uIGFzIHZlcnkgcHJldmFsZW50IGJhc2VkIG9uIG1peGVk
IHN0YXRpc3RpY3MuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBo
b3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJs
ID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgdmFyIHRvcEZyYW1l
T3JpZ2lucyA9IFtdOworICAgIGNvbnN0IHN0YXJ0TnVtID0gMjsKKyAgICBjb25zdCBudW1iZXJP
ZlN1YnJlc291cmNlRG9tYWlucyA9IDMwOworICAgIGZvciAodmFyIGkgPSBzdGFydE51bTsgaSA8
IG51bWJlck9mU3VicmVzb3VyY2VEb21haW5zICsgc3RhcnROdW07ICsraSkKKyAgICAgICAgdG9w
RnJhbWVPcmlnaW5zLnB1c2goImh0dHA6Ly8xMjcuMC4wLiIgKyBpICsgIjo4MDAwL3RlbXAiKQor
CisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJl
c291cmNlLiIpOworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMg
dmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVy
VGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVu
RGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBz
dGFydGVkIG91dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHZhciBp
ID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChpIDwgbnVtYmVyT2ZTdWJyZXNvdXJjZURvbWFpbnMp
IHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVy
VG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2ldKTsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJh
bWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2ldKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8o
c3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2ldKTsKKworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0
aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaSsxXSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NV
cmwsIHRvcEZyYW1lT3JpZ2luc1tpKzFdKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9w
RnJhbWVPcmlnaW5zW2krMV0pOworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1l
T3JpZ2luc1tpKzJdKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NT
dWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmln
aW5zW2krMl0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJl
c291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaSsy
XSk7CisgICAgICAgICAgICAgICAgaSArPSAzOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2so
Y29tcGxldGVUZXN0KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NT
dGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYg
KGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RS
dW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIHJ1blRlc3RS
dW5uZXJUZXN0KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1p
bi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9y
eS1hbmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmFlMDAzM2ZmY2NhZWMyNjNhOTZmMmIzZDc4M2VkY2Y3MDQwODNkMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1p
bi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTEgQEAKK1Rlc3RzIGNsZWFyaW5nIG9mIHdlYnNpdGUgZGF0YSBzdG9yZS4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZh
bGVudCByZXNvdXJjZS4KK1BBU1MgSG9zdCBpcyBubyBsb25nZXIgYSBwcmV2YWxlbnQgcmVzb3Vy
Y2UgYWZ0ZXIgdGhlIHN0b3JlIHdhcyBjbGVhcmVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3Rl
bnQtc3RvcmUtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJh
c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yMTdlYmFiYWQ5MTdhYWQ0OTkwMzM4MWVhMzUyM2UyMDYyYmFl
YjBhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFz
ZS5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4i
PgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0IENs
ZWFyZWQgU3RvcmU8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigi
VGVzdHMgY2xlYXJpbmcgb2Ygd2Vic2l0ZSBkYXRhIHN0b3JlLiIpOworICAgIGpzVGVzdElzQXN5
bmMgPSB0cnVlOworCisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7
CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAi
L3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgw
MDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6
ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAu
NDo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gdGVzdFN0ZXAyKCkgeworICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkK
KyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlk
IG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAg
dGVzdFJ1bm5lci5zdGF0aXN0aWNzQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZShjb21w
bGV0ZVRlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGlzIHN0aWxsIGEgcHJldmFsZW50
IHJlc291cmNlIGFmdGVyIHRoZSBzdG9yZSB3YXMgY2xlYXJlZC4iKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBpcyBubyBsb25nZXIgYSBwcmV2YWxlbnQgcmVz
b3VyY2UgYWZ0ZXIgdGhlIHN0b3JlIHdhcyBjbGVhcmVkLiIpOworCisgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVu
VGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlm
eVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2Us
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1l
T3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGlj
c1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3Vy
Y2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVP
cmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1l
T3JpZ2luMyk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRT
Y2FuRGF0YVJlY29yZHNDYWxsYmFjayh0ZXN0U3RlcDIpOworCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5k
ZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBydW5UZXN0UnVubmVyVGVz
dCgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDdmOTk5YzZmZWIzMjY1ZGVmZjM5NTFhYzJmODE0MGFj
MWE2ZWVlMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25l
LWhvdXItZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3RzIGNsZWFy
aW5nIG9mIHdlYnNpdGUgZGF0YSBzdG9yZSAob25lIGhvdXIpLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNl
LgorUEFTUyBIb3N0IGlzIG5vIGxvbmdlciBhIHByZXZhbGVudCByZXNvdXJjZSBhZnRlciB0aGUg
c3RvcmUgd2FzIGNsZWFyZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUt
aG91ci1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1k
YXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2YmIwNjVlMzdiZGEyNDQ4MDQzMzcyMzQ1NWZlOGY3
ZDg2OTY4YzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9u
ZS1ob3VyLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAg
PHRpdGxlPjwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0
cyBjbGVhcmluZyBvZiB3ZWJzaXRlIGRhdGEgc3RvcmUgKG9uZSBob3VyKS4iKTsKKyAgICBqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4x
OjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJU
ZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4w
LjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3
LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8x
MjcuMC4wLjQ6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAg
ICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlz
dGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGlzIHN0aWxsIGEgcHJldmFs
ZW50IHJlc291cmNlIGFmdGVyIHRoZSBzdG9yZSB3YXMgY2xlYXJlZC4iKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBpcyBubyBsb25nZXIgYSBwcmV2YWxlbnQg
cmVzb3VyY2UgYWZ0ZXIgdGhlIHN0b3JlIHdhcyBjbGVhcmVkLiIpOworICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRl
c3RTdGVwMigpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNs
YXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc0NsZWFySW5NZW1v
cnlBbmRQZXJzaXN0ZW50U3RvcmVNb2RpZmllZFNpbmNlSG91cnMoMSwgY29tcGxldGVUZXN0KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5l
ZCh0cnVlKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7fSk7CisgICAgICAgIGlmICh0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQor
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZh
bGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJm
cmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVj
dFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJs
LCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJy
ZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4y
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1l
T3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJs
LCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJy
ZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4z
KTsKKworICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNv
cmRzQ2FsbGJhY2sodGVzdFN0ZXAyKTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQ
cm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgfQorCisgICAgaWYgKGRvY3Vt
ZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIg
JiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFi
YXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0KKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFzZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y29va2llLWRlbGV0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjNmY2Zh
MDQ5MzgzNzk5NjJkY2Q3YTdiZGE0Mzk1NTAyMmVjMmU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlv
bi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1NSBAQAorVGVzdCBmb3IgcGFydGl0
aW9uZWQgYW5kIHVucGFydGl0aW9uZWQgY29va2llIGRlbGV0aW9uLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0t
LS0KK1Nob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBu
YW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0
aGlyZFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQYXJ0
eUNvb2tpZT12YWx1ZQorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUyLS0+JworLS0tLS0t
LS0KK1Nob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5h
bWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3Ro
aXJkUGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0t
LQorRnJhbWU6ICc8IS0tZnJhbWUzLS0+JworLS0tLS0tLS0KK1RyeSB0byBzZXQgdGhpcmQgcGFy
dHkgY29va2llLgorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTQtLT4nCistLS0tLS0t
LQorU2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFt
ZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhp
cmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0t
CitGcmFtZTogJzwhLS1mcmFtZTUtLT4nCistLS0tLS0tLQorQWZ0ZXIgcmVtb3ZhbCwgc2hvdWxk
IHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0
UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNv
b2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFtZTog
JzwhLS1mcmFtZTYtLT4nCistLS0tLS0tLQorQWZ0ZXIgZGVjbGFzc2lmaWVkLCBzaG91bGQgcmVj
ZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0
eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2ll
Jy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJh
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
b29raWUtZGVsZXRpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODM0ZTg3MzA4YTAzOGQ0
MjQ2MmIxMjExMmU0ZWJjMTQ1NTlkZWU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFz
ZS5odG1sCkBAIC0wLDAgKzEsMTE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVu
Ij4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CisgICAgZGVzY3JpcHRpb24oIlRlc3QgZm9yIHBhcnRpdGlvbmVkIGFuZCB1bnBhcnRpdGlvbmVk
IGNvb2tpZSBkZWxldGlvbi4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNv
bnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFy
dHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5
QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVz
b3VyY2VzIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29v
a2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29v
a2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOwor
ICAgIGNvbnN0IHRoaXJkUGFydHlDb29raWVOYW1lID0gInRoaXJkUGFydHlDb29raWUiOworICAg
IGNvbnN0IHN1YlBhdGhUb1NldFRoaXJkUGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhwP25h
bWU9IiArIHRoaXJkUGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgY29uc3Qg
ZnJhZ21lbnRXaXRoUmV0dXJuVXJsID0gImh0dHA6Ly8iICsgcGFydGl0aW9uSG9zdCArICIvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24uaHRtbCI7CisgICAgY29uc3Qgc3Vi
UGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5
Q29va2llTmFtZSArICImbmFtZTI9IiArIHRoaXJkUGFydHlDb29raWVOYW1lOworCisgICAgZnVu
Y3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2Fk
SGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25M
b2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVy
OworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7
CisgICAgfQorCisKKyAgICBmdW5jdGlvbiBmaXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXJBbmRD
b250aW51ZSgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5E
YXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgc2V0VGltZW91dChy
dW5UZXN0LCA1MDApOworICAgICAgICB9KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
UHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHNldEFzTm9uUHJldmFsZW50QW5kQ29udGludWUoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4sIGZhbHNlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ikhvc3Qgc3RpbGwgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAg
ICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2gg
KGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6Cisg
ICAgICAgICAgICAgICAgLy8gU2V0IGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0Lgor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFzZVVy
bCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyBmcmFnbWVudFdpdGhSZXR1
cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgdGhpcmQtcGFy
dHkgaGFzIGFjY2VzcyB0byBpdHMgZmlyc3QtcGFydHkgY29va2llcy4KKyAgICAgICAgICAgICAg
ICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBvcGVu
SWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2Fn
ZT1TaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAg
ICAgIC8vIENsYXNzaWZ5IGxvY2FsaG9zdCBhcyBwcmV2YWxlbnQuCisgICAgICAgICAgICAgICAg
ZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
VXBkYXRlQ29va2llQmxvY2tpbmcocnVuVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAg
ICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIHRoaXJkLXBhcnR5IG5vIGxvbmdlciBoYXMgYWNjZXNz
IHRvIGl0cyBmaXJzdC1wYXJ0eSBjb29raWVzLgorICAgICAgICAgICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQ
YXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNl
aXZlIG5vIGNvb2tpZXMuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlICIjc3RlcDUiOgorICAgICAgICAgICAgICAgIC8vIFRyeSBzZXR0aW5nIGEg
Y29va2llIGFzIHRoaXJkLXBhcnR5LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9u
Lmhhc2ggPSAic3RlcDYiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJh
c2VVcmwgKyBzdWJQYXRoVG9TZXRUaGlyZFBhcnR5Q29va2llICsgIiZtZXNzYWdlPVRyeSB0byBz
ZXQgdGhpcmQgcGFydHkgY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSAiI3N0ZXA2IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0
aGF0IHRoZSB0aGlyZC1wYXJ0eSBzdGlsbCBoYXMgbm8gYWNjZXNzIHRvIGNvb2tpZXMgYW5kIHRo
ZW4gZmlyZSBkYXRhIHJlY29yZCByZW1vdmFsLgorICAgICAgICAgICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2ggPSAic3RlcDciOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQ
YXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNl
aXZlIG5vIGNvb2tpZXMuIiwgZmlyZURhdGFNb2RpZmljYXRpb25IYW5kbGVyQW5kQ29udGludWUp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA3IjoKKyAg
ICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSB0aGlyZC1wYXJ0eSBzdGlsbCBoYXMgbm8g
YWNjZXNzIHRvIGNvb2tpZXMgYW5kIHRoZW4gZGVjbGFzc2lmeSBsb2NhbGhvc3QuCisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwOCI7CisgICAgICAgICAgICAg
ICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAi
Jm1lc3NhZ2U9QWZ0ZXIgcmVtb3ZhbCwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4iLCBzZXRB
c05vblByZXZhbGVudEFuZENvbnRpbnVlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgIiNzdGVwOCI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUg
dGhpcmQtcGFydHkgc3RpbGwgaGFzIG5vIGFjY2VzcyB0byBjb29raWVzLgorICAgICAgICAgICAg
ICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsg
IiZtZXNzYWdlPUFmdGVyIGRlY2xhc3NpZmllZCwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4i
LCBmaW5pc2hUZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0K
KworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBwYXJ0aXRpb25Ib3N0ICYmIGRv
Y3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRv
dy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3Jl
RGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgIGRv
Y3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEiOworCisgICAgICAgICAgICBydW5UZXN0KCk7
CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9CisK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11
c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNl
ci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWQxMDkyZWZk
ZWVlNDZmYWM2ZTM2YWMwNzZkODE0ZDJiYmU1YzdiOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdpdGgtYW5k
LXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwyNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1Nob3Vs
ZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmly
c3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlD
b29raWU9dmFsdWUKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMi0tPicKKy0tLS0tLS0t
CitTaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1l
ZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0t
LS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTMtLT4nCistLS0tLS0tLQorQWZ0ZXIgdXNlciBpbnRl
cmFjdGlvbiwgc2hvdWxkIHN0aWxsIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2
ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQu
Y29va2llOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFi
YXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45YzdhMzljNzNlOWYxNWM2NjUwYTE3NmIzZWM5MThjMWI1ZmY2NWJhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0
bWwKQEAgLTAsMCArMSw4NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8
aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3QgZm9yIFBh
cnRpdGlvbmVkIENvb2tpZXMgV2l0aCBhbmQgV2l0aG91dCBVc2VyIEludGVyYWN0aW9uPC90aXRs
ZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgcGFydGl0aW9uSG9zdCA9ICIxMjcuMC4w
LjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0
OjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0eU9yaWdpbiAr
ICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0IGZpcnN0UGFy
dHlDb29raWVOYW1lID0gImZpcnN0UGFydHlDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1Nl
dEZpcnN0UGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIGZpcnN0UGFydHlD
b29raWVOYW1lICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgY29uc3QgZnJhZ21lbnRXaXRoUmV0dXJu
VXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tp
ZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLmh0bWwiOworICAgIGNvbnN0IHN1
YlBhdGhUb0dldENvb2tpZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0
eUNvb2tpZU5hbWU7CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvcGVuSWZy
YW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOwor
ICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQg
PSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2V0VXNlckludGVyYWN0aW9u
QW5kQ29udGludWUoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24o
dGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhpcmQgcGFy
dHkgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAg
ICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0
KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAg
ICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJl
ZiA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIj
IiArIGZyYWdtZW50V2l0aFJldHVyblVybCArICIjc3RlcDIiOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRo
aXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQg
cmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDQiOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0
ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAg
ICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA1IjsKKyAgICAgICAgICAgICAgICBvcGVu
SWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2Fn
ZT1TaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLiIsIHNldFVzZXJJbnRlcmFjdGlvbkFuZENvbnRp
bnVlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNSI6
CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhU
b0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9QWZ0ZXIgdXNlciBpbnRlcmFjdGlvbiwgc2hvdWxkIHN0
aWxsIHJlY2VpdmUgbm8gY29va2llcy4iLCBmaW5pc2hUZXN0KTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0
ID09PSBwYXJ0aXRpb25Ib3N0ICYmIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT0gIiIgJiYgd2lu
ZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVy
LnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAgICAgICBpZiAodGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2FzIGNsYXNzaWZpZWQgYXMg
cHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydHMuIik7CisgICAgICAgICAg
ICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRlc3Qo
KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0LWFj
Y2Vzc2libGUtY29va2llcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNv
b2tpZXMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzNDA3ZGNmM2VkZWViNjBl
Yzk2NDkyODUwMTQ1MWEwNTE5Mjg0NzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxl
LWNvb2tpZXMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK0NoZWNrIHRo
YXQgb25seSBIdHRwT25seSBjb29raWVzIHJlbWFpbiBpZiBhbGwgc2NyaXB0LWFjY2Vzc2libGUg
Y29va2llcyBhcmUgZGVsZXRlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgQmVmb3JlIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiBDbGllbnQtc2lkZSBjb29raWUg
ZXhpc3RzLgorUEFTUyBCZWZvcmUgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246IEh0dHBPbmx5
IGNvb2tpZSBleGlzdHMuCitQQVNTIEJlZm9yZSBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjog
UmVndWxhciBzZXJ2ZXItc2lkZSBjb29raWUgZXhpc3RzLgorUEFTUyBBZnRlciBzY3JpcHQtYWNj
ZXNzaWJsZSBkZWxldGlvbjogIEh0dHBPbmx5IGNvb2tpZSBleGlzdHMuCitQQVNTIEFmdGVyIGZ1
bGwgZGVsZXRpb246ICAgICAgICAgICAgICAgQWxsIGNvb2tpZXMgYXJlIGdvbmUuCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1zY3Jp
cHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNvb2tp
ZXMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MGZjNTM3N2Q3ZGVlNjA0Mjk5MGJlMGMyZGJm
Yjc0NWFlMDVjZDU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRh
dGFiYXNlLmh0bWwKQEAgLTAsMCArMSw3MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorICAg
IGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IG9ubHkgSHR0cE9ubHkgY29va2llcyByZW1haW4gaWYg
YWxsIHNjcmlwdC1hY2Nlc3NpYmxlIGNvb2tpZXMgYXJlIGRlbGV0ZWQuIik7CisgICAganNUZXN0
SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBodHRwT25seUNvb2tpZU5hbWUgPSAiaHR0cC1v
bmx5LWNvb2tpZSI7CisgICAgY29uc3Qgc2VydmVyU2lkZUNvb2tpZU5hbWUgPSAic2VydmVyLXNp
ZGUtY29va2llIjsKKyAgICBjb25zdCBjbGllbnRTaWRlQ29va2llTmFtZSA9ICJjbGllbnQtc2lk
ZS1jb29raWUiOworCisgICAgZnVuY3Rpb24gc29ydFN0cmluZ0FycmF5KGEsIGIpIHsKKyAgICAg
ICAgYSA9IGEudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgYiA9IGIudG9Mb3dlckNhc2UoKTsKKwor
ICAgICAgICByZXR1cm4gYSA+IGIgPyAxIDogYiA+IGEgPyAtMSA6IDA7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gY2hlY2tDb29raWVzKGlzQWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24pIHsK
KyAgICAgICAgbGV0IHVuc29ydGVkVGVzdFBhc3NlZE1lc3NhZ2VzID0gW107CisgICAgICAgIGxl
dCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKTsKKyAgICAgICAgaWYgKCFjb29raWVz
Lmxlbmd0aCkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoKGlzQWZ0ZXJTY3JpcHRBY2Nlc3NpYmxl
RGVsZXRpb24gPyAiQWZ0ZXIiIDogIkJlZm9yZSIpICsgIiBzY3JpcHQtYWNjZXNzaWJsZSBkZWxl
dGlvbjogTm8gY29va2llcyBmb3VuZC4iKTsKKyAgICAgICAgZm9yIChsZXQgY29va2llIG9mIGNv
b2tpZXMpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoY29va2llLm5hbWUpIHsKKyAgICAgICAgICAg
ICAgICBjYXNlIGh0dHBPbmx5Q29va2llTmFtZToKKyAgICAgICAgICAgICAgICAgICAgdW5zb3J0
ZWRUZXN0UGFzc2VkTWVzc2FnZXMucHVzaCgoaXNBZnRlclNjcmlwdEFjY2Vzc2libGVEZWxldGlv
biA/ICJBZnRlciIgOiAiQmVmb3JlIikgKyAiIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiAi
ICsgKGlzQWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24gPyAiICIgOiAiIikgKyAiSHR0cE9u
bHkgY29va2llIGV4aXN0cy4iKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgY2FzZSBzZXJ2ZXJTaWRlQ29va2llTmFtZToKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGlzQWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24pCisgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJBZnRlciBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogIFJlZ3Vs
YXIgc2VydmVyLXNpZGUgY29va2llIGV4aXN0cy4iKTsKKyAgICAgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICAgICAgdW5zb3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMucHVz
aCgiQmVmb3JlIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiBSZWd1bGFyIHNlcnZlci1zaWRl
IGNvb2tpZSBleGlzdHMuIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIGNhc2UgY2xpZW50U2lkZUNvb2tpZU5hbWU6CisgICAgICAgICAgICAgICAgICAgIGlm
IChpc0FmdGVyU2NyaXB0QWNjZXNzaWJsZURlbGV0aW9uKQorICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiQWZ0ZXIgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246ICBDbGllbnQt
c2lkZSBjb29raWUgZXhpc3RzLiIpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNvcnRlZFRlc3RQYXNzZWRNZXNzYWdlcy5wdXNoKCJCZWZvcmUg
c2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246IENsaWVudC1zaWRlIGNvb2tpZSBleGlzdHMuIik7
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgICAgIGxldCBzb3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMgPSB1bnNvcnRlZFRlc3RQYXNzZWRN
ZXNzYWdlcy5zb3J0KHNvcnRTdHJpbmdBcnJheSk7CisgICAgICAgIGZvciAobGV0IHRlc3RQYXNz
ZWRNZXNzYWdlIG9mIHNvcnRlZFRlc3RQYXNzZWRNZXNzYWdlcykKKyAgICAgICAgICAgIHRlc3RQ
YXNzZWQodGVzdFBhc3NlZE1lc3NhZ2UpOworICAgIH0KKworICAgIGFzeW5jIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lciB8fCAhaW50ZXJuYWxzKSB7CisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJObyB0ZXN0UnVubmVyIG9yIG5vIGludGVybmFscy4iKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICBhd2FpdCBmZXRjaCgiL2Nvb2tpZXMvcmVzb3VyY2Vz
L3NldC1odHRwLW9ubHktY29va2llLnBocD9jb29raWVOYW1lPSIgKyBodHRwT25seUNvb2tpZU5h
bWUsIHsgY3JlZGVudGlhbHM6ICJzYW1lLW9yaWdpbiIgfSk7CisgICAgICAgIGF3YWl0IGZldGNo
KCIvY29va2llcy9yZXNvdXJjZXMvc2V0Q29va2llcy5jZ2kiLCB7IGhlYWRlcnM6IHsgIlNldC1D
b29raWUiOiBzZXJ2ZXJTaWRlQ29va2llTmFtZSArICI9MTsgcGF0aD0vOyIgfSwgY3JlZGVudGlh
bHM6ICJzYW1lLW9yaWdpbiIgfSk7CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGNsaWVudFNp
ZGVDb29raWVOYW1lICsgIj0xIjsKKyAgICAgICAgY2hlY2tDb29raWVzKGZhbHNlKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzRGVsZXRlQ29va2llc0Zvckhvc3QoImh0dHA6Ly8xMjcu
MC4wLjEiLCBmYWxzZSk7CisgICAgICAgIGNoZWNrQ29va2llcyh0cnVlKTsKKyAgICAgICAgdGVz
dFJ1bm5lci5zdGF0aXN0aWNzRGVsZXRlQ29va2llc0Zvckhvc3QoImh0dHA6Ly8xMjcuMC4wLjEi
LCB0cnVlKTsKKyAgICAgICAgbGV0IGNvb2tpZXNMZWZ0ID0gaW50ZXJuYWxzLmdldENvb2tpZXMo
KS5sZW5ndGg7CisgICAgICAgIGlmIChjb29raWVzTGVmdCA9PT0gMCkKKyAgICAgICAgICAgIHRl
c3RQYXNzZWQoIkFmdGVyIGZ1bGwgZGVsZXRpb246ICAgICAgICAgICAgICAgQWxsIGNvb2tpZXMg
YXJlIGdvbmUuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkFmdGVy
IGZ1bGwgZGVsZXRpb246ICAgICAgICAgICAgICAiICsgY29va2llc0xlZnQgKyAiIGNvb2tpZShz
KSBsZWZ0LiIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJl
Y3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRpcmVj
dC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzc0MzA2MWZmMTE5ZmFkM2Y1OTdk
YzE1YWUwNGI0YjhjNjkzNzk0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmln
YXRpb24tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1NF
RDogQ29va2llIHN1Y2Nlc3NmdWxseSBzZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmln
YXRpb24tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVk
aXJlY3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjE5ZTNkNjg5MzJiZmYxOGM1YTAxYzU2
ODRjNDRmMzcxNmZkZTgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdhdGlv
bi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYmxvY2tpbmcgaXMgbm90IGFwcGxpZWQgdG8g
dG9wLWxldmVsIG5hdmlnYXRpb24gcmVkaXJlY3RzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0
cnVlOworCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRy
dWUpOworCisgICAgZnVuY3Rpb24gZG9SZWRpcmVjdCgpCisgICAgeworICAgICAgICB0ZXN0UnVu
bmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRy
dWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSwgZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAg
ICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaHJlZiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9y
ZXNvdXJjZXMvc2V0LWNvb2tpZS1vbi1yZWRpcmVjdC5waHA/c3RlcD0xIjsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0ic2V0VGltZW91dCgnZG9SZWRpcmVjdCgpJywgMCkiPgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rv
LW5vdC1jYXB0dXJlLXN0YXRpc3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2aWdhdGlvbnMtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2RvLW5vdC1jYXB0dXJlLXN0YXRpc3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2aWdhdGlv
bnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2OWM5MWNhZTZlYWEzYmRjYzg0
NjBjNjMzN2IwMmY3ZDY0ZjI0ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWNhcHR1cmUtc3RhdGlzdGljcy1m
b3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMSBAQAorVGVzdCB0aGF0IGEgbm9uLXJlZGlyZWN0ZWQgdG9wIGZyYW1lIG5hdmlnYXRpb24g
ZG9lc24ndCBnZXQgY2FwdHVyZWQgaW4gc3RhdGlzdGljcy4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJG
cmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyBmYWxz
ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIo
Imh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpIGlzIGZhbHNlCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1jYXB0
dXJlLXN0YXRpc3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2aWdhdGlvbnMtZGF0YWJhc2UuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2Fw
dHVyZS1zdGF0aXN0aWNzLWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjgwOTM1YTIzNzBlZGJkNzY5MjUxMzE5YmFjOTQ0ZjcyOGJjNzZlNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNzLWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25z
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBs
YW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlw
dCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IHRoYXQgYSBub24tcmVkaXJlY3RlZCB0b3Ag
ZnJhbWUgbmF2aWdhdGlvbiBkb2Vzbid0IGdldCBjYXB0dXJlZCBpbiBzdGF0aXN0aWNzLiIpOwor
ICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJh
c2UodHJ1ZSk7CisgICAgbGV0IHRpbWVySGFuZGxlID0gMDsKKworICAgIGZ1bmN0aW9uIGZpbmlz
aFRlc3QoKSB7CisgICAgICAgIGlmICh0aW1lckhhbmRsZSkKKyAgICAgICAgICBjbGVhclRpbWVv
dXQodGltZXJIYW5kbGUpOworCisgICAgICAgIHNob3VsZEJlRmFsc2UoJ3Rlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJo
dHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgndGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vMTI3LjAuMC4xIiwg
Imh0dHA6Ly9sb2NhbGhvc3QiKScpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBm
aW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAg
IHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCkgeworICAgICAgICAgICAgY2FzZSAiMTI3
LjAuMC4xOjgwMDAiOgorICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3YXMgY2xhc3NpZmllZCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0cy4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNzLWZvci1zaW1wbGUt
dG9wLW5hdmlnYXRpb25zLmh0bWwiOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAibG9jYWxob3N0OjgwMDAiOgorICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRz
V2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3Rh
dGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGZpbmlzaFRlc3QpOworICAgICAgICAg
ICAgICAgIGlmICghdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKSkKKyAgICAg
ICAgICAgICAgICAgICAgdGltZXJIYW5kbGUgPSBzZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDEwMCk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIlVua25vd24gaG9zdDogIiArIGRvY3VtZW50LmxvY2F0aW9uLmhv
c3QpOworICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBy
dW5UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJs
b2NraW5nLWluLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5nLWlu
LXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYWQ3ZDllNTAwNzZi
NmQxNmJiYzI2YTUwNDZlOTk2OTZkNmUwNzY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tp
bmctaW4tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTEgQEAKK1Rl
c3RzIHRoYXQgYmxvY2tpbmcgaXMgbm90IHJlbW92ZWQgbWlkLWZsaWdodCBpbiByZWRpcmVjdHMu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAgCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1m
cmFtZTEtLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llIGZv
ciBsb2NhbGhvc3QuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29v
a2llSVAnLgorUmVjZWl2ZWQgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llTG9jYWxob3N0
Jy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgorQ2xp
ZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llTG9jYWxob3N0PWxvY2Fs
aG9zdAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUyLS0+JworLS0tLS0tLS0KK1JlZGly
ZWN0IGNhc2UgMSwgc2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llIGZvciAxMjcuMC4w
LjEuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWVJUCcuCitEaWQgbm90
IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llTG9jYWxob3N0Jy4KK0RpZCBu
b3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUg
ZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llSVA9MTI3LjAuMC4xCisKKy0tLS0tLS0t
CitGcmFtZTogJzwhLS1mcmFtZTMtLT4nCistLS0tLS0tLQorVHJ5IHRvIHNldCB0aGlyZC1wYXJ0
eSBjb29raWUgZm9yIGxvY2FsaG9zdCBpbiBibG9ja2VkIG1vZGUuCisKKworLS0tLS0tLS0KK0Zy
YW1lOiAnPCEtLWZyYW1lNC0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBubyBjb29raWUu
CitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llSVAnLgorRGlk
IG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUxvY2FsaG9zdCcuCitE
aWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2llJy4KK0NsaWVudC1z
aWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNS0tPicK
Ky0tLS0tLS0tCitSZWRpcmVjdCBjYXNlIDIsIHNob3VsZCBub3QgcmVjZWl2ZSBmaXJzdC1wYXJ0
eSBjb29raWUgZm9yIDEyNy4wLjAuMS4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2Zp
cnN0UGFydHlDb29raWVJUCcuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBh
cnR5Q29va2llTG9jYWxob3N0Jy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJk
UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29v
a2llSVA9MTI3LjAuMC4xCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRh
YmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zNmQzMGFhZGVmNDU3N2I4NTI0MjNjNmEyMzZmM2FhMzcxOWYxMDJkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rv
LW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsx
LDEwMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8
bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9u
KCJUZXN0cyB0aGF0IGJsb2NraW5nIGlzIG5vdCByZW1vdmVkIG1pZC1mbGlnaHQgaW4gcmVkaXJl
Y3RzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgcGFydGl0aW9u
SG9zdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHJlc291cmNlUGF0aCA9ICIvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJs
ID0gdGhpcmRQYXJ0eU9yaWdpbiArIHJlc291cmNlUGF0aDsKKyAgICBjb25zdCBmaXJzdFBhcnR5
Q29va2llTmFtZVByZWZpeCA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBmaXJzdFBh
cnR5Q29va2llTmFtZUlQID0gZmlyc3RQYXJ0eUNvb2tpZU5hbWVQcmVmaXggKyAiSVAiOworICAg
IGNvbnN0IGZpcnN0UGFydHlDb29raWVOYW1lTG9jYWxob3N0ID0gZmlyc3RQYXJ0eUNvb2tpZU5h
bWVQcmVmaXggKyAiTG9jYWxob3N0IjsKKyAgICBjb25zdCB0aGlyZFBhcnR5Q29va2llTmFtZSA9
ICJ0aGlyZFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRUaGlyZFBhcnR5Q29v
a2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyB0aGlyZFBhcnR5Q29va2llTmFtZSArICIm
dmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tpZXMgPSAiL2dldC1jb29r
aWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWVJUCArICImbmFtZTI9IiArIGZp
cnN0UGFydHlDb29raWVOYW1lTG9jYWxob3N0ICsgIiZuYW1lMz0iICsgdGhpcmRQYXJ0eUNvb2tp
ZU5hbWU7CisgICAgY29uc3QgcmVkaXJlY3RDaGFpblVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyBy
ZXNvdXJjZVBhdGggKyAiL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly8iICsgcGFydGl0
aW9uSG9zdCArIHJlc291cmNlUGF0aCArIHN1YlBhdGhUb0dldENvb2tpZXM7CisKKyAgICBmdW5j
dGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQu
c3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxl
bWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAg
ICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgIC8vIFNldCBmaXJzdC1wYXJ0eSBj
b29raWVzIGZvciAxMjcuMC4wLjEgYW5kIGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAgICBpZiAo
ZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luID09PSB0aGlyZFBhcnR5T3JpZ2luKSB7CisgICAgICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGZpcnN0UGFydHlDb29raWVOYW1lTG9jYWxo
b3N0ICsgIj1sb2NhbGhvc3Q7cGF0aD0nLyciOworICAgICAgICAgICAgICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5ocmVmID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbCNz
dGVwMiI7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZG9j
dW1lbnQuY29va2llID0gZmlyc3RQYXJ0eUNvb2tpZU5hbWVJUCArICI9MTI3LjAuMC4xO3BhdGg9
Jy8nIjsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9ICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJs
b2NraW5nLWluLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwjc3RlcDEiOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6Cisg
ICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgY29va2llIGdldHMgc2VudCBmb3IgbG9j
YWxob3N0IHVuZGVyIDEyNy4wLjAuMSBzaW5jZSBsb2NhbGhvc3QgaXMgbm90IHByZXZhbGVudC4K
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAg
ICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29v
a2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIGxv
Y2FsaG9zdC4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9
ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgLy8gTG9hZCBhbiBpZnJhbWUgaW4gYSByZWRpcmVj
dCBjaGFpbiB0aGF0IHN0YXJ0cyB3aXRoIGxvY2FsaG9zdCBhbmQgZW5kcyB3aXRoIDEyNy4wLjAu
MS4gRXhwZWN0IGEgY29va2llIGZvciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAgb3Blbklm
cmFtZShyZWRpcmVjdENoYWluVXJsICsgIiZtZXNzYWdlPVJlZGlyZWN0IGNhc2UgMSwgc2hvdWxk
IHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llIGZvciAxMjcuMC4wLjEuIiwgcnVuVGVzdCk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAg
ICAgICAgICAgIC8vIFNldCBsb2NhbGhvc3QgYXMgcHJldmFsZW50IHRvIHB1dCBpdCBpbiB0aGUg
YmxvY2tpbmcgY2F0ZWdvcnkuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFz
aCA9ICJzdGVwNSI7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmco
cnVuVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlICIjc3RlcDUiOgorICAgICAgICAgICAgICAgIC8vIFRyeSB0byBzZXQg
cGFydGl0aW9uZWQgY29va2llIGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xLgorICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDYiOworICAgICAgICAgICAg
ICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRUaGlyZFBhcnR5
Q29va2llICsgIiZtZXNzYWdlPVRyeSB0byBzZXQgdGhpcmQtcGFydHkgY29va2llIGZvciBsb2Nh
bGhvc3QgaW4gYmxvY2tlZCBtb2RlLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSAiI3N0ZXA2IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0
aGF0IG5vIGNvb2tpZSBnZXRzIHNlbnQgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEgc2lu
Y2UgbG9jYWxob3N0J3MgY29va2llcyBhcmUgYmxvY2tlZC4KKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA3IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1l
KHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICAiJm1lc3NhZ2U9U2hv
dWxkIHJlY2VpdmUgbm8gY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSAiI3N0ZXA3IjoKKyAgICAgICAgICAgICAgICAvLyBMb2FkIGFu
IGlmcmFtZSBpbiBhIHJlZGlyZWN0IGNoYWluIHRoYXQgc3RhcnRzIHdpdGggbG9jYWxob3N0IGFu
ZCBlbmRzIHdpdGggMTI3LjAuMC4xLiBFeHBlY3QgYSBjb29raWUgZm9yIDEyNy4wLjAuMS4KKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA4IjsKKyAgICAgICAg
ICAgICAgICBvcGVuSWZyYW1lKHJlZGlyZWN0Q2hhaW5VcmwgKyAiJm1lc3NhZ2U9UmVkaXJlY3Qg
Y2FzZSAyLCBzaG91bGQgbm90IHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llIGZvciAxMjcuMC4w
LjEuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
ICIjc3RlcDgiOgorICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlz
aEpTVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkxvY2FsaG9zdCB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVm
b3JlIHRoZSB0ZXN0IHN0YXJ0cy4iKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxk
RnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0
ZXAxIjsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgcnVuVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0
LWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdh
dGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDA1ZGMwOWI2OTYzOWYxZDkwYzZjMzdjMjJlZDFiOTZmODYxYzQ0OQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQt
d2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBA
QAorVGVzdHMgdGhhdCB0aGUgc2Vzc2lvbiBpcyBub3Qgc3dpdGNoZWQgdXBvbiB0b3AgZnJhbWUg
bmF2aWdhdGlvbiB0byBhIHByZXZhbGVudCByZXNvdXJjZSB3aXRob3V0IHVzZXIgaW50ZXJhY3Rp
b24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFNob3VsZCBoYXZlIGFu
ZCBoYXMgdGhlIHNlc3Npb24gY29va2llLgorUEFTUyBTaG91bGQgaGF2ZSBhbmQgaGFzIHRoZSBw
ZXJzaXN0ZW50IGNvb2tpZS4KK1BBU1MgT3JpZ2luIGhhcyBubyBpc29sYXRlZCBzZXNzaW9uLgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1u
b3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRl
cmFjdGlvbi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZh
bGVudC13aXRob3V0LWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmFiZmRi
OWM0MmJlMjBhNzM5NjYyMjQ0ZWVkNGQ3MzY0OGY1YzBkMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNo
LXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1k
YXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxh
bmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRo
ZSBzZXNzaW9uIGlzIG5vdCBzd2l0Y2hlZCB1cG9uIHRvcCBmcmFtZSBuYXZpZ2F0aW9uIHRvIGEg
cHJldmFsZW50IHJlc291cmNlIHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICBqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHByZXZhbGVudE9yaWdpbiA9ICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IG5vblByZXZhbGVudE9yaWdpbiA9ICJodHRwOi8v
bG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHNlc3Npb25Db29raWVOYW1lID0gInNlc3Npb25D
b29raWUiOworICAgIGNvbnN0IHBlcnNpc3RlbnRDb29raWVOYW1lID0gInBlcnNpc3RlbnRDb29r
aWUiOworICAgIGNvbnN0IHR3b01pbnV0ZXNJblNlY29uZHMgPSAxMjA7CisKKyAgICBmdW5jdGlv
biBzZXRTZXNzaW9uQ29va2llKCkgeworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzZXNzaW9u
Q29va2llTmFtZSArICI9MTsgcGF0aD0vIjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZXRQZXJz
aXN0ZW50Q29va2llKCkgeworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBwZXJzaXN0ZW50Q29v
a2llTmFtZSArICI9MTsgcGF0aD0vOyBNYXgtQWdlPSIgKyB0d29NaW51dGVzSW5TZWNvbmRzICsg
IjsiOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNoZWNrQ29va2llcyhzaG91bGRIYXZlU2Vzc2lv
bkNvb2tpZSwgc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29raWUpIHsKKyAgICAgICAgbGV0IGhhc1Nl
c3Npb25Db29raWUgPSAoZG9jdW1lbnQuY29va2llICsgIiIpLmluY2x1ZGVzKHNlc3Npb25Db29r
aWVOYW1lKSwKKyAgICAgICAgICAgIGhhc1BlcnNpc3RlbnRDb29raWUgPSAoZG9jdW1lbnQuY29v
a2llICsgIiIpLmluY2x1ZGVzKHBlcnNpc3RlbnRDb29raWVOYW1lKTsKKworICAgICAgICBpZiAo
c2hvdWxkSGF2ZVNlc3Npb25Db29raWUgJiYgaGFzU2Vzc2lvbkNvb2tpZSkKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQoIlNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHNlc3Npb24gY29va2llLiIpOwor
ICAgICAgICBlbHNlIGlmIChzaG91bGRIYXZlU2Vzc2lvbkNvb2tpZSAmJiAhaGFzU2Vzc2lvbkNv
b2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkIGhhdmUgYnV0IGRvZXNuJ3Qg
aGF2ZSB0aGUgc2Vzc2lvbiBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UgaWYgKCFzaG91bGRIYXZlU2Vz
c2lvbkNvb2tpZSAmJiBoYXNTZXNzaW9uQ29va2llKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJTaG91bGRuJ3QgaGF2ZSBidXQgaGFzIHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKKyAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxkbid0IGhhdmUgYW5kIGRvZXNuJ3QgaGF2
ZSB0aGUgc2Vzc2lvbiBjb29raWUuIik7CisKKworICAgICAgICBpZiAoc2hvdWxkSGF2ZVBlcnNp
c3RlbnRDb29raWUgJiYgaGFzUGVyc2lzdGVudENvb2tpZSkKKyAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIlNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHBlcnNpc3RlbnQgY29va2llLiIpOworICAgICAg
ICBlbHNlIGlmIChzaG91bGRIYXZlUGVyc2lzdGVudENvb2tpZSAmJiAhaGFzUGVyc2lzdGVudENv
b2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkIGhhdmUgYnV0IGRvZXNuJ3Qg
aGF2ZSB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UgaWYgKCFzaG91bGRIYXZl
UGVyc2lzdGVudENvb2tpZSAmJiBoYXNQZXJzaXN0ZW50Q29va2llKSB7CisgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJTaG91bGRuJ3QgaGF2ZSBidXQgaGFzIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4i
KTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxkbid0IGhhdmUgYW5k
IGRvZXNuJ3QgaGF2ZSB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNo
KSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgIHNldFNlc3Np
b25Db29raWUoKTsKKyAgICAgICAgICAgICAgICBzZXRQZXJzaXN0ZW50Q29va2llKCk7CisgICAg
ICAgICAgICAgICAgY2hlY2tDb29raWVzKHRydWUsIHRydWUpOworICAgICAgICAgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmhhc1N0YXRpc3RpY3NJc29sYXRlZFNlc3Npb24ocHJldmFsZW50T3JpZ2lu
KSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPcmlnaW4gaGFzIGlzb2xhdGVk
IHNlc3Npb24uIik7CisgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2Us
IGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIk9yaWdpbiBoYXMgbm8gaXNvbGF0ZWQgc2Vzc2lvbi4iKTsKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gbm9uUHJldmFsZW50T3JpZ2luICsg
Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0
aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9uLmh0bWwjc3RlcDIiOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBp
ZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luICE9PSBub25QcmV2YWxlbnRPcmlnaW4pCisgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlN0ZXAgMiBpcyBub3Qgb24gIiArIG5vblByZXZh
bGVudE9yaWdpbiArICIuIik7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHByZXZhbGVudE9yaWdpbikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQocHJldmFsZW50T3JpZ2luICsgIiBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0
KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJl
ZiA9IHByZXZhbGVudE9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dp
dGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlv
bi5odG1sI3N0ZXA0IjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
IiNzdGVwNCI6CisgICAgICAgICAgICAgICAgY2hlY2tDb29raWVzKHRydWUsIHRydWUpOworICAg
ICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmhhc1N0YXRpc3RpY3NJc29sYXRlZFNlc3Npb24o
cHJldmFsZW50T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3JpZ2lu
IGhhcyBpc29sYXRlZCBzZXNzaW9uLiIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiT3JpZ2luIGhhcyBubyBpc29sYXRlZCBzZXNzaW9uLiIp
OworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIlVua25vd24gaGFzaC4iKTsKKyAgICAgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisgICAgfQorCisg
ICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiKSB7CisgICAgICAgIGlmIChkb2N1
bWVudC5sb2NhdGlvbi5vcmlnaW4gIT09IHByZXZhbGVudE9yaWdpbikKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoIlRlc3QgaXMgbm90IHN0YXJ0aW5nIG91dCBvbiAiICsgcHJldmFsZW50T3JpZ2lu
ICsgIi4iKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBE
YXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShwcmV2YWxlbnRPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQocHJldmFs
ZW50T3JpZ2luICsgIiB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3Jl
IHRoZSB0ZXN0IHN0YXJ0cy4iKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2gg
PSAic3RlcDEiOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVyeS1m
cm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1m
b3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmYmE4MTAzNWUyZmVjYmExMzk0ZDAxZGYy
ZTliZTIwNjk1ZTg1YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlv
bi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0NoZWNrIHRoYXQgZG9jdW1lbnQucmVmZXJyZXIgaXMg
ZG93bmdyYWRlZCB0byB0aGUgZVRMRCsxIGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdp
dGggbGluayBxdWVyeS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhl
IHJlZmVycmVyIGlzIGRvd25ncmFkZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24t
d2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1y
ZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVz
b3VyY2UtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YWViZGU5NWJlOGEwNTJhZmYzNjc5YzA2
ODg1YWUxNzAyZTFkNzU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRp
b24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwK
QEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxz
Y3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKSI+Cis8c2NyaXB0
PgorICAgIGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IGRvY3VtZW50LnJlZmVycmVyIGlzIGRvd25n
cmFkZWQgdG8gdGhlIGVUTEQrMSBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxp
bmsgcXVlcnkuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBsZXQgbnVtYmVy
T2ZUcmllcyA9IDA7CisgICAgZnVuY3Rpb24gdGVzdFJlZmVycmVyKCkgeworICAgICAgICBpZiAo
ZG9jdW1lbnQucmVmZXJyZXIgPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luICsgIi8iKSB7Cisg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgcmVmZXJyZXIgaXMgZG93bmdyYWRlZC4iKTsKKyAg
ICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAg
IH0gZWxzZSBpZiAoKytudW1iZXJPZlRyaWVzIDw9IDUpCisgICAgICAgICAgICBzZXRUaW1lb3V0
KHRlc3RSZWZlcnJlciwgMjAwKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJUaGUgcmVmZXJyZXIgaXMgbm90IGRvd25ncmFkZWQ6ICIgKyBkb2N1bWVudC5yZWZlcnJl
cik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOwor
ICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVTYW1lT3JpZ2luVG9BZGRR
dWVyeSgpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHByZXZhbGVudFJlc291
cmNlT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXIt
Zm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0
bWw/bGluaz1xdWVyeSI7CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdp
bigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2lu
ICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmln
YXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWwiOworICAg
IH0KKworICAgIGNvbnN0IGRlc3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MCI7CisgICAgY29uc3QgcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAu
MTo4MDAwIjsKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQu
bG9jYXRpb24ub3JpZ2luID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiAmJiBkb2N1bWVudC5s
b2NhdGlvbi5zZWFyY2ggPT09ICIiKSB7CisgICAgICAgICAgICBuYXZpZ2F0ZVNhbWVPcmlnaW5U
b0FkZFF1ZXJ5KCk7CisgICAgICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2lu
ID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1
ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luLCB0cnVlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBk
YXRlQ29va2llQmxvY2tpbmcobmF2aWdhdGVDcm9zc09yaWdpbik7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RS
ZWZlcnJlcigpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvZW5hYmxlLWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTIxOWRkM2IxMWYyYTM0YzQ1NzUzNDBlNzM4
ZGFkY2ZhMGNjZmNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGZvciBlbmFibGluZyBkZWJ1ZyBtb2RlIGFuZCB0
aGF0IGl0IHBlcm1hbmVudGx5IHRyZWF0cyAzcmRwYXJ0eXRlc3R3ZWJraXQub3JnIGFzIGEgcHJl
dmFsZW50IHJlc291cmNlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBo
dHRwOi8vM3JkcGFydHl0ZXN0d2Via2l0Lm9yZyBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJj
ZSBpbiBkZWJ1ZyBtb2RlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRh
dGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjM3ZmY5MjI1NjdmOWE0NzI4MjczZGZhNDczMjYzN2E0
ODVjYjlmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAg
KzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAg
PG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGls
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlv
bigiVGVzdCBmb3IgZW5hYmxpbmcgZGVidWcgbW9kZSBhbmQgdGhhdCBpdCBwZXJtYW5lbnRseSB0
cmVhdHMgM3JkcGFydHl0ZXN0d2Via2l0Lm9yZyBhcyBhIHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4g
PSAiaHR0cDovLzNyZHBhcnR5dGVzdHdlYmtpdC5vcmciOworCisgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJ
VFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQodGhp
cmRQYXJ0eU9yaWdpbiArICIgYWxyZWFkeSBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwor
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUodHJ1ZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKHRoaXJkUGFydHlPcmlnaW4gKyAiIGRpZG4ndCBnZXQgc2V0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAg
IHRlc3RQYXNzZWQodGhpcmRQYXJ0eU9yaWdpbiArICIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UgaW4gZGVidWcgbW9kZS4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NEZWJ1Z01vZGUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmlu
Zy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDE4MDNiZmNiNTNiMTQwNDlkNWUx
ZGFhZTViMjViNjI3ZmFjZTVhNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKK1BBU1MgR3JhbmRmYXRoZXJlZCBjb29raWUgd2FzIG5vdCBwdXJn
ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYWFmMGI4NTdmMmU4YzA3NDFhNWE1Y2M4NGE3ODk4N2QzYzVjODVmNAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTE2IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9
IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdCBmb3IgR3JhbmRmYXRoZXJpbmc8L3RpdGxlPgorICAg
IDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBmaXJzdFBhcnR5T3JpZ2luID0gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCI7CisgICAgY29uc3QgZmlyc3RQYXJ0eUJhc2VVcmwgPSBmaXJzdFBhcnR5T3Jp
Z2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3QgZmly
c3RQYXJ0eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3QgdGhpcmRQ
YXJ0eUNvb2tpZU5hbWUgPSAidGhpcmRQYXJ0eUNvb2tpZSI7CisgICAgY29uc3QgY29va2llVmFs
dWUgPSAidmFsdWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgPSAi
L3NldC1jb29raWUucGhwP25hbWU9IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT0i
ICsgY29va2llVmFsdWU7CisgICAgY29uc3QgcmV0dXJuVXJsID0gZmlyc3RQYXJ0eU9yaWdpbiAr
ICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy5odG1sIjsKKyAgICBjb25z
dCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qg
dGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNvb2tp
ZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsgdGhpcmRQYXJ0eUNvb2tpZU5hbWUgKyAiJnZh
bHVlPSIgKyBjb29raWVWYWx1ZTsKKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UoZmFsc2UpOworICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaXJlRGF0YU1v
ZGlmaWNhdGlvbkhhbmRsZXJBbmRDb250aW51ZSgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5pbnN0
YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0
aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgIH0KKworICAgIGZ1
bmN0aW9uIGNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmVBbmRDb250aW51ZSgpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9y
ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgfSk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5s
b2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAg
ICAgIC8vIFNldCBhIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBmaXJzdFBhcnR5QmFzZVVybCArIHN1YlBh
dGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyByZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAgICAg
ICAgLy8gQ2hlY2sgdGhhdCBsb2NhbGhvc3QncyBjb29raWUgaXMgdGhlcmUuCisgICAgICAgICAg
ICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiPSIg
KyBjb29raWVWYWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiRmlyc3QtcGFy
dHkgY29va2llIG5vdCBzZXQuIik7CisgICAgICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAzIjoKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA0IjsKKyAgICAgICAgICAgICAgICAv
LyBDbGVhciBzdG9yZSB0byB0cmlnZ2VyIGdyYW5kZmF0aGVyaW5nLgorICAgICAgICAgICAgICAg
IGNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmVBbmRDb250aW51ZSgpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAg
ICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA1IjsKKyAgICAgICAgICAgICAgICAvLyBT
ZXQgbG9jYWxob3N0IGFzIHByZXZhbGVudCByZXNvdXJjZS4KKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIs
IHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCBkaWQgbm90IGdldCBzZXQg
YXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICBydW5UZXN0KCk7
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlICIjc3RlcDUiOgorICAgICAgICAgICAgICAgIC8vIFNldCBhIGZpcnN0LXBhcnR5IGNv
b2tpZSBmb3IgMTI3LjAuMC4xLgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhy
ZWYgPSB0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldFRoaXJkUGFydHlDb29raWUgKyAi
IyIgKyByZXR1cm5VcmwgKyAiI3N0ZXA2IjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgIiNzdGVwNiI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aGFzaCA9ICJzdGVwNyI7CisgICAgICAgICAgICAgICAgLy8gU2V0IDEyNy4wLjAuMSBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovLzEyNy4wLjAuMSIsIHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2UoImh0dHA6Ly8xMjcuMC4wLjEiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIjEyNy4wLjAuMSBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDciOgorICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDgiOworICAgICAgICAg
ICAgICAgIC8vIFRyaWdnZXIgYSBwdXJnZS4KKyAgICAgICAgICAgICAgICBmaXJlRGF0YU1vZGlm
aWNhdGlvbkhhbmRsZXJBbmRDb250aW51ZSgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSAiI3N0ZXA4IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IGxv
Y2FsaG9zdCdzIGNvb2tpZSBpcyBzdGlsbCB0aGVyZS4KKyAgICAgICAgICAgICAgICBpZiAoZG9j
dW1lbnQuY29va2llICE9PSBmaXJzdFBhcnR5Q29va2llTmFtZSArICI9IiArIGNvb2tpZVZhbHVl
KQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJGaXJzdC1wYXJ0eSBjb29raWUgcHVy
Z2VkLiIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBh
c3NlZCgiR3JhbmRmYXRoZXJlZCBjb29raWUgd2FzIG5vdCBwdXJnZWQuIik7CisgICAgICAgICAg
ICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTaG91bGQgbm90IGJlIHJlYWNo
ZWQuIik7CisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisgICAgfQor
CisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiICYmIHdpbmRvdy50ZXN0UnVu
bmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBE
YXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVz
b3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgw
KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAg
ICAgIH0pOworICAgIH0gZWxzZQorICAgICAgICBydW5UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9sb2ctY3Jvc3Mtc2l0ZS1sb2FkLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbG9nLWNy
b3NzLXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sCmluZGV4IGM2Y2IwZGJhMDU2
YzE5MWFiOTRlYWIzN2IzZGYxM2UyY2I5ZThmMTkuLmZjYzgyYzU2NTY4MjhkZjA1YWNiYzIzYWI4
MGVlMDY0YmEwYTc4ZmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9sb2ctY3Jvc3Mtc2l0ZS1sb2FkLXdpdGgtbGluay1kZWNvcmF0aW9u
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2xvZy1jcm9zcy1zaXRlLWxvYWQtd2l0aC1saW5rLWRlY29yYXRpb24uaHRtbApAQCAtOCw2ICs4
LDcgQEAKIDxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+CiA8c2NyaXB0PgogICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKGZhbHNl
KTsKICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNl
ci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVz
ZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4OWY4NTVh
Nzg5Y2YxMGJmMzMwZjRjOTJlYTEyYjk0MWFiZWZjMDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1y
ZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCitQQVNTIENvb2tpZSBub3QgZGVsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Ut
d2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVz
ZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTdlODBmZDY2NGVlMWVh
ODAzOGQ5ZTg3MmM3Mzk1NzI5MGY1MTFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Ut
d2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0
PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBOb24tUHJldmFsZW50IFJlc291cmNlIFdp
dGggVXNlciBJbnRlcmFjdGlvbjwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0
IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NV
cmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCBvdGhl
clByZXZhbGVudFVybCA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvdGVtcCI7CisKKyAgICBmdW5j
dGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAh
PT0gIiIpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgbm90IGVtcHR5
LiIpOworICAgICAgICBjb25zdCBjb29raWUgPSAidGVzdENvb2tpZT10ZXN0VmFsdWUiOworICAg
ICAgICBkb2N1bWVudC5jb29raWUgPSBjb29raWUgKyAiOyBtYXgtYWdlPTEwMDsiOworICAgICAg
ICBpZiAoZG9jdW1lbnQuY29va2llICE9PSBjb29raWUpCisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJkb2N1bWVudC5jb29raWUgZGlkIG5vdCBnZXQgc2V0LiIpOworCisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ikhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAg
ICAgICAgICAgIC8vIFRoaXMgaXMgZG9uZSB0byBub3QgaGF2ZSBhbiBlbXB0eSBzZXQgb2YgcHJl
dmFsZW50IHJlc291cmNlcy4KKyAgICAgICAgICAgIC8vIE90aGVyd2lzZSBkYXRhIHJlY29yZHMg
YXJlIG5ldmVyIHNjYW5uZWQuCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZhbGVudFVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKG90aGVyUHJldmFsZW50VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
T3RoZXIgaG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRp
c3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQg
bm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxi
YWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmNv
b2tpZSA9PT0gY29va2llKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQo
IkNvb2tpZSBub3QgZGVsZXRlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgZGVsZXRlZCBvciBk
b2N1bWVudC5jb29raWUgY29udGFpbnMgb3RoZXIgY29va2llczogIiArIGRvY3VtZW50LmNvb2tp
ZSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRD
bGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRh
dGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0
aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1
bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVy
ICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRh
YmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRy
dWUpOworICAgICAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICAgICAgfSk7CisgICAg
fQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13
aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3Vy
Y2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jODlmODU1YTc4OWNmMTBiZjMzMGY0YzkyZWExMmI5NDFhYmVmYzA3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
bi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorUEFTUyBDb29raWUgbm90IGRlbGV0ZWQuCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJl
dmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxl
bnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNmJjZTk5MDQ1ZjBhM2VjY2RiYWQxODc4N2VlZDhmZmY2NjU3ZmY2NQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5o
dG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgor
PGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3Ig
Tm9uLVByZXZhbGVudCBSZXNvdXJjZSBXaXRob3V0IFVzZXIgSW50ZXJhY3Rpb248L3RpdGxlPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4
MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVz
dCArICIvdGVtcCI7CisgICAgY29uc3Qgb3RoZXJQcmV2YWxlbnRVcmwgPSAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7Cisg
ICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09ICIiKQorICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiZG9jdW1lbnQuY29va2llIG5vdCBlbXB0eS4iKTsKKyAgICAgICAgY29uc3QgY29va2llID0g
InRlc3RDb29raWU9dGVzdFZhbHVlIjsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gY29va2ll
ICsgIjsgbWF4LWFnZT0xMDA7IjsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gY29v
a2llKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIGRpZCBub3QgZ2V0
IHNldC4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24t
cHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICAvLyBUaGlzIGlzIGRvbmUgdG8g
bm90IGhhdmUgYW4gZW1wdHkgc2V0IG9mIHByZXZhbGVudCByZXNvdXJjZXMuCisgICAgICAgICAg
ICAvLyBPdGhlcndpc2UgZGF0YSByZWNvcmRzIGFyZSBuZXZlciBzY2FubmVkLgorICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uob3RoZXJQcmV2YWxl
bnRVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZhbGVudFVybCkpCisgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk90aGVyIGhvc3QgZGlkIG5vdCBnZXQgc2V0IGFz
IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xlYXJlZCBvZiB1c2VyIGludGVy
YWN0aW9uLiIpOworCisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRp
c3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgPT09IGNvb2tpZSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb29raWUgbm90IGRlbGV0ZWQuIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiQ29va2llIGRlbGV0ZWQgb3IgZG9jdW1lbnQuY29va2llIGNvbnRhaW5zIG90aGVy
IGNvb2tpZXM6ICIgKyBkb2N1bWVudC5jb29raWUpOworCisgICAgICAgICAgICAgICAgICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVj
b3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7CisgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0
YVJlY29yZHMoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVu
ZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNX
aGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgIHJ1blRlc3RSdW5u
ZXJUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJk
LXBhcnR5LWNvbnRleHQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1h
Y2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjBmYjk3ZjkxZmNkMzNjYzk3ODk3OWNkNDhhNTVhNDk0NzRkMjc3MTEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEt
dGhpcmQtcGFydHktY29udGV4dC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBA
QAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKwor
LS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2
ZSBvbmUgY29va2llLgorUmVjZWl2ZWQgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4K
K0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQYXJ0eUNvb2tpZT12YWx1ZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
bi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5
LWNvbnRleHQtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMt
aW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzY0Y2Zj
YjFmM2UzNzIwZmNhMjIzYzQyZDg3OGMyNWE5NjYyMjliZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50
LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0LWRh
dGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5n
PSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRl
c3QgdG8gZW5zdXJlIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2VzIGNhbiBhY2Nlc3MgdGhlaXIgY29v
a2llcyBpbiBhIHRoaXJkIHBhcnR5IGNvbnRleHQ8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIv
anMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4K
KyAgICBjb25zdCBwYXJ0aXRpb25Ib3N0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCB0
aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgdGhp
cmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgPSAiZmlyc3RQ
YXJ0eUNvb2tpZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSA9ICIv
c2V0LWNvb2tpZS5waHA/bmFtZT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZh
bHVlIjsKKyAgICBjb25zdCBmcmFnbWVudFdpdGhSZXR1cm5VcmwgPSAiaHR0cDovLzEyNy4wLjAu
MTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2Fu
LWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC5odG1sIjsKKyAgICBjb25z
dCBzdWJQYXRoVG9HZXRDb29raWVzID0gIi9nZXQtY29va2llcy5waHA/bmFtZTE9IiArIGZpcnN0
UGFydHlDb29raWVOYW1lOworCisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb3Bl
bklmcmFtZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVy
bDsKKyAgICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25s
b2FkID0gb25Mb2FkSGFuZGxlcjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGVsZW1lbnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Cisg
ICAgICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2Fz
ZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAgICAvLyBTZXQgYSBmaXJzdC1wYXJ0eSBjb29raWUg
Zm9yIGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0g
dGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llICsgIiMiICsg
ZnJhZ21lbnRXaXRoUmV0dXJuVXJsICsgIiNzdGVwMiI7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAgICAgICAgIC8vIExvYWQgbG9j
YWxob3N0IHVuZGVyIDEyNy4wLjAuMSBhbmQgY2hlY2sgdGhhdCBpdCBnZXRzIGl0cyBjb29raWUu
CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhU
b0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgb25lIGNvb2tpZS4iLCBmaW5p
c2hUZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAg
IGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBwYXJ0aXRpb25Ib3N0ICYmIGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggPT0gIiIgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVy
bmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAg
ICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1w
Q2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHRoaXJkUGFydHlPcmlnaW4sIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQ
YXJ0eU9yaWdpbiwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcocnVuVGVzdCk7CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgcnVuVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
bi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlw
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjNjNzIwMmIwM2U3NzBkNmU0NDZm
YjZmMzQwMGZiMzhjNTlmNTMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0
IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDov
L2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3Qi
LCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9s
b2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2Fs
aG9zdC10by1pcC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2Fs
aG9zdC10by1pcC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1YmRhNmY5ZjFiY2ViZjQ4OTQ1
NWJlY2U0ODVmNWNlY2QxZjYwOWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlv
bigiVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNv
dW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxz
ZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICB2
YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0
YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2
ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDovLzEyNy4wLjAu
MTo4MDAwIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1Mi
KSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBs
YWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjog
IiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWlu
TG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAg
ICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2Nh
bGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUo
J3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDov
L2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJl
VHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJo
dHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBz
dGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENo
YWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlk
U2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0
cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGly
ZWN0LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHAvP3JlZGlyZWN0VG89aHR0cDovLzEyNy4wLjAu
MTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2lmcmFtZS1yZXBvcnQtYmFj
ay1sb2FkZWQuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9j
YWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjNjNzIwMmIwM2U3NzBk
NmU0NDZmYjZmMzQwMGZiMzhjNTlmNTMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94
ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1l
VW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BB
U1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRw
Oi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAu
MSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVj
dC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjRiNWVlOTkzNzA0MTA1MmRjMjZlOGY2YTU4NjlhMjIxMzIwMDNhMzMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9z
dC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3Rz
IGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAg
ICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9u
IGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5p
c2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENo
YWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKwor
ICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYg
KGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAg
ICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBt
ZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisg
ICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAg
ICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3Rp
ZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygp
IHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdp
c3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4w
LjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEy
Ny4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRw
Oi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAg
ICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAg
ICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikg
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJl
U2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0
aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNy
Yz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2Vz
L3JlZGlyZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9pZnJhbWUtcmVw
b3J0LWJhY2stbG9hZGVkLmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGly
ZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0
aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2Fs
aG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWI1MTZmMTMyZjlm
YjEwMTM2ODIyNjNjNmYyYzgxMGI3ZmFmOWQ4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3Rp
bmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxo
b3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0
aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24t
c2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNT
dWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0
cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdU
bygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8x
MjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5n
LWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9z
dC10by1pcC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yZDljYTU5MDFkYjgwZTBkZDAyYzIwNTIwMzNjMTU3ZGRkMzZlMzFkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsx
LDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRl
c2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFt
ZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4i
KTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBm
dW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVk
aXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFs
c2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAg
ICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiKSB7CisgICAg
ICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIp
KTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2Vp
dmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2lu
KTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOwor
ICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0
KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNr
U3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8v
MTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0
dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEi
LCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRy
dWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAg
ICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RS
dW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7
CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNv
cmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxs
U3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlm
cmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jl
c291cmNlcy9wYWdlLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9j
YWxob3N0LXRvLWlwLmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNh
bmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQt
bmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhv
c3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
YjUxNmYxMzJmOWZiMTAxMzY4MjI2M2M2ZjJjODEwYjdmYWY5ZDhmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5k
Ym94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1s
b2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFt
ZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6
Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4x
IikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGly
ZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpIGlzIHRydWUK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGly
ZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3Rp
bmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRv
LWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxZTMzZjY2N2RhMzU5
ZjNhODJiZjNjMGMzMTBkMzRlYzM3NWIzNGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5n
LWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1p
cC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0
aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24t
c2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0
SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdl
IiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0
KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9
IGZhbHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVu
Y3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmln
aW4gPT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2
ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9t
IGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAg
bGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0
YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIo
KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAg
ICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3Vi
RnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAg
ICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVk
QXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScp
OworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lz
dGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9z
dCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBp
ZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNo
VGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1
ZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5E
YXRhUmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9wYWdlLXdpdGgt
bm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9z
dC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVz
dGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9z
dC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTVjODVlYjQ3ZTBmMDg0MTZlNjFmZDAxNWZkN2FlM2Ni
ODY2YjY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94
ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgc2FuZGJv
eGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBw
cm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0
IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8v
MTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVy
ZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIp
IGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5n
LWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRv
LWlwLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTczOGVhM2I1OWEwYTcwNzQzZDM0NWRmMDUy
ZWE2MjlkMmY2YjkzZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgt
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2Uu
aHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5k
Ym94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVk
IHByb3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOwor
CisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxh
c3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0No
ZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkg
eworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gIm51bGwiKSB7CisgICAgICAgICAg
ICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAg
ICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEg
bWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKwor
ICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAg
ICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90
aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMo
KSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVn
aXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAu
MC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8x
MjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0
cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7Cisg
ICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAg
ICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIp
IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAg
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2Vy
ZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlz
dGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBz
cmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNl
cy9wYWdlLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8t
aXAuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5l
c3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8t
aXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1l
LXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxo
b3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTVjODVlYjQ3ZTBmMDg0MTZl
NjFmZDAxNWZkN2FlM2NiODY2YjY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2Nh
bGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQg
cmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hl
ZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVV
bmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFT
UyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6
Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4x
IiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUt
d2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhv
c3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTdmYWYwMGE4ZmQ3MmYxNDRlYWFlZWU0YTdkMmQwY2I0OWI4ZDk5NQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCAr
MSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBk
ZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgc2FuZGJveGVkIGlmcmFtZSBu
ZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsK
KyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5j
dGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJl
Y3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7
CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAg
IGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikgeworICAgICAgICAgICAgICAgIGlmIChldmVu
dC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBh
biB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxh
c3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0
c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7
CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAg
ICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZy
YW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAg
ICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFz
UmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsK
KyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3Rl
cmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3Qi
KScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYg
KGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRl
c3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUp
OworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0
YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8vMTI3
LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcGFnZS13aXRoLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC5odG1s
Ij4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291
cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQ5YmZiOTBjYzFhYzVmOTMxNWRkZjA5Y2Q0YjkzMWM5OGI3
NDdlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyNCBAQAorVGVzdHMgdGhhdCBjb29raWUgYmxvY2tpbmcgaXMgYXBw
bGllZCB0byBwaW5nIGxvYWRzLgorICAgCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEt
LT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLgorUmVjZWl2
ZWQgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50
LmNvb2tpZTogZmlyc3RQYXJ0eUNvb2tpZT12YWx1ZQorCistLS0tLS0tLQorRnJhbWU6ICc8IS0t
ZnJhbWUyLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuCitEaWQgbm90
IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRv
Y3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMy0tPicKKy0tLS0t
LS0tCitQaW5nIHJlY2VpdmVkLgorSFRUUF9IT1NUOiBsb2NhbGhvc3Q6ODAwMAorUkVRVUVTVF9V
Ukk6IC9jb250ZW50ZXh0ZW5zaW9ucy9yZXNvdXJjZXMvc2F2ZS1waW5nLnBocD90ZXN0PXBpbmct
dG8tcHJldmFsZW50LXJlc291cmNlCitObyBjb29raWVzIGluIHBpbmcuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1wcmV2
YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmU2MjEyODExNThmZDM3ZWFlZGQwYzU0ZWFiMWU0NzM4ZTkwYTY1ZGIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDEwMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAg
ICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9u
Ij5UZXN0cyB0aGF0IGNvb2tpZSBibG9ja2luZyBpcyBhcHBsaWVkIHRvIHBpbmcgbG9hZHMuPC9k
aXY+Cis8YSBpZD0idGFyZ2V0TGluayIgaHJlZj0iIyIgcGluZz0iaHR0cDovL2xvY2FsaG9zdDo4
MDAwL2NvbnRlbnRleHRlbnNpb25zL3Jlc291cmNlcy9zYXZlLXBpbmcucGhwP3Rlc3Q9cGluZy10
by1wcmV2YWxlbnQtcmVzb3VyY2UiPlRoZSBsaW5rPC9hPgorPHNjcmlwdD4KKyAgICBpZiAodGVz
dFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICBjb25z
dCBwYXJ0aXRpb25Ib3N0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5
T3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgcmVzb3VyY2VQYXRo
ID0gIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3QgdGhpcmRQ
YXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsgcmVzb3VyY2VQYXRoOworICAgIGNvbnN0
IGZpcnN0UGFydHlDb29raWVOYW1lID0gImZpcnN0UGFydHlDb29raWUiOworICAgIGNvbnN0IHN1
YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIGZp
cnN0UGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgY29uc3QgcmV0dXJuVXJs
ID0gImh0dHA6Ly8iICsgcGFydGl0aW9uSG9zdCArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9w
aW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZS5odG1sIjsKKyAgICBjb25zdCBzdWJQYXRoVG9HZXRD
b29raWVzID0gIi9nZXQtY29va2llcy5waHA/bmFtZTE9IiArIGZpcnN0UGFydHlDb29raWVOYW1l
OworCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCwgY2FsbGJhY2spIHsK
KyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQp
OworICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zm
c2V0V2lkdGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsg
ZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNl
bnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAg
ICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmws
IG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAg
aWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2Fk
SGFuZGxlcjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVs
ZW1lbnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRj
aCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoK
KyAgICAgICAgICAgICAgICAvLyBTZXQgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3Qu
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNl
VXJsICsgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIHJldHVyblVybCArICIj
c3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAy
IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBjb29raWUgZ2V0cyBzZW50IGZv
ciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCBpcyBub3QgcHJldmFs
ZW50LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOwor
ICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9H
ZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4i
LCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNz
dGVwMyI6CisgICAgICAgICAgICAgICAgLy8gU2V0IGxvY2FsaG9zdCBhcyBwcmV2YWxlbnQgdG8g
cHV0IGl0IGluIHRoZSBibG9ja2luZyBjYXRlZ29yeS4KKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luLCB0cnVl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
VXBkYXRlQ29va2llQmxvY2tpbmcocnVuVGVzdCk7CisgICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDQiOworICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAg
ICAgICAvLyBDaGVjayB0aGF0IG5vIGNvb2tpZSBnZXRzIHNlbnQgZm9yIGxvY2FsaG9zdCB1bmRl
ciAxMjcuMC4wLjEgc2luY2UgbG9jYWxob3N0J3MgY29va2llcyBhcmUgYmxvY2tlZC4KKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA1IjsKKyAgICAgICAgICAg
ICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyAr
ICAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4iLCBydW5UZXN0KTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNSI6CisgICAgICAgICAg
ICAgICAgLy8gQ2xpY2sgdGhlIGxpbmsgdG8gdHJpZ2dlciB0aGUgcGluZy4KKyAgICAgICAgICAg
ICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5T3JpZ2luICsgIi9jb250ZW50ZXh0ZW5z
aW9ucy9yZXNvdXJjZXMvZ2V0LXBpbmctZGF0YS5waHA/dGVzdD1waW5nLXRvLXByZXZhbGVudC1y
ZXNvdXJjZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Ym9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICBmZXRjaCgiL2NvbnRlbnRleHRlbnNpb25zL3Jlc291
cmNlcy9kZWxldGUtcGluZy5waHA/dGVzdD1waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZSIpLnRo
ZW4oKCk9PnsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg
ICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiKSB7CisgICAgICAg
IGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFi
YXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsK
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAg
ICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0g
ZWxzZSB7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9w
cmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lNGUzMmM1OTNkZTEwZDU3NzM3MTAxMzU3MWRkMzQ4ZjUzODUxOTZkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgd2UgZ3JhbnQgVXNlciBJbnRlcmFjdGlv
biBjcmVkaXQgZm9yIGhhbmRsZWQga2V5cHJlc3Nlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1NpbXVsYXRlIHVzZXIgdHlwaW5nIGxldHRlciAnYScgaW50byB0aGUgZmllbGQu
CitQQVNTIHRlc3RJbnB1dC52YWx1ZSBpcyAiYSIKK1BBU1MgT3JpZ2luIHdhcyBncmFudGVkIHVz
ZXIgaW50ZXJhY3Rpb24uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKyAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJl
dmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjdlNTZhNTBjY2M4NGY4MGExNzVkZjQ2N2ZmNzg4OTRjZTdiNTE5ZmMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFs
ZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjIg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
IlRlc3RzIHRoYXQgd2UgZ3JhbnQgVXNlciBJbnRlcmFjdGlvbiBjcmVkaXQgZm9yIGhhbmRsZWQg
a2V5cHJlc3Nlcy4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitjb25zdCBzdGF0aXN0aWNz
VXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC90ZW1wIjsKKworb25sb2FkID0gZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgdGVzdEZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RG
cmFtZSIpOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAg
aW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVT
Y2FubmVkKHRydWUpOworICAgIH0KKworICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICBp
ZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1Vy
bCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IGNsZWFyZWQgb2YgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgdGVz
dElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RJbnB1dCIpOworCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxs
YmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
InRlc3RJbnB1dC52YWx1ZSIsICJhIik7CisKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPcmlnaW4gZGlkIG5vdCBnZXQgdXNlciBpbnRl
cmFjdGlvbiBjcmVkaXQuIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJPcmlnaW4gd2FzIGdyYW50ZWQgdXNlciBpbnRlcmFjdGlvbi4iKTsK
KworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIHRlc3RGcmFtZS5zcmMgPSAiYWJvdXQ6YmxhbmsiOworICAgICAgICAgICAgICAgICAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgICAgICB9
LCAwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2Up
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVu
RGF0YVJlY29yZHNSZW1vdmFsKDApOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
UHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworCisgICAgICAgICAgICBkZWJ1Zygi
U2ltdWxhdGUgdXNlciB0eXBpbmcgbGV0dGVyICdhJyBpbnRvIHRoZSBmaWVsZC4iKTsKKyAgICAg
ICAgICAgIHRlc3RJbnB1dC5mb2N1cygpOworICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNl
bmRlcikKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJhIik7CisgICAgICAg
IH0pOworICAgIH0pOworfQorPC9zY3JpcHQ+Cis8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUiIHNyYz0i
cmVzb3VyY2VzL29uY2xpY2suaHRtbCI+PC9pZnJhbWU+Cis8aW5wdXQgaWQ9InRlc3RJbnB1dCIg
dHlwZT0idGV4dCI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFu
ZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtl
eWRvd24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2ZTU1OWJmYTJkZDI0NjE2
Nzk4OWIyNWFiODIzOWM0NTZiMTY0YjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFu
ZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0
cyB0aGF0IHdlIGRvIG5vdCBncmFudCBVc2VyIEludGVyYWN0aW9uIGNyZWRpdCBmb3IgdW5oYW5k
bGVkIGtleXByZXNzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU2ltdWxhdGUg
YW4gdW5oYW5kbGVkIHVzZXIga2V5IHByZXNzLgorUEFTUyBPcmlnaW4gZGlkIG5vdCBnZXQgdXNl
ciBpbnRlcmFjdGlvbiBjcmVkaXQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1k
YXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjVhY2RlYjI4ZTRjY2I3MTI4MjUzMjE3YmE4ODE5ZWE3ZWE2ZmIyZmQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwKQEAg
LTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citk
ZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB3ZSBkbyBub3QgZ3JhbnQgVXNlciBJbnRlcmFjdGlvbiBj
cmVkaXQgZm9yIHVuaGFuZGxlZCBrZXlwcmVzcy4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOwor
Citjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC90ZW1wIjsKKwor
b25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgY29uc3QgdGVzdEZyYW1lID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIpOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYm
IHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFz
ZSh0cnVlKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFi
bGVkKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1do
ZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgIH0KKworICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsZWFyZWQgb2YgdXNlciBpbnRlcmFjdGlvbi4iKTsK
KworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFS
ZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQor
ICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPcmlnaW4gZGlkIG5vdCBnZXQgdXNlciBp
bnRlcmFjdGlvbiBjcmVkaXQuIik7CisKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RnJhbWUuc3JjID0gImFib3V0OmJsYW5r
IjsKKyAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3Rh
dGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSwg
MCk7CisgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0
YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsK
KworICAgICAgICAgICAgZGVidWcoIlNpbXVsYXRlIGFuIHVuaGFuZGxlZCB1c2VyIGtleSBwcmVz
cy4iKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAg
ICAgZXZlbnRTZW5kZXIua2V5RG93bigiYSIsIFsibWV0YUtleSJdKTsKKyAgICAgICAgfSk7Cisg
ICAgfSk7Cit9Cis8L3NjcmlwdD4KKzxpZnJhbWUgaWQ9InRlc3RGcmFtZSIgc3JjPSJyZXNvdXJj
ZXMvb25jbGljay5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQt
cmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVz
b3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jODlmODU1YTc4OWNmMTBiZjMzMGY0YzkyZWExMmI5NDFhYmVmYzA3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3By
ZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCitQQVNTIENvb2tpZSBub3QgZGVsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNv
dXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11
c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWMxM2E1MDI3NGM2ZGQ5
NGJmZThhMTY0NTljNGNiYWI4YTkwZTkwYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0
aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2OSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJV
VEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBQcmV2YWxlbnQgUmVzb3VyY2UgV2l0aCBVc2Vy
IEludGVyYWN0aW9uPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3NldFVwQW5k
UnVuKCknLCAwKSI+Cis8c2NyaXB0PgorICAgIGlmICh0ZXN0UnVubmVyKQorICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3
LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0
VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCBvdGhlclByZXZhbGVudFVybCA9ICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAvdGVtcCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3Qo
KSB7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09ICIiKQorICAgICAgICAgICAgdGVz
dEZhaWxlZCgiZG9jdW1lbnQuY29va2llIG5vdCBlbXB0eS4iKTsKKyAgICAgICAgY29uc3QgY29v
a2llID0gInRlc3RDb29raWU9dGVzdFZhbHVlIjsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0g
Y29va2llICsgIjsgbWF4LWFnZT0xMDA7IjsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAh
PT0gY29va2llKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIGRpZCBu
b3QgZ2V0IHNldC4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgZG9uZSB0
byBub3QgaGF2ZSBhbiBlbXB0eSBzZXQgb2YgcHJldmFsZW50IHJlc291cmNlcy4KKyAgICAgICAg
ICAgIC8vIE90aGVyd2lzZSBkYXRhIHJlY29yZHMgYXJlIG5ldmVyIHNjYW5uZWQuCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZh
bGVudFVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsKSkKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3RoZXIgaG9zdCBkaWQgbm90IGdldCBzZXQg
YXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50
ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3Rh
dGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llID09PSBjb29raWUpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29va2llIG5vdCBkZWxldGVkLiIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkNvb2tpZSBkZWxldGVkIG9yIGRvY3VtZW50LmNvb2tpZSBjb250YWlucyBv
dGhlciBjb29raWVzOiAiICsgZG9jdW1lbnQuY29va2llKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFS
ZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmRE
YXRhUmVjb3JkcygpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNldFVwQW5kUnVuKCkgeworICAgICAgICBp
ZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVz
dFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVl
LCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAg
ICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgi
V3JvbmcgaG9zdCwgbm8gdGVzdFJ1bm5lciwgb3Igbm8gaW50ZXJuYWxzLiIpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0
aW9uLXRpbWVvdXQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50
ZXJhY3Rpb24tdGltZW91dC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc4MDll
OTFjMjNjMjNhMjM2OWNkMDg1NGViMTgxNjQ3ZGZhZWI0MwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVz
b3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCitQQVNTIENvb2tpZSBkZWxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdp
dGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgt
dXNlci1pbnRlcmFjdGlvbi10aW1lb3V0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjIwODk3
MDVkMjc4ZWFhMjIxMjY4NTZkMWQ2ZDA5OWE1OWEwYTdiNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVz
b3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAg
IDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIFByZXZhbGVudCBS
ZXNvdXJjZSBXaXRoIFVzZXIgSW50ZXJhY3Rpb24gVGltZW91dDwvdGl0bGU+CisgICAgPHNjcmlw
dCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4
MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVz
dCArICIvdGVtcCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAg
IGlmIChkb2N1bWVudC5jb29raWUgIT09ICIiKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9j
dW1lbnQuY29va2llIG5vdCBlbXB0eS4iKTsKKyAgICAgICAgY29uc3QgY29va2llID0gInRlc3RD
b29raWU9dGVzdFZhbHVlIjsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gY29va2llICsgIjsg
bWF4LWFnZT0xMDA7IjsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gY29va2llKQor
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIGRpZCBub3QgZ2V0IHNldC4i
KTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hh
ZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0
IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0Nh
bGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29v
a2llICE9PSAiIikKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBu
b3QgZGVsZXRlZDogIiArIGRvY3VtZW50LmNvb2tpZSk7CisgICAgICAgICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvb2tpZSBkZWxldGVkLiIp
OworICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0VuYWJsZWQoZmFsc2UpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3Rp
Y3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNl
KTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJl
dHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzVGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbigwKTsKKworICAgICAgICAgICAg
ICAgIC8vIFRoaXMgaXMgdG8gZW5zdXJlIHRoZSB0aW1lb3V0IHdlJ3JlIHRlc3RpbmcuCisgICAg
ICAgICAgICAgICAgc2V0VGltZW91dCgidGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRp
c3RpY3NBbmREYXRhUmVjb3JkcygpIiwgMTAwMCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRl
clRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAg
ICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3Rp
ZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICBydW5UZXN0
UnVubmVyVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZh
bGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZh
bGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmY3ODA5ZTkxYzIzYzIzYTIzNjljZDA4NTRlYjE4MTY0N2RmYWViNDMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRh
YmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgQ29va2llIGRlbGV0ZWQuCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2
YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJl
c291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjI3YjBiMmFhZTMwODRkNGM0N2Q5ZWM5ZjdjZTMyZmU0ZDQwYjljNGEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFs
ZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgUHJldmFsZW50
IFJlc291cmNlIFdpdGhvdXQgVXNlciBJbnRlcmFjdGlvbjwvdGl0bGU+CisgICAgPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAw
IjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCAr
ICIvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0ICgpIHsKKyAgICAgICAgaWYgKGRv
Y3VtZW50LmNvb2tpZSAhPT0gIiIpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgbm90
IGRlbGV0ZWQ6ICIgKyBkb2N1bWVudC5jb29raWUpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJDb29raWUgZGVsZXRlZC4iKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJl
c291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5z
dGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAh
PT0gIiIpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgbm90IGVtcHR5
LiIpOworICAgICAgICBjb25zdCBjb29raWUgPSAidGVzdENvb2tpZT10ZXN0VmFsdWUiOworICAg
ICAgICBkb2N1bWVudC5jb29raWUgPSBjb29raWUgKyAiOyBtYXgtYWdlPTEwMDsiOworICAgICAg
ICBpZiAoZG9jdW1lbnQuY29va2llICE9PSBjb29raWUpCisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJkb2N1bWVudC5jb29raWUgZGlkIG5vdCBnZXQgc2V0LiIpOworCisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ikhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRp
c3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xlYXJlZCBv
ZiB1c2VyIGludGVyYWN0aW9uLiIpOworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0
YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoImZpbmlzaFRlc3QoKSIsIDEwMDApOworICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdl
ZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0
aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09
PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFs
cy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAg
ICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzQ3NTdiYzUyNTYwMDUyMWQ0NjE1NDVkMDM2
N2MwZjA1MDFiZWYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BydW5lLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3RzIHRoYXQgc3RhdGlzdGljcyBhcmUgcHJ1bmVkIGlu
IHRoZSByaWdodCBvcmRlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
VGVzdCBpdGVyYXRpb24gMSBwYXNzZWQuCitQQVNTIFRlc3QgaXRlcmF0aW9uIDIgcGFzc2VkLgor
UEFTUyBUZXN0IGl0ZXJhdGlvbiAzIHBhc3NlZC4KK1BBU1MgVGVzdCBpdGVyYXRpb24gNCBwYXNz
ZWQuCitQQVNTIFRlc3QgaXRlcmF0aW9uIDUgcGFzc2VkLgorUEFTUyBUZXN0IGl0ZXJhdGlvbiA2
IHBhc3NlZC4KK1BBU1MgVGVzdCBpdGVyYXRpb24gNyBwYXNzZWQuCitQQVNTIFRlc3QgaXRlcmF0
aW9uIDggcGFzc2VkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFz
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjBjYWI3ZDM5MTcxZDAzZjQ3YjQxOWQyYWRiMGNhMTM4YWRmNzhl
YjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTYz
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0i
VVRGLTgiPgorICAgIDx0aXRsZT5UZXN0IGZvciBSZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3MgUHJ1
bmluZzwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlv
bigiVGVzdHMgdGhhdCBzdGF0aXN0aWNzIGFyZSBwcnVuZWQgaW4gdGhlIHJpZ2h0IG9yZGVyLiIp
OworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3Qgb2xkZXJUaW1lc3RhbXAg
PSBNYXRoLnJvdW5kKChuZXcgRGF0ZSgpKS5nZXRUaW1lKCkgLyAxMDAwKTsKKyAgICBjb25zdCBu
ZXdlclRpbWVzdGFtcCA9IG9sZGVyVGltZXN0YW1wICsgMTA7CisgICAgY29uc3QgbmV3ZXN0VGlt
ZXN0YW1wID0gbmV3ZXJUaW1lc3RhbXAgKyAxMDsKKworICAgIGNvbnN0IHVybHNUb0JlUHJ1bmVk
ID0gWworICAgICAgICB7IHVybDogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC90ZW1wIiwgcHJldmFs
ZW50OiBmYWxzZSB9LAorICAgICAgICB7IHVybDogImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1w
IiwgcHJldmFsZW50OiBmYWxzZSB9LAorICAgICAgICB7IHVybDogImh0dHA6Ly8xMjcuMC4wLjM6
ODAwMC90ZW1wIiwgcHJldmFsZW50OiB0cnVlIH0sCisgICAgICAgIHsgdXJsOiAiaHR0cDovLzEy
Ny4wLjAuNDo4MDAwL3RlbXAiLCBwcmV2YWxlbnQ6IHRydWUgfSwKKyAgICAgICAgeyB1cmw6ICJo
dHRwOi8vMTI3LjAuMC41OjgwMDAvdGVtcCIsIHByZXZhbGVudDogZmFsc2UgfSwKKyAgICAgICAg
eyB1cmw6ICJodHRwOi8vMTI3LjAuMC42OjgwMDAvdGVtcCIsIHByZXZhbGVudDogZmFsc2UgfSwK
KyAgICAgICAgeyB1cmw6ICJodHRwOi8vMTI3LjAuMC43OjgwMDAvdGVtcCIsIHByZXZhbGVudDog
dHJ1ZSB9LAorICAgICAgICB7IHVybDogImh0dHA6Ly8xMjcuMC4wLjg6ODAwMC90ZW1wIiwgcHJl
dmFsZW50OiB0cnVlIH0KKyAgICBdOworCisgICAgZnVuY3Rpb24gY2hlY2tJZlByZXZhbGVudEFj
Y29yZGluZ1RvSW5pdGlhbEV4cGVjdGF0aW9uKGJlZ2luLCBlbmQpIHsKKyAgICAgICAgdmFyIGZh
aWxlZCA9IGZhbHNlOworICAgICAgICBmb3IgKHZhciBpID0gYmVnaW47IGkgPCBlbmQ7ICsraSkg
eworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UodXJsc1RvQmVQcnVuZWRbaV0udXJsKSAhPT0gdXJsc1RvQmVQcnVuZWRbaV0ucHJldmFsZW50
KSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiY2hlY2tJZlByZXZhbGVudEFjY29yZGlu
Z1RvSW5pdGlhbEV4cGVjdGF0aW9uOiBUZXN0IGl0ZXJhdGlvbiAiICsgY3VycmVudFRlc3QgKyAi
IGZhaWxlZC4gIiArIHVybHNUb0JlUHJ1bmVkW2ldLnVybCArICh1cmxzVG9CZVBydW5lZFtpXS5w
cmV2YWxlbnQgPyAiIHdhc24ndCAiIDogIiB3YXMgIikgKyAicHJldmFsZW50Iik7CisgICAgICAg
ICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg
ICBpZiAoZmFpbGVkKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRv
Q29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBj
aGVja0lmUHJldmFsZW50KGJlZ2luLCBlbmQsIGV4cGVjdGVkKSB7CisgICAgICAgIHZhciBmYWls
ZWQgPSBmYWxzZTsKKyAgICAgICAgZm9yICh2YXIgaSA9IGJlZ2luOyBpIDwgZW5kOyArK2kpIHsK
KyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHVybHNUb0JlUHJ1bmVkW2ldLnVybCkgIT09IGV4cGVjdGVkKSB7CisgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiY2hlY2tJZlByZXZhbGVudDogVGVzdCBpdGVyYXRpb24gIiArIGN1cnJlbnRU
ZXN0ICsgIiBmYWlsZWQuICIgKyB1cmxzVG9CZVBydW5lZFtpXS51cmwgKyAoZXhwZWN0ZWQgPyAi
IHdhc24ndCAiIDogIiB3YXMgIikgKyAicHJldmFsZW50Iik7CisgICAgICAgICAgICAgICAgZmFp
bGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoZmFpbGVk
KSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0
YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBpbml0aWFsaXplU3Rh
dGlzdGljc0FuZFJ1blRlc3RzKHN0ZXApIHsKKyAgICAgICAgc3dpdGNoIChzdGVwKSB7CisgICAg
ICAgICAgICAvLyBOb24tcHJldmFsZW50IHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbiB0byBiZSBw
cnVuZWQgZmlyc3QuCisgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbMF0udXJsLCBvbGRlclRp
bWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMik7
IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAyOgorICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVk
WzFdLnVybCwgbmV3ZXJUaW1lc3RhbXAsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGlj
c0FuZFJ1blRlc3RzKDMpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IC8vIFByZXZhbGVudCB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIHNlY29u
ZC4KKyAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh1cmxzVG9CZVBydW5lZFsyXS51cmwsIHRydWUsIGZ1
bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDQpOyB9KTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFsyXS51cmwsIG9s
ZGVyVGltZXN0YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0
cyg1KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDU6Cisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
dXJsc1RvQmVQcnVuZWRbM10udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRp
c3RpY3NBbmRSdW5UZXN0cyg2KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIDY6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFz
dFNlZW4odXJsc1RvQmVQcnVuZWRbM10udXJsLCBuZXdlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7
IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoNyk7IH0pOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgLy8gTm9uLXByZXZhbGVudCB3aXRoIHVzZXIgaW50ZXJhY3Rp
b24gdG8gYmUgcHJ1bmVkIHRoaXJkLgorICAgICAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih1cmxzVG9C
ZVBydW5lZFs0XS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0Fu
ZFJ1blRlc3RzKDgpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgODoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1
cmxzVG9CZVBydW5lZFs0XS51cmwsIG9sZGVyVGltZXN0YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlh
bGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyg5KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIDk6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHVybHNUb0JlUHJ1bmVkWzVdLnVybCwgdHJ1ZSwg
ZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTApOyB9KTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTA6CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbNV0udXJs
LCBuZXdlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVu
VGVzdHMoMTEpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8vIFBy
ZXZhbGVudCB3aXRoIHVzZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIGxhc3QuCisgICAgICAg
ICAgICBjYXNlIDExOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1bmVkWzZdLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7
IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTIpOyB9KTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTI6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHVybHNUb0JlUHJ1bmVkWzZdLnVy
bCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTMp
OyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTM6CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVu
ZWRbNl0udXJsLCBvbGRlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0
aWNzQW5kUnVuVGVzdHMoMTQpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgMTQ6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UodXJsc1RvQmVQcnVuZWRbN10udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsg
aW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxNSk7IH0pOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSAxNToKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odXJsc1RvQmVQcnVuZWRbN10udXJs
LCB0cnVlLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxNik7
IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxNjoKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5l
ZFs3XS51cmwsIG5ld2VyVGltZXN0YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3Rp
Y3NBbmRSdW5UZXN0cygxNyk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSAxNzoKKyAgICAgICAgICAgICAgICBjaGVja0lmUHJldmFsZW50QWNjb3JkaW5nVG9J
bml0aWFsRXhwZWN0YXRpb24oMCwgdXJsc1RvQmVQcnVuZWQubGVuZ3RoKTsKKyAgICAgICAgICAg
ICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICB2YXIgY3VycmVudFRlc3Q7CisgICAgZnVuY3Rpb24gY2hlY2tTdGF0aXN0aWNzQWZ0
ZXJQcnVuaW5nKCkgeworICAgICAgICAvLyBQcnVuZWQgZW50cmllcyBzaG91bGQgbm90IGJlIHBy
ZXZhbGVudC4KKyAgICAgICAgY2hlY2tJZlByZXZhbGVudCgwLCBjdXJyZW50VGVzdCwgZmFsc2Up
OworICAgICAgICAvLyBOb24tcHJ1bmVkIGVudHJpZXMgc2hvdWxkIGtlZXAgdGhlaXIgZXhwZWN0
ZWQgc3RhdHVzLgorICAgICAgICBjaGVja0lmUHJldmFsZW50QWNjb3JkaW5nVG9Jbml0aWFsRXhw
ZWN0YXRpb24oY3VycmVudFRlc3QsIHVybHNUb0JlUHJ1bmVkLmxlbmd0aCk7CisgICAgICAgIHRl
c3RQYXNzZWQoIlRlc3QgaXRlcmF0aW9uICIgKyBjdXJyZW50VGVzdCArICIgcGFzc2VkLiIpOwor
ICAgICAgICBpZiAoY3VycmVudFRlc3QgPCB1cmxzVG9CZVBydW5lZC5sZW5ndGgpIHsKKyAgICAg
ICAgICAgICsrY3VycmVudFRlc3Q7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0
aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0aXN0aWNzQWZ0ZXJQcnVu
aW5nKTsKKyAgICAgICAgICAgIGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMSk7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRv
Q29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgZmlsbGVy
VXJsOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGZpbGxlclVybCA9ICJodHRw
Oi8vMTI3LjAuIiArIGN1cnJlbnRUZXN0ICsgIi4xOjgwMDAvdGVtcCI7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKGZpbGxlclVybCwgdHJ1ZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2Vy
SW50ZXJhY3Rpb24oZmlsbGVyVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2VlbihmaWxsZXJVcmwsIG5ld2VzdFRpbWVz
dGFtcCwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2Uo
dHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVz
b3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOwor
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jk
c1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNYXhT
dGF0aXN0aWNzRW50cmllcyh1cmxzVG9CZVBydW5lZC5sZW5ndGgpOworICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NQcnVuZUVudHJpZXNEb3duVG8odXJsc1RvQmVQcnVuZWQubGVuZ3Ro
KTsKKworICAgICAgICBjdXJyZW50VGVzdCA9IDE7CisgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFs
bFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRpc3RpY3NBZnRl
clBydW5pbmcpOworICAgICAgICBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDEpOwor
ICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVk
aXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjdjMTQzOGIxODY0MDY0MmFhMTZmYzA2YjY5ZDg0MWZkZjNiZjE2ZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9y
IHNhbmRib3hlZCBpZnJhbWVzIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlz
IHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGlu
Z1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNT
IHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDov
LzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjY3MTEy
MDUwNjgxODM5MWNhOTY3ZmYyNGZmZmMwNThjOTIxOWY0MQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAg
KzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAg
ZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBzYW5kYm94ZWQgaWZyYW1lcyBn
ZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7Cisg
ICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2Us
IGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAg
ICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERh
dGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdl
c1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0
YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdl
SW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQg
PSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAg
ICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gIm51bGwiKSB7CisgICAgICAgICAgICAgICAg
aWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2Fn
ZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAg
ICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAg
aWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2Jz
ZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7Cisg
ICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJl
ZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikn
KTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdp
c3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4w
LjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xv
Y2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAg
ICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAg
ZmluaXNoVGVzdCgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc2NyaXB0cyIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgw
MDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwLz9yZWRpcmVj
dFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNl
cy9yZWRpcmVjdC5waHAvP3JlZGlyZWN0VG89aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2lmcmFtZS1yZXBvcnQtYmFjay1sb2FkZWQuaHRtbCI+
Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJh
bWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjdjMTQzOGIxODY0MDY0MmFhMTZmYzA2YjY5ZDg0MWZkZjNiZjE2
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1s
b2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRo
YXQgcmVkaXJlY3RzIGZvciBzYW5kYm94ZWQgaWZyYW1lcyBnZXQgY291bnRlZCBwcm9wZXJseS4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6
Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4x
IikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGly
ZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpIGlzIHRydWUK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFi
YXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRh
dGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjAyNmJkOWMwYzIxMmI3ZTVmMTY0OWI1OTNiOTc4ODNj
ZjMxNDhmYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1p
cC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0
aGF0IHJlZGlyZWN0cyBmb3Igc2FuZGJveGVkIGlmcmFtZXMgZ2V0IGNvdW50ZWQgcHJvcGVybHku
Iik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAg
ZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFs
c2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikg
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJl
U2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0
aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRl
ZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAg
ZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5v
cmlnaW4gPT09ICJudWxsIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4
T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQu
ZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVk
IG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRp
cmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisg
ICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0K
KworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVU
cnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0
dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91
bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdU
bygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAg
IHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVj
dGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAg
ICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5S
ZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAg
ICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFs
bG93LXNjcmlwdHMiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAuMC4x
OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwLz9yZWRp
cmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291
cmNlcy9pZnJhbWUtcmVwb3J0LWJhY2stbG9hZGVkLmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94
ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10
by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzNjU4
Y2QzNDNmNTU2ZTBjMzQ0NzVlZjllZjQ1YzYyMGQ0ZDQyN2UKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5l
c3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9j
YWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0
cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBz
YW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1
YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRy
dWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1Rv
KCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEy
Ny4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8t
aXAtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wOTJkNTk5OTY0ZTdlNjJmZDA1ZmIwZDc4YWU1ZTI5NjYwNTdhMDY2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRi
b3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlw
LXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRl
c3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBh
IHNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2Fn
ZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVz
dCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNv
cmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisg
ICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAg
ICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1l
c3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikg
eworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEp
CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlM
ICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50
Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0g
dHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmlu
aXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlv
biBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAi
aHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9z
dCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3
LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNr
ZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVk
KQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMiIHNyYz0i
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3Bh
Z2Utd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8t
aXAuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGlu
Zy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8t
aXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0
aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxo
b3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzY1OGNkMzQzZjU1NmUwYzM0
NDc1ZWY5ZWY0NWM2MjBkNGQ0MjdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13
aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2Nh
bGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQg
cmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIHNhbmRib3hl
ZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVV
bmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFT
UyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6
Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4x
IiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRo
LW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhv
c3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZGY4NmZlOGMzMjk0ZTI1MzkyMmMyNWVhMzc5MjdmZDVjOTQzNmZmOAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCAr
MSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBk
ZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJh
bWUgbmVzdGVkIGluIGEgc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsK
KyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5j
dGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2Fu
bmVkKHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NE
aWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0g
ZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5j
dGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdp
biA9PT0gIm51bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigi
UEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRh
LnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3Jp
Z2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0
Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAg
ICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUo
J3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDov
L2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJl
VHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJo
dHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hv
dWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5n
VG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAg
ICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGly
ZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9
CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2FuZGJveD0iYWxsb3ct
c2NyaXB0cyIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9yZXNvdXJjZXMvcGFnZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2Fs
aG9zdC10by1pcC10by1sb2NhbGhvc3QuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGly
ZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3Rpbmct
aWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8t
aXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQxNmU2
MWZkMDE1ZmQ3YWUzY2I4NjZiNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdp
dGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZv
ciBhIHNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0
IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDov
L2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3Qi
LCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9s
b2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3Rp
bmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3Qt
dG8taXAtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNmU5NGE0NTk2OTg1NGQzZTM4OGQxMGFh
ZGNhZjBhMWQyYTRkYWFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0
bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAg
IDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgc2FuZGJv
eGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBw
cm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKwor
ICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0
UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUp
OworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVj
b3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFs
bFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENo
YWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKwor
ICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYg
KGV2ZW50Lm9yaWdpbiA9PT0gIm51bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRh
dGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVu
ZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBh
Z2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hl
Y2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBz
aG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVV
bmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRp
cmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7
CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFz
dFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgp
OworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2Fu
ZGJveD0iYWxsb3ctc2NyaXB0cyIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcGFnZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQt
bmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10
by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNWM4
NWViNDdlMGYwODQxNmU2MWZkMDE1ZmQ3YWUzY2I4NjZiNjkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5l
c3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8t
aXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitU
ZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5v
bi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlz
IHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGlu
Z1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNT
IHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDov
LzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1p
ZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1s
b2NhbGhvc3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41ZTE5ZGQxMDAyMTE1ZDhhMTk0ZmMyMjQxZDU4ZjRmODJlMDAyYmQ4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEs
NTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVz
Y3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUgbmVz
dGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7Cisg
ICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rp
b24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5l
ZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlk
U2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZh
bHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rp
b24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4g
PT09ICJudWxsIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBB
U1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5y
ZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdp
bjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENo
YWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAg
ICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9s
b2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRy
dWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0
cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1Rv
KCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAg
ICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVj
dENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQor
ICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNj
cmlwdHMiIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cmVzb3VyY2VzL3BhZ2Utd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10
by1pcC10by1sb2NhbGhvc3QuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
ZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
ZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yZGMwNzNkYTQ3Y2JhNDg2MDc3MjNkNGZkYjYzY2JhMTU2ZDg3
ZTYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3NldC1jdXN0b20tcHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUt
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgZm9yIGVuYWJsaW5n
IGRlYnVnIG1vZGUgYW5kIHRoYXQgaXQgYWxsb3dzIHNldHRpbmcgYSBjdXN0b20gZG9tYWluIGFz
IGEgcHJldmFsZW50IHJlc291cmNlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBodHRwOi8vbG9jYWxob3N0OjgwMDAgZ290IHNldCBhcyBhIGN1c3RvbSBwcmV2YWxlbnQg
cmVzb3VyY2UgaW4gZGVidWcgbW9kZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4tZGVi
dWctbW9kZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3NldC1jdXN0b20tcHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUt
ZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZmRhODEyMDE5YTllNzNmZjk1NTg5MTVlMGY4ODky
NmE4ZDkwNDlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0b20tcHJldmFsZW50LXJlc291cmNlLWluLWRlYnVn
LW1vZGUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgZm9yIGVuYWJsaW5nIGRlYnVnIG1v
ZGUgYW5kIHRoYXQgaXQgYWxsb3dzIHNldHRpbmcgYSBjdXN0b20gZG9tYWluIGFzIGEgcHJldmFs
ZW50IHJlc291cmNlLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3Qg
dGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworCisgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQodGhpcmRQYXJ0eU9yaWdpbiArICIgYWxyZWFkeSBzZXQgYXMgcHJldmFsZW50IHJlc291
cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZUZvckRlYnVnTW9kZSh0aGlyZFBhcnR5T3JpZ2luLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUodHJ1ZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQodGhpcmRQYXJ0eU9yaWdpbiArICIgZGlkbid0IGdldCBzZXQgYXMgcHJl
dmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0UGFzc2VkKHRoaXJkUGFydHlPcmlnaW4gKyAiIGdvdCBzZXQgYXMg
YSBjdXN0b20gcHJldmFsZW50IHJlc291cmNlIGluIGRlYnVnIG1vZGUuIik7CisgICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0RlYnVnTW9kZShmYWxzZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBm
aW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJy
ZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1m
b3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2JkNTQzZWM5YWYzMjRiZDUwZGMxZDRjODZjZGIwOWU5YzRkNWIyOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1y
ZWRpcmVjdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3RzIHRo
YXQgb25seSB0aGUgb3JpZ2luIGlzIHNlbnQgYXMgcmVmZXJyZXIgaW4gcmVkaXJlY3RzIHRvIHBy
ZXZhbGVudCByZXNvdXJjZXMgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWZlcnJlciBpcyAiaHR0cDovLzEyNy4wLjAuMTo4
MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1w
cmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0bWwiCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCistLS0tLS0tLQorRnJh
bWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC8KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
dHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVj
dHMtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJj
ZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMGY4YTJmNDIwYjVhYTYyYzM3
YTI1ZDRiZGRmZWQzM2EzM2JmYTVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1m
b3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS5odG1sCkBAIC0wLDAg
KzEsNTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgb25seSB0aGUgb3JpZ2luIGlzIHNlbnQg
YXMgcmVmZXJyZXIgaW4gcmVkaXJlY3RzIHRvIHByZXZhbGVudCByZXNvdXJjZXMgd2l0aG91dCB1
c2VyIGludGVyYWN0aW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHRlc3RS
dW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1l
KHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAg
ICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBv
bkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoZWxlbWVudCk7CisgICAgfQorCisgICAgdmFyIHJlZmVycmVyOworICAgIHRlc3RSdW5uZXIu
c2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2Fs
aG9zdCB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0
IHN0YXJ0ZWQuIik7CisKKyAgICAgICAgZmV0Y2goInJlc291cmNlcy9lY2hvLXJlZmVycmVyLnBo
cCIpLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIHJldHVybiByZXNwb25z
ZS50ZXh0KCk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgICAg
cmVmZXJyZXIgPSBkYXRhOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZl
cnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJp
cC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMt
ZGF0YWJhc2UuaHRtbCIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIsIHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgb3BlbklmcmFtZSgicmVzb3VyY2VzL3JlZGly
ZWN0LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3Jlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIGNv
bnNvbGUubG9nKGVycm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1z
dWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2lu
LWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjg5Y2NiOWMyMWZmMDA3MWE5ODAyMzliN2I3OTNmNTUxODdlYmVlNWUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2Ut
cmVxdWVzdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1Rlc3RzIHRo
YXQgb25seSB0aGUgb3JpZ2luIGlzIHNlbnQgYXMgcmVmZXJyZXIgZm9yIHByZXZhbGVudCByZXNv
dXJjZXMgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyByZWZlcnJlciBpcyAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3Vi
cmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UuaHRtbCIKK1BBU1MgcmVmZXJyZXIgaXMgImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC8iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0t
LS0KK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9y
LXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9y
aWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTVkNGYwMzY2Zjk3Y2ZjZTk0MjhhNmE4NmU1MTU0ODM2MGUzMjE3NwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1
ZXN0cy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRo
YXQgb25seSB0aGUgb3JpZ2luIGlzIHNlbnQgYXMgcmVmZXJyZXIgZm9yIHByZXZhbGVudCByZXNv
dXJjZXMgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0
cnVlOworICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisKKyAgICBmdW5j
dGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQu
c3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxl
bWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAgdmFyIHJlZmVycmVyOwor
ICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgc2V0RW5hYmxlRmVh
dHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkxvY2FsaG9zdCB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Ug
YmVmb3JlIHRoZSB0ZXN0IHN0YXJ0ZWQuIik7CisKKyAgICAgICAgZmV0Y2goInJlc291cmNlcy9l
Y2hvLXJlZmVycmVyLnBocCIpLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAg
IHJldHVybiByZXNwb25zZS50ZXh0KCk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24oZGF0YSkg
eworICAgICAgICAgICAgcmVmZXJyZXIgPSBkYXRhOworICAgICAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNv
dXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IikpCisgICAgICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJj
ZS4iKTsKKworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tp
ZUJsb2NraW5nKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBmZXRjaCgiaHR0cDov
L2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcmVm
ZXJyZXIucGhwIikudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSkudGhl
bihmdW5jdGlvbihkYXRhKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZWZlcnJlciA9IGRh
dGE7CisgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVy
cmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC8iKTsKKworICAgICAgICAgICAgICAgICAgICAg
ICAgb3BlbklmcmFtZSgicmVzb3VyY2VzL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXJlZmVy
cmVyLnBocCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9KTsKKworICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgewor
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IubWVzc2FnZSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAg
Y29uc29sZS5sb2coZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9KTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFs
ZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmln
YXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjM0MzkyMmZkOTNmMWE1NDQ0ZjJjYjA2ODg0ZWZjMzI5MGJhZTUxZjQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aC1pbnRl
cmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhh
dCB0aGUgc2Vzc2lvbiBpcyBzd2l0Y2hlZCB1cG9uIHRvcCBmcmFtZSBuYXZpZ2F0aW9uIHRvIGEg
cHJldmFsZW50IHJlc291cmNlIHdpdGggdXNlciBpbnRlcmFjdGlvbi4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgU2hvdWxkIGhhdmUgYW5kIGhhcyB0aGUgc2Vzc2lvbiBj
b29raWUuCitQQVNTIFNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHBlcnNpc3RlbnQgY29va2llLgor
UEFTUyBPcmlnaW4gaGFzIGlzb2xhdGVkIHNlc3Npb24uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRp
b24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1u
YXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjI3MGMwMGIwNDgxNjY2MGJjODFkMGQ2ZWU4OWNhYTcwZTFmNzRiYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0
aW9uLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxz
Y3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRo
YXQgdGhlIHNlc3Npb24gaXMgc3dpdGNoZWQgdXBvbiB0b3AgZnJhbWUgbmF2aWdhdGlvbiB0byBh
IHByZXZhbGVudCByZXNvdXJjZSB3aXRoIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAganNUZXN0
SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBwcmV2YWxlbnRPcmlnaW4gPSAiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBub25QcmV2YWxlbnRPcmlnaW4gPSAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCBzZXNzaW9uQ29va2llTmFtZSA9ICJzZXNzaW9uQ29v
a2llIjsKKyAgICBjb25zdCBwZXJzaXN0ZW50Q29va2llTmFtZSA9ICJwZXJzaXN0ZW50Q29va2ll
IjsKKyAgICBjb25zdCB0d29NaW51dGVzSW5TZWNvbmRzID0gMTIwOworCisgICAgZnVuY3Rpb24g
c2V0U2Vzc2lvbkNvb2tpZSgpIHsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2Vzc2lvbkNv
b2tpZU5hbWUgKyAiPTE7IHBhdGg9LyI7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2V0UGVyc2lz
dGVudENvb2tpZSgpIHsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gcGVyc2lzdGVudENvb2tp
ZU5hbWUgKyAiPTE7IHBhdGg9LzsgTWF4LUFnZT0iICsgdHdvTWludXRlc0luU2Vjb25kcyArICI7
IjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjaGVja0Nvb2tpZXMoc2hvdWxkSGF2ZVNlc3Npb25D
b29raWUsIHNob3VsZEhhdmVQZXJzaXN0ZW50Q29va2llKSB7CisgICAgICAgIGxldCBoYXNTZXNz
aW9uQ29va2llID0gKGRvY3VtZW50LmNvb2tpZSArICIiKS5pbmNsdWRlcyhzZXNzaW9uQ29va2ll
TmFtZSksCisgICAgICAgICAgICBoYXNQZXJzaXN0ZW50Q29va2llID0gKGRvY3VtZW50LmNvb2tp
ZSArICIiKS5pbmNsdWRlcyhwZXJzaXN0ZW50Q29va2llTmFtZSk7CisKKyAgICAgICAgaWYgKHNo
b3VsZEhhdmVTZXNzaW9uQ29va2llICYmIGhhc1Nlc3Npb25Db29raWUpCisgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJTaG91bGQgaGF2ZSBhbmQgaGFzIHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKKyAg
ICAgICAgZWxzZSBpZiAoc2hvdWxkSGF2ZVNlc3Npb25Db29raWUgJiYgIWhhc1Nlc3Npb25Db29r
aWUpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCBoYXZlIGJ1dCBkb2Vzbid0IGhh
dmUgdGhlIHNlc3Npb24gY29va2llLiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSBlbHNlIGlmICghc2hvdWxkSGF2ZVNlc3Np
b25Db29raWUgJiYgaGFzU2Vzc2lvbkNvb2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgi
U2hvdWxkbid0IGhhdmUgYnV0IGhhcyB0aGUgc2Vzc2lvbiBjb29raWUuIik7CisgICAgICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlNob3VsZG4ndCBoYXZlIGFuZCBkb2Vzbid0IGhhdmUg
dGhlIHNlc3Npb24gY29va2llLiIpOworCisKKyAgICAgICAgaWYgKHNob3VsZEhhdmVQZXJzaXN0
ZW50Q29va2llICYmIGhhc1BlcnNpc3RlbnRDb29raWUpCisgICAgICAgICAgICB0ZXN0UGFzc2Vk
KCJTaG91bGQgaGF2ZSBhbmQgaGFzIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsKKyAgICAgICAg
ZWxzZSBpZiAoc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29raWUgJiYgIWhhc1BlcnNpc3RlbnRDb29r
aWUpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCBoYXZlIGJ1dCBkb2Vzbid0IGhh
dmUgdGhlIHBlcnNpc3RlbnQgY29va2llLiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSBlbHNlIGlmICghc2hvdWxkSGF2ZVBl
cnNpc3RlbnRDb29raWUgJiYgaGFzUGVyc2lzdGVudENvb2tpZSkgeworICAgICAgICAgICAgdGVz
dEZhaWxlZCgiU2hvdWxkbid0IGhhdmUgYnV0IGhhcyB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7
CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlNob3VsZG4ndCBoYXZlIGFuZCBk
b2Vzbid0IGhhdmUgdGhlIHBlcnNpc3RlbnQgY29va2llLiIpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkg
eworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24ocHJldmFsZW50T3JpZ2luLCB0cnVl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0U2Vzc2lvbkNvb2tpZSgpOwor
ICAgICAgICAgICAgICAgICAgICBzZXRQZXJzaXN0ZW50Q29va2llKCk7CisgICAgICAgICAgICAg
ICAgICAgIGNoZWNrQ29va2llcyh0cnVlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaGFzU3RhdGlzdGljc0lzb2xhdGVkU2Vzc2lvbihwcmV2YWxlbnRPcmlnaW4p
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPcmlnaW4gaGFzIGlzb2xh
dGVkIHNlc3Npb24uIik7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIk9yaWdpbiBoYXMgbm8gaXNvbGF0ZWQgc2Vz
c2lvbi4iKTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IG5v
blByZXZhbGVudE9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lv
bi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0
bWwjc3RlcDIiOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2Nh
dGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRp
b24ub3JpZ2luICE9PSBub25QcmV2YWxlbnRPcmlnaW4pCisgICAgICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIlN0ZXAgMiBpcyBub3Qgb24gIiArIG5vblByZXZhbGVudE9yaWdpbiArICIuIik7
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UocHJldmFsZW50T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVu
dE9yaWdpbikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQocHJldmFsZW50
T3JpZ2luICsgIiBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHByZXZhbGVudE9yaWdp
biArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9u
LXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwjc3RlcDQiOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAg
ICAgICAgICBjaGVja0Nvb2tpZXModHJ1ZSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaGFzU3RhdGlzdGljc0lzb2xhdGVkU2Vzc2lvbihwcmV2YWxlbnRPcmlnaW4pKQor
ICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPcmlnaW4gaGFzIGlzb2xhdGVkIHNlc3Np
b24uIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJPcmlnaW4gaGFzIG5vIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAgICAgICAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
VW5rbm93biBoYXNoLiIpOworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2Us
IGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9j
YXRpb24uaGFzaCA9PT0gIiIpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdp
biAhPT0gcHJldmFsZW50T3JpZ2luKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGVzdCBpcyBu
b3Qgc3RhcnRpbmcgb3V0IG9uICIgKyBwcmV2YWxlbnRPcmlnaW4gKyAiLiIpOworICAgICAgICB0
ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudE9yaWdpbikpCisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZChwcmV2YWxlbnRPcmlnaW4gKyAiIHdhcyBjbGFzc2lmaWVkIGFzIHByZXZh
bGVudCByZXNvdXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAgIH0pOworICAgIH0KKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RlbGVtZXRyeS1nZW5lcmF0aW9uLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdGVsZW1ldHJ5LWdlbmVy
YXRpb24uaHRtbAppbmRleCA4NDE5NTYyMDcwYjI4Nzg0ODZlMDk0MWIyZTJlMWNiMjVlODYxNzJj
Li42NDdkYjMwMGVmOGEyNTgxNDQwOWQ4ZTE1ZTZiYmI5MzY1NWI1OWRjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdGVsZW1ldHJ5LWdl
bmVyYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvdGVsZW1ldHJ5LWdlbmVyYXRpb24uaHRtbApAQCAtOCw2ICs4LDcgQEAKIDwvaGVh
ZD4KIDxib2R5PgogPHNjcmlwdD4KKyAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKGZh
bHNlKTsKICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB0ZWxlbWV0cnkgZm9yIHByZXZhbGVu
dCByZXNvdXJjZXMgaXMgY2FsY3VsYXRlZCBjb3JyZWN0bHkuIik7CiAgICAganNUZXN0SXNBc3lu
YyA9IHRydWU7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUt
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1k
YXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjg0MjczMGE0NWRhZGU2ZWE2ZjE1ZGVj
YzM5YTdlNWE5YTBlMzEyYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdp
bi1zdWItZnJhbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3Rz
IHRoYXQgdXNlciBpbnRlcmFjdGlvbiBpcyBhbHdheXMgbG9nZ2VkIGZvciB0aGUgdG9wIGRvY3Vt
ZW50L2ZyYW1lLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVu
dC5sb2NhdGlvbi5vcmlnaW4gaXMgdG9wRnJhbWVPcmlnaW4KK1BBU1MgdGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQ
QVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1l
T3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1p
bnRlcmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRhdGFiYXNlLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlv
bi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTY3
NGQwOTA5NzBjNTYzYmZiYTRkOTNjZmE2NDVjYWIxNWE1OTRlMAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVy
YWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsx
LDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhh
dCB1c2VyIGludGVyYWN0aW9uIGlzIGFsd2F5cyBsb2dnZWQgZm9yIHRoZSB0b3AgZG9jdW1lbnQv
ZnJhbWUuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3Rlc3RSdW5uZXIuc2V0VXNlSVRQRGF0
YWJhc2UodHJ1ZSk7CisKK2NvbnN0IHRvcEZyYW1lT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMCI7Citjb25zdCBzdWJGcmFtZU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOwor
CitmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElkKSB7CisgICAgdmFyIGVsZW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAgIHZhciBjZW50ZXJYID0g
ZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgdmFyIGNl
bnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAg
ICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpOworfQorCitmdW5jdGlvbiBm
aW5pc2hUZXN0KCkgeworICAgIHNob3VsZEJlVHJ1ZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NI
YXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIik7CisgICAgc2hvdWxkQmVGYWxz
ZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVP
cmlnaW4pIik7CisgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKK30K
Kworb25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1
ZSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFS
ZWNvcmRzQ2FsbGJhY2soZmluaXNoVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBzaG91bGRC
ZSgiZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luIiwgInRvcEZyYW1lT3JpZ2luIik7CisKKyAgICAg
ICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOwor
ICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7CisKKyAgICAgICAgICAgIGFjdGl2YXRl
RWxlbWVudCgidGVzdEZyYW1lIik7CisgICAgICAgIH0KKyAgICB9KTsKK307Cis8L3NjcmlwdD4K
KzxpZnJhbWUgaWQ9InRlc3RGcmFtZSIgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZHVtbXkuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNo
b3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVw
b3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjU0MzJiYzhlZDczODFmYmM0OThkYjM0YzBmYjNiZTdhNTdiZDkxZDEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0
LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitU
ZXN0cyB0aGF0IHVzZXIgaW50ZXJhY3Rpb24gaXMgbm90IHJlcG9ydGVkIHJlcGVhdGVkbHkgd2l0
aGluIGEgc2hvcnQgcGVyaW9kIG9mIHRpbWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiBpcyB0b3BGcmFtZU9yaWdpbgorUEFT
UyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9y
aWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyB0cnVlCitQQVNT
IHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3Jp
Z2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNT
IHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3Jp
Z2luKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCitUaGlzIGlzIHRoZSB0ZXN0IGVsZW1lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLW9ubHkt
cmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUtZGF0YWJhc2UuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVy
YWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUtZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDk1MjQyY2FkNjc0MDQxN2FhOTk3MjQ2MTg5ODE0NGRj
MmNlOTNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhp
bi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB1c2Vy
IGludGVyYWN0aW9uIGlzIG5vdCByZXBvcnRlZCByZXBlYXRlZGx5IHdpdGhpbiBhIHNob3J0IHBl
cmlvZCBvZiB0aW1lLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3Qg
dG9wRnJhbWVPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdWJG
cmFtZU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworCisgICAgZnVuY3Rpb24gYWN0
aXZhdGVFbGVtZW50KGVsZW1lbnRJZCwgY2FsbGJhY2spIHsKKyAgICAgICAgdmFyIGVsZW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAgICAgICB2YXIgY2VudGVy
WCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAg
ICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQg
LyAyOworICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4o
CisgICAgICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFjaygpOwor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIlByb21pc2UgcmVqZWN0ZWQuIik7CisgICAgICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaXJzdEludGVyYWN0aW9uKCkgeworICAgICAgICBz
aG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7CisgICAg
ICAgIGFjdGl2YXRlRWxlbWVudCgidGVzdEVsZW1lbnQiLCBzZWNvbmRJbnRlcmFjdGlvbik7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gc2Vjb25kSW50ZXJhY3Rpb24oKSB7CisgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9w
RnJhbWVPcmlnaW4pIik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworCisgICAgICAg
IGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NI
YXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4sIGZhbHNlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKworICAgICAgICAgICAgICAg
IGFjdGl2YXRlRWxlbWVudCgidGVzdEVsZW1lbnQiLCBmaW5pc2hUZXN0KTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAg
ICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIp
OworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0K
KworICAgIG9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiIsICJ0
b3BGcmFtZU9yaWdpbiIpOworCisgICAgICAgICAgICBmaXJzdEludGVyYWN0aW9uKCk7CisgICAg
ICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KKzxkaXYgaWQ9InRlc3RFbGVtZW50Ij5UaGlzIGlz
IHRoZSB0ZXN0IGVsZW1lbnQ8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0
aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2Vy
LWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjI4Yzk5YjMwMjQ0NDU2MGI1MWIzNDhiOTYwMjFi
MDU4NTZlYTNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0
ZS1kYXRhLXJlbW92YWwtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rl
c3RzIHRoYXQgdXNlciBpbnRlcmFjdGlvbiBpcyByZXBvcnRlZCBhZnRlciBoaXN0b3J5IHJlbW92
YWwgc2luY2UgdGhhdCBtZWFucyBhbGwgc3RhdGlzdGljcyBoYXZlIGJlZW4gcmVzZXQuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50LmxvY2F0aW9uLm9yaWdp
biBpcyB0b3BGcmFtZU9yaWdpbgorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZhbHNl
CitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZy
YW1lT3JpZ2luKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFsc2UK
K1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJh
bWVPcmlnaW4pIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2Vy
SW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1RoaXMgaXMgdGhlIHRlc3QgZWxlbWVudApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwtZGF0
YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRh
dGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmJlYjQyZjk0MmYxYjY4ZmZhY2ZlMGVmYjFmZTkyMzk2
MmYyMjY4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUt
ZGF0YS1yZW1vdmFsLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVs
cGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHVzZXIgaW50ZXJhY3Rp
b24gaXMgcmVwb3J0ZWQgYWZ0ZXIgaGlzdG9yeSByZW1vdmFsIHNpbmNlIHRoYXQgbWVhbnMgYWxs
IHN0YXRpc3RpY3MgaGF2ZSBiZWVuIHJlc2V0LiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVl
OworCisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsK
KyAgICBjb25zdCBzdWJGcmFtZU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworCisg
ICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJZCwgY2FsbGJhY2spIHsKKyAgICAg
ICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAg
ICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lk
dGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVu
dC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgs
IGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICBjYWxsYmFjaygpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlByb21pc2UgcmVqZWN0ZWQuIik7CisgICAgICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaXJzdEludGVyYWN0aW9u
KCkgeworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hh
ZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxz
ZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVP
cmlnaW4pIik7CisgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGVzdEVsZW1lbnQiLCBjbGVhcldl
YnNpdGVEYXRhKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjbGVhcldlYnNpdGVEYXRhKCkgewor
ICAgICAgICBzaG91bGRCZVRydWUoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbiki
KTsKKworICAgICAgICBpZiAodGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3Rh
dGlzdGljc0NsZWFyVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbChzZWNvbmRJbnRlcmFjdGlvbik7
CisgICAgfQorCisgICAgZnVuY3Rpb24gc2Vjb25kSW50ZXJhY3Rpb24oKSB7CisgICAgICAgIHNo
b3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RFbGVtZW50
IiwgZmluaXNoVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAg
ICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7
CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9
CisKKyAgICBvbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJ
VFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIHNob3VsZEJlKCJkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4iLCAi
dG9wRnJhbWVPcmlnaW4iKTsKKworICAgICAgICAgICAgZmlyc3RJbnRlcmFjdGlvbigpOworICAg
ICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJ0ZXN0RWxlbWVudCI+VGhpcyBp
cyB0aGUgdGVzdCBlbGVtZW50PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRh
LXJlbW92YWwtZm9yLXNpdGUtbmF2aWdhdGVkLXRvLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1k
YXRhLXJlbW92YWwtZm9yLXNpdGUtbmF2aWdhdGVkLXRvLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0
bWwKaW5kZXggYmQzZjY2M2FiNzNkOWRkMGYxODYxMTY0MDVhYTliYTM3ZjNlMDVkOS4uNmViNjE5
YWM3NTIxNmRkYzU1OWM1YTdmZmQxYWMyZmE1ZDE4MDZlZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFs
LWZvci1zaXRlLW5hdmlnYXRlZC10by13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy93ZWJzaXRlLWRhdGEt
cmVtb3ZhbC1mb3Itc2l0ZS1uYXZpZ2F0ZWQtdG8td2l0aC1saW5rLWRlY29yYXRpb24uaHRtbApA
QCAtMTAsNiArMTAsNyBAQAogPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KIDxicj4KIDxzY3JpcHQ+
CisgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZShmYWxzZSk7CiAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYWFiY2Y5YTg2MmQxZWUz
M2MzNjVmYmQ2YjRhMjI3NDRmYWE5MGZjYS4uN2ZlZTc0OTVkMmM4ZTg3NTBiMjMzM2Q0MzQxMzNl
YWVkN2Y4YjRhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTk4Niw2ICs5ODYsOCBAQCBodHRwL3Rlc3RzL25hdmlnYXRpb24va2V5Ym9hcmQtZXZlbnRz
LWR1cmluZy1wcm92aXNpb25hbC1uYXZpZ2F0aW9uLmh0bWwgWyBTa2lwCiBodHRwL3Rlc3RzL25h
dmlnYXRpb24va2V5Ym9hcmQtZXZlbnRzLWR1cmluZy1wcm92aXNpb25hbC1zdWJmcmFtZS1uYXZp
Z2F0aW9uLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9w
cmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtl
eWRvd24uaHRtbCBbIFNraXAgXQoraHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3By
ZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UuaHRtbCBbIFNraXAgXQor
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhh
bmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sIFsgU2tpcCBdCiBtZWRpYS9hdWRpby1wbGF5YmFj
ay12b2x1bWUtY2hhbmdlcy13aXRoLXJlc3RyaWN0aW9ucy1hbmQtdXNlci1nZXN0dXJlcy5odG1s
IFsgU2tpcCBdCiBtZWRpYS9hdWRpby1wbGF5YmFjay12b2x1bWUtY2hhbmdlcy13aXRoLXJlc3Ry
aWN0aW9ucy5odG1sIFsgU2tpcCBdCiBtZWRpYS9waWN0dXJlLWluLXBpY3R1cmUtaW50ZXJydXB0
aW9uLmh0bWwgWyBTa2lwIF0KQEAgLTI3NzksNiArMjc4MSw5IEBAIGZhc3QvY2FudmFzL3dlYmds
L3JlYWRQaXhlbHMtZmxvYXQuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE3NDEyMCBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1v
cmlnaW4tc3ViLWZyYW1lLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQt
cGVyaW9kLW9mLXRpbWUuaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92
YWwuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzE3NDEyMCBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1l
LWRhdGFiYXNlLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9k
LW9mLXRpbWUtZGF0YWJhc2UuaHRtbCBbIFNraXAgXQoraHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJl
bW92YWwtZGF0YWJhc2UuaHRtbCBbIFNraXAgXQogIyBTa2lwcGVkIGluIFdLMiBleHBlY3RhdGlv
bnMgYmVjYXVzZSBjb29raWUgcGFydGl0aW9uaW5nIGlzIG9ubHkgYXZhaWxhYmxlIGluIG1hY09T
IEhpZ2ggU2llcnJhIGFuZCBpT1MgMTEuCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY29va2llLWRlbGV0aW9uLmh0bWwgWyBQYXNzIF0KIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jb29raWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi5odG1s
IFsgUGFzcyBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379505</attachid>
            <date>2019-09-24 15:38:04 -0700</date>
            <delta_ts>2019-09-25 11:36:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195420-20190924153803.patch</filename>
            <type>text/plain</type>
            <size>397390</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTNjY2YyNjZlNDRiNTA4
Y2Q0MzFlZTg0MGQxMGU5MzI2ZmYxZGZmNC4uYmIwMDkxYTQxYzVmNWVhNTg5NDZhN2IwZTViNTI5
MzY2MWM0OWQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDE5LTA5LTI0ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBM
YXlvdXRUZXN0cyB1c2luZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFNRTGl0ZSBiYWNrZW5kICgx
OTU0MjApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTU0MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjEzNTUxPiAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tp
bmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1m
b3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRo
LWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAg
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29v
a2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2Ut
ZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVl
cnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlm
ZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50
LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0
aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1l
LW9yaWdpbnMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVz
b3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2
YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdp
bnMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRp
cmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJy
ZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMt
dG8tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJl
Y3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZy
YW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJh
c2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12
ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1t
ZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAg
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVy
c2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9uLWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29r
aWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlw
dC1hY2Nlc3NpYmxlLWNvb2tpZXMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdh
dGlvbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxl
LXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVj
dC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50
LXdpdGhvdXQtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmln
YXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmFi
bGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJhc2UuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQt
cmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291
cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAg
ICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJj
ZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0
LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVk
LW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxo
b3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFt
ZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRh
dGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZh
bGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1k
YXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwK
KyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxl
bnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3Vy
Y2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJj
ZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAg
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BydW5lLXN0YXRpc3RpY3MtZGF0YWJh
c2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0
YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAg
ICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZy
YW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRv
LWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbAorICAg
ICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1u
ZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRv
LWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4t
ZGVidWctbW9kZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQt
c3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9y
LXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sCisgICAgICAgICAg
ICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24t
bmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRl
cmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9u
LW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUtZGF0YWJhc2Uu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Vz
ZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwtZGF0YWJh
c2UuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmg6CisgICAg
ICAgIEFkZGVkIFdFQkNPUkVfRVhQT1JUIHByZWZpeCB0byAyIGZ1bmN0aW9ucyBuZWVkZWQgaW4g
dGhlIElUUCBEYXRhYmFzZSAKKyAgICAgICAgdG8gY2xlYXIgb3V0IHRoZSBkYXRhYmFzZS4KKwog
MjAxOS0wOS0yNCAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
Q29hbGVzY2Ugb3IgcmVtb3ZlIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggZDcyOGJmYzdkNzIwMTViYmE4NWY3MmYxNTUyNjlkYWMxNWQwMzIwZC4uMDE4
MzY3ZmNkYjQzMGFhOTRiZTM1MzUwNDQ5OWJlNjlkMTU3ZDMxZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNzAgQEAKKzIwMTktMDktMjQgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBs
ZS5jb20+CisKKyAgICAgICAgRW5hYmxlIExheW91dFRlc3RzIHVzaW5nIFJlc291cmNlTG9hZFN0
YXRpc3RpY3MgU1FMaXRlIGJhY2tlbmQgKDE5NTQyMCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTQyMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTQyMTM1NTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ2hhbmdlZCBhbGwgUkVMRUFTRV9MT0dfRVJST1IoKSBjYWxscyBpbnZvbHZpbmcgZG9tYWlu
IHN0cmluZ3MgdG8KKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgpIHRvIHBy
ZXZlbnQgbGVha2luZyBpbmZvcm1hdGlvbiBhYm91dAorICAgICAgICB0aGUgZG9tYWluIHN0cmlu
Z3Mgb25seSBpZiBzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCkuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlKToKKyAgICAg
ICAgQWRkZWQgYXV0b3ZhY3V1bWluZyB0byB0aGUgY29uc3RydWN0b3IgdG8gYXZvaWQgbWFudWFs
bHkgY2FsbGluZworICAgICAgICBydW5WYWN1dW1Db21tYW5kKCkuIENoYW5nZWQgY29uc3RydWN0
b3IgdG8gdGFrZSBpbiBzZXNzaW9uSUQgc28gaXQKKyAgICAgICAgY2FuIHVzZSBSRUxFQVNFX0xP
R19FUlJPUl9JRl9BTExPV0VEIHdoaWNoIHJlcXVpcmVzIHRoZSBzZXNzaW9uSUQuCisKKyAgICAg
ICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZXBhcmVT
dGF0ZW1lbnRzKToKKyAgICAgICAgQWRkZWQgMiBzdGF0ZW1lbnRzIHRoYXQgd2VyZSBub3QgYmVp
bmcgcHJlcGFyZWQuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OnJlbGF0aW9uc2hpcEV4aXN0cyBjb25zdCk6CisgICAgICAgIENvcnJlY3Rl
ZCBpbmNvcnJlY3QgY2FwaXRhbGl6YXRpb24uIEFkZGVkIGNoZWNrIGZvciBudWxsb3B0IGluIGNh
c2UKKyAgICAgICAgZG9tYWluSUQgaXMgZm9yIGEgZG9tYWluIG5vdCBpbiB0aGUgZGF0YWJhc2Ug
eWV0LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpkb21haW5JRCBjb25zdCk6CisgICAgICAgIENoYW5nZWQgcmV0dXJuIHZhbHVlIHRvIE9w
dGlvbmFsPHVuc2lnbmVkPi4gU29tZSB0ZXN0cyB3ZXJlIGRpcmVjdGx5CisgICAgICAgIGNoZWNr
aW5nIGZvciBzdWJmcmFtZXMgdW5kZXIgdG9wIGZyYW1lIGRvbWFpbnMgb24gZG9tYWlucyB0aGF0
IGhhZAorICAgICAgICBub3QgYmVlbiBpbnNlcnRlZCB5ZXQuIE5vdywgZG9tYWluSUQoKSB3b24n
dCBjcmFzaCBidXQgd2lsbCByZXR1cm4KKyAgICAgICAgYSBudWxsb3B0IHZhbHVlIHdoaWNoIGNh
biBiZSBjaGVja2VkIHRvIGtub3cgdGhhdCB0aGUgdGVzdHMgZmFpbGVkLgorCisgICAgICAgIChX
ZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNlcnREb21haW5S
ZWxhdGlvbnNoaXBzKToKKyAgICAgICAgQWRkZWQgYSBjaGVjayB0byBhc3N1cmUgZG9tYWluSUQg
ZXhpc3RzIGFuZCB1cGRhdGVkIHRoZSBkb21haW5JRAorICAgICAgICBpbnRlcmFjdGlvbnMgdG8g
d29yayBhcyBPcHRpb25hbHMuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OnBvcHVsYXRlRnJvbU1lbW9yeVN0b3JlKToKKyAgICAgICAgTW92
ZWQgdGhlIHByZXBhcmVTdGF0ZW1lbnRzKCkgY2FsbCBhZnRlciB0aGUgdmFjdXVtIGNvbW1hbmQg
aW4gdGhlIGNhc2UKKyAgICAgICAgd2hlcmUgdGhlIGRhdGFiYXNlIGlzIGVtcHR5LiBPdGhlcndp
c2UgY2FsbGVkIGl0IGJlZm9yZSByZXR1cm5pbmcuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlY3Vyc2l2ZWx5RmluZE5vblByZXZhbGVu
dERvbWFpbnNUaGF0UmVkaXJlY3RlZFRvVGhpc0RvbWFpbik6CisgICAgICAgIEFkZGVkIGEgc3Bh
Y2UgdG8gdGhlIFNRTCBjb21tYW5kcyB0byBjb3JyZWN0IHRoZSBzeW50YXguCisKKyAgICAgICAg
KFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmZpbmROb3RWZXJ5
UHJldmFsZW50UmVzb3VyY2VzKToKKyAgICAgICAgQ29ycmVjdGVkIGEgYnVnIGluIHRoZSBTUUwg
Y29tbWFuZCBmb3IgcXVlcnlpbmcKKyAgICAgICAgc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlu
LiBUaGUgb2xkIHF1ZXJ5IHdhcyBhc2tpbmcgZm9yIHN1YnJlc291cmNlLgorCisgICAgICAgIChX
ZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWNsYXNzaWZ5UmVz
b3VyY2VzKToKKyAgICAgICAgU3BlbGxpbmcgZml4LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyk6Cisg
ICAgICAgIENoYW5nZWQgc3RyaW5nIGNvbmNhdGVuYXRpb24gdG8gYmluZGluZy4KKworICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbmRmYXRo
ZXJEYXRhRm9yRG9tYWlucyk6CisgICAgICAgIFRoZSBncmFuZGZhdGhlcmluZy5odG1sIHRlc3Qg
d2FzIGZhaWxpbmcgYmVjYXVzZSBkb21haW5zIHdlcmUgYmVpbmcKKyAgICAgICAgInNldCIgdG8g
Z3JhbmRmYXRoZXJlZCBpbiB0aGUgZGF0YWJhc2UgYmVmb3JlIGJlaW5nIGluc2VydGVkLiBUaGlz
IGZpeAorICAgICAgICBlbnN1cmVzIGFsbCBkb21haW5zIGJlZm9yZSBzZXR0aW5nIHRoZSBncmFu
ZGZhdGhlcmluZyBmbGFnLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24pOgorICAgICAgICBNdWx0aXBsZSB0
ZXN0cyB3ZXJlIGZhaWxpbmcgYmVjYXVzZSB0aGUgcXVlcnkgdG8gaW5zZXJ0IHRoZSByZWxhdGlv
bnNoaXAKKyAgICAgICAgZm9yIHRoZSBzb3VyY2UgZG9tYWluIHJlbGllcyBvbiB0aGUgdGFyZ2V0
IGRvbWFpbiBiZWluZyBpbiB0aGUKKyAgICAgICAgT2JzZXJ2ZWREb21haW5zIHRhYmxlLiBUaGlz
IHBhdGNoIGVuc3VyZXMgYWxsIGRvbWFpbnMgYXJlIGFkZGVkIGJlZm9yZQorICAgICAgICBwZXJm
b3JtaW5nIHRoZSBxdWVyeS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6c2V0VXNlckludGVyYWN0aW9uKToKKyAgICAgICAgQWRkZWQgYSAh
PSBTUUxJVEVfT0sgY2hlY2sgdG8gbWFrZSBzdXJlIGFuIGVycm9yIGlzIGxvZ2dlZCBpZiB0aGUK
KyAgICAgICAgc3RhdGVtZW50IGZhaWxzIHRvIGJpbmQuCisKKyAgICAgICAgKFdlYktpdDo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyVXNlckludGVyYWN0aW9uKToK
KyAgICAgICAgQ2hhbmdlZCBzdHJpbmcgY29uY2F0ZW5hdGlvbiB0byBiaW5kaW5nLgorCisgICAg
ICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNIYWRV
c2VySW50ZXJhY3Rpb24pOiAgIAorICAgICAgICBUaGUgU1FMIHN0YXRlbWVudCB3YXMgYmVpbmcg
Ym91bmQgdG8gYSB2YWx1ZSBhbmQgbm90IGJlaW5nIHJlc2V0LiBUaGlzCisgICAgICAgIHBhdGNo
IHJlc2V0cyB0aGUgc3RhdGVtZW50IGFmdGVyIGJpbmRpbmcuIEFkZGl0aW9uYWxseSwgdGhlIHN0
ZXAoKQorICAgICAgICBmdW5jdGlvbiB3YXMgYmVpbmcgY29tcGFyZWQgdG8gU1FMSVRFX0RPTkUg
aW5zdGVhZCBvZiBTUUxJVEVfUk9XLAorICAgICAgICBjYXVzaW5nIGFuIGVycm9yIGlmIHRoZSBx
dWVyeSByZXR1cm5lZCByZXN1bHRzLiBUaGUKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCkg
d2FzIGNhdXNpbmcgbnVsbCBzZWFyY2hlcyB0byBjcmFzaCBpbnN0ZWFkIG9mCisgICAgICAgIHJl
dHVybmluZyBmYWxzZSAoaS5lLiBpZiBhIGRvbWFpbiBpcyBub3QgaW4gdGhlIGRhdGFiYXNlIGl0
IHNob3VsZAorICAgICAgICByZXR1cm4gdGhhdCBpdCBoYXMgbm8gdXNlciBpbnRlcmFjdGlvbiBp
bnN0ZWFkIG9mIGNyYXNoaW5nKS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0UHJldmFsZW50UmVzb3VyY2UpOiAKKyAgICAgICAgVXBk
YXRlZCBkb21haW5JRCBjYWxsIHRvIGFjdCBhcyBhbiBPcHRpb25hbC4gCisgICAgICAgIAorICAg
ICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlZGlj
YXRlVmFsdWVGb3JEb21haW4gY29uc3QpOgorICAgICAgICBUaGUgU1FMIHN0YXRlbWVudCB3YXMg
YmVpbmcgYm91bmQgdG8gYSB2YWx1ZSBhbmQgbm90IGJlaW5nIHJlc2V0LiBUaGlzCisgICAgICAg
IHBhdGNoIHJlc2V0cyB0aGUgc3RhdGVtZW50IGFmdGVyIGJpbmRpbmcuIFNRTElURV9ET05FIGNo
YW5nZWQgdG8KKyAgICAgICAgU1FMSVRFX1JPVyB0byByZXR1cm4gbm9uLWVtcHR5IHF1ZXJ5IHJl
c3VsdHMuIEFTU0VSVF9OT1RfUkVBQ0hFRCgpCisgICAgICAgIHJlbW92ZWQgZm9yIHRoZSBzYW1l
IHJlYXNvbnMgYXMgYWJvdmUuIAorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjplbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJs
ZURvbWFpbik6CisgICAgICAgIEZpeGVkIHRoZSByZWxlYXNlIGxvZyBzdGF0ZW1lbnQgd2hpY2gg
d2FzIGxvZ2dpbmcgdGhlIHdyb25nIGZ1bmN0aW9uIAorICAgICAgICBuYW1lLgorCisgICAgICAg
IChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhckRhdGFi
YXNlQ29udGVudHMpOiAKKyAgICAgICAgQ2xlYXJzIHRoZSBkYXRhYmFzZSBhbmQgcmVidWlsZHMg
dGhlIHRhYmxlcyBvbiBhIGNsZWFyIGNvbW1hbmQgdG8KKyAgICAgICAgbWF0Y2ggdGhlIGZ1bmN0
aW9uYWxpdHkgaW4gdGhlIE1lbW9yeSBTdG9yZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXIpOiAgICAgICAgICAgICAgICAgICAK
KyAgICAgICAgQ2FsbCB0aGUgY2xlYXJEYXRhYmFzZUNvbnRlbnRzIGZ1bmN0aW9uIHRvIG1hdGNo
IHRoZSBmdW5jdGlvbmFsaXR5IAorICAgICAgICBpbiB0aGUgTWVtb3J5IFN0b3JlLiAKKworICAg
ICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzVXNl
ckdyYW50ZWRTdG9yYWdlQWNjZXNzVGhyb3VnaFByb21wdCBjb25zdCk6CisgICAgICAgIFVwZGF0
ZWQgZG9tYWluSUQgY2FsbCB0byBhY3QgYXMgYW4gT3B0aW9uYWwuIAorCisgICAgICAgIChXZWJL
aXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNIYWRVbmV4cGlyZWRS
ZWNlbnRVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICBUZXN0cyB3ZXJlIGZhaWxpbmcgYmVjYXVz
ZSBzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvcigpIHdhcyBub3QgCisgICAgICAgIGNoZWNr
aW5nIGZvciBleHBpcmVkIHVzZXIgaW50ZXJhY3Rpb24uIE1hdGNoZWQgZnVuY3Rpb25hbGl0eSBp
biB0aGUKKyAgICAgICAgTWVtb3J5IFN0b3JlLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZv
cik6CisgICAgICAgIFRlc3RzIHdlcmUgZmFpbGluZyBiZWNhdXNlIHNob3VsZFJlbW92ZUFsbFdl
YnNpdGVEYXRhRm9yKCkgd2FzIG5vdCAKKyAgICAgICAgY2hlY2tpbmcgZm9yIGV4cGlyZWQgdXNl
ciBpbnRlcmFjdGlvbi4gTWF0Y2hlZCBmdW5jdGlvbmFsaXR5IGluIHRoZQorICAgICAgICBNZW1v
cnkgU3RvcmUuIAorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpyZWdpc3RyYWJsZURvbWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yKToKKyAg
ICAgICAgU3BlbGxpbmcgZml4LiAKKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJ1bmVTdGF0aXN0aWNzSWZOZWVkZWQpOiAKKyAgICAgICAg
TGFzdCBzZWVuIHNob3VsZCBiZSBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyIGJlY2F1c2UgeW91
IHdhbnQgdG8gCisgICAgICAgIHBydW5lIHRoZSBvbGRlciBzdGF0aXN0aWNzIGZpcnN0LCB3aGlj
aCB3aWxsIGhhdmUgYSBsb3dlciBsYXN0U2VlbgorICAgICAgICBmaWVsZCAoc2Vjb25kc1NpbmNl
RXBvY2goKSB3aWxsIGJlIGxvd2VyIGZvciBvbGRlciB2YWx1ZXMpLgorCisgICAgICAgIChXZWJL
aXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRSZW1vdmVBbGxX
ZWJzaXRlRGF0YUZvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIERlbGV0ZWQgY29uc3Qgc3Bl
Y2lmaWVyIGJlY2F1c2UgdGhlIGZ1bmN0aW9uIG5lZWRzIHRvIGNsZWFyIHRoZQorICAgICAgICBk
YXRhYmFzZS4gCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmg6ICAgICAgCisgICAgICAgIERlY2xhcmVkIG5l
dyBmdW5jdGlvbnMuIFVwZGF0ZWQgc3BlbGxpbmcgZXJyb3IgKHJlZ2lzdGVyYWJsZSAtLT4gCisg
ICAgICAgIHJlZ2lzdHJhYmxlKS4gVXBkYXRlZCBjb25zdHJ1Y3RvciB0byB0YWtlIHNlc3Npb25J
RC4gCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHA6IAorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSk6CisgICAgICAg
IElUUCBkYXRhYmFzZSBmbGFnIG5vdyBpcyBzdG9yZWQgaW4gdGhlIE5ldHdvcmtQcm9jZXNzLgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDogCisKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6IAorICAg
ICAgICBTZXQgdGhlIElUUCBkYXRhYmFzZSBmbGFnIHdoaWNoIGlzIG5vdyBzdG9yZWQgaW4gdGhl
IE5ldHdvcmsgUHJvY2Vzcy4gCisKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFk
ZFdlYnNpdGVEYXRhU3RvcmUpOgorICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVy
bWFuZW50bHkgd2FzIG5vdCBnZXR0aW5nIGNhbGxlZCBvbiB0aGUgCisgICAgICAgIFdlYktpdFRl
c3RSdW5uZXIgcmVzb3VyY2VMb2FkU3RhdGlzdGljcyBwYXRoLiBUaGlzIHdhcyBwcmV2ZW50aW5n
CisgICAgICAgIHRoZSBkYXRhYmFzZSBmaWxlIGZyb20gb3BlbmluZy4gCisKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFVzZUlUUERhdGFiYXNlKTogCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OmlzSVRQRGF0YWJhc2VFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgUGFzc2VkIHRoZSBzZXRV
c2VJVFBEYXRhYmFzZSBmbGFnIHRvIHRoZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiAKKyAgICAg
ICAgb2YgdGhlIHN0YXRpc3RpY3Mgc3RvcmUgdG8gZW5hYmxlIHRoZSBkYXRhYmFzZSBiYWNrZW5k
LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6cmVjcmVhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNT
dG9yZSk6CisgICAgICAgIERlc3Ryb3kgb2xkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZSBhbmQgY3JlYXRlIGEgbmV3IG9uZSB1c2luZworICAgICAgICB0aGUgSVRQIGRhdGFiYXNlLgor
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcDoKKyAgICAgICAgKFdLV2Vi
c2l0ZURhdGFTdG9yZVNldFVzZUlUUERhdGFiYXNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
UHJveHk6OnNldFVzZUlUUERhdGFiYXNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpz
ZXRVc2VJVFBEYXRhYmFzZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuaDoKKyAgICAgICAgUGFzc2VkIHRoZSBzZXRVc2VJVFBEYXRhYmFzZSBmbGFn
IHRvIHRoZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbgorICAgICAgICBvZiB0aGUgc3RhdGlzdGlj
cyBzdG9yZSB0byBlbmFibGUgdGhlIGRhdGFiYXNlIGJhY2tlbmQuIAorCiAyMDE5LTA5LTI0ICBa
YWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lQYWRPc10gVGhlIHNl
Y29uZCBjbGljayBldmVudCBpcyBtaXNzaW5nIG9uIGRvdWJsZSB0YXAgd2hlbiBkYmxjbGljayBo
YW5kbGVyIGlzIG5vdCBwcmVzZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcWwvU1FMaXRlRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxp
dGVEYXRhYmFzZS5oCmluZGV4IDE0OTg2NmZiYzExOTdiYTA5ZGEyMTU3NWYxY2VhZmFkNjQxOWZl
NmIuLjUyMjRmMWU3NzdjNTZiZWZiM2Q2NmY4ZTA1ODhhZDAwOGEyMDQyNGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oCkBAIC02NCw3ICs2NCw3IEBA
IHB1YmxpYzoKICAgICBib29sIHJldHVybnNBdExlYXN0T25lUmVzdWx0KGNvbnN0IFN0cmluZyYp
OwogICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgdGFibGVFeGlzdHMoY29uc3QgU3RyaW5n
Jik7Ci0gICAgdm9pZCBjbGVhckFsbFRhYmxlcygpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
Y2xlYXJBbGxUYWJsZXMoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBpbnQgcnVuVmFjdXVtQ29tbWFu
ZCgpOwogICAgIGludCBydW5JbmNyZW1lbnRhbFZhY3V1bUNvbW1hbmQoKTsKICAgICAKQEAgLTEy
NSw3ICsxMjUsNyBAQCBwdWJsaWM6CiAgICAgLy8gICAgICAgICAgICAgICBmaWxlLCBidXQgcmVt
b3ZlcyB0aGUgZW1wdHkgcGFnZXMgb25seSB3aGVuIFBSQUdNQSBJTkNSRU1BTlRBTF9WQUNVVU0K
ICAgICAvLyAgICAgICAgICAgICAgIGlzIGNhbGxlZC4KICAgICBlbnVtIEF1dG9WYWN1dW1QcmFn
bWEgeyBBdXRvVmFjdXVtTm9uZSA9IDAsIEF1dG9WYWN1dW1GdWxsID0gMSwgQXV0b1ZhY3V1bUlu
Y3JlbWVudGFsID0gMiB9OwotICAgIGJvb2wgdHVybk9uSW5jcmVtZW50YWxBdXRvVmFjdXVtKCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCB0dXJuT25JbmNyZW1lbnRhbEF1dG9WYWN1dW0oKTsK
IAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29sbGF0aW9uRnVuY3Rpb24oY29uc3QgU3Ry
aW5nJiBjb2xsYXRpb25OYW1lLCBXVEY6OkZ1bmN0aW9uPGludChpbnQsIGNvbnN0IHZvaWQqLCBp
bnQsIGNvbnN0IHZvaWQqKT4mJik7CiAgICAgdm9pZCByZW1vdmVDb2xsYXRpb25GdW5jdGlvbihj
b25zdCBTdHJpbmcmIGNvbGxhdGlvbk5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKaW5kZXggN2UxZjBhY2YzZWRmOGU3ZmFl
OTViNGFjYTNjYWZkYzIxN2Q5MzRmNC4uZjc2ZTlkMzA3ZjZkZmUwNGZiMGE2ZWQ0MTA5YzFjM2Q1
MjFhNzJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmUuY3BwCkBAIC0xNjAsNyArMTYwLDcgQEAgY29uc3RleHByIGF1dG8gY3JlYXRl
U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tID0gIkNSRUFURSBUQUJMRSBTdWJyZXNvdXJj
ZVUKICAgICAiRk9SRUlHTiBLRVkoc3VicmVzb3VyY2VEb21haW5JRCkgUkVGRVJFTkNFUyBPYnNl
cnZlZERvbWFpbnMoZG9tYWluSUQpIE9OIERFTEVURSBDQVNDQURFLCAiCiAgICAgIkZPUkVJR04g
S0VZKGZyb21Eb21haW5JRCkgUkVGRVJFTkNFUyBPYnNlcnZlZERvbWFpbnMoZG9tYWluSUQpIE9O
IERFTEVURSBDQVNDQURFKTsiX3M7CiAgICAgCi1SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUoV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlJiBzdG9yZSwgV29ya1F1ZXVlJiB3b3JrUXVldWUsIFNob3VsZElu
Y2x1ZGVMb2NhbGhvc3Qgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCwgY29uc3QgU3RyaW5nJiBzdG9y
YWdlRGlyZWN0b3J5UGF0aCkKK1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZShXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUmIHN0b3JlLCBXb3JrUXVldWUmIHdvcmtRdWV1ZSwgU2hvdWxkSW5jbHVkZUxvY2Fs
aG9zdCBzaG91bGRJbmNsdWRlTG9jYWxob3N0LCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VEaXJlY3Rv
cnlQYXRoLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUoc3RvcmUsIHdvcmtRdWV1ZSwgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCkKICAg
ICAsIG1fc3RvcmFnZURpcmVjdG9yeVBhdGgoc3RvcmFnZURpcmVjdG9yeVBhdGggKyAiL29ic2Vy
dmF0aW9ucy5kYiIpCiAgICAgLCBtX29ic2VydmVkRG9tYWluQ291bnQobV9kYXRhYmFzZSwgb2Jz
ZXJ2ZWREb21haW5Db3VudFF1ZXJ5KQpAQCAtMTkzLDYgKzE5Myw3IEBAIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZShXZWJSZXNvCiAgICAgLCBtX3VwZGF0ZUdyYW5kZmF0aGVyZWRTdGF0ZW1lbnQobV9kYXRhYmFz
ZSwgdXBkYXRlR3JhbmRmYXRoZXJlZFF1ZXJ5KQogICAgICwgbV9pc0dyYW5kZmF0aGVyZWRTdGF0
ZW1lbnQobV9kYXRhYmFzZSwgaXNHcmFuZGZhdGhlcmVkUXVlcnkpCiAgICAgLCBtX2ZpbmRFeHBp
cmVkVXNlckludGVyYWN0aW9uU3RhdGVtZW50KG1fZGF0YWJhc2UsIGZpbmRFeHBpcmVkVXNlcklu
dGVyYWN0aW9uUXVlcnkpCisgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiB7CiAgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTIxMiw2ICsyMTMsOSBAQCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmUoV2ViUmVzbwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQorICAg
IAorICAgIGlmICghbV9kYXRhYmFzZS50dXJuT25JbmNyZW1lbnRhbEF1dG9WYWN1dW0oKSkKKyAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OnR1cm5PbkluY3JlbWVudGFsQXV0b1ZhY3V1bSBmYWlsZWQsIGVy
cm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygp
KTsKIAogICAgIGlmICghcHJlcGFyZVN0YXRlbWVudHMoKSkgewogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6cHJlcGFyZVN0YXRlbWVudHMgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zLCBk
YXRhYmFzZSBwYXRoOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2co
KSwgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aC51dGY4KCkuZGF0YSgpKTsKQEAgLTMyOCw3ICszMzIs
OCBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJlU3Rh
dGVtZW50cygpCiAgICAgICAgIHx8IG1fdXBkYXRlR3JhbmRmYXRoZXJlZFN0YXRlbWVudC5wcmVw
YXJlKCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1faXNHcmFuZGZhdGhlcmVkU3RhdGVtZW50
LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9maW5kRXhwaXJlZFVzZXJJbnRl
cmFjdGlvblN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCi0gICAgICAgICkgeworICAg
ICAgICB8fCBtX3RvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbS5wcmVwYXJlKCkgIT0gU1FMSVRF
X09LCisgICAgICAgIHx8IG1fdG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tRXhpc3RzLnByZXBh
cmUoKSAhPSBTUUxJVEVfT0spIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywg
IiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZXBhcmVTdGF0ZW1l
bnRzIGZhaWxlZCB0byBwcmVwYXJlLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zNTUsNyArMzYwLDcgQEAgYm9vbCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0T2JzZXJ2ZWREb21haW4oY29uc3Qg
UmVzb3VyY2VMb2EKICAgICAgICAgfHwgbV9pbnNlcnRPYnNlcnZlZERvbWFpblN0YXRlbWVudC5i
aW5kSW50KDgsIGxvYWRTdGF0aXN0aWNzLmRhdGFSZWNvcmRzUmVtb3ZlZCkgIT0gU1FMSVRFX09L
CiAgICAgICAgIHx8IG1faW5zZXJ0T2JzZXJ2ZWREb21haW5TdGF0ZW1lbnQuYmluZEludCg5LCBs
b2FkU3RhdGlzdGljcy50aW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9Vc2VySW50ZXJhY3Rp
b24pICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX2luc2VydE9ic2VydmVkRG9tYWluU3RhdGVt
ZW50LmJpbmRJbnQoMTAsIGxvYWRTdGF0aXN0aWNzLnRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlE
dWVUb1N0b3JhZ2VBY2Nlc3NBUEkpICE9IFNRTElURV9PSykgewotICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6aW5zZXJ0T2JzZXJ2ZWREb21haW4gZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7
cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydE9ic2VydmVkRG9tYWluIGZhaWxlZCB0byBi
aW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQpAQCAtMzcyLDI0ICszNzcsMjYgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0T2JzZXJ2ZWREb21haW4oY29uc3QgUmVzb3VyY2VM
b2EKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6cmVsYXRpb25zaGlwRXhpc3RzKFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCYg
c3RhdGVtZW50LCB1bnNpZ25lZCBmaXJzdERvbWFpbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgc2Vjb25kRG9tYWluKSBjb25zdAorYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6cmVsYXRpb25zaGlwRXhpc3RzKFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCYgc3Rh
dGVtZW50LCBPcHRpb25hbDx1bnNpZ25lZD4gZmlyc3REb21haW5JRCwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHNlY29uZERvbWFpbikgY29uc3QKIHsKKyAgICBpZiAoIWZpcnN0RG9tYWluSUQp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFp
bigpKTsKIAotICAgIGlmIChzdGF0ZW1lbnQuYmluZEludCgxLCBmaXJzdERvbWFpbklEKSAhPSBT
UUxJVEVfT0sKKyAgICBpZiAoc3RhdGVtZW50LmJpbmRJbnQoMSwgKmZpcnN0RG9tYWluSUQpICE9
IFNRTElURV9PSwogICAgICAgICB8fCBzdGF0ZW1lbnQuYmluZFRleHQoMiwgc2Vjb25kRG9tYWlu
LnN0cmluZygpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc3RhdGVtZW50LnN0ZXAoKSAhPSBT
UUxJVEVfUk9XKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptX2luc2VydERvbWFpblJlbGF0aW9u
c2hpcFN0YXRlbWVudCBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIs
IHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6bV9pbnNlcnREb21haW5SZWxhdGlvbnNoaXBTdGF0ZW1lbnQgZmFpbGVk
IHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxh
c3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9Ci0gICAgCi0gICAgYm9vbCByZWxhdGlvblNoaXBFeGlzdHMgPSAh
IXN0YXRlbWVudC5nZXRDb2x1bW5JbnQoMCk7CisgICAgYm9vbCByZWxhdGlvbnNoaXBFeGlzdHMg
PSAhIXN0YXRlbWVudC5nZXRDb2x1bW5JbnQoMCk7CiAKICAgICBpbnQgcmVzZXRSZXN1bHQgPSBz
dGF0ZW1lbnQucmVzZXQoKTsKICAgICBBU1NFUlRfVU5VU0VEKHJlc2V0UmVzdWx0LCByZXNldFJl
c3VsdCA9PSBTUUxJVEVfT0spOwogICAgIAotICAgIHJldHVybiByZWxhdGlvblNoaXBFeGlzdHM7
CisgICAgcmV0dXJuIHJlbGF0aW9uc2hpcEV4aXN0czsKIH0KIAogYm9vbCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKFdlYkNvcmU6
OlNRTGl0ZVN0YXRlbWVudCYgc3RhdGVtZW50LCB1bnNpZ25lZCBkb21haW5JRCwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHRvcEZyYW1lKQpAQCAtMzk5LDcgKzQwNiw3IEBAIGJvb2wgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydERvbWFpblJlbGF0aW9uc2hpcChX
ZWJDb3JlOjpTUUxpCiAgICAgaWYgKHN0YXRlbWVudC5iaW5kSW50KDEsIGRvbWFpbklEKSAhPSBT
UUxJVEVfT0sKICAgICAgICAgfHwgc3RhdGVtZW50LmJpbmRUZXh0KDIsIHRvcEZyYW1lLnN0cmlu
ZygpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVf
RE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV9pbnNlcnREb21haW5SZWxhdGlvbnNoaXBT
dGF0ZW1lbnQgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlz
LCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Jf
SUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6Om1faW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwU3RhdGVtZW50IGZhaWxlZCB0byBi
aW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQpAQCAtNDE2LDcgKzQyMyw3IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OmNvbmZpcm1Eb21haW5Eb2VzTm90RXhpc3QoY29uc3QgUmVnaXN0
CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBpZiAobV9kb21haW5JREZy
b21TdHJpbmdTdGF0ZW1lbnQuYmluZFRleHQoMSwgZG9tYWluLnN0cmluZygpKSAhPSBTUUxJVEVf
T0spIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNvbmZpcm1Eb21haW5Eb2VzTm90RXhpc3QgZmFp
bGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNl
Lmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCht
X3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNv
bmZpcm1Eb21haW5Eb2VzTm90RXhpc3QgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7
cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC00MzQs
MTcgKzQ0MSwyMSBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpj
b25maXJtRG9tYWluRG9lc05vdEV4aXN0KGNvbnN0IFJlZ2lzdAogfQogI2VuZGlmCiAKLXVuc2ln
bmVkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkb21haW5JRChjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKSBjb25zdAorT3B0aW9uYWw8dW5zaWduZWQ+IFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkb21haW5JRChjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgZG9tYWluKSBjb25zdAogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkp
OwogCiAgICAgdW5zaWduZWQgZG9tYWluSUQgPSAwOwogCi0gICAgaWYgKG1fZG9tYWluSURGcm9t
U3RyaW5nU3RhdGVtZW50LmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09L
Ci0gICAgICAgIHx8IG1fZG9tYWluSURGcm9tU3RyaW5nU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJ
VEVfUk9XKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkb21haW5JREZyb21TdHJpbmcgZmFpbGVk
LCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JN
c2coKSk7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gZG9t
YWluSUQ7CisgICAgaWYgKG1fZG9tYWluSURGcm9tU3RyaW5nU3RhdGVtZW50LmJpbmRUZXh0KDEs
IGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpkb21haW5JREZyb21TdHJpbmcgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAl
e3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisgICAgfQorICAgIAorICAgIGlmIChtX2RvbWFpbklERnJvbVN0
cmluZ1N0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX1JPVykgeworICAgICAgICBpbnQgcmVzZXRS
ZXN1bHQgPSBtX2RvbWFpbklERnJvbVN0cmluZ1N0YXRlbWVudC5yZXNldCgpOworICAgICAgICBB
U1NFUlRfVU5VU0VEKHJlc2V0UmVzdWx0LCByZXNldFJlc3VsdCA9PSBTUUxJVEVfT0spOworICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIAogICAgIGRvbWFpbklEID0gbV9kb21h
aW5JREZyb21TdHJpbmdTdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDApOwpAQCAtNDU4LDI4ICs0Njks
MzEgQEAgdW5zaWduZWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmRvbWFp
bklEKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJgogdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwcyhjb25zdCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzJiBsb2FkU3RhdGlzdGljcykKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6Omlz
TWFpbigpKTsKLQogICAgIGF1dG8gcmVnaXN0cmFibGVEb21haW5JRCA9IGRvbWFpbklEKGxvYWRT
dGF0aXN0aWNzLnJlZ2lzdHJhYmxlRG9tYWluKTsKKyAgICAKKyAgICBpZiAoIXJlZ2lzdHJhYmxl
RG9tYWluSUQpCisgICAgICAgIHJldHVybjsKKyAgICAKICAgICBmb3IgKGF1dG8mIHRvcEZyYW1l
RG9tYWluIDogbG9hZFN0YXRpc3RpY3Muc3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5z
KQotICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdG9yYWdlQWNjZXNzVW5kZXJU
b3BGcmFtZURvbWFpbnNTdGF0ZW1lbnQsIHJlZ2lzdHJhYmxlRG9tYWluSUQsIHRvcEZyYW1lRG9t
YWluKTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fc3RvcmFnZUFjY2Vzc1Vu
ZGVyVG9wRnJhbWVEb21haW5zU3RhdGVtZW50LCByZWdpc3RyYWJsZURvbWFpbklELnZhbHVlKCks
IHRvcEZyYW1lRG9tYWluKTsKIAogICAgIGZvciAoYXV0byYgdG9Eb21haW4gOiBsb2FkU3RhdGlz
dGljcy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvKQotICAgICAgICBpbnNlcnREb21haW5SZWxh
dGlvbnNoaXAobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvLCByZWdpc3RyYWJsZURvbWFpbklE
LCB0b0RvbWFpbik7CisgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3RvcEZyYW1l
VW5pcXVlUmVkaXJlY3RzVG8sIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgdG9Eb21haW4p
OwogICAgIAogICAgIGZvciAoYXV0byYgZnJvbURvbWFpbiA6IGxvYWRTdGF0aXN0aWNzLnRvcEZy
YW1lVW5pcXVlUmVkaXJlY3RzRnJvbSkKLSAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlw
KG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLCByZWdpc3RyYWJsZURvbWFpbklELCBmcm9t
RG9tYWluKTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fdG9wRnJhbWVVbmlx
dWVSZWRpcmVjdHNGcm9tLCByZWdpc3RyYWJsZURvbWFpbklELnZhbHVlKCksIGZyb21Eb21haW4p
OwogICAgIAogICAgIGZvciAoYXV0byYgdG9wRnJhbWVEb21haW4gOiBsb2FkU3RhdGlzdGljcy5z
dWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zKQotICAgICAgICBpbnNlcnREb21haW5SZWxhdGlv
bnNoaXAobV9zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zLCByZWdpc3RyYWJsZURvbWFpbklE
LCB0b3BGcmFtZURvbWFpbik7CisgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1
YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMsIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwg
dG9wRnJhbWVEb21haW4pOwogICAgIAogICAgIGZvciAoYXV0byYgdG9wRnJhbWVEb21haW4gOiBs
b2FkU3RhdGlzdGljcy5zdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zKQotICAgICAgICBp
bnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5z
LCByZWdpc3RyYWJsZURvbWFpbklELCB0b3BGcmFtZURvbWFpbik7CisgICAgICAgIGluc2VydERv
bWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMsIHJlZ2lz
dHJhYmxlRG9tYWluSUQudmFsdWUoKSwgdG9wRnJhbWVEb21haW4pOwogICAgIAogICAgIGZvciAo
YXV0byYgdG9Eb21haW4gOiBsb2FkU3RhdGlzdGljcy5zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0
c1RvKQotICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVuaXF1
ZVJlZGlyZWN0c1RvLCByZWdpc3RyYWJsZURvbWFpbklELCB0b0RvbWFpbik7CisgICAgICAgIGlu
c2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8sIHJl
Z2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgdG9Eb21haW4pOwogICAgIAogICAgIGZvciAoYXV0
byYgZnJvbURvbWFpbiA6IGxvYWRTdGF0aXN0aWNzLnN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3Rz
RnJvbSkKLSAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fc3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdHNGcm9tLCByZWdpc3RyYWJsZURvbWFpbklELCBmcm9tRG9tYWluKTsKKyAgICAg
ICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNG
cm9tLCByZWdpc3RyYWJsZURvbWFpbklELnZhbHVlKCksIGZyb21Eb21haW4pOwogfQogCiB2b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwb3B1bGF0ZUZyb21NZW1vcnlT
dG9yZShjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUmIG1lbW9yeVN0b3Jl
KQpAQCAtNDk3LDggKzUxMSw2IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OnBvcHVsYXRlRnJvbU1lbW9yeVN0b3JlKGNvbnN0IFJlc291cmNlCiAgICAgLy8gY2Fu
IHJlZmVyIHRvIHRoZSBPYnNlcnZlZERvbWFpbiB0YWJsZSBlbnRyaWVzCiAgICAgZm9yIChhdXRv
JiBzdGF0aXN0aWMgOiBzdGF0aXN0aWNzTWFwKQogICAgICAgICBpbnNlcnREb21haW5SZWxhdGlv
bnNoaXBzKHN0YXRpc3RpYy52YWx1ZSk7Ci0KLSAgICBtX2RhdGFiYXNlLnJ1blZhY3V1bUNvbW1h
bmQoKTsKIH0KIAogdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2Fs
Y3VsYXRlQW5kU3VibWl0VGVsZW1ldHJ5KCkgY29uc3QKQEAgLTUyOSw3ICs1NDEsNyBAQCB2b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbmNyZW1lbnRSZWNvcmRzRGVs
ZXRlZENvdW50Rm9yRG9tYWlucwogICAgIFNRTGl0ZVN0YXRlbWVudCBkb21haW5zVG9VcGRhdGVT
dGF0ZW1lbnQobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiVVBEQVRFIE9ic2VydmVkRG9tYWlucyBT
RVQgZGF0YVJlY29yZHNSZW1vdmVkID0gZGF0YVJlY29yZHNSZW1vdmVkICsgMSBXSEVSRSByZWdp
c3RyYWJsZURvbWFpbiBJTiAoIiwgZG9tYWluc1RvU3RyaW5nKGRvbWFpbnMpLCAiKSIpKTsKICAg
ICBpZiAoZG9tYWluc1RvVXBkYXRlU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAg
ICAgICAgfHwgZG9tYWluc1RvVXBkYXRlU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkg
ewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5jcmVtZW50U3RhdGlzdGljc0ZvckRvbWFpbnMgZmFp
bGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9u
SUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbmNyZW1lbnRT
dGF0aXN0aWNzRm9yRG9tYWlucyBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0
aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgfQogfQpAQCAtNTQ2LDI0ICs1NTgsMzQgQEAgdW5zaWduZWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlY3Vyc2l2ZWx5RmluZE5vblByZXZhbGVudERv
bWFpbnMKICAgICArK251bWJlck9mUmVjdXJzaXZlQ2FsbHM7CiAKICAgICBTdGRTZXQ8dW5zaWdu
ZWQ+IG5ld2x5SWRlbnRpZmllZERvbWFpbnM7Ci0gICAgU1FMaXRlU3RhdGVtZW50IGZpbmRTdWJy
ZXNvdXJjZXMobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIFN1YnJlc291cmNlVW5pcXVl
UmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQgZnJvbSBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0
c0Zyb20gSU5ORVIgSk9JTiBPYnNlcnZlZERvbWFpbnMgT04gT2JzZXJ2ZWREb21haW5zLmRvbWFp
bklEID0gU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5JRCBXSEVSRSBz
dWJyZXNvdXJjZURvbWFpbklEID0gIiwgU3RyaW5nOjpudW1iZXIocHJpbWFyeURvbWFpbklEKSwg
IkFORCBPYnNlcnZlZERvbWFpbnMuaXNQcmV2YWxlbnQgPSAwIikpOwotICAgIGlmIChmaW5kU3Vi
cmVzb3VyY2VzLnByZXBhcmUoKSA9PSBTUUxJVEVfT0spIHsKLSAgICAgICAgd2hpbGUgKGZpbmRT
dWJyZXNvdXJjZXMuc3RlcCgpID09IFNRTElURV9ST1cpIHsKLSAgICAgICAgICAgIGF1dG8gbmV3
RG9tYWluSUQgPSBmaW5kU3VicmVzb3VyY2VzLmdldENvbHVtbkludCgwKTsKLSAgICAgICAgICAg
IGF1dG8gaW5zZXJ0UmVzdWx0ID0gbm9uUHJldmFsZW50UmVkaXJlY3Rpb25Tb3VyY2VzLmluc2Vy
dChuZXdEb21haW5JRCk7Ci0gICAgICAgICAgICBpZiAoaW5zZXJ0UmVzdWx0LnNlY29uZCkKLSAg
ICAgICAgICAgICAgICBuZXdseUlkZW50aWZpZWREb21haW5zLmluc2VydChuZXdEb21haW5JRCk7
Ci0gICAgICAgIH0KKyAgICBTUUxpdGVTdGF0ZW1lbnQgZmluZFN1YnJlc291cmNlcyhtX2RhdGFi
YXNlLCAiU0VMRUNUIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQg
ZnJvbSBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20gSU5ORVIgSk9JTiBPYnNlcnZlZERv
bWFpbnMgT04gT2JzZXJ2ZWREb21haW5zLmRvbWFpbklEID0gU3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdHNGcm9tLmZyb21Eb21haW5JRCBXSEVSRSBzdWJyZXNvdXJjZURvbWFpbklEID0gPyBBTkQg
T2JzZXJ2ZWREb21haW5zLmlzUHJldmFsZW50ID0gMCJfcyk7CisgICAgaWYgKGZpbmRTdWJyZXNv
dXJjZXMucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICB8fCBmaW5kU3VicmVzb3VyY2Vz
LmJpbmRJbnQoMSwgcHJpbWFyeURvbWFpbklEKSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlY3Vyc2l2ZWx5RmluZE5vblByZXZhbGVudERvbWFp
bnNUaGF0UmVkaXJlY3RlZFRvVGhpc0RvbWFpbiBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVi
bGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAKKyAgICB3aGls
ZSAoZmluZFN1YnJlc291cmNlcy5zdGVwKCkgPT0gU1FMSVRFX1JPVykgeworICAgICAgICBpbnQg
bmV3RG9tYWluSUQgPSBmaW5kU3VicmVzb3VyY2VzLmdldENvbHVtbkludCgwKTsKKyAgICAgICAg
YXV0byBpbnNlcnRSZXN1bHQgPSBub25QcmV2YWxlbnRSZWRpcmVjdGlvblNvdXJjZXMuaW5zZXJ0
KG5ld0RvbWFpbklEKTsKKyAgICAgICAgaWYgKGluc2VydFJlc3VsdC5zZWNvbmQpCisgICAgICAg
ICAgICBuZXdseUlkZW50aWZpZWREb21haW5zLmluc2VydChuZXdEb21haW5JRCk7CiAgICAgfQog
Ci0gICAgU1FMaXRlU3RhdGVtZW50IGZpbmRUb3BGcmFtZXMobV9kYXRhYmFzZSwgbWFrZVN0cmlu
ZygiU0VMRUNUIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQgZnJvbSBU
b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20gSU5ORVIgSk9JTiBPYnNlcnZlZERvbWFpbnMgT04g
T2JzZXJ2ZWREb21haW5zLmRvbWFpbklEID0gVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLmZy
b21Eb21haW5JRCBXSEVSRSB0YXJnZXREb21haW5JRCA9ICIsIFN0cmluZzo6bnVtYmVyKHByaW1h
cnlEb21haW5JRCksICJBTkQgT2JzZXJ2ZWREb21haW5zLmlzUHJldmFsZW50ID0gMCIpKTsKLSAg
ICBpZiAoZmluZFRvcEZyYW1lcy5wcmVwYXJlKCkgPT0gU1FMSVRFX09LKSB7Ci0gICAgICAgIHdo
aWxlIChmaW5kVG9wRnJhbWVzLnN0ZXAoKSA9PSBTUUxJVEVfUk9XKSB7Ci0gICAgICAgICAgICBh
dXRvIG5ld0RvbWFpbklEID0gZmluZFRvcEZyYW1lcy5nZXRDb2x1bW5JbnQoMCk7Ci0gICAgICAg
ICAgICBhdXRvIGluc2VydFJlc3VsdCA9IG5vblByZXZhbGVudFJlZGlyZWN0aW9uU291cmNlcy5p
bnNlcnQobmV3RG9tYWluSUQpOwotICAgICAgICAgICAgaWYgKGluc2VydFJlc3VsdC5zZWNvbmQp
Ci0gICAgICAgICAgICAgICAgbmV3bHlJZGVudGlmaWVkRG9tYWlucy5pbnNlcnQobmV3RG9tYWlu
SUQpOwotICAgICAgICB9CisgICAgU1FMaXRlU3RhdGVtZW50IGZpbmRUb3BGcmFtZXMobV9kYXRh
YmFzZSwgIlNFTEVDVCBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20uZnJvbURvbWFpbklEIGZy
b20gVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tIElOTkVSIEpPSU4gT2JzZXJ2ZWREb21haW5z
IE9OIE9ic2VydmVkRG9tYWlucy5kb21haW5JRCA9IFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJv
bS5mcm9tRG9tYWluSUQgV0hFUkUgdGFyZ2V0RG9tYWluSUQgPSA/IEFORCBPYnNlcnZlZERvbWFp
bnMuaXNQcmV2YWxlbnQgPSAwIl9zKTsKKyAgICBpZiAoZmluZFRvcEZyYW1lcy5wcmVwYXJlKCkg
IT0gU1FMSVRFX09LCisgICAgICAgIHx8IGZpbmRUb3BGcmFtZXMuYmluZEludCgxLCBwcmltYXJ5
RG9tYWluSUQpICE9IFNRTElURV9PSykgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9B
TExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6cmVjdXJzaXZlbHlGaW5kTm9uUHJldmFsZW50RG9tYWluc1RoYXRSZWRpcmVjdGVkVG9U
aGlzRG9tYWluIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0
YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIAorICAgIHdoaWxlIChmaW5kVG9wRnJhbWVzLnN0
ZXAoKSA9PSBTUUxJVEVfUk9XKSB7CisgICAgICAgIGludCBuZXdEb21haW5JRCA9IGZpbmRUb3BG
cmFtZXMuZ2V0Q29sdW1uSW50KDApOworICAgICAgICBhdXRvIGluc2VydFJlc3VsdCA9IG5vblBy
ZXZhbGVudFJlZGlyZWN0aW9uU291cmNlcy5pbnNlcnQobmV3RG9tYWluSUQpOworICAgICAgICBp
ZiAoaW5zZXJ0UmVzdWx0LnNlY29uZCkKKyAgICAgICAgICAgIG5ld2x5SWRlbnRpZmllZERvbWFp
bnMuaW5zZXJ0KG5ld0RvbWFpbklEKTsKICAgICB9CiAKICAgICBpZiAobmV3bHlJZGVudGlmaWVk
RG9tYWlucy5lbXB0eSgpKQpAQCAtNjA3LDcgKzYyOSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6Om1hcmtBc1ByZXZhbGVudElmSGFzUmVkaXJlY3RlZFRvUHJl
dmFsCiAgICAgU1FMaXRlU3RhdGVtZW50IG1hcmtQcmV2YWxlbnRTdGF0ZW1lbnQobV9kYXRhYmFz
ZSwgbWFrZVN0cmluZygiVVBEQVRFIE9ic2VydmVkRG9tYWlucyBTRVQgaXNQcmV2YWxlbnQgPSAx
IFdIRVJFIGRvbWFpbklEIElOICgiLCBidWlsZExpc3QoV1RGOjpJdGVyYXRvclJhbmdlPFN0ZFNl
dDx1bnNpZ25lZD46Oml0ZXJhdG9yPihwcmV2YWxlbnREdWVUb1JlZGlyZWN0LmJlZ2luKCksIHBy
ZXZhbGVudER1ZVRvUmVkaXJlY3QuZW5kKCkpKSwgIikiKSk7CiAgICAgaWYgKG1hcmtQcmV2YWxl
bnRTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwogICAgICAgICB8fCBtYXJrUHJldmFs
ZW50U3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6bWFya0FzUHJldmFsZW50SWZIYXNSZWRpcmVjdGVkVG9QcmV2YWxlbnQgZmFpbGVkIHRvIGV4
ZWN1dGUsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RF
cnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Np
b25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1hcmtBc1By
ZXZhbGVudElmSGFzUmVkaXJlY3RlZFRvUHJldmFsZW50IGZhaWxlZCB0byBleGVjdXRlLCBlcnJv
ciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7
CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIH0KQEAgLTY1Nyw3ICs2Nzks
NyBAQCBIYXNoTWFwPHVuc2lnbmVkLCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6Tm90VmVyeVByZXZhbGVudFJlc291cmNlcwogICAgICAgICB9CiAgICAgfQogCi0gICAgU1FM
aXRlU3RhdGVtZW50IHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNDb3VudFN0YXRlbWVudCht
X2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1Qgc3VicmVzb3VyY2VEb21haW5JRCwgQ09VTlQo
dG9wRnJhbWVEb21haW5JRCkgRlJPTSBTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zIFdI
RVJFIHN1YnJlc291cmNlRG9tYWluSUQgSU4gKCIsIGRvbWFpbklEc09mSW50ZXJlc3QsICIpIEdS
T1VQIEJZIHN1YnJlc291cmNlRG9tYWluSUQiKSk7CisgICAgU1FMaXRlU3RhdGVtZW50IHN1YmZy
YW1lVW5kZXJUb3BGcmFtZURvbWFpbnNDb3VudFN0YXRlbWVudChtX2RhdGFiYXNlLCBtYWtlU3Ry
aW5nKCJTRUxFQ1Qgc3ViZnJhbWVEb21haW5JRCwgQ09VTlQodG9wRnJhbWVEb21haW5JRCkgRlJP
TSBTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJFIHN1YmZyYW1lRG9tYWluSUQgSU4g
KCIsIGRvbWFpbklEc09mSW50ZXJlc3QsICIpIEdST1VQIEJZIHN1YmZyYW1lRG9tYWluSUQiKSk7
CiAgICAgaWYgKHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNDb3VudFN0YXRlbWVudC5wcmVw
YXJlKCkgPT0gU1FMSVRFX09LKSB7CiAgICAgICAgIHdoaWxlIChzdWJmcmFtZVVuZGVyVG9wRnJh
bWVEb21haW5zQ291bnRTdGF0ZW1lbnQuc3RlcCgpID09IFNRTElURV9ST1cpIHsKICAgICAgICAg
ICAgIHVuc2lnbmVkIGRvbWFpbklEID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHN1YmZyYW1lVW5k
ZXJUb3BGcmFtZURvbWFpbnNDb3VudFN0YXRlbWVudC5nZXRDb2x1bW5JbnQoMCkpOwpAQCAtNjg3
LDEyICs3MDksMTIgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
cmVjbGFzc2lmeVJlc291cmNlcygpCiAgICAgYXV0byBub3RWZXJ5UHJldmFsZW50UmVzb3VyY2Vz
ID0gZmluZE5vdFZlcnlQcmV2YWxlbnRSZXNvdXJjZXMoKTsKIAogICAgIGZvciAoYXV0byYgcmVz
b3VyY2VTdGF0aXN0aWMgOiBub3RWZXJ5UHJldmFsZW50UmVzb3VyY2VzLnZhbHVlcygpKSB7Ci0g
ICAgICAgIGlmIChzaG91bGRTa2lwKHJlc291cmNlU3RhdGlzdGljLnJlZ2lzdGVyYWJsZURvbWFp
bikpCisgICAgICAgIGlmIChzaG91bGRTa2lwKHJlc291cmNlU3RhdGlzdGljLnJlZ2lzdHJhYmxl
RG9tYWluKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGF1dG8gbmV3UHJldmFs
ZW5jZSA9IGNsYXNzaWZpZXIoKS5jYWxjdWxhdGVSZXNvdXJjZVByZXZhbGVuY2UocmVzb3VyY2VT
dGF0aXN0aWMuc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluc0NvdW50LCByZXNvdXJjZVN0
YXRpc3RpYy5zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvQ291bnQsIHJlc291cmNlU3RhdGlz
dGljLnN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNDb3VudCwgcmVzb3VyY2VTdGF0aXN0aWMu
dG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb0NvdW50LCByZXNvdXJjZVN0YXRpc3RpYy5wcmV2YWxl
bmNlKTsKICAgICAgICAgaWYgKG5ld1ByZXZhbGVuY2UgIT0gcmVzb3VyY2VTdGF0aXN0aWMucHJl
dmFsZW5jZSkKLSAgICAgICAgICAgIHNldFByZXZhbGVudFJlc291cmNlKHJlc291cmNlU3RhdGlz
dGljLnJlZ2lzdGVyYWJsZURvbWFpbiwgbmV3UHJldmFsZW5jZSk7CisgICAgICAgICAgICBzZXRQ
cmV2YWxlbnRSZXNvdXJjZShyZXNvdXJjZVN0YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbiwgbmV3
UHJldmFsZW5jZSk7CiAgICAgfQogfQogCkBAIC03NzUsMTEgKzc5NywxMyBAQCB2b2lkIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJG
cmFtZURvbWFpbiYmCiAgICAgaWYgKHVzZXJXYXNQcm9tcHRlZEVhcmxpZXIgPT0gU3RvcmFnZUFj
Y2Vzc1Byb21wdFdhc1Nob3duOjpZZXMpCiAgICAgICAgIFJFTEVBU0VfTE9HX0lORk9fSUYoZGVi
dWdMb2dnaW5nRW5hYmxlZCgpLCBJVFBEZWJ1ZywgIlN0b3JhZ2UgYWNjZXNzIHdhcyBncmFudGVk
IHRvICV7cHVibGljfXMgdW5kZXIgJXtwdWJsaWN9cy4iLCBzdWJGcmFtZURvbWFpbi5zdHJpbmco
KS51dGY4KCkuZGF0YSgpLCB0b3BGcmFtZURvbWFpbi5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsK
IAotICAgIFNRTGl0ZVN0YXRlbWVudCBpbmNyZW1lbnRTdG9yYWdlQWNjZXNzKG1fZGF0YWJhc2Us
IG1ha2VTdHJpbmcoIlVQREFURSBPYnNlcnZlZERvbWFpbnMgU0VUIHRpbWVzQWNjZXNzZWRBc0Zp
cnN0UGFydHlEdWVUb1N0b3JhZ2VBY2Nlc3NBUEkgPSB0aW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5
RHVlVG9TdG9yYWdlQWNjZXNzQVBJICsgMSBXSEVSRSBkb21haW5JRCA9ICIsIFN0cmluZzo6bnVt
YmVyKHN1YkZyYW1lU3RhdHVzLnNlY29uZCkpKTsKKyAgICBTUUxpdGVTdGF0ZW1lbnQgaW5jcmVt
ZW50U3RvcmFnZUFjY2VzcyhtX2RhdGFiYXNlLCAiVVBEQVRFIE9ic2VydmVkRG9tYWlucyBTRVQg
dGltZXNBY2Nlc3NlZEFzRmlyc3RQYXJ0eUR1ZVRvU3RvcmFnZUFjY2Vzc0FQSSA9IHRpbWVzQWNj
ZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VBY2Nlc3NBUEkgKyAxIFdIRVJFIGRvbWFpbklE
ID0gPyIpOwogICAgIGlmIChpbmNyZW1lbnRTdG9yYWdlQWNjZXNzLnByZXBhcmUoKSAhPSBTUUxJ
VEVfT0sKKyAgICAgICAgfHwgaW5jcmVtZW50U3RvcmFnZUFjY2Vzcy5iaW5kSW50KDEsIHN1YkZy
YW1lU3RhdHVzLnNlY29uZCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IGluY3JlbWVudFN0b3Jh
Z2VBY2Nlc3Muc3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpy
ZXF1ZXN0U3RvcmFnZUFjY2VzcyBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0
aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTog
JXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKICAgICBn
cmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92
ZSh0b3BGcmFtZURvbWFpbiksIGZyYW1lSUQsIHBhZ2VJRCwgdXNlcldhc1Byb21wdGVkRWFybGll
ciwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChTdG9y
YWdlQWNjZXNzV2FzR3JhbnRlZCB3YXNHcmFudGVkKSBtdXRhYmxlIHsKQEAgLTg1MSwxMCArODc1
LDEzIEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW5kZmF0
aGVyRGF0YUZvckRvbWFpbnMoY29uc3QgSGFzaFNlCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjpp
c01haW4oKSk7CiAKKyAgICBmb3IgKGF1dG8mIHJlZ2lzdHJhYmxlRG9tYWluIDogZG9tYWlucykK
KyAgICAgICAgZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4ocmVn
aXN0cmFibGVEb21haW4pOworCiAgICAgU1FMaXRlU3RhdGVtZW50IGRvbWFpbnNUb1VwZGF0ZVN0
YXRlbWVudChtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJVUERBVEUgT2JzZXJ2ZWREb21haW5zIFNF
VCBncmFuZGZhdGhlcmVkID0gMSBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiBJTiAoIiwgZG9tYWlu
c1RvU3RyaW5nKGRvbWFpbnMpLCAiKSIpKTsKICAgICBpZiAoZG9tYWluc1RvVXBkYXRlU3RhdGVt
ZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgZG9tYWluc1RvVXBkYXRlU3Rh
dGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3Jh
bmRmYXRoZXJEYXRhRm9yRG9tYWlucyBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMi
LCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0df
RVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OmdyYW5kZmF0aGVyRGF0YUZvckRvbWFpbnMgZmFpbGVkLCBlcnJvciBt
ZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIH0KQEAgLTg5NCw3ICs5MjEsNyBA
QCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dGcmFtZU5hdmln
YXRpb24oY29uc3QgUmVnaXN0cmFibGVEbwogICAgIGlmICghaXNNYWluRnJhbWUgJiYgIShhcmVU
YXJnZXRBbmRUb3BGcmFtZURvbWFpbnNTYW1lU2l0ZSB8fCBhcmVUYXJnZXRBbmRTb3VyY2VEb21h
aW5zU2FtZVNpdGUpKSB7CiAgICAgICAgIGF1dG8gdGFyZ2V0UmVzdWx0ID0gZW5zdXJlUmVzb3Vy
Y2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4odGFyZ2V0RG9tYWluKTsKICAgICAgICAg
dXBkYXRlTGFzdFNlZW4odGFyZ2V0RG9tYWluLCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpyZWR1
Y2VUaW1lUmVzb2x1dGlvbihXYWxsVGltZTo6bm93KCkpKTsKLQorICAgICAgICBlbnN1cmVSZXNv
dXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0b3BGcmFtZURvbWFpbik7CiAgICAg
ICAgIGlmICghcmVsYXRpb25zaGlwRXhpc3RzKG1fc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlu
RXhpc3RzLCB0YXJnZXRSZXN1bHQuc2Vjb25kLCB0b3BGcmFtZURvbWFpbikpIHsKICAgICAgICAg
ICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFp
bnMsIHRhcmdldFJlc3VsdC5zZWNvbmQsIHRvcEZyYW1lRG9tYWluKTsKICAgICAgICAgICAgIHN0
YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7CkBAIC05MDQsMjQgKzkzMSwyNSBAQCB2b2lkIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24oY29u
c3QgUmVnaXN0cmFibGVEbwogICAgIGlmIChpc1JlZGlyZWN0ICYmICFhcmVUYXJnZXRBbmRTb3Vy
Y2VEb21haW5zU2FtZVNpdGUpIHsKICAgICAgICAgaWYgKGlzTWFpbkZyYW1lKSB7CiAgICAgICAg
ICAgICBhdXRvIHJlZGlyZWN0aW5nRG9tYWluUmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0
aWNzRm9yUmVnaXN0cmFibGVEb21haW4oc291cmNlRG9tYWluKTsKKyAgICAgICAgICAgIGF1dG8g
dGFyZ2V0UmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21h
aW4odGFyZ2V0RG9tYWluKTsKKwogICAgICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMo
bV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvRXhpc3RzLCByZWRpcmVjdGluZ0RvbWFpblJlc3Vs
dC5zZWNvbmQsIHRhcmdldERvbWFpbikpIHsKICAgICAgICAgICAgICAgICBpbnNlcnREb21haW5S
ZWxhdGlvbnNoaXAobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvLCByZWRpcmVjdGluZ0RvbWFp
blJlc3VsdC5zZWNvbmQsIHRhcmdldERvbWFpbik7CiAgICAgICAgICAgICAgICAgc3RhdGlzdGlj
c1dlcmVVcGRhdGVkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgYXV0byB0
YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFp
bih0YXJnZXREb21haW4pOwogICAgICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV90
b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb21FeGlzdHMsIHRhcmdldFJlc3VsdC5zZWNvbmQsIHNv
dXJjZURvbWFpbikpIHsKICAgICAgICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAo
bV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHRhcmdldFJlc3VsdC5zZWNvbmQsIHNvdXJj
ZURvbWFpbik7CiAgICAgICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGF1dG8gcmVkaXJl
Y3RpbmdEb21haW5SZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJs
ZURvbWFpbihzb3VyY2VEb21haW4pOworICAgICAgICAgICAgYXV0byB0YXJnZXRSZXN1bHQgPSBl
bnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0YXJnZXREb21haW4p
OwogICAgICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV9zdWJyZXNvdXJjZVVuaXF1
ZVJlZGlyZWN0c1RvRXhpc3RzLCByZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQsIHRhcmdl
dERvbWFpbikpIHsKICAgICAgICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9z
dWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLCByZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNv
bmQsIHRhcmdldERvbWFpbik7CiAgICAgICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVk
ID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgYXV0byB0YXJnZXRSZXN1bHQg
PSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0YXJnZXREb21h
aW4pOwogICAgICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV9zdWJyZXNvdXJjZVVu
aXF1ZVJlZGlyZWN0c0Zyb21FeGlzdHMsIHRhcmdldFJlc3VsdC5zZWNvbmQsIHNvdXJjZURvbWFp
bikpIHsKICAgICAgICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHRhcmdldFJlc3VsdC5zZWNvbmQsIHNvdXJjZURvbWFp
bik7CiAgICAgICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKQEAgLTk1
MCwxMSArOTc4LDExIEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OnNldFVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvCiB7CiAgICAgQVNTRVJUKCFS
dW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBpZiAobV9tb3N0UmVjZW50VXNlckludGVyYWN0aW9u
U3RhdGVtZW50LmJpbmRJbnQoMSwgaGFkVXNlckludGVyYWN0aW9uKQorICAgIGlmIChtX21vc3RS
ZWNlbnRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuYmluZEludCgxLCBoYWRVc2VySW50ZXJhY3Rp
b24pICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX21vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25T
dGF0ZW1lbnQuYmluZERvdWJsZSgyLCBtb3N0UmVjZW50SW50ZXJhY3Rpb24uc2Vjb25kc1NpbmNl
RXBvY2goKS52YWx1ZSgpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9tb3N0UmVjZW50VXNl
ckludGVyYWN0aW9uU3RhdGVtZW50LmJpbmRUZXh0KDMsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FM
SVRFX09LCiAgICAgICAgIHx8IG1fbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5z
dGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29y
aywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFVzZXJJbnRl
cmFjdGlvbiwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFz
dEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vz
c2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0VXNl
ckludGVyYWN0aW9uLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFz
ZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtOTc4LDEwICsxMDA2LDExIEBAIHZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lz
dHJhYmxlCiAgICAgYXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NG
b3JSZWdpc3RyYWJsZURvbWFpbihkb21haW4pOwogICAgIHNldFVzZXJJbnRlcmFjdGlvbihkb21h
aW4sIGZhbHNlLCB7IH0pOwogCi0gICAgU1FMaXRlU3RhdGVtZW50IHJlbW92ZVN0b3JhZ2VBY2Nl
c3MobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiREVMRVRFIEZST00gU3RvcmFnZUFjY2Vzc1VuZGVy
VG9wRnJhbWVEb21haW5zIFdIRVJFIGRvbWFpbklEID0gIiwgU3RyaW5nOjpudW1iZXIodGFyZ2V0
UmVzdWx0LnNlY29uZCkpKTsKKyAgICBTUUxpdGVTdGF0ZW1lbnQgcmVtb3ZlU3RvcmFnZUFjY2Vz
cyhtX2RhdGFiYXNlLCAiREVMRVRFIEZST00gU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21h
aW5zIFdIRVJFIGRvbWFpbklEID0gPyIpOwogICAgIGlmIChyZW1vdmVTdG9yYWdlQWNjZXNzLnBy
ZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgcmVtb3ZlU3RvcmFnZUFjY2Vzcy5iaW5k
SW50KDEsIHRhcmdldFJlc3VsdC5zZWNvbmQpICE9IFNRTElURV9PSwogICAgICAgICB8fCByZW1v
dmVTdG9yYWdlQWNjZXNzLnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6bG9nVXNlckludGVyYWN0aW9uIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAl
e3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dVc2VySW50ZXJhY3Rpb24gZmFpbGVkIHRvIGJp
bmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJv
ck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogfQpAQCAtOTkx
LDE1ICsxMDIwLDIwIEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
Omhhc0hhZFVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsCiAgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7CiAKICAgICBpZiAobV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQu
YmluZFRleHQoMSwgZG9tYWluLnN0cmluZygpKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgfHwgbV9o
YWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjptX3VwZGF0ZVByZXZhbGVudFJlc291cmNlU3RhdGVtZW50IGZhaWxl
ZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9y
TXNnKCkpOwotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfHwgbV9oYWRV
c2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ST1cpIHsKKyAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1faGFkVXNlckludGVyYWN0aW9uU3RhdGVtZW50
IGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFz
dEVycm9yTXNnKCkpOworCisgICAgICAgIGludCByZXNldFJlc3VsdCA9IG1faGFkVXNlckludGVy
YWN0aW9uU3RhdGVtZW50LnJlc2V0KCk7CisgICAgICAgIEFTU0VSVF9VTlVTRUQocmVzZXRSZXN1
bHQsIHJlc2V0UmVzdWx0ID09IFNRTElURV9PSyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAKICAgICBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiA9ICEhbV9oYWRVc2VySW50ZXJhY3Rp
b25TdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDApOwotICAgIGlmICghaGFkVXNlckludGVyYWN0aW9u
KQorICAgIGlmICghaGFkVXNlckludGVyYWN0aW9uKSB7CisgICAgICAgIGludCByZXNldFJlc3Vs
dCA9IG1faGFkVXNlckludGVyYWN0aW9uU3RhdGVtZW50LnJlc2V0KCk7CisgICAgICAgIEFTU0VS
VF9VTlVTRUQocmVzZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNRTElURV9PSyk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgCiAgICAgV2FsbFRpbWUgbW9zdFJlY2VudFVzZXJJ
bnRlcmFjdGlvblRpbWUgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMobV9oYWRVc2VySW50ZXJh
Y3Rpb25TdGF0ZW1lbnQuZ2V0Q29sdW1uRG91YmxlKDEpKTsKIApAQCAtMTAxMSw2ICsxMDQ1LDkg
QEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVXNlcklu
dGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmwKICAgICAgICAgaGFkVXNlckludGVyYWN0aW9uID0g
ZmFsc2U7CiAgICAgfQogICAgIAorICAgIGludCByZXNldFJlc3VsdCA9IG1faGFkVXNlckludGVy
YWN0aW9uU3RhdGVtZW50LnJlc2V0KCk7CisgICAgQVNTRVJUX1VOVVNFRChyZXNldFJlc3VsdCwg
cmVzZXRSZXN1bHQgPT0gU1FMSVRFX09LKTsKKwogICAgIHJldHVybiBoYWRVc2VySW50ZXJhY3Rp
b247CiB9CiAKQEAgLTEwMjMsNyArMTA2MCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OnNldFByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxlCiAg
ICAgaWYgKG1fdXBkYXRlUHJldmFsZW50UmVzb3VyY2VTdGF0ZW1lbnQuYmluZEludCgxLCAxKSAh
PSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV91cGRhdGVQcmV2YWxlbnRSZXNvdXJjZVN0YXRlbWVu
dC5iaW5kVGV4dCgyLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBt
X3VwZGF0ZVByZXZhbGVudFJlc291cmNlU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkg
ewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV91cGRhdGVQcmV2YWxlbnRSZXNvdXJjZVN0YXRlbWVu
dCBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxh
c3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nl
c3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1fdXBk
YXRlUHJldmFsZW50UmVzb3VyY2VTdGF0ZW1lbnQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1
YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTAzNSw3ICsxMDcy
LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0UHJldmFs
ZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGUKICAgICAgICAgaWYgKG1fdXBkYXRlVmVyeVBy
ZXZhbGVudFJlc291cmNlU3RhdGVtZW50LmJpbmRJbnQoMSwgMSkgIT0gU1FMSVRFX09LCiAgICAg
ICAgICAgICB8fCBtX3VwZGF0ZVZlcnlQcmV2YWxlbnRSZXNvdXJjZVN0YXRlbWVudC5iaW5kVGV4
dCgyLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSwogICAgICAgICAgICAgfHwgbV91cGRh
dGVWZXJ5UHJldmFsZW50UmVzb3VyY2VTdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ET05FKSB7
Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV91cGRhdGVWZXJ5UHJldmFsZW50UmVzb3VyY2VT
dGF0ZW1lbnQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRh
YmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9B
TExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6bV91cGRhdGVWZXJ5UHJldmFsZW50UmVzb3VyY2VTdGF0ZW1lbnQgZmFpbGVkLCBlcnJv
ciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7
CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQpAQCAtMTA0NSw3ICsxMDgyLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6c2V0UHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGUK
ICAgICB9CiAKICAgICBTdGRTZXQ8dW5zaWduZWQ+IG5vblByZXZhbGVudFJlZGlyZWN0aW9uU291
cmNlczsKLSAgICByZWN1cnNpdmVseUZpbmROb25QcmV2YWxlbnREb21haW5zVGhhdFJlZGlyZWN0
ZWRUb1RoaXNEb21haW4oZG9tYWluSUQoZG9tYWluKSwgbm9uUHJldmFsZW50UmVkaXJlY3Rpb25T
b3VyY2VzLCAwKTsKKyAgICByZWN1cnNpdmVseUZpbmROb25QcmV2YWxlbnREb21haW5zVGhhdFJl
ZGlyZWN0ZWRUb1RoaXNEb21haW4oZG9tYWluSUQoZG9tYWluKS52YWx1ZSgpLCBub25QcmV2YWxl
bnRSZWRpcmVjdGlvblNvdXJjZXMsIDApOwogICAgIHNldERvbWFpbnNBc1ByZXZhbGVudChXVEZN
b3ZlKG5vblByZXZhbGVudFJlZGlyZWN0aW9uU291cmNlcykpOwogfQogCkBAIC0xMDU2LDcgKzEw
OTMsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXREb21h
aW5zQXNQcmV2YWxlbnQoU3RkU2V0PHVuc2lnbmVkPgogICAgIFNRTGl0ZVN0YXRlbWVudCBkb21h
aW5zVG9VcGRhdGVTdGF0ZW1lbnQobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiVVBEQVRFIE9ic2Vy
dmVkRG9tYWlucyBTRVQgaXNQcmV2YWxlbnQgPSAxIFdIRVJFIGRvbWFpbklEIElOICgiLCBidWls
ZExpc3QoV1RGOjpJdGVyYXRvclJhbmdlPFN0ZFNldDx1bnNpZ25lZD46Oml0ZXJhdG9yPihkb21h
aW5zLmJlZ2luKCksIGRvbWFpbnMuZW5kKCkpKSwgIikiKSk7CiAgICAgaWYgKGRvbWFpbnNUb1Vw
ZGF0ZVN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IGRvbWFpbnNU
b1VwZGF0ZVN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OnNldERvbWFpbnNBc1ByZXZhbGVudCBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVi
bGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldERvbWFpbnNBc1ByZXZhbGVudCBmYWlsZWQsIGVycm9y
IG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC0xMDc2LDkgKzExMTMsMTIgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6cHJlZGljYXRlVmFsdWVGb3JEb21haW4oV2ViQ29yZTo6U1FMaXQKICAgICBBU1NFUlQo
IVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAKICAgICBpZiAocHJlZGljYXRlU3RhdGVtZW50LmJp
bmRUZXh0KDEsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LCi0gICAgICAgIHx8IHByZWRp
Y2F0ZVN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OnByZWRpY2F0ZVZhbHVlRm9yRG9tYWluIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdl
OiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB8fCBwcmVkaWNhdGVTdGF0ZW1lbnQuc3Rl
cCgpICE9IFNRTElURV9ST1cpIHsKKworICAgICAgICBpbnQgcmVzZXRSZXN1bHQgPSBwcmVkaWNh
dGVTdGF0ZW1lbnQucmVzZXQoKTsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChyZXNldFJlc3VsdCwg
cmVzZXRSZXN1bHQgPT0gU1FMSVRFX09LKTsKKworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9J
Rl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6cHJlZGljYXRlVmFsdWVGb3JEb21haW4gZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1l
c3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTEzNyw3ICsxMTc3LDcgQEAgdm9pZCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJQcmV2YWxlbnRSZXNvdXJj
ZShjb25zdCBSZWdpc3RyYWIKICAgICAKICAgICBpZiAobV9jbGVhclByZXZhbGVudFJlc291cmNl
U3RhdGVtZW50LmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LCiAgICAg
ICAgIHx8IG1fY2xlYXJQcmV2YWxlbnRSZXNvdXJjZVN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRF
X0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyUHJldmFsZW50UmVzb3VyY2UsIGVy
cm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygp
KTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVw
IC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyUHJldmFsZW50UmVz
b3VyY2UsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RF
cnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CkBAIC0xMTU1LDcgKzExOTUsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpzZXRHcmFuZGZhdGhlcmVkKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYQog
ICAgIGlmIChtX3VwZGF0ZUdyYW5kZmF0aGVyZWRTdGF0ZW1lbnQuYmluZEludCgxLCB2YWx1ZSkg
IT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fdXBkYXRlR3JhbmRmYXRoZXJlZFN0YXRlbWVudC5i
aW5kVGV4dCgxLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX3Vw
ZGF0ZUdyYW5kZmF0aGVyZWRTdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpzZXRHcmFuZGZhdGhlcmVkIGZhaWxlZCB0byBiaW5kLCBlcnJvciBt
ZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7Cisg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRHcmFuZGZhdGhlcmVkIGZhaWxl
ZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5s
YXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQpAQCAtMTI0OCw3ICsxMjg4LDcgQEAgc3RkOjpwYWlyPFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpBZGRlZFJlY29yZCwgdW5zaWduZWQ+IFJlc291cmNl
TG8KICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGlmIChtX2RvbWFpbklE
RnJvbVN0cmluZ1N0YXRlbWVudC5iaW5kVGV4dCgxLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElU
RV9PSykgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y3JlYXRlU2NoZW1hIGZhaWxlZCwgZXJyb3Ig
bWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwor
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZW5zdXJlUmVzb3VyY2VTdGF0aXN0
aWNzRm9yUmVnaXN0cmFibGVEb21haW4gZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31z
IiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4geyBBZGRlZFJlY29yZDo6Tm8sIDAgfTsKICAgICB9
CkBAIC0xMjY3LDEzICsxMzA3LDI1IEBAIHN0ZDo6cGFpcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6QWRkZWRSZWNvcmQsIHVuc2lnbmVkPiBSZXNvdXJjZUxvCiAgICAgUmVz
b3VyY2VMb2FkU3RhdGlzdGljcyBuZXdPYnNlcnZhdGlvbihkb21haW4pOwogICAgIGluc2VydE9i
c2VydmVkRG9tYWluKG5ld09ic2VydmF0aW9uKTsKIAotICAgIHJldHVybiB7IEFkZGVkUmVjb3Jk
OjpZZXMsIGRvbWFpbklEKGRvbWFpbikgfTsKKyAgICByZXR1cm4geyBBZGRlZFJlY29yZDo6WWVz
LCBkb21haW5JRChkb21haW4pLnZhbHVlKCkgfTsKK30KKwordm9pZCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJEYXRhYmFzZUNvbnRlbnRzKCkKK3sKKyAgICBtX2Rh
dGFiYXNlLmNsZWFyQWxsVGFibGVzKCk7CisKKyAgICBpZiAoIWNyZWF0ZVNjaGVtYSgpKSB7Cisg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhckRhdGFiYXNlQ29udGVudHMgZmFpbGVkLCBlcnJvciBt
ZXNzYWdlOiAle3B1YmxpY31zLCBkYXRhYmFzZSBwYXRoOiAle3B1YmxpY31zIiwgdGhpcywgbV9k
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSwgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aC51dGY4KCkuZGF0
YSgpKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFy
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBB
U1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAorICAgIGNsZWFyRGF0YWJhc2VDb250ZW50cygp
OwogICAgIGNsZWFyT3BlcmF0aW5nRGF0ZXMoKTsKIAogICAgIGF1dG8gY2FsbGJhY2tBZ2dyZWdh
dG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwpAQCAtMTI4OSwxMiArMTM0MSwxNiBAQCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6Q29va2llVHJlYXRtZW50UmVzdWx0IFJlc291cmNlTG9hZFN0YXRpc3RpYwogewog
ICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgU1FMaXRlU3RhdGVtZW50IHN0
YXRlbWVudChtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgaXNQcmV2YWxlbnQsIGhhZFVz
ZXJJbnRlcmFjdGlvbiBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFp
biA9ICIsIGRvbWFpbi5zdHJpbmcoKSkpOworICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQo
bV9kYXRhYmFzZSwgIlNFTEVDVCBpc1ByZXZhbGVudCwgaGFkVXNlckludGVyYWN0aW9uIEZST00g
T2JzZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0gPyIpOwogICAgIGlmIChz
dGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwotICAgICAgICB8fCBzdGF0ZW1lbnQuc3Rl
cCgpICE9IFNRTElURV9ST1cpIHsKLSAgICAgICAgcmV0dXJuIENvb2tpZVRyZWF0bWVudFJlc3Vs
dDo6QWxsb3c7CisgICAgICAgIHx8IHN0YXRlbWVudC5iaW5kVGV4dCgxLCBkb21haW4uc3RyaW5n
KCkpICE9IFNRTElURV9PSykgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VE
KG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
Y29va2llVHJlYXRtZW50Rm9yT3JpZ2luIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAl
e3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KICAgICAKKyAgICBpZiAoc3RhdGVtZW50LnN0ZXAo
KSAhPSBTUUxJVEVfUk9XKQorICAgICAgICByZXR1cm4gQ29va2llVHJlYXRtZW50UmVzdWx0OjpB
bGxvdzsKKyAgICAKICAgICBib29sIGlzUHJldmFsZW50ID0gISFzdGF0ZW1lbnQuZ2V0Q29sdW1u
SW50KDApOwogICAgIGlmICghaXNQcmV2YWxlbnQpCiAgICAgICAgIHJldHVybiBDb29raWVUcmVh
dG1lbnRSZXN1bHQ6OkFsbG93OwpAQCAtMTMwNywxMCArMTM2MywxMiBAQCBTdG9yYWdlQWNjZXNz
UHJvbXB0V2FzU2hvd24gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc1Vz
ZXJHcmFudGVkUwogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgYXV0
byBmaXJzdFBhcnR5UHJpbWFyeURvbWFpbklEID0gZG9tYWluSUQoZmlyc3RQYXJ0eURvbWFpbik7
CisgICAgYXV0byBmaXJzdFBhcnR5UHJpbWFyeURvbWFpbklEID0gZG9tYWluSUQoZmlyc3RQYXJ0
eURvbWFpbikudmFsdWUoKTsKIAotICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQobV9kYXRh
YmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIENPVU5UKCopIEZST00gU3RvcmFnZUFjY2Vzc1VuZGVy
VG9wRnJhbWVEb21haW5zIFdIRVJFIGRvbWFpbklEID0gIiwgU3RyaW5nOjpudW1iZXIocmVxdWVz
dGluZ0RvbWFpbklEKSwgIiBBTkQgdG9wTGV2ZWxEb21haW5JRCA9ICIsIFN0cmluZzo6bnVtYmVy
KGZpcnN0UGFydHlQcmltYXJ5RG9tYWluSUQpKSk7CisgICAgU1FMaXRlU3RhdGVtZW50IHN0YXRl
bWVudChtX2RhdGFiYXNlLCAiU0VMRUNUIENPVU5UKCopIEZST00gU3RvcmFnZUFjY2Vzc1VuZGVy
VG9wRnJhbWVEb21haW5zIFdIRVJFIGRvbWFpbklEID0gPyBBTkQgdG9wTGV2ZWxEb21haW5JRCA9
ID8iKTsKICAgICBpZiAoc3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAgICAg
fHwgc3RhdGVtZW50LmJpbmRJbnQoMSwgcmVxdWVzdGluZ0RvbWFpbklEKSAhPSBTUUxJVEVfT0sK
KyAgICAgICAgfHwgc3RhdGVtZW50LmJpbmRJbnQoMiwgZmlyc3RQYXJ0eVByaW1hcnlEb21haW5J
RCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX1JP
VykKICAgICAgICAgcmV0dXJuIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjo6Tm87CiAKQEAg
LTE0MzgsNyArMTQ5Niw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OmNsZWFyRXhwaXJlZFVzZXJJbnRlcmFjdGlvbnMoKQogCiAgICAgaWYgKGNsZWFyRXhwaXJl
ZEludGVyYWN0aW9uLnN0ZXAoKSAhPSBTUUxJVEVfRE9ORQogICAgICAgICB8fCByZW1vdmVTdG9y
YWdlQWNjZXNzLnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
bG9nVXNlckludGVyYWN0aW9uIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3B1Ymxp
Y31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpjbGVhckV4cGlyZWRVc2VySW50ZXJhY3Rpb25zIHN0YXRlbWVudChzKSBmYWlsZWQgdG8g
c3RlcCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVy
cm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiB9CkBAIC0x
NDU3LDE0ICsxNTE1LDI0IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OmNsZWFyR3JhbmRmYXRoZXJpbmcoVmVjdG9yPHVuc2lnbmVkPiYmCiAgICAgICAgIHJldHVy
bjsKICAgICAKICAgICBpZiAoY2xlYXJHcmFuZGZhdGhlcmluZ1N0YXRlbWVudC5zdGVwKCkgIT0g
U1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0g
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyR3JhbmRmYXRoZXJpbmcg
ZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFi
YXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dF
RChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmNsZWFyR3JhbmRmYXRoZXJpbmcgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVi
bGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgfQogfQogCi1ib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvcihjb25zdCBQcmV2YWxl
bnREb21haW5EYXRhJiByZXNvdXJjZVN0YXRpc3RpYywgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5k
ZmF0aGVyaW5nKSBjb25zdAorYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6aGFzSGFkVW5leHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9uKGNvbnN0IFByZXZhbGVudERv
bWFpbkRhdGEmIHJlc291cmNlU3RhdGlzdGljLCBPcGVyYXRpbmdEYXRlc1dpbmRvdyBvcGVyYXRp
bmdEYXRlc1dpbmRvdykKIHsKLSAgICByZXR1cm4gIXJlc291cmNlU3RhdGlzdGljLmhhZFVzZXJJ
bnRlcmFjdGlvbiAmJiAoIXNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcgfHwgIXJlc291cmNl
U3RhdGlzdGljLmdyYW5kZmF0aGVyZWQpOworICAgIGlmIChyZXNvdXJjZVN0YXRpc3RpYy5oYWRV
c2VySW50ZXJhY3Rpb24gJiYgaGFzU3RhdGlzdGljc0V4cGlyZWQocmVzb3VyY2VTdGF0aXN0aWMu
bW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUsIG9wZXJhdGluZ0RhdGVzV2luZG93KSkgewor
ICAgICAgICBjbGVhclVzZXJJbnRlcmFjdGlvbihyZXNvdXJjZVN0YXRpc3RpYy5yZWdpc3RyYWJs
ZURvbWFpbik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gcmVz
b3VyY2VTdGF0aXN0aWMuaGFkVXNlckludGVyYWN0aW9uOworfQorCitib29sIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvcihj
b25zdCBQcmV2YWxlbnREb21haW5EYXRhJiByZXNvdXJjZVN0YXRpc3RpYywgYm9vbCBzaG91bGRD
aGVja0ZvckdyYW5kZmF0aGVyaW5nKQoreworICAgIHJldHVybiAhaGFzSGFkVW5leHBpcmVkUmVj
ZW50VXNlckludGVyYWN0aW9uKHJlc291cmNlU3RhdGlzdGljLCBPcGVyYXRpbmdEYXRlc1dpbmRv
dzo6TG9uZykgJiYgKCFzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nIHx8ICFyZXNvdXJjZVN0
YXRpc3RpYy5ncmFuZGZhdGhlcmVkKTsKIH0KIAogYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6c2hvdWxkUmVtb3ZlQWxsQnV0Q29va2llc0Zvcihjb25zdCBQcmV2YWxl
bnREb21haW5EYXRhJiByZXNvdXJjZVN0YXRpc3RpYywgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5k
ZmF0aGVyaW5nKSBjb25zdApAQCAtMTQ5Miw5ICsxNTYwLDkgQEAgVmVjdG9yPHN0ZDo6cGFpcjxS
ZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZT4+IFJlc291cmNlTG9hZFN0YXRp
c3RpY3MKICAgICBWZWN0b3I8dW5zaWduZWQ+IGRvbWFpbklEc1RvQ2xlYXJHcmFuZGZhdGhlcmlu
ZzsKICAgICBmb3IgKGF1dG8mIHN0YXRpc3RpYyA6IHByZXZhbGVudERvbWFpbnMpIHsKICAgICAg
ICAgaWYgKHNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9yKHN0YXRpc3RpYywgc2hvdWxkQ2hl
Y2tGb3JHcmFuZGZhdGhlcmluZykpCi0gICAgICAgICAgICBkb21haW5zVG9SZW1vdmVXZWJzaXRl
RGF0YUZvci5hcHBlbmQoc3RkOjptYWtlX3BhaXIoc3RhdGlzdGljLnJlZ2lzdGVyYWJsZURvbWFp
biwgV2Vic2l0ZURhdGFUb1JlbW92ZTo6QWxsKSk7CisgICAgICAgICAgICBkb21haW5zVG9SZW1v
dmVXZWJzaXRlRGF0YUZvci5hcHBlbmQoc3RkOjptYWtlX3BhaXIoc3RhdGlzdGljLnJlZ2lzdHJh
YmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlOjpBbGwpKTsKICAgICAgICAgZWxzZSBpZiAo
c2hvdWxkUmVtb3ZlQWxsQnV0Q29va2llc0ZvcihzdGF0aXN0aWMsIHNob3VsZENoZWNrRm9yR3Jh
bmRmYXRoZXJpbmcpKQotICAgICAgICAgICAgZG9tYWluc1RvUmVtb3ZlV2Vic2l0ZURhdGFGb3Iu
YXBwZW5kKHN0ZDo6bWFrZV9wYWlyKHN0YXRpc3RpYy5yZWdpc3RlcmFibGVEb21haW4sIFdlYnNp
dGVEYXRhVG9SZW1vdmU6OkFsbEJ1dENvb2tpZXMpKTsKKyAgICAgICAgICAgIGRvbWFpbnNUb1Jl
bW92ZVdlYnNpdGVEYXRhRm9yLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihzdGF0aXN0aWMucmVnaXN0
cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU6OkFsbEJ1dENvb2tpZXMpKTsKIAogICAg
ICAgICBpZiAoc2hvdWxkQ2xlYXJHcmFuZGZhdGhlcmluZyAmJiBzdGF0aXN0aWMuZ3JhbmRmYXRo
ZXJlZCkKICAgICAgICAgICAgIGRvbWFpbklEc1RvQ2xlYXJHcmFuZGZhdGhlcmluZy5hcHBlbmQo
c3RhdGlzdGljLmRvbWFpbklEKTsKQEAgLTE1MjQsOCArMTU5Miw5IEBAIHZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBydW5lU3RhdGlzdGljc0lmTmVlZGVkKCkKICAg
ICBzaXplX3QgY291bnRMZWZ0VG9QcnVuZSA9IGNvdW50IC0gcGFyYW1ldGVycygpLnBydW5lRW50
cmllc0Rvd25UbzsKICAgICBBU1NFUlQoY291bnRMZWZ0VG9QcnVuZSk7CiAKLSAgICBTUUxpdGVT
dGF0ZW1lbnQgcmVjb3Jkc1RvUHJ1bmUobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIGRv
bWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIE9SREVSIEJZIGhhZFVzZXJJbnRlcmFjdGlvbiwg
aXNQcmV2YWxlbnQsIGxhc3RTZWVuIERFU0MgTElNSVQgIiwgU3RyaW5nOjpudW1iZXIoY291bnRM
ZWZ0VG9QcnVuZSkpKTsKLSAgICBpZiAocmVjb3Jkc1RvUHJ1bmUucHJlcGFyZSgpICE9IFNRTElU
RV9PSykgeworICAgIFNRTGl0ZVN0YXRlbWVudCByZWNvcmRzVG9QcnVuZShtX2RhdGFiYXNlLCAi
U0VMRUNUIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIE9SREVSIEJZIGhhZFVzZXJJbnRl
cmFjdGlvbiwgaXNQcmV2YWxlbnQsIGxhc3RTZWVuIExJTUlUID8iKTsKKyAgICBpZiAocmVjb3Jk
c1RvUHJ1bmUucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICB8fCByZWNvcmRzVG9QcnVu
ZS5iaW5kSW50KDEsIGNvdW50TGVmdFRvUHJ1bmUpICE9IFNRTElURV9PSykgewogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6cHJ1bmVTdGF0aXN0aWNzSWZOZWVkZWQgZmFpbGVkLCBlcnJvciBtZXNzYWdl
OiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CkBAIC0xNTQwLDcgKzE2MDks
NyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcnVuZVN0YXRp
c3RpY3NJZk5lZWRlZCgpCiAgICAgU1FMaXRlU3RhdGVtZW50IHBydW5lQ29tbWFuZChtX2RhdGFi
YXNlLCBtYWtlU3RyaW5nKCJERUxFVEUgZnJvbSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgZG9tYWlu
SUQgSU4gKCIsIGxpc3RUb1BydW5lLCAiKSIpKTsKICAgICBpZiAocHJ1bmVDb21tYW5kLnByZXBh
cmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgcHJ1bmVDb21tYW5kLnN0ZXAoKSAhPSBTUUxJ
VEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJ1bmVTdGF0aXN0aWNzSWZOZWVkZWQg
ZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0
RXJyb3JNc2coKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNz
aW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcnVuZVN0
YXRpc3RpY3NJZk5lZWRlZCBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlz
LCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xNTUzLDcgKzE2MjIsNyBAQCB2b2lkIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp1cGRhdGVMYXN0U2Vlbihjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbgogICAgIGlmIChtX3VwZGF0ZUxhc3RTZWVuU3RhdGVtZW50LmJpbmRE
b3VibGUoMSwgbGFzdFNlZW4uc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKSAhPSBTUUxJVEVf
T0sKICAgICAgICAgfHwgbV91cGRhdGVMYXN0U2VlblN0YXRlbWVudC5iaW5kVGV4dCgyLCBkb21h
aW4uc3RyaW5nKCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX3VwZGF0ZUxhc3RTZWVuU3Rh
dGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6dXBk
YXRlTGFzdFNlZW4gZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0
aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OnVwZGF0ZUxhc3RTZWVuIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdl
OiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAppbmRleCAwZmIy
NGFkMDY3MDQ1YzlhZDMxNGYyM2NmYjQ0NDBkOGFmODQ1ZmVjLi5mMWQ1NjU1ZGVlYmNkYjA0N2Nk
ZDk2ZDJlOTM1NjM0Y2VhYzAxZDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaApAQCAtNTEsNyArNTEsNyBAQCBjbGFzcyBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU7CiAvLyBUaGlzIGlzIGFsd2F5cyBjb25zdHJ1Y3Rl
ZCAvIHVzZWQgLyBkZXN0cm95ZWQgb24gdGhlIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZSdzIHN0YXRpc3RpY3MgcXVldWUuCiBjbGFzcyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZSBmaW5hbCA6IHB1YmxpYyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgewogcHVi
bGljOgotICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlKFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZSYsIFdvcmtRdWV1ZSYsIFNob3VsZEluY2x1ZGVMb2NhbGhvc3Qs
IGNvbnN0IFN0cmluZyYgc3RvcmFnZURpcmVjdG9yeVBhdGgpOworICAgIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlKFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSYsIFdv
cmtRdWV1ZSYsIFNob3VsZEluY2x1ZGVMb2NhbGhvc3QsIGNvbnN0IFN0cmluZyYgc3RvcmFnZURp
cmVjdG9yeVBhdGgsIFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIHZvaWQgcG9wdWxhdGVGcm9tTWVt
b3J5U3RvcmUoY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlJik7CiAKQEAg
LTEwNSwxMSArMTA1LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiwgU2Vjb25kcykgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CisgICAgdm9p
ZCBjbGVhckRhdGFiYXNlQ29udGVudHMoKTsKICAgICBib29sIGluc2VydE9ic2VydmVkRG9tYWlu
KGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsKICAgICB2b2lkIGluc2VydERvbWFpblJl
bGF0aW9uc2hpcHMoY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwogICAgIGJvb2wgaW5z
ZXJ0RG9tYWluUmVsYXRpb25zaGlwKFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCYsIHVuc2lnbmVk
IGRvbWFpbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4pOwotICAg
IGJvb2wgcmVsYXRpb25zaGlwRXhpc3RzKFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCYsIHVuc2ln
bmVkIGZpcnN0RG9tYWluSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzZWNvbmREb21haW4p
IGNvbnN0OwotICAgIHVuc2lnbmVkIGRvbWFpbklEKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJikg
Y29uc3Q7CisgICAgYm9vbCByZWxhdGlvbnNoaXBFeGlzdHMoV2ViQ29yZTo6U1FMaXRlU3RhdGVt
ZW50JiwgT3B0aW9uYWw8dW5zaWduZWQ+IGZpcnN0RG9tYWluSUQsIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiBzZWNvbmREb21haW4pIGNvbnN0OworICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBkb21h
aW5JRChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIGNvbnN0OwogI2lmbmRlZiBOREVCVUcKICAg
ICBib29sIGNvbmZpcm1Eb21haW5Eb2VzTm90RXhpc3QoY29uc3QgUmVnaXN0cmFibGVEb21haW4m
KSBjb25zdDsKICNlbmRpZgpAQCAtMTIwLDEyICsxMjEsMTMgQEAgcHJpdmF0ZToKIAogICAgIHN0
cnVjdCBQcmV2YWxlbnREb21haW5EYXRhIHsKICAgICAgICAgdW5zaWduZWQgZG9tYWluSUQ7Ci0g
ICAgICAgIFJlZ2lzdHJhYmxlRG9tYWluIHJlZ2lzdGVyYWJsZURvbWFpbjsKKyAgICAgICAgUmVn
aXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW47CiAgICAgICAgIFdhbGxUaW1lIG1vc3RS
ZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lOwogICAgICAgICBib29sIGhhZFVzZXJJbnRlcmFjdGlv
bjsKICAgICAgICAgYm9vbCBncmFuZGZhdGhlcmVkOwogICAgIH07CiAgICAgVmVjdG9yPFByZXZh
bGVudERvbWFpbkRhdGE+IHByZXZhbGVudERvbWFpbnMoKSBjb25zdDsKKyAgICBib29sIGhhc0hh
ZFVuZXhwaXJlZFJlY2VudFVzZXJJbnRlcmFjdGlvbihjb25zdCBQcmV2YWxlbnREb21haW5EYXRh
JiwgT3BlcmF0aW5nRGF0ZXNXaW5kb3cpOwogICAgIFZlY3Rvcjx1bnNpZ25lZD4gZmluZEV4cGly
ZWRVc2VySW50ZXJhY3Rpb25zKCkgY29uc3Q7CiAgICAgdm9pZCBjbGVhckV4cGlyZWRVc2VySW50
ZXJhY3Rpb25zKCk7CiAgICAgdm9pZCBjbGVhckdyYW5kZmF0aGVyaW5nKFZlY3Rvcjx1bnNpZ25l
ZD4mJik7CkBAIC0xMzQsNyArMTM2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVjbGFzc2lm
eVJlc291cmNlcygpOwogICAgIHN0cnVjdCBOb3RWZXJ5UHJldmFsZW50UmVzb3VyY2VzIHsKLSAg
ICAgICAgUmVnaXN0cmFibGVEb21haW4gcmVnaXN0ZXJhYmxlRG9tYWluOworICAgICAgICBSZWdp
c3RyYWJsZURvbWFpbiByZWdpc3RyYWJsZURvbWFpbjsKICAgICAgICAgUmVzb3VyY2VMb2FkUHJl
dmFsZW5jZSBwcmV2YWxlbmNlOwogICAgICAgICB1bnNpZ25lZCBzdWJyZXNvdXJjZVVuZGVyVG9w
RnJhbWVEb21haW5zQ291bnQ7CiAgICAgICAgIHVuc2lnbmVkIHN1YnJlc291cmNlVW5pcXVlUmVk
aXJlY3RzVG9Db3VudDsKQEAgLTE1OCw3ICsxNjAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJ1
bmVTdGF0aXN0aWNzSWZOZWVkZWQoKSBvdmVycmlkZTsKICAgICBlbnVtIGNsYXNzIEFkZGVkUmVj
b3JkIHsgTm8sIFllcyB9OwogICAgIHN0ZDo6cGFpcjxBZGRlZFJlY29yZCwgdW5zaWduZWQ+IGVu
c3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJik7Ci0gICAgYm9vbCBzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvcihjb25z
dCBQcmV2YWxlbnREb21haW5EYXRhJiwgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5n
KSBjb25zdDsKKyAgICBib29sIHNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9yKGNvbnN0IFBy
ZXZhbGVudERvbWFpbkRhdGEmLCBib29sIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpOwog
ICAgIGJvb2wgc2hvdWxkUmVtb3ZlQWxsQnV0Q29va2llc0Zvcihjb25zdCBQcmV2YWxlbnREb21h
aW5EYXRhJiwgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSBjb25zdDsKICAgICBW
ZWN0b3I8c3RkOjpwYWlyPFJlZ2lzdHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlPj4g
cmVnaXN0cmFibGVEb21haW5zVG9SZW1vdmVXZWJzaXRlRGF0YUZvcigpIG92ZXJyaWRlOwogICAg
IGJvb2wgaXNEYXRhYmFzZVN0b3JlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQpAQCAt
MTk4LDYgKzIwMCw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50IG1f
dXBkYXRlR3JhbmRmYXRoZXJlZFN0YXRlbWVudDsKICAgICBtdXRhYmxlIFdlYkNvcmU6OlNRTGl0
ZVN0YXRlbWVudCBtX2lzR3JhbmRmYXRoZXJlZFN0YXRlbWVudDsKICAgICBtdXRhYmxlIFdlYkNv
cmU6OlNRTGl0ZVN0YXRlbWVudCBtX2ZpbmRFeHBpcmVkVXNlckludGVyYWN0aW9uU3RhdGVtZW50
OworICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3Bw
CmluZGV4IDRhYjM0NTczZGEzNDJmY2Y3YzY4ODc3MDNiNTNkMGVlNjMzNDAzYjEuLjJiYmVkY2I5
NjM3ZmUzNjFmYzMwOGVjZTQ2OTY5OTc0NDE5ZmI2OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBAIC0xNTYsMTAgKzE1NiwxMCBAQCBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZShOZXR3b3JrU2Vzc2lvbiYgbgogICAgICwgbV9kYWlseVRhc2tzVGltZXIoUnVuTG9vcDo6bWFp
bigpLCB0aGlzLCAmV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpwZXJmb3JtRGFpbHlU
YXNrcykKIHsKICAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgCi0g
ICAgcG9zdFRhc2soW3RoaXMsIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5Lmlzb2xhdGVkQ29weSgpLCBzaG91bGRJbmNsdWRl
TG9jYWxob3N0XSB7Ci0gICAgICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRG
ZWF0dXJlcygpLmlzSVRQRGF0YWJhc2VFbmFibGVkKCkpIHsKLSAgICAgICAgICAgIG1fc3RhdGlz
dGljc1N0b3JlID0gbWFrZVVuaXF1ZTxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZT4oKnRoaXMsIG1fc3RhdGlzdGljc1F1ZXVlLCBzaG91bGRJbmNsdWRlTG9jYWxob3N0LCByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KTsKKworICAgIHBvc3RUYXNrKFt0aGlzLCBkYXRh
YmFzZUVuYWJsZWQgPSBuZXR3b3JrU2Vzc2lvbi5uZXR3b3JrUHJvY2VzcygpLmlzSVRQRGF0YWJh
c2VFbmFibGVkKCksIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGlyZWN0b3J5Lmlzb2xhdGVkQ29weSgpLCBzaG91bGRJbmNsdWRlTG9jYWxo
b3N0LCBzZXNzaW9uSUQgPSBuZXR3b3JrU2Vzc2lvbi5zZXNzaW9uSUQoKV0geworICAgICAgICBp
ZiAoZGF0YWJhc2VFbmFibGVkKSB7CisgICAgICAgICAgICBtX3N0YXRpc3RpY3NTdG9yZSA9IG1h
a2VVbmlxdWU8UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU+KCp0aGlzLCBtX3N0
YXRpc3RpY3NRdWV1ZSwgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCwgcmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RpcmVjdG9yeSwgc2Vzc2lvbklEKTsKIAogICAgICAgICAgICAgYXV0byBtZW1vcnlTdG9y
ZSA9IG1ha2VVbmlxdWU8UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlPigqdGhpcywg
bV9zdGF0aXN0aWNzUXVldWUsIHNob3VsZEluY2x1ZGVMb2NhbGhvc3QpOwogICAgICAgICAgICAg
YXV0byBwZXJzaXN0ZW50U3RvcmUgPSBtYWtlVW5pcXVlPFJlc291cmNlTG9hZFN0YXRpc3RpY3NQ
ZXJzaXN0ZW50U3RvcmFnZT4oKm1lbW9yeVN0b3JlLCBtX3N0YXRpc3RpY3NRdWV1ZSwgcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IGMyOTBjNWQ5NjFiOWZhZGU0NDA5ZDc3Y2Qz
YTNhZjlhZjNhODBkOTAuLjk1ZDNmMjYyYzEyZjZiZDA5ZWViYmMwMGZjMDgyMmNjNjBhNDZkMDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
CkBAIC0zMTQsNyArMzE0LDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdv
cmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYKICAgICAgICAgbV9k
ZWZhdWx0TmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gbmV3VGVzdGluZ1Nlc3Npb24oUEFMOjpTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAgICAgfQogCi0gICAgV2ViQ29yZTo6UnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRJc0lUUERhdGFiYXNlRW5hYmxl
ZChwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZUlUUERhdGFiYXNlKTsKKyNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQorICAgIG1faXNJVFBEYXRhYmFzZUVuYWJsZWQgPSBwYXJhbWV0
ZXJzLnNob3VsZEVuYWJsZUlUUERhdGFiYXNlOworI2VuZGlmCiAKICAgICBXZWJDb3JlOjpSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldEFkQ2xpY2tBdHRyaWJ1dGlv
bkRlYnVnTW9kZUVuYWJsZWQocGFyYW1ldGVycy5lbmFibGVBZENsaWNrQXR0cmlidXRpb25EZWJ1
Z01vZGUpOwogCkBAIC00NTksNiArNDYxLDggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6YWRkV2Vi
c2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMKICNp
ZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBhZGRJbmRleGVkRGF0YWJhc2VTZXNzaW9u
KHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNlc3Npb25JRCwgcGFyYW1ldGVy
cy5pbmRleGVkRGF0YWJhc2VEaXJlY3RvcnksIHBhcmFtZXRlcnMuaW5kZXhlZERhdGFiYXNlRGly
ZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKICNlbmRpZgorICAgIAorICAgIFNhbmRib3hFeHRlbnNp
b246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVy
cy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKIAogI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICBpZiAocGFyZW50UHJvY2Vzc0hhc1NlcnZpY2VX
b3JrZXJFbnRpdGxlbWVudCgpKQpAQCAtNjgyLDYgKzY4NiwxNyBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVn
aXN0cmFibAogICAgIH0KIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0VXNlSVRQRGF0YWJh
c2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlKQoreworICAgIGlmIChhdXRv
KiBuZXR3b3JrU2Vzc2lvbiA9IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKKyAg
ICAgICAgaWYgKG1faXNJVFBEYXRhYmFzZUVuYWJsZWQgIT0gdmFsdWUpIHsKKyAgICAgICAgICAg
IG1faXNJVFBEYXRhYmFzZUVuYWJsZWQgPSB2YWx1ZTsKKyAgICAgICAgICAgIG5ldHdvcmtTZXNz
aW9uLT5yZWNyZWF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY1N0b3JlKCk7CisgICAgICAgIH0KKyAg
ICB9IGVsc2UKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OnNldFByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9
IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCAzZDkxMzY1MDJiMDYyMzVhMWE5Mzg2
YmZlZjE2NjAyYWU0NzViYzM5Li5iZjVkYjdmZmIzZmExZmEzOTY3YWU2NDUzZjE2YjdmYzRhYmQ1
MWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5o
CkBAIC0yMjMsNiArMjIzLDcgQEAgcHVibGljOgogICAgIHZvaWQgaXNSZWdpc3RlcmVkQXNTdWJG
cmFtZVVuZGVyKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRv
cEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9p
ZCBpc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN1
YlJlc291cmNlRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIHNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9u
SUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRVc2VJVFBEYXRhYmFzZShQQUw6
OlNlc3Npb25JRCwgYm9vbCB2YWx1ZSk7CiAgICAgdm9pZCBzZXRNYXhTdGF0aXN0aWNzRW50cmll
cyhQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgbWF4aW11bUVudHJ5Q291bnQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNl
c3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKQEAgLTI2Myw2ICsyNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDcm9zc1Np
dGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIGZyb21Eb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0
b0RvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHJlc2V0Q3Jv
c3NTaXRlTG9hZHNXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgaGFzSXNvbGF0ZWRTZXNzaW9u
KFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGNvbnN0OworICAgIGJvb2wgaXNJVFBEYXRhYmFz
ZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzSVRQRGF0YWJhc2VFbmFibGVkOyB9CiAjZW5k
aWYKIAogICAgIHVzaW5nIENhY2hlU3RvcmFnZVJvb3RQYXRoQ2FsbGJhY2sgPSBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFN0cmluZyYmKT47CkBAIC01MzYsNiArNTM4LDEwIEBAIHByaXZhdGU6CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyPiBtX25ldHdvcmtI
VFRQU1VwZ3JhZGVDaGVja2VyOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQorICAgIGJvb2wgbV9pc0lUUERhdGFiYXNlRW5hYmxlZCB7IGZhbHNlIH07Cisj
ZW5kaWYKKyAgICAKICAgICBjbGFzcyBTdG9yYWdlUXVvdGFNYW5hZ2VycyB7CiAgICAgcHVibGlj
OgogICAgICAgICB1aW50NjRfdCBkZWZhdWx0UXVvdGEoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luJiBvcmlnaW4pIGNvbnN0IHsgcmV0dXJuIG9yaWdpbi50b3BPcmlnaW4gPT0gb3JpZ2luLmNs
aWVudE9yaWdpbiA/IG1fZGVmYXVsdFF1b3RhIDogbV9kZWZhdWx0VGhpcmRQYXJ0eVF1b3RhOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbgppbmRleCBlMDEzNmRhZDViNzBhODc0ZjQ5N2Q1M2FiMzg5Njk3Y2JhMDVj
YWI1Li5jOWUxYWVhYmM2OTVmNWZhZmFmN2I3YjQ0NGJhMjY1NTBjYzZkYjljIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2Fn
ZXMuaW4KQEAgLTExMyw2ICsxMTMsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdh
Y3lSZWNlaXZlciB7CiAgICAgU3VibWl0VGVsZW1ldHJ5KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkgLT4gKCkgQXN5bmMKICAgICBTZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNl
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25kcykgLT4gKCkgQXN5bmMK
ICAgICBTZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4sIGJvb2wgaXNHcmFuZGZhdGhlcmVkKSAt
PiAoKSBBc3luYworICAgIFNldFVzZUlUUERhdGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgYm9vbCB2YWx1ZSkKICAgICBTZXRHcmFuZGZhdGhlcmluZ1RpbWUoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCiAgICAgU2V0TWF4U3RhdGlz
dGljc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBtYXhpbXVtRW50
cnlDb3VudCkgLT4gKCkgQXN5bmMKICAgICBTZXRNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jk
c1JlbW92YWwoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTZWNvbmRzIHNlY29uZHMpIC0+ICgp
IEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
Y3BwCmluZGV4IGM1N2NiY2VlMGJhYjJmOTc3OGU3MWZhMDg2NDEzZGI0Y2FlZWM0YWYuLjIyZTUz
ZDkxOTg4NDQ1MjIwY2Q3Yjk4NGUxYmEzZWI5OGE1ZDhhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCkBAIC0xNTksNiArMTU5LDEyIEBA
IHZvaWQgTmV0d29ya1Nlc3Npb246OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJv
b2wgZW5hYmxlKQogICAgICAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldFByZXZhbGVu
dFJlc291cmNlRm9yRGVidWdNb2RlKG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZh
bGVudFJlc291cmNlLCBbXSB7IH0pOwogfQogCit2b2lkIE5ldHdvcmtTZXNzaW9uOjpyZWNyZWF0
ZVJlc291cmNlTG9hZFN0YXRpc3RpY1N0b3JlKCkKK3sKKyAgICBkZXN0cm95UmVzb3VyY2VMb2Fk
U3RhdGlzdGljcygpOworICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6Y3JlYXRlKCp0aGlzLCBtX3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3RvcnksIG1fc2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlz
dGljcyk7Cit9CisKIHZvaWQgTmV0d29ya1Nlc3Npb246Om5vdGlmeVJlc291cmNlTG9hZFN0YXRp
c3RpY3NQcm9jZXNzZWQoKQogewogICAgIG1fbmV0d29ya1Byb2Nlc3MtPnBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6Ok5vdGlmeVJl
c291cmNlTG9hZFN0YXRpc3RpY3NQcm9jZXNzZWQoKSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKaW5kZXggMzE4ZWNlNGE0NGIyNGM0NWYxZDcw
NjlkOTg2YTMzMjJhOWE1MDI5Yi4uNTNlOWZmN2RjZjU4ZjZjY2JmMjFmNDMyODQzODYzOTcxZTJk
MjBiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
aApAQCAtODQsNiArODQsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKICAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUqIHJlc291cmNlTG9h
ZFN0YXRpc3RpY3MoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MuZ2V0
KCk7IH0KICAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wpOwor
ICAgIHZvaWQgcmVjcmVhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNTdG9yZSgpOwogICAgIHZvaWQg
bm90aWZ5UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Byb2Nlc3NlZCgpOwogICAgIHZvaWQgZGVsZXRl
V2Vic2l0ZURhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlw
ZT4sIFZlY3RvcjxzdGQ6OnBhaXI8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVE
YXRhVG9SZW1vdmU+PiYmLCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoY29uc3QgSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mKT4mJik7CiAg
ICAgdm9pZCByZWdpc3RyYWJsZURvbWFpbnNXaXRoV2Vic2l0ZURhdGEoT3B0aW9uU2V0PFdlYnNp
dGVEYXRhVHlwZT4sIGJvb2wgc2hvdWxkTm90aWZ5UGFnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiYmKT4mJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNw
cAppbmRleCA1OGNkNDNmMThlYjdjMWRlYWQwZTFjNzY2NTI5M2Q1ZDkzNTBhNDMyLi5mMjk2YjZi
MmQ4YzEzY2E5M2U1YzM5ZjZmZWEzMDdkZmI5NzFkZWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKQEAgLTI2
OCw2ICsyNjgsMTMgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NHcmFuZGZh
dGhlcmVkKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmUKICNlbmRpZgogfQogCit2b2lk
IFdLV2Vic2l0ZURhdGFTdG9yZVNldFVzZUlUUERhdGFiYXNlKFdLV2Vic2l0ZURhdGFTdG9yZVJl
ZiBkYXRhU3RvcmVSZWYsIGJvb2wgdmFsdWUpCit7CisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKKyAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRVc2VJVFBE
YXRhYmFzZSh2YWx1ZSk7CisjZW5kaWYKK30KKwogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRT
dGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKFdLV2Vic2l0ZURhdGFTdG9yZVJl
ZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIHRvcEZyYW1lSG9z
dCkKIHsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaAppbmRl
eCA3YTNkYTQ1NTAwYjIwMTliMmNlNTkxOGM0YTgwMjExOGExNDNkZDdiLi5iODM1N2NjMjcwNGZl
ZGViZDU1OTVkMDMyYzBlOTNlNGE1NzBlMWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaApAQCAtNzEsNiArNzEsNyBA
QCBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NIYXNIYWRVc2Vy
SW50ZXJhY3Rpb24oV0tXZWJzaXRlRGF0YQogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0
b3JlU2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFT
dG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgYm9vbCB2YWx1ZSk7CiB0eXBlZGVmIHZvaWQgKCpX
S1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkRnVuY3Rpb24pKGJvb2wg
aXNHcmFuZGZhdGhlcmVkLCB2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwogV0tfRVhQT1JUIHZvaWQg
V0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1dlYnNpdGVEYXRh
U3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCB2b2lkKiBjb250ZXh0LCBX
S1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkRnVuY3Rpb24gY2FsbGJh
Y2spOworV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0VXNlSVRQRGF0YWJhc2Uo
V0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgYm9vbCB2YWx1ZSk7CiBXS19FWFBP
UlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZy
YW1lT3JpZ2luKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVm
IGhvc3QsIFdLU3RyaW5nUmVmIHRvcEZyYW1lSG9zdCk7CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNp
dGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKFdL
V2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3Ry
aW5nUmVmIHRvcEZyYW1lSG9zdCk7CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVT
ZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKFdLV2Vic2l0ZURhdGFTdG9y
ZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIGhvc3RSZWRp
cmVjdGVkVG8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggZGM1NDg4YzQ3MzY4YjgwZGVkZWVlZWM4OGZk
ZDNjYWUyODQxNTIyZC4uYjVmNjlhZmZmMWJhMDI3N2FiMjdhOWRiZjZkNTFhODQ2YWFhMzVkNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwCkBAIC03NzQsNiArNzc0LDE0IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6c2V0R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJl
Z2lzCiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0
R3JhbmRmYXRoZXJlZChzZXNzaW9uSUQsIHJlc291cmNlRG9tYWluLCBpc0dyYW5kZmF0aGVyZWQp
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6c2V0VXNlSVRQRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZh
bHVlKQoreworICAgIGlmICghY2FuU2VuZE1lc3NhZ2UoKSkKKyAgICAgICAgcmV0dXJuOworICAg
IAorICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRVc2VJVFBEYXRhYmFzZShz
ZXNzaW9uSUQsIHZhbHVlKSwgMCk7Cit9CisKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVx
dWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlELCBG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1l
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byog
cGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCBi
YjBlMmJmMjNkOGZiNWEwMmM1YzQ0OTk2YTljZDg1YTQ3YWM0ZjVjLi41ZWVkYjcwNzU5OTg2YzJm
NWRiYzY2ODkyNDFlYWY3NGJhMDhlYThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMTE2LDYgKzExNiw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKFBBTDo6U2Vz
c2lvbklELCBPcHRpb25hbDxTZWNvbmRzPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICB2b2lkIHNldENhY2hlTWF4QWdlQ2FwKFBBTDo6U2Vzc2lvbklELCBTZWNvbmRzLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0R3JhbmRmYXRoZXJlZChQQUw6
OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBib29sIGlzR3JhbmRmYXRoZXJl
ZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFVzZUlUUERhdGFi
YXNlKFBBTDo6U2Vzc2lvbklELCBib29sIHZhbHVlKTsKICAgICB2b2lkIHNldE5vdGlmeVBhZ2Vz
V2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQoUEFMOjpTZXNzaW9uSUQsIGJvb2wsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRJc1J1bm5pbmdSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzVGVzdChQQUw6OlNlc3Npb25JRCwgYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKICAgICB2b2lkIHNldE5vdGlmeVBhZ2VzV2hlblRlbGVtZXRyeVdhc0NhcHR1cmVk
KFBBTDo6U2Vzc2lvbklELCBib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmNwcAppbmRleCBiOGIyY2Y1YTk1Njg4NmIxYTk5YTI3NjhhNTAyMDNiZDEzNjE2OGVm
Li5lN2VmN2U0MzBiYmYxNTQzYzUwMjMwYzVkNGRlMzE0OGNhZjQ5NDFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmNwcApAQCAtMTY5MSw2ICsxNjkxLDE0IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0R3Jh
bmRmYXRoZXJlZChjb25zdCBVUkwmIHVybCwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIENvCiAgICAg
fQogfQogCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldFVzZUlUUERhdGFiYXNlKGJvb2wgdmFs
dWUpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGZvciAoYXV0byYg
cHJvY2Vzc1Bvb2wgOiBwcm9jZXNzUG9vbHMoKSkKKyAgICAgICAgcHJvY2Vzc1Bvb2wtPmVuc3Vy
ZU5ldHdvcmtQcm9jZXNzKCkuc2V0VXNlSVRQRGF0YWJhc2UobV9zZXNzaW9uSUQsIHZhbHVlKTsK
K30KKwogdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNv
cmF0aW9uRm9yVGVzdGluZyhjb25zdCBVUkwmIGZyb21VUkwsIGNvbnN0IFVSTCYgdG9VUkwsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDQxNWM4MzFmYzUwYTcwNTgy
MWEwNGYwNWUxNWRiNThlYjQzZmQ4M2MuLjhiNzY1MWVjZWU1MTc3NmUyZWJlMGViYWI2ZjBmZmRi
M2MxOWNiMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTE2MSw2ICsxNjEsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzY2hlZHVsZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3NpbmcoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHN1Ym1pdFRlbGVtZXRyeSgpOwogICAgIHZv
aWQgc2V0R3JhbmRmYXRoZXJlZChjb25zdCBVUkwmLCBib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOworICAgIHZvaWQgc2V0VXNlSVRQRGF0YWJhc2UoYm9vbCk7CiAgICAgdm9pZCBz
ZXRHcmFuZGZhdGhlcmluZ1RpbWUoU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFVSTCYsIFNlY29uZHMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jk
c1dlcmVTY2FubmVkKGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGE3NmI5N2IwOTU5
Nzc2MzMyM2Y2NjUxMTg0YjBjZmZhZDgyNTgyZC4uMGZiYjcxM2Q2OTJjODRjYTQ3OTFlMGFmMGU4
MmUxZjQzNTJmNmE3ZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTA5LTI0ICBLYXRlIENoZW5leSAgPGthdGhl
cmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBMYXlvdXRUZXN0cyB1c2lu
ZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFNRTGl0ZSBiYWNrZW5kICgxOTU0MjApIAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1NDIwICAgICAgICAg
ICAgICAgICAgICAgICAgICAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjEzNTUxPiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCisKKyAgICAgICAgQWRkZWQgaW4gbG9naWMgdG8gc2VuZCBhIG1lc3NhZ2Ug
ZnJvbSB0aGUgVUlQcm9jZXNzIHRvIHRoZSBOZXR3b3JrICAgICAgCisgICAgICAgIFByb2Nlc3Mg
d2hpY2ggd2lsbCBpbml0YWxpemUgdGhlIElUUCBEYXRhYmFzZSBiYWNrZW5kIHRvIGFsbG93IGZv
ciAgICAgIAorICAgICAgICBsYXlvdXQgdGVzdGluZy4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChX
VFI6OlRlc3RSdW5uZXI6OnNldFVzZUlUUERhdGFiYXNlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OnNldFVzZUlUUERhdGFiYXNlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6
CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNz
YWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAxOS0wOS0yNCAgS2VpdGggUm9sbGluICA8a3Jv
bGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ29hbGVzY2Ugb3IgcmVtb3ZlIFBMQVRGT1JNKE1B
QykgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4
IDNjZDk0YmVkYTQ3MDYwNDlhZTA5YmI4YjMxMjNlMTlhNjNjOWZlNjYuLjk2NzZmMmVhNjVmNDUy
NGUxOTQxNTkwMjRhNmVkNjI4MjQwNWIwZDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApA
QCAtMzA5LDYgKzMwOSw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICBib29sZWFuIGlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihET01TdHJpbmcgaG9zdE5hbWUpOwogICAg
IHZvaWQgc2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoRE9NU3RyaW5nIGhvc3ROYW1lLCBib29s
ZWFuIHZhbHVlKTsKICAgICBib29sZWFuIGlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoRE9NU3Ry
aW5nIGhvc3ROYW1lKTsKKyAgICB2b2lkIHNldFVzZUlUUERhdGFiYXNlKGJvb2xlYW4gdmFsdWUp
OwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihET01T
dHJpbmcgaG9zdE5hbWUsIERPTVN0cmluZyB0b3BGcmFtZUhvc3ROYW1lKTsKICAgICB2b2lkIHNl
dFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oRE9NU3RyaW5nIGhvc3RO
YW1lLCBET01TdHJpbmcgdG9wRnJhbWVIb3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNz
U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKERPTVN0cmluZyBob3N0TmFtZSwgRE9NU3RyaW5n
IGhvc3ROYW1lUmVkaXJlY3RlZFRvKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGI0OTVjZmEwZDQyZTkyNmVlNTE2
MjE1ZmUzYzAzMGI5MTMwZmUzYTcuLmY4MTYyNDJmMmRiNGJmMTA5ZmUwYjQ4NmMwYmM5ZWE0NWU0
NTk0OTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmNwcApAQCAtMTY5NCw3ICsxNjk0LDE1IEBAIHZvaWQgVGVzdFJ1bm5lcjo6
c2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoSlNTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFs
dWUpCiAgICAgCiAgICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVu
ZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5
LmdldCgpLCBudWxscHRyKTsKIH0KKwordm9pZCBUZXN0UnVubmVyOjpzZXRVc2VJVFBEYXRhYmFz
ZShib29sIHZhbHVlKQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFt
ZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlNldFVzZUlUUERhdGFi
YXNlIikpOworICAgIFdLUmV0YWluUHRyPFdLQm9vbGVhblJlZj4gbWVzc2FnZUJvZHkgPSBhZG9w
dFdLKFdLQm9vbGVhbkNyZWF0ZSh2YWx1ZSkpOwogICAgIAorICAgIFdLQnVuZGxlUG9zdFN5bmNo
cm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIG1lc3Nh
Z2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSwgbnVsbHB0cik7Cit9CisKIGJvb2wgVGVz
dFJ1bm5lcjo6aXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChKU1N0cmluZ1JlZiBob3N0TmFtZSkK
IHsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdL
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJJc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkIikp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuaAppbmRleCAyZGEyOGJiZGQ2MjY2YjZiN2JiOTI2NDQ5N2ZhY2RlZjY0NDEzNzc5Li5mNGFk
M2E2MGUyZTU3NTBiM2MxNjU2MjY0ODQyNTU5YTVkYzMyNjNiIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtNDEwLDYgKzQx
MCw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bihKU1N0cmluZ1JlZiBob3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzR3JhbmRmYXRo
ZXJlZChKU1N0cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSk7CiAgICAgYm9vbCBpc1N0YXRp
c3RpY3NHcmFuZGZhdGhlcmVkKEpTU3RyaW5nUmVmIGhvc3ROYW1lKTsKKyAgICB2b2lkIHNldFVz
ZUlUUERhdGFiYXNlKGJvb2wgdmFsdWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YmZyYW1l
VW5kZXJUb3BGcmFtZU9yaWdpbihKU1N0cmluZ1JlZiBob3N0TmFtZSwgSlNTdHJpbmdSZWYgdG9w
RnJhbWVIb3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRv
cEZyYW1lT3JpZ2luKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBKU1N0cmluZ1JlZiB0b3BGcmFtZUhv
c3ROYW1lKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0
VG8oSlNTdHJpbmdSZWYgaG9zdE5hbWUsIEpTU3RyaW5nUmVmIGhvc3ROYW1lUmVkaXJlY3RlZFRv
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZDJhMTBj
YTY0YjRhYmFiZTFmZGM3ODRiNTM4NzMzZWExYjlkMGJmMy4uMmY1YmQ5OTI5NjdkNzNhZjMyYTBi
N2Y0YWI1NmNlNDZiMTQ1Zjk2MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAKQEAgLTMzNTEsNiArMzM1MSwxMSBAQCBib29sIFRlc3RDb250cm9sbGVyOjppc1N0
YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLU3RyaW5nUmVmIGhvc3QpCiAgICAgcmV0dXJuIGNvbnRl
eHQucmVzdWx0OwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRVc2VJVFBEYXRhYmFzZShi
b29sIHZhbHVlKQoreworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFVzZUlUUERhdGFiYXNlKFRl
c3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIHZhbHVlKTsKK30KKwogdm9pZCBUZXN0
Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihXS1N0
cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3QpCiB7CiAgICAgV0tXZWJzaXRl
RGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihUZXN0Q29u
dHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCBob3N0LCB0b3BGcmFtZUhvc3QpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IGFmNWU1OTk1NjJkNzZiZTg3YWM1
NzJjNDRiYzQyNzkzZTdlZTI1NDIuLjcyZWRhYmU4ZmYyYTljZTRmMjZmOTUzNDc2ODRiZDg0YTZi
YzYxNmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
aAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTIyMiw2
ICsyMjIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24oV0tTdHJpbmdSZWYgaG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc0dyYW5k
ZmF0aGVyZWQoV0tTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpOwogICAgIGJvb2wgaXNT
dGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1N0cmluZ1JlZiBob3N0TmFtZSk7CisgICAgdm9pZCBz
ZXRVc2VJVFBEYXRhYmFzZShib29sIHZhbHVlKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NTdWJm
cmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oV0tTdHJpbmdSZWYgaG9zdE5hbWUsIFdLU3RyaW5nUmVm
IHRvcEZyYW1lSG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5k
ZXJUb3BGcmFtZU9yaWdpbihXS1N0cmluZ1JlZiBob3N0TmFtZSwgV0tTdHJpbmdSZWYgdG9wRnJh
bWVIb3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdFRvKFdLU3RyaW5nUmVmIGhvc3ROYW1lLCBXS1N0cmluZ1JlZiBob3N0TmFtZVJlZGlyZWN0
ZWRUbyk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9u
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IGZk
MjUyMDBkNDAyZjBjZmQzMjJjYmViYTE4ZjA1YjA5ZjRmY2QxZmUuLjMwNjUwYzQ5OTExMzkzYWRk
ZjA4MWM3YTEwZjBjNDhlMWQzODk0NDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdElu
dm9jYXRpb24uY3BwCkBAIC0xMjQxLDYgKzEyNDEsMTQgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVm
PiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3Rl
ZEIKICAgICAgICAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiByZXN1bHQgPSBhZG9wdFdLKFdLQm9v
bGVhbkNyZWF0ZShpc0dyYW5kZmF0aGVyZWQpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAg
ICB9CisKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwg
IlNldFVzZUlUUERhdGFiYXNlIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3Nh
Z2VCb2R5KSA9PSBXS0Jvb2xlYW5HZXRUeXBlSUQoKSk7CisKKyAgICAgICAgV0tCb29sZWFuUmVm
IHZhbHVlID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihtZXNzYWdlQm9keSk7CisgICAgICAg
IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRVc2VJVFBEYXRhYmFzZShXS0Jvb2xlYW5H
ZXRWYWx1ZSh2YWx1ZSkpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CiAgICAgCiAg
ICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRTdGF0
aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luIikpIHsKICAgICAgICAgQVNTRVJUKFdL
R2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25hcnlHZXRUeXBlSUQoKSk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggZTBlM2Q2MDllNmU5Nzk5NzZhNDBhZDEzMjk0YmZmOTBhNzRiOGE5Ni4uNWQ2ODdiMGNjODVj
ZTU5NTBmYTEzMDZjODI4NjA5NjI0YWNiMmUwZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1OCBAQAorMjAx
OS0wOS0yNCAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAg
ICAgICBFbmFibGUgTGF5b3V0VGVzdHMgdXNpbmcgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBTUUxp
dGUgYmFja2VuZCAoMTk1NDIwKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTk1NDIwIAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQyMTM1NTE+CisK
KyAgICAgICAgQWRkZWQgYSBmbGFnIHRvIGFsbCBJVFAgdGVzdHMgdG8gZW5hYmxlIHRoZSBJVFAg
ZGF0YWJhc2UgYmFja2VuZCB0byAKKyAgICAgICAgYWxsb3cgZm9yIHRlc3RpbmcgZnVuY3Rpb25h
bGl0eSBhZ2FpbnN0IHRoZSBtZW1vcnkgc3RvcmUuIFRlc3RzIHdlcmUgCisgICAgICAgIG5vdCBj
cmVhdGVkIGZvciB0ZWxlbWV0cnktZ2VuZXJhdGlvbi5odG1sLCAKKyAgICAgICAgbG9nLWNyb3Nz
LXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sLCBvciAKKyAgICAgICAgd2Vic2l0
ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUtbmF2aWdhdGVkLXRvLXdpdGgtbGluay1kZWNvcmF0aW9u
Lmh0bWwsIAorICAgICAgICBiZWNhdXNlIHRoZXNlIHJlbHkgb24gZnVuY3Rpb25zIG5vdCB5ZXQg
aW1wbGVtZW50ZWQgaW4gdGhlIElUUCBkYXRhYmFzZS4KKyAgICAgICAgQWRkaXRpb25hbGx5LCBh
ZGRlZCBmbGFncyB0byBzb21lIG1lbW9yeSBzdG9yZSB0ZXN0cyB0byBlbnN1cmUgdGhleQorICAg
ICAgICBhcmUgdXNpbmcgdGhlIG1lbW9yeSBzdG9yZSBiZWZvcmUgY2FsbGluZyBmdW5jdGlvbnMg
bm90IGltcGxlbWVudGVkIGluCisgICAgICAgIHRoZSBkYXRhYmFzZSBzdG9yZSB5ZXQuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4t
d2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Jsb2NraW5nLWluLXdl
Yi13b3JrZXItc2NyaXB0LWltcG9ydC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1hZ2UtZm9yLXBy
ZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1mb3It
cHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0
LWluLWpzLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0
aC1saW5rLWRlY29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUt
ZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmst
ZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVk
LWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXBy
ZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0
LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3Vy
Y2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0
YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVl
cnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0
aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1y
ZXNvdXJjZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdp
dGhvdXQtbGluay1kZWNvcmF0aW9uLWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmst
ZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
bm9uLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRh
YmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXIt
dG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZh
bGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2Uu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9w
LWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVu
dC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVk
aXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFz
ZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2Uu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1l
LW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9u
LXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVk
aXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
c3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxl
bnQtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11
bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJh
c2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVk
aXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1v
bi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1w
cmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0
LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1m
cmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJh
c2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGly
ZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
dG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnkt
cHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFz
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFzZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4t
bWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
ZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29v
a2llLWRlbGV0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFzZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rl
bGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1z
Y3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVs
LW5hdmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1s
ZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0
aWNzLWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1j
YXB0dXJlLXN0YXRpc3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2aWdhdGlvbnMtZGF0YWJhc2UuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rv
LW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90
LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNz
aW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFs
ZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9y
LW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5r
LXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmFibGUtZGVidWctbW9k
ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRo
ZXJpbmctZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJhc2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xvZy1jcm9z
cy1zaXRlLWxvYWQtd2l0aC1saW5rLWRlY29yYXRpb24uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVz
ZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13
aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0
aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVz
b3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJl
c291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0LWRhdGFi
YXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1p
bi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRv
LWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13
aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1k
YXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVk
aXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24t
c2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1u
ZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxo
b3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUt
d2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRh
YmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVj
dC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZhbGVu
dC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZS1k
YXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxl
bnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50
LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Ut
d2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJj
ZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRo
LXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVz
b3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1y
ZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFs
ZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3Rh
dGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRh
YmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxo
b3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0
LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdp
dGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94
ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJv
eGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9j
YWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVz
dGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3Qt
dG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0
aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3Rp
bmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAt
dG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13
aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9z
dC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4tZGVidWctbW9kZS1k
YXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1kZWJ1Zy1t
b2RlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJy
ZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3Jp
Z2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1y
ZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRh
YmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJy
ZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10
by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vz
c2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy90ZWxlbWV0cnktZ2VuZXJhdGlvbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJh
bWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3Vi
LWZyYW1lLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRo
aW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlv
bi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1k
YXRhLXJlbW92YWwtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZvci1zaXRlLW5hdmln
YXRlZC10by13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2lv
cy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICBBZGRlZCB0ZXN0IGV4cGVjdGF0aW9ucyB0byBz
a2lwIGRhdGFiYXNlIHRlc3RzIHdoaWNoIGRvIG5vdCB3b3JrIGluIAorICAgICAgICBpb3MgYmVj
YXVzZSBvZiByZWxpYW5jZSBvbiBFdmVudFNlbmRlci5rZXlkb3duKCkgd2hpY2ggaXMgbm90Cisg
ICAgICAgIHN1cHBvcnRlZCBvbiBpT1MgYW5kIGFsc28gdGhvc2Ugd2hpY2ggdXNlIFVJSGVscGVy
LmFjdGl2YXRlQXQoKSB3aGljaAorICAgICAgICBkb2VzIG5vdCBwcm9kdWNlIGEgdXNlciBnZXN0
dXJlIGNhcHR1cmVkIGJ5IElUUCBpbiBpT1MuCisKIDIwMTktMDktMjQgIFphbGFuIEJ1anRhcyAg
PHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbaVBhZE9zXSBUaGUgc2Vjb25kIGNsaWNrIGV2
ZW50IGlzIG1pc3Npbmcgb24gZG91YmxlIHRhcCB3aGVuIGRibGNsaWNrIGhhbmRsZXIgaXMgbm90
IHByZXNlbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9j
a2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWZlZjlj
ZDI2ZTg2MWIwZmRiMTRmNWRjMGIwYTE2MDBmNGU4ZGFkNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmct
dG8tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNjMgQEAKK1Rlc3Rz
IHRoYXQgYmxvY2tpbmcgaXMgYWRkZWQgbWlkLWZsaWdodCBpbiByZWRpcmVjdHMuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKyAgCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4n
CistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLgorUmVjZWl2ZWQg
Y29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUg
bmFtZWQgJ3BhcnRpdGlvbmVkQ29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTog
Zmlyc3RQYXJ0eUNvb2tpZT12YWx1ZQorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUyLS0+
JworLS0tLS0tLS0KK1JlZGlyZWN0IGNhc2UgMSwgc2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkg
Y29va2llLgorUmVjZWl2ZWQgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBu
b3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3BhcnRpdGlvbmVkQ29va2llJy4KK0NsaWVudC1zaWRl
IGRvY3VtZW50LmNvb2tpZTogZmlyc3RQYXJ0eUNvb2tpZT12YWx1ZQorCistLS0tLS0tLQorRnJh
bWU6ICc8IS0tZnJhbWUzLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMu
CitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBu
b3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3BhcnRpdGlvbmVkQ29va2llJy4KK0NsaWVudC1zaWRl
IGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNC0tPicKKy0t
LS0tLS0tCitSZWRpcmVjdCBjYXNlIDIsIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZS4KK0RpZCBu
b3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNl
aXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9uZWRDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1l
bnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWU1LS0+JworLS0tLS0tLS0K
K1RyeSB0byBzZXQgdGhpcmQtcGFydHkgY29va2llIGluIGJsb2NrZWQgbW9kZS4KKworCistLS0t
LS0tLQorRnJhbWU6ICc8IS0tZnJhbWU2LS0+JworLS0tLS0tLS0KK0FmdGVyIGF0dGVtcHRlZCBj
b29raWUgY3JlYXRpb24sIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZS4KK0RpZCBub3QgcmVjZWl2
ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tp
ZSBuYW1lZCAncGFydGl0aW9uZWRDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2ll
OgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWU3LS0+JworLS0tLS0tLS0KK1JlZGlyZWN0
IGNhc2UgMywgYWZ0ZXIgYXR0ZW1wdGVkIGNvb2tpZSBjcmVhdGlvbiwgc2hvdWxkIHJlY2VpdmUg
bm8gY29va2llLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tp
ZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitD
bGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRh
dGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDFk
NjNhNTE2ODc4YTA4MzhkMjk4ZTc2M2UwM2QyZWI4NDZhMDk5ZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tp
bmctdG8tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDEwNCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYt
OCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGJsb2Nr
aW5nIGlzIGFkZGVkIG1pZC1mbGlnaHQgaW4gcmVkaXJlY3RzLiIpOworICAgIGpzVGVzdElzQXN5
bmMgPSB0cnVlOworCisgICAgY29uc3QgcGFydGl0aW9uSG9zdCA9ICIxMjcuMC4wLjE6ODAwMCI7
CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOwor
ICAgIGNvbnN0IHJlc291cmNlUGF0aCA9ICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0eU9yaWdpbiArIHJl
c291cmNlUGF0aDsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5
Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQt
Y29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUi
OworICAgIGNvbnN0IHBhcnRpdGlvbmVkQ29va2llTmFtZSA9ICJwYXJ0aXRpb25lZENvb2tpZSI7
CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0UGFydGl0aW9uZWRDb29raWUgPSAiL3NldC1jb29raWUu
cGhwP25hbWU9IiArIHBhcnRpdGlvbmVkQ29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAg
IGNvbnN0IHJldHVyblVybCA9ICJodHRwOi8vIiArIHBhcnRpdGlvbkhvc3QgKyAiL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0Lmh0bWwiOworICAgIGNvbnN0
IHN1YlBhdGhUb0dldENvb2tpZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQ
YXJ0eUNvb2tpZU5hbWUgKyAiJm5hbWUyPSIgKyBwYXJ0aXRpb25lZENvb2tpZU5hbWU7CisgICAg
Y29uc3QgcmVkaXJlY3RDaGFpblVybCA9ICJodHRwOi8vIiArIHBhcnRpdGlvbkhvc3QgKyByZXNv
dXJjZVBhdGggKyAiL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRvPSIgKyB0aGlyZFBhcnR5QmFzZVVy
bCArIHN1YlBhdGhUb0dldENvb2tpZXM7CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwg
b25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBp
ZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRI
YW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxl
bWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNo
IChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgor
ICAgICAgICAgICAgICAgIC8vIFNldCBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdC4K
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eUJhc2VV
cmwgKyBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llICsgIiMiICsgcmV0dXJuVXJsICsgIiNz
dGVwMiI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIi
OgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIGNvb2tpZSBnZXRzIHNlbnQgZm9y
IGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEgc2luY2UgbG9jYWxob3N0IGlzIG5vdCBwcmV2YWxl
bnQuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMyI7Cisg
ICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dl
dENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLiIs
IHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0
ZXAzIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA0IjsK
KyAgICAgICAgICAgICAgICAvLyBMb2FkIGFuIGlmcmFtZSBpbiBhIHJlZGlyZWN0IGNoYWluIHRo
YXQgc3RhcnRzIHdpdGggMTI3LjAuMC4xIGFuZCBlbmRzIHdpdGggbG9jYWxob3N0LiBFeHBlY3Qg
YSBjb29raWUgZm9yIGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHJlZGly
ZWN0Q2hhaW5VcmwgKyAiJm1lc3NhZ2U9UmVkaXJlY3QgY2FzZSAxLCBzaG91bGQgcmVjZWl2ZSBm
aXJzdC1wYXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAgIC8vIFNldCBsb2NhbGhv
c3QgYXMgcHJldmFsZW50IHRvIHB1dCBpdCBpbiB0aGUgYmxvY2tpbmcgY2F0ZWdvcnkuCisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNSI7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0
eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0
IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcocnVuVGVzdCk7CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDUi
OgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgbm8gY29va2llIGdldHMgc2VudCBmb3Ig
bG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMSBzaW5jZSBsb2NhbGhvc3QncyBjb29raWVzIGFyZSBi
bG9ja2VkLgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDYi
OworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRo
VG9HZXRDb29raWVzICsgICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLiIsIHJ1
blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA2
IjoKKyAgICAgICAgICAgICAgICAvLyBMb2FkIGFuIGlmcmFtZSBpbiBhIHJlZGlyZWN0IGNoYWlu
IHRoYXQgc3RhcnRzIHdpdGggMTI3LjAuMC4xIGFuZCBlbmRzIHdpdGggbG9jYWxob3N0LiBFeHBl
Y3Qgbm8gY29va2llIGZvciBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaGFzaCA9ICJzdGVwNyI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZShyZWRpcmVj
dENoYWluVXJsICsgIiZtZXNzYWdlPVJlZGlyZWN0IGNhc2UgMiwgc2hvdWxkIHJlY2VpdmUgbm8g
Y29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSAiI3N0ZXA3IjoKKyAgICAgICAgICAgICAgICAvLyBUcnkgdG8gc2V0IGNvb2tpZSBmb3Ig
bG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMS4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2Nh
dGlvbi5oYXNoID0gInN0ZXA4IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFy
dHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0UGFydGl0aW9uZWRDb29raWUgKyAiJm1lc3NhZ2U9VHJ5
IHRvIHNldCB0aGlyZC1wYXJ0eSBjb29raWUgaW4gYmxvY2tlZCBtb2RlLiIsIHJ1blRlc3QpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA4IjoKKyAgICAg
ICAgICAgICAgICAvLyBDaGVjayB0aGF0IG5vIGNvb2tpZSBnZXRzIHNlbnQgZm9yIGxvY2FsaG9z
dCB1bmRlciAxMjcuMC4wLjEgc2luY2UgbG9jYWxob3N0J3MgY29va2llcyBhcmUgYmxvY2tlZC4K
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA5IjsKKyAgICAg
ICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29v
a2llcyArICAiJm1lc3NhZ2U9QWZ0ZXIgYXR0ZW1wdGVkIGNvb2tpZSBjcmVhdGlvbiwgc2hvdWxk
IHJlY2VpdmUgbm8gY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSAiI3N0ZXA5IjoKKyAgICAgICAgICAgICAgICAvLyBMb2FkIGFuIGlm
cmFtZSBpbiBhIHJlZGlyZWN0IGNoYWluIHRoYXQgc3RhcnRzIHdpdGggMTI3LjAuMC4xIGFuZCBl
bmRzIHdpdGggbG9jYWxob3N0LiBFeHBlY3Qgbm8gY29va2llIGZvciBsb2NhbGhvc3QuCisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMTAiOworICAgICAgICAg
ICAgICAgIG9wZW5JZnJhbWUocmVkaXJlY3RDaGFpblVybCArICImbWVzc2FnZT1SZWRpcmVjdCBj
YXNlIDMsIGFmdGVyIGF0dGVtcHRlZCBjb29raWUgY3JlYXRpb24sIHNob3VsZCByZWNlaXZlIG5v
IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwMTAiOgorICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2Us
IGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2FzIGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291
cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydHMuIik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1
bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFz
aCA9ICJzdGVwMSI7CisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgIH0g
ZWxzZSB7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2Jsb2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0LWltcG9ydC1kYXRhYmFzZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWNiNzk5NDNlZDhiNDlhODQxYmQxMjliM2Y1YWNhNmUyYTNiMjFiYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1Rlc3QgZm9yIGNvb2tpZSBibG9ja2luZyB3aGVu
IHdlYiB3b3JrZXJzIGltcG9ydCBjcm9zcy1zaXRlIHNjcmlwdHMuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIERpZCByZWNlaXZlIGZpcnN0UGFydHlDb29raWUgPT0gdmFs
dWUKK1BBU1MgRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCBmaXJzdFBhcnR5Q29va2llCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCistLS0t
LS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIGZp
cnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tp
ZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1pbi13
ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzIwMTA4
NTEwNjVhY2E4NGEyYTJmOGU5OTc5MDc4MTg1N2ZiMTliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Jsb2NraW5nLWluLXdl
Yi13b3JrZXItc2NyaXB0LWltcG9ydC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsODggQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IGZvciBjb29raWUgYmxvY2tpbmcgd2hlbiB3ZWIgd29y
a2VycyBpbXBvcnQgY3Jvc3Mtc2l0ZSBzY3JpcHRzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0
cnVlOworCisgICAgY29uc3QgcGFydGl0aW9uSG9zdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAg
Y29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNv
bnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0eU9yaWdpbiArICIvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVOYW1lID0g
ImZpcnN0UGFydHlDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29r
aWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZ2
YWx1ZT12YWx1ZSI7CisgICAgY29uc3QgcmV0dXJuVXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Jsb2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0LWlt
cG9ydC5odG1sIjsKKyAgICBjb25zdCBzdWJQYXRoVG9HZXRDb29raWVzID0gIi9nZXQtY29va2ll
cy5waHA/bmFtZTE9IiArIGZpcnN0UGFydHlDb29raWVOYW1lOworCisgICAgZnVuY3Rpb24gb3Bl
bklmcmFtZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVy
bDsKKyAgICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25s
b2FkID0gb25Mb2FkSGFuZGxlcjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGVsZW1lbnQpOworICAgIH0KKworICAgIGxldCByZWNlaXZlZE1lc3NhZ2VzID0g
MDsKKyAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICBpZiAoZXZl
bnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgdGVzdEZhaWxlZChl
dmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJlcGxhY2UoIlBBU1MgIiwgIiIpKTsKKworICAgICAg
ICArK3JlY2VpdmVkTWVzc2FnZXM7CisgICAgICAgIGlmIChyZWNlaXZlZE1lc3NhZ2VzID49IDIp
IHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcnVuVGVzdCgpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkg
eworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5s
b2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5
Q29va2llICsgIiMiICsgcmV0dXJuVXJsICsgIiNzdGVwMiI7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhp
cmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCBy
ZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgbGV0IHcxID0gbmV3
IFdvcmtlcigicmVzb3VyY2VzL3dvcmtlci1pbXBvcnRpbmctbG9jYWxob3N0LXNjcmlwdC5qcyIp
OworICAgICAgICAgICAgICAgIHcxLm9ubWVzc2FnZSA9IHJlY2VpdmVNZXNzYWdlOworICAgICAg
ICAgICAgICAgIHcxLnBvc3RNZXNzYWdlKCJzaG91bGRSZWNlaXZlQ29va2llcz10cnVlIik7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlP
cmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA1IjoK
KyAgICAgICAgICAgICAgICBsZXQgdzIgPSBuZXcgV29ya2VyKCJyZXNvdXJjZXMvd29ya2VyLWlt
cG9ydGluZy1sb2NhbGhvc3Qtc2NyaXB0LmpzIik7CisgICAgICAgICAgICAgICAgdzIub25tZXNz
YWdlID0gcmVjZWl2ZU1lc3NhZ2U7CisgICAgICAgICAgICAgICAgdzIucG9zdE1lc3NhZ2UoInNo
b3VsZE5vdFJlY2VpdmVDb29raWVzIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gcGFydGl0aW9u
SG9zdCAmJiBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIiAmJiB3aW5kb3cudGVzdFJ1bm5l
ciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0
YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2lu
KSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2FzIGNsYXNzaWZpZWQg
YXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydHMuIik7CisgICAgICAg
ICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRl
c3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4
LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFn
ZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wY2NlNWFhMWMzNmE5NGQ1NTBiZGUyMjlhZGU0NDZmZjgzNTVjMWNiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1j
YWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3RzIHRoYXQgY2FjaGUgbWF4LWFnZSBpcyBjYXBwZWQgZm9y
IHByZXZhbGVudCByZXNvdXJjZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIGxvYWRlZFVybCBpcyAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPTEyMzQiCitQQVNTIGxvYWRlZFVy
bCBpcyAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3Vy
Y2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPTQzMjEiCitQQVNTIGxvYWRlZFVybCBpcyAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVl
cnkucGhwP3ZhbHVlPSIKK1BBU1MgbG9hZGVkVXJsIGlzICJodHRwOi8vbG9jYWxob3N0OjgwMDAv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9Igor
UEFTUyBsb2FkZWRVcmwgaXMgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3Jlc291cmNlcy9lY2hvLXF1ZXJ5LnBocD92YWx1ZT0iCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZv
ci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1mb3ItcHJldmFsZW50
LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjY0YTQ1MThhODMzOTQ2MDkwNzMz
MzczZjFmNjAyMTYzYWFiOTMyYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1mb3ItcHJldmFs
ZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMTMgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+CisgICAgPHRpdGxlPlRlc3RzIGZvciBDYXBwZWQgQ2FjaGUgTWF4LUFnZTwv
dGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3Rz
IHRoYXQgY2FjaGUgbWF4LWFnZSBpcyBjYXBwZWQgZm9yIHByZXZhbGVudCByZXNvdXJjZXMuIik7
CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICB2YXIgbG9hZGVkVXJsOworICAgIGZ1
bmN0aW9uIGZpcnN0RmV0Y2goKSB7CisgICAgICAgIC8vIFRoaXMgc2hvdWxkIGNyZWF0ZSBhIGNh
cHBlZCBjYWNoZSBlbnRyeS4KKyAgICAgICAgZmV0Y2goImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9jYWNoZWQtcGVybWFuZW50LXJlZGlyZWN0
LnBocCIsCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY2FjaGU6ICJyZWxvYWQiLAor
ICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgIlgtV2ViS2l0
IjogIjEyMzQiLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgKS50
aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBsb2FkZWRVcmwgPSByZXNwb25z
ZS51cmw7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxvYWRlZFVybCIsICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNo
by1xdWVyeS5waHA/dmFsdWU9MTIzNCIpOworICAgICAgICAgICAgc2Vjb25kRmV0Y2goKTsKKyAg
ICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
ZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5p
c2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZWNvbmRGZXRj
aCgpIHsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgbm90IHRyaWdnZXIgYSBzdWNjZXNzZnVsIGNh
Y2hlIGhpdCBhbmQgaW5zdGVhZCBjcmVhdGUgYW5vdGhlciBjYXBwZWQgY2FjaGUgZW50cnkuCisg
ICAgICAgIGZldGNoKCJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9yZXNvdXJjZXMvY2FjaGVkLXBlcm1hbmVudC1yZWRpcmVjdC5waHAiLAorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIGNhY2hlOiAiZm9yY2UtY2FjaGUiLAorICAgICAgICAgICAgICAg
IGhlYWRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgIlgtV2ViS2l0IjogIjQzMjEiLAorICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgKS50aGVuKGZ1bmN0aW9uKHJl
c3BvbnNlKSB7CisgICAgICAgICAgICBsb2FkZWRVcmwgPSByZXNwb25zZS51cmw7CisgICAgICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxvYWRlZFVybCIsICJodHRwOi8vbG9jYWxob3N0
OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFs
dWU9NDMyMSIpOworICAgICAgICAgICAgdGhpcmRGZXRjaCgpOworICAgICAgICB9KS5jYXRjaChm
dW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAgdGVzdEZhaWxlZChlcnJvci5tZXNzYWdlKTsK
KyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRoaXJkRmV0Y2goKSB7CisgICAgICAgIC8v
IFRoaXMgc2hvdWxkIG5vdCB0cmlnZ2VyIGEgc3VjY2Vzc2Z1bCBjYWNoZSBoaXQgYW5kIGluc3Rl
YWQgY3JlYXRlIGFub3RoZXIgY2FwcGVkIGNhY2hlIGVudHJ5LgorICAgICAgICBmZXRjaCgiaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2NhY2hl
ZC1wZXJtYW5lbnQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBjYWNoZTogImZvcmNlLWNhY2hlIiwKKyAgICAgICAgICAgIH0KKyAgICAgICAgKS50aGVuKGZ1
bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBsb2FkZWRVcmwgPSByZXNwb25zZS51cmw7
CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxvYWRlZFVybCIsICJodHRwOi8v
bG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVy
eS5waHA/dmFsdWU9Iik7CisgICAgICAgICAgICBmb3VydGhGZXRjaCgpOworICAgICAgICB9KS5j
YXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAgdGVzdEZhaWxlZChlcnJvci5tZXNz
YWdlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGZvdXJ0aEZldGNoKCkgeworICAg
ICAgICAvLyBUaGlzIHNob3VsZCBub3QgdHJpZ2dlciBhIHN1Y2Nlc3NmdWwgY2FjaGUgaGl0IGJ1
dCBjbGVhciBjYXBwaW5nLgorICAgICAgICBmZXRjaCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2NhY2hlZC1wZXJtYW5lbnQtcmVkaXJlY3Qu
cGhwIiwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjYWNoZTogImZvcmNlLWNhY2hl
IiwKKyAgICAgICAgICAgIH0KKyAgICAgICAgKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7Cisg
ICAgICAgICAgICBsb2FkZWRVcmwgPSByZXNwb25zZS51cmw7CisgICAgICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImxvYWRlZFVybCIsICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9Iik7CisgICAg
ICAgICAgICBmaWZ0aEZldGNoKCk7CisgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7
CisgICAgICAgICAgICB0ZXN0RmFpbGVkKGVycm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gZmlmdGhGZXRjaCgpIHsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgdHJp
Z2dlciBhIHJlZ3VsYXIsIHN1Y2Nlc3NmdWwgY2FjaGUgaGl0LgorICAgICAgICBmZXRjaCgiaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2NhY2hl
ZC1wZXJtYW5lbnQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBoZWFkZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICJYLVdlYktpdCI6ICIxMjM0IiwKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICkudGhlbihmdW5jdGlvbihy
ZXNwb25zZSkgeworICAgICAgICAgICAgbG9hZGVkVXJsID0gcmVzcG9uc2UudXJsOworICAgICAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsb2FkZWRVcmwiLCAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3Zh
bHVlPSIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKKyAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIHRlc3RG
YWlsZWQoZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9CisgICAgdGVzdFJ1bm5lci5zZXRV
c2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0
IHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3Rh
cnRlZC4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NDYWNoZU1heEFnZUNh
cCgwKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
Imh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKGZpcnN0RmV0Y2gpOworICAgICAg
ICB9KTsKKyAgICB9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZv
ci1jb29raWUtc2V0LWluLWpzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ODQ2
MjBkNmQzMzEyMTE2NDUxYThhNTljODRiZTYxNzY0YzQ2ZTMxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMSBAQAorQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCB3aXRoIG1h
eC1hZ2Ugb3IgZXhwaXJ5IGxvbmdlciB0aGFuIGEgd2VlayBnZXQgY2FwcGVkIHRvIGEgd2Vlay4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHR3byBzaG9ydC1saXZl
ZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gMTcyODMwIHNlY29uZHMuCitQ
QVNTIFRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRo
YW4gNjA0ODMwIHNlY29uZHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRh
YmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmUyZmZkMDQxYWUzMmRlMjg2MDNiODE5MTAzMGNlOGEzMDVkMjYyNmIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLWRhdGFiYXNlLmh0bWwKQEAgLTAs
MCArMSw4MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQg
c3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBj
b29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCB3aXRoIG1heC1hZ2Ugb3IgZXhwaXJ5IGxvbmdl
ciB0aGFuIGEgd2VlayBnZXQgY2FwcGVkIHRvIGEgd2Vlay4iKTsKKyAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKyAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworCisgICAg
aWYgKGludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NFbmFibGVkKHRydWUpOworCisgICAgbGV0IHBhc3NlZFRlc3RzID0gMDsKKyAgICBmdW5jdGlv
biBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llRGF0YSwgbWF4QWdlSW5T
ZWNvbmRzKSB7CisgICAgICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpOworICAgICAgICBsZXQgbWF4
RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93LmdldFRpbWUoKSArIChtYXhBZ2VJblNlY29u
ZHMgKiAxMDAwKTsKKworICAgICAgICBpZiAobWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID4g
Y29va2llRGF0YVsiZXhwaXJlcyJdKQorICAgICAgICAgICAgKytwYXNzZWRUZXN0czsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5hbWVkICIgKyBjb29raWVE
YXRhWyJuYW1lIl0gKyAiIGV4cGlyZXMgaW4gbW9yZSB0aGFuICIgKyBtYXhBZ2VJblNlY29uZHMg
KyAiIHNlY29uZHMuIik7CisgICAgfQorCisgICAgY29uc3QgdHdvRGF5c0luU2Vjb25kcyA9IDIg
KiAyNCAqIDYwICogNjA7CisgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFt
ZSA6ICJzaG9ydExpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdv
RGF5c0luU2Vjb25kcyArICI7IiB9OworICAgIGRvY3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRD
b29raWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENvb2tpZU1heEFnZS5s
aWZldGltZSArICIgcGF0aD0vIjsKKworICAgIGNvbnN0IHR3b0RheXNBc0V4cGlyZXNEYXRlID0g
Y3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3b0RheXNJblNlY29uZHMpOworICAgIGNvbnN0
IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogInNob3J0TGl2ZWRDb29raWVFeHBp
cmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAiOyIg
fTsKKyAgICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5uYW1lICsg
Ij1mb29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0v
IjsKKworICAgIGNvbnN0IG9uZVdlZWtJblNlY29uZHMgPSA3ICogMjQgKiA2MCAqIDYwOworICAg
IGNvbnN0IHR3b1dlZWtzSW5TZWNvbmRzID0gMiAqIG9uZVdlZWtJblNlY29uZHM7CisgICAgY29u
c3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZU1heEFn
ZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b1dlZWtzSW5TZWNvbmRzICsgIjsiIH07Cisg
ICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2Jh
cjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAg
IGNvbnN0IHR3b1dlZWtzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFn
ZSh0d29XZWVrc0luU2Vjb25kcyk7CisgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llRXhwaXJlcyA9
IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0i
ICsgdHdvV2Vla3NBc0V4cGlyZXNEYXRlICsgIjsiIH07CisgICAgZG9jdW1lbnQuY29va2llID0g
bG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29r
aWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgY29uc3Qgb3ZlclR3b0RheXNJ
blNlY29uZHMgPSB0d29EYXlzSW5TZWNvbmRzICsgMzA7CisgICAgY29uc3Qgb3Zlck9uZVdlZWtJ
blNlY29uZHMgPSBvbmVXZWVrSW5TZWNvbmRzICsgMzA7CisgICAgaWYgKGludGVybmFscykgewor
ICAgICAgICBsZXQgY29va2llcyA9IGludGVybmFscy5nZXRDb29raWVzKCk7CisgICAgICAgIGlm
ICghY29va2llcy5sZW5ndGgpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBjb29raWVzIGZv
dW5kLiIpOworICAgICAgICBmb3IgKGxldCBjb29raWUgb2YgY29va2llcykgeworICAgICAgICAg
ICAgc3dpdGNoIChjb29raWUubmFtZSkgeworICAgICAgICAgICAgICAgIGNhc2Ugc2hvcnRMaXZl
ZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVE
b2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdvRGF5c0luU2Vjb25kcyk7CisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tp
ZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05v
dEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3b0RheXNJblNlY29uZHMpOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZU1heEFn
ZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJl
QWZ0ZXIoY29va2llLCBvdmVyT25lV2Vla0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1l
OgorICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIo
Y29va2llLCBvdmVyT25lV2Vla0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmVzZXRDb29raWVzRm9yQ3Vy
cmVudE9yaWdpbigpOworCisgICAgICAgIGlmIChwYXNzZWRUZXN0cyA9PT0gNCkgeworICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBzaG9ydC1saXZlZCBjb29raWVzIGRvbid0IGV4cGly
ZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJUd29EYXlzSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIp
OworICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9u
J3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3Zlck9uZVdlZWtJblNlY29uZHMgKyAiIHNl
Y29uZHMuIik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiQXQgbGVh
c3Qgb25lIGNvb2tpZSdzIGV4cGlyeSBhdHRyaWJ1dGUgd2FzIGJleW9uZCB0aGUgdGVzdCB0aHJl
c2hvbGRzLiIpOworICAgIH0gZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMg
b2JqZWN0LiIpOworCisgICAgaWYgKGludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJl
c291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKworICAgIGZpbmlzaEpTVGVzdCgp
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9u
LXNhbWUtc2l0ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ5NTQ1YTAzNGQz
YWYyNTkwYzk5MzM3ZDIzMDVhOWJlZmRiYTQxMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9y
LWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRl
ZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgc2FtZS1zaXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIGRl
Y29yYXRpb24gZG9uJ3QgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZXhwaXJlIGFm
dGVyIG1vcmUgdGhhbiA4NjQzMCBzZWNvbmRzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQt
aW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNlLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1l
LWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRh
YmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkMDk5OTFiM2ZhOGFjZDQ4MTk5YTg1MzIzNGQyNWFiMjg5
MTVkYzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgt
bGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsODYgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvY29v
a2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlv
bigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBhZnRlciBhIHNhbWUt
c2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBkZWNvcmF0aW9uIGRvbid0IGdldCBjYXBwZWQgdG8g
MjQgaG91cnMuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBmdW5jdGlvbiB0
ZXN0Q29va2llcygpIHsKKyAgICAgICAgbGV0IHBhc3NlZFRlc3RzID0gMDsKKworICAgICAgICBm
dW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzRXhwaXJlQWZ0ZXIoY29va2llRGF0YSwgbWF4QWdl
SW5TZWNvbmRzKSB7CisgICAgICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKKyAgICAgICAg
ICAgIGxldCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPSBub3cuZ2V0VGltZSgpICsgKG1h
eEFnZUluU2Vjb25kcyAqIDEwMDApOworCisgICAgICAgICAgICBpZiAobWF4RXhwaXJ5RGF0ZUlu
TWlsbGlzZWNvbmRzIDwgY29va2llRGF0YVsiZXhwaXJlcyJdKQorICAgICAgICAgICAgICAgICsr
cGFzc2VkVGVzdHM7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiQ29va2llIG5hbWVkICIgKyBjb29raWVEYXRhWyJuYW1lIl0gKyAiIGV4cGlyZXMgaW4gbGVz
cyB0aGFuICIgKyBtYXhBZ2VJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgIH0KKwor
ICAgICAgICBjb25zdCBvbmVEYXlJblNlY29uZHMgPSAyNCAqIDYwICogNjA7CisgICAgICAgIGNv
bnN0IHR3b0RheXNJblNlY29uZHMgPSAyICogb25lRGF5SW5TZWNvbmRzOworICAgICAgICBjb25z
dCBsb25nTGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llTWF4QWdl
IiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdvRGF5c0luU2Vjb25kcyArICI7IiB9OworICAg
ICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVNYXhBZ2UubmFtZSArICI9Zm9v
YmFyOyAiICsgbG9uZ0xpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisg
ICAgICAgIGNvbnN0IHR3b0RheXNBc0V4cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9t
TWF4QWdlKHR3b0RheXNJblNlY29uZHMpOworICAgICAgICBjb25zdCBsb25nTGl2ZWRDb29raWVF
eHBpcmVzID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZUV4cGlyZXMiLCBsaWZldGltZSA6ICJF
eHBpcmVzPSIgKyB0d29EYXlzQXNFeHBpcmVzRGF0ZSArICI7IiB9OworICAgICAgICBkb2N1bWVu
dC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxv
bmdMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29u
c3Qgb3Zlck9uZURheUluU2Vjb25kcyA9IG9uZURheUluU2Vjb25kcyArIDMwOworICAgICAgICBp
ZiAoaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBsZXQgY29va2llcyA9IGludGVybmFscy5nZXRD
b29raWVzKCk7CisgICAgICAgICAgICBpZiAoIWNvb2tpZXMubGVuZ3RoKQorICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIk5vIGNvb2tpZXMgZm91bmQuIik7CisgICAgICAgICAgICBmb3IgKGxl
dCBjb29raWUgb2YgY29va2llcykgeworICAgICAgICAgICAgICAgIHN3aXRjaCAoY29va2llLm5h
bWUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29raWVNYXhBZ2UubmFt
ZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNFeHBpcmVBZnRl
cihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5u
YW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc0V4cGlyZUFm
dGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IHJlc2V0Q29va2llc0ZvckN1cnJlbnRPcmlnaW4oKTsKKworICAgICAgICAgICAgaWYgKHBhc3Nl
ZFRlc3RzID09PSAyKSB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBsb25n
LWxpdmVkIGNvb2tpZXMgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3Zlck9uZURheUluU2Vj
b25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkF0IGxlYXN0IG9uZSBjb29raWUncyBleHBpcnkgYXR0cmlidXRlIHdhcyBi
ZWxvdyB0aGUgdGVzdCB0aHJlc2hvbGRzLiIpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoIk5vIGludGVybmFscyBvYmplY3QuIik7CisKKyAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBuYXZp
Z2F0ZUNyb3NzT3JpZ2luKCkgeworICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gcHJl
dmFsZW50UmVzb3VyY2VPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxp
ZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0
ZS5odG1sP2xpbms9ZGVjb3JhdGlvbiNmcmFnbWVudCI7CisgICAgfQorCisgICAgY29uc3QgZGVz
dGluYXRpb25PcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCBwcmV2
YWxlbnRSZXNvdXJjZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09
IHByZXZhbGVudFJlc291cmNlT3JpZ2luICYmIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggIT09ICIj
ZnJhZ21lbnQiKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRy
dWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
cHJldmFsZW50UmVzb3VyY2VPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJl
dmFsZW50UmVzb3VyY2VPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhu
YXZpZ2F0ZUNyb3NzT3JpZ2luKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0Q29va2llcygpOworICAgICAg
ICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1l
LWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1y
ZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdiYWQwMzJjNmYyMjQ1NzNhMzM1ZDNmNzA0MTlkY2I0YmU0
M2ExNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1s
aW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDExIEBACitDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2Ny
aXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBmcmFnbWVudCBnZXQg
Y2FwcGVkIHRvIDI0IGhvdXJzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhh
biA0MzIzMCBzZWNvbmRzLgorUEFTUyBUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBl
eHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDg2NDMwIHNlY29uZHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29v
a2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2Ut
ZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdt
ZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWM4
NGZiODk0Zjk5YjMyN2MxNzczZTIwMDdkYzEwZDkxYzJhODc5OQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlm
ZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFs
ZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMDEgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvY29va2llcy9yZXNvdXJj
ZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91
dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhh
dCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdh
dGlvbiB3aXRoIGxpbmsgZnJhZ21lbnQgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4iKTsKKyAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0aW9uIHRlc3RDb29raWVzKCkgeworICAg
ICAgICBsZXQgcGFzc2VkVGVzdHMgPSAwOworICAgICAgICBmdW5jdGlvbiBjaGVja1RoYXRDb29r
aWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llRGF0YSwgbWF4QWdlSW5TZWNvbmRzKSB7CisgICAg
ICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKKyAgICAgICAgICAgIGxldCBtYXhFeHBpcnlE
YXRlSW5NaWxsaXNlY29uZHMgPSBub3cuZ2V0VGltZSgpICsgKG1heEFnZUluU2Vjb25kcyAqIDEw
MDApOworCisgICAgICAgICAgICBpZiAobWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID4gY29v
a2llRGF0YVsiZXhwaXJlcyJdKQorICAgICAgICAgICAgICAgICsrcGFzc2VkVGVzdHM7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5hbWVkICIg
KyBjb29raWVEYXRhWyJuYW1lIl0gKyAiIGV4cGlyZXMgaW4gbW9yZSB0aGFuICIgKyBtYXhBZ2VJ
blNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCB0d2Vs
dmVIb3Vyc0luU2Vjb25kcyA9IDEyICogNjAgKiA2MDsKKyAgICAgICAgY29uc3Qgc2hvcnRMaXZl
ZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJzaG9ydExpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRp
bWUgOiAiTWF4LUFnZT0iICsgdHdlbHZlSG91cnNJblNlY29uZHMgKyAiOyIgfTsKKyAgICAgICAg
ZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7
ICIgKyBzaG9ydExpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAg
ICAgIGNvbnN0IHR3ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJv
bU1heEFnZSh0d2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgIGNvbnN0IHNob3J0TGl2ZWRD
b29raWVFeHBpcmVzID0geyBuYW1lIDogInNob3J0TGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRp
bWUgOiAiRXhwaXJlcz0iICsgdHdlbHZlSG91cnNBc0V4cGlyZXNEYXRlICsgIjsiIH07CisgICAg
ICAgIGRvY3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAiPWZv
b2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOwor
CisgICAgICAgIGNvbnN0IG9uZURheUluU2Vjb25kcyA9IDIgKiB0d2VsdmVIb3Vyc0luU2Vjb25k
czsKKyAgICAgICAgY29uc3QgdHdvRGF5c0luU2Vjb25kcyA9IDIgKiBvbmVEYXlJblNlY29uZHM7
CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJsb25nTGl2
ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d29EYXlzSW5TZWNvbmRz
ICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZU1heEFn
ZS5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAi
IHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdvRGF5c0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVF
eHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdvRGF5c0luU2Vjb25kcyk7CisgICAgICAgIGNvbnN0IGxv
bmdMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llRXhwaXJlcyIs
IGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3b0RheXNBc0V4cGlyZXNEYXRlICsgIjsiIH07Cisg
ICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZSArICI9
Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0vIjsK
KworICAgICAgICBjb25zdCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMgPSB0d2VsdmVIb3Vyc0lu
U2Vjb25kcyArIDMwOworICAgICAgICBjb25zdCBvdmVyT25lRGF5SW5TZWNvbmRzID0gb25lRGF5
SW5TZWNvbmRzICsgMzA7CisgICAgICAgIGlmIChpbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGxl
dCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKTsKKyAgICAgICAgICAgIGlmICghY29v
a2llcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gY29va2llcyBmb3Vu
ZC4iKTsKKyAgICAgICAgICAgIGZvciAobGV0IGNvb2tpZSBvZiBjb29raWVzKSB7CisgICAgICAg
ICAgICAgICAgc3dpdGNoIChjb29raWUubmFtZSkgeworICAgICAgICAgICAgICAgICAgICBjYXNl
IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNo
ZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJUd2VsdmVIb3Vyc0lu
U2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgY2FzZSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAg
ICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3
ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAg
ICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tp
ZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIo
Y29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVz
ZXRDb29raWVzRm9yQ3VycmVudE9yaWdpbigpOworCisgICAgICAgICAgICBpZiAocGFzc2VkVGVz
dHMgPT09IDQpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIHNob3J0LWxp
dmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3ZlclR3ZWx2ZUhv
dXJzSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQo
IlRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4g
IiArIG92ZXJPbmVEYXlJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhw
aXJ5IGF0dHJpYnV0ZSB3YXMgYmV5b25kIHRoZSB0ZXN0IHRocmVzaG9sZHMuIik7CisgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gaW50ZXJuYWxzIG9iamVjdC4iKTsK
KworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIG5hdmlnYXRlQ3Jvc3NPcmlnaW4oKSB7CisgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbk9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdt
ZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWwjbGluaz1mcmFnbWVudCI7CisgICAgfQor
CisgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsK
KyAgICBjb25zdCBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5sb2Nh
dGlvbi5vcmlnaW4gPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luKSB7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4sIHRy
dWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4pKQorICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMg
cHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhuYXZpZ2F0ZUNyb3NzT3JpZ2luKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgfSk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICB0ZXN0Q29va2llcygpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgt
bGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnkt
YW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42ZTk4ZGM4ZjkwZTJkYTFiMTk4M2I0OGRjMTg2ZWFkN2E2OTY1ZDdhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVl
cnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDExIEBACitDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZh
U2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBxdWVyeSBhbmQg
ZnJhZ21lbnQgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgVGhlIHR3byBzaG9ydC1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBh
ZnRlciBtb3JlIHRoYW4gNDMyMzAgc2Vjb25kcy4KK1BBU1MgVGhlIHR3byBsb25nLWxpdmVkIGNv
b2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA4NjQzMCBzZWNvbmRzLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlm
ZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWFuZC1mcmFnbWVudC1m
cm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNl
dC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291
cmNlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzU5MWViNGU5NThmYjFiNTBkYjdmODIyYTIw
MGVjY2M2NzM4MjQxNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4t
anMtd2l0aC1saW5rLXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1k
YXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTAxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2Nvb2tpZXMvcmVzb3VyY2VzL2Nvb2tpZS11dGls
aXRpZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1blRlc3QoKScs
IDApIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkNoZWNrIHRoYXQgY29va2llcyBjcmVh
dGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aCBsaW5r
IHF1ZXJ5IGFuZCBmcmFnbWVudCBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLiIpOworICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rpb24gdGVzdENvb2tpZXMoKSB7CisgICAgICAg
IGxldCBwYXNzZWRUZXN0cyA9IDA7CisgICAgICAgIGZ1bmN0aW9uIGNoZWNrVGhhdENvb2tpZURv
ZXNOb3RFeHBpcmVBZnRlcihjb29raWVEYXRhLCBtYXhBZ2VJblNlY29uZHMpIHsKKyAgICAgICAg
ICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpOworICAgICAgICAgICAgbGV0IG1heEV4cGlyeURhdGVJ
bk1pbGxpc2Vjb25kcyA9IG5vdy5nZXRUaW1lKCkgKyAobWF4QWdlSW5TZWNvbmRzICogMTAwMCk7
CisKKyAgICAgICAgICAgIGlmIChtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPiBjb29raWVE
YXRhWyJleHBpcmVzIl0pCisgICAgICAgICAgICAgICAgKytwYXNzZWRUZXN0czsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgbmFtZWQgIiArIGNv
b2tpZURhdGFbIm5hbWUiXSArICIgZXhwaXJlcyBpbiBtb3JlIHRoYW4gIiArIG1heEFnZUluU2Vj
b25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IHR3ZWx2ZUhv
dXJzSW5TZWNvbmRzID0gMTIgKiA2MCAqIDYwOworICAgICAgICBjb25zdCBzaG9ydExpdmVkQ29v
a2llTWF4QWdlID0geyBuYW1lIDogInNob3J0TGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6
ICJNYXgtQWdlPSIgKyB0d2VsdmVIb3Vyc0luU2Vjb25kcyArICI7IiB9OworICAgICAgICBkb2N1
bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiAr
IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAg
Y29uc3QgdHdlbHZlSG91cnNBc0V4cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4
QWdlKHR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tp
ZUV4cGlyZXMgPSB7IG5hbWUgOiAic2hvcnRMaXZlZENvb2tpZUV4cGlyZXMiLCBsaWZldGltZSA6
ICJFeHBpcmVzPSIgKyB0d2VsdmVIb3Vyc0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAg
ZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFy
OyAiICsgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAg
ICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0gMiAqIHR3ZWx2ZUhvdXJzSW5TZWNvbmRzOwor
ICAgICAgICBjb25zdCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIG9uZURheUluU2Vjb25kczsKKyAg
ICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogImxvbmdMaXZlZENv
b2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b0RheXNJblNlY29uZHMgKyAi
OyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5h
bWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0
aD0vIjsKKworICAgICAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGly
ZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3QgbG9uZ0xp
dmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlm
ZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAg
ICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29i
YXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisg
ICAgICAgIGNvbnN0IG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyA9IHR3ZWx2ZUhvdXJzSW5TZWNv
bmRzICsgMzA7CisgICAgICAgIGNvbnN0IG92ZXJPbmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNl
Y29uZHMgKyAzMDsKKyAgICAgICAgaWYgKGludGVybmFscykgeworICAgICAgICAgICAgbGV0IGNv
b2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICAgICAgaWYgKCFjb29raWVz
Lmxlbmd0aCkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIp
OworICAgICAgICAgICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAg
ICAgICBzd2l0Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2Ugc2hv
cnRMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tU
aGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNv
bmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg
ICBjYXNlIHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAg
ICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdlbHZl
SG91cnNJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAg
ICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBv
dmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29r
aWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXNldENv
b2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAgICAgIGlmIChwYXNzZWRUZXN0cyA9
PT0gNCkgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gc2hvcnQtbGl2ZWQg
Y29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBvdmVyVHdlbHZlSG91cnNJ
blNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhl
IHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsg
b3Zlck9uZURheUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkF0IGxlYXN0IG9uZSBjb29raWUncyBleHBpcnkg
YXR0cmlidXRlIHdhcyBiZXlvbmQgdGhlIHRlc3QgdGhyZXNob2xkcy4iKTsKKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOworCisg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5k
LWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWw/bGluaz1xdWVyeSNsaW5rPWZy
YWdtZW50IjsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5hdGlvbk9yaWdpbiA9ICJodHRwOi8v
bG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHByZXZhbGVudFJlc291cmNlT3JpZ2luID0gImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAg
aWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4p
IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAg
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRS
ZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlm
ICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNv
dXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRp
ZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKG5hdmlnYXRlQ3Jv
c3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RDb29raWVzKCk7CisgICAgICAgIH0KKyAgICB9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tp
ZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1
ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kNDVkZDE2YzJlZTAxMDgwZTNjMWYxYjQwMjA2YjY2YTgwMmUwYWMxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nh
cHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1w
cmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAK
K0NoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1z
aXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIHF1ZXJ5IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSB0d28gc2hvcnQtbGl2ZWQg
Y29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDQzMjMwIHNlY29uZHMuCitQQVNT
IFRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4g
ODY0MzAgc2Vjb25kcy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGlu
ay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3It
Y29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2Ut
ZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNWYwOTc2YjI0ODY2NjY4OWMxODFhYTU5NWYwYzE4
ZmY2YWYwNTBiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13
aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApAQCAt
MCwwICsxLDEwMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKSI+Cis8c2NyaXB0Pgor
ICAgIGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0
IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBxdWVyeSBnZXQgY2FwcGVk
IHRvIDI0IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rp
b24gdGVzdENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7CisgICAgICAg
IGZ1bmN0aW9uIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWVEYXRhLCBt
YXhBZ2VJblNlY29uZHMpIHsKKyAgICAgICAgICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpOworICAg
ICAgICAgICAgbGV0IG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA9IG5vdy5nZXRUaW1lKCkg
KyAobWF4QWdlSW5TZWNvbmRzICogMTAwMCk7CisKKyAgICAgICAgICAgIGlmIChtYXhFeHBpcnlE
YXRlSW5NaWxsaXNlY29uZHMgPiBjb29raWVEYXRhWyJleHBpcmVzIl0pCisgICAgICAgICAgICAg
ICAgKytwYXNzZWRUZXN0czsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJDb29raWUgbmFtZWQgIiArIGNvb2tpZURhdGFbIm5hbWUiXSArICIgZXhwaXJlcyBp
biBtb3JlIHRoYW4gIiArIG1heEFnZUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAg
fQorCisgICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzID0gMTIgKiA2MCAqIDYwOwor
ICAgICAgICBjb25zdCBzaG9ydExpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogInNob3J0TGl2
ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d2VsdmVIb3Vyc0luU2Vj
b25kcyArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29va2ll
TWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubGlmZXRp
bWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdlbHZlSG91cnNBc0V4cGlyZXNEYXRl
ID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAg
ICAgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAic2hvcnRMaXZl
ZENvb2tpZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d2VsdmVIb3Vyc0FzRXhw
aXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENv
b2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMu
bGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0g
MiAqIHR3ZWx2ZUhvdXJzSW5TZWNvbmRzOworICAgICAgICBjb25zdCB0d29EYXlzSW5TZWNvbmRz
ID0gMiAqIG9uZURheUluU2Vjb25kczsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4
QWdlID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1B
Z2U9IiArIHR3b0RheXNJblNlY29uZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2ll
ID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENv
b2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCB0d29EYXlz
QXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNv
bmRzKTsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJs
b25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0Fz
RXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVk
Q29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVz
LmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG92ZXJUd2VsdmVIb3Vyc0lu
U2Vjb25kcyA9IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgMzA7CisgICAgICAgIGNvbnN0IG92ZXJP
bmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMgKyAzMDsKKyAgICAgICAgaWYgKGludGVy
bmFscykgeworICAgICAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygp
OworICAgICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAgICAgICAgZm9yIChsZXQgY29va2ll
IG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvb2tpZS5uYW1lKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAg
ICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNv
b2tpZSwgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRDb29raWVFeHBpcmVz
Lm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhw
aXJlQWZ0ZXIoY29va2llLCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29v
a2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVE
b2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZl
ZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENv
b2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAg
ICAgICAgICAgIGlmIChwYXNzZWRUZXN0cyA9PT0gNCkgeworICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIlRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9y
ZSB0aGFuICIgKyBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAg
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9uJ3Qg
ZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3Zlck9uZURheUluU2Vjb25kcyArICIgc2Vjb25k
cy4iKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkF0
IGxlYXN0IG9uZSBjb29raWUncyBleHBpcnkgYXR0cmlidXRlIHdhcyBiZXlvbmQgdGhlIHRlc3Qg
dGhyZXNob2xkcy4iKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJO
byBpbnRlcm5hbHMgb2JqZWN0LiIpOworICAgICAgICAKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBuYXZpZ2F0ZUNy
b3NzT3JpZ2luKCkgeworICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gZGVzdGluYXRp
b25PcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1j
b29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5o
dG1sP2xpbms9cXVlcnkiOworICAgIH0KKworICAgIGNvbnN0IGRlc3RpbmF0aW9uT3JpZ2luID0g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgcHJldmFsZW50UmVzb3VyY2VPcmln
aW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgewor
ICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luID09PSBwcmV2YWxlbnRSZXNvdXJj
ZU9yaWdpbikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHBy
ZXZhbGVudFJlc291cmNlT3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZh
bGVudFJlc291cmNlT3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ikhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcobmF2
aWdhdGVDcm9zc09yaWdpbik7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdENvb2tpZXMoKTsKKyAgICAgICAg
fQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1m
b3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVu
dC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWlu
LWpzLXdpdGhvdXQtbGluay1kZWNvcmF0aW9uLWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYmY2NDlhNTdlMTM2NGMwNjA2NDU2OTQxMzA0
NTQxMTM3NDU4MzAxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1q
cy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0
ZWQgYnkgSmF2YVNjcmlwdCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRob3V0IGxp
bmsgZGVjb3JhdGlvbiBkb24ndCBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBleHBp
cmUgYWZ0ZXIgbW9yZSB0aGFuIDg2NDMwIHNlY29uZHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2ll
LXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJj
ZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmst
ZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFlNDdiNDk0ODdlODk2NzI5ZDBhNGI3NzcwYjUxZDc4M2Y0ZThjZjAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2Fw
cGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGhvdXQtbGluay1kZWNvcmF0aW9u
LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw4NiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9jb29r
aWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9u
KCJDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mt
c2l0ZSBuYXZpZ2F0aW9uIHdpdGhvdXQgbGluayBkZWNvcmF0aW9uIGRvbid0IGdldCBjYXBwZWQg
dG8gMjQgaG91cnMuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBmdW5jdGlv
biB0ZXN0Q29va2llcygpIHsKKyAgICAgICAgbGV0IHBhc3NlZFRlc3RzID0gMDsKKworICAgICAg
ICBmdW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzRXhwaXJlQWZ0ZXIoY29va2llRGF0YSwgbWF4
QWdlSW5TZWNvbmRzKSB7CisgICAgICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKKyAgICAg
ICAgICAgIGxldCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPSBub3cuZ2V0VGltZSgpICsg
KG1heEFnZUluU2Vjb25kcyAqIDEwMDApOworCisgICAgICAgICAgICBpZiAobWF4RXhwaXJ5RGF0
ZUluTWlsbGlzZWNvbmRzIDwgY29va2llRGF0YVsiZXhwaXJlcyJdKQorICAgICAgICAgICAgICAg
ICsrcGFzc2VkVGVzdHM7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiQ29va2llIG5hbWVkICIgKyBjb29raWVEYXRhWyJuYW1lIl0gKyAiIGV4cGlyZXMgaW4g
bGVzcyB0aGFuICIgKyBtYXhBZ2VJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgIH0K
KworICAgICAgICBjb25zdCBvbmVEYXlJblNlY29uZHMgPSAyNCAqIDYwICogNjA7CisgICAgICAg
IGNvbnN0IHR3b0RheXNJblNlY29uZHMgPSAyICogb25lRGF5SW5TZWNvbmRzOworICAgICAgICBj
b25zdCBsb25nTGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llTWF4
QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdvRGF5c0luU2Vjb25kcyArICI7IiB9Owor
ICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVNYXhBZ2UubmFtZSArICI9
Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8iOwor
CisgICAgICAgIGNvbnN0IHR3b0RheXNBc0V4cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJlc0RhdGVG
cm9tTWF4QWdlKHR3b0RheXNJblNlY29uZHMpOworICAgICAgICBjb25zdCBsb25nTGl2ZWRDb29r
aWVFeHBpcmVzID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZUV4cGlyZXMiLCBsaWZldGltZSA6
ICJFeHBpcmVzPSIgKyB0d29EYXlzQXNFeHBpcmVzRGF0ZSArICI7IiB9OworICAgICAgICBkb2N1
bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiAr
IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAg
Y29uc3Qgb3Zlck9uZURheUluU2Vjb25kcyA9IG9uZURheUluU2Vjb25kcyArIDMwOworICAgICAg
ICBpZiAoaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBsZXQgY29va2llcyA9IGludGVybmFscy5n
ZXRDb29raWVzKCk7CisgICAgICAgICAgICBpZiAoIWNvb2tpZXMubGVuZ3RoKQorICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIk5vIGNvb2tpZXMgZm91bmQuIik7CisgICAgICAgICAgICBmb3Ig
KGxldCBjb29raWUgb2YgY29va2llcykgeworICAgICAgICAgICAgICAgIHN3aXRjaCAoY29va2ll
Lm5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29raWVNYXhBZ2Uu
bmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNFeHBpcmVB
ZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llRXhwaXJl
cy5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc0V4cGly
ZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIHJlc2V0Q29va2llc0ZvckN1cnJlbnRPcmlnaW4oKTsKKworICAgICAgICAgICAgaWYgKHBh
c3NlZFRlc3RzID09PSAyKSB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBs
b25nLWxpdmVkIGNvb2tpZXMgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3Zlck9uZURheUlu
U2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkF0IGxlYXN0IG9uZSBjb29raWUncyBleHBpcnkgYXR0cmlidXRlIHdh
cyBiZWxvdyB0aGUgdGVzdCB0aHJlc2hvbGRzLiIpOworICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIk5vIGludGVybmFscyBvYmplY3QuIik7CisgICAgICAgICAgICAKKyAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBuYXZpZ2F0ZUNyb3NzT3JpZ2luKCkgeworICAgICAgICBkb2N1bWVudC5sb2Nh
dGlvbi5ocmVmID0gZGVzdGluYXRpb25PcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGhvdXQtbGluay1kZWNvcmF0
aW9uLWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWwiOworICAgIH0KKworICAgIGNvbnN0IGRl
c3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgcHJl
dmFsZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBmdW5j
dGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luID09
PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRV
c2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwg
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luLCB0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNv
dXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRl
Q29va2llQmxvY2tpbmcobmF2aWdhdGVDcm9zc09yaWdpbik7CisgICAgICAgICAgICAgICAgfSk7
CisKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdENv
b2tpZXMoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRh
YmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0
aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMGMyNThiOGUwMDVkMzU1NDE4
MmFmMDZkNDgyNTgzYWU3N2U1YTEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQt
YmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
K1BBU1MgSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4K
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1k
YXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1k
YXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlMDNmZDg3MTJlZjllZGM5YjE4NjJmNjM2ZDFlNzRl
YTY4OGQ4NDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1taXhl
ZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+
CisgICAgPHRpdGxlPlRlc3RzIGZvciBDbGFzc2lmaWNhdGlvbiBCYXNlZCBvbiBNaXhlZCBTdGF0
aXN0aWNzPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhv
c3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwg
PSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFt
ZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZy
YW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9w
RnJhbWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0
aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMg
cHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jl
c2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVz
dFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBh
Z2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3Jp
Z2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGlj
c1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9y
aWdpbjMpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2Nh
bkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAg
ICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVu
ZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAg
fQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVu
dC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1m
cmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMGMyNThiOGUw
MDVkMzU1NDE4MmFmMDZkNDgyNTgzYWU3N2U1YTEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1w
cmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZp
ZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1i
YXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lu
cy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4NTQwOTA4ZWQ4MGQxMzRlNzM4MDQ5NmEyNzUw
NWFkMDA1Yzk3YmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1z
dWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsx
LDUzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxt
ZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIENsYXNzaWZpY2F0aW9u
IEJhc2VkIG9uIFN1YiBGcmFtZSBVbmRlciBUb3AgRnJhbWUgT3JpZ2luczwvdGl0bGU+CisgICAg
PHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4w
LjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVu
ZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8x
MjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDov
LzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRw
Oi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7
CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBjbGFzc2lmaWVkIGFz
IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBh
c3NlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRl
KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dl
cmVTY2FubmVkKHRydWUpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0
IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0
b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3Vi
ZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJh
bWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKworICAgICAgICAgICAg
dGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNv
bXBsZXRlVGVzdCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlk
TW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAgICAgICB0
ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7Cisg
ICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBo
b3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsK
KyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJl
dmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVu
ZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
MGMyNThiOGUwMDVkMzU1NDE4MmFmMDZkNDgyNTgzYWU3N2U1YTEzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9y
aWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhvc3QgZGlkIG5vdCBn
ZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24t
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRh
dGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10
b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2MTEyMGE4NTkzMTIx
MTQwNzJkNDcyOWIzNmJhMGExNzdmM2RjNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZh
bGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFz
ZS5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4i
PgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBm
b3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gU3VicmVzb3VyY2UgVW5kZXIgVG9wIEZyYW1lIE9y
aWdpbnM8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9z
dFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9
ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1l
T3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJh
bWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9u
IGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJl
dmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0
VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1
bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2Vz
V2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgCisgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9y
aWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFs
bFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFS
ZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlv
bi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5p
bnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsK
KyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5z
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1
bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMt
dG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVz
b3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjBjMjU4YjhlMDA1ZDM1NTQxODJhZjA2ZDQ4MjU4M2FlNzdlNWExMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVj
dHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhvc3QgZGlkIG5vdCBn
ZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24t
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJh
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRp
cmVjdHMtdG8tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYTVhNWQ0YmRhNGU0ZmRlZWQxODZh
M2YwODgxMmZiOGUyODZkNTkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFz
ZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmlj
YXRpb24gQmFzZWQgb24gU3VicmVzb3VyY2UgVW5pcXVlIFJlZGlyZWN0cyBUbzwvdGl0bGU+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEy
Ny4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9z
dFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6
Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0
cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkg
eworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgY2xhc3NpZmllZCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVk
KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRT
dGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29y
ZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3Rh
dGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdl
dCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NV
cmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmln
aW4yKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5E
YXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAg
fSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRl
clRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAg
ICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgICAg
ICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKGZhbHNlKTsKKyAgICB9Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQt
c3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1p
eGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyZGQ2OWY5
NDE5ZjUxOTg5NTdmMDkwOGRkNjc0ZDY4NDM2Y2I5YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJl
dmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzg5NzMxOWFiMGZiMTAwMDU1YTkzNWQ0YTk1MmIyYWI5OTQ0ODMzNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRh
YmFzZS5odG1sCkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0i
ZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0
cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gTWl4ZWQgU3RhdGlzdGljczwvdGl0bGU+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEy
Ny4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9z
dFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6
Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0
cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJo
dHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW40ID0g
Imh0dHA6Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVz
dCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90
IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwp
KQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3Nl
ZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICBp
bnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRy
dWUpOworIAorICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJl
dmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmln
aW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJU
b3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjQpOworCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmln
aW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1l
T3JpZ2luNCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVj
dFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0
ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlz
dGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1
bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVy
ICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRh
YmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAg
IGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAg
ICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1m
cmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
c3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zMmRkNjlmOTQxOWY1MTk4OTU3ZjA5MDhkZDY3NGQ2ODQzNmNiOWM3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZy
YW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhvc3QgY2xh
c3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQt
YmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1k
YXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlYTc2MjAwZGEyZmZiMWEwMDU1YThhMTk4YWUyNzgz
ZTJlYjNmNTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFt
ZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTcgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hh
cnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQg
b24gU3ViIEZyYW1lIFVuZGVyIFRvcCBGcmFtZSBPcmlnaW5zPC90aXRsZT4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgw
MDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0
ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAu
Mjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAu
MC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8xMjcu
MC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjQgPSAiaHR0cDovLzEy
Ny4wLjAuNTo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAg
ICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlz
dGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNz
aWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBpZiAodGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJl
c291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNs
YXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIGludGVybmFscy5z
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNv
dXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVV
bmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmln
aW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJs
LCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2lu
NCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0
YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVubmVy
LnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0p
OworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJU
ZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGRkY2U1YjMxNGNkN2QyZDBkZWM0OGI2Zjlm
OWUwZWNjYWI4MzA5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJy
ZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTQgQEAKK1Rlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiBzdWJyZXNvdXJjZSBy
ZWRpcmVjdCBjb2xsdXNpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IENvbGx1ZGluZyBob3N0IDEgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENv
bGx1ZGluZyBob3N0IDIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1
ZGluZyBob3N0IDMgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGlu
ZyBob3N0IDQgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBs
b2NhbGhvc3QgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgYWN0dWFsIHN1YiBm
cmFtZSByZWRpcmVjdC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJl
ZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJy
ZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGJm
YjJmMjU3N2NiY2JkZjNjMWY0YzE0YTQ2YTlhYWQ2MTZmN2FlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJh
c2UuaHRtbApAQCAtMCwwICsxLDcxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVu
Ij4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiBzdWJy
ZXNvdXJjZSByZWRpcmVjdCBjb2xsdXNpb24uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7
CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25z
dCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7Cisg
ICAgY29uc3Qgc3VicmVzb3VyY2VPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1w
IjsKKyAgICBjb25zdCBzdWJyZXNvdXJjZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAw
L3RlbXAiOworICAgIGNvbnN0IHN1YnJlc291cmNlT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40
OjgwMDAvdGVtcCI7CisgICAgY29uc3Qgc3VicmVzb3VyY2VPcmlnaW40ID0gImh0dHA6Ly8xMjcu
MC4wLjU6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oc3RhdGlzdGljc1Vy
bCwgc3VicmVzb3VyY2VPcmlnaW4xKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oc3VicmVzb3VyY2VPcmlnaW4xLCBzdWJyZXNv
dXJjZU9yaWdpbjIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0RnJvbShzdWJyZXNvdXJjZU9yaWdpbjIsIHN1YnJlc291cmNlT3JpZ2lu
Myk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVk
aXJlY3RGcm9tKHN1YnJlc291cmNlT3JpZ2luMywgc3VicmVzb3VyY2VPcmlnaW40KTsKKworICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJIb3N0IGV4cGxpY2l0eSBzZXQgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZh
bGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luMSkpCisgICAgICAgICAgICAgICAg
dGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgMSBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJj
ZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxl
bnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjEpKQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkNvbGx1ZGluZyBob3N0IDEgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjIpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIkNvbGx1ZGluZyBob3N0IDIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7Cisg
ICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3Vy
Y2Uoc3VicmVzb3VyY2VPcmlnaW4yKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xs
dWRpbmcgaG9zdCAyIGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIp
OworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3VicmVzb3VyY2VPcmlnaW4zKSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xs
dWRpbmcgaG9zdCAzIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN1YnJl
c291cmNlT3JpZ2luMykpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhv
c3QgMyBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN1YnJl
c291cmNlT3JpZ2luNCkpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhv
c3QgNCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9y
aWdpbjQpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDQgZ290
IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBp
ZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIikpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGxvY2Fs
aG9zdCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZSBhZnRlciBhY3R1YWwgc3ViIGZyYW1l
IHJlZGlyZWN0LiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVy
eVByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSkKKyAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgbG9jYWxob3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZl
cnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9CisK
KyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5k
b3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwg
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCnCoHsKKyAgICAgICAg
ICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90
IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICBs
ZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAg
ICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQub25sb2FkID0gcnVuVGVzdDsKKyAgICAgICAgICAg
ICAgICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89aHR0cDovLzEy
Ny4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvb25jbGljay5odG1sIjsKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVj
dC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1v
bi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmI4ZmNiZDhkOGY2ZDA1ZmM0OTRkNGVlZGRjZDljYjVlYmRkZTBjMzkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0
LXRvLXByZXZhbGVudC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVz
dHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHN1YnJlc291cmNlIHJlZGlyZWN0IHRvIG90
aGVyIHByZXZhbGVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgSG9z
dCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJh
c2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTgwYTU5ZjY5YWUwZTcwOWU1MDQwZWJmMzUwNzcyYTZk
ZjhiZjRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJj
ZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDUxIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZv
ciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiBzdWJyZXNvdXJjZSByZWRpcmVjdCB0byBvdGhlciBw
cmV2YWxlbnQuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBob3N0
VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0g
Imh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVP
cmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNv
bXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgZWxzZSBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uo
c3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lm
aWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIp
OworICAgICAgICAgICAgCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpT
VGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4xLCB0cnVl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJl
c291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOwor
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNv
cmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAg
fQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYg
d2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVu
bmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRy
dWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90
aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwg
ZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJl
c291cmNlLiIpOworICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdp
bnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJj
ZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzJkZDY5Zjk0MTlmNTE5ODk1N2YwOTA4ZGQ2NzRkNjg0MzZjYjljNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9y
aWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhvc3QgY2xhc3NpZmll
ZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1w
cmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDAxZWE2YmMyNDkzNzU5MmYwZTg5Njc2MTVjOTljNWM4
ZGMzZmE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJj
ZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTcgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hh
cnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQg
b24gU3VicmVzb3VyY2UgVW5kZXIgVG9wIEZyYW1lIE9yaWdpbnM8L3RpdGxlPgorICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6
ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRl
c3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAu
MC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcu
MC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEy
Ny4wLjAuNDo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luNCA9ICJodHRwOi8v
MTI3LjAuMC41OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7Cisg
ICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xh
c3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGlmICh0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3Qg
Y2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgaW50ZXJuYWxz
LnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1
bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlz
dGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVz
b3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9w
RnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihz
dGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmws
IHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRp
c3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRz
KCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0
ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5h
bHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRl
c3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1w
cmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1y
ZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyZGQ2OWY5NDE5
ZjUxOTg5NTdmMDkwOGRkNjc0ZDY4NDM2Y2I5YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFs
ZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5p
cXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJy
ZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhm
N2YxMzkxYzYyMWRlODY2ZTFiZDIzYjAxYmRhMzMyZDBkOWYzNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRh
YmFzZS5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0i
ZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0
cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gU3VicmVzb3VyY2UgVW5pcXVlIFJlZGlyZWN0
cyBUbzwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0
VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0g
Imh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVP
cmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFt
ZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZy
YW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9w
RnJhbWVPcmlnaW40ID0gImh0dHA6Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0
aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNl
KHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBnb3QgY2xhc3Np
ZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQo
ZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0
YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cisg
ICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgewor
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jk
c1dlcmVTY2FubmVkKHRydWUpOworIAorICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0
IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1Vy
bCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdp
bjIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3Rh
dGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW40KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5p
bnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7
CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5k
RGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50Lmxv
Y2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2lu
ZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRy
dWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJu
YWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICBydW5U
ZXN0UnVubmVyVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9u
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJl
ZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQzOTM4
Yjc2Yzk3NDRjM2FmYTdiMjU1MDVlYWViNDlkODY2YjUyMAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1w
cmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJh
c2VkIG9uIHRvcCBmcmFtZSByZWRpcmVjdCBjb2xsdXNpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIENvbGx1ZGluZyBob3N0IDEgZ290IHNldCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuCitQQVNTIENvbGx1ZGluZyBob3N0IDIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuCitQQVNTIENvbGx1ZGluZyBob3N0IDMgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuCitQQVNTIENvbGx1ZGluZyBob3N0IDQgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
CitQQVNTIENvbGx1ZGluZyBsb2NhbGhvc3QgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Ug
YWZ0ZXIgYWN0dWFsIG5hdmlnYXRpb25hbCByZWRpcmVjdC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJh
c2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjRhOTgzYmMwNmQzNTBlZDU2NTUyNDAyZGZjZmQzMzQ1OWM2MDVjZWQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1j
b2xsdXNpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDcxIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZvciBjbGFzc2lmaWNhdGlv
biBiYXNlZCBvbiB0b3AgZnJhbWUgcmVkaXJlY3QgY29sbHVzaW9uLiIpOworICAgIGpzVGVzdElz
QXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAw
MCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3Qg
KyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4y
OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4w
LjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4w
LjAuNDo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luNCA9ICJodHRwOi8vMTI3
LjAuMC41OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW41ID0gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC8iOworCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oc3RhdGlzdGlj
c1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20odG9wRnJhbWVPcmlnaW4xLCB0b3BGcmFtZU9yaWdp
bjIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGly
ZWN0RnJvbSh0b3BGcmFtZU9yaWdpbjIsIHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKHRvcEZyYW1lT3Jp
Z2luMywgdG9wRnJhbWVPcmlnaW40KTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGV4cGxpY2l0
eSBzZXQgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1l
T3JpZ2luMSkpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgMSBn
b3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjEpKQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDEgZ290IGNsYXNzaWZp
ZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjIpKQorICAg
ICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDIgZ290IHNldCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NWZXJ5UHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4yKSkKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCAyIGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJl
dmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4zKSkKKyAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCAzIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVu
dFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMykpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
Q29sbHVkaW5nIGhvc3QgMyBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJj
ZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHRvcEZyYW1lT3JpZ2luNCkpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29s
bHVkaW5nIGhvc3QgNCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSh0b3BG
cmFtZU9yaWdpbjQpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0
IDQgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFt
ZU9yaWdpbjUpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBsb2NhbGhv
c3QgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgYWN0dWFsIG5hdmlnYXRpb25h
bCByZWRpcmVjdC4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1Zl
cnlQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjUpKQorICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkNvbGx1ZGluZyBsb2NhbGhvc3QgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlm
IChkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3
aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2Uo
dHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5o
cmVmID0gdG9wRnJhbWVPcmlnaW41ICsgInJlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2Vz
L3JlZGlyZWN0LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVk
aXJlY3QtY29sbHVzaW9uLmh0bWwjY29udGludWUiOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9i
c2VydmVyKCk7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGly
ZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjU5Zjk5NTMzODI4MGYzMTViMjIwMDNmMDA4MmQwODE0ODQ3ZTlhYjMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10
by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3Rz
IGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0b3AgZnJhbWUgcmVkaXJlY3QgdG8gb3RoZXIg
cHJldmFsZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBIb3N0IGNs
YXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZh
bGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjkyYzc1MTY4ODk3MTU5NTM1NGU2MjA2NGU5ODM4MzMwZWZjYWU5NAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0
LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgi
PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgZm9yIGNsYXNzaWZp
Y2F0aW9uIGJhc2VkIG9uIHRvcCBmcmFtZSByZWRpcmVjdCB0byBvdGhlciBwcmV2YWxlbnQuIik7
CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0g
IjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsg
aG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0
dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgp
IHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdl
dCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZSBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1Vy
bCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkg
cHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAK
KyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjEsIHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVj
dFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0
ZVRlc3QpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3Rp
Y3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1l
bnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAm
JiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJh
c2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVj
b3Jkc1dlcmVTY2FubmVkKHRydWUpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
ICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0K
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNl
ZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDkxYmY5NjAzMzU3MDljOTkxZGYxZmZkMzI0
MjhiZGJhZTgwNmY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3At
ZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMCBAQAorVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHRvcCBmcmFtZSB1bmlx
dWUgcmVkaXJlY3RzIHRvLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBI
b3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQt
YmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1w
cmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41YzRjN2VlNWY2YzNmZWE2NTYxM2Y4NTgzNjI3YTRjOTg1MDMxNWRi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVl
LXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTYgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgi
PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgZm9yIGNsYXNzaWZp
Y2F0aW9uIGJhc2VkIG9uIHRvcCBmcmFtZSB1bmlxdWUgcmVkaXJlY3RzIHRvLiIpOworICAgIGpz
VGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4w
LjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRl
clRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3
LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8x
MjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDov
LzEyNy4wLjAuNDo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luNCA9ICJodHRw
Oi8vMTI3LjAuMC41OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7
CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQg
Y2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGlmICh0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhv
c3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBy
dW5UZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1
ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NV
cmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Rv
cEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOwor
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8o
c3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW40KTsKKworICAgICAgICB0ZXN0UnVubmVyLmlu
c3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsK
KworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFS
ZWNvcmRzKCk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhv
c3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewor
ICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsK
KworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
c3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICh0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQor
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBu
b24tcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAg
ICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0
aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhl
ZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMGYwMzFkY2E1
ZDBjOTYwOGY0ZDhmNWFmODk5YTE2ZTllZjUxYzU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnkt
cHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgZm9yIGNsYXNzaWZpY2F0aW9uIGFzIHZlcnkgcHJldmFs
ZW50IGJhc2VkIG9uIG1peGVkIHN0YXRpc3RpY3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFz
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJh
c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hYjA2ZmEyMDllZGJiNmYxMTg4YWZmN2QxNjA2MzA0MDI3YWJi
MTdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0
YXRpc3RpY3MtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgZm9yIGNsYXNzaWZpY2F0aW9u
IGFzIHZlcnkgcHJldmFsZW50IGJhc2VkIG9uIG1peGVkIHN0YXRpc3RpY3MuIik7CisgICAganNU
ZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAu
MTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVy
VGVzdCArICIvdGVtcCI7CisgICAgdmFyIHRvcEZyYW1lT3JpZ2lucyA9IFtdOworICAgIGNvbnN0
IHN0YXJ0TnVtID0gMjsKKyAgICBjb25zdCBudW1iZXJPZlN1YnJlc291cmNlRG9tYWlucyA9IDMw
OworICAgIGZvciAodmFyIGkgPSBzdGFydE51bTsgaSA8IG51bWJlck9mU3VicmVzb3VyY2VEb21h
aW5zICsgc3RhcnROdW07ICsraSkKKyAgICAgICAgdG9wRnJhbWVPcmlnaW5zLnB1c2goImh0dHA6
Ly8xMjcuMC4wLiIgKyBpICsgIjo4MDAwL3RlbXAiKQorCisgICAgZnVuY3Rpb24gY29tcGxldGVU
ZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBpZiAo
IXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVk
IGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0
cnVlKTsKKyAKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBzdGFydGVkIG91dCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHZhciBpID0gMDsKKyAgICAgICAgICAgIHdoaWxl
IChpIDwgbnVtYmVyT2ZTdWJyZXNvdXJjZURvbWFpbnMpIHsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGlj
c1VybCwgdG9wRnJhbWVPcmlnaW5zW2ldKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwg
dG9wRnJhbWVPcmlnaW5zW2ldKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVP
cmlnaW5zW2ldKTsKKworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1
YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNb
aSsxXSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3Vy
Y2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpKzFd
KTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVu
aXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2krMV0pOworCisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZy
YW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpKzJdKTsKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVP
cmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2krMl0pOworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhz
dGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaSsyXSk7CisgICAgICAgICAgICAgICAgaSAr
PSAzOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0
aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMo
KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3Qg
PT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFs
cykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIHJ1blRlc3RSdW5uZXJUZXN0KTsKKyAgICB9Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQt
c3RvcmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1k
YXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmFlMDAzM2ZmY2NhZWMyNjNhOTZmMmIz
ZDc4M2VkY2Y3MDQwODNkMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQt
c3RvcmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3RzIGNsZWFy
aW5nIG9mIHdlYnNpdGUgZGF0YSBzdG9yZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1MgSG9z
dCBpcyBubyBsb25nZXIgYSBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgdGhlIHN0b3JlIHdhcyBj
bGVhcmVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1t
ZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMTdl
YmFiYWQ5MTdhYWQ0OTkwMzM4MWVhMzUyM2UyMDYyYmFlYjBhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1l
bW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjcgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hh
cnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0IENsZWFyZWQgU3RvcmU8L3RpdGxlPgorICAg
IDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgY2xlYXJpbmcgb2Ygd2Vic2l0
ZSBkYXRhIHN0b3JlLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3Qg
aG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1Vy
bCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZy
YW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9w
RnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0
b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworCisgICAgZnVu
Y3Rpb24gdGVzdFN0ZXAyKCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQo
Ikhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBw
cmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzQ2xl
YXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZShjb21wbGV0ZVRlc3QpOworICAgIH0KKworICAg
IGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGlzIHN0aWxsIGEgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIHRoZSBzdG9y
ZSB3YXMgY2xlYXJlZC4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgi
SG9zdCBpcyBubyBsb25nZXIgYSBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgdGhlIHN0b3JlIHdh
cyBjbGVhcmVkLiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpT
VGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2Vy
ZVNjYW5uZWQodHJ1ZSk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQg
YXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRv
cEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BG
cmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0
YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9w
RnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJl
c291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZy
YW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayh0
ZXN0U3RlcDIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3Rh
dGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChk
b2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVu
bmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBE
YXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNp
c3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVy
c2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDdmOTk5YzZmZWIzMjY1ZGVmZjM5NTFhYzJmODE0MGFjMWE2ZWVlMAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1p
bi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3RzIGNsZWFyaW5nIG9mIHdlYnNpdGUgZGF0YSBzdG9y
ZSAob25lIGhvdXIpLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBIb3N0
IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorUEFTUyBIb3N0IGlzIG5vIGxvbmdl
ciBhIHByZXZhbGVudCByZXNvdXJjZSBhZnRlciB0aGUgc3RvcmUgd2FzIGNsZWFyZWQuCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWlu
LW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9y
eS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmE2YmIwNjVlMzdiZGEyNDQ4MDQzMzcyMzQ1NWZlOGY3ZDg2OTY4YzAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXIt
aW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLmh0bWwKQEAg
LTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4K
KyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPjwvdGl0bGU+CisgICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBjbGVhcmluZyBvZiB3ZWJzaXRlIGRh
dGEgc3RvcmUgKG9uZSBob3VyKS4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAg
IGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRp
c3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25z
dCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNv
bnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAg
Y29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKwor
ICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJIb3N0IGlzIHN0aWxsIGEgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIHRoZSBz
dG9yZSB3YXMgY2xlYXJlZC4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3Nl
ZCgiSG9zdCBpcyBubyBsb25nZXIgYSBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgdGhlIHN0b3Jl
IHdhcyBjbGVhcmVkLiIpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hK
U1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RTdGVwMigpIHsKKyAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkp
CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJl
c291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRp
ZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc0NsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmVNb2Rp
ZmllZFNpbmNlSG91cnMoMSwgY29tcGxldGVUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBy
dW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90
aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxz
ZSwgZnVuY3Rpb24oKSB7fSk7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4o
c3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZy
YW1lT3JpZ2luMSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNl
VW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmln
aW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRv
cEZyYW1lT3JpZ2luMik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmln
aW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKworICAgICAgICB0ZXN0UnVubmVy
Lmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2sodGVzdFN0ZXAyKTsK
KworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFS
ZWNvcmRzKCk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhv
c3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewor
ICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJ1blRlc3RSdW5u
ZXJUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9uLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjNmY2ZhMDQ5MzgzNzk5NjJkY2Q3YTdiZGE0Mzk1
NTAyMmVjMmU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw1NSBAQAorVGVzdCBmb3IgcGFydGl0aW9uZWQgYW5kIHVucGFydGl0aW9uZWQg
Y29va2llIGRlbGV0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgIAorCistLS0tLS0t
LQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIGZpcnN0
LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScu
CitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2llJy4KK0NsaWVu
dC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQYXJ0eUNvb2tpZT12YWx1ZQorCistLS0tLS0t
LQorRnJhbWU6ICc8IS0tZnJhbWUyLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIG5vIGNv
b2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4K
K0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgorQ2xpZW50
LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUzLS0+
JworLS0tLS0tLS0KK1RyeSB0byBzZXQgdGhpcmQgcGFydHkgY29va2llLgorCisKKy0tLS0tLS0t
CitGcmFtZTogJzwhLS1mcmFtZTQtLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgbm8gY29v
a2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgor
RGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQt
c2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTUtLT4n
CistLS0tLS0tLQorQWZ0ZXIgcmVtb3ZhbCwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4KK0Rp
ZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlkIG5vdCBy
ZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1
bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTYtLT4nCistLS0tLS0t
LQorQWZ0ZXIgZGVjbGFzc2lmaWVkLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLgorRGlkIG5v
dCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2Vp
dmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50
LmNvb2tpZToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lODM0ZTg3MzA4YTAzOGQ0MjQ2MmIxMjExMmU0ZWJjMTQ1NTlkZWU2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTE2IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNo
YXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3Qg
Zm9yIHBhcnRpdGlvbmVkIGFuZCB1bnBhcnRpdGlvbmVkIGNvb2tpZSBkZWxldGlvbi4iKTsKKyAg
ICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3
LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmln
aW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCBmaXJz
dFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRo
VG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBh
cnR5Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHRoaXJkUGFydHlDb29r
aWVOYW1lID0gInRoaXJkUGFydHlDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldFRoaXJk
UGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIHRoaXJkUGFydHlDb29raWVO
YW1lICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgY29uc3QgZnJhZ21lbnRXaXRoUmV0dXJuVXJsID0g
Imh0dHA6Ly8iICsgcGFydGl0aW9uSG9zdCArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29r
aWUtZGVsZXRpb24uaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0
LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImbmFtZTI9IiAr
IHRoaXJkUGFydHlDb29raWVOYW1lOworCisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25z
dCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVs
ZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAg
ICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisKKyAgICBmdW5jdGlv
biBmaXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXJBbmRDb250aW51ZSgpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgc2V0VGltZW91dChydW5UZXN0LCA1MDApOworICAgICAgICB9
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRh
UmVjb3JkcygpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNldEFzTm9uUHJldmFsZW50QW5kQ29u
dGludWUoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHRoaXJkUGFydHlPcmlnaW4sIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmln
aW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qgc3RpbGwgc2V0IGFzIHByZXZh
bGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0
ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gp
IHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgLy8gU2V0IGZp
cnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldEZpcnN0UGFy
dHlDb29raWUgKyAiIyIgKyBmcmFnbWVudFdpdGhSZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAg
ICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgdGhpcmQtcGFydHkgaGFzIGFjY2VzcyB0byBpdHMgZmly
c3QtcGFydHkgY29va2llcy4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNo
ID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJs
ICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBmaXJzdC1w
YXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAgICAgIC8vIENsYXNzaWZ5IGxvY2FsaG9z
dCBhcyBwcmV2YWxlbnQuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9
ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ikhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcocnVu
VGVzdCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhl
IHRoaXJkLXBhcnR5IG5vIGxvbmdlciBoYXMgYWNjZXNzIHRvIGl0cyBmaXJzdC1wYXJ0eSBjb29r
aWVzLgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOwor
ICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9H
ZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwgcnVuVGVz
dCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDUiOgor
ICAgICAgICAgICAgICAgIC8vIFRyeSBzZXR0aW5nIGEgY29va2llIGFzIHRoaXJkLXBhcnR5Lgor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDYiOworICAgICAg
ICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRUaGly
ZFBhcnR5Q29va2llICsgIiZtZXNzYWdlPVRyeSB0byBzZXQgdGhpcmQgcGFydHkgY29va2llLiIs
IHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0
ZXA2IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSB0aGlyZC1wYXJ0eSBzdGls
bCBoYXMgbm8gYWNjZXNzIHRvIGNvb2tpZXMgYW5kIHRoZW4gZmlyZSBkYXRhIHJlY29yZCByZW1v
dmFsLgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDciOwor
ICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9H
ZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwgZmlyZURh
dGFNb2RpZmljYXRpb25IYW5kbGVyQW5kQ29udGludWUpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSAiI3N0ZXA3IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0
aGF0IHRoZSB0aGlyZC1wYXJ0eSBzdGlsbCBoYXMgbm8gYWNjZXNzIHRvIGNvb2tpZXMgYW5kIHRo
ZW4gZGVjbGFzc2lmeSBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaGFzaCA9ICJzdGVwOCI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5
QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9QWZ0ZXIgcmVtb3ZhbCwg
c2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4iLCBzZXRBc05vblByZXZhbGVudEFuZENvbnRpbnVl
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwOCI6Cisg
ICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgdGhpcmQtcGFydHkgc3RpbGwgaGFzIG5v
IGFjY2VzcyB0byBjb29raWVzLgorICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0
eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPUFmdGVyIGRlY2xhc3Np
ZmllZCwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4iLCBmaW5pc2hUZXN0KTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2Nh
dGlvbi5ob3N0ID09PSBwYXJ0aXRpb25Ib3N0ICYmIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09
ICIiICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNl
KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2Vl
bkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hp
bGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAi
c3RlcDEiOworCisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgIH0gZWxz
ZSB7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jb29raWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWQxMDkyZWZkZWVlNDZmYWM2ZTM2YWMwNzZkODE0ZDJi
YmU1YzdiOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlv
bi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNSBAQAorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgIAorCistLS0tLS0tLQorRnJhbWU6
ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNv
b2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQt
c2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUKKworLS0tLS0tLS0K
K0ZyYW1lOiAnPCEtLWZyYW1lMi0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBubyBjb29r
aWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitD
bGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFt
ZTMtLT4nCistLS0tLS0tLQorQWZ0ZXIgdXNlciBpbnRlcmFjdGlvbiwgc2hvdWxkIHN0aWxsIHJl
Y2VpdmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFy
dHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1h
bmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llcy13aXRoLWFuZC13aXRob3V0
LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzdhMzljNzNlOWYx
NWM2NjUwYTE3NmIzZWM5MThjMWI1ZmY2NWJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0
aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw4NCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0
PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3QgZm9yIFBhcnRpdGlvbmVkIENvb2tpZXMgV2l0aCBh
bmQgV2l0aG91dCBVc2VyIEludGVyYWN0aW9uPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cisg
ICAgY29uc3QgcGFydGl0aW9uSG9zdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhp
cmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHRoaXJk
UGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0eU9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9yZXNvdXJjZXMiOworICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVOYW1lID0gImZpcnN0UGFy
dHlDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgPSAiL3Nl
dC1jb29raWUucGhwP25hbWU9IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT12YWx1
ZSI7CisgICAgY29uc3QgZnJhZ21lbnRXaXRoUmV0dXJuVXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2Vy
LWludGVyYWN0aW9uLmh0bWwiOworICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tpZXMgPSAiL2dl
dC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWU7CisKKyAgICBmdW5j
dGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikg
eworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1l
Iik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxl
cikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAg
ICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gc2V0VXNlckludGVyYWN0aW9uQW5kQ29udGludWUoKSB7CisgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5
T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eU9yaWdpbikpCisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhpcmQgcGFydHkgZGlkIG5vdCBnZXQgbG9nZ2VkIGZv
ciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRv
Y3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsg
c3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIGZyYWdtZW50V2l0aFJldHVyblVy
bCArICIjc3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAi
I3N0ZXAyIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAz
IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0
aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29r
aWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
ICIjc3RlcDMiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3Rl
cDQiOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhp
cmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0
IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3Qp
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNo
ID0gInN0ZXA1IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJs
ICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBubyBjb29r
aWVzLiIsIHNldFVzZXJJbnRlcmFjdGlvbkFuZENvbnRpbnVlKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNSI6CisgICAgICAgICAgICAgICAgb3Blbklm
cmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9
QWZ0ZXIgdXNlciBpbnRlcmFjdGlvbiwgc2hvdWxkIHN0aWxsIHJlY2VpdmUgbm8gY29va2llcy4i
LCBmaW5pc2hUZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0K
KworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBwYXJ0aXRpb25Ib3N0ICYmIGRv
Y3VtZW50LmxvY2F0aW9uLmhhc2ggPT0gIiIgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93
LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUp
OworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1
bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFz
aCA9ICJzdGVwMSI7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJMb2NhbGhvc3Qgd2FzIGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9y
ZSB0aGUgdGVzdCBzdGFydHMuIik7CisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0p
OworICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUtY29va2llcy1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNvb2tpZXMtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjYzNDA3ZGNmM2VkZWViNjBlYzk2NDkyODUwMTQ1MWEwNTE5Mjg0NzgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNvb2tpZXMtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK0NoZWNrIHRoYXQgb25seSBIdHRwT25seSBjb29raWVz
IHJlbWFpbiBpZiBhbGwgc2NyaXB0LWFjY2Vzc2libGUgY29va2llcyBhcmUgZGVsZXRlZC4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgQmVmb3JlIHNjcmlwdC1hY2Nlc3Np
YmxlIGRlbGV0aW9uOiBDbGllbnQtc2lkZSBjb29raWUgZXhpc3RzLgorUEFTUyBCZWZvcmUgc2Ny
aXB0LWFjY2Vzc2libGUgZGVsZXRpb246IEh0dHBPbmx5IGNvb2tpZSBleGlzdHMuCitQQVNTIEJl
Zm9yZSBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogUmVndWxhciBzZXJ2ZXItc2lkZSBjb29r
aWUgZXhpc3RzLgorUEFTUyBBZnRlciBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogIEh0dHBP
bmx5IGNvb2tpZSBleGlzdHMuCitQQVNTIEFmdGVyIGZ1bGwgZGVsZXRpb246ICAgICAgICAgICAg
ICAgQWxsIGNvb2tpZXMgYXJlIGdvbmUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRh
dGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNvb2tpZXMtZGF0YWJhc2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42MGZjNTM3N2Q3ZGVlNjA0Mjk5MGJlMGMyZGJmYjc0NWFlMDVjZDU5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rl
bGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw3
MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIv
anMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0
IG9ubHkgSHR0cE9ubHkgY29va2llcyByZW1haW4gaWYgYWxsIHNjcmlwdC1hY2Nlc3NpYmxlIGNv
b2tpZXMgYXJlIGRlbGV0ZWQuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBj
b25zdCBodHRwT25seUNvb2tpZU5hbWUgPSAiaHR0cC1vbmx5LWNvb2tpZSI7CisgICAgY29uc3Qg
c2VydmVyU2lkZUNvb2tpZU5hbWUgPSAic2VydmVyLXNpZGUtY29va2llIjsKKyAgICBjb25zdCBj
bGllbnRTaWRlQ29va2llTmFtZSA9ICJjbGllbnQtc2lkZS1jb29raWUiOworCisgICAgZnVuY3Rp
b24gc29ydFN0cmluZ0FycmF5KGEsIGIpIHsKKyAgICAgICAgYSA9IGEudG9Mb3dlckNhc2UoKTsK
KyAgICAgICAgYiA9IGIudG9Mb3dlckNhc2UoKTsKKworICAgICAgICByZXR1cm4gYSA+IGIgPyAx
IDogYiA+IGEgPyAtMSA6IDA7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2hlY2tDb29raWVzKGlz
QWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24pIHsKKyAgICAgICAgbGV0IHVuc29ydGVkVGVz
dFBhc3NlZE1lc3NhZ2VzID0gW107CisgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdl
dENvb2tpZXMoKTsKKyAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoKGlzQWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24gPyAiQWZ0ZXIiIDogIkJl
Zm9yZSIpICsgIiBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogTm8gY29va2llcyBmb3VuZC4i
KTsKKyAgICAgICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAgIHN3
aXRjaCAoY29va2llLm5hbWUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIGh0dHBPbmx5Q29va2ll
TmFtZToKKyAgICAgICAgICAgICAgICAgICAgdW5zb3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMucHVz
aCgoaXNBZnRlclNjcmlwdEFjY2Vzc2libGVEZWxldGlvbiA/ICJBZnRlciIgOiAiQmVmb3JlIikg
KyAiIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiAiICsgKGlzQWZ0ZXJTY3JpcHRBY2Nlc3Np
YmxlRGVsZXRpb24gPyAiICIgOiAiIikgKyAiSHR0cE9ubHkgY29va2llIGV4aXN0cy4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBzZXJ2ZXJTaWRl
Q29va2llTmFtZToKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzQWZ0ZXJTY3JpcHRBY2Nlc3Np
YmxlRGVsZXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBZnRlciBz
Y3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogIFJlZ3VsYXIgc2VydmVyLXNpZGUgY29va2llIGV4
aXN0cy4iKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAg
ICAgdW5zb3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMucHVzaCgiQmVmb3JlIHNjcmlwdC1hY2Nlc3Np
YmxlIGRlbGV0aW9uOiBSZWd1bGFyIHNlcnZlci1zaWRlIGNvb2tpZSBleGlzdHMuIik7CisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgY2xpZW50U2lkZUNv
b2tpZU5hbWU6CisgICAgICAgICAgICAgICAgICAgIGlmIChpc0FmdGVyU2NyaXB0QWNjZXNzaWJs
ZURlbGV0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQWZ0ZXIgc2Ny
aXB0LWFjY2Vzc2libGUgZGVsZXRpb246ICBDbGllbnQtc2lkZSBjb29raWUgZXhpc3RzLiIpOwor
ICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB1bnNvcnRl
ZFRlc3RQYXNzZWRNZXNzYWdlcy5wdXNoKCJCZWZvcmUgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRp
b246IENsaWVudC1zaWRlIGNvb2tpZSBleGlzdHMuIik7CisgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGxldCBzb3J0ZWRUZXN0UGFz
c2VkTWVzc2FnZXMgPSB1bnNvcnRlZFRlc3RQYXNzZWRNZXNzYWdlcy5zb3J0KHNvcnRTdHJpbmdB
cnJheSk7CisgICAgICAgIGZvciAobGV0IHRlc3RQYXNzZWRNZXNzYWdlIG9mIHNvcnRlZFRlc3RQ
YXNzZWRNZXNzYWdlcykKKyAgICAgICAgICAgIHRlc3RQYXNzZWQodGVzdFBhc3NlZE1lc3NhZ2Up
OworICAgIH0KKworICAgIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICgh
dGVzdFJ1bm5lciB8fCAhaW50ZXJuYWxzKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyB0
ZXN0UnVubmVyIG9yIG5vIGludGVybmFscy4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAg
ICBhd2FpdCBmZXRjaCgiL2Nvb2tpZXMvcmVzb3VyY2VzL3NldC1odHRwLW9ubHktY29va2llLnBo
cD9jb29raWVOYW1lPSIgKyBodHRwT25seUNvb2tpZU5hbWUsIHsgY3JlZGVudGlhbHM6ICJzYW1l
LW9yaWdpbiIgfSk7CisgICAgICAgIGF3YWl0IGZldGNoKCIvY29va2llcy9yZXNvdXJjZXMvc2V0
Q29va2llcy5jZ2kiLCB7IGhlYWRlcnM6IHsgIlNldC1Db29raWUiOiBzZXJ2ZXJTaWRlQ29va2ll
TmFtZSArICI9MTsgcGF0aD0vOyIgfSwgY3JlZGVudGlhbHM6ICJzYW1lLW9yaWdpbiIgfSk7Cisg
ICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGNsaWVudFNpZGVDb29raWVOYW1lICsgIj0xIjsKKyAg
ICAgICAgY2hlY2tDb29raWVzKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
RGVsZXRlQ29va2llc0Zvckhvc3QoImh0dHA6Ly8xMjcuMC4wLjEiLCBmYWxzZSk7CisgICAgICAg
IGNoZWNrQ29va2llcyh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzRGVsZXRl
Q29va2llc0Zvckhvc3QoImh0dHA6Ly8xMjcuMC4wLjEiLCB0cnVlKTsKKyAgICAgICAgbGV0IGNv
b2tpZXNMZWZ0ID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKS5sZW5ndGg7CisgICAgICAgIGlmIChj
b29raWVzTGVmdCA9PT0gMCkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkFmdGVyIGZ1bGwgZGVs
ZXRpb246ICAgICAgICAgICAgICAgQWxsIGNvb2tpZXMgYXJlIGdvbmUuIik7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkFmdGVyIGZ1bGwgZGVsZXRpb246ICAgICAgICAg
ICAgICAiICsgY29va2llc0xlZnQgKyAiIGNvb2tpZShzKSBsZWZ0LiIpOworICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qt
YmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1i
bG9jay10b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRpcmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzc0MzA2MWZmMTE5ZmFkM2Y1OTdkYzE1YWUwNGI0YjhjNjkzNzk0OAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1NFRDogQ29va2llIHN1Y2Nlc3NmdWxseSBz
ZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1u
b3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kMjE5ZTNkNjg5MzJiZmYxOGM1YTAxYzU2ODRjNDRmMzcxNmZkZTgxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1s
CkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhl
YWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3Rz
IHRoYXQgYmxvY2tpbmcgaXMgbm90IGFwcGxpZWQgdG8gdG9wLWxldmVsIG5hdmlnYXRpb24gcmVk
aXJlY3RzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgaW50ZXJuYWxzLnNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworCisgICAgZnVuY3Rpb24gZG9S
ZWRpcmVjdCgpCisgICAgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRy
dWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8v
bG9jYWxob3N0IiwgdHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGlmICghdGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIp
KSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0
IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9ICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvc2V0LWNvb2tpZS1vbi1y
ZWRpcmVjdC5waHA/c3RlcD0xIjsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgnZG9SZWRpcmVj
dCgpJywgMCkiPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1jYXB0dXJlLXN0YXRpc3RpY3Mt
Zm9yLXNpbXBsZS10b3AtbmF2aWdhdGlvbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1jYXB0dXJlLXN0
YXRpc3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2aWdhdGlvbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA2OWM5MWNhZTZlYWEzYmRjYzg0NjBjNjMzN2IwMmY3ZDY0ZjI0ZmQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZG8tbm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9u
cy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdCB0aGF0IGEgbm9u
LXJlZGlyZWN0ZWQgdG9wIGZyYW1lIG5hdmlnYXRpb24gZG9lc24ndCBnZXQgY2FwdHVyZWQgaW4g
c3RhdGlzdGljcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxo
b3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0
cDovL2xvY2FsaG9zdCIpIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1jYXB0dXJlLXN0YXRpc3RpY3MtZm9yLXNpbXBs
ZS10b3AtbmF2aWdhdGlvbnMtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNzLWZvci1zaW1w
bGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjgwOTM1YTIzNzBl
ZGJkNzY5MjUxMzE5YmFjOTQ0ZjcyOGJjNzZlNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0
aXN0aWNzLWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCAr
MSw0OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8
bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9u
KCJUZXN0IHRoYXQgYSBub24tcmVkaXJlY3RlZCB0b3AgZnJhbWUgbmF2aWdhdGlvbiBkb2Vzbid0
IGdldCBjYXB0dXJlZCBpbiBzdGF0aXN0aWNzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVl
OworICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgbGV0IHRpbWVy
SGFuZGxlID0gMDsKKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIGlmICh0
aW1lckhhbmRsZSkKKyAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXJIYW5kbGUpOworCisgICAg
ICAgIHNob3VsZEJlRmFsc2UoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3Vi
RnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAg
ICAgICAgc2hvdWxkQmVGYWxzZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNT
dWJGcmFtZVVuZGVyKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOwor
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRp
b24uaG9zdCkgeworICAgICAgICAgICAgY2FzZSAiMTI3LjAuMC4xOjgwMDAiOgorICAgICAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
IkxvY2FsaG9zdCB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRo
ZSB0ZXN0IHN0YXJ0cy4iKTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aHJlZiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1u
b3QtY2FwdHVyZS1zdGF0aXN0aWNzLWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLmh0bWwiOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSAibG9jYWxob3N0OjgwMDAiOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jk
c0NhbGxiYWNrKGZpbmlzaFRlc3QpOworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5z
dGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgdGltZXJIYW5k
bGUgPSBzZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDEwMCk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlVua25v
d24gaG9zdDogIiArIGRvY3VtZW50LmxvY2F0aW9uLmhvc3QpOworICAgICAgICAgICAgICAgIGZp
bmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
ciAmJiB3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBydW5UZXN0KCk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0LWRhdGFi
YXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xYWQ3ZDllNTAwNzZiNmQxNmJiYzI2YTUwNDZlOTk2OTZkNmUw
NzY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTEgQEAKK1Rlc3RzIHRoYXQgYmxvY2tpbmcgaXMgbm90
IHJlbW92ZWQgbWlkLWZsaWdodCBpbiByZWRpcmVjdHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKyAgCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorU2hv
dWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3QuCitEaWQgbm90IHJl
Y2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llSVAnLgorUmVjZWl2ZWQgY29va2ll
IG5hbWVkICdmaXJzdFBhcnR5Q29va2llTG9jYWxob3N0Jy4KK0RpZCBub3QgcmVjZWl2ZSBjb29r
aWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2ll
OiBmaXJzdFBhcnR5Q29va2llTG9jYWxob3N0PWxvY2FsaG9zdAorCistLS0tLS0tLQorRnJhbWU6
ICc8IS0tZnJhbWUyLS0+JworLS0tLS0tLS0KK1JlZGlyZWN0IGNhc2UgMSwgc2hvdWxkIHJlY2Vp
dmUgZmlyc3QtcGFydHkgY29va2llIGZvciAxMjcuMC4wLjEuCitSZWNlaXZlZCBjb29raWUgbmFt
ZWQgJ2ZpcnN0UGFydHlDb29raWVJUCcuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdm
aXJzdFBhcnR5Q29va2llTG9jYWxob3N0Jy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQg
J3RoaXJkUGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBh
cnR5Q29va2llSVA9MTI3LjAuMC4xCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTMtLT4n
CistLS0tLS0tLQorVHJ5IHRvIHNldCB0aGlyZC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdCBp
biBibG9ja2VkIG1vZGUuCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNC0tPicKKy0t
LS0tLS0tCitTaG91bGQgcmVjZWl2ZSBubyBjb29raWUuCitEaWQgbm90IHJlY2VpdmUgY29va2ll
IG5hbWVkICdmaXJzdFBhcnR5Q29va2llSVAnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1l
ZCAnZmlyc3RQYXJ0eUNvb2tpZUxvY2FsaG9zdCcuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5h
bWVkICd0aGlyZFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKwor
LS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNS0tPicKKy0tLS0tLS0tCitSZWRpcmVjdCBjYXNl
IDIsIHNob3VsZCBub3QgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIDEyNy4wLjAuMS4K
K0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWVJUCcuCitEaWQg
bm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llTG9jYWxob3N0Jy4KK0Rp
ZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgorQ2xpZW50LXNp
ZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llSVA9MTI3LjAuMC4xCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90
LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmct
aW4tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNmQzMGFhZGVmNDU3N2I4NTI0
MjNjNmEyMzZmM2FhMzcxOWYxMDJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4t
cmVkaXJlY3QtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDEwMCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGJsb2NraW5nIGlz
IG5vdCByZW1vdmVkIG1pZC1mbGlnaHQgaW4gcmVkaXJlY3RzLiIpOworICAgIGpzVGVzdElzQXN5
bmMgPSB0cnVlOworCisgICAgY29uc3QgcGFydGl0aW9uSG9zdCA9ICIxMjcuMC4wLjE6ODAwMCI7
CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOwor
ICAgIGNvbnN0IHJlc291cmNlUGF0aCA9ICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0eU9yaWdpbiArIHJl
c291cmNlUGF0aDsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZVByZWZpeCA9ICJmaXJz
dFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZUlQID0gZmlyc3RQ
YXJ0eUNvb2tpZU5hbWVQcmVmaXggKyAiSVAiOworICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVO
YW1lTG9jYWxob3N0ID0gZmlyc3RQYXJ0eUNvb2tpZU5hbWVQcmVmaXggKyAiTG9jYWxob3N0IjsK
KyAgICBjb25zdCB0aGlyZFBhcnR5Q29va2llTmFtZSA9ICJ0aGlyZFBhcnR5Q29va2llIjsKKyAg
ICBjb25zdCBzdWJQYXRoVG9TZXRUaGlyZFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9u
YW1lPSIgKyB0aGlyZFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0
IHN1YlBhdGhUb0dldENvb2tpZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQ
YXJ0eUNvb2tpZU5hbWVJUCArICImbmFtZTI9IiArIGZpcnN0UGFydHlDb29raWVOYW1lTG9jYWxo
b3N0ICsgIiZuYW1lMz0iICsgdGhpcmRQYXJ0eUNvb2tpZU5hbWU7CisgICAgY29uc3QgcmVkaXJl
Y3RDaGFpblVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyByZXNvdXJjZVBhdGggKyAiL3JlZGlyZWN0
LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly8iICsgcGFydGl0aW9uSG9zdCArIHJlc291cmNlUGF0aCAr
IHN1YlBhdGhUb0dldENvb2tpZXM7CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25M
b2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAo
b25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5k
bGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVu
dCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChk
b2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAg
ICAgICAgICAgICAgIC8vIFNldCBmaXJzdC1wYXJ0eSBjb29raWVzIGZvciAxMjcuMC4wLjEgYW5k
IGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2lu
ID09PSB0aGlyZFBhcnR5T3JpZ2luKSB7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNv
b2tpZSA9IGZpcnN0UGFydHlDb29raWVOYW1lTG9jYWxob3N0ICsgIj1sb2NhbGhvc3Q7cGF0aD0n
LyciOworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxv
Y2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbCNzdGVwMiI7CisgICAgICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gZmlyc3RQYXJ0
eUNvb2tpZU5hbWVJUCArICI9MTI3LjAuMC4xO3BhdGg9Jy8nIjsKKyAgICAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0LWRhdGFi
YXNlLmh0bWwjc3RlcDEiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sg
dGhhdCB0aGUgY29va2llIGdldHMgc2VudCBmb3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMSBz
aW5jZSBsb2NhbGhvc3QgaXMgbm90IHByZXZhbGVudC4KKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRo
aXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQg
cmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdC4iLCBydW5UZXN0KTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAg
ICAgLy8gTG9hZCBhbiBpZnJhbWUgaW4gYSByZWRpcmVjdCBjaGFpbiB0aGF0IHN0YXJ0cyB3aXRo
IGxvY2FsaG9zdCBhbmQgZW5kcyB3aXRoIDEyNy4wLjAuMS4gRXhwZWN0IGEgY29va2llIGZvciAx
MjcuMC4wLjEuCisgICAgICAgICAgICAgICAgb3BlbklmcmFtZShyZWRpcmVjdENoYWluVXJsICsg
IiZtZXNzYWdlPVJlZGlyZWN0IGNhc2UgMSwgc2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29v
a2llIGZvciAxMjcuMC4wLjEuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAgIC8vIFNldCBsb2NhbGhv
c3QgYXMgcHJldmFsZW50IHRvIHB1dCBpdCBpbiB0aGUgYmxvY2tpbmcgY2F0ZWdvcnkuCisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNSI7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0
eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0
IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcocnVuVGVzdCk7CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDUi
OgorICAgICAgICAgICAgICAgIC8vIFRyeSB0byBzZXQgcGFydGl0aW9uZWQgY29va2llIGZvciBs
b2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xLgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0
aW9uLmhhc2ggPSAic3RlcDYiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0
eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRUaGlyZFBhcnR5Q29va2llICsgIiZtZXNzYWdlPVRyeSB0
byBzZXQgdGhpcmQtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3QgaW4gYmxvY2tlZCBtb2RlLiIs
IHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0
ZXA2IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IG5vIGNvb2tpZSBnZXRzIHNlbnQg
Zm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEgc2luY2UgbG9jYWxob3N0J3MgY29va2llcyBh
cmUgYmxvY2tlZC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0
ZXA3IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3Vi
UGF0aFRvR2V0Q29va2llcyArICAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgbm8gY29va2llLiIs
IHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0
ZXA3IjoKKyAgICAgICAgICAgICAgICAvLyBMb2FkIGFuIGlmcmFtZSBpbiBhIHJlZGlyZWN0IGNo
YWluIHRoYXQgc3RhcnRzIHdpdGggbG9jYWxob3N0IGFuZCBlbmRzIHdpdGggMTI3LjAuMC4xLiBF
eHBlY3QgYSBjb29raWUgZm9yIDEyNy4wLjAuMS4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5s
b2NhdGlvbi5oYXNoID0gInN0ZXA4IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHJlZGly
ZWN0Q2hhaW5VcmwgKyAiJm1lc3NhZ2U9UmVkaXJlY3QgY2FzZSAyLCBzaG91bGQgbm90IHJlY2Vp
dmUgZmlyc3QtcGFydHkgY29va2llIGZvciAxMjcuMC4wLjEuIiwgcnVuVGVzdCk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDgiOgorICAgICAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24u
aGFzaCA9PT0gIiIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFy
dHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3YXMgY2xh
c3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0cy4iKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAg
ICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgIHJ1blRl
c3QoKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcnVuVGVzdCgpOworICAg
IH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1v
bi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9uLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91
dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA1ZGMwOWI2
OTYzOWYxZDkwYzZjMzdjMjJlZDFiOTZmODYxYzQ0OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNl
c3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1kYXRh
YmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCB0aGUgc2Vzc2lv
biBpcyBub3Qgc3dpdGNoZWQgdXBvbiB0b3AgZnJhbWUgbmF2aWdhdGlvbiB0byBhIHByZXZhbGVu
dCByZXNvdXJjZSB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIFNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHNlc3Npb24gY29va2ll
LgorUEFTUyBTaG91bGQgaGF2ZSBhbmQgaGFzIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4KK1BBU1Mg
T3JpZ2luIGhhcyBubyBpc29sYXRlZCBzZXNzaW9uLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2
aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0
Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9u
LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmFiZmRiOWM0MmJlMjBhNzM5NjYyMjQ0ZWVkNGQ3
MzY0OGY1YzBkMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10
by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEs
MTEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxt
ZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0
PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRoZSBzZXNzaW9uIGlzIG5vdCBzd2l0Y2hl
ZCB1cG9uIHRvcCBmcmFtZSBuYXZpZ2F0aW9uIHRvIGEgcHJldmFsZW50IHJlc291cmNlIHdpdGhv
dXQgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAg
IGNvbnN0IHByZXZhbGVudE9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGNv
bnN0IG5vblByZXZhbGVudE9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNv
bnN0IHNlc3Npb25Db29raWVOYW1lID0gInNlc3Npb25Db29raWUiOworICAgIGNvbnN0IHBlcnNp
c3RlbnRDb29raWVOYW1lID0gInBlcnNpc3RlbnRDb29raWUiOworICAgIGNvbnN0IHR3b01pbnV0
ZXNJblNlY29uZHMgPSAxMjA7CisKKyAgICBmdW5jdGlvbiBzZXRTZXNzaW9uQ29va2llKCkgewor
ICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzZXNzaW9uQ29va2llTmFtZSArICI9MTsgcGF0aD0v
IjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZXRQZXJzaXN0ZW50Q29va2llKCkgeworICAgICAg
ICBkb2N1bWVudC5jb29raWUgPSBwZXJzaXN0ZW50Q29va2llTmFtZSArICI9MTsgcGF0aD0vOyBN
YXgtQWdlPSIgKyB0d29NaW51dGVzSW5TZWNvbmRzICsgIjsiOworICAgIH0KKworICAgIGZ1bmN0
aW9uIGNoZWNrQ29va2llcyhzaG91bGRIYXZlU2Vzc2lvbkNvb2tpZSwgc2hvdWxkSGF2ZVBlcnNp
c3RlbnRDb29raWUpIHsKKyAgICAgICAgbGV0IGhhc1Nlc3Npb25Db29raWUgPSAoZG9jdW1lbnQu
Y29va2llICsgIiIpLmluY2x1ZGVzKHNlc3Npb25Db29raWVOYW1lKSwKKyAgICAgICAgICAgIGhh
c1BlcnNpc3RlbnRDb29raWUgPSAoZG9jdW1lbnQuY29va2llICsgIiIpLmluY2x1ZGVzKHBlcnNp
c3RlbnRDb29raWVOYW1lKTsKKworICAgICAgICBpZiAoc2hvdWxkSGF2ZVNlc3Npb25Db29raWUg
JiYgaGFzU2Vzc2lvbkNvb2tpZSkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlNob3VsZCBoYXZl
IGFuZCBoYXMgdGhlIHNlc3Npb24gY29va2llLiIpOworICAgICAgICBlbHNlIGlmIChzaG91bGRI
YXZlU2Vzc2lvbkNvb2tpZSAmJiAhaGFzU2Vzc2lvbkNvb2tpZSkgeworICAgICAgICAgICAgdGVz
dEZhaWxlZCgiU2hvdWxkIGhhdmUgYnV0IGRvZXNuJ3QgaGF2ZSB0aGUgc2Vzc2lvbiBjb29raWUu
Iik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOwor
ICAgICAgICB9IGVsc2UgaWYgKCFzaG91bGRIYXZlU2Vzc2lvbkNvb2tpZSAmJiBoYXNTZXNzaW9u
Q29va2llKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTaG91bGRuJ3QgaGF2ZSBidXQgaGFz
IHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFs
c2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdFBhc3Nl
ZCgiU2hvdWxkbid0IGhhdmUgYW5kIGRvZXNuJ3QgaGF2ZSB0aGUgc2Vzc2lvbiBjb29raWUuIik7
CisKKworICAgICAgICBpZiAoc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29raWUgJiYgaGFzUGVyc2lz
dGVudENvb2tpZSkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlNob3VsZCBoYXZlIGFuZCBoYXMg
dGhlIHBlcnNpc3RlbnQgY29va2llLiIpOworICAgICAgICBlbHNlIGlmIChzaG91bGRIYXZlUGVy
c2lzdGVudENvb2tpZSAmJiAhaGFzUGVyc2lzdGVudENvb2tpZSkgeworICAgICAgICAgICAgdGVz
dEZhaWxlZCgiU2hvdWxkIGhhdmUgYnV0IGRvZXNuJ3QgaGF2ZSB0aGUgcGVyc2lzdGVudCBjb29r
aWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgICAgICB9IGVsc2UgaWYgKCFzaG91bGRIYXZlUGVyc2lzdGVudENvb2tpZSAmJiBoYXNQ
ZXJzaXN0ZW50Q29va2llKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTaG91bGRuJ3QgaGF2
ZSBidXQgaGFzIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsKKyAgICAgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiU2hvdWxkbid0IGhhdmUgYW5kIGRvZXNuJ3QgaGF2ZSB0aGUgcGVyc2lz
dGVudCBjb29raWUuIik7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAg
ICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIj
c3RlcDEiOgorICAgICAgICAgICAgICAgIHNldFNlc3Npb25Db29raWUoKTsKKyAgICAgICAgICAg
ICAgICBzZXRQZXJzaXN0ZW50Q29va2llKCk7CisgICAgICAgICAgICAgICAgY2hlY2tDb29raWVz
KHRydWUsIHRydWUpOworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmhhc1N0YXRpc3Rp
Y3NJc29sYXRlZFNlc3Npb24ocHJldmFsZW50T3JpZ2luKSkgeworICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJPcmlnaW4gaGFzIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAgICAgICAg
ICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAg
ICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIk9yaWdpbiBo
YXMgbm8gaXNvbGF0ZWQgc2Vzc2lvbi4iKTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2Nh
dGlvbi5ocmVmID0gbm9uUHJldmFsZW50T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0
LWludGVyYWN0aW9uLmh0bWwjc3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5o
YXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3Jp
Z2luICE9PSBub25QcmV2YWxlbnRPcmlnaW4pCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIlN0ZXAgMiBpcyBub3Qgb24gIiArIG5vblByZXZhbGVudE9yaWdpbiArICIuIik7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJl
dmFsZW50T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudE9yaWdp
bikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQocHJldmFsZW50T3JpZ2lu
ICsgIiBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHByZXZhbGVudE9yaWdpbiArICIv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlv
bi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi5odG1sI3N0ZXA0IjsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAg
ICAgY2hlY2tDb29raWVzKHRydWUsIHRydWUpOworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVu
bmVyLmhhc1N0YXRpc3RpY3NJc29sYXRlZFNlc3Npb24ocHJldmFsZW50T3JpZ2luKSkKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3JpZ2luIGhhcyBpc29sYXRlZCBzZXNzaW9uLiIp
OworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgi
T3JpZ2luIGhhcyBubyBpc29sYXRlZCBzZXNzaW9uLiIpOworICAgICAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlVua25v
d24gaGFzaC4iKTsKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5p
c2hKU1Rlc3QpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9u
Lmhhc2ggPT09ICIiKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gIT09
IHByZXZhbGVudE9yaWdpbikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRlc3QgaXMgbm90IHN0
YXJ0aW5nIG91dCBvbiAiICsgcHJldmFsZW50T3JpZ2luICsgIi4iKTsKKyAgICAgICAgICAgIAor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBpZiAodGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRPcmlnaW4pKQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQocHJldmFsZW50T3JpZ2luICsgIiB3YXMgY2xhc3Np
ZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0cy4iKTsKKyAg
ICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEiOworICAgICAgICB9KTsK
KyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVy
LWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1k
YXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmst
cXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjBmYmE4MTAzNWUyZmVjYmExMzk0ZDAxZGYyZTliZTIwNjk1ZTg1YTUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
ZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1w
cmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAK
K0NoZWNrIHRoYXQgZG9jdW1lbnQucmVmZXJyZXIgaXMgZG93bmdyYWRlZCB0byB0aGUgZVRMRCsx
IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBxdWVyeS4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHJlZmVycmVyIGlzIGRvd25ncmFkZWQu
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rv
d25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJl
dmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13
aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45YWViZGU5NWJlOGEwNTJhZmYzNjc5YzA2ODg1YWUxNzAyZTFkNzU0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20t
cHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9jb29raWVzL3Jl
c291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRU
aW1lb3V0KCdydW5UZXN0KCknLCAwKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJDaGVj
ayB0aGF0IGRvY3VtZW50LnJlZmVycmVyIGlzIGRvd25ncmFkZWQgdG8gdGhlIGVUTEQrMSBhZnRl
ciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVlcnkuIik7CisgICAganNUZXN0
SXNBc3luYyA9IHRydWU7CisKKyAgICBsZXQgbnVtYmVyT2ZUcmllcyA9IDA7CisgICAgZnVuY3Rp
b24gdGVzdFJlZmVycmVyKCkgeworICAgICAgICBpZiAoZG9jdW1lbnQucmVmZXJyZXIgPT09IHBy
ZXZhbGVudFJlc291cmNlT3JpZ2luICsgIi8iKSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJU
aGUgcmVmZXJyZXIgaXMgZG93bmdyYWRlZC4iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0gZWxzZSBpZiAoKytudW1iZXJPZlRy
aWVzIDw9IDUpCisgICAgICAgICAgICBzZXRUaW1lb3V0KHRlc3RSZWZlcnJlciwgMjAwKTsKKyAg
ICAgICAgZWxzZSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJUaGUgcmVmZXJyZXIgaXMgbm90
IGRvd25ncmFkZWQ6ICIgKyBkb2N1bWVudC5yZWZlcnJlcik7CisgICAgICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisgICAgfQorCisgICAg
ZnVuY3Rpb24gbmF2aWdhdGVTYW1lT3JpZ2luVG9BZGRRdWVyeSgpIHsKKyAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaHJlZiA9IHByZXZhbGVudFJlc291cmNlT3JpZ2luICsgIi9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5r
LXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWw/bGluaz1xdWVyeSI7CisgICAgfQor
CisgICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQu
bG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZy
b20tcHJldmFsZW50LXJlc291cmNlLmh0bWwiOworICAgIH0KKworICAgIGNvbnN0IGRlc3RpbmF0
aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgcHJldmFsZW50
UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBmdW5jdGlvbiBy
dW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luID09PSBwcmV2
YWxlbnRSZXNvdXJjZU9yaWdpbiAmJiBkb2N1bWVudC5sb2NhdGlvbi5zZWFyY2ggPT09ICIiKSB7
CisgICAgICAgICAgICBuYXZpZ2F0ZVNhbWVPcmlnaW5Ub0FkZFF1ZXJ5KCk7CisgICAgICAgIH0g
ZWxzZSBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luID09PSBwcmV2YWxlbnRSZXNvdXJjZU9y
aWdpbikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsK
KyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZh
bGVudFJlc291cmNlT3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVu
dFJlc291cmNlT3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcobmF2aWdh
dGVDcm9zc09yaWdpbik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RSZWZlcnJlcigpOworICAgICAgICB9Cisg
ICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5hYmxlLWRlYnVnLW1vZGUtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42NTIxOWRkM2IxMWYyYTM0YzQ1NzUzNDBlNzM4ZGFkY2ZhMGNjZmNjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Vu
YWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitU
ZXN0IGZvciBlbmFibGluZyBkZWJ1ZyBtb2RlIGFuZCB0aGF0IGl0IHBlcm1hbmVudGx5IHRyZWF0
cyAzcmRwYXJ0eXRlc3R3ZWJraXQub3JnIGFzIGEgcHJldmFsZW50IHJlc291cmNlLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBodHRwOi8vM3JkcGFydHl0ZXN0d2Via2l0
Lm9yZyBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZSBpbiBkZWJ1ZyBtb2RlLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmFibGUtZGVi
dWctbW9kZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjM3ZmY5MjI1NjdmOWE0NzI4MjczZGZhNDczMjYzN2E0ODVjYjlmNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmFibGUt
ZGVidWctbW9kZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgZW5hYmxpbmcgZGVi
dWcgbW9kZSBhbmQgdGhhdCBpdCBwZXJtYW5lbnRseSB0cmVhdHMgM3JkcGFydHl0ZXN0d2Via2l0
Lm9yZyBhcyBhIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovLzNyZHBhcnR5dGVzdHdl
YmtpdC5vcmciOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5h
bHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4p
KQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQodGhpcmRQYXJ0eU9yaWdpbiArICIgYWxyZWFk
eSBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFy
dHlPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKHRoaXJkUGFydHlPcmln
aW4gKyAiIGRpZG4ndCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQodGhpcmRQYXJ0eU9y
aWdpbiArICIgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgaW4gZGVidWcgbW9kZS4iKTsK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUoZmFsc2Us
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0
aGVyaW5nLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDE4MDNiZmNiNTNiMTQwNDlkNWUxZGFhZTViMjViNjI3ZmFjZTVhNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBA
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1Mg
R3JhbmRmYXRoZXJlZCBjb29raWUgd2FzIG5vdCBwdXJnZWQuCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1k
YXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWFmMGI4NTdmMmU4
YzA3NDFhNWE1Y2M4NGE3ODk4N2QzYzVjODVmNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRh
YmFzZS5odG1sCkBAIC0wLDAgKzEsMTE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9
ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVz
dCBmb3IgR3JhbmRmYXRoZXJpbmc8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25z
dCBmaXJzdFBhcnR5T3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3Qg
Zmlyc3RQYXJ0eUJhc2VVcmwgPSBmaXJzdFBhcnR5T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgPSAiZmly
c3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUNvb2tpZU5hbWUgPSAidGhpcmRQ
YXJ0eUNvb2tpZSI7CisgICAgY29uc3QgY29va2llVmFsdWUgPSAidmFsdWUiOworICAgIGNvbnN0
IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiAr
IGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT0iICsgY29va2llVmFsdWU7CisgICAgY29u
c3QgcmV0dXJuVXJsID0gZmlyc3RQYXJ0eU9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ncmFuZGZhdGhlcmluZy5odG1sIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGly
ZFBhcnR5T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAg
Y29uc3Qgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFt
ZT0iICsgdGhpcmRQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPSIgKyBjb29raWVWYWx1ZTsKKwor
ICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQ
RGF0YWJhc2UoZmFsc2UpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBmaXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXJBbmRDb250
aW51ZSgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRh
UmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcnVuVGVzdCgpOworICAg
ICAgICB9KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NB
bmREYXRhUmVjb3JkcygpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNsZWFySW5NZW1vcnlBbmRQ
ZXJzaXN0ZW50U3RvcmVBbmRDb250aW51ZSgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZShmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIHJ1blRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAg
ICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgIC8vIFNldCBhIGZpcnN0LXBhcnR5
IGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9u
LmhyZWYgPSBmaXJzdFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUg
KyAiIyIgKyByZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBsb2NhbGhv
c3QncyBjb29raWUgaXMgdGhlcmUuCisgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tp
ZSAhPT0gZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiPSIgKyBjb29raWVWYWx1ZSkKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiRmlyc3QtcGFydHkgY29va2llIG5vdCBzZXQuIik7Cisg
ICAgICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSAiI3N0ZXAzIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5o
YXNoID0gInN0ZXA0IjsKKyAgICAgICAgICAgICAgICAvLyBDbGVhciBzdG9yZSB0byB0cmlnZ2Vy
IGdyYW5kZmF0aGVyaW5nLgorICAgICAgICAgICAgICAgIGNsZWFySW5NZW1vcnlBbmRQZXJzaXN0
ZW50U3RvcmVBbmRDb250aW51ZSgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNo
ID0gInN0ZXA1IjsKKyAgICAgICAgICAgICAgICAvLyBTZXQgbG9jYWxob3N0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4KKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIsIHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkxvY2FsaG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIp
OworICAgICAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDUiOgorICAgICAg
ICAgICAgICAgIC8vIFNldCBhIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgMTI3LjAuMC4xLgorICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFzZVVybCAr
IHN1YlBhdGhUb1NldFRoaXJkUGFydHlDb29raWUgKyAiIyIgKyByZXR1cm5VcmwgKyAiI3N0ZXA2
IjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNiI6Cisg
ICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNyI7CisgICAgICAg
ICAgICAgICAgLy8gU2V0IDEyNy4wLjAuMSBhcyBwcmV2YWxlbnQgcmVzb3VyY2UKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDov
LzEyNy4wLjAuMSIsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAo
IXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly8xMjcuMC4w
LjEiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIjEyNy4wLjAuMSBkaWQg
bm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAg
ICBydW5UZXN0KCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlICIjc3RlcDciOgorICAgICAgICAgICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2ggPSAic3RlcDgiOworICAgICAgICAgICAgICAgIC8vIFRyaWdnZXIgYSBwdXJn
ZS4KKyAgICAgICAgICAgICAgICBmaXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXJBbmRDb250aW51
ZSgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA4IjoK
KyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IGxvY2FsaG9zdCdzIGNvb2tpZSBpcyBzdGls
bCB0aGVyZS4KKyAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSBmaXJzdFBh
cnR5Q29va2llTmFtZSArICI9IiArIGNvb2tpZVZhbHVlKQorICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJGaXJzdC1wYXJ0eSBjb29raWUgcHVyZ2VkLiIpOworICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiR3JhbmRmYXRoZXJlZCBjb29r
aWUgd2FzIG5vdCBwdXJnZWQuIik7CisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJTaG91bGQgbm90IGJlIHJlYWNoZWQuIik7CisgICAgICAgICAgICAgICAg
ZmluaXNoVGVzdCgpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0
aW9uLmhhc2ggPT09ICIiICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNS
ZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmlt
dW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKworICAgICAgICAgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZy
YW1lc0FzVGV4dCgpOworICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVw
MSI7CisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgIH0gZWxzZQorICAg
ICAgICBydW5UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9sb2ctY3Jvc3Mt
c2l0ZS1sb2FkLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbG9nLWNyb3NzLXNpdGUtbG9hZC13aXRoLWxpbmst
ZGVjb3JhdGlvbi5odG1sCmluZGV4IGM2Y2IwZGJhMDU2YzE5MWFiOTRlYWIzN2IzZGYxM2UyY2I5
ZThmMTkuLmZjYzgyYzU2NTY4MjhkZjA1YWNiYzIzYWI4MGVlMDY0YmEwYTc4ZmYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9sb2ctY3Jv
c3Mtc2l0ZS1sb2FkLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xvZy1jcm9zcy1zaXRlLWxvYWQtd2l0
aC1saW5rLWRlY29yYXRpb24uaHRtbApAQCAtOCw2ICs4LDcgQEAKIDxkaXYgaWQ9Im91dHB1dCI+
PC9kaXY+CiA8c2NyaXB0PgogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0
ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKGZhbHNlKTsKICAgICAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4OWY4NTVhNzg5Y2YxMGJmMzMwZjRjOTJlYTEyYjk0
MWFiZWZjMDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJh
Y3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIENvb2tpZSBub3QgZGVs
ZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRh
dGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kOTdlODBmZDY2NGVlMWVhODAzOGQ5ZTg3MmM3Mzk1NzI5MGY1MTFm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRh
dGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5n
PSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRl
c3RzIGZvciBOb24tUHJldmFsZW50IFJlc291cmNlIFdpdGggVXNlciBJbnRlcmFjdGlvbjwvdGl0
bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAu
MC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5k
ZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCBvdGhlclByZXZhbGVudFVybCA9ICJodHRwOi8v
bG9jYWxob3N0OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgp
IHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJkb2N1bWVudC5jb29raWUgbm90IGVtcHR5LiIpOworICAgICAgICBjb25zdCBjb29r
aWUgPSAidGVzdENvb2tpZT10ZXN0VmFsdWUiOworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBj
b29raWUgKyAiOyBtYXgtYWdlPTEwMDsiOworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9
PSBjb29raWUpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgZGlkIG5v
dCBnZXQgc2V0LiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFz
IG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgZG9u
ZSB0byBub3QgaGF2ZSBhbiBlbXB0eSBzZXQgb2YgcHJldmFsZW50IHJlc291cmNlcy4KKyAgICAg
ICAgICAgIC8vIE90aGVyd2lzZSBkYXRhIHJlY29yZHMgYXJlIG5ldmVyIHNjYW5uZWQuCisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclBy
ZXZhbGVudFVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsKSkK
KyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3RoZXIgaG9zdCBkaWQgbm90IGdldCBz
ZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIHRydWUs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIg
aW50ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxs
U3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSA9PT0gY29va2llKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvb2tpZSBub3QgZGVsZXRlZC4iKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJDb29raWUgZGVsZXRlZCBvciBkb2N1bWVudC5jb29raWUgY29udGFpbnMg
b3RoZXIgY29va2llczogIiArIGRvY3VtZW50LmNvb2tpZSk7CisKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURh
dGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NB
bmREYXRhUmVjb3JkcygpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBo
b3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQ
YWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAgcnVuVGVz
dFJ1bm5lclRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24t
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0
aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODlmODU1YTc4OWNmMTBiZjMz
MGY0YzkyZWExMmI5NDFhYmVmYzA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0
aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUg
QEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFT
UyBDb29raWUgbm90IGRlbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQt
dXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2Vy
LWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmJjZTk5MDQ1ZjBhM2VjY2Ri
YWQxODc4N2VlZDhmZmY2NjU3ZmY2NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdp
dGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNl
dD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgTm9uLVByZXZhbGVudCBSZXNvdXJjZSBX
aXRob3V0IFVzZXIgSW50ZXJhY3Rpb248L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBj
b25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0
aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3Qg
b3RoZXJQcmV2YWxlbnRVcmwgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3RlbXAiOworCisgICAg
ZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29r
aWUgIT09ICIiKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIG5vdCBl
bXB0eS4iKTsKKyAgICAgICAgY29uc3QgY29va2llID0gInRlc3RDb29raWU9dGVzdFZhbHVlIjsK
KyAgICAgICAgZG9jdW1lbnQuY29va2llID0gY29va2llICsgIjsgbWF4LWFnZT0xMDA7IjsKKyAg
ICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gY29va2llKQorICAgICAgICAgICAgdGVzdEZh
aWxlZCgiZG9jdW1lbnQuY29va2llIGRpZCBub3QgZ2V0IHNldC4iKTsKKworICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxz
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOwor
CisgICAgICAgICAgICAvLyBUaGlzIGlzIGRvbmUgdG8gbm90IGhhdmUgYW4gZW1wdHkgc2V0IG9m
IHByZXZhbGVudCByZXNvdXJjZXMuCisgICAgICAgICAgICAvLyBPdGhlcndpc2UgZGF0YSByZWNv
cmRzIGFyZSBuZXZlciBzY2FubmVkLgorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2Uob3RoZXJQcmV2YWxlbnRVcmwsIHRydWUsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShvdGhlclByZXZhbGVudFVybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIk90aGVyIGhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbihzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
ZGlkIG5vdCBnZXQgY2xlYXJlZCBvZiB1c2VyIGludGVyYWN0aW9uLiIpOworCisgICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHND
YWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVu
dC5jb29raWUgPT09IGNvb2tpZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJDb29raWUgbm90IGRlbGV0ZWQuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIGRlbGV0ZWQg
b3IgZG9jdW1lbnQuY29va2llIGNvbnRhaW5zIG90aGVyIGNvb2tpZXM6ICIgKyBkb2N1bWVudC5j
b29raWUpOworCisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hv
dWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAg
ICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdl
ZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAo
ZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1
bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQ
RGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5l
ZCh0cnVlKTsKKyAgICAgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgICAgIH0pOwor
ICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3Vy
Y2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJk
LXBhcnR5LWNvbnRleHQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmYjk3Zjkx
ZmNkMzNjYzk3ODk3OWNkNDhhNTVhNDk0NzRkMjc3MTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1y
ZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1kYXRh
YmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZy
YW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBvbmUgY29va2llLgorUmVjZWl2ZWQg
Y29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNv
b2tpZTogZmlyc3RQYXJ0eUNvb2tpZT12YWx1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNh
bi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2UuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFs
ZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0
LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzY0Y2ZjYjFmM2UzNzIwZmNhMjIzYzQyZDg3OGMy
NWE5NjYyMjliZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNv
b2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2
NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0
YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3QgdG8gZW5zdXJlIG5vbi1wcmV2YWxl
bnQgcmVzb3VyY2VzIGNhbiBhY2Nlc3MgdGhlaXIgY29va2llcyBpbiBhIHRoaXJkIHBhcnR5IGNv
bnRleHQ8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBwYXJ0aXRpb25Ib3N0
ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBh
cnR5T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29u
c3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3Qg
c3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsg
Zmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCBmcmFnbWVu
dFdpdGhSZXR1cm5VcmwgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhp
cmQtcGFydHktY29udGV4dC5odG1sIjsKKyAgICBjb25zdCBzdWJQYXRoVG9HZXRDb29raWVzID0g
Ii9nZXQtY29va2llcy5waHA/bmFtZTE9IiArIGZpcnN0UGFydHlDb29raWVOYW1lOworCisgICAg
ZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAg
ICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhhbmRs
ZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlm
cmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9hZEhh
bmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsKKyAg
ICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQu
bG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAg
ICAgICAvLyBTZXQgYSBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdC4KKyAgICAgICAg
ICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQ
YXRoVG9TZXRGaXJzdFBhcnR5Q29va2llICsgIiMiICsgZnJhZ21lbnRXaXRoUmV0dXJuVXJsICsg
IiNzdGVwMiI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3Rl
cDIiOgorICAgICAgICAgICAgICAgIC8vIExvYWQgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMSBh
bmQgY2hlY2sgdGhhdCBpdCBnZXRzIGl0cyBjb29raWUuCisgICAgICAgICAgICAgICAgb3Blbklm
cmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9
U2hvdWxkIHJlY2VpdmUgb25lIGNvb2tpZS4iLCBmaW5pc2hUZXN0KTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5o
b3N0ID09PSBwYXJ0aXRpb25Ib3N0ICYmIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT0gIiIgJiYg
d2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVu
bmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4s
IGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eU9yaWdpbiwgZmFsc2UsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0
ZXAxIjsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29v
a2llQmxvY2tpbmcocnVuVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcnVuVGVzdCgpOworICAgIH0K
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGly
ZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJh
bWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44NjNjNzIwMmIwM2U3NzBkNmU0NDZmYjZmMzQwMGZiMzhjNTlmNTMwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1k
YXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVj
dHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3
LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlz
IHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGlu
Z1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmI1YmRhNmY5ZjFiY2ViZjQ4OTQ1NWJlY2U0ODVmNWNlY2QxZjYwOWMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlw
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMg
Zm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAg
ICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24g
ZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlz
aEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hh
aW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisg
ICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAo
ZXZlbnQub3JpZ2luID09PSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIikgeworICAgICAgICAgICAg
ICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAg
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1l
c3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAg
ICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAg
ICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlm
eU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkg
eworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lz
dGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAu
MSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3
LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6
Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAg
ICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAg
ICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2so
Y2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRvPWh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVj
dC5waHAvP3JlZGlyZWN0VG89aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcmVzb3VyY2VzL2lmcmFtZS1yZXBvcnQtYmFjay1sb2FkZWQuaHRtbCI+Cis8L2lmcmFt
ZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2Nh
bGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44NjNjNzIwMmIwM2U3NzBkNmU0NDZmYjZmMzQwMGZiMzhjNTlmNTMw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10
by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3Rz
IHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHBy
b3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3Qi
LCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8x
MjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJl
ZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0Iikg
aXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9j
YWxob3N0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlw
LXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiNWVlOTkzNzA0MTA1MmRj
MjZlOGY2YTU4NjlhMjIxMzIwMDNhMzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVk
aXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAg
KzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAg
ZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZy
YW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVz
c2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisK
KyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAg
ICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZl
TWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRl
eE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50
LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3Rl
ZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAgICAgICBsYXN0UGFnZUluUmVk
aXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVja2VkKQor
ICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNob3VsZEJl
VHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJo
dHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hv
dWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5n
VG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAg
ICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJl
Y3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsKKworICAg
ICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0UGFnZUlu
UmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAg
ICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
dHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2Fs
bGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIDwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAw
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocC8/cmVkaXJlY3RU
bz1odHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMv
cmVkaXJlY3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3Jlc291cmNlcy9pZnJhbWUtcmVwb3J0LWJhY2stbG9hZGVkLmh0bWwiPgor
PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFt
ZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1p
cC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOWI1MTZmMTMyZjlmYjEwMTM2ODIyNjNjNmYyYzgxMGI3ZmFm
OWQ4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRi
b3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24t
c2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291
bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9j
YWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJo
dHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1Jl
Z2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2Fs
aG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94
ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94
ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10
by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDljYTU5MDFkYjgw
ZTBkZDAyYzIwNTIwMzNjMTU3ZGRkMzZlMzFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGlu
Zy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhv
c3QtdG8taXAtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJl
ZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJv
eGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3lu
YyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVj
ZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewor
ICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAg
ICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNl
OworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24g
cmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRh
dGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVu
ZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBh
Z2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hl
Y2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBz
aG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVV
bmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRp
cmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7
CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFz
dFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgp
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7Cisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVj
b3Jkc0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAg
ICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9wYWdlLXdpdGgtbm9uLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLmh0bWwiPgorPC9p
ZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13
aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2Nh
bGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24t
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRh
dGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjUxNmYxMzJmOWZiMTAxMzY4MjI2M2M2
ZjJjODEwYjdmYWY5ZDhmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0
aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxo
b3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJl
ZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJv
eGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFt
ZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQ
QVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0
cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4w
LjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFt
ZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1s
b2NhbGhvc3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRi
b3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFz
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjMxZTMzZjY2N2RhMzU5ZjNhODJiZjNjMGMzMTBkMzRlYzM3NWIz
NGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94
ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2Uu
aHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24t
c2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291
bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAg
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNl
KTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIHZh
ciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3Rh
dHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZl
bnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vbG9jYWxob3N0
OjgwMDAiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIp
ID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxh
Y2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAi
ICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5M
b2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAg
ICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAg
IGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2Fs
aG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgn
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8v
bG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVU
cnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0
dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0
YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hh
aW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisKKyAg
ICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQ
RGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBh
Z2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNoZWNr
U3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3Jlc291cmNlcy9wYWdlLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVk
aXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC5odG1sIj4KKzwvaWZyYW1lPgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94
ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3Qt
aXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
MTVjODVlYjQ3ZTBmMDg0MTZlNjFmZDAxNWZkN2FlM2NiODY2YjY5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5k
Ym94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRv
LWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAor
VGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBu
b24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVk
QXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBp
cyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3Rp
bmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFT
UyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6
Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0
aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0
LXRvLWlwLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTczOGVhM2I1OWEwYTcwNzQzZDM0NWRmMDUyZWE2MjlkMmY2YjkzZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVj
dC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9u
KCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBh
IG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1l
c3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlz
aFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rl
c3QpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9h
ZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAg
ICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50
Lm9yaWdpbiA9PT0gIm51bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5k
ZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVu
dC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0
ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJl
ZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkK
KyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAg
fQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRC
ZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigi
aHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNo
b3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGlu
Z1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAg
ICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGly
ZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAg
ICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJ
blJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAg
ICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0Nh
bGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9wYWdlLXdpdGgtc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAuaHRtbCI+Cis8L2lmcmFtZT4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43MTVjODVlYjQ3ZTBmMDg0MTZlNjFmZDAxNWZkN2FlM2NiODY2YjY5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hl
ZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJv
cGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIs
ICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEy
Ny4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVk
QXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBp
cyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5l
c3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8t
aXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTdmYWYwMGE4ZmQ3MmYx
NDRlYWFlZWU0YTdkMmQwY2I0OWI4ZDk5NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3Rpbmct
aWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8t
bG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBy
ZWRpcmVjdHMgZm9yIGEgc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJveGVk
IGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9
IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2
ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAg
fQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOwor
ICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVj
ZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJu
dWxsIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9
PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNl
KCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiAr
IGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9h
ZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAg
ICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhv
c3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xv
Y2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1
ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRw
Oi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0
c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWlu
TG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERh
dGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdl
c1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0
YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9yZXNvdXJjZXMvcGFnZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3Qt
bG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRv
LXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQ5
YmZiOTBjYzFhYzVmOTMxNWRkZjA5Y2Q0YjkzMWM5OGI3NDdlZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXBy
ZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNCBAQAor
VGVzdHMgdGhhdCBjb29raWUgYmxvY2tpbmcgaXMgYXBwbGllZCB0byBwaW5nIGxvYWRzLgorICAg
CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorU2hvdWxkIHJl
Y2VpdmUgZmlyc3QtcGFydHkgY29va2llLgorUmVjZWl2ZWQgY29va2llIG5hbWVkICdmaXJzdFBh
cnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQYXJ0eUNvb2tp
ZT12YWx1ZQorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUyLS0+JworLS0tLS0tLS0KK1No
b3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdm
aXJzdFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0t
LS0KK0ZyYW1lOiAnPCEtLWZyYW1lMy0tPicKKy0tLS0tLS0tCitQaW5nIHJlY2VpdmVkLgorSFRU
UF9IT1NUOiBsb2NhbGhvc3Q6ODAwMAorUkVRVUVTVF9VUkk6IC9jb250ZW50ZXh0ZW5zaW9ucy9y
ZXNvdXJjZXMvc2F2ZS1waW5nLnBocD90ZXN0PXBpbmctdG8tcHJldmFsZW50LXJlc291cmNlCitO
byBjb29raWVzIGluIHBpbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5n
LXRvLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2MjEyODEx
NThmZDM3ZWFlZGQwYzU0ZWFiMWU0NzM4ZTkwYTY1ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1wcmV2YWxl
bnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDEwMCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+
CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IGNvb2tpZSBibG9j
a2luZyBpcyBhcHBsaWVkIHRvIHBpbmcgbG9hZHMuPC9kaXY+Cis8YSBpZD0idGFyZ2V0TGluayIg
aHJlZj0iIyIgcGluZz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL2NvbnRlbnRleHRlbnNpb25zL3Jl
c291cmNlcy9zYXZlLXBpbmcucGhwP3Rlc3Q9cGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UiPlRo
ZSBsaW5rPC9hPgorPHNjcmlwdD4KKyAgICBpZiAodGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICBjb25zdCBwYXJ0aXRpb25Ib3N0ID0gIjEyNy4w
LjAuMTo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCI7CisgICAgY29uc3QgcmVzb3VyY2VQYXRoID0gIi9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5
T3JpZ2luICsgcmVzb3VyY2VQYXRoOworICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVOYW1lID0g
ImZpcnN0UGFydHlDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29r
aWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZ2
YWx1ZT12YWx1ZSI7CisgICAgY29uc3QgcmV0dXJuVXJsID0gImh0dHA6Ly8iICsgcGFydGl0aW9u
SG9zdCArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZhbGVudC1yZXNvdXJj
ZS5odG1sIjsKKyAgICBjb25zdCBzdWJQYXRoVG9HZXRDb29raWVzID0gIi9nZXQtY29va2llcy5w
aHA/bmFtZTE9IiArIGZpcnN0UGFydHlDb29raWVOYW1lOworCisgICAgZnVuY3Rpb24gYWN0aXZh
dGVFbGVtZW50KGVsZW1lbnRJRCwgY2FsbGJhY2spIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOworICAgICAgICB2YXIgY2VudGVyWCA9
IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICB2
YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAy
OworICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisg
ICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAgICAg
ICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAg
ICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAg
ICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsKKyAgICAgICAgfQorICAg
ICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIH0KKworICAgIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFz
aCkgeworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAgICAvLyBTZXQg
Zmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0Rmlyc3RQ
YXJ0eUNvb2tpZSArICIjIiArIHJldHVyblVybCArICIjc3RlcDIiOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICAvLyBD
aGVjayB0aGF0IHRoZSBjb29raWUgZ2V0cyBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAu
MC4xIHNpbmNlIGxvY2FsaG9zdCBpcyBub3QgcHJldmFsZW50LgorICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAgICAgICAgICAgIG9wZW5JZnJh
bWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNo
b3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAg
Ly8gU2V0IGxvY2FsaG9zdCBhcyBwcmV2YWxlbnQgdG8gcHV0IGl0IGluIHRoZSBibG9ja2luZyBj
YXRlZ29yeS4KKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcocnVu
VGVzdCk7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3Rl
cDQiOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IG5vIGNv
b2tpZSBnZXRzIHNlbnQgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEgc2luY2UgbG9jYWxo
b3N0J3MgY29va2llcyBhcmUgYmxvY2tlZC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2Nh
dGlvbi5oYXNoID0gInN0ZXA1IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFy
dHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICAiJm1lc3NhZ2U9U2hvdWxkIHJlY2Vp
dmUgbm8gY29va2llcy4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgIiNzdGVwNSI6CisgICAgICAgICAgICAgICAgLy8gQ2xpY2sgdGhlIGxpbmsg
dG8gdHJpZ2dlciB0aGUgcGluZy4KKyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRh
cmdldExpbmsiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0
aGlyZFBhcnR5T3JpZ2luICsgIi9jb250ZW50ZXh0ZW5zaW9ucy9yZXNvdXJjZXMvZ2V0LXBpbmct
ZGF0YS5waHA/dGVzdD1waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZSIsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICBmZXRjaCgiL2NvbnRlbnRleHRlbnNpb25zL3Jlc291cmNlcy9kZWxldGUtcGluZy5waHA/dGVz
dD1waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZSIpLnRoZW4oKCk9PnsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggPT09ICIiKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRlc3Qo
KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3Vy
Y2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxl
ZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGUzMmM1OTNkZTEw
ZDU3NzM3MTAxMzU3MWRkMzQ4ZjUzODUxOTZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1o
YW5kbGVkLWtleWRvd24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rl
c3RzIHRoYXQgd2UgZ3JhbnQgVXNlciBJbnRlcmFjdGlvbiBjcmVkaXQgZm9yIGhhbmRsZWQga2V5
cHJlc3Nlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1NpbXVsYXRlIHVzZXIg
dHlwaW5nIGxldHRlciAnYScgaW50byB0aGUgZmllbGQuCitQQVNTIHRlc3RJbnB1dC52YWx1ZSBp
cyAiYSIKK1BBU1MgT3JpZ2luIHdhcyBncmFudGVkIHVzZXIgaW50ZXJhY3Rpb24uCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQt
cmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQt
a2V5ZG93bi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlNTZhNTBjY2M4NGY4MGExNzVkZjQ2
N2ZmNzg4OTRjZTdiNTE5ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5
ZG93bi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgd2UgZ3JhbnQgVXNl
ciBJbnRlcmFjdGlvbiBjcmVkaXQgZm9yIGhhbmRsZWQga2V5cHJlc3Nlcy4iKTsKK2pzVGVzdElz
QXN5bmMgPSB0cnVlOworCitjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC90ZW1wIjsKKworb25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgY29uc3QgdGVzdEZyYW1l
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIpOworCisgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgIH0KKwor
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRp
c3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsZWFyZWQgb2YgdXNlciBp
bnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgdGVzdElucHV0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRlc3RJbnB1dCIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxT
dGF0aXN0aWNzRGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRlc3RJbnB1dC52YWx1ZSIsICJhIik7
CisKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJPcmlnaW4gZGlkIG5vdCBnZXQgdXNlciBpbnRlcmFjdGlvbiBjcmVkaXQuIik7CisgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPcmlnaW4g
d2FzIGdyYW50ZWQgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGcmFtZS5zcmMgPSAi
YWJvdXQ6YmxhbmsiOworICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0Nv
bnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJj
ZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRh
UmVjb3JkcygpOworCisgICAgICAgICAgICBkZWJ1ZygiU2ltdWxhdGUgdXNlciB0eXBpbmcgbGV0
dGVyICdhJyBpbnRvIHRoZSBmaWVsZC4iKTsKKyAgICAgICAgICAgIHRlc3RJbnB1dC5mb2N1cygp
OworICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAgICAgICBl
dmVudFNlbmRlci5rZXlEb3duKCJhIik7CisgICAgICAgIH0pOworICAgIH0pOworfQorPC9zY3Jp
cHQ+Cis8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUiIHNyYz0icmVzb3VyY2VzL29uY2xpY2suaHRtbCI+
PC9pZnJhbWU+Cis8aW5wdXQgaWQ9InRlc3RJbnB1dCIgdHlwZT0idGV4dCI+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM2ZTU1OWJmYTJkZDI0NjE2Nzk4OWIyNWFiODIzOWM0NTZiMTY0YjAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyB0aGF0IHdlIGRvIG5vdCBncmFudCBV
c2VyIEludGVyYWN0aW9uIGNyZWRpdCBmb3IgdW5oYW5kbGVkIGtleXByZXNzLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworU2ltdWxhdGUgYW4gdW5oYW5kbGVkIHVzZXIga2V5IHBy
ZXNzLgorUEFTUyBPcmlnaW4gZGlkIG5vdCBnZXQgdXNlciBpbnRlcmFjdGlvbiBjcmVkaXQuCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZh
bGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11
bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhY2RlYjI4ZTRjY2I3
MTI4MjUzMjE3YmE4ODE5ZWE3ZWE2ZmIyZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVu
aGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB3
ZSBkbyBub3QgZ3JhbnQgVXNlciBJbnRlcmFjdGlvbiBjcmVkaXQgZm9yIHVuaGFuZGxlZCBrZXlw
cmVzcy4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitjb25zdCBzdGF0aXN0aWNzVXJsID0g
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC90ZW1wIjsKKworb25sb2FkID0gZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgdGVzdEZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIp
OworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgaW50ZXJu
YWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVk
KHRydWUpOworICAgIH0KKworICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAoIXRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0
aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0
IGNsZWFyZWQgb2YgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24o
KSB7CisKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJPcmlnaW4gZGlkIG5vdCBnZXQgdXNlciBpbnRlcmFjdGlvbiBjcmVkaXQuIik7CisK
KyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
ICAgICB0ZXN0RnJhbWUuc3JjID0gImFib3V0OmJsYW5rIjsKKyAgICAgICAgICAgICAgICAgICAg
c2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICAgICAgfSwg
MCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRh
dGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1By
b2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKworICAgICAgICAgICAgZGVidWcoIlNp
bXVsYXRlIGFuIHVuaGFuZGxlZCB1c2VyIGtleSBwcmVzcy4iKTsKKyAgICAgICAgICAgIGlmICh3
aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigi
YSIsIFsibWV0YUtleSJdKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9Cis8L3NjcmlwdD4KKzxp
ZnJhbWUgaWQ9InRlc3RGcmFtZSIgc3JjPSJyZXNvdXJjZXMvb25jbGljay5odG1sIj48L2lmcmFt
ZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVy
YWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0
aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODlmODU1YTc4OWNmMTBiZjMz
MGY0YzkyZWExMmI5NDFhYmVmYzA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVz
ZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIENvb2tp
ZSBub3QgZGVsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rp
b24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZWMxM2E1MDI3NGM2ZGQ5NGJmZThhMTY0NTljNGNiYWI4YTkwZTkw
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFi
YXNlLmh0bWwKQEAgLTAsMCArMSw2OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJl
biI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3Rz
IGZvciBQcmV2YWxlbnQgUmVzb3VyY2UgV2l0aCBVc2VyIEludGVyYWN0aW9uPC90aXRsZT4KKyAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3NldFVwQW5kUnVuKCknLCAwKSI+Cis8c2NyaXB0Pgor
ICAgIGlmICh0ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
KworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0
IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAg
ICBjb25zdCBvdGhlclByZXZhbGVudFVybCA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvdGVtcCI7
CisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVu
dC5jb29raWUgIT09ICIiKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2ll
IG5vdCBlbXB0eS4iKTsKKyAgICAgICAgY29uc3QgY29va2llID0gInRlc3RDb29raWU9dGVzdFZh
bHVlIjsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gY29va2llICsgIjsgbWF4LWFnZT0xMDA7
IjsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gY29va2llKQorICAgICAgICAgICAg
dGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIGRpZCBub3QgZ2V0IHNldC4iKTsKKworICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJs
LCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgZG9uZSB0byBub3QgaGF2ZSBhbiBlbXB0eSBzZXQg
b2YgcHJldmFsZW50IHJlc291cmNlcy4KKyAgICAgICAgICAgIC8vIE90aGVyd2lzZSBkYXRhIHJl
Y29yZHMgYXJlIG5ldmVyIHNjYW5uZWQuCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZhbGVudFVybCwgdHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiT3RoZXIgaG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIp
OworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNv
cmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG9j
dW1lbnQuY29va2llID09PSBjb29raWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dFBhc3NlZCgiQ29va2llIG5vdCBkZWxldGVkLiIpOworICAgICAgICAgICAgICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBkZWxl
dGVkIG9yIGRvY3VtZW50LmNvb2tpZSBjb250YWlucyBvdGhlciBjb29raWVzOiAiICsgZG9jdW1l
bnQuY29va2llKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFs
c2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NT
aG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0
d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1
bmN0aW9uIHNldFVwQW5kUnVuKCkgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9z
dCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJu
YWxzKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOwor
ICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiV3JvbmcgaG9zdCwgbm8gdGVzdFJ1bm5l
ciwgb3Igbm8gaW50ZXJuYWxzLiIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2
YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc4MDllOTFjMjNjMjNhMjM2OWNkMDg1NGViMTgx
NjQ3ZGZhZWI0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0
aW9uLXRpbWVvdXQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIENvb2tpZSBk
ZWxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1l
b3V0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0
LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjIwODk3MDVkMjc4ZWFhMjIxMjY4NTZkMWQ2ZDA5
OWE1OWEwYTdiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0
aW9uLXRpbWVvdXQtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU3IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4K
KyAgICA8dGl0bGU+VGVzdHMgZm9yIFByZXZhbGVudCBSZXNvdXJjZSBXaXRoIFVzZXIgSW50ZXJh
Y3Rpb24gVGltZW91dDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBj
b25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0
aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgZnVuY3Rp
b24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09
ICIiKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIG5vdCBlbXB0eS4i
KTsKKyAgICAgICAgY29uc3QgY29va2llID0gInRlc3RDb29raWU9dGVzdFZhbHVlIjsKKyAgICAg
ICAgZG9jdW1lbnQuY29va2llID0gY29va2llICsgIjsgbWF4LWFnZT0xMDA7IjsKKyAgICAgICAg
aWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gY29va2llKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgi
ZG9jdW1lbnQuY29va2llIGRpZCBub3QgZ2V0IHNldC4iKTsKKworICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0
aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3Ig
dXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFs
bFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSAiIikKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBub3QgZGVsZXRlZDogIiArIGRvY3VtZW50
LmNvb2tpZSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIkNvb2tpZSBkZWxldGVkLiIpOworICAgICAgICAgICAgICAgICAgICBp
bnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRl
KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3Vy
Y2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwo
MCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVGltZVRvTGl2ZVVz
ZXJJbnRlcmFjdGlvbigwKTsKKworICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdG8gZW5zdXJl
IHRoZSB0aW1lb3V0IHdlJ3JlIHRlc3RpbmcuCisgICAgICAgICAgICAgICAgc2V0VGltZW91dCgi
dGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpIiwg
MTAwMCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRv
Y3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5u
ZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERh
dGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAg
ICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dl
cmVTY2FubmVkKHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgIH0KKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVz
ZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVz
ZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ODA5ZTkx
YzIzYzIzYTIzNjljZDA4NTRlYjE4MTY0N2RmYWViNDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291
cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKK1BBU1MgQ29va2llIGRlbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11
c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRl
cmFjdGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3YjBiMmFhZTMwODRkNGM0N2Q5ZWM5
ZjdjZTMyZmU0ZDQwYjljNGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNl
ci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgi
PgorICAgIDx0aXRsZT5UZXN0cyBmb3IgUHJldmFsZW50IFJlc291cmNlIFdpdGhvdXQgVXNlciBJ
bnRlcmFjdGlvbjwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25z
dCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNz
VXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisKKyAgICBmdW5jdGlv
biBmaW5pc2hUZXN0ICgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgbm90IGRlbGV0ZWQ6ICIgKyBkb2N1bWVudC5j
b29raWUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb29raWUgZGVs
ZXRlZC4iKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFi
bGVkKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3Rl
bnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgp
IHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJkb2N1bWVudC5jb29raWUgbm90IGVtcHR5LiIpOworICAgICAgICBjb25zdCBjb29r
aWUgPSAidGVzdENvb2tpZT10ZXN0VmFsdWUiOworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBj
b29raWUgKyAiOyBtYXgtYWdlPTEwMDsiOworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9
PSBjb29raWUpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgZGlkIG5v
dCBnZXQgc2V0LiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
aWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFz
IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xlYXJlZCBvZiB1c2VyIGludGVyYWN0aW9uLiIpOwor
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURh
dGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHNldFRp
bWVvdXQoImZpbmlzaFRlc3QoKSIsIDEwMDApOworICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2Vz
QmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NB
bmREYXRhUmVjb3JkcygpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRv
dy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0
cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0
YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsK
KyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lNzQ3NTdiYzUyNTYwMDUyMWQ0NjE1NDVkMDM2N2MwZjA1MDFiZWYzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3By
dW5lLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rl
c3RzIHRoYXQgc3RhdGlzdGljcyBhcmUgcHJ1bmVkIGluIHRoZSByaWdodCBvcmRlci4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGVzdCBpdGVyYXRpb24gMSBwYXNzZWQu
CitQQVNTIFRlc3QgaXRlcmF0aW9uIDIgcGFzc2VkLgorUEFTUyBUZXN0IGl0ZXJhdGlvbiAzIHBh
c3NlZC4KK1BBU1MgVGVzdCBpdGVyYXRpb24gNCBwYXNzZWQuCitQQVNTIFRlc3QgaXRlcmF0aW9u
IDUgcGFzc2VkLgorUEFTUyBUZXN0IGl0ZXJhdGlvbiA2IHBhc3NlZC4KK1BBU1MgVGVzdCBpdGVy
YXRpb24gNyBwYXNzZWQuCitQQVNTIFRlc3QgaXRlcmF0aW9uIDggcGFzc2VkLgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0
aWNzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjYWI3
ZDM5MTcxZDAzZjQ3YjQxOWQyYWRiMGNhMTM4YWRmNzhlYjkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlz
dGljcy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTYzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0
IGZvciBSZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3MgUHJ1bmluZzwvdGl0bGU+CisgICAgPHNjcmlw
dCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBzdGF0aXN0aWNz
IGFyZSBwcnVuZWQgaW4gdGhlIHJpZ2h0IG9yZGVyLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0
cnVlOworCisgICAgY29uc3Qgb2xkZXJUaW1lc3RhbXAgPSBNYXRoLnJvdW5kKChuZXcgRGF0ZSgp
KS5nZXRUaW1lKCkgLyAxMDAwKTsKKyAgICBjb25zdCBuZXdlclRpbWVzdGFtcCA9IG9sZGVyVGlt
ZXN0YW1wICsgMTA7CisgICAgY29uc3QgbmV3ZXN0VGltZXN0YW1wID0gbmV3ZXJUaW1lc3RhbXAg
KyAxMDsKKworICAgIGNvbnN0IHVybHNUb0JlUHJ1bmVkID0gWworICAgICAgICB7IHVybDogImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC90ZW1wIiwgcHJldmFsZW50OiBmYWxzZSB9LAorICAgICAgICB7
IHVybDogImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIiwgcHJldmFsZW50OiBmYWxzZSB9LAor
ICAgICAgICB7IHVybDogImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIiwgcHJldmFsZW50OiB0
cnVlIH0sCisgICAgICAgIHsgdXJsOiAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiLCBwcmV2
YWxlbnQ6IHRydWUgfSwKKyAgICAgICAgeyB1cmw6ICJodHRwOi8vMTI3LjAuMC41OjgwMDAvdGVt
cCIsIHByZXZhbGVudDogZmFsc2UgfSwKKyAgICAgICAgeyB1cmw6ICJodHRwOi8vMTI3LjAuMC42
OjgwMDAvdGVtcCIsIHByZXZhbGVudDogZmFsc2UgfSwKKyAgICAgICAgeyB1cmw6ICJodHRwOi8v
MTI3LjAuMC43OjgwMDAvdGVtcCIsIHByZXZhbGVudDogdHJ1ZSB9LAorICAgICAgICB7IHVybDog
Imh0dHA6Ly8xMjcuMC4wLjg6ODAwMC90ZW1wIiwgcHJldmFsZW50OiB0cnVlIH0KKyAgICBdOwor
CisgICAgZnVuY3Rpb24gY2hlY2tJZlByZXZhbGVudEFjY29yZGluZ1RvSW5pdGlhbEV4cGVjdGF0
aW9uKGJlZ2luLCBlbmQpIHsKKyAgICAgICAgdmFyIGZhaWxlZCA9IGZhbHNlOworICAgICAgICBm
b3IgKHZhciBpID0gYmVnaW47IGkgPCBlbmQ7ICsraSkgeworICAgICAgICAgICAgaWYgKHRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsc1RvQmVQcnVuZWRbaV0udXJs
KSAhPT0gdXJsc1RvQmVQcnVuZWRbaV0ucHJldmFsZW50KSB7CisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiY2hlY2tJZlByZXZhbGVudEFjY29yZGluZ1RvSW5pdGlhbEV4cGVjdGF0aW9uOiBU
ZXN0IGl0ZXJhdGlvbiAiICsgY3VycmVudFRlc3QgKyAiIGZhaWxlZC4gIiArIHVybHNUb0JlUHJ1
bmVkW2ldLnVybCArICh1cmxzVG9CZVBydW5lZFtpXS5wcmV2YWxlbnQgPyAiIHdhc24ndCAiIDog
IiB3YXMgIikgKyAicHJldmFsZW50Iik7CisgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoZmFpbGVkKSB7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBjaGVja0lmUHJldmFsZW50KGJlZ2luLCBl
bmQsIGV4cGVjdGVkKSB7CisgICAgICAgIHZhciBmYWlsZWQgPSBmYWxzZTsKKyAgICAgICAgZm9y
ICh2YXIgaSA9IGJlZ2luOyBpIDwgZW5kOyArK2kpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1bmVkW2ldLnVybCkg
IT09IGV4cGVjdGVkKSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiY2hlY2tJZlByZXZh
bGVudDogVGVzdCBpdGVyYXRpb24gIiArIGN1cnJlbnRUZXN0ICsgIiBmYWlsZWQuICIgKyB1cmxz
VG9CZVBydW5lZFtpXS51cmwgKyAoZXhwZWN0ZWQgPyAiIHdhc24ndCAiIDogIiB3YXMgIikgKyAi
cHJldmFsZW50Iik7CisgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgICAgICBpZiAoZmFpbGVkKSB7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKHN0ZXAp
IHsKKyAgICAgICAgc3dpdGNoIChzdGVwKSB7CisgICAgICAgICAgICAvLyBOb24tcHJldmFsZW50
IHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbiB0byBiZSBwcnVuZWQgZmlyc3QuCisgICAgICAgICAg
ICBjYXNlIDE6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNl
ZW4odXJsc1RvQmVQcnVuZWRbMF0udXJsLCBvbGRlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGlu
aXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMik7IH0pOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVkWzFdLnVybCwgbmV3ZXJUaW1lc3RhbXAs
IGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDMpOyB9KTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8vIFByZXZhbGVudCB3aXRob3V0IHVz
ZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIHNlY29uZC4KKyAgICAgICAgICAgIGNhc2UgMzoK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSh1cmxzVG9CZVBydW5lZFsyXS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3Rh
dGlzdGljc0FuZFJ1blRlc3RzKDQpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NM
YXN0U2Vlbih1cmxzVG9CZVBydW5lZFsyXS51cmwsIG9sZGVyVGltZXN0YW1wLCBmdW5jdGlvbigp
IHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyg1KTsgfSk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsc1RvQmVQcnVuZWRbM10udXJsLCB0
cnVlLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyg2KTsgfSk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDY6CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbM10u
dXJsLCBuZXdlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5k
UnVuVGVzdHMoNyk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgLy8g
Tm9uLXByZXZhbGVudCB3aXRoIHVzZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIHRoaXJkLgor
ICAgICAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih1cmxzVG9CZVBydW5lZFs0XS51cmwsIHRydWUsIGZ1
bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDgpOyB9KTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgODoKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFs0XS51cmwsIG9s
ZGVyVGltZXN0YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0
cyg5KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDk6Cisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKHVybHNUb0JlUHJ1bmVkWzVdLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVT
dGF0aXN0aWNzQW5kUnVuVGVzdHMoMTApOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgMTA6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbNV0udXJsLCBuZXdlclRpbWVzdGFtcCwgZnVuY3Rp
b24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTEpOyB9KTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8vIFByZXZhbGVudCB3aXRoIHVzZXIgaW50ZXJh
Y3Rpb24gdG8gYmUgcHJ1bmVkIGxhc3QuCisgICAgICAgICAgICBjYXNlIDExOgorICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNUb0Jl
UHJ1bmVkWzZdLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5k
UnVuVGVzdHMoMTIpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgMTI6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHVybHNUb0JlUHJ1bmVkWzZdLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGlu
aXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTMpOyB9KTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgMTM6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbNl0udXJsLCBvbGRlclRpbWVzdGFt
cCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTQpOyB9KTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTQ6CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodXJsc1RvQmVQ
cnVuZWRbN10udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRS
dW5UZXN0cygxNSk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSAxNToKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2Vy
SW50ZXJhY3Rpb24odXJsc1RvQmVQcnVuZWRbN10udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsgaW5p
dGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxNik7IH0pOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSAxNjoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFs3XS51cmwsIG5ld2VyVGltZXN0YW1w
LCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxNyk7IH0pOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxNzoKKyAgICAgICAgICAg
ICAgICBjaGVja0lmUHJldmFsZW50QWNjb3JkaW5nVG9Jbml0aWFsRXhwZWN0YXRpb24oMCwgdXJs
c1RvQmVQcnVuZWQubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2YXIgY3VycmVudFRlc3Q7
CisgICAgZnVuY3Rpb24gY2hlY2tTdGF0aXN0aWNzQWZ0ZXJQcnVuaW5nKCkgeworICAgICAgICAv
LyBQcnVuZWQgZW50cmllcyBzaG91bGQgbm90IGJlIHByZXZhbGVudC4KKyAgICAgICAgY2hlY2tJ
ZlByZXZhbGVudCgwLCBjdXJyZW50VGVzdCwgZmFsc2UpOworICAgICAgICAvLyBOb24tcHJ1bmVk
IGVudHJpZXMgc2hvdWxkIGtlZXAgdGhlaXIgZXhwZWN0ZWQgc3RhdHVzLgorICAgICAgICBjaGVj
a0lmUHJldmFsZW50QWNjb3JkaW5nVG9Jbml0aWFsRXhwZWN0YXRpb24oY3VycmVudFRlc3QsIHVy
bHNUb0JlUHJ1bmVkLmxlbmd0aCk7CisgICAgICAgIHRlc3RQYXNzZWQoIlRlc3QgaXRlcmF0aW9u
ICIgKyBjdXJyZW50VGVzdCArICIgcGFzc2VkLiIpOworICAgICAgICBpZiAoY3VycmVudFRlc3Qg
PCB1cmxzVG9CZVBydW5lZC5sZW5ndGgpIHsKKyAgICAgICAgICAgICsrY3VycmVudFRlc3Q7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRz
Q2FsbGJhY2soY2hlY2tTdGF0aXN0aWNzQWZ0ZXJQcnVuaW5nKTsKKyAgICAgICAgICAgIGluaXRp
YWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgZmlsbGVyVXJsOworICAgIGZ1bmN0aW9uIHJ1blRl
c3QoKSB7CisgICAgICAgIGZpbGxlclVybCA9ICJodHRwOi8vMTI3LjAuIiArIGN1cnJlbnRUZXN0
ICsgIi4xOjgwMDAvdGVtcCI7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKGZpbGxlclVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oZmlsbGVyVXJsLCB0
cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NMYXN0U2VlbihmaWxsZXJVcmwsIG5ld2VzdFRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5k
RGF0YVJlY29yZHMoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNS
ZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRp
bWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNYXhTdGF0aXN0aWNzRW50cmllcyh1cmxzVG9C
ZVBydW5lZC5sZW5ndGgpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcnVuZUVu
dHJpZXNEb3duVG8odXJsc1RvQmVQcnVuZWQubGVuZ3RoKTsKKworICAgICAgICBjdXJyZW50VGVz
dCA9IDE7CisgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJl
Y29yZHNDYWxsYmFjayhjaGVja1N0YXRpc3RpY3NBZnRlclBydW5pbmcpOworICAgICAgICBpbml0
aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDEpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRv
LWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9z
dC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdjMTQzOGIxODY0MDY0
MmFhMTZmYzA2YjY5ZDg0MWZkZjNiZjE2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGly
ZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIHNhbmRib3hlZCBpZnJhbWVzIGdldCBj
b3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9s
b2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0Iiwg
Imh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9j
YWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10
by1pcC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlw
LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjY3MTEyMDUwNjgxODM5MWNhOTY3ZmYyNGZmZmMw
NThjOTIxOWY0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2Fs
aG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
cmVkaXJlY3RzIGZvciBzYW5kYm94ZWQgaWZyYW1lcyBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsK
KyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5j
dGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2Fu
bmVkKHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NE
aWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0g
ZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5j
dGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdp
biA9PT0gIm51bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigi
UEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRh
LnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3Jp
Z2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0
Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAg
ICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUo
J3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDov
L2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJl
VHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJo
dHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hv
dWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5n
VG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAg
ICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGly
ZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9
CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2FuZGJveD0iYWxsb3ct
c2NyaXB0cyIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHAvP3JlZGlyZWN0
VG89aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2Vz
L2lmcmFtZS1yZXBvcnQtYmFjay1sb2FkZWQuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2Nh
bGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRv
LWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdjMTQz
OGIxODY0MDY0MmFhMTZmYzA2YjY5ZDg0MWZkZjNiZjE2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBzYW5kYm94
ZWQgaWZyYW1lcyBnZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFt
ZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQ
QVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0
cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4w
LjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1s
b2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVj
dC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjAyNmJkOWMwYzIxMmI3ZTVmMTY0OWI1OTNiOTc4ODNjZjMxNDhmYwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94
ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2Uu
aHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3Igc2FuZGJv
eGVkIGlmcmFtZXMgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5
bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJl
Y2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsK
KyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
ICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
dHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2Fs
bGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAg
IHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIg
c3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2Uo
ZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikgeworICAg
ICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIi
KSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNl
aXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdp
bik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsK
KyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVz
dCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVj
a1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDov
LzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJo
dHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4x
IiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0
cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAg
ICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMiIHNyYz0iaHR0cDov
L2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0
LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9pZnJhbWUtcmVwb3J0LWJhY2st
bG9hZGVkLmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5l
c3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9j
YWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1u
b24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzNjU4Y2QzNDNmNTU2ZTBjMzQ0NzVlZjllZjQ1
YzYyMGQ0ZDQyN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBu
b24tc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBzYW5kYm94ZWQgaWZyYW1lIGdldCBjb3Vu
dGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2Nh
bGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0
dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVn
aXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxo
b3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGlu
Zy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhv
c3QtdG8taXAtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTJkNTk5OTY0ZTdlNjJmZDA1ZmIw
ZDc4YWU1ZTI5NjYwNTdhMDY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRo
LW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRh
YmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBh
IG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIHNhbmRib3hlZCBpZnJhbWUgZ2V0IGNv
dW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxz
ZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFz
ZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVu
RGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
Lmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVk
aXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFs
c2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAg
ICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikgeworICAgICAgICAgICAgICAgIGlmIChl
dmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJv
bSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAg
IGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChz
dGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVy
KCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAg
ICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1
YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7Cisg
ICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJl
ZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikn
KTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdp
c3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhv
c3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAg
aWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlz
aFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZy
YW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMiIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1ub24tc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAuaHRtbCI+Cis8L2lmcmFtZT4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yMzY1OGNkMzQzZjU1NmUwYzM0NDc1ZWY5ZWY0NWM2MjBkNGQ0MjdlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5k
Ym94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIHNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJv
cGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIs
ICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEy
Ny4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVk
QXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBp
cyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGlu
Zy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8t
aXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGY4NmZlOGMzMjk0ZTI1
MzkyMmMyNWVhMzc5MjdmZDVjOTQzNmZmOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8t
bG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBy
ZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgc2FuZGJveGVk
IGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9
IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2
ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAg
fQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NO
b3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFj
ayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgdmFy
IGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0
c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVu
dCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gIm51bGwiKSB7CisgICAgICAg
ICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsK
KyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVk
IGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsK
KworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAg
ICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
Tm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3Rh
dHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3
LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6
Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAi
aHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7
CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAg
ICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc2NyaXB0cyIgc3JjPSJodHRwOi8vMTI3
LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcGFnZS13aXRoLW5v
bi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3Qu
aHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1p
ZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1p
cC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQxNmU2MWZkMDE1ZmQ3YWUzY2I4NjZiNjkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUgbmVz
dGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3
LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlz
IHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGlu
Z1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hl
ZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9j
YWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kNmU5NGE0NTk2OTg1NGQzZTM4OGQxMGFhZGNhZjBhMWQyYTRkYWFmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3Qt
aXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigi
VGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBu
b24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNU
ZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNz
YWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hU
ZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJl
Y29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisK
KyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAg
ICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZl
TWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gIm51bGwi
KSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAt
MSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZB
SUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZl
bnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQg
PSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBm
aW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0
aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIs
ICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxo
b3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8x
MjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hl
Y2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2Fk
ZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisgICAgPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc2NyaXB0cyIgc3Jj
PSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMv
cGFnZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlw
Lmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3Rpbmct
aWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8t
bG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQxNmU2MWZkMDE1ZmQ3
YWUzY2I4NjZiNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3Ig
YSBzYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBj
b3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9s
b2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0Iiwg
Imh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9j
YWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQt
bmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10
by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZTE5ZGQxMDAyMTE1
ZDhhMTk0ZmMyMjQxZDU4ZjRmODJlMDAyYmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlm
cmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxv
Y2FsaG9zdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVk
aXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hlZCBp
ZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0
cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVN
ZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0K
KworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRV
c2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90
aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2so
Y2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBs
YXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHND
aGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQp
IHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikgeworICAgICAgICAg
ICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7Cisg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBh
IG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisK
KyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAg
ICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05v
dGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRz
KCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1Jl
Z2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4w
LjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8v
MTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0
dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOwor
ICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAg
ICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMiIHNyYz0iaHR0cDovLzEyNy4w
LjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QuaHRtbCI+
Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1yZXNv
dXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1yZXNv
dXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZGMw
NzNkYTQ3Y2JhNDg2MDc3MjNkNGZkYjYzY2JhMTU2ZDg3ZTYyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0b20t
cHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTAgQEAKK1Rlc3QgZm9yIGVuYWJsaW5nIGRlYnVnIG1vZGUgYW5kIHRoYXQgaXQg
YWxsb3dzIHNldHRpbmcgYSBjdXN0b20gZG9tYWluIGFzIGEgcHJldmFsZW50IHJlc291cmNlLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBodHRwOi8vbG9jYWxob3N0Ojgw
MDAgZ290IHNldCBhcyBhIGN1c3RvbSBwcmV2YWxlbnQgcmVzb3VyY2UgaW4gZGVidWcgbW9kZS4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2V0
LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4tZGVidWctbW9kZS1kYXRhYmFzZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0b20t
cHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41ZmRhODEyMDE5YTllNzNmZjk1NTg5MTVlMGY4ODkyNmE4ZDkwNDlhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1j
dXN0b20tcHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbApAQCAt
MCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgor
ICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3Jp
cHRpb24oIlRlc3QgZm9yIGVuYWJsaW5nIGRlYnVnIG1vZGUgYW5kIHRoYXQgaXQgYWxsb3dzIHNl
dHRpbmcgYSBjdXN0b20gZG9tYWluIGFzIGEgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgIGpz
VGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRv
dy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFy
dHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQodGhpcmRQYXJ0eU9yaWdpbiAr
ICIgYWxyZWFkeSBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZSh0aGly
ZFBhcnR5T3JpZ2luLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NEZWJ1Z01vZGUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBh
cnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQodGhpcmRQYXJ0
eU9yaWdpbiArICIgZGlkbid0IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAg
ICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2Vk
KHRoaXJkUGFydHlPcmlnaW4gKyAiIGdvdCBzZXQgYXMgYSBjdXN0b20gcHJldmFsZW50IHJlc291
cmNlIGluIGRlYnVnIG1vZGUuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc0RlYnVnTW9kZShmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZl
cnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNl
LXJlZGlyZWN0cy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2JkNTQzZWM5YWYz
MjRiZDUwZGMxZDRjODZjZGIwOWU5YzRkNWIyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1v
cmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3RzIHRoYXQgb25seSB0aGUgb3JpZ2luIGlzIHNl
bnQgYXMgcmVmZXJyZXIgaW4gcmVkaXJlY3RzIHRvIHByZXZhbGVudCByZXNvdXJjZXMgd2l0aG91
dCB1c2VyIGludGVyYWN0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyByZWZlcnJlciBpcyAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVk
aXJlY3RzLWRhdGFiYXNlLmh0bWwiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0t
LS0tLS0KK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4t
Zm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10
by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iMGY4YTJmNDIwYjVhYTYyYzM3YTI1ZDRiZGRmZWQzM2EzM2JmYTVmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNl
LXJlZGlyZWN0cy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRl
c3RzIHRoYXQgb25seSB0aGUgb3JpZ2luIGlzIHNlbnQgYXMgcmVmZXJyZXIgaW4gcmVkaXJlY3Rz
IHRvIHByZXZhbGVudCByZXNvdXJjZXMgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLiIpOworICAg
IGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNU
ZXh0KCk7CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgewor
ICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7
CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikg
eworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9
CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisg
ICAgdmFyIHJlZmVycmVyOworICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7
CisgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3Qi
KSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3YXMgY2xhc3NpZmllZCBhcyBw
cmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0ZWQuIik7CisKKyAgICAgICAg
ZmV0Y2goInJlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIpLnRoZW4oZnVuY3Rpb24ocmVzcG9u
c2UpIHsKKyAgICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7CisgICAgICAgIH0pLnRo
ZW4oZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgICAgcmVmZXJyZXIgPSBkYXRhOworICAgICAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9y
LXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRtbCIpOworCisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDov
L2xvY2FsaG9zdCIsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICghdGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIp
KQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgb3BlbklmcmFtZSgicmVzb3VyY2VzL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRvPWh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXJl
ZmVycmVyLnBocCIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSkuY2F0Y2go
ZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yLm1lc3NhZ2Up
OworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAg
ICAgICAgfSk7CisgICAgfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1y
ZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRh
YmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3Vy
Y2UtcmVxdWVzdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5Y2NiOWMyMWZm
MDA3MWE5ODAyMzliN2I3OTNmNTUxODdlYmVlNWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8t
b3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1Rlc3RzIHRoYXQgb25seSB0aGUgb3JpZ2luIGlzIHNl
bnQgYXMgcmVmZXJyZXIgZm9yIHByZXZhbGVudCByZXNvdXJjZXMgd2l0aG91dCB1c2VyIGludGVy
YWN0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWZlcnJlciBp
cyAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVm
ZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJh
c2UuaHRtbCIKK1BBU1MgcmVmZXJyZXIgaXMgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC8iCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCistLS0tLS0t
LQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK2h0dHA6Ly8xMjcuMC4wLjE6ODAw
MC8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1y
ZXF1ZXN0cy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJl
c291cmNlLXJlcXVlc3RzLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTVkNGYwMzY2Zjk3Y2Zj
ZTk0MjhhNmE4NmU1MTU0ODM2MGUzMjE3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmln
aW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsNjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgb25seSB0aGUgb3JpZ2luIGlzIHNl
bnQgYXMgcmVmZXJyZXIgZm9yIHByZXZhbGVudCByZXNvdXJjZXMgd2l0aG91dCB1c2VyIGludGVy
YWN0aW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHRlc3RSdW5uZXIuZHVt
cENoaWxkRnJhbWVzQXNUZXh0KCk7CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25M
b2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAo
b25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5k
bGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVu
dCk7CisgICAgfQorCisgICAgdmFyIHJlZmVycmVyOworICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQ
RGF0YWJhc2UodHJ1ZSk7CisgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0
dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3YXMg
Y2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0ZWQu
Iik7CisKKyAgICAgICAgZmV0Y2goInJlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIpLnRoZW4o
ZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7
CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgICAgcmVmZXJyZXIg
PSBkYXRhOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJl
ci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5o
dG1sIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRw
Oi8vbG9jYWxob3N0IikpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlk
IG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICBmZXRjaCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcmVmZXJyZXIucGhwIikudGhlbihmdW5jdGlv
bihyZXNwb25zZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnRl
eHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbihkYXRhKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICByZWZlcnJlciA9IGRhdGE7CisgICAgICAgICAgICAgICAgICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC8iKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgb3BlbklmcmFtZSgicmVzb3VyY2Vz
L3JlZGlyZWN0LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlz
aEpTVGVzdCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAg
ICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc29sZS5sb2coZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KS5jYXRj
aChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IubWVzc2Fn
ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOwor
ICAgICAgICB9KTsKKyAgICB9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRj
aC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0
YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgt
aW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0MzkyMmZkOTNm
MWE1NDQ0ZjJjYjA2ODg0ZWZjMzI5MGJhZTUxZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24t
bmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCB0aGUgc2Vzc2lvbiBpcyBzd2l0Y2hl
ZCB1cG9uIHRvcCBmcmFtZSBuYXZpZ2F0aW9uIHRvIGEgcHJldmFsZW50IHJlc291cmNlIHdpdGgg
dXNlciBpbnRlcmFjdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
U2hvdWxkIGhhdmUgYW5kIGhhcyB0aGUgc2Vzc2lvbiBjb29raWUuCitQQVNTIFNob3VsZCBoYXZl
IGFuZCBoYXMgdGhlIHBlcnNpc3RlbnQgY29va2llLgorUEFTUyBPcmlnaW4gaGFzIGlzb2xhdGVk
IHNlc3Npb24uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50
ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13
aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI3MGMwMGIwNDgxNjY2
MGJjODFkMGQ2ZWU4OWNhYTcwZTFmNzRiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZp
Z2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKQEAgLTAs
MCArMSwxMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxz
Y3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdGhlIHNlc3Npb24gaXMgc3dpdGNo
ZWQgdXBvbiB0b3AgZnJhbWUgbmF2aWdhdGlvbiB0byBhIHByZXZhbGVudCByZXNvdXJjZSB3aXRo
IHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBj
b25zdCBwcmV2YWxlbnRPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25z
dCBub25QcmV2YWxlbnRPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25z
dCBzZXNzaW9uQ29va2llTmFtZSA9ICJzZXNzaW9uQ29va2llIjsKKyAgICBjb25zdCBwZXJzaXN0
ZW50Q29va2llTmFtZSA9ICJwZXJzaXN0ZW50Q29va2llIjsKKyAgICBjb25zdCB0d29NaW51dGVz
SW5TZWNvbmRzID0gMTIwOworCisgICAgZnVuY3Rpb24gc2V0U2Vzc2lvbkNvb2tpZSgpIHsKKyAg
ICAgICAgZG9jdW1lbnQuY29va2llID0gc2Vzc2lvbkNvb2tpZU5hbWUgKyAiPTE7IHBhdGg9LyI7
CisgICAgfQorCisgICAgZnVuY3Rpb24gc2V0UGVyc2lzdGVudENvb2tpZSgpIHsKKyAgICAgICAg
ZG9jdW1lbnQuY29va2llID0gcGVyc2lzdGVudENvb2tpZU5hbWUgKyAiPTE7IHBhdGg9LzsgTWF4
LUFnZT0iICsgdHdvTWludXRlc0luU2Vjb25kcyArICI7IjsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBjaGVja0Nvb2tpZXMoc2hvdWxkSGF2ZVNlc3Npb25Db29raWUsIHNob3VsZEhhdmVQZXJzaXN0
ZW50Q29va2llKSB7CisgICAgICAgIGxldCBoYXNTZXNzaW9uQ29va2llID0gKGRvY3VtZW50LmNv
b2tpZSArICIiKS5pbmNsdWRlcyhzZXNzaW9uQ29va2llTmFtZSksCisgICAgICAgICAgICBoYXNQ
ZXJzaXN0ZW50Q29va2llID0gKGRvY3VtZW50LmNvb2tpZSArICIiKS5pbmNsdWRlcyhwZXJzaXN0
ZW50Q29va2llTmFtZSk7CisKKyAgICAgICAgaWYgKHNob3VsZEhhdmVTZXNzaW9uQ29va2llICYm
IGhhc1Nlc3Npb25Db29raWUpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91bGQgaGF2ZSBh
bmQgaGFzIHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKKyAgICAgICAgZWxzZSBpZiAoc2hvdWxkSGF2
ZVNlc3Npb25Db29raWUgJiYgIWhhc1Nlc3Npb25Db29raWUpIHsKKyAgICAgICAgICAgIHRlc3RG
YWlsZWQoIlNob3VsZCBoYXZlIGJ1dCBkb2Vzbid0IGhhdmUgdGhlIHNlc3Npb24gY29va2llLiIp
OworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAg
ICAgICAgfSBlbHNlIGlmICghc2hvdWxkSGF2ZVNlc3Npb25Db29raWUgJiYgaGFzU2Vzc2lvbkNv
b2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkbid0IGhhdmUgYnV0IGhhcyB0
aGUgc2Vzc2lvbiBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQo
IlNob3VsZG4ndCBoYXZlIGFuZCBkb2Vzbid0IGhhdmUgdGhlIHNlc3Npb24gY29va2llLiIpOwor
CisKKyAgICAgICAgaWYgKHNob3VsZEhhdmVQZXJzaXN0ZW50Q29va2llICYmIGhhc1BlcnNpc3Rl
bnRDb29raWUpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91bGQgaGF2ZSBhbmQgaGFzIHRo
ZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsKKyAgICAgICAgZWxzZSBpZiAoc2hvdWxkSGF2ZVBlcnNp
c3RlbnRDb29raWUgJiYgIWhhc1BlcnNpc3RlbnRDb29raWUpIHsKKyAgICAgICAgICAgIHRlc3RG
YWlsZWQoIlNob3VsZCBoYXZlIGJ1dCBkb2Vzbid0IGhhdmUgdGhlIHBlcnNpc3RlbnQgY29va2ll
LiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICAgICAgfSBlbHNlIGlmICghc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29raWUgJiYgaGFzUGVy
c2lzdGVudENvb2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkbid0IGhhdmUg
YnV0IGhhcyB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQoIlNob3VsZG4ndCBoYXZlIGFuZCBkb2Vzbid0IGhhdmUgdGhlIHBlcnNpc3Rl
bnQgY29va2llLiIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAg
IHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAiI3N0
ZXAxIjoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2Vy
SW50ZXJhY3Rpb24ocHJldmFsZW50T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgc2V0U2Vzc2lvbkNvb2tpZSgpOworICAgICAgICAgICAgICAgICAgICBzZXRQ
ZXJzaXN0ZW50Q29va2llKCk7CisgICAgICAgICAgICAgICAgICAgIGNoZWNrQ29va2llcyh0cnVl
LCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaGFzU3RhdGlzdGlj
c0lzb2xhdGVkU2Vzc2lvbihwcmV2YWxlbnRPcmlnaW4pKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJPcmlnaW4gaGFzIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOwor
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIk9yaWdpbiBoYXMgbm8gaXNvbGF0ZWQgc2Vzc2lvbi4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IG5vblByZXZhbGVudE9yaWdpbiArICIvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZh
bGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwjc3RlcDIiOworICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAy
IjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAg
ICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luICE9PSBub25QcmV2YWxl
bnRPcmlnaW4pCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlN0ZXAgMiBpcyBub3Qg
b24gIiArIG5vblByZXZhbGVudE9yaWdpbiArICIuIik7CisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50T3JpZ2luLCB0cnVl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudE9yaWdpbikpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQocHJldmFsZW50T3JpZ2luICsgIiBkaWQgbm90IGdldCBz
ZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVC
bG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaHJlZiA9IHByZXZhbGVudE9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVy
YWN0aW9uLWRhdGFiYXNlLmh0bWwjc3RlcDQiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICBjaGVja0Nvb2tpZXModHJ1
ZSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaGFzU3RhdGlzdGljc0lz
b2xhdGVkU2Vzc2lvbihwcmV2YWxlbnRPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJPcmlnaW4gaGFzIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAgICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPcmlnaW4gaGFzIG5vIGlzb2xh
dGVkIHNlc3Npb24uIik7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVW5rbm93biBoYXNoLiIpOworICAgICAg
ICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIpIHsKKyAg
ICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiAhPT0gcHJldmFsZW50T3JpZ2luKQor
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGVzdCBpcyBub3Qgc3RhcnRpbmcgb3V0IG9uICIgKyBw
cmV2YWxlbnRPcmlnaW4gKyAiLiIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFi
YXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHByZXZhbGVudE9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChwcmV2YWxlbnRP
cmlnaW4gKyAiIHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZSBiZWZvcmUgdGhl
IHRlc3Qgc3RhcnRzLiIpOworICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJz
dGVwMSI7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3RlbGVtZXRyeS1nZW5lcmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvdGVsZW1ldHJ5LWdlbmVyYXRpb24uaHRtbAppbmRleCA4NDE5NTYy
MDcwYjI4Nzg0ODZlMDk0MWIyZTJlMWNiMjVlODYxNzJjLi42NDdkYjMwMGVmOGEyNTgxNDQwOWQ4
ZTE1ZTZiYmI5MzY1NWI1OWRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvdGVsZW1ldHJ5LWdlbmVyYXRpb24uaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdGVsZW1ldHJ5LWdlbmVy
YXRpb24uaHRtbApAQCAtOCw2ICs4LDcgQEAKIDwvaGVhZD4KIDxib2R5PgogPHNjcmlwdD4KKyAg
ICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKGZhbHNlKTsKICAgICBkZXNjcmlwdGlvbigi
VGVzdHMgdGhhdCB0ZWxlbWV0cnkgZm9yIHByZXZhbGVudCByZXNvdXJjZXMgaXMgY2FsY3VsYXRl
ZCBjb3JyZWN0bHkuIik7CiAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVy
YWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJh
Y3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjg0MjczMGE0NWRhZGU2ZWE2ZjE1ZGVjYzM5YTdlNWE5YTBlMzEyYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3RzIHRoYXQgdXNlciBpbnRlcmFjdGlvbiBp
cyBhbHdheXMgbG9nZ2VkIGZvciB0aGUgdG9wIGRvY3VtZW50L2ZyYW1lLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gaXMgdG9w
RnJhbWVPcmlnaW4KK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24odG9wRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdp
bikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbihzdWJGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmln
aW4tc3ViLWZyYW1lLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZy
YW1lLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTY3NGQwOTA5NzBjNTYzYmZiYTRkOTNjZmE2
NDVjYWIxNWE1OTRlMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1z
dWItZnJhbWUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB1c2VyIGludGVyYWN0aW9uIGlzIGFs
d2F5cyBsb2dnZWQgZm9yIHRoZSB0b3AgZG9jdW1lbnQvZnJhbWUuIik7Citqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKK3Rlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisKK2NvbnN0IHRv
cEZyYW1lT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7Citjb25zdCBzdWJGcmFtZU9y
aWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworCitmdW5jdGlvbiBhY3RpdmF0ZUVsZW1l
bnQoZWxlbWVudElkKSB7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChlbGVtZW50SWQpOworICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxl
bWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRv
cCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNl
bnRlclgsIGNlbnRlclkpOworfQorCitmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgIHNob3Vs
ZEJlVHJ1ZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9w
RnJhbWVPcmlnaW4pIik7CisgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7CisgICAgc2V0RW5hYmxl
RmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKK30KKworb25sb2FkID0gZnVuY3Rpb24oKSB7
CisgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKHRl
c3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBh
Z2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soZmluaXNoVGVz
dCk7CisgICAgICAgIH0KKworICAgICAgICBzaG91bGRCZSgiZG9jdW1lbnQubG9jYXRpb24ub3Jp
Z2luIiwgInRvcEZyYW1lT3JpZ2luIik7CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAgICAgICAgc2hvdWxkQmVGYWxz
ZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVP
cmlnaW4pIik7CisKKyAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGVzdEZyYW1lIik7Cisg
ICAgICAgIH0KKyAgICB9KTsKK307Cis8L3NjcmlwdD4KKzxpZnJhbWUgaWQ9InRlc3RGcmFtZSIg
c3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMvZHVtbXkuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFj
dGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQt
cGVyaW9kLW9mLXRpbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0MzJiYzhl
ZDczODFmYmM0OThkYjM0YzBmYjNiZTdhNTdiZDkxZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlv
bi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitUZXN0cyB0aGF0IHVzZXIgaW50ZXJhY3Rp
b24gaXMgbm90IHJlcG9ydGVkIHJlcGVhdGVkbHkgd2l0aGluIGEgc2hvcnQgcGVyaW9kIG9mIHRp
bWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50LmxvY2F0
aW9uLm9yaWdpbiBpcyB0b3BGcmFtZU9yaWdpbgorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4p
IGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
SGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikg
aXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rp
b24odG9wRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
SGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitUaGlzIGlzIHRoZSB0ZXN0
IGVsZW1lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hv
cnQtcGVyaW9kLW9mLXRpbWUtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25j
ZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
MDk1MjQyY2FkNjc0MDQxN2FhOTk3MjQ2MTg5ODE0NGRjMmNlOTNlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50
ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1k
YXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
KyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB1c2VyIGludGVyYWN0aW9uIGlzIG5vdCByZXBv
cnRlZCByZXBlYXRlZGx5IHdpdGhpbiBhIHNob3J0IHBlcmlvZCBvZiB0aW1lLiIpOworICAgIGpz
VGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4gPSAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdWJGcmFtZU9yaWdpbiA9ICJodHRwOi8vbG9j
YWxob3N0OjgwMDAiOworCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJZCwg
Y2FsbGJhY2spIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChlbGVtZW50SWQpOworICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCAr
IGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQu
b2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBlci5h
Y3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlByb21pc2UgcmVq
ZWN0ZWQuIik7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNo
SlNUZXN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBmaXJzdEludGVyYWN0aW9uKCkgeworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAg
ICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7CisgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGVz
dEVsZW1lbnQiLCBzZWNvbmRJbnRlcmFjdGlvbik7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2Vj
b25kSW50ZXJhY3Rpb24oKSB7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIik7CisgICAgICAg
IHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9w
RnJhbWVPcmlnaW4sIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BG
cmFtZU9yaWdpbikiKTsKKworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGVzdEVs
ZW1lbnQiLCBmaW5pc2hUZXN0KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQor
CisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4p
Iik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIG9ubG9hZCA9IGZ1bmN0aW9u
KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgc2hvdWxk
QmUoImRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiIsICJ0b3BGcmFtZU9yaWdpbiIpOworCisgICAg
ICAgICAgICBmaXJzdEludGVyYWN0aW9uKCk7CisgICAgICAgIH0pOworICAgIH07Cis8L3Njcmlw
dD4KKzxkaXYgaWQ9InRlc3RFbGVtZW50Ij5UaGlzIGlzIHRoZSB0ZXN0IGVsZW1lbnQ8L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNp
dGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFm
dGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iZjI4Yzk5YjMwMjQ0NDU2MGI1MWIzNDhiOTYwMjFiMDU4NTZlYTNjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXIt
aW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3RzIHRoYXQgdXNlciBpbnRlcmFjdGlv
biBpcyByZXBvcnRlZCBhZnRlciBoaXN0b3J5IHJlbW92YWwgc2luY2UgdGhhdCBtZWFucyBhbGwg
c3RhdGlzdGljcyBoYXZlIGJlZW4gcmVzZXQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiBpcyB0b3BGcmFtZU9yaWdpbgorUEFT
UyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9y
aWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyB0cnVlCitQQVNT
IHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3Jp
Z2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIGlzIHRydWUKK1BBU1Mg
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmln
aW4pIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKK1RoaXMgaXMgdGhlIHRlc3QgZWxlbWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0
ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9y
dGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MmJlYjQyZjk0MmYxYjY4ZmZhY2ZlMGVmYjFmZTkyMzk2MmYyMjY4ZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWlu
dGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLmh0
bWwKQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIGRlc2Ny
aXB0aW9uKCJUZXN0cyB0aGF0IHVzZXIgaW50ZXJhY3Rpb24gaXMgcmVwb3J0ZWQgYWZ0ZXIgaGlz
dG9yeSByZW1vdmFsIHNpbmNlIHRoYXQgbWVhbnMgYWxsIHN0YXRpc3RpY3MgaGF2ZSBiZWVuIHJl
c2V0LiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgdG9wRnJhbWVP
cmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdWJGcmFtZU9yaWdp
biA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVt
ZW50KGVsZW1lbnRJZCwgY2FsbGJhY2spIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1l
bnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICB2YXIgY2Vu
dGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAg
ICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAg
ICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIlByb21pc2UgcmVqZWN0ZWQuIik7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBmaXJzdEludGVyYWN0aW9uKCkgeworICAgICAgICBzaG91bGRCZUZh
bHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFt
ZU9yaWdpbikiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7CisgICAgICAgIGFjdGl2
YXRlRWxlbWVudCgidGVzdEVsZW1lbnQiLCBjbGVhcldlYnNpdGVEYXRhKTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBjbGVhcldlYnNpdGVEYXRhKCkgeworICAgICAgICBzaG91bGRCZVRydWUoInRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2lu
KSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hh
ZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKworICAgICAgICBpZiAodGVzdFJ1
bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc0NsZWFyVGhyb3VnaFdlYnNp
dGVEYXRhUmVtb3ZhbChzZWNvbmRJbnRlcmFjdGlvbik7CisgICAgfQorCisgICAgZnVuY3Rpb24g
c2Vjb25kSW50ZXJhY3Rpb24oKSB7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAg
ICAgICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RFbGVtZW50IiwgZmluaXNoVGVzdCk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbiki
KTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7CisKKyAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBvbmxvYWQgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHNob3Vs
ZEJlKCJkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4iLCAidG9wRnJhbWVPcmlnaW4iKTsKKworICAg
ICAgICAgICAgZmlyc3RJbnRlcmFjdGlvbigpOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3Jp
cHQ+Cis8ZGl2IGlkPSJ0ZXN0RWxlbWVudCI+VGhpcyBpcyB0aGUgdGVzdCBlbGVtZW50PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUtbmF2aWdh
dGVkLXRvLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUtbmF2
aWdhdGVkLXRvLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0bWwKaW5kZXggYmQzZjY2M2FiNzNkOWRk
MGYxODYxMTY0MDVhYTliYTM3ZjNlMDVkOS4uNmViNjE5YWM3NTIxNmRkYzU1OWM1YTdmZmQxYWMy
ZmE1ZDE4MDZlZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZvci1zaXRlLW5hdmlnYXRlZC10by13
aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy93ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS1uYXZpZ2F0
ZWQtdG8td2l0aC1saW5rLWRlY29yYXRpb24uaHRtbApAQCAtMTAsNiArMTAsNyBAQAogPGRpdiBp
ZD0ib3V0cHV0Ij48L2Rpdj4KIDxicj4KIDxzY3JpcHQ+CisgICAgdGVzdFJ1bm5lci5zZXRVc2VJ
VFBEYXRhYmFzZShmYWxzZSk7CiAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggMzFiZmE5ODQxOGY4NmI2MDgyYTMxZjViMGE3NGRiZGU5MDllZDY4
Yi4uZGQwYzNiOTIzYmNjMzI4YWE4ZGEyM2YyYTA2YmYwNzBlNGQwZGJiOCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTk4OSw2ICs5ODksOCBAQCBodHRw
L3Rlc3RzL25hdmlnYXRpb24va2V5Ym9hcmQtZXZlbnRzLWR1cmluZy1wcm92aXNpb25hbC1uYXZp
Z2F0aW9uLmh0bWwgWyBTa2lwCiBodHRwL3Rlc3RzL25hdmlnYXRpb24va2V5Ym9hcmQtZXZlbnRz
LWR1cmluZy1wcm92aXNpb25hbC1zdWJmcmFtZS1uYXZpZ2F0aW9uLmh0bWwgWyBTa2lwIF0KIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxl
ZC1rZXlkb3duLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24uaHRtbCBbIFNraXAgXQoraHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVk
LWtleWRvd24tZGF0YWJhc2UuaHRtbCBbIFNraXAgXQoraHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5o
dG1sIFsgU2tpcCBdCiBtZWRpYS9hdWRpby1wbGF5YmFjay12b2x1bWUtY2hhbmdlcy13aXRoLXJl
c3RyaWN0aW9ucy1hbmQtdXNlci1nZXN0dXJlcy5odG1sIFsgU2tpcCBdCiBtZWRpYS9hdWRpby1w
bGF5YmFjay12b2x1bWUtY2hhbmdlcy13aXRoLXJlc3RyaWN0aW9ucy5odG1sIFsgU2tpcCBdCiBt
ZWRpYS9waWN0dXJlLWluLXBpY3R1cmUtaW50ZXJydXB0aW9uLmh0bWwgWyBTa2lwIF0KQEAgLTI3
NzksNiArMjc4MSw5IEBAIGZhc3QvY2FudmFzL3dlYmdsL3JlYWRQaXhlbHMtZmxvYXQuaHRtbCBb
IFNraXAgXQogd2Via2l0Lm9yZy9iLzE3NDEyMCBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLmh0bWwgWyBT
a2lwIF0KIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9u
LW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUuaHRtbCBbIFNr
aXAgXQogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24t
cmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwuaHRtbCBbIFNraXAgXQord2Via2l0
Lm9yZy9iLzE3NDEyMCBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRl
cmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRhdGFiYXNlLmh0bWwgWyBTa2lwIF0K
K2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLW9ubHkt
cmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUtZGF0YWJhc2UuaHRtbCBb
IFNraXAgXQoraHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rp
b24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwtZGF0YWJhc2UuaHRtbCBbIFNr
aXAgXQogIyBTa2lwcGVkIGluIFdLMiBleHBlY3RhdGlvbnMgYmVjYXVzZSBjb29raWUgcGFydGl0
aW9uaW5nIGlzIG9ubHkgYXZhaWxhYmxlIGluIG1hY09TIEhpZ2ggU2llcnJhIGFuZCBpT1MgMTEu
CiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9uLmh0bWwg
WyBQYXNzIF0KIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdpdGgt
YW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi5odG1sIFsgUGFzcyBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379565</attachid>
            <date>2019-09-25 11:36:49 -0700</date>
            <delta_ts>2019-09-25 15:07:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195420-20190925113648.patch</filename>
            <type>text/plain</type>
            <size>397628</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTBiMzI2ZTE1OTg5YjFk
ZTM5NWQzNjk2NWE1NWU1ZGQ1OGExOTc4Zi4uYWNkMDdiMzM3NWMwN2UzNDczNTE5NWI3NTg1NjRi
MGRhMTE0NmI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDE5LTA5LTI1ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBM
YXlvdXRUZXN0cyB1c2luZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFNRTGl0ZSBiYWNrZW5kICgx
OTU0MjApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTU0MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjEzNTUxPiAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tp
bmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1m
b3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRo
LWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAg
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29v
a2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2Ut
ZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVl
cnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlm
ZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50
LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0
aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1l
LW9yaWdpbnMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVz
b3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2
YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdp
bnMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRp
cmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJy
ZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMt
dG8tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJl
Y3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZy
YW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJh
c2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12
ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1t
ZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAg
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVy
c2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9uLWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29r
aWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlw
dC1hY2Nlc3NpYmxlLWNvb2tpZXMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdh
dGlvbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxl
LXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVj
dC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50
LXdpdGhvdXQtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmln
YXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmFi
bGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJhc2UuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQt
cmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291
cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAg
ICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJj
ZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0
LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVk
LW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxo
b3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFt
ZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRh
dGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZh
bGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1k
YXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwK
KyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxl
bnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3Vy
Y2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJj
ZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAg
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BydW5lLXN0YXRpc3RpY3MtZGF0YWJh
c2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0
YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAg
ICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZy
YW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRv
LWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbAorICAg
ICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1u
ZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRv
LWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4t
ZGVidWctbW9kZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQt
c3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9y
LXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sCisgICAgICAgICAg
ICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24t
bmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRl
cmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9u
LW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUtZGF0YWJhc2Uu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Vz
ZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwtZGF0YWJh
c2UuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmg6CisgICAg
ICAgIEFkZGVkIFdFQkNPUkVfRVhQT1JUIHByZWZpeCB0byAyIGZ1bmN0aW9ucyBuZWVkZWQgaW4g
dGhlIElUUCBEYXRhYmFzZSAKKyAgICAgICAgdG8gY2xlYXIgb3V0IHRoZSBkYXRhYmFzZS4KKwog
MjAxOS0wOS0yNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbaVBhZE9TXSBbRGF0YUFjdGl2YXRpb25dIEZvY3VzIG1vdmVzIGF3YXkgYWZ0ZXIgZm9j
dXNpbmcgaW5wdXQgZmllbGRzIG9uIHd3dy5hdHQuY29tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFlNjdjYmQyYWNi
NzNlZThmNDdmOTI3ZGE4NWU4OTk0ZGVjZDQ2NTEuLjEwMDg4NDhlMjk2MTE1MmNlM2E1MDg5MjAy
Y2ZhMjQ2YmJlNTVhMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcwIEBACisyMDE5LTA5LTI1ICBL
YXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJs
ZSBMYXlvdXRUZXN0cyB1c2luZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFNRTGl0ZSBiYWNrZW5k
ICgxOTU0MjApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTU0MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjEzNTUxPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZWQgYWxsIFJFTEVBU0Vf
TE9HX0VSUk9SKCkgY2FsbHMgaW52b2x2aW5nIGRvbWFpbiBzdHJpbmdzIHRvCisgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoKSB0byBwcmV2ZW50IGxlYWtpbmcgaW5mb3JtYXRp
b24gYWJvdXQKKyAgICAgICAgdGhlIGRvbWFpbiBzdHJpbmdzIG9ubHkgaWYgc2Vzc2lvbklELmlz
QWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZSk6CisgICAgICAgIEFkZGVkIGF1dG92YWN1dW1pbmcg
dG8gdGhlIGNvbnN0cnVjdG9yIHRvIGF2b2lkIG1hbnVhbGx5IGNhbGxpbmcKKyAgICAgICAgcnVu
VmFjdXVtQ29tbWFuZCgpLiBDaGFuZ2VkIGNvbnN0cnVjdG9yIHRvIHRha2UgaW4gc2Vzc2lvbklE
IHNvIGl0CisgICAgICAgIGNhbiB1c2UgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCB3aGlj
aCByZXF1aXJlcyB0aGUgc2Vzc2lvbklELgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJlU3RhdGVtZW50cyk6CisgICAgICAgIEFk
ZGVkIDIgc3RhdGVtZW50cyB0aGF0IHdlcmUgbm90IGJlaW5nIHByZXBhcmVkLgorCisgICAgICAg
IChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWxhdGlvbnNo
aXBFeGlzdHMgY29uc3QpOgorICAgICAgICBDb3JyZWN0ZWQgaW5jb3JyZWN0IGNhcGl0YWxpemF0
aW9uLiBBZGRlZCBjaGVjayBmb3IgbnVsbG9wdCBpbiBjYXNlCisgICAgICAgIGRvbWFpbklEIGlz
IGZvciBhIGRvbWFpbiBub3QgaW4gdGhlIGRhdGFiYXNlIHlldC4KKworICAgICAgICAoV2ViS2l0
OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZG9tYWluSUQgY29uc3QpOgor
ICAgICAgICBDaGFuZ2VkIHJldHVybiB2YWx1ZSB0byBPcHRpb25hbDx1bnNpZ25lZD4uIFNvbWUg
dGVzdHMgd2VyZSBkaXJlY3RseQorICAgICAgICBjaGVja2luZyBmb3Igc3ViZnJhbWVzIHVuZGVy
IHRvcCBmcmFtZSBkb21haW5zIG9uIGRvbWFpbnMgdGhhdCBoYWQKKyAgICAgICAgbm90IGJlZW4g
aW5zZXJ0ZWQgeWV0LiBOb3csIGRvbWFpbklEKCkgd29uJ3QgY3Jhc2ggYnV0IHdpbGwgcmV0dXJu
CisgICAgICAgIGEgbnVsbG9wdCB2YWx1ZSB3aGljaCBjYW4gYmUgY2hlY2tlZCB0byBrbm93IHRo
YXQgdGhlIHRlc3RzIGZhaWxlZC4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwcyk6CisgICAgICAg
IEFkZGVkIGEgY2hlY2sgdG8gYXNzdXJlIGRvbWFpbklEIGV4aXN0cyBhbmQgdXBkYXRlZCB0aGUg
ZG9tYWluSUQKKyAgICAgICAgaW50ZXJhY3Rpb25zIHRvIHdvcmsgYXMgT3B0aW9uYWxzLgorCisg
ICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwb3B1
bGF0ZUZyb21NZW1vcnlTdG9yZSk6CisgICAgICAgIE1vdmVkIHRoZSBwcmVwYXJlU3RhdGVtZW50
cygpIGNhbGwgYWZ0ZXIgdGhlIHZhY3V1bSBjb21tYW5kIGluIHRoZSBjYXNlCisgICAgICAgIHdo
ZXJlIHRoZSBkYXRhYmFzZSBpcyBlbXB0eS4gT3RoZXJ3aXNlIGNhbGxlZCBpdCBiZWZvcmUgcmV0
dXJuaW5nLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpyZWN1cnNpdmVseUZpbmROb25QcmV2YWxlbnREb21haW5zVGhhdFJlZGlyZWN0ZWRU
b1RoaXNEb21haW4pOgorICAgICAgICBBZGRlZCBhIHNwYWNlIHRvIHRoZSBTUUwgY29tbWFuZHMg
dG8gY29ycmVjdCB0aGUgc3ludGF4LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpmaW5kTm90VmVyeVByZXZhbGVudFJlc291cmNlcyk6Cisg
ICAgICAgIENvcnJlY3RlZCBhIGJ1ZyBpbiB0aGUgU1FMIGNvbW1hbmQgZm9yIHF1ZXJ5aW5nCisg
ICAgICAgIHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbi4gVGhlIG9sZCBxdWVyeSB3YXMgYXNr
aW5nIGZvciBzdWJyZXNvdXJjZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVjbGFzc2lmeVJlc291cmNlcyk6CisgICAgICAgIFNwZWxs
aW5nIGZpeC4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICBDaGFuZ2VkIHN0cmluZyBj
b25jYXRlbmF0aW9uIHRvIGJpbmRpbmcuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW5kZmF0aGVyRGF0YUZvckRvbWFpbnMpOgorICAg
ICAgICBUaGUgZ3JhbmRmYXRoZXJpbmcuaHRtbCB0ZXN0IHdhcyBmYWlsaW5nIGJlY2F1c2UgZG9t
YWlucyB3ZXJlIGJlaW5nCisgICAgICAgICJzZXQiIHRvIGdyYW5kZmF0aGVyZWQgaW4gdGhlIGRh
dGFiYXNlIGJlZm9yZSBiZWluZyBpbnNlcnRlZC4gVGhpcyBmaXgKKyAgICAgICAgZW5zdXJlcyBh
bGwgZG9tYWlucyBiZWZvcmUgc2V0dGluZyB0aGUgZ3JhbmRmYXRoZXJpbmcgZmxhZy4KKworICAg
ICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nRnJh
bWVOYXZpZ2F0aW9uKToKKyAgICAgICAgTXVsdGlwbGUgdGVzdHMgd2VyZSBmYWlsaW5nIGJlY2F1
c2UgdGhlIHF1ZXJ5IHRvIGluc2VydCB0aGUgcmVsYXRpb25zaGlwCisgICAgICAgIGZvciB0aGUg
c291cmNlIGRvbWFpbiByZWxpZXMgb24gdGhlIHRhcmdldCBkb21haW4gYmVpbmcgaW4gdGhlCisg
ICAgICAgIE9ic2VydmVkRG9tYWlucyB0YWJsZS4gVGhpcyBwYXRjaCBlbnN1cmVzIGFsbCBkb21h
aW5zIGFyZSBhZGRlZCBiZWZvcmUKKyAgICAgICAgcGVyZm9ybWluZyB0aGUgcXVlcnkuCisKKyAg
ICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFVz
ZXJJbnRlcmFjdGlvbik6CisgICAgICAgIEFkZGVkIGEgIT0gU1FMSVRFX09LIGNoZWNrIHRvIG1h
a2Ugc3VyZSBhbiBlcnJvciBpcyBsb2dnZWQgaWYgdGhlCisgICAgICAgIHN0YXRlbWVudCBmYWls
cyB0byBiaW5kLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpjbGVhclVzZXJJbnRlcmFjdGlvbik6CisgICAgICAgIENoYW5nZWQgc3RyaW5n
IGNvbmNhdGVuYXRpb24gdG8gYmluZGluZy4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVXNlckludGVyYWN0aW9uKTogICAKKyAg
ICAgICAgVGhlIFNRTCBzdGF0ZW1lbnQgd2FzIGJlaW5nIGJvdW5kIHRvIGEgdmFsdWUgYW5kIG5v
dCBiZWluZyByZXNldC4gVGhpcworICAgICAgICBwYXRjaCByZXNldHMgdGhlIHN0YXRlbWVudCBh
ZnRlciBiaW5kaW5nLiBBZGRpdGlvbmFsbHksIHRoZSBzdGVwKCkKKyAgICAgICAgZnVuY3Rpb24g
d2FzIGJlaW5nIGNvbXBhcmVkIHRvIFNRTElURV9ET05FIGluc3RlYWQgb2YgU1FMSVRFX1JPVywK
KyAgICAgICAgY2F1c2luZyBhbiBlcnJvciBpZiB0aGUgcXVlcnkgcmV0dXJuZWQgcmVzdWx0cy4g
VGhlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpIHdhcyBjYXVzaW5nIG51bGwgc2VhcmNo
ZXMgdG8gY3Jhc2ggaW5zdGVhZCBvZgorICAgICAgICByZXR1cm5pbmcgZmFsc2UgKGkuZS4gaWYg
YSBkb21haW4gaXMgbm90IGluIHRoZSBkYXRhYmFzZSBpdCBzaG91bGQKKyAgICAgICAgcmV0dXJu
IHRoYXQgaXQgaGFzIG5vIHVzZXIgaW50ZXJhY3Rpb24gaW5zdGVhZCBvZiBjcmFzaGluZykuCisK
KyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNl
dFByZXZhbGVudFJlc291cmNlKTogCisgICAgICAgIFVwZGF0ZWQgZG9tYWluSUQgY2FsbCB0byBh
Y3QgYXMgYW4gT3B0aW9uYWwuIAorICAgICAgICAKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZWRpY2F0ZVZhbHVlRm9yRG9tYWluIGNvbnN0
KToKKyAgICAgICAgVGhlIFNRTCBzdGF0ZW1lbnQgd2FzIGJlaW5nIGJvdW5kIHRvIGEgdmFsdWUg
YW5kIG5vdCBiZWluZyByZXNldC4gVGhpcworICAgICAgICBwYXRjaCByZXNldHMgdGhlIHN0YXRl
bWVudCBhZnRlciBiaW5kaW5nLiBTUUxJVEVfRE9ORSBjaGFuZ2VkIHRvCisgICAgICAgIFNRTElU
RV9ST1cgdG8gcmV0dXJuIG5vbi1lbXB0eSBxdWVyeSByZXN1bHRzLiBBU1NFUlRfTk9UX1JFQUNI
RUQoKQorICAgICAgICByZW1vdmVkIGZvciB0aGUgc2FtZSByZWFzb25zIGFzIGFib3ZlLiAKKwor
ICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZW5z
dXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4pOgorICAgICAgICBGaXhl
ZCB0aGUgcmVsZWFzZSBsb2cgc3RhdGVtZW50IHdoaWNoIHdhcyBsb2dnaW5nIHRoZSB3cm9uZyBm
dW5jdGlvbiAKKyAgICAgICAgbmFtZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJEYXRhYmFzZUNvbnRlbnRzKTogCisgICAgICAg
IENsZWFycyB0aGUgZGF0YWJhc2UgYW5kIHJlYnVpbGRzIHRoZSB0YWJsZXMgb24gYSBjbGVhciBj
b21tYW5kIHRvCisgICAgICAgIG1hdGNoIHRoZSBmdW5jdGlvbmFsaXR5IGluIHRoZSBNZW1vcnkg
U3RvcmUuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OmNsZWFyKTogICAgICAgICAgICAgICAgICAgCisgICAgICAgIENhbGwgdGhlIGNsZWFy
RGF0YWJhc2VDb250ZW50cyBmdW5jdGlvbiB0byBtYXRjaCB0aGUgZnVuY3Rpb25hbGl0eSAKKyAg
ICAgICAgaW4gdGhlIE1lbW9yeSBTdG9yZS4gCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc1VzZXJHcmFudGVkU3RvcmFnZUFjY2Vzc1Ro
cm91Z2hQcm9tcHQgY29uc3QpOgorICAgICAgICBVcGRhdGVkIGRvbWFpbklEIGNhbGwgdG8gYWN0
IGFzIGFuIE9wdGlvbmFsLiAKKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVW5leHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9uKToK
KyAgICAgICAgVGVzdHMgd2VyZSBmYWlsaW5nIGJlY2F1c2Ugc2hvdWxkUmVtb3ZlQWxsV2Vic2l0
ZURhdGFGb3IoKSB3YXMgbm90IAorICAgICAgICBjaGVja2luZyBmb3IgZXhwaXJlZCB1c2VyIGlu
dGVyYWN0aW9uLiBNYXRjaGVkIGZ1bmN0aW9uYWxpdHkgaW4gdGhlCisgICAgICAgIE1lbW9yeSBT
dG9yZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6c2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3IpOgorICAgICAgICBUZXN0cyB3ZXJl
IGZhaWxpbmcgYmVjYXVzZSBzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvcigpIHdhcyBub3Qg
CisgICAgICAgIGNoZWNraW5nIGZvciBleHBpcmVkIHVzZXIgaW50ZXJhY3Rpb24uIE1hdGNoZWQg
ZnVuY3Rpb25hbGl0eSBpbiB0aGUKKyAgICAgICAgTWVtb3J5IFN0b3JlLiAKKworICAgICAgICAo
V2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVnaXN0cmFibGVE
b21haW5zVG9SZW1vdmVXZWJzaXRlRGF0YUZvcik6CisgICAgICAgIFNwZWxsaW5nIGZpeC4gCisK
KyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBy
dW5lU3RhdGlzdGljc0lmTmVlZGVkKTogCisgICAgICAgIExhc3Qgc2VlbiBzaG91bGQgYmUgc29y
dGVkIGluIGFzY2VuZGluZyBvcmRlciBiZWNhdXNlIHlvdSB3YW50IHRvIAorICAgICAgICBwcnVu
ZSB0aGUgb2xkZXIgc3RhdGlzdGljcyBmaXJzdCwgd2hpY2ggd2lsbCBoYXZlIGEgbG93ZXIgbGFz
dFNlZW4KKyAgICAgICAgZmllbGQgKHNlY29uZHNTaW5jZUVwb2NoKCkgd2lsbCBiZSBsb3dlciBm
b3Igb2xkZXIgdmFsdWVzKS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6c2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3IgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICBEZWxldGVkIGNvbnN0IHNwZWNpZmllciBiZWNhdXNlIHRoZSBmdW5j
dGlvbiBuZWVkcyB0byBjbGVhciB0aGUKKyAgICAgICAgZGF0YWJhc2UuIAorCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZS5oOiAgICAgIAorICAgICAgICBEZWNsYXJlZCBuZXcgZnVuY3Rpb25zLiBVcGRhdGVkIHNw
ZWxsaW5nIGVycm9yIChyZWdpc3RlcmFibGUgLS0+IAorICAgICAgICByZWdpc3RyYWJsZSkuIFVw
ZGF0ZWQgY29uc3RydWN0b3IgdG8gdGFrZSBzZXNzaW9uSUQuIAorCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOiAK
KyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUpOgorICAgICAgICBJVFAgZGF0YWJhc2UgZmxhZyBub3cg
aXMgc3RvcmVkIGluIHRoZSBOZXR3b3JrUHJvY2Vzcy4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHA6IAorCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
Ojppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOiAKKyAgICAgICAgU2V0IHRoZSBJVFAgZGF0YWJh
c2UgZmxhZyB3aGljaCBpcyBub3cgc3RvcmVkIGluIHRoZSBOZXR3b3JrIFByb2Nlc3MuIAorCisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRVc2VJVFBEYXRhYmFzZSk6IAorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzOjppc0lUUERhdGFiYXNlRW5hYmxlZCBjb25zdCk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgIFBhc3Nl
ZCB0aGUgc2V0VXNlSVRQRGF0YWJhc2UgZmxhZyB0byB0aGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rp
b24gCisgICAgICAgIG9mIHRoZSBzdGF0aXN0aWNzIHN0b3JlIHRvIGVuYWJsZSB0aGUgZGF0YWJh
c2UgYmFja2VuZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246Ok5ldHdvcmtTZXNzaW9uKToKKyAg
ICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5IHdhcyBub3QgZ2V0dGlu
ZyBjYWxsZWQgb24gdGhlIAorICAgICAgICBXZWJLaXRUZXN0UnVubmVyIHJlc291cmNlTG9hZFN0
YXRpc3RpY3MgcGF0aC4gVGhpcyB3YXMgcHJldmVudGluZworICAgICAgICB0aGUgZGF0YWJhc2Ug
ZmlsZSBmcm9tIG9wZW5pbmcuIAorCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpy
ZWNyZWF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY1N0b3JlKToKKyAgICAgICAgRGVzdHJveSBvbGQg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIGFuZCBjcmVhdGUgYSBuZXcgb25lIHVzaW5n
CisgICAgICAgIHRoZSBJVFAgZGF0YWJhc2UuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRh
U3RvcmVSZWYuY3BwOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0VXNlSVRQRGF0YWJh
c2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0VXNlSVRQRGF0YWJhc2UpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFVzZUlUUERhdGFiYXNlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICBQYXNz
ZWQgdGhlIHNldFVzZUlUUERhdGFiYXNlIGZsYWcgdG8gdGhlIGluaXRpYWxpemF0aW9uIGZ1bmN0
aW9uCisgICAgICAgIG9mIHRoZSBzdGF0aXN0aWNzIHN0b3JlIHRvIGVuYWJsZSB0aGUgZGF0YWJh
c2UgYmFja2VuZC4gCisKIDIwMTktMDktMjUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXBsYWNlIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5DVERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUgd2l0aCBfV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5kYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oCmluZGV4IDE0OTg2NmZiYzExOTdiYTA5ZGEy
MTU3NWYxY2VhZmFkNjQxOWZlNmIuLjUyMjRmMWU3NzdjNTZiZWZiM2Q2NmY4ZTA1ODhhZDAwOGEy
MDQyNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRh
YmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5o
CkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICBib29sIHJldHVybnNBdExlYXN0T25lUmVz
dWx0KGNvbnN0IFN0cmluZyYpOwogICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgdGFibGVF
eGlzdHMoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBjbGVhckFsbFRhYmxlcygpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJBbGxUYWJsZXMoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBp
bnQgcnVuVmFjdXVtQ29tbWFuZCgpOwogICAgIGludCBydW5JbmNyZW1lbnRhbFZhY3V1bUNvbW1h
bmQoKTsKICAgICAKQEAgLTEyNSw3ICsxMjUsNyBAQCBwdWJsaWM6CiAgICAgLy8gICAgICAgICAg
ICAgICBmaWxlLCBidXQgcmVtb3ZlcyB0aGUgZW1wdHkgcGFnZXMgb25seSB3aGVuIFBSQUdNQSBJ
TkNSRU1BTlRBTF9WQUNVVU0KICAgICAvLyAgICAgICAgICAgICAgIGlzIGNhbGxlZC4KICAgICBl
bnVtIEF1dG9WYWN1dW1QcmFnbWEgeyBBdXRvVmFjdXVtTm9uZSA9IDAsIEF1dG9WYWN1dW1GdWxs
ID0gMSwgQXV0b1ZhY3V1bUluY3JlbWVudGFsID0gMiB9OwotICAgIGJvb2wgdHVybk9uSW5jcmVt
ZW50YWxBdXRvVmFjdXVtKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCB0dXJuT25JbmNyZW1l
bnRhbEF1dG9WYWN1dW0oKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29sbGF0aW9u
RnVuY3Rpb24oY29uc3QgU3RyaW5nJiBjb2xsYXRpb25OYW1lLCBXVEY6OkZ1bmN0aW9uPGludChp
bnQsIGNvbnN0IHZvaWQqLCBpbnQsIGNvbnN0IHZvaWQqKT4mJik7CiAgICAgdm9pZCByZW1vdmVD
b2xsYXRpb25GdW5jdGlvbihjb25zdCBTdHJpbmcmIGNvbGxhdGlvbk5hbWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKaW5kZXgg
N2UxZjBhY2YzZWRmOGU3ZmFlOTViNGFjYTNjYWZkYzIxN2Q5MzRmNC4uZjc2ZTlkMzA3ZjZkZmUw
NGZiMGE2ZWQ0MTA5YzFjM2Q1MjFhNzJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCkBAIC0xNjAsNyArMTYwLDcgQEAgY29u
c3RleHByIGF1dG8gY3JlYXRlU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tID0gIkNSRUFU
RSBUQUJMRSBTdWJyZXNvdXJjZVUKICAgICAiRk9SRUlHTiBLRVkoc3VicmVzb3VyY2VEb21haW5J
RCkgUkVGRVJFTkNFUyBPYnNlcnZlZERvbWFpbnMoZG9tYWluSUQpIE9OIERFTEVURSBDQVNDQURF
LCAiCiAgICAgIkZPUkVJR04gS0VZKGZyb21Eb21haW5JRCkgUkVGRVJFTkNFUyBPYnNlcnZlZERv
bWFpbnMoZG9tYWluSUQpIE9OIERFTEVURSBDQVNDQURFKTsiX3M7CiAgICAgCi1SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmUoV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlJiBzdG9yZSwgV29ya1F1ZXVlJiB3
b3JrUXVldWUsIFNob3VsZEluY2x1ZGVMb2NhbGhvc3Qgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCwg
Y29uc3QgU3RyaW5nJiBzdG9yYWdlRGlyZWN0b3J5UGF0aCkKK1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZShXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUmIHN0b3JlLCBXb3JrUXVldWUmIHdvcmtRdWV1ZSwg
U2hvdWxkSW5jbHVkZUxvY2FsaG9zdCBzaG91bGRJbmNsdWRlTG9jYWxob3N0LCBjb25zdCBTdHJp
bmcmIHN0b3JhZ2VEaXJlY3RvcnlQYXRoLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAg
OiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoc3RvcmUsIHdvcmtRdWV1ZSwgc2hvdWxkSW5j
bHVkZUxvY2FsaG9zdCkKICAgICAsIG1fc3RvcmFnZURpcmVjdG9yeVBhdGgoc3RvcmFnZURpcmVj
dG9yeVBhdGggKyAiL29ic2VydmF0aW9ucy5kYiIpCiAgICAgLCBtX29ic2VydmVkRG9tYWluQ291
bnQobV9kYXRhYmFzZSwgb2JzZXJ2ZWREb21haW5Db3VudFF1ZXJ5KQpAQCAtMTkzLDYgKzE5Myw3
IEBAIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZShXZWJSZXNvCiAgICAgLCBtX3VwZGF0ZUdyYW5kZmF0aGVyZWRT
dGF0ZW1lbnQobV9kYXRhYmFzZSwgdXBkYXRlR3JhbmRmYXRoZXJlZFF1ZXJ5KQogICAgICwgbV9p
c0dyYW5kZmF0aGVyZWRTdGF0ZW1lbnQobV9kYXRhYmFzZSwgaXNHcmFuZGZhdGhlcmVkUXVlcnkp
CiAgICAgLCBtX2ZpbmRFeHBpcmVkVXNlckludGVyYWN0aW9uU3RhdGVtZW50KG1fZGF0YWJhc2Us
IGZpbmRFeHBpcmVkVXNlckludGVyYWN0aW9uUXVlcnkpCisgICAgLCBtX3Nlc3Npb25JRChzZXNz
aW9uSUQpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTIxMiw2ICsy
MTMsOSBAQCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmUoV2ViUmVzbwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAgICAgfQorICAgIAorICAgIGlmICghbV9kYXRhYmFzZS50dXJuT25JbmNyZW1lbnRh
bEF1dG9WYWN1dW0oKSkKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0g
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnR1cm5PbkluY3JlbWVudGFsQXV0
b1ZhY3V1bSBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFi
YXNlLmxhc3RFcnJvck1zZygpKTsKIAogICAgIGlmICghcHJlcGFyZVN0YXRlbWVudHMoKSkgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMgZmFpbGVkLCBlcnJvciBtZXNz
YWdlOiAle3B1YmxpY31zLCBkYXRhYmFzZSBwYXRoOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRh
YmFzZS5sYXN0RXJyb3JNc2coKSwgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aC51dGY4KCkuZGF0YSgp
KTsKQEAgLTMyOCw3ICszMzIsOCBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpwcmVwYXJlU3RhdGVtZW50cygpCiAgICAgICAgIHx8IG1fdXBkYXRlR3JhbmRmYXRo
ZXJlZFN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1faXNHcmFu
ZGZhdGhlcmVkU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9m
aW5kRXhwaXJlZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09L
Ci0gICAgICAgICkgeworICAgICAgICB8fCBtX3RvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbS5w
cmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IG1fdG9wRnJhbWVMaW5rRGVjb3JhdGlv
bnNGcm9tRXhpc3RzLnByZXBhcmUoKSAhPSBTUUxJVEVfT0spIHsKICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OnByZXBhcmVTdGF0ZW1lbnRzIGZhaWxlZCB0byBwcmVwYXJlLCBlcnJvciBtZXNzYWdlOiAl
e3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zNTUsNyArMzYw
LDcgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0T2Jz
ZXJ2ZWREb21haW4oY29uc3QgUmVzb3VyY2VMb2EKICAgICAgICAgfHwgbV9pbnNlcnRPYnNlcnZl
ZERvbWFpblN0YXRlbWVudC5iaW5kSW50KDgsIGxvYWRTdGF0aXN0aWNzLmRhdGFSZWNvcmRzUmVt
b3ZlZCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1faW5zZXJ0T2JzZXJ2ZWREb21haW5TdGF0
ZW1lbnQuYmluZEludCg5LCBsb2FkU3RhdGlzdGljcy50aW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5
RHVlVG9Vc2VySW50ZXJhY3Rpb24pICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX2luc2VydE9i
c2VydmVkRG9tYWluU3RhdGVtZW50LmJpbmRJbnQoMTAsIGxvYWRTdGF0aXN0aWNzLnRpbWVzQWNj
ZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VBY2Nlc3NBUEkpICE9IFNRTElURV9PSykgewot
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0T2JzZXJ2ZWREb21haW4gZmFpbGVkIHRvIGJpbmQs
IGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1z
ZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwg
IiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydE9ic2VydmVk
RG9tYWluIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMzcyLDI0ICszNzcsMjYgQEAgYm9v
bCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0T2JzZXJ2ZWREb21h
aW4oY29uc3QgUmVzb3VyY2VMb2EKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVsYXRpb25zaGlwRXhpc3RzKFdlYkNvcmU6
OlNRTGl0ZVN0YXRlbWVudCYgc3RhdGVtZW50LCB1bnNpZ25lZCBmaXJzdERvbWFpbklELCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgc2Vjb25kRG9tYWluKSBjb25zdAorYm9vbCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVsYXRpb25zaGlwRXhpc3RzKFdlYkNvcmU6OlNR
TGl0ZVN0YXRlbWVudCYgc3RhdGVtZW50LCBPcHRpb25hbDx1bnNpZ25lZD4gZmlyc3REb21haW5J
RCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHNlY29uZERvbWFpbikgY29uc3QKIHsKKyAgICBp
ZiAoIWZpcnN0RG9tYWluSUQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKICAgICBBU1NF
UlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIGlmIChzdGF0ZW1lbnQuYmluZEludCgxLCBm
aXJzdERvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICBpZiAoc3RhdGVtZW50LmJpbmRJbnQoMSwg
KmZpcnN0RG9tYWluSUQpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzdGF0ZW1lbnQuYmluZFRl
eHQoMiwgc2Vjb25kRG9tYWluLnN0cmluZygpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc3Rh
dGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfUk9XKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptX2lu
c2VydERvbWFpblJlbGF0aW9uc2hpcFN0YXRlbWVudCBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVz
c2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV9pbnNlcnREb21haW5SZWxhdGlvbnNo
aXBTdGF0ZW1lbnQgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0
aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgCi0gICAgYm9vbCByZWxh
dGlvblNoaXBFeGlzdHMgPSAhIXN0YXRlbWVudC5nZXRDb2x1bW5JbnQoMCk7CisgICAgYm9vbCBy
ZWxhdGlvbnNoaXBFeGlzdHMgPSAhIXN0YXRlbWVudC5nZXRDb2x1bW5JbnQoMCk7CiAKICAgICBp
bnQgcmVzZXRSZXN1bHQgPSBzdGF0ZW1lbnQucmVzZXQoKTsKICAgICBBU1NFUlRfVU5VU0VEKHJl
c2V0UmVzdWx0LCByZXNldFJlc3VsdCA9PSBTUUxJVEVfT0spOwogICAgIAotICAgIHJldHVybiBy
ZWxhdGlvblNoaXBFeGlzdHM7CisgICAgcmV0dXJuIHJlbGF0aW9uc2hpcEV4aXN0czsKIH0KIAog
Ym9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RG9tYWluUmVs
YXRpb25zaGlwKFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCYgc3RhdGVtZW50LCB1bnNpZ25lZCBk
b21haW5JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lKQpAQCAtMzk5LDcgKzQw
Niw3IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydERv
bWFpblJlbGF0aW9uc2hpcChXZWJDb3JlOjpTUUxpCiAgICAgaWYgKHN0YXRlbWVudC5iaW5kSW50
KDEsIGRvbWFpbklEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc3RhdGVtZW50LmJpbmRUZXh0
KDIsIHRvcEZyYW1lLnN0cmluZygpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc3RhdGVtZW50
LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3
b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV9pbnNlcnRE
b21haW5SZWxhdGlvbnNoaXBTdGF0ZW1lbnQgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6
ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1faW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwU3Rh
dGVtZW50IGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtNDE2LDcgKzQyMyw3IEBAIGJvb2wg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNvbmZpcm1Eb21haW5Eb2VzTm90
RXhpc3QoY29uc3QgUmVnaXN0CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAg
ICBpZiAobV9kb21haW5JREZyb21TdHJpbmdTdGF0ZW1lbnQuYmluZFRleHQoMSwgZG9tYWluLnN0
cmluZygpKSAhPSBTUUxJVEVfT0spIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29y
aywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNvbmZpcm1Eb21h
aW5Eb2VzTm90RXhpc3QgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMi
LCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0df
RVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OmNvbmZpcm1Eb21haW5Eb2VzTm90RXhpc3QgZmFpbGVkIHRvIGJpbmQs
IGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1z
ZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CkBAIC00MzQsMTcgKzQ0MSwyMSBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpjb25maXJtRG9tYWluRG9lc05vdEV4aXN0KGNvbnN0IFJlZ2lzdAog
fQogI2VuZGlmCiAKLXVuc2lnbmVkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
Ojpkb21haW5JRChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKSBjb25zdAorT3B0aW9u
YWw8dW5zaWduZWQ+IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkb21haW5J
RChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKSBjb25zdAogewogICAgIEFTU0VSVCgh
UnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgdW5zaWduZWQgZG9tYWluSUQgPSAwOwogCi0gICAg
aWYgKG1fZG9tYWluSURGcm9tU3RyaW5nU3RhdGVtZW50LmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJp
bmcoKSkgIT0gU1FMSVRFX09LCi0gICAgICAgIHx8IG1fZG9tYWluSURGcm9tU3RyaW5nU3RhdGVt
ZW50LnN0ZXAoKSAhPSBTUUxJVEVfUk9XKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5l
dHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkb21haW5J
REZyb21TdHJpbmcgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9k
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgICAgICByZXR1cm4gZG9tYWluSUQ7CisgICAgaWYgKG1fZG9tYWluSURGcm9tU3RyaW5nU3Rh
dGVtZW50LmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LKSB7CisgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkb21haW5JREZyb21TdHJpbmcgZmFpbGVk
LCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JN
c2coKSk7CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgfQorICAgIAorICAgIGlm
IChtX2RvbWFpbklERnJvbVN0cmluZ1N0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX1JPVykgewor
ICAgICAgICBpbnQgcmVzZXRSZXN1bHQgPSBtX2RvbWFpbklERnJvbVN0cmluZ1N0YXRlbWVudC5y
ZXNldCgpOworICAgICAgICBBU1NFUlRfVU5VU0VEKHJlc2V0UmVzdWx0LCByZXNldFJlc3VsdCA9
PSBTUUxJVEVfT0spOworICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIAogICAg
IGRvbWFpbklEID0gbV9kb21haW5JREZyb21TdHJpbmdTdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDAp
OwpAQCAtNDU4LDI4ICs0NjksMzEgQEAgdW5zaWduZWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OmRvbWFpbklEKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJgogdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlw
cyhjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiBsb2FkU3RhdGlzdGljcykKIHsKICAgICBB
U1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKLQogICAgIGF1dG8gcmVnaXN0cmFibGVEb21haW5J
RCA9IGRvbWFpbklEKGxvYWRTdGF0aXN0aWNzLnJlZ2lzdHJhYmxlRG9tYWluKTsKKyAgICAKKyAg
ICBpZiAoIXJlZ2lzdHJhYmxlRG9tYWluSUQpCisgICAgICAgIHJldHVybjsKKyAgICAKICAgICBm
b3IgKGF1dG8mIHRvcEZyYW1lRG9tYWluIDogbG9hZFN0YXRpc3RpY3Muc3RvcmFnZUFjY2Vzc1Vu
ZGVyVG9wRnJhbWVEb21haW5zKQotICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9z
dG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnNTdGF0ZW1lbnQsIHJlZ2lzdHJhYmxlRG9t
YWluSUQsIHRvcEZyYW1lRG9tYWluKTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlw
KG1fc3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zU3RhdGVtZW50LCByZWdpc3RyYWJs
ZURvbWFpbklELnZhbHVlKCksIHRvcEZyYW1lRG9tYWluKTsKIAogICAgIGZvciAoYXV0byYgdG9E
b21haW4gOiBsb2FkU3RhdGlzdGljcy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvKQotICAgICAg
ICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvLCBy
ZWdpc3RyYWJsZURvbWFpbklELCB0b0RvbWFpbik7CisgICAgICAgIGluc2VydERvbWFpblJlbGF0
aW9uc2hpcChtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8sIHJlZ2lzdHJhYmxlRG9tYWluSUQu
dmFsdWUoKSwgdG9Eb21haW4pOwogICAgIAogICAgIGZvciAoYXV0byYgZnJvbURvbWFpbiA6IGxv
YWRTdGF0aXN0aWNzLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSkKLSAgICAgICAgaW5zZXJ0
RG9tYWluUmVsYXRpb25zaGlwKG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLCByZWdpc3Ry
YWJsZURvbWFpbklELCBmcm9tRG9tYWluKTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25z
aGlwKG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLCByZWdpc3RyYWJsZURvbWFpbklELnZh
bHVlKCksIGZyb21Eb21haW4pOwogICAgIAogICAgIGZvciAoYXV0byYgdG9wRnJhbWVEb21haW4g
OiBsb2FkU3RhdGlzdGljcy5zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zKQotICAgICAgICBp
bnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zLCBy
ZWdpc3RyYWJsZURvbWFpbklELCB0b3BGcmFtZURvbWFpbik7CisgICAgICAgIGluc2VydERvbWFp
blJlbGF0aW9uc2hpcChtX3N1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMsIHJlZ2lzdHJhYmxl
RG9tYWluSUQudmFsdWUoKSwgdG9wRnJhbWVEb21haW4pOwogICAgIAogICAgIGZvciAoYXV0byYg
dG9wRnJhbWVEb21haW4gOiBsb2FkU3RhdGlzdGljcy5zdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVE
b21haW5zKQotICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVu
ZGVyVG9wRnJhbWVEb21haW5zLCByZWdpc3RyYWJsZURvbWFpbklELCB0b3BGcmFtZURvbWFpbik7
CisgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5kZXJUb3BG
cmFtZURvbWFpbnMsIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgdG9wRnJhbWVEb21haW4p
OwogICAgIAogICAgIGZvciAoYXV0byYgdG9Eb21haW4gOiBsb2FkU3RhdGlzdGljcy5zdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0c1RvKQotICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAo
bV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLCByZWdpc3RyYWJsZURvbWFpbklELCB0b0Rv
bWFpbik7CisgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RzVG8sIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgdG9Eb21haW4pOwog
ICAgIAogICAgIGZvciAoYXV0byYgZnJvbURvbWFpbiA6IGxvYWRTdGF0aXN0aWNzLnN1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSkKLSAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlw
KG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLCByZWdpc3RyYWJsZURvbWFpbklELCBm
cm9tRG9tYWluKTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fc3VicmVzb3Vy
Y2VVbmlxdWVSZWRpcmVjdHNGcm9tLCByZWdpc3RyYWJsZURvbWFpbklELnZhbHVlKCksIGZyb21E
b21haW4pOwogfQogCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpw
b3B1bGF0ZUZyb21NZW1vcnlTdG9yZShjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5
U3RvcmUmIG1lbW9yeVN0b3JlKQpAQCAtNDk3LDggKzUxMSw2IEBAIHZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBvcHVsYXRlRnJvbU1lbW9yeVN0b3JlKGNvbnN0IFJl
c291cmNlCiAgICAgLy8gY2FuIHJlZmVyIHRvIHRoZSBPYnNlcnZlZERvbWFpbiB0YWJsZSBlbnRy
aWVzCiAgICAgZm9yIChhdXRvJiBzdGF0aXN0aWMgOiBzdGF0aXN0aWNzTWFwKQogICAgICAgICBp
bnNlcnREb21haW5SZWxhdGlvbnNoaXBzKHN0YXRpc3RpYy52YWx1ZSk7Ci0KLSAgICBtX2RhdGFi
YXNlLnJ1blZhY3V1bUNvbW1hbmQoKTsKIH0KIAogdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6Y2FsY3VsYXRlQW5kU3VibWl0VGVsZW1ldHJ5KCkgY29uc3QKQEAgLTUy
OSw3ICs1NDEsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpp
bmNyZW1lbnRSZWNvcmRzRGVsZXRlZENvdW50Rm9yRG9tYWlucwogICAgIFNRTGl0ZVN0YXRlbWVu
dCBkb21haW5zVG9VcGRhdGVTdGF0ZW1lbnQobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiVVBEQVRF
IE9ic2VydmVkRG9tYWlucyBTRVQgZGF0YVJlY29yZHNSZW1vdmVkID0gZGF0YVJlY29yZHNSZW1v
dmVkICsgMSBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiBJTiAoIiwgZG9tYWluc1RvU3RyaW5nKGRv
bWFpbnMpLCAiKSIpKTsKICAgICBpZiAoZG9tYWluc1RvVXBkYXRlU3RhdGVtZW50LnByZXBhcmUo
KSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgZG9tYWluc1RvVXBkYXRlU3RhdGVtZW50LnN0ZXAo
KSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAi
JXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5jcmVtZW50U3RhdGlz
dGljc0ZvckRvbWFpbnMgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lG
X0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjppbmNyZW1lbnRTdGF0aXN0aWNzRm9yRG9tYWlucyBmYWlsZWQsIGVycm9yIG1lc3Nh
Z2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogfQpAQCAtNTQ2LDI0ICs1NTgsMzQgQEAg
dW5zaWduZWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlY3Vyc2l2ZWx5
RmluZE5vblByZXZhbGVudERvbWFpbnMKICAgICArK251bWJlck9mUmVjdXJzaXZlQ2FsbHM7CiAK
ICAgICBTdGRTZXQ8dW5zaWduZWQ+IG5ld2x5SWRlbnRpZmllZERvbWFpbnM7Ci0gICAgU1FMaXRl
U3RhdGVtZW50IGZpbmRTdWJyZXNvdXJjZXMobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNU
IFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQgZnJvbSBTdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20gSU5ORVIgSk9JTiBPYnNlcnZlZERvbWFpbnMgT04gT2Jz
ZXJ2ZWREb21haW5zLmRvbWFpbklEID0gU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLmZy
b21Eb21haW5JRCBXSEVSRSBzdWJyZXNvdXJjZURvbWFpbklEID0gIiwgU3RyaW5nOjpudW1iZXIo
cHJpbWFyeURvbWFpbklEKSwgIkFORCBPYnNlcnZlZERvbWFpbnMuaXNQcmV2YWxlbnQgPSAwIikp
OwotICAgIGlmIChmaW5kU3VicmVzb3VyY2VzLnByZXBhcmUoKSA9PSBTUUxJVEVfT0spIHsKLSAg
ICAgICAgd2hpbGUgKGZpbmRTdWJyZXNvdXJjZXMuc3RlcCgpID09IFNRTElURV9ST1cpIHsKLSAg
ICAgICAgICAgIGF1dG8gbmV3RG9tYWluSUQgPSBmaW5kU3VicmVzb3VyY2VzLmdldENvbHVtbklu
dCgwKTsKLSAgICAgICAgICAgIGF1dG8gaW5zZXJ0UmVzdWx0ID0gbm9uUHJldmFsZW50UmVkaXJl
Y3Rpb25Tb3VyY2VzLmluc2VydChuZXdEb21haW5JRCk7Ci0gICAgICAgICAgICBpZiAoaW5zZXJ0
UmVzdWx0LnNlY29uZCkKLSAgICAgICAgICAgICAgICBuZXdseUlkZW50aWZpZWREb21haW5zLmlu
c2VydChuZXdEb21haW5JRCk7Ci0gICAgICAgIH0KKyAgICBTUUxpdGVTdGF0ZW1lbnQgZmluZFN1
YnJlc291cmNlcyhtX2RhdGFiYXNlLCAiU0VMRUNUIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3Rz
RnJvbS5mcm9tRG9tYWluSUQgZnJvbSBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20gSU5O
RVIgSk9JTiBPYnNlcnZlZERvbWFpbnMgT04gT2JzZXJ2ZWREb21haW5zLmRvbWFpbklEID0gU3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5JRCBXSEVSRSBzdWJyZXNvdXJj
ZURvbWFpbklEID0gPyBBTkQgT2JzZXJ2ZWREb21haW5zLmlzUHJldmFsZW50ID0gMCJfcyk7Cisg
ICAgaWYgKGZpbmRTdWJyZXNvdXJjZXMucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICB8
fCBmaW5kU3VicmVzb3VyY2VzLmJpbmRJbnQoMSwgcHJpbWFyeURvbWFpbklEKSAhPSBTUUxJVEVf
T0spIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwg
IiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlY3Vyc2l2ZWx5Rmlu
ZE5vblByZXZhbGVudERvbWFpbnNUaGF0UmVkaXJlY3RlZFRvVGhpc0RvbWFpbiBmYWlsZWQsIGVy
cm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygp
KTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiAwOworICAg
IH0KKyAgICAKKyAgICB3aGlsZSAoZmluZFN1YnJlc291cmNlcy5zdGVwKCkgPT0gU1FMSVRFX1JP
VykgeworICAgICAgICBpbnQgbmV3RG9tYWluSUQgPSBmaW5kU3VicmVzb3VyY2VzLmdldENvbHVt
bkludCgwKTsKKyAgICAgICAgYXV0byBpbnNlcnRSZXN1bHQgPSBub25QcmV2YWxlbnRSZWRpcmVj
dGlvblNvdXJjZXMuaW5zZXJ0KG5ld0RvbWFpbklEKTsKKyAgICAgICAgaWYgKGluc2VydFJlc3Vs
dC5zZWNvbmQpCisgICAgICAgICAgICBuZXdseUlkZW50aWZpZWREb21haW5zLmluc2VydChuZXdE
b21haW5JRCk7CiAgICAgfQogCi0gICAgU1FMaXRlU3RhdGVtZW50IGZpbmRUb3BGcmFtZXMobV9k
YXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbS5m
cm9tRG9tYWluSUQgZnJvbSBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20gSU5ORVIgSk9JTiBP
YnNlcnZlZERvbWFpbnMgT04gT2JzZXJ2ZWREb21haW5zLmRvbWFpbklEID0gVG9wRnJhbWVVbmlx
dWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5JRCBXSEVSRSB0YXJnZXREb21haW5JRCA9ICIsIFN0
cmluZzo6bnVtYmVyKHByaW1hcnlEb21haW5JRCksICJBTkQgT2JzZXJ2ZWREb21haW5zLmlzUHJl
dmFsZW50ID0gMCIpKTsKLSAgICBpZiAoZmluZFRvcEZyYW1lcy5wcmVwYXJlKCkgPT0gU1FMSVRF
X09LKSB7Ci0gICAgICAgIHdoaWxlIChmaW5kVG9wRnJhbWVzLnN0ZXAoKSA9PSBTUUxJVEVfUk9X
KSB7Ci0gICAgICAgICAgICBhdXRvIG5ld0RvbWFpbklEID0gZmluZFRvcEZyYW1lcy5nZXRDb2x1
bW5JbnQoMCk7Ci0gICAgICAgICAgICBhdXRvIGluc2VydFJlc3VsdCA9IG5vblByZXZhbGVudFJl
ZGlyZWN0aW9uU291cmNlcy5pbnNlcnQobmV3RG9tYWluSUQpOwotICAgICAgICAgICAgaWYgKGlu
c2VydFJlc3VsdC5zZWNvbmQpCi0gICAgICAgICAgICAgICAgbmV3bHlJZGVudGlmaWVkRG9tYWlu
cy5pbnNlcnQobmV3RG9tYWluSUQpOwotICAgICAgICB9CisgICAgU1FMaXRlU3RhdGVtZW50IGZp
bmRUb3BGcmFtZXMobV9kYXRhYmFzZSwgIlNFTEVDVCBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zy
b20uZnJvbURvbWFpbklEIGZyb20gVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tIElOTkVSIEpP
SU4gT2JzZXJ2ZWREb21haW5zIE9OIE9ic2VydmVkRG9tYWlucy5kb21haW5JRCA9IFRvcEZyYW1l
VW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQgV0hFUkUgdGFyZ2V0RG9tYWluSUQgPSA/
IEFORCBPYnNlcnZlZERvbWFpbnMuaXNQcmV2YWxlbnQgPSAwIl9zKTsKKyAgICBpZiAoZmluZFRv
cEZyYW1lcy5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IGZpbmRUb3BGcmFtZXMu
YmluZEludCgxLCBwcmltYXJ5RG9tYWluSUQpICE9IFNRTElURV9PSykgeworICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVjdXJzaXZlbHlGaW5kTm9uUHJldmFsZW50RG9tYWlu
c1RoYXRSZWRpcmVjdGVkVG9UaGlzRG9tYWluIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJs
aWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIAorICAgIHdoaWxl
IChmaW5kVG9wRnJhbWVzLnN0ZXAoKSA9PSBTUUxJVEVfUk9XKSB7CisgICAgICAgIGludCBuZXdE
b21haW5JRCA9IGZpbmRUb3BGcmFtZXMuZ2V0Q29sdW1uSW50KDApOworICAgICAgICBhdXRvIGlu
c2VydFJlc3VsdCA9IG5vblByZXZhbGVudFJlZGlyZWN0aW9uU291cmNlcy5pbnNlcnQobmV3RG9t
YWluSUQpOworICAgICAgICBpZiAoaW5zZXJ0UmVzdWx0LnNlY29uZCkKKyAgICAgICAgICAgIG5l
d2x5SWRlbnRpZmllZERvbWFpbnMuaW5zZXJ0KG5ld0RvbWFpbklEKTsKICAgICB9CiAKICAgICBp
ZiAobmV3bHlJZGVudGlmaWVkRG9tYWlucy5lbXB0eSgpKQpAQCAtNjA3LDcgKzYyOSw3IEBAIHZv
aWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1hcmtBc1ByZXZhbGVudElm
SGFzUmVkaXJlY3RlZFRvUHJldmFsCiAgICAgU1FMaXRlU3RhdGVtZW50IG1hcmtQcmV2YWxlbnRT
dGF0ZW1lbnQobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiVVBEQVRFIE9ic2VydmVkRG9tYWlucyBT
RVQgaXNQcmV2YWxlbnQgPSAxIFdIRVJFIGRvbWFpbklEIElOICgiLCBidWlsZExpc3QoV1RGOjpJ
dGVyYXRvclJhbmdlPFN0ZFNldDx1bnNpZ25lZD46Oml0ZXJhdG9yPihwcmV2YWxlbnREdWVUb1Jl
ZGlyZWN0LmJlZ2luKCksIHByZXZhbGVudER1ZVRvUmVkaXJlY3QuZW5kKCkpKSwgIikiKSk7CiAg
ICAgaWYgKG1hcmtQcmV2YWxlbnRTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwogICAg
ICAgICB8fCBtYXJrUHJldmFsZW50U3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewot
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWFya0FzUHJldmFsZW50SWZIYXNSZWRpcmVjdGVkVG9QcmV2
YWxlbnQgZmFpbGVkIHRvIGV4ZWN1dGUsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlz
LCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Jf
SUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6Om1hcmtBc1ByZXZhbGVudElmSGFzUmVkaXJlY3RlZFRvUHJldmFsZW50IGZhaWxl
ZCB0byBleGVjdXRlLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFz
ZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0K
IH0KQEAgLTY1Nyw3ICs2NzksNyBAQCBIYXNoTWFwPHVuc2lnbmVkLCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6Tm90VmVyeVByZXZhbGVudFJlc291cmNlcwogICAgICAgICB9
CiAgICAgfQogCi0gICAgU1FMaXRlU3RhdGVtZW50IHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFp
bnNDb3VudFN0YXRlbWVudChtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1Qgc3VicmVzb3Vy
Y2VEb21haW5JRCwgQ09VTlQodG9wRnJhbWVEb21haW5JRCkgRlJPTSBTdWJyZXNvdXJjZVVuZGVy
VG9wRnJhbWVEb21haW5zIFdIRVJFIHN1YnJlc291cmNlRG9tYWluSUQgSU4gKCIsIGRvbWFpbklE
c09mSW50ZXJlc3QsICIpIEdST1VQIEJZIHN1YnJlc291cmNlRG9tYWluSUQiKSk7CisgICAgU1FM
aXRlU3RhdGVtZW50IHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNDb3VudFN0YXRlbWVudCht
X2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1Qgc3ViZnJhbWVEb21haW5JRCwgQ09VTlQodG9w
RnJhbWVEb21haW5JRCkgRlJPTSBTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJFIHN1
YmZyYW1lRG9tYWluSUQgSU4gKCIsIGRvbWFpbklEc09mSW50ZXJlc3QsICIpIEdST1VQIEJZIHN1
YmZyYW1lRG9tYWluSUQiKSk7CiAgICAgaWYgKHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnND
b3VudFN0YXRlbWVudC5wcmVwYXJlKCkgPT0gU1FMSVRFX09LKSB7CiAgICAgICAgIHdoaWxlIChz
dWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnRTdGF0ZW1lbnQuc3RlcCgpID09IFNRTElU
RV9ST1cpIHsKICAgICAgICAgICAgIHVuc2lnbmVkIGRvbWFpbklEID0gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNDb3VudFN0YXRlbWVudC5nZXRDb2x1
bW5JbnQoMCkpOwpAQCAtNjg3LDEyICs3MDksMTIgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6cmVjbGFzc2lmeVJlc291cmNlcygpCiAgICAgYXV0byBub3RWZXJ5
UHJldmFsZW50UmVzb3VyY2VzID0gZmluZE5vdFZlcnlQcmV2YWxlbnRSZXNvdXJjZXMoKTsKIAog
ICAgIGZvciAoYXV0byYgcmVzb3VyY2VTdGF0aXN0aWMgOiBub3RWZXJ5UHJldmFsZW50UmVzb3Vy
Y2VzLnZhbHVlcygpKSB7Ci0gICAgICAgIGlmIChzaG91bGRTa2lwKHJlc291cmNlU3RhdGlzdGlj
LnJlZ2lzdGVyYWJsZURvbWFpbikpCisgICAgICAgIGlmIChzaG91bGRTa2lwKHJlc291cmNlU3Rh
dGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAg
ICAgIGF1dG8gbmV3UHJldmFsZW5jZSA9IGNsYXNzaWZpZXIoKS5jYWxjdWxhdGVSZXNvdXJjZVBy
ZXZhbGVuY2UocmVzb3VyY2VTdGF0aXN0aWMuc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlu
c0NvdW50LCByZXNvdXJjZVN0YXRpc3RpYy5zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvQ291
bnQsIHJlc291cmNlU3RhdGlzdGljLnN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNDb3VudCwg
cmVzb3VyY2VTdGF0aXN0aWMudG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb0NvdW50LCByZXNvdXJj
ZVN0YXRpc3RpYy5wcmV2YWxlbmNlKTsKICAgICAgICAgaWYgKG5ld1ByZXZhbGVuY2UgIT0gcmVz
b3VyY2VTdGF0aXN0aWMucHJldmFsZW5jZSkKLSAgICAgICAgICAgIHNldFByZXZhbGVudFJlc291
cmNlKHJlc291cmNlU3RhdGlzdGljLnJlZ2lzdGVyYWJsZURvbWFpbiwgbmV3UHJldmFsZW5jZSk7
CisgICAgICAgICAgICBzZXRQcmV2YWxlbnRSZXNvdXJjZShyZXNvdXJjZVN0YXRpc3RpYy5yZWdp
c3RyYWJsZURvbWFpbiwgbmV3UHJldmFsZW5jZSk7CiAgICAgfQogfQogCkBAIC03NzUsMTEgKzc5
NywxMyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0
U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmCiAgICAgaWYgKHVzZXJXYXNQcm9tcHRlZEVh
cmxpZXIgPT0gU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpZZXMpCiAgICAgICAgIFJFTEVB
U0VfTE9HX0lORk9fSUYoZGVidWdMb2dnaW5nRW5hYmxlZCgpLCBJVFBEZWJ1ZywgIlN0b3JhZ2Ug
YWNjZXNzIHdhcyBncmFudGVkIHRvICV7cHVibGljfXMgdW5kZXIgJXtwdWJsaWN9cy4iLCBzdWJG
cmFtZURvbWFpbi5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCB0b3BGcmFtZURvbWFpbi5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKIAotICAgIFNRTGl0ZVN0YXRlbWVudCBpbmNyZW1lbnRTdG9yYWdl
QWNjZXNzKG1fZGF0YWJhc2UsIG1ha2VTdHJpbmcoIlVQREFURSBPYnNlcnZlZERvbWFpbnMgU0VU
IHRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VBY2Nlc3NBUEkgPSB0aW1lc0Fj
Y2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9TdG9yYWdlQWNjZXNzQVBJICsgMSBXSEVSRSBkb21haW5J
RCA9ICIsIFN0cmluZzo6bnVtYmVyKHN1YkZyYW1lU3RhdHVzLnNlY29uZCkpKTsKKyAgICBTUUxp
dGVTdGF0ZW1lbnQgaW5jcmVtZW50U3RvcmFnZUFjY2VzcyhtX2RhdGFiYXNlLCAiVVBEQVRFIE9i
c2VydmVkRG9tYWlucyBTRVQgdGltZXNBY2Nlc3NlZEFzRmlyc3RQYXJ0eUR1ZVRvU3RvcmFnZUFj
Y2Vzc0FQSSA9IHRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VBY2Nlc3NBUEkg
KyAxIFdIRVJFIGRvbWFpbklEID0gPyIpOwogICAgIGlmIChpbmNyZW1lbnRTdG9yYWdlQWNjZXNz
LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgaW5jcmVtZW50U3RvcmFnZUFjY2Vz
cy5iaW5kSW50KDEsIHN1YkZyYW1lU3RhdHVzLnNlY29uZCkgIT0gU1FMSVRFX09LCiAgICAgICAg
IHx8IGluY3JlbWVudFN0b3JhZ2VBY2Nlc3Muc3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyBmYWlsZWQsIGVycm9yIG1lc3Nh
Z2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzIGZhaWxl
ZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9y
TXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICAKICAgICBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChXVEZNb3ZlKHN1YkZy
YW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURvbWFpbiksIGZyYW1lSUQsIHBhZ2VJRCwgdXNl
cldhc1Byb21wdGVkRWFybGllciwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildIChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCB3YXNHcmFudGVkKSBtdXRhYmxl
IHsKQEAgLTg1MSwxMCArODc1LDEzIEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OmdyYW5kZmF0aGVyRGF0YUZvckRvbWFpbnMoY29uc3QgSGFzaFNlCiB7CiAgICAg
QVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKKyAgICBmb3IgKGF1dG8mIHJlZ2lzdHJhYmxl
RG9tYWluIDogZG9tYWlucykKKyAgICAgICAgZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVn
aXN0cmFibGVEb21haW4ocmVnaXN0cmFibGVEb21haW4pOworCiAgICAgU1FMaXRlU3RhdGVtZW50
IGRvbWFpbnNUb1VwZGF0ZVN0YXRlbWVudChtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJVUERBVEUg
T2JzZXJ2ZWREb21haW5zIFNFVCBncmFuZGZhdGhlcmVkID0gMSBXSEVSRSByZWdpc3RyYWJsZURv
bWFpbiBJTiAoIiwgZG9tYWluc1RvU3RyaW5nKGRvbWFpbnMpLCAiKSIpKTsKICAgICBpZiAoZG9t
YWluc1RvVXBkYXRlU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwg
ZG9tYWluc1RvVXBkYXRlU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6Z3JhbmRmYXRoZXJEYXRhRm9yRG9tYWlucyBmYWlsZWQsIGVycm9yIG1l
c3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW5kZmF0aGVyRGF0YUZvckRvbWFp
bnMgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5s
YXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIH0K
QEAgLTg5NCw3ICs5MjEsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgUmVnaXN0cmFibGVEbwogICAgIGlmICghaXNN
YWluRnJhbWUgJiYgIShhcmVUYXJnZXRBbmRUb3BGcmFtZURvbWFpbnNTYW1lU2l0ZSB8fCBhcmVU
YXJnZXRBbmRTb3VyY2VEb21haW5zU2FtZVNpdGUpKSB7CiAgICAgICAgIGF1dG8gdGFyZ2V0UmVz
dWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4odGFyZ2V0
RG9tYWluKTsKICAgICAgICAgdXBkYXRlTGFzdFNlZW4odGFyZ2V0RG9tYWluLCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzOjpyZWR1Y2VUaW1lUmVzb2x1dGlvbihXYWxsVGltZTo6bm93KCkpKTsKLQor
ICAgICAgICBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0b3BG
cmFtZURvbWFpbik7CiAgICAgICAgIGlmICghcmVsYXRpb25zaGlwRXhpc3RzKG1fc3ViZnJhbWVV
bmRlclRvcEZyYW1lRG9tYWluRXhpc3RzLCB0YXJnZXRSZXN1bHQuc2Vjb25kLCB0b3BGcmFtZURv
bWFpbikpIHsKICAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YmZyYW1l
VW5kZXJUb3BGcmFtZURvbWFpbnMsIHRhcmdldFJlc3VsdC5zZWNvbmQsIHRvcEZyYW1lRG9tYWlu
KTsKICAgICAgICAgICAgIHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7CkBAIC05MDQsMjQg
KzkzMSwyNSBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dG
cmFtZU5hdmlnYXRpb24oY29uc3QgUmVnaXN0cmFibGVEbwogICAgIGlmIChpc1JlZGlyZWN0ICYm
ICFhcmVUYXJnZXRBbmRTb3VyY2VEb21haW5zU2FtZVNpdGUpIHsKICAgICAgICAgaWYgKGlzTWFp
bkZyYW1lKSB7CiAgICAgICAgICAgICBhdXRvIHJlZGlyZWN0aW5nRG9tYWluUmVzdWx0ID0gZW5z
dXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4oc291cmNlRG9tYWluKTsK
KyAgICAgICAgICAgIGF1dG8gdGFyZ2V0UmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNz
Rm9yUmVnaXN0cmFibGVEb21haW4odGFyZ2V0RG9tYWluKTsKKwogICAgICAgICAgICAgaWYgKCFy
ZWxhdGlvbnNoaXBFeGlzdHMobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvRXhpc3RzLCByZWRp
cmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQsIHRhcmdldERvbWFpbikpIHsKICAgICAgICAgICAg
ICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1Rv
LCByZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQsIHRhcmdldERvbWFpbik7CiAgICAgICAg
ICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgYXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NG
b3JSZWdpc3RyYWJsZURvbWFpbih0YXJnZXREb21haW4pOwogICAgICAgICAgICAgaWYgKCFyZWxh
dGlvbnNoaXBFeGlzdHMobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb21FeGlzdHMsIHRhcmdl
dFJlc3VsdC5zZWNvbmQsIHNvdXJjZURvbWFpbikpIHsKICAgICAgICAgICAgICAgICBpbnNlcnRE
b21haW5SZWxhdGlvbnNoaXAobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHRhcmdldFJl
c3VsdC5zZWNvbmQsIHNvdXJjZURvbWFpbik7CiAgICAgICAgICAgICAgICAgc3RhdGlzdGljc1dl
cmVVcGRhdGVkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIGF1dG8gcmVkaXJlY3RpbmdEb21haW5SZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRp
c3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihzb3VyY2VEb21haW4pOworICAgICAgICAgICAgYXV0
byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURv
bWFpbih0YXJnZXREb21haW4pOwogICAgICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMo
bV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvRXhpc3RzLCByZWRpcmVjdGluZ0RvbWFpblJl
c3VsdC5zZWNvbmQsIHRhcmdldERvbWFpbikpIHsKICAgICAgICAgICAgICAgICBpbnNlcnREb21h
aW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLCByZWRpcmVjdGlu
Z0RvbWFpblJlc3VsdC5zZWNvbmQsIHRhcmdldERvbWFpbik7CiAgICAgICAgICAgICAgICAgc3Rh
dGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAg
YXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJs
ZURvbWFpbih0YXJnZXREb21haW4pOwogICAgICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlz
dHMobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb21FeGlzdHMsIHRhcmdldFJlc3VsdC5z
ZWNvbmQsIHNvdXJjZURvbWFpbikpIHsKICAgICAgICAgICAgICAgICBpbnNlcnREb21haW5SZWxh
dGlvbnNoaXAobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHRhcmdldFJlc3VsdC5z
ZWNvbmQsIHNvdXJjZURvbWFpbik7CiAgICAgICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRh
dGVkID0gdHJ1ZTsKQEAgLTk1MCwxMSArOTc4LDExIEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OnNldFVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURv
CiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBpZiAobV9tb3N0UmVj
ZW50VXNlckludGVyYWN0aW9uU3RhdGVtZW50LmJpbmRJbnQoMSwgaGFkVXNlckludGVyYWN0aW9u
KQorICAgIGlmIChtX21vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuYmluZEludCgx
LCBoYWRVc2VySW50ZXJhY3Rpb24pICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX21vc3RSZWNl
bnRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuYmluZERvdWJsZSgyLCBtb3N0UmVjZW50SW50ZXJh
Y3Rpb24uc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKSAhPSBTUUxJVEVfT0sKICAgICAgICAg
fHwgbV9tb3N0UmVjZW50VXNlckludGVyYWN0aW9uU3RhdGVtZW50LmJpbmRUZXh0KDMsIGRvbWFp
bi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fbW9zdFJlY2VudFVzZXJJbnRl
cmFjdGlvblN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OnNldFVzZXJJbnRlcmFjdGlvbiwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRo
aXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJP
Ul9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6c2V0VXNlckludGVyYWN0aW9uLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31z
IiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtOTc4LDEwICsxMDA2LDExIEBA
IHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyVXNlckludGVy
YWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlCiAgICAgYXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVS
ZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihkb21haW4pOwogICAgIHNldFVz
ZXJJbnRlcmFjdGlvbihkb21haW4sIGZhbHNlLCB7IH0pOwogCi0gICAgU1FMaXRlU3RhdGVtZW50
IHJlbW92ZVN0b3JhZ2VBY2Nlc3MobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiREVMRVRFIEZST00g
U3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJFIGRvbWFpbklEID0gIiwgU3Ry
aW5nOjpudW1iZXIodGFyZ2V0UmVzdWx0LnNlY29uZCkpKTsKKyAgICBTUUxpdGVTdGF0ZW1lbnQg
cmVtb3ZlU3RvcmFnZUFjY2VzcyhtX2RhdGFiYXNlLCAiREVMRVRFIEZST00gU3RvcmFnZUFjY2Vz
c1VuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJFIGRvbWFpbklEID0gPyIpOwogICAgIGlmIChyZW1v
dmVTdG9yYWdlQWNjZXNzLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgcmVtb3Zl
U3RvcmFnZUFjY2Vzcy5iaW5kSW50KDEsIHRhcmdldFJlc3VsdC5zZWNvbmQpICE9IFNRTElURV9P
SwogICAgICAgICB8fCByZW1vdmVTdG9yYWdlQWNjZXNzLnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkg
ewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nVXNlckludGVyYWN0aW9uIGZhaWxlZCB0byBiaW5k
LCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JN
c2coKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQs
ICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dVc2VySW50ZXJh
Y3Rpb24gZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBt
X2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgfQogfQpAQCAtOTkxLDE1ICsxMDIwLDIwIEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6Omhhc0hhZFVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJs
CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBpZiAobV9oYWRVc2VySW50
ZXJhY3Rpb25TdGF0ZW1lbnQuYmluZFRleHQoMSwgZG9tYWluLnN0cmluZygpKSAhPSBTUUxJVEVf
T0sKLSAgICAgICAgfHwgbV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuc3RlcCgpICE9IFNR
TElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptX3VwZGF0ZVByZXZhbGVudFJlc291
cmNlU3RhdGVtZW50IGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1f
ZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgfHwgbV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElU
RV9ST1cpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25J
RCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1faGFkVXNlcklu
dGVyYWN0aW9uU3RhdGVtZW50IGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRo
aXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworCisgICAgICAgIGludCByZXNldFJlc3Vs
dCA9IG1faGFkVXNlckludGVyYWN0aW9uU3RhdGVtZW50LnJlc2V0KCk7CisgICAgICAgIEFTU0VS
VF9VTlVTRUQocmVzZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNRTElURV9PSyk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiA9ICEh
bV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDApOwotICAgIGlmICgh
aGFkVXNlckludGVyYWN0aW9uKQorICAgIGlmICghaGFkVXNlckludGVyYWN0aW9uKSB7CisgICAg
ICAgIGludCByZXNldFJlc3VsdCA9IG1faGFkVXNlckludGVyYWN0aW9uU3RhdGVtZW50LnJlc2V0
KCk7CisgICAgICAgIEFTU0VSVF9VTlVTRUQocmVzZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNR
TElURV9PSyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgCiAgICAgV2FsbFRp
bWUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29u
ZHMobV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuZ2V0Q29sdW1uRG91YmxlKDEpKTsKIApA
QCAtMTAxMSw2ICsxMDQ1LDkgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6aGFzSGFkVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmwKICAgICAgICAgaGFk
VXNlckludGVyYWN0aW9uID0gZmFsc2U7CiAgICAgfQogICAgIAorICAgIGludCByZXNldFJlc3Vs
dCA9IG1faGFkVXNlckludGVyYWN0aW9uU3RhdGVtZW50LnJlc2V0KCk7CisgICAgQVNTRVJUX1VO
VVNFRChyZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQgPT0gU1FMSVRFX09LKTsKKwogICAgIHJldHVy
biBoYWRVc2VySW50ZXJhY3Rpb247CiB9CiAKQEAgLTEwMjMsNyArMTA2MCw3IEBAIHZvaWQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFByZXZhbGVudFJlc291cmNlKGNv
bnN0IFJlZ2lzdHJhYmxlCiAgICAgaWYgKG1fdXBkYXRlUHJldmFsZW50UmVzb3VyY2VTdGF0ZW1l
bnQuYmluZEludCgxLCAxKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV91cGRhdGVQcmV2YWxl
bnRSZXNvdXJjZVN0YXRlbWVudC5iaW5kVGV4dCgyLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElU
RV9PSwogICAgICAgICB8fCBtX3VwZGF0ZVByZXZhbGVudFJlc291cmNlU3RhdGVtZW50LnN0ZXAo
KSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAi
JXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV91cGRhdGVQcmV2YWxl
bnRSZXNvdXJjZVN0YXRlbWVudCBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0
aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6Om1fdXBkYXRlUHJldmFsZW50UmVzb3VyY2VTdGF0ZW1lbnQgZmFpbGVkLCBl
cnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2co
KSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAg
fQpAQCAtMTAzNSw3ICsxMDcyLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6c2V0UHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGUKICAgICAgICAg
aWYgKG1fdXBkYXRlVmVyeVByZXZhbGVudFJlc291cmNlU3RhdGVtZW50LmJpbmRJbnQoMSwgMSkg
IT0gU1FMSVRFX09LCiAgICAgICAgICAgICB8fCBtX3VwZGF0ZVZlcnlQcmV2YWxlbnRSZXNvdXJj
ZVN0YXRlbWVudC5iaW5kVGV4dCgyLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSwogICAg
ICAgICAgICAgfHwgbV91cGRhdGVWZXJ5UHJldmFsZW50UmVzb3VyY2VTdGF0ZW1lbnQuc3RlcCgp
ICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3Jr
LCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV91cGRhdGVWZXJ5
UHJldmFsZW50UmVzb3VyY2VTdGF0ZW1lbnQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1Ymxp
Y31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV91cGRhdGVWZXJ5UHJldmFsZW50UmVzb3VyY2VTdGF0
ZW1lbnQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFz
ZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTA0NSw3ICsxMDgyLDcgQEAgdm9pZCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0UHJldmFsZW50UmVzb3VyY2Uo
Y29uc3QgUmVnaXN0cmFibGUKICAgICB9CiAKICAgICBTdGRTZXQ8dW5zaWduZWQ+IG5vblByZXZh
bGVudFJlZGlyZWN0aW9uU291cmNlczsKLSAgICByZWN1cnNpdmVseUZpbmROb25QcmV2YWxlbnRE
b21haW5zVGhhdFJlZGlyZWN0ZWRUb1RoaXNEb21haW4oZG9tYWluSUQoZG9tYWluKSwgbm9uUHJl
dmFsZW50UmVkaXJlY3Rpb25Tb3VyY2VzLCAwKTsKKyAgICByZWN1cnNpdmVseUZpbmROb25QcmV2
YWxlbnREb21haW5zVGhhdFJlZGlyZWN0ZWRUb1RoaXNEb21haW4oZG9tYWluSUQoZG9tYWluKS52
YWx1ZSgpLCBub25QcmV2YWxlbnRSZWRpcmVjdGlvblNvdXJjZXMsIDApOwogICAgIHNldERvbWFp
bnNBc1ByZXZhbGVudChXVEZNb3ZlKG5vblByZXZhbGVudFJlZGlyZWN0aW9uU291cmNlcykpOwog
fQogCkBAIC0xMDU2LDcgKzEwOTMsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpzZXREb21haW5zQXNQcmV2YWxlbnQoU3RkU2V0PHVuc2lnbmVkPgogICAgIFNR
TGl0ZVN0YXRlbWVudCBkb21haW5zVG9VcGRhdGVTdGF0ZW1lbnQobV9kYXRhYmFzZSwgbWFrZVN0
cmluZygiVVBEQVRFIE9ic2VydmVkRG9tYWlucyBTRVQgaXNQcmV2YWxlbnQgPSAxIFdIRVJFIGRv
bWFpbklEIElOICgiLCBidWlsZExpc3QoV1RGOjpJdGVyYXRvclJhbmdlPFN0ZFNldDx1bnNpZ25l
ZD46Oml0ZXJhdG9yPihkb21haW5zLmJlZ2luKCksIGRvbWFpbnMuZW5kKCkpKSwgIikiKSk7CiAg
ICAgaWYgKGRvbWFpbnNUb1VwZGF0ZVN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCiAg
ICAgICAgIHx8IGRvbWFpbnNUb1VwZGF0ZVN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUp
IHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldERvbWFpbnNBc1ByZXZhbGVudCBmYWlsZWQsIGVy
cm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygp
KTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVw
IC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldERvbWFpbnNBc1ByZXZh
bGVudCBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNl
Lmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CkBAIC0xMDc2LDkgKzExMTMsMTIgQEAgYm9vbCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlZGljYXRlVmFsdWVGb3JEb21haW4oV2ViQ29yZTo6
U1FMaXQKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAKICAgICBpZiAocHJl
ZGljYXRlU3RhdGVtZW50LmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09L
Ci0gICAgICAgIHx8IHByZWRpY2F0ZVN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsK
LSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZWRpY2F0ZVZhbHVlRm9yRG9tYWluIGZhaWxlZCB0byBi
aW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSk7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB8fCBwcmVk
aWNhdGVTdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ST1cpIHsKKworICAgICAgICBpbnQgcmVz
ZXRSZXN1bHQgPSBwcmVkaWNhdGVTdGF0ZW1lbnQucmVzZXQoKTsKKyAgICAgICAgQVNTRVJUX1VO
VVNFRChyZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQgPT0gU1FMSVRFX09LKTsKKworICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlZGljYXRlVmFsdWVGb3JEb21haW4gZmFpbGVk
IHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxh
c3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTEzNyw3
ICsxMTc3LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xl
YXJQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWIKICAgICAKICAgICBpZiAobV9jbGVh
clByZXZhbGVudFJlc291cmNlU3RhdGVtZW50LmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJpbmcoKSkg
IT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fY2xlYXJQcmV2YWxlbnRSZXNvdXJjZVN0YXRlbWVu
dC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0
d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyUHJl
dmFsZW50UmVzb3VyY2UsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFi
YXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dF
RChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmNsZWFyUHJldmFsZW50UmVzb3VyY2UsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlz
LCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMTU1LDcgKzExOTUsNyBAQCB2b2lkIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRHcmFuZGZhdGhlcmVkKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYQogICAgIGlmIChtX3VwZGF0ZUdyYW5kZmF0aGVyZWRTdGF0ZW1lbnQu
YmluZEludCgxLCB2YWx1ZSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fdXBkYXRlR3JhbmRm
YXRoZXJlZFN0YXRlbWVudC5iaW5kVGV4dCgxLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9P
SwogICAgICAgICB8fCBtX3VwZGF0ZUdyYW5kZmF0aGVyZWRTdGF0ZW1lbnQuc3RlcCgpICE9IFNR
TElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRHcmFuZGZhdGhlcmVkIGZhaWxl
ZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5s
YXN0RXJyb3JNc2coKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9z
ZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRH
cmFuZGZhdGhlcmVkIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwg
dGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTI0OCw3ICsxMjg4LDcgQEAgc3Rk
OjpwYWlyPFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpBZGRlZFJlY29yZCwg
dW5zaWduZWQ+IFJlc291cmNlTG8KICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAog
ICAgIGlmIChtX2RvbWFpbklERnJvbVN0cmluZ1N0YXRlbWVudC5iaW5kVGV4dCgxLCBkb21haW4u
c3RyaW5nKCkpICE9IFNRTElURV9PSykgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3
b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y3JlYXRlU2No
ZW1hIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2Uu
bGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1f
c2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZW5z
dXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4gZmFpbGVkLCBlcnJvciBt
ZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4geyBBZGRlZFJlY29y
ZDo6Tm8sIDAgfTsKICAgICB9CkBAIC0xMjY3LDEzICsxMzA3LDI1IEBAIHN0ZDo6cGFpcjxSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6QWRkZWRSZWNvcmQsIHVuc2lnbmVkPiBS
ZXNvdXJjZUxvCiAgICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBuZXdPYnNlcnZhdGlvbihkb21h
aW4pOwogICAgIGluc2VydE9ic2VydmVkRG9tYWluKG5ld09ic2VydmF0aW9uKTsKIAotICAgIHJl
dHVybiB7IEFkZGVkUmVjb3JkOjpZZXMsIGRvbWFpbklEKGRvbWFpbikgfTsKKyAgICByZXR1cm4g
eyBBZGRlZFJlY29yZDo6WWVzLCBkb21haW5JRChkb21haW4pLnZhbHVlKCkgfTsKK30KKwordm9p
ZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJEYXRhYmFzZUNvbnRl
bnRzKCkKK3sKKyAgICBtX2RhdGFiYXNlLmNsZWFyQWxsVGFibGVzKCk7CisKKyAgICBpZiAoIWNy
ZWF0ZVNjaGVtYSgpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAt
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhckRhdGFiYXNlQ29udGVu
dHMgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zLCBkYXRhYmFzZSBwYXRoOiAle3B1
YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSwgbV9zdG9yYWdlRGlyZWN0
b3J5UGF0aC51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OmNsZWFyKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAorICAgIGNsZWFy
RGF0YWJhc2VDb250ZW50cygpOwogICAgIGNsZWFyT3BlcmF0aW5nRGF0ZXMoKTsKIAogICAgIGF1
dG8gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwpAQCAtMTI4OSwxMiArMTM0MSwxNiBAQCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Q29va2llVHJlYXRtZW50UmVzdWx0IFJlc291cmNl
TG9hZFN0YXRpc3RpYwogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAg
U1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudChtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1Qg
aXNQcmV2YWxlbnQsIGhhZFVzZXJJbnRlcmFjdGlvbiBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVS
RSByZWdpc3RyYWJsZURvbWFpbiA9ICIsIGRvbWFpbi5zdHJpbmcoKSkpOworICAgIFNRTGl0ZVN0
YXRlbWVudCBzdGF0ZW1lbnQobV9kYXRhYmFzZSwgIlNFTEVDVCBpc1ByZXZhbGVudCwgaGFkVXNl
ckludGVyYWN0aW9uIEZST00gT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWlu
ID0gPyIpOwogICAgIGlmIChzdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwotICAgICAg
ICB8fCBzdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ST1cpIHsKLSAgICAgICAgcmV0dXJuIENv
b2tpZVRyZWF0bWVudFJlc3VsdDo6QWxsb3c7CisgICAgICAgIHx8IHN0YXRlbWVudC5iaW5kVGV4
dCgxLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSykgeworICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6Y29va2llVHJlYXRtZW50Rm9yT3JpZ2luIGZhaWxlZCB0byBiaW5k
LCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JN
c2coKSk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KICAgICAKKyAgICBp
ZiAoc3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfUk9XKQorICAgICAgICByZXR1cm4gQ29va2ll
VHJlYXRtZW50UmVzdWx0OjpBbGxvdzsKKyAgICAKICAgICBib29sIGlzUHJldmFsZW50ID0gISFz
dGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDApOwogICAgIGlmICghaXNQcmV2YWxlbnQpCiAgICAgICAg
IHJldHVybiBDb29raWVUcmVhdG1lbnRSZXN1bHQ6OkFsbG93OwpAQCAtMTMwNywxMCArMTM2Mywx
MiBAQCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6Omhhc1VzZXJHcmFudGVkUwogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNN
YWluKCkpOwogCi0gICAgYXV0byBmaXJzdFBhcnR5UHJpbWFyeURvbWFpbklEID0gZG9tYWluSUQo
Zmlyc3RQYXJ0eURvbWFpbik7CisgICAgYXV0byBmaXJzdFBhcnR5UHJpbWFyeURvbWFpbklEID0g
ZG9tYWluSUQoZmlyc3RQYXJ0eURvbWFpbikudmFsdWUoKTsKIAotICAgIFNRTGl0ZVN0YXRlbWVu
dCBzdGF0ZW1lbnQobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIENPVU5UKCopIEZST00g
U3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJFIGRvbWFpbklEID0gIiwgU3Ry
aW5nOjpudW1iZXIocmVxdWVzdGluZ0RvbWFpbklEKSwgIiBBTkQgdG9wTGV2ZWxEb21haW5JRCA9
ICIsIFN0cmluZzo6bnVtYmVyKGZpcnN0UGFydHlQcmltYXJ5RG9tYWluSUQpKSk7CisgICAgU1FM
aXRlU3RhdGVtZW50IHN0YXRlbWVudChtX2RhdGFiYXNlLCAiU0VMRUNUIENPVU5UKCopIEZST00g
U3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJFIGRvbWFpbklEID0gPyBBTkQg
dG9wTGV2ZWxEb21haW5JRCA9ID8iKTsKICAgICBpZiAoc3RhdGVtZW50LnByZXBhcmUoKSAhPSBT
UUxJVEVfT0sKKyAgICAgICAgfHwgc3RhdGVtZW50LmJpbmRJbnQoMSwgcmVxdWVzdGluZ0RvbWFp
bklEKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgc3RhdGVtZW50LmJpbmRJbnQoMiwgZmlyc3RQ
YXJ0eVByaW1hcnlEb21haW5JRCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHN0YXRlbWVudC5z
dGVwKCkgIT0gU1FMSVRFX1JPVykKICAgICAgICAgcmV0dXJuIFN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93bjo6Tm87CiAKQEAgLTE0MzgsNyArMTQ5Niw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyRXhwaXJlZFVzZXJJbnRlcmFjdGlvbnMoKQogCiAg
ICAgaWYgKGNsZWFyRXhwaXJlZEludGVyYWN0aW9uLnN0ZXAoKSAhPSBTUUxJVEVfRE9ORQogICAg
ICAgICB8fCByZW1vdmVTdG9yYWdlQWNjZXNzLnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6bG9nVXNlckludGVyYWN0aW9uIGZhaWxlZCB0byBiaW5kLCBlcnJv
ciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7
CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhckV4cGlyZWRVc2VySW50ZXJhY3Rpb25zIHN0YXRl
bWVudChzKSBmYWlsZWQgdG8gc3RlcCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMs
IG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICB9CiB9CkBAIC0xNDU3LDE0ICsxNTE1LDI0IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyR3JhbmRmYXRoZXJpbmcoVmVjdG9yPHVuc2lnbmVk
PiYmCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBpZiAoY2xlYXJHcmFuZGZhdGhlcmluZ1N0
YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNs
ZWFyR3JhbmRmYXRoZXJpbmcgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGlj
fXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyR3JhbmRmYXRoZXJpbmcgZmFpbGVkIHRvIGJpbmQsIGVy
cm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygp
KTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogfQogCi1ib29sIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0
YUZvcihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiByZXNvdXJjZVN0YXRpc3RpYywgYm9vbCBz
aG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSBjb25zdAorYm9vbCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVW5leHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9u
KGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmIHJlc291cmNlU3RhdGlzdGljLCBPcGVyYXRpbmdE
YXRlc1dpbmRvdyBvcGVyYXRpbmdEYXRlc1dpbmRvdykKIHsKLSAgICByZXR1cm4gIXJlc291cmNl
U3RhdGlzdGljLmhhZFVzZXJJbnRlcmFjdGlvbiAmJiAoIXNob3VsZENoZWNrRm9yR3JhbmRmYXRo
ZXJpbmcgfHwgIXJlc291cmNlU3RhdGlzdGljLmdyYW5kZmF0aGVyZWQpOworICAgIGlmIChyZXNv
dXJjZVN0YXRpc3RpYy5oYWRVc2VySW50ZXJhY3Rpb24gJiYgaGFzU3RhdGlzdGljc0V4cGlyZWQo
cmVzb3VyY2VTdGF0aXN0aWMubW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUsIG9wZXJhdGlu
Z0RhdGVzV2luZG93KSkgeworICAgICAgICBjbGVhclVzZXJJbnRlcmFjdGlvbihyZXNvdXJjZVN0
YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisKKyAgICByZXR1cm4gcmVzb3VyY2VTdGF0aXN0aWMuaGFkVXNlckludGVyYWN0aW9uOworfQor
Citib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRSZW1vdmVB
bGxXZWJzaXRlRGF0YUZvcihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiByZXNvdXJjZVN0YXRp
c3RpYywgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKQoreworICAgIHJldHVybiAh
aGFzSGFkVW5leHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9uKHJlc291cmNlU3RhdGlzdGljLCBP
cGVyYXRpbmdEYXRlc1dpbmRvdzo6TG9uZykgJiYgKCFzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVy
aW5nIHx8ICFyZXNvdXJjZVN0YXRpc3RpYy5ncmFuZGZhdGhlcmVkKTsKIH0KIAogYm9vbCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2hvdWxkUmVtb3ZlQWxsQnV0Q29va2ll
c0Zvcihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiByZXNvdXJjZVN0YXRpc3RpYywgYm9vbCBz
aG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSBjb25zdApAQCAtMTQ5Miw5ICsxNTYwLDkgQEAg
VmVjdG9yPHN0ZDo6cGFpcjxSZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZT4+
IFJlc291cmNlTG9hZFN0YXRpc3RpY3MKICAgICBWZWN0b3I8dW5zaWduZWQ+IGRvbWFpbklEc1Rv
Q2xlYXJHcmFuZGZhdGhlcmluZzsKICAgICBmb3IgKGF1dG8mIHN0YXRpc3RpYyA6IHByZXZhbGVu
dERvbWFpbnMpIHsKICAgICAgICAgaWYgKHNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9yKHN0
YXRpc3RpYywgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZykpCi0gICAgICAgICAgICBkb21h
aW5zVG9SZW1vdmVXZWJzaXRlRGF0YUZvci5hcHBlbmQoc3RkOjptYWtlX3BhaXIoc3RhdGlzdGlj
LnJlZ2lzdGVyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZTo6QWxsKSk7CisgICAgICAg
ICAgICBkb21haW5zVG9SZW1vdmVXZWJzaXRlRGF0YUZvci5hcHBlbmQoc3RkOjptYWtlX3BhaXIo
c3RhdGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlOjpBbGwpKTsK
ICAgICAgICAgZWxzZSBpZiAoc2hvdWxkUmVtb3ZlQWxsQnV0Q29va2llc0ZvcihzdGF0aXN0aWMs
IHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpKQotICAgICAgICAgICAgZG9tYWluc1RvUmVt
b3ZlV2Vic2l0ZURhdGFGb3IuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKHN0YXRpc3RpYy5yZWdpc3Rl
cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU6OkFsbEJ1dENvb2tpZXMpKTsKKyAgICAg
ICAgICAgIGRvbWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yLmFwcGVuZChzdGQ6Om1ha2VfcGFp
cihzdGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU6OkFsbEJ1
dENvb2tpZXMpKTsKIAogICAgICAgICBpZiAoc2hvdWxkQ2xlYXJHcmFuZGZhdGhlcmluZyAmJiBz
dGF0aXN0aWMuZ3JhbmRmYXRoZXJlZCkKICAgICAgICAgICAgIGRvbWFpbklEc1RvQ2xlYXJHcmFu
ZGZhdGhlcmluZy5hcHBlbmQoc3RhdGlzdGljLmRvbWFpbklEKTsKQEAgLTE1MjQsOCArMTU5Miw5
IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBydW5lU3RhdGlz
dGljc0lmTmVlZGVkKCkKICAgICBzaXplX3QgY291bnRMZWZ0VG9QcnVuZSA9IGNvdW50IC0gcGFy
YW1ldGVycygpLnBydW5lRW50cmllc0Rvd25UbzsKICAgICBBU1NFUlQoY291bnRMZWZ0VG9QcnVu
ZSk7CiAKLSAgICBTUUxpdGVTdGF0ZW1lbnQgcmVjb3Jkc1RvUHJ1bmUobV9kYXRhYmFzZSwgbWFr
ZVN0cmluZygiU0VMRUNUIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIE9SREVSIEJZIGhh
ZFVzZXJJbnRlcmFjdGlvbiwgaXNQcmV2YWxlbnQsIGxhc3RTZWVuIERFU0MgTElNSVQgIiwgU3Ry
aW5nOjpudW1iZXIoY291bnRMZWZ0VG9QcnVuZSkpKTsKLSAgICBpZiAocmVjb3Jkc1RvUHJ1bmUu
cHJlcGFyZSgpICE9IFNRTElURV9PSykgeworICAgIFNRTGl0ZVN0YXRlbWVudCByZWNvcmRzVG9Q
cnVuZShtX2RhdGFiYXNlLCAiU0VMRUNUIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIE9S
REVSIEJZIGhhZFVzZXJJbnRlcmFjdGlvbiwgaXNQcmV2YWxlbnQsIGxhc3RTZWVuIExJTUlUID8i
KTsKKyAgICBpZiAocmVjb3Jkc1RvUHJ1bmUucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAg
ICB8fCByZWNvcmRzVG9QcnVuZS5iaW5kSW50KDEsIGNvdW50TGVmdFRvUHJ1bmUpICE9IFNRTElU
RV9PSykgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJ1bmVTdGF0aXN0aWNzSWZOZWVkZWQgZmFp
bGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47
CkBAIC0xNTQwLDcgKzE2MDksNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpwcnVuZVN0YXRpc3RpY3NJZk5lZWRlZCgpCiAgICAgU1FMaXRlU3RhdGVtZW50IHBy
dW5lQ29tbWFuZChtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJERUxFVEUgZnJvbSBPYnNlcnZlZERv
bWFpbnMgV0hFUkUgZG9tYWluSUQgSU4gKCIsIGxpc3RUb1BydW5lLCAiKSIpKTsKICAgICBpZiAo
cHJ1bmVDb21tYW5kLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgcHJ1bmVDb21t
YW5kLnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihO
ZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJ1bmVT
dGF0aXN0aWNzSWZOZWVkZWQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhp
cywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
X0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpwcnVuZVN0YXRpc3RpY3NJZk5lZWRlZCBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6
ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xNTUzLDcg
KzE2MjIsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp1cGRh
dGVMYXN0U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbgogICAgIGlmIChtX3VwZGF0ZUxhc3RT
ZWVuU3RhdGVtZW50LmJpbmREb3VibGUoMSwgbGFzdFNlZW4uc2Vjb25kc1NpbmNlRXBvY2goKS52
YWx1ZSgpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV91cGRhdGVMYXN0U2VlblN0YXRlbWVu
dC5iaW5kVGV4dCgyLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBt
X3VwZGF0ZUxhc3RTZWVuU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6dXBkYXRlTGFzdFNlZW4gZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3Nh
Z2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnVwZGF0ZUxhc3RTZWVuIGZhaWxlZCB0byBi
aW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmUuaAppbmRleCAwZmIyNGFkMDY3MDQ1YzlhZDMxNGYyM2NmYjQ0NDBkOGFmODQ1ZmVjLi5m
MWQ1NjU1ZGVlYmNkYjA0N2NkZDk2ZDJlOTM1NjM0Y2VhYzAxZDNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaApAQCAtNTEsNyArNTEs
NyBAQCBjbGFzcyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU7CiAvLyBUaGlzIGlz
IGFsd2F5cyBjb25zdHJ1Y3RlZCAvIHVzZWQgLyBkZXN0cm95ZWQgb24gdGhlIFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZSdzIHN0YXRpc3RpY3MgcXVldWUuCiBjbGFzcyBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZSBmaW5hbCA6IHB1YmxpYyBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUgewogcHVibGljOgotICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlKFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSYsIFdvcmtRdWV1ZSYsIFNob3Vs
ZEluY2x1ZGVMb2NhbGhvc3QsIGNvbnN0IFN0cmluZyYgc3RvcmFnZURpcmVjdG9yeVBhdGgpOwor
ICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlKFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZSYsIFdvcmtRdWV1ZSYsIFNob3VsZEluY2x1ZGVMb2NhbGhvc3QsIGNvbnN0
IFN0cmluZyYgc3RvcmFnZURpcmVjdG9yeVBhdGgsIFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIHZv
aWQgcG9wdWxhdGVGcm9tTWVtb3J5U3RvcmUoY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01l
bW9yeVN0b3JlJik7CiAKQEAgLTEwNSwxMSArMTA1LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgU2Vjb25kcykgb3ZlcnJpZGU7CiAK
IHByaXZhdGU6CisgICAgdm9pZCBjbGVhckRhdGFiYXNlQ29udGVudHMoKTsKICAgICBib29sIGlu
c2VydE9ic2VydmVkRG9tYWluKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsKICAgICB2
b2lkIGluc2VydERvbWFpblJlbGF0aW9uc2hpcHMoY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyYpOwogICAgIGJvb2wgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKFdlYkNvcmU6OlNRTGl0ZVN0
YXRlbWVudCYsIHVuc2lnbmVkIGRvbWFpbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9w
RnJhbWVEb21haW4pOwotICAgIGJvb2wgcmVsYXRpb25zaGlwRXhpc3RzKFdlYkNvcmU6OlNRTGl0
ZVN0YXRlbWVudCYsIHVuc2lnbmVkIGZpcnN0RG9tYWluSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBzZWNvbmREb21haW4pIGNvbnN0OwotICAgIHVuc2lnbmVkIGRvbWFpbklEKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJikgY29uc3Q7CisgICAgYm9vbCByZWxhdGlvbnNoaXBFeGlzdHMoV2Vi
Q29yZTo6U1FMaXRlU3RhdGVtZW50JiwgT3B0aW9uYWw8dW5zaWduZWQ+IGZpcnN0RG9tYWluSUQs
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzZWNvbmREb21haW4pIGNvbnN0OworICAgIE9wdGlv
bmFsPHVuc2lnbmVkPiBkb21haW5JRChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIGNvbnN0Owog
I2lmbmRlZiBOREVCVUcKICAgICBib29sIGNvbmZpcm1Eb21haW5Eb2VzTm90RXhpc3QoY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mKSBjb25zdDsKICNlbmRpZgpAQCAtMTIwLDEyICsxMjEsMTMgQEAg
cHJpdmF0ZToKIAogICAgIHN0cnVjdCBQcmV2YWxlbnREb21haW5EYXRhIHsKICAgICAgICAgdW5z
aWduZWQgZG9tYWluSUQ7Ci0gICAgICAgIFJlZ2lzdHJhYmxlRG9tYWluIHJlZ2lzdGVyYWJsZURv
bWFpbjsKKyAgICAgICAgUmVnaXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW47CiAgICAg
ICAgIFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lOwogICAgICAgICBib29s
IGhhZFVzZXJJbnRlcmFjdGlvbjsKICAgICAgICAgYm9vbCBncmFuZGZhdGhlcmVkOwogICAgIH07
CiAgICAgVmVjdG9yPFByZXZhbGVudERvbWFpbkRhdGE+IHByZXZhbGVudERvbWFpbnMoKSBjb25z
dDsKKyAgICBib29sIGhhc0hhZFVuZXhwaXJlZFJlY2VudFVzZXJJbnRlcmFjdGlvbihjb25zdCBQ
cmV2YWxlbnREb21haW5EYXRhJiwgT3BlcmF0aW5nRGF0ZXNXaW5kb3cpOwogICAgIFZlY3Rvcjx1
bnNpZ25lZD4gZmluZEV4cGlyZWRVc2VySW50ZXJhY3Rpb25zKCkgY29uc3Q7CiAgICAgdm9pZCBj
bGVhckV4cGlyZWRVc2VySW50ZXJhY3Rpb25zKCk7CiAgICAgdm9pZCBjbGVhckdyYW5kZmF0aGVy
aW5nKFZlY3Rvcjx1bnNpZ25lZD4mJik7CkBAIC0xMzQsNyArMTM2LDcgQEAgcHJpdmF0ZToKIAog
ICAgIHZvaWQgcmVjbGFzc2lmeVJlc291cmNlcygpOwogICAgIHN0cnVjdCBOb3RWZXJ5UHJldmFs
ZW50UmVzb3VyY2VzIHsKLSAgICAgICAgUmVnaXN0cmFibGVEb21haW4gcmVnaXN0ZXJhYmxlRG9t
YWluOworICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWdpc3RyYWJsZURvbWFpbjsKICAgICAg
ICAgUmVzb3VyY2VMb2FkUHJldmFsZW5jZSBwcmV2YWxlbmNlOwogICAgICAgICB1bnNpZ25lZCBz
dWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnQ7CiAgICAgICAgIHVuc2lnbmVkIHN1
YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9Db3VudDsKQEAgLTE1OCw3ICsxNjAsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgcHJ1bmVTdGF0aXN0aWNzSWZOZWVkZWQoKSBvdmVycmlkZTsKICAgICBl
bnVtIGNsYXNzIEFkZGVkUmVjb3JkIHsgTm8sIFllcyB9OwogICAgIHN0ZDo6cGFpcjxBZGRlZFJl
Y29yZCwgdW5zaWduZWQ+IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9t
YWluKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7Ci0gICAgYm9vbCBzaG91bGRSZW1vdmVBbGxX
ZWJzaXRlRGF0YUZvcihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiwgYm9vbCBzaG91bGRDaGVj
a0ZvckdyYW5kZmF0aGVyaW5nKSBjb25zdDsKKyAgICBib29sIHNob3VsZFJlbW92ZUFsbFdlYnNp
dGVEYXRhRm9yKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmLCBib29sIHNob3VsZENoZWNrRm9y
R3JhbmRmYXRoZXJpbmcpOwogICAgIGJvb2wgc2hvdWxkUmVtb3ZlQWxsQnV0Q29va2llc0Zvcihj
b25zdCBQcmV2YWxlbnREb21haW5EYXRhJiwgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVy
aW5nKSBjb25zdDsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZ2lzdHJhYmxlRG9tYWluLCBXZWJz
aXRlRGF0YVRvUmVtb3ZlPj4gcmVnaXN0cmFibGVEb21haW5zVG9SZW1vdmVXZWJzaXRlRGF0YUZv
cigpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNEYXRhYmFzZVN0b3JlKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gdHJ1ZTsgfQpAQCAtMTk4LDYgKzIwMCw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6
U1FMaXRlU3RhdGVtZW50IG1fdXBkYXRlR3JhbmRmYXRoZXJlZFN0YXRlbWVudDsKICAgICBtdXRh
YmxlIFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBtX2lzR3JhbmRmYXRoZXJlZFN0YXRlbWVudDsK
ICAgICBtdXRhYmxlIFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBtX2ZpbmRFeHBpcmVkVXNlcklu
dGVyYWN0aW9uU3RhdGVtZW50OworICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IDRhYjM0NTczZGEzNDJmY2Y3YzY4ODc3MDNiNTNkMGVl
NjMzNDAzYjEuLjJiYmVkY2I5NjM3ZmUzNjFmYzMwOGVjZTQ2OTY5OTc0NDE5ZmI2OGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBAIC0xNTYs
MTAgKzE1NiwxMCBAQCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZShOZXR3b3JrU2Vzc2lvbiYgbgogICAgICwgbV9kYWlseVRhc2tz
VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpwZXJmb3JtRGFpbHlUYXNrcykKIHsKICAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7Ci0gICAgCi0gICAgcG9zdFRhc2soW3RoaXMsIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3RvcnkgPSByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5Lmlzb2xhdGVkQ29w
eSgpLCBzaG91bGRJbmNsdWRlTG9jYWxob3N0XSB7Ci0gICAgICAgIGlmIChSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlzSVRQRGF0YWJhc2VFbmFibGVkKCkpIHsKLSAg
ICAgICAgICAgIG1fc3RhdGlzdGljc1N0b3JlID0gbWFrZVVuaXF1ZTxSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZT4oKnRoaXMsIG1fc3RhdGlzdGljc1F1ZXVlLCBzaG91bGRJbmNs
dWRlTG9jYWxob3N0LCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KTsKKworICAgIHBv
c3RUYXNrKFt0aGlzLCBkYXRhYmFzZUVuYWJsZWQgPSBuZXR3b3JrU2Vzc2lvbi5uZXR3b3JrUHJv
Y2VzcygpLmlzSVRQRGF0YWJhc2VFbmFibGVkKCksIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJl
Y3RvcnkgPSByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5Lmlzb2xhdGVkQ29weSgpLCBz
aG91bGRJbmNsdWRlTG9jYWxob3N0LCBzZXNzaW9uSUQgPSBuZXR3b3JrU2Vzc2lvbi5zZXNzaW9u
SUQoKV0geworICAgICAgICBpZiAoZGF0YWJhc2VFbmFibGVkKSB7CisgICAgICAgICAgICBtX3N0
YXRpc3RpY3NTdG9yZSA9IG1ha2VVbmlxdWU8UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU+KCp0aGlzLCBtX3N0YXRpc3RpY3NRdWV1ZSwgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCwg
cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgc2Vzc2lvbklEKTsKIAogICAgICAgICAg
ICAgYXV0byBtZW1vcnlTdG9yZSA9IG1ha2VVbmlxdWU8UmVzb3VyY2VMb2FkU3RhdGlzdGljc01l
bW9yeVN0b3JlPigqdGhpcywgbV9zdGF0aXN0aWNzUXVldWUsIHNob3VsZEluY2x1ZGVMb2NhbGhv
c3QpOwogICAgICAgICAgICAgYXV0byBwZXJzaXN0ZW50U3RvcmUgPSBtYWtlVW5pcXVlPFJlc291
cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZT4oKm1lbW9yeVN0b3JlLCBtX3N0YXRp
c3RpY3NRdWV1ZSwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDRkM2UxOWM4
MGRiNzA3MDAxOTQxYTMzZjM1OTk5YjlmMjI5ZGYzYmIuLjZmNzNiMTM2M2ZlNGZjY2NjMDRlODg2
M2Q2ZTFiNDMxZWY0YjkzMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0zMTQsNyArMzE0LDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
czo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzJiYKICAgICAgICAgbV9kZWZhdWx0TmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gbmV3VGVzdGlu
Z1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAgICAgfQogCi0g
ICAgV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRJ
c0lUUERhdGFiYXNlRW5hYmxlZChwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZUlUUERhdGFiYXNlKTsK
KyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgIG1faXNJVFBEYXRhYmFz
ZUVuYWJsZWQgPSBwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZUlUUERhdGFiYXNlOworI2VuZGlmCiAK
ICAgICBXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNl
dEFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQocGFyYW1ldGVycy5lbmFibGVBZENs
aWNrQXR0cmlidXRpb25EZWJ1Z01vZGUpOwogCkBAIC02ODIsNiArNjg0LDE3IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OnNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBj
b25zdCBSZWdpc3RyYWJsCiAgICAgfQogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRVc2VJ
VFBEYXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUpCit7CisgICAg
aWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklE
KSkgeworICAgICAgICBpZiAobV9pc0lUUERhdGFiYXNlRW5hYmxlZCAhPSB2YWx1ZSkgeworICAg
ICAgICAgICAgbV9pc0lUUERhdGFiYXNlRW5hYmxlZCA9IHZhbHVlOworICAgICAgICAgICAgbmV0
d29ya1Nlc3Npb24tPnJlY3JlYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljU3RvcmUoKTsKKyAgICAg
ICAgfQorICAgIH0gZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6c2V0UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtT
ZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDNkOTEzNjUwMmIwNjIz
NWExYTkzODZiZmVmMTY2MDJhZTQ3NWJjMzkuLmJmNWRiN2ZmYjNmYTFmYTM5NjdhZTY0NTNmMTZi
N2ZjNGFiZDUxZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmgKQEAgLTIyMyw2ICsyMjMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBpc1JlZ2lzdGVy
ZWRBc1N1YkZyYW1lVW5kZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN1YkZyYW1lRG9tYWluJiwg
Y29uc3QgVG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsK
ICAgICB2b2lkIGlzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihQQUw6OlNlc3Npb25JRCwg
Y29uc3QgU3ViUmVzb3VyY2VEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgc2V0R3JhbmRmYXRoZXJlZChQQUw6
OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBib29sIGlzR3JhbmRmYXRoZXJl
ZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFVzZUlUUERhdGFi
YXNlKFBBTDo6U2Vzc2lvbklELCBib29sIHZhbHVlKTsKICAgICB2b2lkIHNldE1heFN0YXRpc3Rp
Y3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBtYXhpbXVtRW50cnlDb3VudCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNl
KFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9k
ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwpAQCAtMjYzLDYgKzI2NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZnJvbURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHRvRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
cmVzZXRDcm9zc1NpdGVMb2Fkc1dpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNz
aW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBoYXNJc29sYXRl
ZFNlc3Npb24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgY29uc3Q7CisgICAgYm9vbCBpc0lU
UERhdGFiYXNlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNJVFBEYXRhYmFzZUVuYWJsZWQ7
IH0KICNlbmRpZgogCiAgICAgdXNpbmcgQ2FjaGVTdG9yYWdlUm9vdFBhdGhDYWxsYmFjayA9IENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPjsKQEAgLTUzNiw2ICs1MzgsMTAgQEAgcHJp
dmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXI+IG1f
bmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXI7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgYm9vbCBtX2lzSVRQRGF0YWJhc2VFbmFibGVkIHsgZmFs
c2UgfTsKKyNlbmRpZgorICAgIAogICAgIGNsYXNzIFN0b3JhZ2VRdW90YU1hbmFnZXJzIHsKICAg
ICBwdWJsaWM6CiAgICAgICAgIHVpbnQ2NF90IGRlZmF1bHRRdW90YShjb25zdCBXZWJDb3JlOjpD
bGllbnRPcmlnaW4mIG9yaWdpbikgY29uc3QgeyByZXR1cm4gb3JpZ2luLnRvcE9yaWdpbiA9PSBv
cmlnaW4uY2xpZW50T3JpZ2luID8gbV9kZWZhdWx0UXVvdGEgOiBtX2RlZmF1bHRUaGlyZFBhcnR5
UXVvdGE7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGUwMTM2ZGFkNWI3MGE4NzRmNDk3ZDUzYWIzODk2
OTdjYmEwNWNhYjUuLmM5ZTFhZWFiYzY5NWY1ZmFmYWY3YjdiNDQ0YmEyNjU1MGNjNmRiOWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbgpAQCAtMTEzLDYgKzExMyw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9j
ZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTdWJtaXRUZWxlbWV0cnkoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKSAtPiAoKSBBc3luYwogICAgIFNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50
UmVzb3VyY2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzKSAtPiAo
KSBBc3luYwogICAgIFNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbiwgYm9vbCBpc0dyYW5kZmF0
aGVyZWQpIC0+ICgpIEFzeW5jCisgICAgU2V0VXNlSVRQRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBib29sIHZhbHVlKQogICAgIFNldEdyYW5kZmF0aGVyaW5nVGltZShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25kcykgLT4gKCkgQXN5bmMKICAgICBTZXRN
YXhTdGF0aXN0aWNzRW50cmllcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IG1h
eGltdW1FbnRyeUNvdW50KSAtPiAoKSBBc3luYwogICAgIFNldE1pbmltdW1UaW1lQmV0d2VlbkRh
dGFSZWNvcmRzUmVtb3ZhbChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25k
cykgLT4gKCkgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5jcHAKaW5kZXggYzU3Y2JjZWUwYmFiMmY5Nzc4ZTcxZmEwODY0MTNkYjRjYWVlYzRh
Zi4uYjExY2NlY2FkYTI2MGVjYmViNWJlYjM1MjYwZGMyMGI4MDEwMzNmYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTkwLDYgKzkw
LDkgQEAgTmV0d29ya1Nlc3Npb246Ok5ldHdvcmtTZXNzaW9uKE5ldHdvcmtQcm9jZXNzJiBuZXR3
b3JrUHJvY2VzcywgY29uc3QgTmV0d29ya1Nlc3MKICAgICAgICAgaWYgKCFuZXR3b3JrQ2FjaGVE
aXJlY3RvcnkuaXNOdWxsKCkpCiAgICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1l
UGVybWFuZW50bHkocGFyYW1ldGVycy5uZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpOwogCisgICAgICAgIGlmICghcGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGly
ZWN0b3J5LmlzRW1wdHkoKSkKKyAgICAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQ
ZXJtYW5lbnRseShwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUpOworICAgICAgICAKICAgICAgICAgbV9jYWNoZSA9IE5ldHdvcmtDYWNoZTo6
Q2FjaGU6Om9wZW4obmV0d29ya1Byb2Nlc3MsIG5ldHdvcmtDYWNoZURpcmVjdG9yeSwgbmV0d29y
a1Byb2Nlc3MuY2FjaGVPcHRpb25zKCksIG1fc2Vzc2lvbklEKTsKICAgICAgICAgaWYgKCFtX2Nh
Y2hlKQogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29ya0NhY2hlLCAiRmFpbGVk
IHRvIGluaXRpYWxpemUgdGhlIFdlYktpdCBuZXR3b3JrIGRpc2sgY2FjaGUiKTsKQEAgLTE1OSw2
ICsxNjIsMTIgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbjo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0VuYWJsZWQoYm9vbCBlbmFibGUpCiAgICAgICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+
c2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUobV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWFudWFsUHJldmFsZW50UmVzb3VyY2UsIFtdIHsgfSk7CiB9CiAKK3ZvaWQgTmV0d29ya1Nlc3Np
b246OnJlY3JlYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljU3RvcmUoKQoreworICAgIGRlc3Ryb3lS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCk7CisgICAgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0g
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjcmVhdGUoKnRoaXMsIG1fcmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgbV9zaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzKTsKK30KKwogdm9pZCBOZXR3b3JrU2Vzc2lvbjo6bm90aWZ5UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1Byb2Nlc3NlZCgpCiB7CiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+cGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94
eTo6Tm90aWZ5UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Byb2Nlc3NlZCgpLCAwKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAppbmRleCAzMThlY2U0YTQ0
YjI0YzQ1ZjFkNzA2OWQ5ODZhMzMyMmE5YTUwMjliLi41M2U5ZmY3ZGNmNThmNmNjYmYyMWY0MzI4
NDM4NjM5NzFlMmQyMGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbi5oCkBAIC04NCw2ICs4NCw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSog
cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy5nZXQoKTsgfQogICAgIHZvaWQgc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJs
ZWQoYm9vbCk7CisgICAgdm9pZCByZWNyZWF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY1N0b3JlKCk7
CiAgICAgdm9pZCBub3RpZnlSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUHJvY2Vzc2VkKCk7CiAgICAg
dm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvclJlZ2lzdHJhYmxlRG9tYWlucyhPcHRpb25TZXQ8V2Vi
c2l0ZURhdGFUeXBlPiwgVmVjdG9yPHN0ZDo6cGFpcjxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biwgV2Vic2l0ZURhdGFUb1JlbW92ZT4+JiYsIGJvb2wgc2hvdWxkTm90aWZ5UGFnZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChjb25zdCBIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
PiYpPiYmKTsKICAgICB2b2lkIHJlZ2lzdHJhYmxlRG9tYWluc1dpdGhXZWJzaXRlRGF0YShPcHRp
b25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgYm9vbCBzaG91bGROb3RpZnlQYWdlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+JiYpPiYmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFT
dG9yZVJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRh
U3RvcmVSZWYuY3BwCmluZGV4IDU4Y2Q0M2YxOGViN2MxZGVhZDBlMWM3NjY1MjkzZDVkOTM1MGE0
MzIuLmYyOTZiNmIyZDhjMTNjYTkzZTVjMzlmNmZlYTMwN2RmYjk3MWRlZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVm
LmNwcApAQCAtMjY4LDYgKzI2OCwxMyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlz
dGljc0dyYW5kZmF0aGVyZWQoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZQogI2VuZGlm
CiB9CiAKK3ZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0VXNlSVRQRGF0YWJhc2UoV0tXZWJzaXRl
RGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgYm9vbCB2YWx1ZSkKK3sKKyNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZikt
PnNldFVzZUlUUERhdGFiYXNlKHZhbHVlKTsKKyNlbmRpZgorfQorCiB2b2lkIFdLV2Vic2l0ZURh
dGFTdG9yZVNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oV0tXZWJzaXRl
RGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYg
dG9wRnJhbWVIb3N0KQogewogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3Rv
cmVSZWYuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9y
ZVJlZi5oCmluZGV4IDdhM2RhNDU1MDBiMjAxOWIyY2U1OTE4YzRhODAyMTE4YTE0M2RkN2IuLmI4
MzU3Y2MyNzA0ZmVkZWJkNTU5NWQwMzJjMGU5M2U0YTU3MGUxYmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oCkBAIC03
MSw2ICs3MSw3IEBAIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbihXS1dlYnNpdGVEYXRhCiBXS19FWFBPUlQgdm9pZCBXS1dl
YnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1dlYnNpdGVEYXRhU3Rv
cmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBib29sIHZhbHVlKTsKIHR5cGVk
ZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWRGdW5j
dGlvbikoYm9vbCBpc0dyYW5kZmF0aGVyZWQsIHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CiBXS19F
WFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdL
V2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIHZvaWQq
IGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWRGdW5j
dGlvbiBjYWxsYmFjayk7CitXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRVc2VJ
VFBEYXRhYmFzZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBib29sIHZhbHVl
KTsKIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTdWJmcmFt
ZVVuZGVyVG9wRnJhbWVPcmlnaW4oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwg
V0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0KTsKIFdLX0VYUE9SVCB2
b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJh
bWVPcmlnaW4oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYg
aG9zdCwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0KTsKIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0
ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oV0tXZWJz
aXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdS
ZWYgaG9zdFJlZGlyZWN0ZWRUbyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBkYzU0ODhjNDczNjhiODBk
ZWRlZWVlYzg4ZmRkM2NhZTI4NDE1MjJkLi5iNWY2OWFmZmYxYmEwMjc3YWIyN2E5ZGJmNmQ1MWE4
NDZhYWEzNWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTc3NCw2ICs3NzQsMTQgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgUmVnaXMKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpTZXRHcmFuZGZhdGhlcmVkKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4sIGlzR3Jh
bmRmYXRoZXJlZCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpzZXRVc2VJVFBEYXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGJvb2wgdmFsdWUpCit7CisgICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgpKQorICAgICAgICBy
ZXR1cm47CisgICAgCisgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFVzZUlU
UERhdGFiYXNlKHNlc3Npb25JRCwgdmFsdWUpLCAwKTsKK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViUGFnZVByb3h5SWRlbnRpZmll
ciBwYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFp
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBhdXRvKiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oCmluZGV4IGJiMGUyYmYyM2Q4ZmI1YTAyYzVjNDQ5OTZhOWNkODVhNDdhYzRmNWMuLjVlZWRi
NzA3NTk5ODZjMmY1ZGJjNjY4OTI0MWVhZjc0YmEwOGVhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0xMTYs
NiArMTE2LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tp
ZXMoUEFMOjpTZXNzaW9uSUQsIE9wdGlvbmFsPFNlY29uZHM+LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Q2FjaGVNYXhBZ2VDYXAoUEFMOjpTZXNzaW9uSUQsIFNl
Y29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRHcmFuZGZh
dGhlcmVkKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGJvb2wgaXNH
cmFuZGZhdGhlcmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0
VXNlSVRQRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQsIGJvb2wgdmFsdWUpOwogICAgIHZvaWQgc2V0
Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChQQUw6OlNlc3Npb25JRCwgYm9v
bCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldElzUnVubmluZ1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NUZXN0KFBBTDo6U2Vzc2lvbklELCBib29sLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Tm90aWZ5UGFnZXNXaGVuVGVsZW1ldHJ5
V2FzQ2FwdHVyZWQoUEFMOjpTZXNzaW9uSUQsIGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IGI4YjJjZjVhOTU2ODg2YjFhOTlhMjc2OGE1MDIw
M2JkMTM2MTY4ZWYuLmU3ZWY3ZTQzMGJiZjE1NDNjNTAyMzBjNWQ0ZGUzMTQ4Y2FmNDk0MWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwCkBAIC0xNjkxLDYgKzE2OTEsMTQgQEAgdm9pZCBXZWJzaXRlRGF0YVN0
b3JlOjpzZXRHcmFuZGZhdGhlcmVkKGNvbnN0IFVSTCYgdXJsLCBib29sIGlzR3JhbmRmYXRoZXJl
ZCwgQ28KICAgICB9CiB9CiAKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0VXNlSVRQRGF0YWJh
c2UoYm9vbCB2YWx1ZSkKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAg
Zm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IHByb2Nlc3NQb29scygpKQorICAgICAgICBwcm9jZXNz
UG9vbC0+ZW5zdXJlTmV0d29ya1Byb2Nlc3MoKS5zZXRVc2VJVFBEYXRhYmFzZShtX3Nlc3Npb25J
RCwgdmFsdWUpOworfQorCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldENyb3NzU2l0ZUxvYWRX
aXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKGNvbnN0IFVSTCYgZnJvbVVSTCwgY29uc3QgVVJM
JiB0b1VSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggNDE1Yzgz
MWZjNTBhNzA1ODIxYTA0ZjA1ZTE1ZGI1OGViNDNmZDgzYy4uOGI3NjUxZWNlZTUxNzc2ZTJlYmUw
ZWJhYjZmMGZmZGIzYzE5Y2IyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtMTYxLDYgKzE2MSw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNjaGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vzc2lu
ZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc3VibWl0VGVsZW1ldHJ5
KCk7CiAgICAgdm9pZCBzZXRHcmFuZGZhdGhlcmVkKGNvbnN0IFVSTCYsIGJvb2wsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRVc2VJVFBEYXRhYmFzZShib29sKTsK
ICAgICB2b2lkIHNldEdyYW5kZmF0aGVyaW5nVGltZShTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0TGFzdFNlZW4oY29uc3QgVVJMJiwgU2Vjb25kcywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldE5vdGlmeVBhZ2VzV2hl
bkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBl
OGY1Njc2NDk0NmRhNGVlNDQ5MmM3MTk2NjQ4NjI5YmNiMmQyZGZlLi40NDRjOWQzMzY0YzUzZDk5
ZThhN2JmOWRlYmI2Y2IyNGI3ZjQxZTA0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTktMDktMjUgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIExheW91
dFRlc3RzIHVzaW5nIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgU1FMaXRlIGJhY2tlbmQgKDE5NTQy
MCkgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTU0
MjAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQy
MTM1NTE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKKworICAgICAgICBBZGRlZCBpbiBsb2dpYyB0byBzZW5k
IGEgbWVzc2FnZSBmcm9tIHRoZSBVSVByb2Nlc3MgdG8gdGhlIE5ldHdvcmsgICAgICAKKyAgICAg
ICAgUHJvY2VzcyB3aGljaCB3aWxsIGluaXRhbGl6ZSB0aGUgSVRQIERhdGFiYXNlIGJhY2tlbmQg
dG8gYWxsb3cgZm9yICAgICAgCisgICAgICAgIGxheW91dCB0ZXN0aW5nLiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0VXNlSVRQRGF0YWJhc2UpOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6c2V0VXNlSVRQRGF0YWJhc2UpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5j
aHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDE5LTA5LTI1ICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpUGFkT1NdIFtEYXRh
QWN0aXZhdGlvbl0gRm9jdXMgbW92ZXMgYXdheSBhZnRlciBmb2N1c2luZyBpbnB1dCBmaWVsZHMg
b24gd3d3LmF0dC5jb20KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IDNjZDk0YmVkYTQ3
MDYwNDlhZTA5YmI4YjMxMjNlMTlhNjNjOWZlNjYuLjk2NzZmMmVhNjVmNDUyNGUxOTQxNTkwMjRh
NmVkNjI4MjQwNWIwZDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtMzA5LDYgKzMw
OSw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICBib29sZWFuIGlzU3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbihET01TdHJpbmcgaG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3Rh
dGlzdGljc0dyYW5kZmF0aGVyZWQoRE9NU3RyaW5nIGhvc3ROYW1lLCBib29sZWFuIHZhbHVlKTsK
ICAgICBib29sZWFuIGlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoRE9NU3RyaW5nIGhvc3ROYW1l
KTsKKyAgICB2b2lkIHNldFVzZUlUUERhdGFiYXNlKGJvb2xlYW4gdmFsdWUpOwogICAgIHZvaWQg
c2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihET01TdHJpbmcgaG9zdE5h
bWUsIERPTVN0cmluZyB0b3BGcmFtZUhvc3ROYW1lKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NT
dWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oRE9NU3RyaW5nIGhvc3ROYW1lLCBET01TdHJp
bmcgdG9wRnJhbWVIb3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VV
bmlxdWVSZWRpcmVjdFRvKERPTVN0cmluZyBob3N0TmFtZSwgRE9NU3RyaW5nIGhvc3ROYW1lUmVk
aXJlY3RlZFRvKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGI0OTVjZmEwZDQyZTkyNmVlNTE2MjE1ZmUzYzAzMGI5
MTMwZmUzYTcuLmY4MTYyNDJmMmRiNGJmMTA5ZmUwYjQ4NmMwYmM5ZWE0NWU0NTk0OTcgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcApAQCAtMTY5NCw3ICsxNjk0LDE1IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGlj
c0dyYW5kZmF0aGVyZWQoSlNTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpCiAgICAgCiAg
ICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0
b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxs
cHRyKTsKIH0KKwordm9pZCBUZXN0UnVubmVyOjpzZXRVc2VJVFBEYXRhYmFzZShib29sIHZhbHVl
KQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZSA9IGFkb3B0V0so
V0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlNldFVzZUlUUERhdGFiYXNlIikpOworICAg
IFdLUmV0YWluUHRyPFdLQm9vbGVhblJlZj4gbWVzc2FnZUJvZHkgPSBhZG9wdFdLKFdLQm9vbGVh
bkNyZWF0ZSh2YWx1ZSkpOwogICAgIAorICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2Fn
ZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgp
LCBtZXNzYWdlQm9keS5nZXQoKSwgbnVsbHB0cik7Cit9CisKIGJvb2wgVGVzdFJ1bm5lcjo6aXNT
dGF0aXN0aWNzR3JhbmRmYXRoZXJlZChKU1N0cmluZ1JlZiBob3N0TmFtZSkKIHsKICAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJJc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkIikpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCAy
ZGEyOGJiZGQ2MjY2YjZiN2JiOTI2NDQ5N2ZhY2RlZjY0NDEzNzc5Li5mNGFkM2E2MGUyZTU3NTBi
M2MxNjU2MjY0ODQyNTU5YTVkYzMyNjNiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtNDEwLDYgKzQxMCw3IEBAIHB1Ymxp
YzoKICAgICBib29sIGlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihKU1N0cmluZ1Jl
ZiBob3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChKU1N0cmlu
Z1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSk7CiAgICAgYm9vbCBpc1N0YXRpc3RpY3NHcmFuZGZh
dGhlcmVkKEpTU3RyaW5nUmVmIGhvc3ROYW1lKTsKKyAgICB2b2lkIHNldFVzZUlUUERhdGFiYXNl
KGJvb2wgdmFsdWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFt
ZU9yaWdpbihKU1N0cmluZ1JlZiBob3N0TmFtZSwgSlNTdHJpbmdSZWYgdG9wRnJhbWVIb3N0TmFt
ZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lu
KEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBKU1N0cmluZ1JlZiB0b3BGcmFtZUhvc3ROYW1lKTsKICAg
ICB2b2lkIHNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oSlNTdHJpbmdS
ZWYgaG9zdE5hbWUsIEpTU3RyaW5nUmVmIGhvc3ROYW1lUmVkaXJlY3RlZFRvKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZDJhMTBjYTY0YjRhYmFiZTFm
ZGM3ODRiNTM4NzMzZWExYjlkMGJmMy4uMmY1YmQ5OTI5NjdkNzNhZjMyYTBiN2Y0YWI1NmNlNDZi
MTQ1Zjk2MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAg
LTMzNTEsNiArMzM1MSwxMSBAQCBib29sIFRlc3RDb250cm9sbGVyOjppc1N0YXRpc3RpY3NHcmFu
ZGZhdGhlcmVkKFdLU3RyaW5nUmVmIGhvc3QpCiAgICAgcmV0dXJuIGNvbnRleHQucmVzdWx0Owog
fQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRVc2VJVFBEYXRhYmFzZShib29sIHZhbHVlKQor
eworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFVzZUlUUERhdGFiYXNlKFRlc3RDb250cm9sbGVy
Ojp3ZWJzaXRlRGF0YVN0b3JlKCksIHZhbHVlKTsKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6
c2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihXS1N0cmluZ1JlZiBob3N0
LCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3QpCiB7CiAgICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0
U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihUZXN0Q29udHJvbGxlcjo6d2Vi
c2l0ZURhdGFTdG9yZSgpLCBob3N0LCB0b3BGcmFtZUhvc3QpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5oCmluZGV4IGFmNWU1OTk1NjJkNzZiZTg3YWM1NzJjNDRiYzQyNzkz
ZTdlZTI1NDIuLjcyZWRhYmU4ZmYyYTljZTRmMjZmOTUzNDc2ODRiZDg0YTZiYzYxNmIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTIyMiw2ICsyMjIsNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oV0tTdHJp
bmdSZWYgaG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tT
dHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpOwogICAgIGJvb2wgaXNTdGF0aXN0aWNzR3Jh
bmRmYXRoZXJlZChXS1N0cmluZ1JlZiBob3N0TmFtZSk7CisgICAgdm9pZCBzZXRVc2VJVFBEYXRh
YmFzZShib29sIHZhbHVlKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9w
RnJhbWVPcmlnaW4oV0tTdHJpbmdSZWYgaG9zdE5hbWUsIFdLU3RyaW5nUmVmIHRvcEZyYW1lSG9z
dE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9y
aWdpbihXS1N0cmluZ1JlZiBob3N0TmFtZSwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0TmFtZSk7
CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKFdLU3Ry
aW5nUmVmIGhvc3ROYW1lLCBXS1N0cmluZ1JlZiBob3N0TmFtZVJlZGlyZWN0ZWRUbyk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IGZkMjUyMDBkNDAyZjBj
ZmQzMjJjYmViYTE4ZjA1YjA5ZjRmY2QxZmUuLjMwNjUwYzQ5OTExMzkzYWRkZjA4MWM3YTEwZjBj
NDhlMWQzODk0NDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3Bw
CkBAIC0xMjQxLDYgKzEyNDEsMTQgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2Nh
dGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICAgICAg
V0tSZXRhaW5QdHI8V0tUeXBlUmVmPiByZXN1bHQgPSBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZShp
c0dyYW5kZmF0aGVyZWQpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CisKKyAgICBp
ZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFVzZUlUUERh
dGFiYXNlIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBX
S0Jvb2xlYW5HZXRUeXBlSUQoKSk7CisKKyAgICAgICAgV0tCb29sZWFuUmVmIHZhbHVlID0gc3Rh
dGljX2Nhc3Q8V0tCb29sZWFuUmVmPihtZXNzYWdlQm9keSk7CisgICAgICAgIFRlc3RDb250cm9s
bGVyOjpzaW5nbGV0b24oKS5zZXRVc2VJVFBEYXRhYmFzZShXS0Jvb2xlYW5HZXRWYWx1ZSh2YWx1
ZSkpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CiAgICAgCiAgICAgaWYgKFdLU3Ry
aW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRTdGF0aXN0aWNzU3ViZnJh
bWVVbmRlclRvcEZyYW1lT3JpZ2luIikpIHsKICAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1l
c3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25hcnlHZXRUeXBlSUQoKSk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTdiMzU5MTJi
NWJjMTBkOGNhY2Q1ODk2MDY2YjY2MGQ2NTlkMmU3MC4uNzMzN2JhZDRkOWM5M2M2YTBhZDAwOGE3
YjQ0YTY5Njc0YzhiODMwNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1OCBAQAorMjAxOS0wOS0yNSAgS2F0
ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUg
TGF5b3V0VGVzdHMgdXNpbmcgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBTUUxpdGUgYmFja2VuZCAo
MTk1NDIwKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk1NDIwIAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQyMTM1NTE+CisKKyAgICAgICAgQWRk
ZWQgYSBmbGFnIHRvIGFsbCBJVFAgdGVzdHMgdG8gZW5hYmxlIHRoZSBJVFAgZGF0YWJhc2UgYmFj
a2VuZCB0byAKKyAgICAgICAgYWxsb3cgZm9yIHRlc3RpbmcgZnVuY3Rpb25hbGl0eSBhZ2FpbnN0
IHRoZSBtZW1vcnkgc3RvcmUuIFRlc3RzIHdlcmUgCisgICAgICAgIG5vdCBjcmVhdGVkIGZvciB0
ZWxlbWV0cnktZ2VuZXJhdGlvbi5odG1sLCAKKyAgICAgICAgbG9nLWNyb3NzLXNpdGUtbG9hZC13
aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sLCBvciAKKyAgICAgICAgd2Vic2l0ZS1kYXRhLXJlbW92
YWwtZm9yLXNpdGUtbmF2aWdhdGVkLXRvLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0bWwsIAorICAg
ICAgICBiZWNhdXNlIHRoZXNlIHJlbHkgb24gZnVuY3Rpb25zIG5vdCB5ZXQgaW1wbGVtZW50ZWQg
aW4gdGhlIElUUCBkYXRhYmFzZS4KKyAgICAgICAgQWRkaXRpb25hbGx5LCBhZGRlZCBmbGFncyB0
byBzb21lIG1lbW9yeSBzdG9yZSB0ZXN0cyB0byBlbnN1cmUgdGhleQorICAgICAgICBhcmUgdXNp
bmcgdGhlIG1lbW9yeSBzdG9yZSBiZWZvcmUgY2FsbGluZyBmdW5jdGlvbnMgbm90IGltcGxlbWVu
dGVkIGluCisgICAgICAgIHRoZSBkYXRhYmFzZSBzdG9yZSB5ZXQuCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Fk
ZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1z
Y3JpcHQtaW1wb3J0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Jsb2NraW5nLWluLXdlYi13b3JrZXItc2Ny
aXB0LWltcG9ydC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1hZ2UtZm9yLXByZXZhbGVudC1yZXNv
dXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1mb3ItcHJldmFsZW50LXJl
c291cmNlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLWRhdGFi
YXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29y
YXRpb24tc2FtZS1zaXRlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29v
a2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUtZGF0YWJhc2UuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nh
cHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJv
bS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZv
ci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNv
dXJjZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgt
bGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1x
dWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBl
ZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2
YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRh
YmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGhvdXQtbGluay1k
ZWNvcmF0aW9uLWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBl
ZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1m
cm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVu
dC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9y
aWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1v
bi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdp
bnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1z
dWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
bm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVz
b3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50
LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11
bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJh
c2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVz
aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2Ut
cmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZh
bGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2Uu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJh
bWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJj
ZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1k
YXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVj
dC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJh
c2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRh
YmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVu
aXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJh
c2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVy
eS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4t
bWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1l
bW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1w
ZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9y
eS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9u
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llcy13aXRo
LWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llcy13
aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQt
YWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNz
aWJsZS1jb29raWVzLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24t
cmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0
aW9uLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNzLWZvci1zaW1w
bGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1jYXB0dXJlLXN0YXRp
c3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2aWdhdGlvbnMtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUt
YmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9j
a2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmln
YXRpb24tdG8tcHJldmFsZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
ZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGhvdXQt
aW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24t
d2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20t
cHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJh
c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xvZy1jcm9zcy1zaXRlLWxvYWQt
d2l0aC1saW5rLWRlY29yYXRpb24uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rp
b24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50
ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWlu
dGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91
dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlcy1jYW4t
YWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0LWRhdGFiYXNlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBh
cnR5LWNvbnRleHQtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRv
LWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2Fs
aG9zdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJh
bWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVk
LW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxo
b3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5l
c3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0
LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFt
ZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94
ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNh
bmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9j
YWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVk
LW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3Qt
dG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZS1k
YXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJl
dmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxl
bnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Ut
dW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVu
aGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWlu
dGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXIt
aW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJh
Y3Rpb24tdGltZW91dC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11
c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRo
b3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNl
LXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRh
YmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94
ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxv
Y2FsaG9zdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRi
b3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3Rpbmct
aWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlw
LXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUt
d2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9j
YWxob3N0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
YW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlw
LXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdp
dGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hl
ZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4tZGVidWctbW9kZS1kYXRhYmFzZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRp
cmVjdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2
YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1v
cmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1
ZXN0cy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQt
d2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZp
Z2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy90ZWxlbWV0cnkt
Z2VuZXJhdGlvbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRhdGFi
YXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVy
aW9kLW9mLXRpbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9y
dGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVy
YWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwt
ZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZvci1zaXRlLW5hdmlnYXRlZC10by13aXRo
LWxpbmstZGVjb3JhdGlvbi5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0
YXRpb25zOgorICAgICAgICBBZGRlZCB0ZXN0IGV4cGVjdGF0aW9ucyB0byBza2lwIGRhdGFiYXNl
IHRlc3RzIHdoaWNoIGRvIG5vdCB3b3JrIGluIAorICAgICAgICBpb3MgYmVjYXVzZSBvZiByZWxp
YW5jZSBvbiBFdmVudFNlbmRlci5rZXlkb3duKCkgd2hpY2ggaXMgbm90CisgICAgICAgIHN1cHBv
cnRlZCBvbiBpT1MgYW5kIGFsc28gdGhvc2Ugd2hpY2ggdXNlIFVJSGVscGVyLmFjdGl2YXRlQXQo
KSB3aGljaAorICAgICAgICBkb2VzIG5vdCBwcm9kdWNlIGEgdXNlciBnZXN0dXJlIGNhcHR1cmVk
IGJ5IElUUCBpbiBpT1MuCisKIDIwMTktMDktMjUgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxl
c2hAZ21haWwuY29tPgogCiAgICAgICAgIFJlLXN5bmMgd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQiBmcm9tIHVwc3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFmZWY5Y2QyNmU4NjFiMGZkYjE0ZjVkYzBiMGExNjAwZjRlOGRhZDQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRk
LWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYz
IEBACitUZXN0cyB0aGF0IGJsb2NraW5nIGlzIGFkZGVkIG1pZC1mbGlnaHQgaW4gcmVkaXJlY3Rz
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0t
ZnJhbWUxLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4K
K1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2Vp
dmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVu
dC5jb29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEt
LWZyYW1lMi0tPicKKy0tLS0tLS0tCitSZWRpcmVjdCBjYXNlIDEsIHNob3VsZCByZWNlaXZlIGZp
cnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tp
ZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitD
bGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUKKworLS0t
LS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMy0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBu
byBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tp
ZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitD
bGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFt
ZTQtLT4nCistLS0tLS0tLQorUmVkaXJlY3QgY2FzZSAyLCBzaG91bGQgcmVjZWl2ZSBubyBjb29r
aWUuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0Rp
ZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3BhcnRpdGlvbmVkQ29va2llJy4KK0NsaWVudC1z
aWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNS0tPicK
Ky0tLS0tLS0tCitUcnkgdG8gc2V0IHRoaXJkLXBhcnR5IGNvb2tpZSBpbiBibG9ja2VkIG1vZGUu
CisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNi0tPicKKy0tLS0tLS0tCitBZnRlciBh
dHRlbXB0ZWQgY29va2llIGNyZWF0aW9uLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWUuCitEaWQg
bm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVj
ZWl2ZSBjb29raWUgbmFtZWQgJ3BhcnRpdGlvbmVkQ29va2llJy4KK0NsaWVudC1zaWRlIGRvY3Vt
ZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNy0tPicKKy0tLS0tLS0t
CitSZWRpcmVjdCBjYXNlIDMsIGFmdGVyIGF0dGVtcHRlZCBjb29raWUgY3JlYXRpb24sIHNob3Vs
ZCByZWNlaXZlIG5vIGNvb2tpZS4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0
UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9uZWRD
b29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1y
ZWRpcmVjdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjAxZDYzYTUxNjg3OGEwODM4ZDI5OGU3NjNlMDNkMmViODQ2YTA5OWQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
YWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMDQgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hh
cnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMg
dGhhdCBibG9ja2luZyBpcyBhZGRlZCBtaWQtZmxpZ2h0IGluIHJlZGlyZWN0cy4iKTsKKyAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAu
MC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIjsKKyAgICBjb25zdCByZXNvdXJjZVBhdGggPSAiL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlP
cmlnaW4gKyByZXNvdXJjZVBhdGg7CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgPSAi
Zmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tp
ZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiJnZh
bHVlPXZhbHVlIjsKKyAgICBjb25zdCBwYXJ0aXRpb25lZENvb2tpZU5hbWUgPSAicGFydGl0aW9u
ZWRDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldFBhcnRpdGlvbmVkQ29va2llID0gIi9z
ZXQtY29va2llLnBocD9uYW1lPSIgKyBwYXJ0aXRpb25lZENvb2tpZU5hbWUgKyAiJnZhbHVlPXZh
bHVlIjsKKyAgICBjb25zdCByZXR1cm5VcmwgPSAiaHR0cDovLyIgKyBwYXJ0aXRpb25Ib3N0ICsg
Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC5odG1sIjsK
KyAgICBjb25zdCBzdWJQYXRoVG9HZXRDb29raWVzID0gIi9nZXQtY29va2llcy5waHA/bmFtZTE9
IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZuYW1lMj0iICsgcGFydGl0aW9uZWRDb29raWVO
YW1lOworICAgIGNvbnN0IHJlZGlyZWN0Q2hhaW5VcmwgPSAiaHR0cDovLyIgKyBwYXJ0aXRpb25I
b3N0ICsgcmVzb3VyY2VQYXRoICsgIi9yZWRpcmVjdC5waHA/cmVkaXJlY3RUbz0iICsgdGhpcmRQ
YXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzOworCisgICAgZnVuY3Rpb24gb3Blbklm
cmFtZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsK
KyAgICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2Fk
ID0gb25Mb2FkSGFuZGxlcjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGVsZW1lbnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAg
ICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAi
I3N0ZXAxIjoKKyAgICAgICAgICAgICAgICAvLyBTZXQgZmlyc3QtcGFydHkgY29va2llIGZvciBs
b2NhbGhvc3QuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJk
UGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIHJldHVy
blVybCArICIjc3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBjb29raWUgZ2V0
cyBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCBpcyBu
b3QgcHJldmFsZW50LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAi
c3RlcDMiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBz
dWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5
IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9
ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgLy8gTG9hZCBhbiBpZnJhbWUgaW4gYSByZWRpcmVj
dCBjaGFpbiB0aGF0IHN0YXJ0cyB3aXRoIDEyNy4wLjAuMSBhbmQgZW5kcyB3aXRoIGxvY2FsaG9z
dC4gRXhwZWN0IGEgY29va2llIGZvciBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAgb3Blbklm
cmFtZShyZWRpcmVjdENoYWluVXJsICsgIiZtZXNzYWdlPVJlZGlyZWN0IGNhc2UgMSwgc2hvdWxk
IHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICAvLyBT
ZXQgbG9jYWxob3N0IGFzIHByZXZhbGVudCB0byBwdXQgaXQgaW4gdGhlIGJsb2NraW5nIGNhdGVn
b3J5LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0
eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSAiI3N0ZXA1IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IG5vIGNvb2tpZSBnZXRz
IHNlbnQgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEgc2luY2UgbG9jYWxob3N0J3MgY29v
a2llcyBhcmUgYmxvY2tlZC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNo
ID0gInN0ZXA2IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJs
ICsgc3ViUGF0aFRvR2V0Q29va2llcyArICAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgbm8gY29v
a2llcy4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgIiNzdGVwNiI6CisgICAgICAgICAgICAgICAgLy8gTG9hZCBhbiBpZnJhbWUgaW4gYSByZWRp
cmVjdCBjaGFpbiB0aGF0IHN0YXJ0cyB3aXRoIDEyNy4wLjAuMSBhbmQgZW5kcyB3aXRoIGxvY2Fs
aG9zdC4gRXhwZWN0IG5vIGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDciOworICAgICAgICAgICAgICAgIG9wZW5JZnJh
bWUocmVkaXJlY3RDaGFpblVybCArICImbWVzc2FnZT1SZWRpcmVjdCBjYXNlIDIsIHNob3VsZCBy
ZWNlaXZlIG5vIGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgIiNzdGVwNyI6CisgICAgICAgICAgICAgICAgLy8gVHJ5IHRvIHNldCBj
b29raWUgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwOCI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFt
ZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldFBhcnRpdGlvbmVkQ29va2llICsgIiZt
ZXNzYWdlPVRyeSB0byBzZXQgdGhpcmQtcGFydHkgY29va2llIGluIGJsb2NrZWQgbW9kZS4iLCBy
dW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVw
OCI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBubyBjb29raWUgZ2V0cyBzZW50IGZv
ciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCdzIGNvb2tpZXMgYXJl
IGJsb2NrZWQuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVw
OSI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBh
dGhUb0dldENvb2tpZXMgKyAgIiZtZXNzYWdlPUFmdGVyIGF0dGVtcHRlZCBjb29raWUgY3JlYXRp
b24sIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwOSI6CisgICAgICAgICAgICAgICAgLy8g
TG9hZCBhbiBpZnJhbWUgaW4gYSByZWRpcmVjdCBjaGFpbiB0aGF0IHN0YXJ0cyB3aXRoIDEyNy4w
LjAuMSBhbmQgZW5kcyB3aXRoIGxvY2FsaG9zdC4gRXhwZWN0IG5vIGNvb2tpZSBmb3IgbG9jYWxo
b3N0LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEwIjsK
KyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHJlZGlyZWN0Q2hhaW5VcmwgKyAiJm1lc3NhZ2U9
UmVkaXJlY3QgY2FzZSAzLCBhZnRlciBhdHRlbXB0ZWQgY29va2llIGNyZWF0aW9uLCBzaG91bGQg
cmVjZWl2ZSBubyBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlICIjc3RlcDEwIjoKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IHdhcyBjbGFzc2lmaWVkIGFzIHByZXZh
bGVudCByZXNvdXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2ggPSAic3RlcDEiOworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9
KTsKKyAgICB9IGVsc2UgeworICAgICAgICBydW5UZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRh
dGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljYjc5OTQzZWQ4YjQ5YTg0MWJkMTI5YjNmNWFjYTZl
MmEzYjIxYmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRh
dGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0IGZvciBjb29raWUgYmxv
Y2tpbmcgd2hlbiB3ZWIgd29ya2VycyBpbXBvcnQgY3Jvc3Mtc2l0ZSBzY3JpcHRzLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBEaWQgcmVjZWl2ZSBmaXJzdFBhcnR5Q29v
a2llID09IHZhbHVlCitQQVNTIERpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgZmlyc3RQYXJ0
eUNvb2tpZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQg
cmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0
UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29v
a2llPXZhbHVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxv
Y2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uY2MyMDEwODUxMDY1YWNhODRhMmEyZjhlOTk3OTA3ODE4NTdmYjE5YgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9j
a2luZy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsx
LDg4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxz
Y3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgY29va2llIGJsb2NraW5nIHdo
ZW4gd2ViIHdvcmtlcnMgaW1wb3J0IGNyb3NzLXNpdGUgc2NyaXB0cy4iKTsKKyAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgw
MDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
IjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyAiL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29v
a2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJz
dFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2ll
TmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHJldHVyblVybCA9ICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29ya2Vy
LXNjcmlwdC1pbXBvcnQuaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIv
Z2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZTsKKworICAgIGZ1
bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVu
dC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBl
bGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAgICBsZXQgcmVjZWl2ZWRN
ZXNzYWdlcyA9IDA7CisgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAg
ICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7
CisKKyAgICAgICAgKytyZWNlaXZlZE1lc3NhZ2VzOworICAgICAgICBpZiAocmVjZWl2ZWRNZXNz
YWdlcyA+PSAyKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hK
U1Rlc3QpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0
aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAg
ZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0
Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIHJldHVyblVybCArICIjc3RlcDIiOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAg
ICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBvcGVu
SWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2Fn
ZT1TaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDQiOworICAgICAgICAgICAgICAgIGxl
dCB3MSA9IG5ldyBXb3JrZXIoInJlc291cmNlcy93b3JrZXItaW1wb3J0aW5nLWxvY2FsaG9zdC1z
Y3JpcHQuanMiKTsKKyAgICAgICAgICAgICAgICB3MS5vbm1lc3NhZ2UgPSByZWNlaXZlTWVzc2Fn
ZTsKKyAgICAgICAgICAgICAgICB3MS5wb3N0TWVzc2FnZSgic2hvdWxkUmVjZWl2ZUNvb2tpZXM9
dHJ1ZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0
IjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA1IjsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0
aGlyZFBhcnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlP
cmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90
IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
IiNzdGVwNSI6CisgICAgICAgICAgICAgICAgbGV0IHcyID0gbmV3IFdvcmtlcigicmVzb3VyY2Vz
L3dvcmtlci1pbXBvcnRpbmctbG9jYWxob3N0LXNjcmlwdC5qcyIpOworICAgICAgICAgICAgICAg
IHcyLm9ubWVzc2FnZSA9IHJlY2VpdmVNZXNzYWdlOworICAgICAgICAgICAgICAgIHcyLnBvc3RN
ZXNzYWdlKCJzaG91bGROb3RSZWNlaXZlQ29va2llcyIpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09
IHBhcnRpdGlvbkhvc3QgJiYgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIgJiYgd2luZG93
LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNl
dFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAg
ICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQ
YXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IHdhcyBj
bGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLiIp
OworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAg
ICAgICBydW5UZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2Fw
LWNhY2hlLW1heC1hZ2UtZm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNh
Y2hlLW1heC1hZ2UtZm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGNjZTVhYTFjMzZhOTRkNTUwYmRlMjI5YWRlNDQ2ZmY4MzU1YzFjYgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jYXAtY2FjaGUtbWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0cyB0aGF0IGNhY2hlIG1heC1hZ2UgaXMg
Y2FwcGVkIGZvciBwcmV2YWxlbnQgcmVzb3VyY2VzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBsb2FkZWRVcmwgaXMgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXF1ZXJ5LnBocD92YWx1ZT0xMjM0IgorUEFT
UyBsb2FkZWRVcmwgaXMgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3Jlc291cmNlcy9lY2hvLXF1ZXJ5LnBocD92YWx1ZT00MzIxIgorUEFTUyBsb2FkZWRVcmwg
aXMgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNl
cy9lY2hvLXF1ZXJ5LnBocD92YWx1ZT0iCitQQVNTIGxvYWRlZFVybCBpcyAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhw
P3ZhbHVlPSIKK1BBU1MgbG9hZGVkVXJsIGlzICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9IgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUt
bWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1hZ2UtZm9y
LXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2NGE0NTE4YTgz
Mzk0NjA5MDczMzM3M2YxZjYwMjE2M2FhYjkzMmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1hZ2Ut
Zm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTEzIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2FwcGVkIENhY2hl
IE1heC1BZ2U8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0
aW9uKCJUZXN0cyB0aGF0IGNhY2hlIG1heC1hZ2UgaXMgY2FwcGVkIGZvciBwcmV2YWxlbnQgcmVz
b3VyY2VzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgdmFyIGxvYWRlZFVy
bDsKKyAgICBmdW5jdGlvbiBmaXJzdEZldGNoKCkgeworICAgICAgICAvLyBUaGlzIHNob3VsZCBj
cmVhdGUgYSBjYXBwZWQgY2FjaGUgZW50cnkuCisgICAgICAgIGZldGNoKCJodHRwOi8vbG9jYWxo
b3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvY2FjaGVkLXBlcm1hbmVu
dC1yZWRpcmVjdC5waHAiLAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhY2hlOiAi
cmVsb2FkIiwKKyAgICAgICAgICAgICAgICBoZWFkZXJzOiB7CisgICAgICAgICAgICAgICAgICAg
ICJYLVdlYktpdCI6ICIxMjM0IiwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Cisg
ICAgICAgICkudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgbG9hZGVkVXJs
ID0gcmVzcG9uc2UudXJsOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsb2Fk
ZWRVcmwiLCAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVz
b3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPTEyMzQiKTsKKyAgICAgICAgICAgIHNlY29uZEZl
dGNoKCk7CisgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgICAgICB0
ZXN0RmFpbGVkKGVycm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
c2Vjb25kRmV0Y2goKSB7CisgICAgICAgIC8vIFRoaXMgc2hvdWxkIG5vdCB0cmlnZ2VyIGEgc3Vj
Y2Vzc2Z1bCBjYWNoZSBoaXQgYW5kIGluc3RlYWQgY3JlYXRlIGFub3RoZXIgY2FwcGVkIGNhY2hl
IGVudHJ5LgorICAgICAgICBmZXRjaCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2NhY2hlZC1wZXJtYW5lbnQtcmVkaXJlY3QucGhwIiwKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjYWNoZTogImZvcmNlLWNhY2hlIiwKKyAgICAg
ICAgICAgICAgICBoZWFkZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICJYLVdlYktpdCI6ICI0
MzIxIiwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICkudGhlbihm
dW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgbG9hZGVkVXJsID0gcmVzcG9uc2UudXJs
OworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsb2FkZWRVcmwiLCAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVl
cnkucGhwP3ZhbHVlPTQzMjEiKTsKKyAgICAgICAgICAgIHRoaXJkRmV0Y2goKTsKKyAgICAgICAg
fSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoZXJyb3Iu
bWVzc2FnZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rl
c3QpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0aGlyZEZldGNoKCkgewor
ICAgICAgICAvLyBUaGlzIHNob3VsZCBub3QgdHJpZ2dlciBhIHN1Y2Nlc3NmdWwgY2FjaGUgaGl0
IGFuZCBpbnN0ZWFkIGNyZWF0ZSBhbm90aGVyIGNhcHBlZCBjYWNoZSBlbnRyeS4KKyAgICAgICAg
ZmV0Y2goImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291
cmNlcy9jYWNoZWQtcGVybWFuZW50LXJlZGlyZWN0LnBocCIsCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgY2FjaGU6ICJmb3JjZS1jYWNoZSIsCisgICAgICAgICAgICB9CisgICAgICAg
ICkudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgbG9hZGVkVXJsID0gcmVz
cG9uc2UudXJsOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsb2FkZWRVcmwi
LCAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2Vz
L2VjaG8tcXVlcnkucGhwP3ZhbHVlPSIpOworICAgICAgICAgICAgZm91cnRoRmV0Y2goKTsKKyAg
ICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
ZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5p
c2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmb3VydGhGZXRj
aCgpIHsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgbm90IHRyaWdnZXIgYSBzdWNjZXNzZnVsIGNh
Y2hlIGhpdCBidXQgY2xlYXIgY2FwcGluZy4KKyAgICAgICAgZmV0Y2goImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9jYWNoZWQtcGVybWFuZW50
LXJlZGlyZWN0LnBocCIsCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY2FjaGU6ICJm
b3JjZS1jYWNoZSIsCisgICAgICAgICAgICB9CisgICAgICAgICkudGhlbihmdW5jdGlvbihyZXNw
b25zZSkgeworICAgICAgICAgICAgbG9hZGVkVXJsID0gcmVzcG9uc2UudXJsOworICAgICAgICAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsb2FkZWRVcmwiLCAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVl
PSIpOworICAgICAgICAgICAgZmlmdGhGZXRjaCgpOworICAgICAgICB9KS5jYXRjaChmdW5jdGlv
bihlcnJvcikgeworICAgICAgICAgICAgdGVzdEZhaWxlZChlcnJvci5tZXNzYWdlKTsKKyAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0p
OworICAgIH0KKworICAgIGZ1bmN0aW9uIGZpZnRoRmV0Y2goKSB7CisgICAgICAgIC8vIFRoaXMg
c2hvdWxkIHRyaWdnZXIgYSByZWd1bGFyLCBzdWNjZXNzZnVsIGNhY2hlIGhpdC4KKyAgICAgICAg
ZmV0Y2goImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291
cmNlcy9jYWNoZWQtcGVybWFuZW50LXJlZGlyZWN0LnBocCIsCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgaGVhZGVyczogeworICAgICAgICAgICAgICAgICAgICAiWC1XZWJLaXQiOiAi
MTIzNCIsCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICApLnRoZW4o
ZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGxvYWRlZFVybCA9IHJlc3BvbnNlLnVy
bDsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibG9hZGVkVXJsIiwgImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXF1
ZXJ5LnBocD92YWx1ZT0iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKGVycm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfQorICAgIHRlc3RS
dW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
IkxvY2FsaG9zdCB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRo
ZSB0ZXN0IHN0YXJ0ZWQuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzQ2Fj
aGVNYXhBZ2VDYXAoMCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhmaXJzdEZldGNo
KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
YXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1s
aWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDg0NjIwZDZkMzMxMjExNjQ1MWE4YTU5Yzg0YmU2MTc2NGM0NmUzMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
YXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTEgQEAKK0NoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3Jp
cHQgd2l0aCBtYXgtYWdlIG9yIGV4cGlyeSBsb25nZXIgdGhhbiBhIHdlZWsgZ2V0IGNhcHBlZCB0
byBhIHdlZWsuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSB0d28g
c2hvcnQtbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDE3MjgzMCBz
ZWNvbmRzLgorUEFTUyBUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0
ZXIgbW9yZSB0aGFuIDYwNDgzMCBzZWNvbmRzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQt
aW4tanMtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtZGF0YWJhc2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lMmZmZDA0MWFlMzJkZTI4NjAzYjgxOTEwMzBjZThhMzA1ZDI2MjZi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS5o
dG1sCkBAIC0wLDAgKzEsODMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkNo
ZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgd2l0aCBtYXgtYWdlIG9yIGV4
cGlyeSBsb25nZXIgdGhhbiBhIHdlZWsgZ2V0IGNhcHBlZCB0byBhIHdlZWsuIik7CisgICAganNU
ZXN0SXNBc3luYyA9IHRydWU7CisgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKworICAgIGlmIChpbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKworICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7Cisg
ICAgZnVuY3Rpb24gY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZURhdGEs
IG1heEFnZUluU2Vjb25kcykgeworICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKKyAgICAg
ICAgbGV0IG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA9IG5vdy5nZXRUaW1lKCkgKyAobWF4
QWdlSW5TZWNvbmRzICogMTAwMCk7CisKKyAgICAgICAgaWYgKG1heEV4cGlyeURhdGVJbk1pbGxp
c2Vjb25kcyA+IGNvb2tpZURhdGFbImV4cGlyZXMiXSkKKyAgICAgICAgICAgICsrcGFzc2VkVGVz
dHM7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBuYW1lZCAi
ICsgY29va2llRGF0YVsibmFtZSJdICsgIiBleHBpcmVzIGluIG1vcmUgdGhhbiAiICsgbWF4QWdl
SW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgIH0KKworICAgIGNvbnN0IHR3b0RheXNJblNl
Y29uZHMgPSAyICogMjQgKiA2MCAqIDYwOworICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVNYXhB
Z2UgPSB7IG5hbWUgOiAic2hvcnRMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1B
Z2U9IiArIHR3b0RheXNJblNlY29uZHMgKyAiOyIgfTsKKyAgICBkb2N1bWVudC5jb29raWUgPSBz
aG9ydExpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29r
aWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICBjb25zdCB0d29EYXlzQXNFeHBp
cmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsK
KyAgICBjb25zdCBzaG9ydExpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJzaG9ydExpdmVk
Q29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3b0RheXNBc0V4cGlyZXNE
YXRlICsgIjsiIH07CisgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZUV4cGly
ZXMubmFtZSArICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUg
KyAiIHBhdGg9LyI7CisKKyAgICBjb25zdCBvbmVXZWVrSW5TZWNvbmRzID0gNyAqIDI0ICogNjAg
KiA2MDsKKyAgICBjb25zdCB0d29XZWVrc0luU2Vjb25kcyA9IDIgKiBvbmVXZWVrSW5TZWNvbmRz
OworICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJsb25nTGl2ZWRD
b29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d29XZWVrc0luU2Vjb25kcyAr
ICI7IiB9OworICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1l
ICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9
LyI7CisKKyAgICBjb25zdCB0d29XZWVrc0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0
ZUZyb21NYXhBZ2UodHdvV2Vla3NJblNlY29uZHMpOworICAgIGNvbnN0IGxvbmdMaXZlZENvb2tp
ZUV4cGlyZXMgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDog
IkV4cGlyZXM9IiArIHR3b1dlZWtzQXNFeHBpcmVzRGF0ZSArICI7IiB9OworICAgIGRvY3VtZW50
LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgbG9u
Z0xpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgIGNvbnN0IG92
ZXJUd29EYXlzSW5TZWNvbmRzID0gdHdvRGF5c0luU2Vjb25kcyArIDMwOworICAgIGNvbnN0IG92
ZXJPbmVXZWVrSW5TZWNvbmRzID0gb25lV2Vla0luU2Vjb25kcyArIDMwOworICAgIGlmIChpbnRl
cm5hbHMpIHsKKyAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOwor
ICAgICAgICBpZiAoIWNvb2tpZXMubGVuZ3RoKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8g
Y29va2llcyBmb3VuZC4iKTsKKyAgICAgICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsK
KyAgICAgICAgICAgIHN3aXRjaCAoY29va2llLm5hbWUpIHsKKyAgICAgICAgICAgICAgICBjYXNl
IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tU
aGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3b0RheXNJblNlY29uZHMp
OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIHNob3J0
TGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENv
b2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJUd29EYXlzSW5TZWNvbmRzKTsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRD
b29raWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9l
c05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZVdlZWtJblNlY29uZHMpOworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZUV4
cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4
cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZVdlZWtJblNlY29uZHMpOworICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJlc2V0Q29v
a2llc0ZvckN1cnJlbnRPcmlnaW4oKTsKKworICAgICAgICBpZiAocGFzc2VkVGVzdHMgPT09IDQp
IHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBk
b24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBvdmVyVHdvRGF5c0luU2Vjb25kcyArICIg
c2Vjb25kcy4iKTsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gbG9uZy1saXZlZCBj
b29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJPbmVXZWVrSW5TZWNv
bmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkF0IGxlYXN0IG9uZSBjb29raWUncyBleHBpcnkgYXR0cmlidXRlIHdhcyBiZXlvbmQgdGhl
IHRlc3QgdGhyZXNob2xkcy4iKTsKKyAgICB9IGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiTm8g
aW50ZXJuYWxzIG9iamVjdC4iKTsKKworICAgIGlmIChpbnRlcm5hbHMpCisgICAgICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGlt
ZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmst
ZGVjb3JhdGlvbi1zYW1lLXNpdGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0
OTU0NWEwMzRkM2FmMjU5MGM5OTMzN2QyMzA1YTliZWZkYmE0MTAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxp
ZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0
ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorQ2hlY2sgdGhhdCBjb29r
aWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBhZnRlciBhIHNhbWUtc2l0ZSBuYXZpZ2F0aW9uIHdp
dGggbGluayBkZWNvcmF0aW9uIGRvbid0IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSB0d28gbG9uZy1saXZlZCBjb29raWVz
IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gODY0MzAgc2Vjb25kcy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1j
b29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBl
ZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1l
LXNpdGUtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZDA5OTkxYjNmYThhY2Q0ODE5OWE4NTMy
MzRkMjVhYjI4OTE1ZGMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1p
bi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUtZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDg2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iL2Nvb2tpZXMvcmVzb3VyY2VzL2Nvb2tpZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1blRlc3QoKScsIDApIj4KKzxzY3JpcHQ+CisgICAg
ZGVzY3JpcHRpb24oIkNoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0
ZXIgYSBzYW1lLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgZGVjb3JhdGlvbiBkb24ndCBnZXQg
Y2FwcGVkIHRvIDI0IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAg
ZnVuY3Rpb24gdGVzdENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7CisK
KyAgICAgICAgZnVuY3Rpb24gY2hlY2tUaGF0Q29va2llRG9lc0V4cGlyZUFmdGVyKGNvb2tpZURh
dGEsIG1heEFnZUluU2Vjb25kcykgeworICAgICAgICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7
CisgICAgICAgICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93LmdldFRp
bWUoKSArIChtYXhBZ2VJblNlY29uZHMgKiAxMDAwKTsKKworICAgICAgICAgICAgaWYgKG1heEV4
cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA8IGNvb2tpZURhdGFbImV4cGlyZXMiXSkKKyAgICAgICAg
ICAgICAgICArK3Bhc3NlZFRlc3RzOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkNvb2tpZSBuYW1lZCAiICsgY29va2llRGF0YVsibmFtZSJdICsgIiBleHBp
cmVzIGluIGxlc3MgdGhhbiAiICsgbWF4QWdlSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAg
ICAgICB9CisKKyAgICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0gMjQgKiA2MCAqIDYwOwor
ICAgICAgICBjb25zdCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIG9uZURheUluU2Vjb25kczsKKyAg
ICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogImxvbmdMaXZlZENv
b2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b0RheXNJblNlY29uZHMgKyAi
OyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5h
bWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0
aD0vIjsKKworICAgICAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGly
ZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3QgbG9uZ0xp
dmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlm
ZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAg
ICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29i
YXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisg
ICAgICAgIGNvbnN0IG92ZXJPbmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMgKyAzMDsK
KyAgICAgICAgaWYgKGludGVybmFscykgeworICAgICAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRl
cm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAgICAg
ICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2gg
KGNvb2tpZS5uYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2ll
TWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2Vz
RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tp
ZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURv
ZXNFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAgICAg
IGlmIChwYXNzZWRUZXN0cyA9PT0gMikgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRo
ZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJP
bmVEYXlJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJp
YnV0ZSB3YXMgYmVsb3cgdGhlIHRlc3QgdGhyZXNob2xkcy4iKTsKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOworCisgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aHJlZiA9IHByZXZhbGVudFJlc291cmNlT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlv
bi1zYW1lLXNpdGUuaHRtbD9saW5rPWRlY29yYXRpb24jZnJhZ21lbnQiOworICAgIH0KKworICAg
IGNvbnN0IGRlc3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAg
Y29uc3QgcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsK
KyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24u
b3JpZ2luID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiAmJiBkb2N1bWVudC5sb2NhdGlvbi5o
YXNoICE9PSAiI2ZyYWdtZW50IikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBE
YXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2ll
QmxvY2tpbmcobmF2aWdhdGVDcm9zc09yaWdpbik7CisgICAgICAgICAgICAgICAgfSk7CisKKyAg
ICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdENvb2tpZXMo
KTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBl
ZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1w
cmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2ll
LXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3YmFkMDMyYzZmMjI0NTczYTMzNWQzZjcw
NDE5ZGNiNGJlNDNhMTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWlu
LWpzLXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQg
YnkgSmF2YVNjcmlwdCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgZnJh
Z21lbnQgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgVGhlIHR3byBzaG9ydC1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRl
ciBtb3JlIHRoYW4gNDMyMzAgc2Vjb25kcy4KK1BBU1MgVGhlIHR3byBsb25nLWxpdmVkIGNvb2tp
ZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA4NjQzMCBzZWNvbmRzLgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRp
bWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50
LXJlc291cmNlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgt
bGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjVjODRmYjg5NGY5OWIzMjdjMTc3M2UyMDA3ZGMxMGQ5MWMyYTg3OTkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1m
cm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTAxIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2Nvb2tp
ZXMvcmVzb3VyY2VzL2Nvb2tpZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InNldFRpbWVvdXQoJ3J1blRlc3QoKScsIDApIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24o
IkNoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1z
aXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIGZyYWdtZW50IGdldCBjYXBwZWQgdG8gMjQgaG91cnMu
Iik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29va2ll
cygpIHsKKyAgICAgICAgbGV0IHBhc3NlZFRlc3RzID0gMDsKKyAgICAgICAgZnVuY3Rpb24gY2hl
Y2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZURhdGEsIG1heEFnZUluU2Vjb25k
cykgeworICAgICAgICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7CisgICAgICAgICAgICBsZXQg
bWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93LmdldFRpbWUoKSArIChtYXhBZ2VJblNl
Y29uZHMgKiAxMDAwKTsKKworICAgICAgICAgICAgaWYgKG1heEV4cGlyeURhdGVJbk1pbGxpc2Vj
b25kcyA+IGNvb2tpZURhdGFbImV4cGlyZXMiXSkKKyAgICAgICAgICAgICAgICArK3Bhc3NlZFRl
c3RzOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tp
ZSBuYW1lZCAiICsgY29va2llRGF0YVsibmFtZSJdICsgIiBleHBpcmVzIGluIG1vcmUgdGhhbiAi
ICsgbWF4QWdlSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICB9CisKKyAgICAgICAg
Y29uc3QgdHdlbHZlSG91cnNJblNlY29uZHMgPSAxMiAqIDYwICogNjA7CisgICAgICAgIGNvbnN0
IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUgOiAic2hvcnRMaXZlZENvb2tpZU1heEFn
ZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgIjsiIH07
CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZSAr
ICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0v
IjsKKworICAgICAgICBjb25zdCB0d2VsdmVIb3Vyc0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBp
cmVzRGF0ZUZyb21NYXhBZ2UodHdlbHZlSG91cnNJblNlY29uZHMpOworICAgICAgICBjb25zdCBz
aG9ydExpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJzaG9ydExpdmVkQ29va2llRXhwaXJl
cyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0ZSArICI7
IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5u
YW1lICsgIj1mb29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSArICIg
cGF0aD0vIjsKKworICAgICAgICBjb25zdCBvbmVEYXlJblNlY29uZHMgPSAyICogdHdlbHZlSG91
cnNJblNlY29uZHM7CisgICAgICAgIGNvbnN0IHR3b0RheXNJblNlY29uZHMgPSAyICogb25lRGF5
SW5TZWNvbmRzOworICAgICAgICBjb25zdCBsb25nTGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUg
OiAibG9uZ0xpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdvRGF5
c0luU2Vjb25kcyArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRD
b29raWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llTWF4QWdlLmxp
ZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3b0RheXNBc0V4cGlyZXNEYXRl
ID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3b0RheXNJblNlY29uZHMpOworICAgICAg
ICBjb25zdCBsb25nTGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tp
ZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d29EYXlzQXNFeHBpcmVzRGF0ZSAr
ICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVFeHBpcmVz
Lm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAi
IHBhdGg9LyI7CisKKyAgICAgICAgY29uc3Qgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzID0gdHdl
bHZlSG91cnNJblNlY29uZHMgKyAzMDsKKyAgICAgICAgY29uc3Qgb3Zlck9uZURheUluU2Vjb25k
cyA9IG9uZURheUluU2Vjb25kcyArIDMwOworICAgICAgICBpZiAoaW50ZXJuYWxzKSB7CisgICAg
ICAgICAgICBsZXQgY29va2llcyA9IGludGVybmFscy5nZXRDb29raWVzKCk7CisgICAgICAgICAg
ICBpZiAoIWNvb2tpZXMubGVuZ3RoKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGNv
b2tpZXMgZm91bmQuIik7CisgICAgICAgICAgICBmb3IgKGxldCBjb29raWUgb2YgY29va2llcykg
eworICAgICAgICAgICAgICAgIHN3aXRjaCAoY29va2llLm5hbWUpIHsKKyAgICAgICAgICAgICAg
ICAgICAgY2FzZSBzaG9ydExpdmVkQ29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAg
ICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdl
bHZlSG91cnNJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29r
aWUsIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29raWVNYXhBZ2UubmFt
ZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVB
ZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llRXhwaXJl
cy5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4
cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIHJlc2V0Q29va2llc0ZvckN1cnJlbnRPcmlnaW4oKTsKKworICAgICAgICAgICAgaWYg
KHBhc3NlZFRlc3RzID09PSA0KSB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3
byBzaG9ydC1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92
ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIg
bW9yZSB0aGFuICIgKyBvdmVyT25lRGF5SW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQXQgbGVhc3Qgb25lIGNv
b2tpZSdzIGV4cGlyeSBhdHRyaWJ1dGUgd2FzIGJleW9uZCB0aGUgdGVzdCB0aHJlc2hvbGRzLiIp
OworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGludGVybmFscyBv
YmplY3QuIik7CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBuYXZpZ2F0ZUNyb3NzT3JpZ2luKCkgeworICAgICAg
ICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gZGVzdGluYXRpb25PcmlnaW4gKyAiL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgt
bGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sI2xpbms9ZnJhZ21lbnQi
OworICAgIH0KKworICAgIGNvbnN0IGRlc3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCI7CisgICAgY29uc3QgcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwIjsKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9j
dW1lbnQubG9jYXRpb24ub3JpZ2luID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNl
T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3Jp
Z2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBn
ZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcobmF2aWdhdGVDcm9zc09yaWdp
bik7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgdGVzdENvb2tpZXMoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1p
bi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNl
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1s
aW5rLXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmU5OGRjOGY5MGUyZGExYjE5ODNiNDhkYzE4NmVhZDdh
Njk2NWQ3YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0
aC1saW5rLXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0
ZWQgYnkgSmF2YVNjcmlwdCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsg
cXVlcnkgYW5kIGZyYWdtZW50IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBkb24n
dCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDQzMjMwIHNlY29uZHMuCitQQVNTIFRoZSB0d28gbG9u
Zy1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gODY0MzAgc2Vjb25k
cy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQt
ZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9y
LWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZh
bGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1OTFlYjRlOTU4ZmIxYjUw
ZGI3ZjgyMmEyMDBlY2NjNjczODI0MTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQt
cmVzb3VyY2UtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDEwMSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9j
b29raWUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdy
dW5UZXN0KCknLCAwKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IGNv
b2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9u
IHdpdGggbGluayBxdWVyeSBhbmQgZnJhZ21lbnQgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4iKTsK
KyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0aW9uIHRlc3RDb29raWVzKCkg
eworICAgICAgICBsZXQgcGFzc2VkVGVzdHMgPSAwOworICAgICAgICBmdW5jdGlvbiBjaGVja1Ro
YXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llRGF0YSwgbWF4QWdlSW5TZWNvbmRzKSB7
CisgICAgICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKKyAgICAgICAgICAgIGxldCBtYXhF
eHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPSBub3cuZ2V0VGltZSgpICsgKG1heEFnZUluU2Vjb25k
cyAqIDEwMDApOworCisgICAgICAgICAgICBpZiAobWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRz
ID4gY29va2llRGF0YVsiZXhwaXJlcyJdKQorICAgICAgICAgICAgICAgICsrcGFzc2VkVGVzdHM7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5h
bWVkICIgKyBjb29raWVEYXRhWyJuYW1lIl0gKyAiIGV4cGlyZXMgaW4gbW9yZSB0aGFuICIgKyBt
YXhBZ2VJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgIH0KKworICAgICAgICBjb25z
dCB0d2VsdmVIb3Vyc0luU2Vjb25kcyA9IDEyICogNjAgKiA2MDsKKyAgICAgICAgY29uc3Qgc2hv
cnRMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJzaG9ydExpdmVkQ29va2llTWF4QWdlIiwg
bGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdlbHZlSG91cnNJblNlY29uZHMgKyAiOyIgfTsKKyAg
ICAgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1m
b29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8iOwor
CisgICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNE
YXRlRnJvbU1heEFnZSh0d2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgIGNvbnN0IHNob3J0
TGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogInNob3J0TGl2ZWRDb29raWVFeHBpcmVzIiwg
bGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdlbHZlSG91cnNBc0V4cGlyZXNEYXRlICsgIjsiIH07
CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLm5hbWUg
KyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRo
PS8iOworCisgICAgICAgIGNvbnN0IG9uZURheUluU2Vjb25kcyA9IDIgKiB0d2VsdmVIb3Vyc0lu
U2Vjb25kczsKKyAgICAgICAgY29uc3QgdHdvRGF5c0luU2Vjb25kcyA9IDIgKiBvbmVEYXlJblNl
Y29uZHM7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJs
b25nTGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d29EYXlzSW5T
ZWNvbmRzICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tp
ZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVNYXhBZ2UubGlmZXRp
bWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdvRGF5c0FzRXhwaXJlc0RhdGUgPSBj
cmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdvRGF5c0luU2Vjb25kcyk7CisgICAgICAgIGNv
bnN0IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llRXhw
aXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3b0RheXNBc0V4cGlyZXNEYXRlICsgIjsi
IH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFt
ZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSArICIgcGF0
aD0vIjsKKworICAgICAgICBjb25zdCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMgPSB0d2VsdmVI
b3Vyc0luU2Vjb25kcyArIDMwOworICAgICAgICBjb25zdCBvdmVyT25lRGF5SW5TZWNvbmRzID0g
b25lRGF5SW5TZWNvbmRzICsgMzA7CisgICAgICAgIGlmIChpbnRlcm5hbHMpIHsKKyAgICAgICAg
ICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKTsKKyAgICAgICAgICAgIGlm
ICghY29va2llcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gY29va2ll
cyBmb3VuZC4iKTsKKyAgICAgICAgICAgIGZvciAobGV0IGNvb2tpZSBvZiBjb29raWVzKSB7Cisg
ICAgICAgICAgICAgICAgc3dpdGNoIChjb29raWUubmFtZSkgeworICAgICAgICAgICAgICAgICAg
ICBjYXNlIHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJUd2VsdmVI
b3Vyc0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICAgICAgY2FzZSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAg
ICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwg
b3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lOgor
ICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVy
KGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5h
bWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJl
QWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgcmVzZXRDb29raWVzRm9yQ3VycmVudE9yaWdpbigpOworCisgICAgICAgICAgICBpZiAocGFz
c2VkVGVzdHMgPT09IDQpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIHNo
b3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3ZlclR3
ZWx2ZUhvdXJzSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIlRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3Jl
IHRoYW4gIiArIG92ZXJPbmVEYXlJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2ll
J3MgZXhwaXJ5IGF0dHJpYnV0ZSB3YXMgYmV5b25kIHRoZSB0ZXN0IHRocmVzaG9sZHMuIik7Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gaW50ZXJuYWxzIG9iamVj
dC4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIG5hdmlnYXRlQ3Jvc3NPcmlnaW4oKSB7CisgICAgICAgIGRv
Y3VtZW50LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbk9yaWdpbiArICIvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5r
LXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sP2xpbms9cXVl
cnkjbGluaz1mcmFnbWVudCI7CisgICAgfQorCisgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4g
PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCBwcmV2YWxlbnRSZXNvdXJjZU9y
aWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7
CisgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHByZXZhbGVudFJlc291
cmNlT3JpZ2luKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRy
dWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
cHJldmFsZW50UmVzb3VyY2VPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJl
dmFsZW50UmVzb3VyY2VPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhu
YXZpZ2F0ZUNyb3NzT3JpZ2luKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0Q29va2llcygpOworICAgICAg
ICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1l
LWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNv
dXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdp
dGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDQ1ZGQxNmMyZWUwMTA4MGUzYzFmMWI0MDIwNmI2NmE4MDJlMGFjMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1
ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDExIEBACitDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVy
IGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBxdWVyeSBnZXQgY2FwcGVkIHRvIDI0
IGhvdXJzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgdHdvIHNo
b3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA0MzIzMCBzZWNv
bmRzLgorUEFTUyBUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIg
bW9yZSB0aGFuIDg2NDMwIHNlY29uZHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1q
cy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlm
ZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50
LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjVmMDk3NmIyNDg2NjY2ODljMTgx
YWE1OTVmMGMxOGZmNmFmMDUwYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
Lmh0bWwKQEAgLTAsMCArMSwxMDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgor
PHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkg
SmF2YVNjcmlwdCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVlcnkg
Z2V0IGNhcHBlZCB0byAyNCBob3Vycy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
ICAgIGZ1bmN0aW9uIHRlc3RDb29raWVzKCkgeworICAgICAgICBsZXQgcGFzc2VkVGVzdHMgPSAw
OworICAgICAgICBmdW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29v
a2llRGF0YSwgbWF4QWdlSW5TZWNvbmRzKSB7CisgICAgICAgICAgICBsZXQgbm93ID0gbmV3IERh
dGUoKTsKKyAgICAgICAgICAgIGxldCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPSBub3cu
Z2V0VGltZSgpICsgKG1heEFnZUluU2Vjb25kcyAqIDEwMDApOworCisgICAgICAgICAgICBpZiAo
bWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID4gY29va2llRGF0YVsiZXhwaXJlcyJdKQorICAg
ICAgICAgICAgICAgICsrcGFzc2VkVGVzdHM7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5hbWVkICIgKyBjb29raWVEYXRhWyJuYW1lIl0gKyAi
IGV4cGlyZXMgaW4gbW9yZSB0aGFuICIgKyBtYXhBZ2VJblNlY29uZHMgKyAiIHNlY29uZHMuIik7
CisgICAgICAgIH0KKworICAgICAgICBjb25zdCB0d2VsdmVIb3Vyc0luU2Vjb25kcyA9IDEyICog
NjAgKiA2MDsKKyAgICAgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6
ICJzaG9ydExpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdlbHZl
SG91cnNJblNlY29uZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRM
aXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llTWF4
QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzQXNF
eHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d2VsdmVIb3Vyc0luU2Vj
b25kcyk7CisgICAgICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDog
InNob3J0TGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdlbHZl
SG91cnNBc0V4cGlyZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNo
b3J0TGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29r
aWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG9uZURheUlu
U2Vjb25kcyA9IDIgKiB0d2VsdmVIb3Vyc0luU2Vjb25kczsKKyAgICAgICAgY29uc3QgdHdvRGF5
c0luU2Vjb25kcyA9IDIgKiBvbmVEYXlJblNlY29uZHM7CisgICAgICAgIGNvbnN0IGxvbmdMaXZl
ZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGlt
ZSA6ICJNYXgtQWdlPSIgKyB0d29EYXlzSW5TZWNvbmRzICsgIjsiIH07CisgICAgICAgIGRvY3Vt
ZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBs
b25nTGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29u
c3QgdHdvRGF5c0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdv
RGF5c0luU2Vjb25kcyk7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMgPSB7
IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiAr
IHR3b0RheXNBc0V4cGlyZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9
IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29v
a2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCBvdmVyVHdl
bHZlSG91cnNJblNlY29uZHMgPSB0d2VsdmVIb3Vyc0luU2Vjb25kcyArIDMwOworICAgICAgICBj
b25zdCBvdmVyT25lRGF5SW5TZWNvbmRzID0gb25lRGF5SW5TZWNvbmRzICsgMzA7CisgICAgICAg
IGlmIChpbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdl
dENvb2tpZXMoKTsKKyAgICAgICAgICAgIGlmICghY29va2llcy5sZW5ndGgpCisgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiTm8gY29va2llcyBmb3VuZC4iKTsKKyAgICAgICAgICAgIGZvciAo
bGV0IGNvb2tpZSBvZiBjb29raWVzKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjb29raWUu
bmFtZSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRDb29raWVNYXhBZ2Uu
bmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBp
cmVBZnRlcihjb29raWUsIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBzaG9ydExpdmVkQ29v
a2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2ll
RG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxv
bmdMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tU
aGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7
CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBj
aGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNv
bmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVzZXRDb29raWVzRm9yQ3VycmVudE9yaWdp
bigpOworCisgICAgICAgICAgICBpZiAocGFzc2VkVGVzdHMgPT09IDQpIHsKKyAgICAgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJl
IGFmdGVyIG1vcmUgdGhhbiAiICsgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgIiBzZWNvbmRz
LiIpOworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gbG9uZy1saXZlZCBjb29r
aWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJPbmVEYXlJblNlY29uZHMg
KyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJpYnV0ZSB3YXMgYmV5b25k
IHRoZSB0ZXN0IHRocmVzaG9sZHMuIik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVz
dEZhaWxlZCgiTm8gaW50ZXJuYWxzIG9iamVjdC4iKTsKKyAgICAgICAgCisgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
bmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9
IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQt
cmVzb3VyY2UuaHRtbD9saW5rPXF1ZXJ5IjsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5hdGlv
bk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHByZXZhbGVudFJl
c291cmNlT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24gcnVu
VGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJldmFs
ZW50UmVzb3VyY2VPcmlnaW4pIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0
YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJs
b2NraW5nKG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOworCisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RDb29raWVzKCk7
CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQt
bGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJv
bS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29v
a2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNv
dXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JmNjQ5YTU3ZTEzNjRjMDYw
NjQ1Njk0MTMwNDU0MTEzNzQ1ODMwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tp
ZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3Vy
Y2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0NoZWNrIHRoYXQgY29v
a2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24g
d2l0aG91dCBsaW5rIGRlY29yYXRpb24gZG9uJ3QgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHR3byBsb25nLWxpdmVkIGNv
b2tpZXMgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA4NjQzMCBzZWNvbmRzLgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUt
Zm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxl
bnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0
aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hZTQ3YjQ5NDg3ZTg5NjcyOWQwYTRiNzc3MGI1MWQ3ODNmNGU4Y2YwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmst
ZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAg
KzEsODYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAgICBk
ZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBhZnRl
ciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRob3V0IGxpbmsgZGVjb3JhdGlvbiBkb24ndCBn
ZXQgY2FwcGVkIHRvIDI0IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisg
ICAgZnVuY3Rpb24gdGVzdENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7
CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tUaGF0Q29va2llRG9lc0V4cGlyZUFmdGVyKGNvb2tp
ZURhdGEsIG1heEFnZUluU2Vjb25kcykgeworICAgICAgICAgICAgbGV0IG5vdyA9IG5ldyBEYXRl
KCk7CisgICAgICAgICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93Lmdl
dFRpbWUoKSArIChtYXhBZ2VJblNlY29uZHMgKiAxMDAwKTsKKworICAgICAgICAgICAgaWYgKG1h
eEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA8IGNvb2tpZURhdGFbImV4cGlyZXMiXSkKKyAgICAg
ICAgICAgICAgICArK3Bhc3NlZFRlc3RzOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBuYW1lZCAiICsgY29va2llRGF0YVsibmFtZSJdICsgIiBl
eHBpcmVzIGluIGxlc3MgdGhhbiAiICsgbWF4QWdlSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOwor
ICAgICAgICB9CisKKyAgICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0gMjQgKiA2MCAqIDYw
OworICAgICAgICBjb25zdCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIG9uZURheUluU2Vjb25kczsK
KyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogImxvbmdMaXZl
ZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b0RheXNJblNlY29uZHMg
KyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llTWF4QWdl
Lm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIg
cGF0aD0vIjsKKworICAgICAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4
cGlyZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3QgbG9u
Z0xpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwg
bGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAg
ICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1m
b29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOwor
CisgICAgICAgIGNvbnN0IG92ZXJPbmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMgKyAz
MDsKKyAgICAgICAgaWYgKGludGVybmFscykgeworICAgICAgICAgICAgbGV0IGNvb2tpZXMgPSBp
bnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAg
ICAgICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAgICAgICBzd2l0
Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29v
a2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVE
b2VzRXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENv
b2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tp
ZURvZXNFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
CisgICAgICAgICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAg
ICAgIGlmIChwYXNzZWRUZXN0cyA9PT0gMikgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQo
IlRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92
ZXJPbmVEYXlJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0
dHJpYnV0ZSB3YXMgYmVsb3cgdGhlIHRlc3QgdGhyZXNob2xkcy4iKTsKKyAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOworICAgICAg
ICAgICAgCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxp
bmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sIjsKKyAgICB9CisKKyAg
ICBjb25zdCBkZXN0aW5hdGlvbk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAg
IGNvbnN0IHByZXZhbGVudFJlc291cmNlT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7
CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9u
Lm9yaWdpbiA9PT0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4pIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAg
ICAgICAgIH0pOworCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIHRlc3RDb29raWVzKCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRp
c3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4
ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBjMjU4Yjhl
MDA1ZDM1NTQxODJhZjA2ZDQ4MjU4M2FlNzdlNWExMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24t
cHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCitQQVNTIEhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0
YXRpc3RpY3MtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0
YXRpc3RpY3MtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZTAzZmQ4NzEyZWY5ZWRjOWIxODYy
ZjYzNmQxZTc0ZWE2ODhkODQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFz
ZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNl
dD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24g
TWl4ZWQgU3RhdGlzdGljczwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAg
ICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0
aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29u
c3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBj
b25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAg
IGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisK
KyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAg
dGVzdEZhaWxlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFz
c2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0
aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworCisgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmws
IGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJU
b3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lu
KHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwg
dG9wRnJhbWVPcmlnaW4zKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlz
dGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMo
KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3Qg
PT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFs
cykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVz
dCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5v
bi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11
bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjBjMjU4YjhlMDA1ZDM1NTQxODJhZjA2ZDQ4MjU4M2FlNzdlNWExMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3Jp
Z2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgSG9zdCBkaWQgbm90IGdl
dCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1w
cmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFi
YXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZy
YW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODU0MDkwOGVkODBkMTM0ZTcz
ODA0OTZhMjc1MDVhZDAwNWM5N2JhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQt
YmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwK
QEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVh
ZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBDbGFz
c2lmaWNhdGlvbiBCYXNlZCBvbiBTdWIgRnJhbWUgVW5kZXIgVG9wIEZyYW1lIE9yaWdpbnM8L3Rp
dGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVz
dCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8v
IiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9
ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4y
ID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdp
bjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxl
dGVUZXN0KCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgY2xh
c3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNp
c3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVz
dCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0
YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlz
dGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbjIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVV
bmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHND
YWxsYmFjayhjb21wbGV0ZVRlc3QpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3Rh
dGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVj
b3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24u
aG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7Cisg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5u
ZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3Jp
Z2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJy
ZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjBjMjU4YjhlMDA1ZDM1NTQxODJhZjA2ZDQ4MjU4M2FlNzdlNWExMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRv
cC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0
IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUt
b3JpZ2lucy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3Vy
Y2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjEx
MjBhODU5MzEyMTE0MDcyZDQ3MjliMzZiYTBhMTc3ZjNkYzQxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdp
bnMtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
IGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0
bGU+VGVzdHMgZm9yIENsYXNzaWZpY2F0aW9uIEJhc2VkIG9uIFN1YnJlc291cmNlIFVuZGVyIFRv
cCBGcmFtZSBPcmlnaW5zPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAg
IGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRp
c3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25z
dCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNv
bnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisKKyAg
ICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVz
dEZhaWxlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lm
aWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NO
b3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworIAorICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBm
YWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIp
OworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVy
VG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdp
bihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVU
ZXN0KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3Rp
Y3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1l
bnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAm
JiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJh
c2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBp
bnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAg
IHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUt
cmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2Vk
LW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjIwYzI1OGI4ZTAwNWQzNTU0MTgyYWYwNmQ0ODI1ODNhZTc3ZTVhMTMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlx
dWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0
IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3Rz
LXRvLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11
bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWE1YTVkNGJkYTRl
NGZkZWVkMTg2YTNmMDg4MTJmYjhlMjg2ZDU5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJl
dmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2Uu
aHRtbApAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4K
KzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9y
IENsYXNzaWZpY2F0aW9uIEJhc2VkIG9uIFN1YnJlc291cmNlIFVuaXF1ZSBSZWRpcmVjdHMgVG88
L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVy
VGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRw
Oi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2lu
MSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmln
aW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBs
ZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGNs
YXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOworCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9D
b25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5l
clRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hl
bkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgCisgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
ZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhz
dGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRv
cEZyYW1lT3JpZ2luMik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3Rp
Y3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7
CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09
PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3Qo
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZShmYWxzZSk7CisgICAgfQor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1i
YXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zMmRkNjlmOTQxOWY1MTk4OTU3ZjA5MDhkZDY3NGQ2ODQzNmNiOWM3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291
cmNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3Mt
ZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRh
YmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4OTczMTlhYjBmYjEwMDA1NWE5MzVkNGE5NTJiMmFiOTk0
NDgzMzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRp
c3RpY3MtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDYyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8
dGl0bGU+VGVzdHMgZm9yIENsYXNzaWZpY2F0aW9uIEJhc2VkIG9uIE1peGVkIFN0YXRpc3RpY3M8
L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVy
VGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRw
Oi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2lu
MSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmln
aW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9y
aWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1l
T3JpZ2luNCA9ICJodHRwOi8vMTI3LjAuMC41OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBj
b21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZ290IGNsYXNzaWZpZWQg
YXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisK
KyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNl
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJl
U2Nhbm5lZCh0cnVlKTsKKyAKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQg
YXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRv
cEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJm
cmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW40KTsK
KworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRv
cEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4o
c3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJs
LCB0b3BGcmFtZU9yaWdpbjQpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmln
aW4zKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJh
Y2soY29tcGxldGVUZXN0KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJv
Y2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAg
ICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cu
dGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0
VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1
ZSk7CisgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11
bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50
LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJkZDY5Zjk0MTlmNTE5ODk1N2YwOTA4ZGQ2NzRkNjg0MzZj
YjljNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVu
ZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUg
QEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFT
UyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRh
YmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1l
LW9yaWdpbnMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWE3NjIwMGRhMmZmYjFhMDA1NWE4
YTE5OGFlMjc4M2UyZWIzZjUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1v
bi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAg
IDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIENsYXNzaWZpY2F0
aW9uIEJhc2VkIG9uIFN1YiBGcmFtZSBVbmRlciBUb3AgRnJhbWUgT3JpZ2luczwvdGl0bGU+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEy
Ny4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9z
dFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6
Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0
cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJo
dHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW40ID0g
Imh0dHA6Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVz
dCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90
IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwp
KQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3Nl
ZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICBp
bnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRy
dWUpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdp
bjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRv
cEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3Rh
dGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BG
cmFtZU9yaWdpbjQpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNz
RGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOwor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0g
aG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7
CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFs
ZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1
c2lvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTRkZGNlNWIzMTRjZDdkMmQw
ZGVjNDhiNmY5ZjllMGVjY2FiODMwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE0IEBACitUZXN0cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24gc3Vi
cmVzb3VyY2UgcmVkaXJlY3QgY29sbHVzaW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBDb2xsdWRpbmcgaG9zdCAxIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LgorUEFTUyBDb2xsdWRpbmcgaG9zdCAyIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLgor
UEFTUyBDb2xsdWRpbmcgaG9zdCAzIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLgorUEFT
UyBDb2xsdWRpbmcgaG9zdCA0IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLgorUEFTUyBD
b2xsdWRpbmcgbG9jYWxob3N0IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIGFj
dHVhbCBzdWIgZnJhbWUgcmVkaXJlY3QuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJy
ZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTRiZmIyZjI1NzdjYmNiZGYzYzFmNGMxNGE0NmE5YWFkNjE2ZjdhZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVz
aW9uLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw3MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBmb3IgY2xhc3NpZmljYXRpb24gYmFz
ZWQgb24gc3VicmVzb3VyY2UgcmVkaXJlY3QgY29sbHVzaW9uLiIpOworICAgIGpzVGVzdElzQXN5
bmMgPSB0cnVlOworCisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7
CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAi
L3RlbXAiOworICAgIGNvbnN0IHN1YnJlc291cmNlT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4y
OjgwMDAvdGVtcCI7CisgICAgY29uc3Qgc3VicmVzb3VyY2VPcmlnaW4yID0gImh0dHA6Ly8xMjcu
MC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCBzdWJyZXNvdXJjZU9yaWdpbjMgPSAiaHR0cDov
LzEyNy4wLjAuNDo4MDAwL3RlbXAiOworICAgIGNvbnN0IHN1YnJlc291cmNlT3JpZ2luNCA9ICJo
dHRwOi8vMTI3LjAuMC41OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgewor
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworCisgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKHN0
YXRpc3RpY3NVcmwsIHN1YnJlc291cmNlT3JpZ2luMSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKHN1YnJlc291cmNlT3JpZ2lu
MSwgc3VicmVzb3VyY2VPcmlnaW4yKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oc3VicmVzb3VyY2VPcmlnaW4yLCBzdWJyZXNv
dXJjZU9yaWdpbjMpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0RnJvbShzdWJyZXNvdXJjZU9yaWdpbjMsIHN1YnJlc291cmNlT3JpZ2lu
NCk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
c3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoIXRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBleHBsaWNpdHkgc2V0IGRpZCBub3QgZ2V0IHNl
dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjEpKQorICAgICAg
ICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDEgZ290IHNldCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NW
ZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4xKSkKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCAxIGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJl
dmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4yKSkKKyAgICAgICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCAyIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291
cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZh
bGVudFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luMikpCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiQ29sbHVkaW5nIGhvc3QgMiBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luMykpCisgICAgICAgICAgICAgICAgdGVzdFBh
c3NlZCgiQ29sbHVkaW5nIGhvc3QgMyBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNv
dXJjZShzdWJyZXNvdXJjZU9yaWdpbjMpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNv
bGx1ZGluZyBob3N0IDMgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShzdWJyZXNvdXJjZU9yaWdpbjQpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNv
bGx1ZGluZyBob3N0IDQgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3Vi
cmVzb3VyY2VPcmlnaW40KSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcg
aG9zdCA0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAg
ICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1
ZGluZyBsb2NhbGhvc3QgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgYWN0dWFs
IHN1YiBmcmFtZSByZWRpcmVjdC4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikpCisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGxvY2FsaG9zdCBnb3QgY2xhc3Np
ZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSk7
CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRl
c3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0
ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpwqB7
CisgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
ICAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJh
bWUiKTsKKyAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50Lm9ubG9hZCA9IHJ1blRlc3Q7Cisg
ICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRv
PWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL29uY2xpY2suaHRt
bCI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVt
ZW50KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3Vy
Y2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxl
bnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOGZjYmQ4ZDhmNmQwNWZjNDk0ZDRlZWRkY2Q5Y2I1ZWJk
ZGUwYzM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJj
ZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTAgQEAKK1Rlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiBzdWJyZXNvdXJjZSByZWRp
cmVjdCB0byBvdGhlciBwcmV2YWxlbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXBy
ZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJh
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJl
dmFsZW50LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTU4MGE1OWY2OWFlMGU3MDllNTA0MGVi
ZjM1MDc3MmE2ZGY4YmY0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
c3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCAr
MSw1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8
bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9u
KCJUZXN0cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24gc3VicmVzb3VyY2UgcmVkaXJlY3Qg
dG8gb3RoZXIgcHJldmFsZW50LiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAg
Y29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlz
dGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0
IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisKKyAgICBm
dW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisgICAgICAgIGVsc2UgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBn
b3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIAorICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3Jp
Z2luMSwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVP
cmlnaW4xKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNj
YW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5k
ZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRp
c3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1m
cmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
c3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjMyZGQ2OWY5NDE5ZjUxOTg5NTdmMDkwOGRkNjc0ZDY4NDM2Y2I5YzcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRv
cC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0
IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFs
ZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1v
cmlnaW5zLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQwMWVhNmJjMjQ5Mzc1OTJmMGU4OTY3
NjE1Yzk5YzVjOGRjM2ZhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
c3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAg
IDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIENsYXNzaWZpY2F0
aW9uIEJhc2VkIG9uIFN1YnJlc291cmNlIFVuZGVyIFRvcCBGcmFtZSBPcmlnaW5zPC90aXRsZT4K
KyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAi
MTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBo
b3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0
cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJo
dHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0g
Imh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjQg
PSAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVU
ZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1Vy
bCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkg
cHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAg
IGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQo
dHJ1ZSk7CisgCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1w
cmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3Vy
Y2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJh
bWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0
aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjQpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmlu
c3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsK
KworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmRE
YXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9j
YXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5k
b3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1
ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5h
bHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHJ1blRl
c3RSdW5uZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMt
dG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJj
ZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
MmRkNjlmOTQxOWY1MTk4OTU3ZjA5MDhkZDY3NGQ2ODQzNmNiOWM3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJl
dmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJl
c291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc4ZjdmMTM5MWM2MjFkZTg2NmUxYmQyM2IwMWJkYTMzMmQwZDlmMzcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVj
dHMtdG8tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8
dGl0bGU+VGVzdHMgZm9yIENsYXNzaWZpY2F0aW9uIEJhc2VkIG9uIFN1YnJlc291cmNlIFVuaXF1
ZSBSZWRpcmVjdHMgVG88L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAg
Y29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlz
dGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0
IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29u
c3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBj
b25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworICAg
IGNvbnN0IHRvcEZyYW1lT3JpZ2luNCA9ICJodHRwOi8vMTI3LjAuMC41OjgwMDAvdGVtcCI7CisK
KyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
Z290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0Nv
bnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVy
VGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVu
RGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBk
aWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0
YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9w
RnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJl
c291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21w
bGV0ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3Rh
dGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChk
b2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVu
bmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBE
YXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAg
ICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAg
ICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0
LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRv
cC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZkMzkzOGI3NmM5NzQ0YzNhZmE3YjI1NTA1ZWFlYjQ5ZDg2NmI1MjAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24t
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3RzIGZvciBjbGFzc2lm
aWNhdGlvbiBiYXNlZCBvbiB0b3AgZnJhbWUgcmVkaXJlY3QgY29sbHVzaW9uLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBDb2xsdWRpbmcgaG9zdCAxIGdvdCBzZXQgYXMg
cHJldmFsZW50IHJlc291cmNlLgorUEFTUyBDb2xsdWRpbmcgaG9zdCAyIGdvdCBzZXQgYXMgcHJl
dmFsZW50IHJlc291cmNlLgorUEFTUyBDb2xsdWRpbmcgaG9zdCAzIGdvdCBzZXQgYXMgcHJldmFs
ZW50IHJlc291cmNlLgorUEFTUyBDb2xsdWRpbmcgaG9zdCA0IGdvdCBzZXQgYXMgcHJldmFsZW50
IHJlc291cmNlLgorUEFTUyBDb2xsdWRpbmcgbG9jYWxob3N0IGdvdCBzZXQgYXMgcHJldmFsZW50
IHJlc291cmNlIGFmdGVyIGFjdHVhbCBuYXZpZ2F0aW9uYWwgcmVkaXJlY3QuCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXBy
ZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YTk4M2JjMDZkMzUwZWQ1NjU1MjQwMmRmY2ZkMzM0NTlj
NjA1Y2VkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUt
cmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw3MSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJV
VEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBmb3IgY2xh
c3NpZmljYXRpb24gYmFzZWQgb24gdG9wIGZyYW1lIHJlZGlyZWN0IGNvbGx1c2lvbi4iKTsKKyAg
ICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3
LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0
VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDov
LzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRw
Oi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0
dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjQgPSAi
aHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luNSA9
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvIjsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9t
KHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKHRvcEZyYW1lT3JpZ2luMSwgdG9w
RnJhbWVPcmlnaW4yKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVV
bmlxdWVSZWRpcmVjdEZyb20odG9wRnJhbWVPcmlnaW4yLCB0b3BGcmFtZU9yaWdpbjMpOworICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSh0
b3BGcmFtZU9yaWdpbjMsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBleHBsaWNpdHkgc2V0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSh0b3BGcmFtZU9yaWdpbjEpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGlu
ZyBob3N0IDEgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBp
ZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVP
cmlnaW4xKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCAxIGdv
dCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAg
aWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmln
aW4yKSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCAyIGdvdCBz
ZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMikpCisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhvc3QgMiBnb3QgY2xhc3NpZmllZCBh
cyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMykpCisgICAgICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgMyBnb3Qgc2V0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1Zl
cnlQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjMpKQorICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDMgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjQpKQorICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIkNvbGx1ZGluZyBob3N0IDQgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVz
b3VyY2UodG9wRnJhbWVPcmlnaW40KSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xs
dWRpbmcgaG9zdCA0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIp
OworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UodG9wRnJhbWVPcmlnaW41KSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRp
bmcgbG9jYWxob3N0IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIGFjdHVhbCBu
YXZpZ2F0aW9uYWwgcmVkaXJlY3QuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW41KSkKKyAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgbG9jYWxob3N0IGdvdCBjbGFzc2lmaWVkIGFz
IHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9
CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIgJiYgd2luZG93LnRlc3RS
dW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwp
KQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBh
cyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
bG9jYXRpb24uaHJlZiA9IHRvcEZyYW1lT3JpZ2luNSArICJyZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3Jlc291cmNlcy9yZWRpcmVjdC5waHA/cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAuMC4xOjgwMDAv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9w
LWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi5odG1sI2NvbnRpbnVlIjsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3Rp
Y3NOb3RpZnlPYnNlcnZlcigpOworICAgICAgICBydW5UZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1m
cmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZh
bGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OWY5OTUzMzgyODBmMzE1YjIyMDAzZjAwODJkMDgxNDg0
N2U5YWIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUt
cmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACitUZXN0cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24gdG9wIGZyYW1lIHJlZGlyZWN0
IHRvIG90aGVyIHByZXZhbGVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFs
ZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1k
YXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5MmM3NTE2ODg5NzE1OTUzNTRlNjIwNjRlOTgzODMz
MGVmY2FlOTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFt
ZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDUxIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZv
ciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0b3AgZnJhbWUgcmVkaXJlY3QgdG8gb3RoZXIgcHJl
dmFsZW50LiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgaG9zdFVu
ZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJo
dHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3Jp
Z2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21w
bGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
ZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
IGVsc2UgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBnb3QgY2xhc3NpZmll
ZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4xLCB0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5p
cXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJh
Y2soY29tcGxldGVUZXN0KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nl
c3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAg
aWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRl
c3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVz
ZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNX
aGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIp
OworICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0
cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ5MWJmOTYwMzM1NzA5Yzk5
MWRmMWZmZDMyNDI4YmRiYWU4MDZmOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0b3Ag
ZnJhbWUgdW5pcXVlIHJlZGlyZWN0cyB0by4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRv
LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWM0YzdlZTVmNmMzZmVhNjU2MTNmODU4MzYyN2E0
Yzk4NTAzMTVkYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZy
YW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU2IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZv
ciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0b3AgZnJhbWUgdW5pcXVlIHJlZGlyZWN0cyB0by4i
KTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3Qg
PSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIg
KyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAi
aHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9
ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4z
ID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdp
bjQgPSAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxl
dGVUZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRp
ZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBp
ZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZl
cnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9w
RnJhbWVVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7Cisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhz
dGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVP
cmlnaW4zKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVS
ZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgdGVz
dFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBs
ZXRlVGVzdCk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3Rp
Y3NBbmREYXRhUmVjb3JkcygpOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5o
b3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5u
ZWQodHJ1ZSk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdl
dCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICBydW5U
ZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4
ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFz
ZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjBmMDMxZGNhNWQwYzk2MDhmNGQ4ZjVhZjg5OWExNmU5ZWY1MWM1OAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGZvciBjbGFzc2lmaWNhdGlvbiBhcyB2
ZXJ5IHByZXZhbGVudCBiYXNlZCBvbiBtaXhlZCBzdGF0aXN0aWNzLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQg
cmVzb3VyY2UuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3Rp
Y3MtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0
aWNzLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWIwNmZhMjA5ZWRiYjZmMTE4OGFmZjdkMTYw
NjMwNDAyN2FiYjE3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1v
bi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJV
VEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IGZvciBjbGFz
c2lmaWNhdGlvbiBhcyB2ZXJ5IHByZXZhbGVudCBiYXNlZCBvbiBtaXhlZCBzdGF0aXN0aWNzLiIp
OworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9
ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiAr
IGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIHZhciB0b3BGcmFtZU9yaWdpbnMgPSBbXTsK
KyAgICBjb25zdCBzdGFydE51bSA9IDI7CisgICAgY29uc3QgbnVtYmVyT2ZTdWJyZXNvdXJjZURv
bWFpbnMgPSAzMDsKKyAgICBmb3IgKHZhciBpID0gc3RhcnROdW07IGkgPCBudW1iZXJPZlN1YnJl
c291cmNlRG9tYWlucyArIHN0YXJ0TnVtOyArK2kpCisgICAgICAgIHRvcEZyYW1lT3JpZ2lucy5w
dXNoKCJodHRwOi8vMTI3LjAuMC4iICsgaSArICI6ODAwMC90ZW1wIikKKworICAgIGZ1bmN0aW9u
IGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAg
ICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQg
Y2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50
IHJlc291cmNlLiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpT
VGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2Vy
ZVNjYW5uZWQodHJ1ZSk7CisgCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qgc3RhcnRlZCBvdXQgYXMg
cHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB2YXIgaSA9IDA7CisgICAgICAg
ICAgICB3aGlsZSAoaSA8IG51bWJlck9mU3VicmVzb3VyY2VEb21haW5zKSB7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lu
KHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpXSk7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRp
c3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpXSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmws
IHRvcEZyYW1lT3JpZ2luc1tpXSk7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJh
bWVPcmlnaW5zW2krMV0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9y
aWdpbnNbaSsxXSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tp
KzFdKTsKKworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1l
VW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaSsyXSk7
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRl
clRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpKzJdKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJl
ZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2krMl0pOworICAgICAgICAg
ICAgICAgIGkgKz0gMzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGVzdFJ1bm5lci5p
bnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERh
dGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2Nh
dGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRv
dy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBydW5UZXN0UnVubmVyVGVzdCk7Cisg
ICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1w
ZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3Rl
bnQtc3RvcmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhZTAwMzNmZmNjYWVj
MjYzYTk2ZjJiM2Q3ODNlZGNmNzA0MDgzZDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1w
ZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitU
ZXN0cyBjbGVhcmluZyBvZiB3ZWJzaXRlIGRhdGEgc3RvcmUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
CitQQVNTIEhvc3QgaXMgbm8gbG9uZ2VyIGEgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIHRoZSBz
dG9yZSB3YXMgY2xlYXJlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFi
YXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjE3ZWJhYmFkOTE3YWFkNDk5MDMzODFlYTM1MjNlMjA2MmJhZWIwYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDY3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAg
IDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdCBDbGVhcmVkIFN0b3JlPC90
aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGNsZWFyaW5n
IG9mIHdlYnNpdGUgZGF0YSBzdG9yZS4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
ICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0
YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBj
b25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAg
IGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7Cisg
ICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsK
KworICAgIGZ1bmN0aW9uIHRlc3RTdGVwMigpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNz
aWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc3Rh
dGlzdGljc0NsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmUoY29tcGxldGVUZXN0KTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiSG9zdCBpcyBzdGlsbCBhIHByZXZhbGVudCByZXNvdXJjZSBhZnRl
ciB0aGUgc3RvcmUgd2FzIGNsZWFyZWQuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRl
c3RQYXNzZWQoIkhvc3QgaXMgbm8gbG9uZ2VyIGEgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIHRo
ZSBzdG9yZSB3YXMgY2xlYXJlZC4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0
KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRh
UmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5v
dCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0
aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1l
T3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJj
ZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFt
ZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVP
cmlnaW4zKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNl
VW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworCisg
ICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRz
Q2FsbGJhY2sodGVzdFN0ZXAyKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
UHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisK
KyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5k
b3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwg
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICAgICAg
fSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5
LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1v
cnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjA3Zjk5OWM2ZmViMzI2NWRlZmYzOTUxYWMyZjgxNDBhYzFhNmVlZTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyBjbGVhcmluZyBvZiB3ZWJzaXRl
IGRhdGEgc3RvcmUgKG9uZSBob3VyKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1MgSG9zdCBp
cyBubyBsb25nZXIgYSBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgdGhlIHN0b3JlIHdhcyBjbGVh
cmVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVh
ci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hNmJiMDY1ZTM3YmRhMjQ0ODA0MzM3MjM0NTVmZThmN2Q4Njk2OGMwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFz
ZS5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4i
PgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT48L3RpdGxl
PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgY2xlYXJpbmcgb2Yg
d2Vic2l0ZSBkYXRhIHN0b3JlIChvbmUgaG91cikuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBj
b25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7
CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1w
IjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3Rl
bXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAv
dGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBpcyBzdGlsbCBhIHByZXZhbGVudCByZXNvdXJjZSBh
ZnRlciB0aGUgc3RvcmUgd2FzIGNsZWFyZWQuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQoIkhvc3QgaXMgbm8gbG9uZ2VyIGEgcHJldmFsZW50IHJlc291cmNlIGFmdGVy
IHRoZSBzdG9yZSB3YXMgY2xlYXJlZC4iKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0U3RlcDIoKSB7Cisg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRp
c3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVu
dFN0b3JlTW9kaWZpZWRTaW5jZUhvdXJzKDEsIGNvbXBsZXRlVGVzdCk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkge30pOworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZy
YW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NT
dWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmln
aW4xKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRv
cEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0
aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmln
aW4zKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRv
cEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisKKyAgICAgICAg
dGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKHRl
c3RTdGVwMik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3Rp
Y3NBbmREYXRhUmVjb3JkcygpOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5o
b3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBy
dW5UZXN0UnVubmVyVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlv
bi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIzZmNmYTA0OTM4Mzc5OTYyZGNk
N2E3YmRhNDM5NTUwMjJlYzJlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTUgQEAKK1Rlc3QgZm9yIHBhcnRpdGlvbmVkIGFuZCB1bnBh
cnRpdGlvbmVkIGNvb2tpZSBkZWxldGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAK
KworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVj
ZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFy
dHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tp
ZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUK
KworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMi0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVj
ZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0
eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2ll
Jy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEt
LWZyYW1lMy0tPicKKy0tLS0tLS0tCitUcnkgdG8gc2V0IHRoaXJkIHBhcnR5IGNvb2tpZS4KKwor
CistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWU0LS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNl
aXZlIG5vIGNvb2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5
Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUn
LgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0t
ZnJhbWU1LS0+JworLS0tLS0tLS0KK0FmdGVyIHJlbW92YWwsIHNob3VsZCByZWNlaXZlIG5vIGNv
b2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4K
K0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgorQ2xpZW50
LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWU2LS0+
JworLS0tLS0tLS0KK0FmdGVyIGRlY2xhc3NpZmllZCwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2ll
cy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlk
IG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lk
ZSBkb2N1bWVudC5jb29raWU6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9u
LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTgzNGU4NzMwOGEwMzhkNDI0NjJiMTIxMTJlNGVi
YzE0NTU5ZGVlNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDExNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAg
ICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0
aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0
aW9uKCJUZXN0IGZvciBwYXJ0aXRpb25lZCBhbmQgdW5wYXJ0aXRpb25lZCBjb29raWUgZGVsZXRp
b24uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBwYXJ0aXRpb25I
b3N0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGly
ZFBhcnR5T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAg
Y29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29u
c3Qgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0i
ICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCB0aGly
ZFBhcnR5Q29va2llTmFtZSA9ICJ0aGlyZFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRo
VG9TZXRUaGlyZFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyB0aGlyZFBh
cnR5Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IGZyYWdtZW50V2l0aFJl
dHVyblVybCA9ICJodHRwOi8vIiArIHBhcnRpdGlvbkhvc3QgKyAiL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY29va2llLWRlbGV0aW9uLmh0bWwiOworICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tp
ZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAi
Jm5hbWUyPSIgKyB0aGlyZFBhcnR5Q29va2llTmFtZTsKKworICAgIGZ1bmN0aW9uIGZpbmlzaFRl
c3QoKSB7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAg
ICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwor
ICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsK
KyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsKKyAgICAgICAgfQor
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIH0KKworCisg
ICAgZnVuY3Rpb24gZmlyZURhdGFNb2RpZmljYXRpb25IYW5kbGVyQW5kQ29udGludWUoKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxs
YmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQocnVuVGVzdCwgNTAwKTsK
KyAgICAgICAgfSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0
aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZXRBc05vblByZXZh
bGVudEFuZENvbnRpbnVlKCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGly
ZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IHN0aWxsIHNl
dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgfSk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2Nh
dGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAg
IC8vIFNldCBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAg
ICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9T
ZXRGaXJzdFBhcnR5Q29va2llICsgIiMiICsgZnJhZ21lbnRXaXRoUmV0dXJuVXJsICsgIiNzdGVw
MiI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgor
ICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIHRoaXJkLXBhcnR5IGhhcyBhY2Nlc3Mg
dG8gaXRzIGZpcnN0LXBhcnR5IGNvb2tpZXMuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBh
cnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2Vp
dmUgZmlyc3QtcGFydHkgY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSAiI3N0ZXAzIjoKKyAgICAgICAgICAgICAgICAvLyBDbGFzc2lm
eSBsb2NhbGhvc3QgYXMgcHJldmFsZW50LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0
aW9uLmhhc2ggPSAic3RlcDQiOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJs
b2NraW5nKHJ1blRlc3QpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVj
ayB0aGF0IHRoZSB0aGlyZC1wYXJ0eSBubyBsb25nZXIgaGFzIGFjY2VzcyB0byBpdHMgZmlyc3Qt
cGFydHkgY29va2llcy4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0g
InN0ZXA1IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsg
c3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBubyBjb29raWVz
LiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAi
I3N0ZXA1IjoKKyAgICAgICAgICAgICAgICAvLyBUcnkgc2V0dGluZyBhIGNvb2tpZSBhcyB0aGly
ZC1wYXJ0eS4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA2
IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0
aFRvU2V0VGhpcmRQYXJ0eUNvb2tpZSArICImbWVzc2FnZT1UcnkgdG8gc2V0IHRoaXJkIHBhcnR5
IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwNiI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgdGhpcmQt
cGFydHkgc3RpbGwgaGFzIG5vIGFjY2VzcyB0byBjb29raWVzIGFuZCB0aGVuIGZpcmUgZGF0YSBy
ZWNvcmQgcmVtb3ZhbC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0g
InN0ZXA3IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsg
c3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBubyBjb29raWVz
LiIsIGZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlckFuZENvbnRpbnVlKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNyI6CisgICAgICAgICAgICAgICAg
Ly8gQ2hlY2sgdGhhdCB0aGUgdGhpcmQtcGFydHkgc3RpbGwgaGFzIG5vIGFjY2VzcyB0byBjb29r
aWVzIGFuZCB0aGVuIGRlY2xhc3NpZnkgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDgiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUo
dGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPUFmdGVy
IHJlbW92YWwsIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwgc2V0QXNOb25QcmV2YWxlbnRB
bmRDb250aW51ZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIj
c3RlcDgiOgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIHRoaXJkLXBhcnR5IHN0
aWxsIGhhcyBubyBhY2Nlc3MgdG8gY29va2llcy4KKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1l
KHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1BZnRl
ciBkZWNsYXNzaWZpZWQsIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwgZmluaXNoVGVzdCk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9j
dW1lbnQubG9jYXRpb24uaG9zdCA9PT0gcGFydGl0aW9uSG9zdCAmJiBkb2N1bWVudC5sb2NhdGlv
bi5oYXNoID09PSAiIiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVt
b3ZhbChmYWxzZSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVt
VGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlv
bi5oYXNoID0gInN0ZXAxIjsKKworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsK
KyAgICB9IGVsc2UgeworICAgICAgICBydW5UZXN0KCk7CisgICAgfQorCis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlv
bi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24t
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkMTA5MmVmZGVlZTQ2ZmFjNmUzNmFj
MDc2ZDgxNGQyYmJlNWM3YjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXIt
aW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjUgQEAKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAKKworLS0tLS0t
LS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBmaXJz
dC1wYXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUn
LgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCisK
Ky0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTItLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2Vp
dmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlD
b29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6
ICc8IS0tZnJhbWUzLS0+JworLS0tLS0tLS0KK0FmdGVyIHVzZXIgaW50ZXJhY3Rpb24sIHNob3Vs
ZCBzdGlsbCByZWNlaXZlIG5vIGNvb2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVk
ICdmaXJzdFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29r
aWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1h
bmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWM3
YTM5YzczZTlmMTVjNjY1MGExNzZiM2VjOTE4YzFiNWZmNjViYQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdp
dGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEs
ODQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1l
dGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0IGZvciBQYXJ0aXRpb25lZCBDb29r
aWVzIFdpdGggYW5kIFdpdGhvdXQgVXNlciBJbnRlcmFjdGlvbjwvdGl0bGU+CisgICAgPHNjcmlw
dCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0PgorICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAg
IGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBj
b25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyAiL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9
ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29v
a2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICIm
dmFsdWU9dmFsdWUiOworICAgIGNvbnN0IGZyYWdtZW50V2l0aFJldHVyblVybCA9ICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdpdGgtYW5kLXdp
dGhvdXQtdXNlci1pbnRlcmFjdGlvbi5odG1sIjsKKyAgICBjb25zdCBzdWJQYXRoVG9HZXRDb29r
aWVzID0gIi9nZXQtY29va2llcy5waHA/bmFtZTE9IiArIGZpcnN0UGFydHlDb29raWVOYW1lOwor
CisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9h
ZEhhbmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9u
TG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxl
cjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHNldFVzZXJJbnRlcmFjdGlvbkFuZENvbnRpbnVlKCkg
eworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24o
dGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoIXRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmln
aW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRoaXJkIHBhcnR5IGRpZCBub3QgZ2V0
IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsK
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAg
c3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3Rl
cDEiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5
QmFzZVVybCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyBmcmFnbWVudFdp
dGhSZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFz
aCA9ICJzdGVwMyI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVy
bCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgZmlyc3Qt
cGFydHkgY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSAiI3N0ZXAzIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5o
YXNoID0gInN0ZXA0IjsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAg
ICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2lu
ZyhydW5UZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaGFzaCA9ICJzdGVwNSI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBh
cnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2Vp
dmUgbm8gY29va2llcy4iLCBzZXRVc2VySW50ZXJhY3Rpb25BbmRDb250aW51ZSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDUiOgorICAgICAgICAgICAg
ICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsg
IiZtZXNzYWdlPUFmdGVyIHVzZXIgaW50ZXJhY3Rpb24sIHNob3VsZCBzdGlsbCByZWNlaXZlIG5v
IGNvb2tpZXMuIiwgZmluaXNoVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gcGFydGl0aW9u
SG9zdCAmJiBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09ICIiICYmIHdpbmRvdy50ZXN0UnVubmVy
ICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRh
YmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2ggPSAic3RlcDEiOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNv
dXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAgICAgICAgcnVuVGVzdCgpOwor
ICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBydW5UZXN0KCk7CisgICAgfQorPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNvb2tp
ZXMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzQwN2RjZjNlZGVlYjYwZWM5NjQ5Mjg1MDE0NTFh
MDUxOTI4NDc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitDaGVjayB0aGF0IG9ubHkgSHR0cE9u
bHkgY29va2llcyByZW1haW4gaWYgYWxsIHNjcmlwdC1hY2Nlc3NpYmxlIGNvb2tpZXMgYXJlIGRl
bGV0ZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIEJlZm9yZSBzY3Jp
cHQtYWNjZXNzaWJsZSBkZWxldGlvbjogQ2xpZW50LXNpZGUgY29va2llIGV4aXN0cy4KK1BBU1Mg
QmVmb3JlIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiBIdHRwT25seSBjb29raWUgZXhpc3Rz
LgorUEFTUyBCZWZvcmUgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246IFJlZ3VsYXIgc2VydmVy
LXNpZGUgY29va2llIGV4aXN0cy4KK1BBU1MgQWZ0ZXIgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRp
b246ICBIdHRwT25seSBjb29raWUgZXhpc3RzLgorUEFTUyBBZnRlciBmdWxsIGRlbGV0aW9uOiAg
ICAgICAgICAgICAgIEFsbCBjb29raWVzIGFyZSBnb25lLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUt
Y29va2llcy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjBmYzUzNzdkN2RlZTYwNDI5OTBiZTBjMmRiZmI3NDVhZTA1Y2Q1OQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUtY29va2llcy1kYXRhYmFzZS5odG1sCkBA
IC0wLDAgKzEsNzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2Ny
aXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigi
Q2hlY2sgdGhhdCBvbmx5IEh0dHBPbmx5IGNvb2tpZXMgcmVtYWluIGlmIGFsbCBzY3JpcHQtYWNj
ZXNzaWJsZSBjb29raWVzIGFyZSBkZWxldGVkLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVl
OworCisgICAgY29uc3QgaHR0cE9ubHlDb29raWVOYW1lID0gImh0dHAtb25seS1jb29raWUiOwor
ICAgIGNvbnN0IHNlcnZlclNpZGVDb29raWVOYW1lID0gInNlcnZlci1zaWRlLWNvb2tpZSI7Cisg
ICAgY29uc3QgY2xpZW50U2lkZUNvb2tpZU5hbWUgPSAiY2xpZW50LXNpZGUtY29va2llIjsKKwor
ICAgIGZ1bmN0aW9uIHNvcnRTdHJpbmdBcnJheShhLCBiKSB7CisgICAgICAgIGEgPSBhLnRvTG93
ZXJDYXNlKCk7CisgICAgICAgIGIgPSBiLnRvTG93ZXJDYXNlKCk7CisKKyAgICAgICAgcmV0dXJu
IGEgPiBiID8gMSA6IGIgPiBhID8gLTEgOiAwOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNoZWNr
Q29va2llcyhpc0FmdGVyU2NyaXB0QWNjZXNzaWJsZURlbGV0aW9uKSB7CisgICAgICAgIGxldCB1
bnNvcnRlZFRlc3RQYXNzZWRNZXNzYWdlcyA9IFtdOworICAgICAgICBsZXQgY29va2llcyA9IGlu
dGVybmFscy5nZXRDb29raWVzKCk7CisgICAgICAgIGlmICghY29va2llcy5sZW5ndGgpCisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKChpc0FmdGVyU2NyaXB0QWNjZXNzaWJsZURlbGV0aW9uID8gIkFm
dGVyIiA6ICJCZWZvcmUiKSArICIgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246IE5vIGNvb2tp
ZXMgZm91bmQuIik7CisgICAgICAgIGZvciAobGV0IGNvb2tpZSBvZiBjb29raWVzKSB7CisgICAg
ICAgICAgICBzd2l0Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAgICAgICAgICAgICAgY2FzZSBodHRw
T25seUNvb2tpZU5hbWU6CisgICAgICAgICAgICAgICAgICAgIHVuc29ydGVkVGVzdFBhc3NlZE1l
c3NhZ2VzLnB1c2goKGlzQWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24gPyAiQWZ0ZXIiIDog
IkJlZm9yZSIpICsgIiBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogIiArIChpc0FmdGVyU2Ny
aXB0QWNjZXNzaWJsZURlbGV0aW9uID8gIiAiIDogIiIpICsgIkh0dHBPbmx5IGNvb2tpZSBleGlz
dHMuIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2Ug
c2VydmVyU2lkZUNvb2tpZU5hbWU6CisgICAgICAgICAgICAgICAgICAgIGlmIChpc0FmdGVyU2Ny
aXB0QWNjZXNzaWJsZURlbGV0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiQWZ0ZXIgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246ICBSZWd1bGFyIHNlcnZlci1zaWRl
IGNvb2tpZSBleGlzdHMuIik7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHVuc29ydGVkVGVzdFBhc3NlZE1lc3NhZ2VzLnB1c2goIkJlZm9yZSBzY3Jp
cHQtYWNjZXNzaWJsZSBkZWxldGlvbjogUmVndWxhciBzZXJ2ZXItc2lkZSBjb29raWUgZXhpc3Rz
LiIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIGNs
aWVudFNpZGVDb29raWVOYW1lOgorICAgICAgICAgICAgICAgICAgICBpZiAoaXNBZnRlclNjcmlw
dEFjY2Vzc2libGVEZWxldGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
IkFmdGVyIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiAgQ2xpZW50LXNpZGUgY29va2llIGV4
aXN0cy4iKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAg
ICAgdW5zb3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMucHVzaCgiQmVmb3JlIHNjcmlwdC1hY2Nlc3Np
YmxlIGRlbGV0aW9uOiBDbGllbnQtc2lkZSBjb29raWUgZXhpc3RzLiIpOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBsZXQgc29y
dGVkVGVzdFBhc3NlZE1lc3NhZ2VzID0gdW5zb3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMuc29ydChz
b3J0U3RyaW5nQXJyYXkpOworICAgICAgICBmb3IgKGxldCB0ZXN0UGFzc2VkTWVzc2FnZSBvZiBz
b3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKHRlc3RQYXNz
ZWRNZXNzYWdlKTsKKyAgICB9CisKKyAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkgeworICAg
ICAgICBpZiAoIXRlc3RSdW5uZXIgfHwgIWludGVybmFscykgeworICAgICAgICAgICAgdGVzdEZh
aWxlZCgiTm8gdGVzdFJ1bm5lciBvciBubyBpbnRlcm5hbHMuIik7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKyAgICAgICAgYXdhaXQgZmV0Y2goIi9jb29raWVzL3Jlc291cmNlcy9zZXQtaHR0cC1vbmx5
LWNvb2tpZS5waHA/Y29va2llTmFtZT0iICsgaHR0cE9ubHlDb29raWVOYW1lLCB7IGNyZWRlbnRp
YWxzOiAic2FtZS1vcmlnaW4iIH0pOworICAgICAgICBhd2FpdCBmZXRjaCgiL2Nvb2tpZXMvcmVz
b3VyY2VzL3NldENvb2tpZXMuY2dpIiwgeyBoZWFkZXJzOiB7ICJTZXQtQ29va2llIjogc2VydmVy
U2lkZUNvb2tpZU5hbWUgKyAiPTE7IHBhdGg9LzsiIH0sIGNyZWRlbnRpYWxzOiAic2FtZS1vcmln
aW4iIH0pOworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBjbGllbnRTaWRlQ29va2llTmFtZSAr
ICI9MSI7CisgICAgICAgIGNoZWNrQ29va2llcyhmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc0RlbGV0ZUNvb2tpZXNGb3JIb3N0KCJodHRwOi8vMTI3LjAuMC4xIiwgZmFsc2Up
OworICAgICAgICBjaGVja0Nvb2tpZXModHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc0RlbGV0ZUNvb2tpZXNGb3JIb3N0KCJodHRwOi8vMTI3LjAuMC4xIiwgdHJ1ZSk7CisgICAg
ICAgIGxldCBjb29raWVzTGVmdCA9IGludGVybmFscy5nZXRDb29raWVzKCkubGVuZ3RoOworICAg
ICAgICBpZiAoY29va2llc0xlZnQgPT09IDApCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJBZnRl
ciBmdWxsIGRlbGV0aW9uOiAgICAgICAgICAgICAgIEFsbCBjb29raWVzIGFyZSBnb25lLiIpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBZnRlciBmdWxsIGRlbGV0aW9u
OiAgICAgICAgICAgICAgIiArIGNvb2tpZXNMZWZ0ICsgIiBjb29raWUocykgbGVmdC4iKTsKKyAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0LWRhdGFiYXNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3NDMwNjFmZjExOWZhZDNmNTk3ZGMxNWFlMDRiNGI4YzY5
Mzc5NDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTRUQ6IENvb2tpZSBzdWNj
ZXNzZnVsbHkgc2V0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0
LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0LWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDIxOWUzZDY4OTMyYmZmMThjNWEwMWM1Njg0YzQ0ZjM3MTZmZGU4
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QtZGF0
YWJhc2UuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9
ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0
aW9uKCJUZXN0cyB0aGF0IGJsb2NraW5nIGlzIG5vdCBhcHBsaWVkIHRvIHRvcC1sZXZlbCBuYXZp
Z2F0aW9uIHJlZGlyZWN0cy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGlu
dGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKworICAgIGZ1
bmN0aW9uIGRvUmVkaXJlY3QoKQorICAgIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBE
YXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSgiaHR0cDovL2xvY2FsaG9zdCIsIHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9s
b2NhbGhvc3QiKSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3NldC1j
b29raWUtb24tcmVkaXJlY3QucGhwP3N0ZXA9MSI7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQo
J2RvUmVkaXJlY3QoKScsIDApIj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1z
dGF0aXN0aWNzLWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qt
Y2FwdHVyZS1zdGF0aXN0aWNzLWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjljOTFjYWU2ZWFhM2JkY2M4NDYwYzYzMzdiMDJmN2Q2
NGYyNGZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1jYXB0dXJlLXN0YXRpc3RpY3MtZm9yLXNpbXBsZS10b3At
bmF2aWdhdGlvbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3Qg
dGhhdCBhIG5vbi1yZWRpcmVjdGVkIHRvcCBmcmFtZSBuYXZpZ2F0aW9uIGRvZXNuJ3QgZ2V0IGNh
cHR1cmVkIGluIHN0YXRpc3RpY3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0
cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vMTI3LjAu
MC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNz
LWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWNhcHR1cmUtc3RhdGlzdGlj
cy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4
MDkzNWEyMzcwZWRiZDc2OTI1MTMxOWJhYzk0NGY3MjhiYzc2ZTYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWNh
cHR1cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFzZS5odG1s
CkBAIC0wLDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhl
YWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBk
ZXNjcmlwdGlvbigiVGVzdCB0aGF0IGEgbm9uLXJlZGlyZWN0ZWQgdG9wIGZyYW1lIG5hdmlnYXRp
b24gZG9lc24ndCBnZXQgY2FwdHVyZWQgaW4gc3RhdGlzdGljcy4iKTsKKyAgICBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKyAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAg
IGxldCB0aW1lckhhbmRsZSA9IDA7CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAg
ICAgICBpZiAodGltZXJIYW5kbGUpCisgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVySGFuZGxl
KTsKKworICAgICAgICBzaG91bGRCZUZhbHNlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lz
dGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAu
MSIpJyk7CisgICAgICAgIHNob3VsZEJlRmFsc2UoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVn
aXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxo
b3N0IiknKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3Vt
ZW50LmxvY2F0aW9uLmhvc3QpIHsKKyAgICAgICAgICAgIGNhc2UgIjEyNy4wLjAuMTo4MDAwIjoK
KyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSgiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikpCisgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2FzIGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNl
IGJlZm9yZSB0aGUgdGVzdCBzdGFydHMuIik7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZG8tbm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9u
cy5odG1sIjsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgImxvY2FsaG9zdDo4MDAwIjoKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRy
dWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2Fu
RGF0YVJlY29yZHNDYWxsYmFjayhmaW5pc2hUZXN0KTsKKyAgICAgICAgICAgICAgICBpZiAoIXRl
c3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCkpCisgICAgICAgICAgICAgICAgICAg
IHRpbWVySGFuZGxlID0gc2V0VGltZW91dChmaW5pc2hUZXN0LCAxMDApOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJVbmtub3duIGhvc3Q6ICIgKyBkb2N1bWVudC5sb2NhdGlvbi5ob3N0KTsKKyAgICAgICAg
ICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykKKyAgICAgICAgcnVuVGVzdCgpOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRp
cmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRh
YmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWFkN2Q5ZTUwMDc2YjZkMTZiYmMyNmE1MDQ2
ZTk5Njk2ZDZlMDc2OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUxIEBACitUZXN0cyB0aGF0IGJsb2Nr
aW5nIGlzIG5vdCByZW1vdmVkIG1pZC1mbGlnaHQgaW4gcmVkaXJlY3RzLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0t
LS0tLS0KK1Nob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0Lgor
RGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUlQJy4KK1JlY2Vp
dmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUxvY2FsaG9zdCcuCitEaWQgbm90IHJl
Y2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3Vt
ZW50LmNvb2tpZTogZmlyc3RQYXJ0eUNvb2tpZUxvY2FsaG9zdD1sb2NhbGhvc3QKKworLS0tLS0t
LS0KK0ZyYW1lOiAnPCEtLWZyYW1lMi0tPicKKy0tLS0tLS0tCitSZWRpcmVjdCBjYXNlIDEsIHNo
b3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgMTI3LjAuMC4xLgorUmVjZWl2ZWQg
Y29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llSVAnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tp
ZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUxvY2FsaG9zdCcuCitEaWQgbm90IHJlY2VpdmUgY29v
a2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tp
ZTogZmlyc3RQYXJ0eUNvb2tpZUlQPTEyNy4wLjAuMQorCistLS0tLS0tLQorRnJhbWU6ICc8IS0t
ZnJhbWUzLS0+JworLS0tLS0tLS0KK1RyeSB0byBzZXQgdGhpcmQtcGFydHkgY29va2llIGZvciBs
b2NhbGhvc3QgaW4gYmxvY2tlZCBtb2RlLgorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFt
ZTQtLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgbm8gY29va2llLgorRGlkIG5vdCByZWNl
aXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUlQJy4KK0RpZCBub3QgcmVjZWl2ZSBj
b29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWVMb2NhbGhvc3QnLgorRGlkIG5vdCByZWNlaXZl
IGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5j
b29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTUtLT4nCistLS0tLS0tLQorUmVk
aXJlY3QgY2FzZSAyLCBzaG91bGQgbm90IHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llIGZvciAx
MjcuMC4wLjEuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2ll
SVAnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUxvY2Fs
aG9zdCcuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2llJy4K
K0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQYXJ0eUNvb2tpZUlQPTEyNy4wLjAu
MQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3Zl
LWJsb2NraW5nLWluLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzZkMzBhYWRl
ZjQ1NzdiODUyNDIzYzZhMjM2ZjNhYTM3MTlmMTAyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJs
b2NraW5nLWluLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMDAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0i
VVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBi
bG9ja2luZyBpcyBub3QgcmVtb3ZlZCBtaWQtZmxpZ2h0IGluIHJlZGlyZWN0cy4iKTsKKyAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAu
MC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIjsKKyAgICBjb25zdCByZXNvdXJjZVBhdGggPSAiL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlP
cmlnaW4gKyByZXNvdXJjZVBhdGg7CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWVQcmVm
aXggPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWVJ
UCA9IGZpcnN0UGFydHlDb29raWVOYW1lUHJlZml4ICsgIklQIjsKKyAgICBjb25zdCBmaXJzdFBh
cnR5Q29va2llTmFtZUxvY2FsaG9zdCA9IGZpcnN0UGFydHlDb29raWVOYW1lUHJlZml4ICsgIkxv
Y2FsaG9zdCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUNvb2tpZU5hbWUgPSAidGhpcmRQYXJ0eUNv
b2tpZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNvb2tpZSA9ICIvc2V0LWNv
b2tpZS5waHA/bmFtZT0iICsgdGhpcmRQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsK
KyAgICBjb25zdCBzdWJQYXRoVG9HZXRDb29raWVzID0gIi9nZXQtY29va2llcy5waHA/bmFtZTE9
IiArIGZpcnN0UGFydHlDb29raWVOYW1lSVAgKyAiJm5hbWUyPSIgKyBmaXJzdFBhcnR5Q29va2ll
TmFtZUxvY2FsaG9zdCArICImbmFtZTM9IiArIHRoaXJkUGFydHlDb29raWVOYW1lOworICAgIGNv
bnN0IHJlZGlyZWN0Q2hhaW5VcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsgcmVzb3VyY2VQYXRoICsg
Ii9yZWRpcmVjdC5waHA/cmVkaXJlY3RUbz1odHRwOi8vIiArIHBhcnRpdGlvbkhvc3QgKyByZXNv
dXJjZVBhdGggKyBzdWJQYXRoVG9HZXRDb29raWVzOworCisgICAgZnVuY3Rpb24gb3BlbklmcmFt
ZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAg
ICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0g
b25Mb2FkSGFuZGxlcjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGVsZW1lbnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAg
IHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAiI3N0
ZXAxIjoKKyAgICAgICAgICAgICAgICAvLyBTZXQgZmlyc3QtcGFydHkgY29va2llcyBmb3IgMTI3
LjAuMC4xIGFuZCBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0
aW9uLm9yaWdpbiA9PT0gdGhpcmRQYXJ0eU9yaWdpbikgeworICAgICAgICAgICAgICAgICAgICBk
b2N1bWVudC5jb29raWUgPSBmaXJzdFBhcnR5Q29va2llTmFtZUxvY2FsaG9zdCArICI9bG9jYWxo
b3N0O3BhdGg9Jy8nIjsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJl
ZiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qt
cmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwjc3RlcDIiOworICAgICAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9
IGZpcnN0UGFydHlDb29raWVOYW1lSVAgKyAiPTEyNy4wLjAuMTtwYXRoPScvJyI7CisgICAgICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRp
cmVjdC1kYXRhYmFzZS5odG1sI3N0ZXAxIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAgICAgICAg
IC8vIENoZWNrIHRoYXQgdGhlIGNvb2tpZSBnZXRzIHNlbnQgZm9yIGxvY2FsaG9zdCB1bmRlciAx
MjcuMC4wLjEgc2luY2UgbG9jYWxob3N0IGlzIG5vdCBwcmV2YWxlbnQuCisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAgICAgICAgb3Bl
bklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3Nh
Z2U9U2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3QuIiwgcnVu
VGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMi
OgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDQiOworICAg
ICAgICAgICAgICAgIC8vIExvYWQgYW4gaWZyYW1lIGluIGEgcmVkaXJlY3QgY2hhaW4gdGhhdCBz
dGFydHMgd2l0aCBsb2NhbGhvc3QgYW5kIGVuZHMgd2l0aCAxMjcuMC4wLjEuIEV4cGVjdCBhIGNv
b2tpZSBmb3IgMTI3LjAuMC4xLgorICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUocmVkaXJlY3RD
aGFpblVybCArICImbWVzc2FnZT1SZWRpcmVjdCBjYXNlIDEsIHNob3VsZCByZWNlaXZlIGZpcnN0
LXBhcnR5IGNvb2tpZSBmb3IgMTI3LjAuMC4xLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICAvLyBT
ZXQgbG9jYWxob3N0IGFzIHByZXZhbGVudCB0byBwdXQgaXQgaW4gdGhlIGJsb2NraW5nIGNhdGVn
b3J5LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0
eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSAiI3N0ZXA1IjoKKyAgICAgICAgICAgICAgICAvLyBUcnkgdG8gc2V0IHBhcnRpdGlvbmVkIGNv
b2tpZSBmb3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMS4KKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA2IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1l
KHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNvb2tpZSArICImbWVz
c2FnZT1UcnkgdG8gc2V0IHRoaXJkLXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0IGluIGJsb2Nr
ZWQgbW9kZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwNiI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBubyBjb29raWUg
Z2V0cyBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCdz
IGNvb2tpZXMgYXJlIGJsb2NrZWQuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aGFzaCA9ICJzdGVwNyI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFz
ZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIG5v
IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwNyI6CisgICAgICAgICAgICAgICAgLy8gTG9hZCBhbiBpZnJhbWUgaW4gYSBy
ZWRpcmVjdCBjaGFpbiB0aGF0IHN0YXJ0cyB3aXRoIGxvY2FsaG9zdCBhbmQgZW5kcyB3aXRoIDEy
Ny4wLjAuMS4gRXhwZWN0IGEgY29va2llIGZvciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAg
ZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwOCI7CisgICAgICAgICAgICAgICAgb3Blbklm
cmFtZShyZWRpcmVjdENoYWluVXJsICsgIiZtZXNzYWdlPVJlZGlyZWN0IGNhc2UgMiwgc2hvdWxk
IG5vdCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgMTI3LjAuMC4xLiIsIHJ1blRlc3Qp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA4IjoKKyAg
ICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggPT09ICIiKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0
YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhv
c3Qgd2FzIGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBz
dGFydHMuIik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgp
OworICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAg
ICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRl
c3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNo
LXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1k
YXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFs
ZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQwNWRjMDliNjk2MzlmMWQ5MGM2YzM3YzIyZWQxYjk2Zjg2MWM0NDkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90
LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGhvdXQtaW50ZXJh
Y3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQg
dGhlIHNlc3Npb24gaXMgbm90IHN3aXRjaGVkIHVwb24gdG9wIGZyYW1lIG5hdmlnYXRpb24gdG8g
YSBwcmV2YWxlbnQgcmVzb3VyY2Ugd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBTaG91bGQgaGF2ZSBhbmQgaGFzIHRoZSBzZXNz
aW9uIGNvb2tpZS4KK1BBU1MgU2hvdWxkIGhhdmUgYW5kIGhhcyB0aGUgcGVyc2lzdGVudCBjb29r
aWUuCitQQVNTIE9yaWdpbiBoYXMgbm8gaXNvbGF0ZWQgc2Vzc2lvbi4KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNz
aW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24tZGF0YWJh
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9k
by1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1p
bnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhYmZkYjljNDJiZTIwYTczOTY2
MjI0NGVlZDRkNzM2NDhmNWMwZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5h
dmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApA
QCAtMCwwICsxLDExMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVh
ZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB0aGUgc2Vzc2lvbiBpcyBu
b3Qgc3dpdGNoZWQgdXBvbiB0b3AgZnJhbWUgbmF2aWdhdGlvbiB0byBhIHByZXZhbGVudCByZXNv
dXJjZSB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKyAgICBjb25zdCBwcmV2YWxlbnRPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IjsKKyAgICBjb25zdCBub25QcmV2YWxlbnRPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
IjsKKyAgICBjb25zdCBzZXNzaW9uQ29va2llTmFtZSA9ICJzZXNzaW9uQ29va2llIjsKKyAgICBj
b25zdCBwZXJzaXN0ZW50Q29va2llTmFtZSA9ICJwZXJzaXN0ZW50Q29va2llIjsKKyAgICBjb25z
dCB0d29NaW51dGVzSW5TZWNvbmRzID0gMTIwOworCisgICAgZnVuY3Rpb24gc2V0U2Vzc2lvbkNv
b2tpZSgpIHsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2Vzc2lvbkNvb2tpZU5hbWUgKyAi
PTE7IHBhdGg9LyI7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2V0UGVyc2lzdGVudENvb2tpZSgp
IHsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gcGVyc2lzdGVudENvb2tpZU5hbWUgKyAiPTE7
IHBhdGg9LzsgTWF4LUFnZT0iICsgdHdvTWludXRlc0luU2Vjb25kcyArICI7IjsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBjaGVja0Nvb2tpZXMoc2hvdWxkSGF2ZVNlc3Npb25Db29raWUsIHNob3Vs
ZEhhdmVQZXJzaXN0ZW50Q29va2llKSB7CisgICAgICAgIGxldCBoYXNTZXNzaW9uQ29va2llID0g
KGRvY3VtZW50LmNvb2tpZSArICIiKS5pbmNsdWRlcyhzZXNzaW9uQ29va2llTmFtZSksCisgICAg
ICAgICAgICBoYXNQZXJzaXN0ZW50Q29va2llID0gKGRvY3VtZW50LmNvb2tpZSArICIiKS5pbmNs
dWRlcyhwZXJzaXN0ZW50Q29va2llTmFtZSk7CisKKyAgICAgICAgaWYgKHNob3VsZEhhdmVTZXNz
aW9uQ29va2llICYmIGhhc1Nlc3Npb25Db29raWUpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJT
aG91bGQgaGF2ZSBhbmQgaGFzIHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKKyAgICAgICAgZWxzZSBp
ZiAoc2hvdWxkSGF2ZVNlc3Npb25Db29raWUgJiYgIWhhc1Nlc3Npb25Db29raWUpIHsKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCBoYXZlIGJ1dCBkb2Vzbid0IGhhdmUgdGhlIHNlc3Np
b24gY29va2llLiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNo
SlNUZXN0KTsKKyAgICAgICAgfSBlbHNlIGlmICghc2hvdWxkSGF2ZVNlc3Npb25Db29raWUgJiYg
aGFzU2Vzc2lvbkNvb2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkbid0IGhh
dmUgYnV0IGhhcyB0aGUgc2Vzc2lvbiBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQoIlNob3VsZG4ndCBoYXZlIGFuZCBkb2Vzbid0IGhhdmUgdGhlIHNlc3Npb24g
Y29va2llLiIpOworCisKKyAgICAgICAgaWYgKHNob3VsZEhhdmVQZXJzaXN0ZW50Q29va2llICYm
IGhhc1BlcnNpc3RlbnRDb29raWUpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91bGQgaGF2
ZSBhbmQgaGFzIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsKKyAgICAgICAgZWxzZSBpZiAoc2hv
dWxkSGF2ZVBlcnNpc3RlbnRDb29raWUgJiYgIWhhc1BlcnNpc3RlbnRDb29raWUpIHsKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCBoYXZlIGJ1dCBkb2Vzbid0IGhhdmUgdGhlIHBlcnNp
c3RlbnQgY29va2llLiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICAgICAgfSBlbHNlIGlmICghc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29r
aWUgJiYgaGFzUGVyc2lzdGVudENvb2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hv
dWxkbid0IGhhdmUgYnV0IGhhcyB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlNob3VsZG4ndCBoYXZlIGFuZCBkb2Vzbid0IGhhdmUg
dGhlIHBlcnNpc3RlbnQgY29va2llLiIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAg
ICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAgICBzZXRTZXNzaW9uQ29va2llKCk7Cisg
ICAgICAgICAgICAgICAgc2V0UGVyc2lzdGVudENvb2tpZSgpOworICAgICAgICAgICAgICAgIGNo
ZWNrQ29va2llcyh0cnVlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5o
YXNTdGF0aXN0aWNzSXNvbGF0ZWRTZXNzaW9uKHByZXZhbGVudE9yaWdpbikpIHsKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3JpZ2luIGhhcyBpc29sYXRlZCBzZXNzaW9uLiIpOwor
ICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2Vk
KCJPcmlnaW4gaGFzIG5vIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAgICAgICAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaHJlZiA9IG5vblByZXZhbGVudE9yaWdpbiArICIvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxl
bnQtd2l0aG91dC1pbnRlcmFjdGlvbi5odG1sI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
bG9jYXRpb24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50Lmxv
Y2F0aW9uLm9yaWdpbiAhPT0gbm9uUHJldmFsZW50T3JpZ2luKQorICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJTdGVwIDIgaXMgbm90IG9uICIgKyBub25QcmV2YWxlbnRPcmlnaW4gKyAi
LiIpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHByZXZhbGVudE9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2
YWxlbnRPcmlnaW4pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKHByZXZh
bGVudE9yaWdpbiArICIgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpT
VGVzdCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcocnVuVGVzdCk7CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3Rl
cDMiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBwcmV2YWxlbnRP
cmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9u
LW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24uaHRtbCNzdGVwNCI7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAg
ICAgICAgICAgICAgIGNoZWNrQ29va2llcyh0cnVlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBp
ZiAodGVzdFJ1bm5lci5oYXNTdGF0aXN0aWNzSXNvbGF0ZWRTZXNzaW9uKHByZXZhbGVudE9yaWdp
bikpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk9yaWdpbiBoYXMgaXNvbGF0ZWQg
c2Vzc2lvbi4iKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRl
c3RQYXNzZWQoIk9yaWdpbiBoYXMgbm8gaXNvbGF0ZWQgc2Vzc2lvbi4iKTsKKyAgICAgICAgICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJVbmtub3duIGhhc2guIik7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1bWVu
dC5sb2NhdGlvbi5oYXNoID09PSAiIikgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24u
b3JpZ2luICE9PSBwcmV2YWxlbnRPcmlnaW4pCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJUZXN0
IGlzIG5vdCBzdGFydGluZyBvdXQgb24gIiArIHByZXZhbGVudE9yaWdpbiArICIuIik7CisgICAg
ICAgICAgICAKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7
CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50
T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKHByZXZhbGVudE9yaWdpbiArICIg
d2FzIGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFy
dHMuIik7CisgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAg
ICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRl
ZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQt
cmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24t
d2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wZmJhODEwMzVlMmZlY2JhMTM5NGQwMWRmMmU5YmUyMDY5NWU4NWE1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1
ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEwIEBACitDaGVjayB0aGF0IGRvY3VtZW50LnJlZmVycmVyIGlzIGRvd25ncmFkZWQgdG8g
dGhlIGVUTEQrMSBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVlcnku
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSByZWZlcnJlciBpcyBk
b3duZ3JhZGVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVy
eS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5h
dmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOWFlYmRlOTViZThhMDUyYWZmMzY3OWMwNjg4NWFlMTcwMmUxZDc1
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1x
dWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTQg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIv
Y29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlw
dGlvbigiQ2hlY2sgdGhhdCBkb2N1bWVudC5yZWZlcnJlciBpcyBkb3duZ3JhZGVkIHRvIHRoZSBl
VExEKzEgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIHF1ZXJ5LiIpOwor
ICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgbGV0IG51bWJlck9mVHJpZXMgPSAwOwor
ICAgIGZ1bmN0aW9uIHRlc3RSZWZlcnJlcigpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LnJlZmVy
cmVyID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiArICIvIikgeworICAgICAgICAgICAgdGVz
dFBhc3NlZCgiVGhlIHJlZmVycmVyIGlzIGRvd25ncmFkZWQuIik7CisgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UgaWYgKCsr
bnVtYmVyT2ZUcmllcyA8PSA1KQorICAgICAgICAgICAgc2V0VGltZW91dCh0ZXN0UmVmZXJyZXIs
IDIwMCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhlIHJlZmVy
cmVyIGlzIG5vdCBkb3duZ3JhZGVkOiAiICsgZG9jdW1lbnQucmVmZXJyZXIpOworICAgICAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIGZ1bmN0aW9uIG5hdmlnYXRlU2FtZU9yaWdpblRvQWRkUXVlcnkoKSB7CisgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiArICIv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9u
LXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sP2xpbms9cXVlcnki
OworICAgIH0KKworICAgIGZ1bmN0aW9uIG5hdmlnYXRlQ3Jvc3NPcmlnaW4oKSB7CisgICAgICAg
IGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbk9yaWdpbiArICIvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGlu
ay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sIjsKKyAgICB9CisKKyAgICBjb25z
dCBkZXN0aW5hdGlvbk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0
IHByZXZhbGVudFJlc291cmNlT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdp
biA9PT0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gJiYgZG9jdW1lbnQubG9jYXRpb24uc2VhcmNo
ID09PSAiIikgeworICAgICAgICAgICAgbmF2aWdhdGVTYW1lT3JpZ2luVG9BZGRRdWVyeSgpOwor
ICAgICAgICB9IGVsc2UgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJldmFsZW50
UmVzb3VyY2VPcmlnaW4pIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJh
c2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2Nr
aW5nKG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0UmVmZXJyZXIoKTsKKyAg
ICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1
Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjUyMTlkZDNiMTFmMmEzNGM0NTc1MzQwZTczOGRhZGNmYTBjY2ZjYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMCBAQAorVGVzdCBmb3IgZW5hYmxpbmcgZGVidWcgbW9kZSBhbmQgdGhhdCBpdCBwZXJtYW5l
bnRseSB0cmVhdHMgM3JkcGFydHl0ZXN0d2Via2l0Lm9yZyBhcyBhIHByZXZhbGVudCByZXNvdXJj
ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaHR0cDovLzNyZHBhcnR5
dGVzdHdlYmtpdC5vcmcgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgaW4gZGVidWcgbW9k
ZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
ZW5hYmxlLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjYzN2ZmOTIyNTY3ZjlhNDcyODI3M2RmYTQ3MzI2MzdhNDg1Y2I5ZjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvZW5hYmxlLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9
IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgZm9yIGVu
YWJsaW5nIGRlYnVnIG1vZGUgYW5kIHRoYXQgaXQgcGVybWFuZW50bHkgdHJlYXRzIDNyZHBhcnR5
dGVzdHdlYmtpdC5vcmcgYXMgYSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAganNUZXN0SXNB
c3luYyA9IHRydWU7CisKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly8zcmRw
YXJ0eXRlc3R3ZWJraXQub3JnIjsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5k
b3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1
ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBh
cnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKHRoaXJkUGFydHlPcmlnaW4g
KyAiIGFscmVhZHkgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzRGVidWdNb2RlKHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCh0aGly
ZFBhcnR5T3JpZ2luICsgIiBkaWRuJ3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKHRo
aXJkUGFydHlPcmlnaW4gKyAiIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlIGluIGRlYnVn
IG1vZGUuIik7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzRGVidWdN
b2RlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxODAzYmZjYjUzYjE0MDQ5ZDVlMWRhYWU1YjI1YjYyN2Zh
Y2U1YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCitQQVNTIEdyYW5kZmF0aGVyZWQgY29va2llIHdhcyBub3QgcHVyZ2VkLgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRm
YXRoZXJpbmctZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFh
ZjBiODU3ZjJlOGMwNzQxYTVhNWNjODRhNzg5ODdkM2M1Yzg1ZjQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRo
ZXJpbmctZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDExNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAg
PHRpdGxlPlRlc3QgZm9yIEdyYW5kZmF0aGVyaW5nPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CisgICAgY29uc3QgZmlyc3RQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOwor
ICAgIGNvbnN0IGZpcnN0UGFydHlCYXNlVXJsID0gZmlyc3RQYXJ0eU9yaWdpbiArICIvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVO
YW1lID0gImZpcnN0UGFydHlDb29raWUiOworICAgIGNvbnN0IHRoaXJkUGFydHlDb29raWVOYW1l
ID0gInRoaXJkUGFydHlDb29raWUiOworICAgIGNvbnN0IGNvb2tpZVZhbHVlID0gInZhbHVlIjsK
KyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBo
cD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9IiArIGNvb2tpZVZhbHVl
OworICAgIGNvbnN0IHJldHVyblVybCA9IGZpcnN0UGFydHlPcmlnaW4gKyAiL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmcuaHRtbCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9y
aWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNl
VXJsID0gdGhpcmRQYXJ0eU9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldFRoaXJkUGFydHlDb29raWUgPSAiL3NldC1jb29r
aWUucGhwP25hbWU9IiArIHRoaXJkUGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT0iICsgY29va2ll
VmFsdWU7CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVy
LnNldFVzZUlUUERhdGFiYXNlKGZhbHNlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmlyZURhdGFNb2RpZmljYXRpb25IYW5k
bGVyQW5kQ29udGludWUoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NE
aWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJ1blRl
c3QoKTsKKyAgICAgICAgfSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NT
dGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjbGVhcklu
TWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlQW5kQ29udGludWUoKSB7CisgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc0NsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmUoZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkg
eworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAgICAvLyBTZXQgYSBm
aXJzdC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5ocmVmID0gZmlyc3RQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRGaXJzdFBh
cnR5Q29va2llICsgIiMiICsgcmV0dXJuVXJsICsgIiNzdGVwMiI7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAgICAgICAgICAgIC8vIENoZWNrIHRo
YXQgbG9jYWxob3N0J3MgY29va2llIGlzIHRoZXJlLgorICAgICAgICAgICAgICAgIGlmIChkb2N1
bWVudC5jb29raWUgIT09IGZpcnN0UGFydHlDb29raWVOYW1lICsgIj0iICsgY29va2llVmFsdWUp
CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkZpcnN0LXBhcnR5IGNvb2tpZSBub3Qg
c2V0LiIpOworICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
bG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgLy8gQ2xlYXIgc3RvcmUg
dG8gdHJpZ2dlciBncmFuZGZhdGhlcmluZy4KKyAgICAgICAgICAgICAgICBjbGVhckluTWVtb3J5
QW5kUGVyc2lzdGVudFN0b3JlQW5kQ29udGludWUoKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaGFzaCA9ICJzdGVwNSI7CisgICAgICAgICAgICAgICAgLy8gU2V0IGxvY2FsaG9zdCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IikpCisgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA1
IjoKKyAgICAgICAgICAgICAgICAvLyBTZXQgYSBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIDEyNy4w
LjAuMS4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0
eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRUaGlyZFBhcnR5Q29va2llICsgIiMiICsgcmV0dXJuVXJs
ICsgIiNzdGVwNiI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIj
c3RlcDYiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDci
OworICAgICAgICAgICAgICAgIC8vIFNldCAxMjcuMC4wLjEgYXMgcHJldmFsZW50IHJlc291cmNl
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UoImh0dHA6Ly8xMjcuMC4wLjEiLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRw
Oi8vMTI3LjAuMC4xIikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCIxMjcu
MC4wLjEgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA3IjoKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA4IjsKKyAgICAgICAgICAgICAgICAvLyBUcmln
Z2VyIGEgcHVyZ2UuCisgICAgICAgICAgICAgICAgZmlyZURhdGFNb2RpZmljYXRpb25IYW5kbGVy
QW5kQ29udGludWUoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
IiNzdGVwOCI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBsb2NhbGhvc3QncyBjb29r
aWUgaXMgc3RpbGwgdGhlcmUuCisgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAh
PT0gZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiPSIgKyBjb29raWVWYWx1ZSkKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiRmlyc3QtcGFydHkgY29va2llIHB1cmdlZC4iKTsKKyAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkdyYW5kZmF0
aGVyZWQgY29va2llIHdhcyBub3QgcHVyZ2VkLiIpOworICAgICAgICAgICAgICAgIGZpbmlzaFRl
c3QoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkIG5vdCBiZSByZWFjaGVkLiIpOworICAgICAg
ICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cu
aW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7
CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURh
dGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7CisKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPSAic3RlcDEiOworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9
IGVsc2UKKyAgICAgICAgcnVuVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bG9nLWNyb3NzLXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xvZy1jcm9zcy1zaXRlLWxvYWQt
d2l0aC1saW5rLWRlY29yYXRpb24uaHRtbAppbmRleCBjNmNiMGRiYTA1NmMxOTFhYjk0ZWFiMzdi
M2RmMTNlMmNiOWU4ZjE5Li5mY2M4MmM1NjU2ODI4ZGYwNWFjYmMyM2FiODBlZTA2NGJhMGE3OGZm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvbG9nLWNyb3NzLXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9sb2ctY3Jvc3Mtc2l0
ZS1sb2FkLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0bWwKQEAgLTgsNiArOCw3IEBACiA8ZGl2IGlk
PSJvdXRwdXQiPjwvZGl2PgogPHNjcmlwdD4KICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZShmYWxzZSk7CiAgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24t
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9u
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODlmODU1YTc4OWNmMTBiZjMzMGY0
YzkyZWExMmI5NDFhYmVmYzA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11
c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBDb29r
aWUgbm90IGRlbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRl
cmFjdGlvbi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9u
LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDk3ZTgwZmQ2NjRlZTFlYTgwMzhkOWU4NzJjNzM5
NTcyOTBmNTExZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRl
cmFjdGlvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAg
IDx0aXRsZT5UZXN0cyBmb3IgTm9uLVByZXZhbGVudCBSZXNvdXJjZSBXaXRoIFVzZXIgSW50ZXJh
Y3Rpb248L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0
ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8i
ICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3Qgb3RoZXJQcmV2YWxlbnRVcmwg
PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1
bm5lclRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09ICIiKQorICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIG5vdCBlbXB0eS4iKTsKKyAgICAgICAg
Y29uc3QgY29va2llID0gInRlc3RDb29raWU9dGVzdFZhbHVlIjsKKyAgICAgICAgZG9jdW1lbnQu
Y29va2llID0gY29va2llICsgIjsgbWF4LWFnZT0xMDA7IjsKKyAgICAgICAgaWYgKGRvY3VtZW50
LmNvb2tpZSAhPT0gY29va2llKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29v
a2llIGRpZCBub3QgZ2V0IHNldC4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3Qg
Z2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICAvLyBU
aGlzIGlzIGRvbmUgdG8gbm90IGhhdmUgYW4gZW1wdHkgc2V0IG9mIHByZXZhbGVudCByZXNvdXJj
ZXMuCisgICAgICAgICAgICAvLyBPdGhlcndpc2UgZGF0YSByZWNvcmRzIGFyZSBuZXZlciBzY2Fu
bmVkLgorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uob3RoZXJQcmV2YWxlbnRVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
IGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZh
bGVudFVybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk90aGVyIGhvc3QgZGlk
IG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNz
VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgbG9nZ2Vk
IGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworCisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgPT09IGNvb2tp
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb29raWUgbm90IGRl
bGV0ZWQuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIGRlbGV0ZWQgb3IgZG9jdW1lbnQuY29va2ll
IGNvbnRhaW5zIG90aGVyIGNvb2tpZXM6ICIgKyBkb2N1bWVudC5jb29raWUpOworCisgICAgICAg
ICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJj
ZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92
YWwoMCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NT
dGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24u
aG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7Cisg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAg
ICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWlu
dGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNl
ci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg5Zjg1NWE3
ODljZjEwYmYzMzBmNGM5MmVhMTJiOTQxYWJlZmMwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJl
c291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKK1BBU1MgQ29va2llIG5vdCBkZWxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJj
ZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdp
dGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiY2U5OTA0
NWYwYTNlY2NkYmFkMTg3ODdlZWQ4ZmZmNjY1N2ZmNjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1y
ZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsx
LDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxt
ZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIE5vbi1QcmV2YWxlbnQg
UmVzb3VyY2UgV2l0aG91dCBVc2VyIEludGVyYWN0aW9uPC90aXRsZT4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29u
c3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOwor
ICAgIGNvbnN0IG90aGVyUHJldmFsZW50VXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC90ZW1w
IjsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICBpZiAoZG9j
dW1lbnQuY29va2llICE9PSAiIikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3VtZW50LmNv
b2tpZSBub3QgZW1wdHkuIik7CisgICAgICAgIGNvbnN0IGNvb2tpZSA9ICJ0ZXN0Q29va2llPXRl
c3RWYWx1ZSI7CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZSArICI7IG1heC1hZ2U9
MTAwOyI7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09IGNvb2tpZSkKKyAgICAgICAg
ICAgIHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBkaWQgbm90IGdldCBzZXQuIik7CisKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNv
dXJjZS4iKTsKKworICAgICAgICAgICAgLy8gVGhpcyBpcyBkb25lIHRvIG5vdCBoYXZlIGFuIGVt
cHR5IHNldCBvZiBwcmV2YWxlbnQgcmVzb3VyY2VzLgorICAgICAgICAgICAgLy8gT3RoZXJ3aXNl
IGRhdGEgcmVjb3JkcyBhcmUgbmV2ZXIgc2Nhbm5lZC4KKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsLCB0cnVlLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2Uob3RoZXJQcmV2YWxlbnRVcmwpKQorICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJPdGhlciBob3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNI
YWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsZWFyZWQgb2YgdXNlciBpbnRlcmFjdGlvbi4iKTsKKwor
ICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRh
dGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoZG9jdW1lbnQuY29va2llID09PSBjb29raWUpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiQ29va2llIG5vdCBkZWxldGVkLiIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tp
ZSBkZWxldGVkIG9yIGRvY3VtZW50LmNvb2tpZSBjb250YWlucyBvdGhlciBjb29raWVzOiAiICsg
ZG9jdW1lbnQuY29va2llKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZShmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZh
bHNlKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11
bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQor
CisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2lu
ZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVy
LnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRz
V2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAg
ICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFs
ZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMt
aW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wZmI5N2Y5MWZjZDMzY2M5Nzg5NzljZDQ4YTU1YTQ5NDc0ZDI3NzExCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1w
cmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNv
bnRleHQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKKy0tLS0tLS0tCitGcmFt
ZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgb25lIGNvb2tpZS4K
K1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBk
b2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJl
c291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0LWRhdGFi
YXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFy
dHktY29udGV4dC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2NGNmY2IxZjNlMzcyMGZjYTIy
M2M0MmQ4NzhjMjVhOTY2MjI5YmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2Fu
LWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1kYXRhYmFzZS5odG1sCkBA
IC0wLDAgKzEsNjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+
CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0IHRvIGVuc3VyZSBu
b24tcHJldmFsZW50IHJlc291cmNlcyBjYW4gYWNjZXNzIHRoZWlyIGNvb2tpZXMgaW4gYSB0aGly
ZCBwYXJ0eSBjb250ZXh0PC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRp
bC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgcGFy
dGl0aW9uSG9zdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdp
biA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJs
ID0gdGhpcmRQYXJ0eU9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMi
OworICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVOYW1lID0gImZpcnN0UGFydHlDb29raWUiOwor
ICAgIGNvbnN0IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhw
P25hbWU9IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgY29u
c3QgZnJhZ21lbnRXaXRoUmV0dXJuVXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2ll
cy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQuaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0
Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFt
ZTsKKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBv
bkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgIGlm
IChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhh
bmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVt
ZW50KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2gg
KGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6Cisg
ICAgICAgICAgICAgICAgLy8gU2V0IGEgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3Qu
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNl
VXJsICsgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIGZyYWdtZW50V2l0aFJl
dHVyblVybCArICIjc3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICAvLyBMb2FkIGxvY2FsaG9zdCB1bmRlciAx
MjcuMC4wLjEgYW5kIGNoZWNrIHRoYXQgaXQgZ2V0cyBpdHMgY29va2llLgorICAgICAgICAgICAg
ICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsg
IiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIG9uZSBjb29raWUuIiwgZmluaXNoVGVzdCk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQu
bG9jYXRpb24uaG9zdCA9PT0gcGFydGl0aW9uSG9zdCAmJiBkb2N1bWVudC5sb2NhdGlvbi5oYXNo
ID09ICIiICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNU
ZXh0KCk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBh
cnR5T3JpZ2luLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4sIGZh
bHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aGFzaCA9ICJzdGVwMSI7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRlc3Qo
KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODYzYzcyMDJiMDNlNzcwZDZlNDQ2ZmI2ZjM0MDBmYjM4YzU5
ZjUzMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhv
c3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRo
YXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Bl
cmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAi
aHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NS
ZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcu
MC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFz
UmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMg
dHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0
YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNWJkYTZmOWYxYmNlYmY0ODk0NTViZWNlNDg1ZjVjZWNk
MWY2MDljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2Fs
aG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
cmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5
LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAg
IGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5S
ZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBm
YWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAg
ICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAi
IikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVj
ZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmln
aW4pOworCisgICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7
CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRl
c3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hl
Y2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6
Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAi
aHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAu
MSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0g
dHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAg
ICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVz
dFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jk
c0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/cmVkaXJl
Y3RUbz1odHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMvcmVkaXJlY3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9pZnJhbWUtcmVwb3J0LWJhY2stbG9hZGVkLmh0bWwi
PgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVk
aXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRi
b3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODYzYzcyMDJiMDNlNzcwZDZlNDQ2ZmI2ZjM0MDBm
YjM4YzU5ZjUzMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhv
c3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEy
IEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQg
Y291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8v
bG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIs
ICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xv
Y2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRv
LWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2Fs
aG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YjVlZTk5
MzcwNDEwNTJkYzI2ZThmNmE1ODY5YTIyMTMyMDAzYTMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRt
bApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAg
PHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+
CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2Fu
ZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNB
c3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwg
cmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkg
eworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZh
bHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rp
b24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4g
PT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50
LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFu
IHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFz
dFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRz
Q2hlY2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsK
KyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAg
ICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJh
bWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNS
ZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOwor
ICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVy
ZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIp
Jyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAo
bGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVz
dCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRh
UmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0K
KyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHAv
P3JlZGlyZWN0VG89aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cmVzb3VyY2VzL3JlZGlyZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vbG9jYWxob3N0OjgwMDAv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvaWZyYW1lLXJlcG9ydC1iYWNrLWxvYWRl
ZC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVz
dGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2Nh
bGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0
aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliNTE2ZjEzMmY5ZmIxMDEzNjgyMjYzYzZm
MmM4MTBiN2ZhZjlkOGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRo
LW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRh
YmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMg
Zm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJh
bWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigi
aHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2Nh
bGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0
dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1u
b24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJh
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVk
aXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQ5
Y2E1OTAxZGI4MGUwZGQwMmMyMDUyMDMzYzE1N2RkZDM2ZTMxZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJv
eGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAt
dG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVz
dHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEg
bm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpz
VGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVz
c2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNo
VGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVz
dCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2Fk
ZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAg
IGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQu
b3JpZ2luID09PSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIikgeworICAgICAgICAgICAgICAgIGlm
IChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2Ug
ZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAg
ICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlm
IChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2Vy
dmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7
CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4x
IiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NS
ZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2Nh
bGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAg
ICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZp
bmlzaFRlc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVk
KHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRT
Y2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcGFnZS13
aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC5o
dG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGlu
Zy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8t
aXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1l
LXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxv
Y2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWI1MTZmMTMyZjlmYjEw
MTM2ODIyNjNjNmYyYzgxMGI3ZmFmOWQ4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3Rpbmct
aWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlw
LXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVz
dHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEg
bm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJl
ZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikg
aXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0
aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BB
U1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRw
Oi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVz
dGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3Qt
dG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRo
LW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhv
c3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMWUzM2Y2NjdkYTM1OWYzYTgyYmYzYzBjMzEw
ZDM0ZWMzNzViMzRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1u
b24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMg
Zm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJh
bWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVl
OworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNz
YWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKwor
ICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAg
ICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVN
ZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4
T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQu
ZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVk
IG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRp
cmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisg
ICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0K
KworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVU
cnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0
dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91
bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdU
bygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAg
IHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVj
dGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAg
ICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5S
ZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0
cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxs
YmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcGFnZS13aXRoLW5vbi1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QuaHRtbCI+Cis8L2lm
cmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdp
dGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzE1Yzg1ZWI0N2UwZjA4NDE2ZTYxZmQwMTVmZDdhZTNjYjg2NmI2OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUgbmVz
dGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3
LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlz
IHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGlu
Z1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5k
Ym94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRv
LWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjk3MzhlYTNiNTlhMGE3MDc0M2QzNDVkZjA1MmVhNjI5ZDJmNmI5M2QK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJh
bWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCAr
MSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBk
ZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgc2FuZGJveGVkIGlmcmFtZSBu
ZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsK
KyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5j
dGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJl
Y3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7
CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAg
IGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikgeworICAgICAgICAgICAgICAgIGlmIChldmVu
dC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBh
biB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxh
c3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0
c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7
CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAg
ICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZy
YW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAg
ICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFz
UmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsK
KyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3Rl
cmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3Qi
KScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYg
KGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRl
c3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUp
OworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0
YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8vMTI3
LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcGFnZS13aXRoLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLmh0bWwiPgorPC9p
ZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13
aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9z
dC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hl
ZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE1Yzg1ZWI0N2UwZjA4NDE2ZTYxZmQwMTVmZDdhZTNj
Yjg2NmI2OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3Ig
YSBzYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBj
b3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9s
b2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0Iiwg
Imh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9j
YWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNh
bmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9j
YWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3ZmFm
MDBhOGZkNzJmMTQ0ZWFhZWVlNGE3ZDJkMGNiNDliOGQ5OTUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hl
ZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0
LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRl
c3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9u
LXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2Fn
ZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVz
dCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQg
PSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1
bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3Jp
Z2luID09PSAibnVsbCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9m
KCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRh
dGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBv
cmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJl
Y3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAg
ICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAgICAgICB9CisK
KyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1
ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRw
Oi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxk
QmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8o
Imh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBz
aG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3Rp
bmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsKKworICAgICAg
ICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVk
aXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAg
IH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJh
Y2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QuaHRtbCI+Cis8L2lmcmFtZT4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjU0OWJmYjkwY2MxYWM1ZjkzMTVkZGYwOWNkNGI5MzFjOThiNzQ3ZWYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMjQgQEAKK1Rlc3RzIHRoYXQgY29va2llIGJsb2NraW5nIGlzIGFwcGxpZWQgdG8gcGluZyBs
b2Fkcy4KKyAgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0K
K1Nob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1l
ZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0
UGFydHlDb29raWU9dmFsdWUKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMi0tPicKKy0t
LS0tLS0tCitTaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tp
ZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6
CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTMtLT4nCistLS0tLS0tLQorUGluZyByZWNl
aXZlZC4KK0hUVFBfSE9TVDogbG9jYWxob3N0OjgwMDAKK1JFUVVFU1RfVVJJOiAvY29udGVudGV4
dGVuc2lvbnMvcmVzb3VyY2VzL3NhdmUtcGluZy5waHA/dGVzdD1waW5nLXRvLXByZXZhbGVudC1y
ZXNvdXJjZQorTm8gY29va2llcyBpbiBwaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNl
LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lNjIxMjgxMTU4ZmQzN2VhZWRkMGM1NGVhYjFlNDczOGU5MGE2NWRiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Bpbmct
dG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMDAgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNl
dD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBj
b29raWUgYmxvY2tpbmcgaXMgYXBwbGllZCB0byBwaW5nIGxvYWRzLjwvZGl2PgorPGEgaWQ9InRh
cmdldExpbmsiIGhyZWY9IiMiIHBpbmc9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9jb250ZW50ZXh0
ZW5zaW9ucy9yZXNvdXJjZXMvc2F2ZS1waW5nLnBocD90ZXN0PXBpbmctdG8tcHJldmFsZW50LXJl
c291cmNlIj5UaGUgbGluazwvYT4KKzxzY3JpcHQ+CisgICAgaWYgKHRlc3RSdW5uZXIpCisgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgY29uc3QgcGFydGl0aW9uSG9z
dCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHJlc291cmNlUGF0aCA9ICIvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0g
dGhpcmRQYXJ0eU9yaWdpbiArIHJlc291cmNlUGF0aDsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29v
a2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJz
dFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2ll
TmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHJldHVyblVybCA9ICJodHRwOi8vIiAr
IHBhcnRpdGlvbkhvc3QgKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1wcmV2YWxl
bnQtcmVzb3VyY2UuaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0
LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZTsKKworICAgIGZ1bmN0
aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQsIGNhbGxiYWNrKSB7CisgICAgICAgIHZhciBl
bGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKKyAgICAgICAgdmFy
IGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsK
KyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0
SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZ
KS50aGVuKAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGNhbGxi
YWNrKCk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAg
ICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVy
KSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJh
bWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbkxvYWRIYW5k
bGVyKSB7CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAg
ICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAg
ICAgLy8gU2V0IGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhU
b1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyByZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAg
ICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgY29va2llIGdldHMgc2VudCBmb3IgbG9jYWxob3N0IHVu
ZGVyIDEyNy4wLjAuMSBzaW5jZSBsb2NhbGhvc3QgaXMgbm90IHByZXZhbGVudC4KKyAgICAgICAg
ICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAg
ICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICIm
bWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAg
ICAgICAgICAgIC8vIFNldCBsb2NhbGhvc3QgYXMgcHJldmFsZW50IHRvIHB1dCBpdCBpbiB0aGUg
YmxvY2tpbmcgY2F0ZWdvcnkuCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJs
b2NraW5nKHJ1blRlc3QpOworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5o
YXNoID0gInN0ZXA0IjsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sg
dGhhdCBubyBjb29raWUgZ2V0cyBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNp
bmNlIGxvY2FsaG9zdCdzIGNvb2tpZXMgYXJlIGJsb2NrZWQuCisgICAgICAgICAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNSI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFt
ZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAgIiZtZXNzYWdlPVNo
b3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDUiOgorICAgICAgICAgICAgICAgIC8vIENsaWNr
IHRoZSBsaW5rIHRvIHRyaWdnZXIgdGhlIHBpbmcuCisgICAgICAgICAgICAgICAgYWN0aXZhdGVF
bGVtZW50KCJ0YXJnZXRMaW5rIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIG9w
ZW5JZnJhbWUodGhpcmRQYXJ0eU9yaWdpbiArICIvY29udGVudGV4dGVuc2lvbnMvcmVzb3VyY2Vz
L2dldC1waW5nLWRhdGEucGhwP3Rlc3Q9cGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UiLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hp
bGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgZmV0Y2goIi9jb250ZW50ZXh0ZW5zaW9ucy9yZXNvdXJjZXMvZGVsZXRlLXBp
bmcucGhwP3Rlc3Q9cGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UiKS50aGVuKCgpPT57CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlm
IChkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIikgeworICAgICAgICBpZiAodGVzdFJ1bm5l
cikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAg
ICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAgICAgICAgICAgcnVu
VGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAg
ICBydW5UZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFs
ZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291
cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTRl
MzJjNTkzZGUxMGQ1NzczNzEwMTM1NzFkZDM0OGY1Mzg1MTk2ZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQt
cmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEyIEBACitUZXN0cyB0aGF0IHdlIGdyYW50IFVzZXIgSW50ZXJhY3Rpb24gY3JlZGl0IGZvciBo
YW5kbGVkIGtleXByZXNzZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTaW11
bGF0ZSB1c2VyIHR5cGluZyBsZXR0ZXIgJ2EnIGludG8gdGhlIGZpZWxkLgorUEFTUyB0ZXN0SW5w
dXQudmFsdWUgaXMgImEiCitQQVNTIE9yaWdpbiB3YXMgZ3JhbnRlZCB1c2VyIGludGVyYWN0aW9u
LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJj
ZS1oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTU2YTUwY2NjODRm
ODBhMTc1ZGY0NjdmZjc4ODk0Y2U3YjUxOWZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1o
YW5kbGVkLWtleWRvd24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDYyIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHdl
IGdyYW50IFVzZXIgSW50ZXJhY3Rpb24gY3JlZGl0IGZvciBoYW5kbGVkIGtleXByZXNzZXMuIik7
Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvdGVtcCI7CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHRlc3RGcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0RnJhbWUiKTsKKworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIGludGVybmFscy5zZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsK
KyAgICB9CisKKyAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbihzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1Vy
bCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGVhcmVk
IG9mIHVzZXIgaW50ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAgIHRlc3RJbnB1dCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0SW5wdXQiKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXN0SW5wdXQudmFs
dWUiLCAiYSIpOworCisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiT3JpZ2luIGRpZCBub3QgZ2V0IHVzZXIgaW50ZXJhY3Rpb24gY3JlZGl0
LiIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3Nl
ZCgiT3JpZ2luIHdhcyBncmFudGVkIHVzZXIgaW50ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAg
ICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RnJh
bWUuc3JjID0gImFib3V0OmJsYW5rIjsKKyAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNz
aWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVt
b3ZhbCgwKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0
aWNzQW5kRGF0YVJlY29yZHMoKTsKKworICAgICAgICAgICAgZGVidWcoIlNpbXVsYXRlIHVzZXIg
dHlwaW5nIGxldHRlciAnYScgaW50byB0aGUgZmllbGQuIik7CisgICAgICAgICAgICB0ZXN0SW5w
dXQuZm9jdXMoKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAg
ICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiYSIpOworICAgICAgICB9KTsKKyAgICB9KTsK
K30KKzwvc2NyaXB0PgorPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBzcmM9InJlc291cmNlcy9vbmNs
aWNrLmh0bWwiPjwvaWZyYW1lPgorPGlucHV0IGlkPSJ0ZXN0SW5wdXQiIHR5cGU9InRleHQiPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1k
YXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNmU1NTliZmEyZGQyNDYxNjc5ODliMjVhYjgyMzlj
NDU2YjE2NGIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1k
YXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdHMgdGhhdCB3ZSBkbyBu
b3QgZ3JhbnQgVXNlciBJbnRlcmFjdGlvbiBjcmVkaXQgZm9yIHVuaGFuZGxlZCBrZXlwcmVzcy4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1NpbXVsYXRlIGFuIHVuaGFuZGxlZCB1
c2VyIGtleSBwcmVzcy4KK1BBU1MgT3JpZ2luIGRpZCBub3QgZ2V0IHVzZXIgaW50ZXJhY3Rpb24g
Y3JlZGl0LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQt
cmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YWNk
ZWIyOGU0Y2NiNzEyODI1MzIxN2JhODgxOWVhN2VhNmZiMmZkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1y
ZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRl
c3RzIHRoYXQgd2UgZG8gbm90IGdyYW50IFVzZXIgSW50ZXJhY3Rpb24gY3JlZGl0IGZvciB1bmhh
bmRsZWQga2V5cHJlc3MuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworY29uc3Qgc3RhdGlz
dGljc1VybCA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvdGVtcCI7CisKK29ubG9hZCA9IGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHRlc3RGcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
ZXN0RnJhbWUiKTsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJu
YWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAg
ICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNX
ZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICB9CisKKyAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMg
cHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBk
aWQgbm90IGdldCBjbGVhcmVkIG9mIHVzZXIgaW50ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNr
KGZ1bmN0aW9uKCkgeworCisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiT3JpZ2luIGRpZCBub3QgZ2V0IHVzZXIgaW50ZXJhY3Rpb24gY3Jl
ZGl0LiIpOworCisgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdEZyYW1lLnNyYyA9ICJhYm91dDpibGFuayI7CisgICAgICAgICAg
ICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0sIDApOworICAgICAgICAg
ICAgICAgIH0sIDApOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3Zh
bChmYWxzZSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGlt
ZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisKKyAgICAgICAgICAg
IGRlYnVnKCJTaW11bGF0ZSBhbiB1bmhhbmRsZWQgdXNlciBrZXkgcHJlc3MuIik7CisgICAgICAg
ICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVy
LmtleURvd24oImEiLCBbIm1ldGFLZXkiXSk7CisgICAgICAgIH0pOworICAgIH0pOworfQorPC9z
Y3JpcHQ+Cis8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUiIHNyYz0icmVzb3VyY2VzL29uY2xpY2suaHRt
bCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgt
dXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNl
ci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg5Zjg1NWE3
ODljZjEwYmYzMzBmNGM5MmVhMTJiOTQxYWJlZmMwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3Vy
Y2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
UEFTUyBDb29raWUgbm90IGRlbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2Vy
LWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlv
bi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjMTNhNTAyNzRjNmRkOTRiZmU4YTE2NDU5YzRj
YmFiOGE5MGU5MGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFj
dGlvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0
aXRsZT5UZXN0cyBmb3IgUHJldmFsZW50IFJlc291cmNlIFdpdGggVXNlciBJbnRlcmFjdGlvbjwv
dGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdzZXRVcEFuZFJ1bigpJywgMCkiPgor
PHNjcmlwdD4KKyAgICBpZiAodGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsK
KyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIv
dGVtcCI7CisgICAgY29uc3Qgb3RoZXJQcmV2YWxlbnRVcmwgPSAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3RlbXAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICBp
ZiAoZG9jdW1lbnQuY29va2llICE9PSAiIikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3Vt
ZW50LmNvb2tpZSBub3QgZW1wdHkuIik7CisgICAgICAgIGNvbnN0IGNvb2tpZSA9ICJ0ZXN0Q29v
a2llPXRlc3RWYWx1ZSI7CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZSArICI7IG1h
eC1hZ2U9MTAwOyI7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09IGNvb2tpZSkKKyAg
ICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBkaWQgbm90IGdldCBzZXQuIik7
CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3Rh
dGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJl
c291cmNlLiIpOworCisgICAgICAgICAgICAvLyBUaGlzIGlzIGRvbmUgdG8gbm90IGhhdmUgYW4g
ZW1wdHkgc2V0IG9mIHByZXZhbGVudCByZXNvdXJjZXMuCisgICAgICAgICAgICAvLyBPdGhlcndp
c2UgZGF0YSByZWNvcmRzIGFyZSBuZXZlciBzY2FubmVkLgorICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uob3RoZXJQcmV2YWxlbnRVcmwsIHRydWUs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZhbGVudFVybCkpCisgICAgICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIk90aGVyIGhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOwor
CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2Rp
ZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKGRvY3VtZW50LmNvb2tpZSA9PT0gY29va2llKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIkNvb2tpZSBub3QgZGVsZXRlZC4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJD
b29raWUgZGVsZXRlZCBvciBkb2N1bWVudC5jb29raWUgY29udGFpbnMgb3RoZXIgY29va2llczog
IiArIGRvY3VtZW50LmNvb2tpZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwo
ZmFsc2UpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5p
bXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7CisgICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBzZXRVcEFuZFJ1bigpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50Lmxv
Y2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2lu
ZG93LmludGVybmFscykgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFz
ZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIldyb25nIGhvc3QsIG5v
IHRlc3RSdW5uZXIsIG9yIG5vIGludGVybmFscy4iKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0LWRh
dGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVv
dXQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ODA5ZTkxYzIzYzIzYTIzNjlj
ZDA4NTRlYjE4MTY0N2RmYWViNDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNl
ci1pbnRlcmFjdGlvbi10aW1lb3V0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUg
QEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFT
UyBDb29raWUgZGVsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJh
Y3Rpb24tdGltZW91dC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rp
b24tdGltZW91dC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyMDg5NzA1ZDI3OGVhYTIyMTI2
ODU2ZDFkNmQwOTlhNTlhMGE3YjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNl
ci1pbnRlcmFjdGlvbi10aW1lb3V0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0
PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBQcmV2YWxlbnQgUmVzb3VyY2UgV2l0aCBV
c2VyIEludGVyYWN0aW9uIFRpbWVvdXQ8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29u
c3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOwor
ICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQu
Y29va2llICE9PSAiIikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBu
b3QgZW1wdHkuIik7CisgICAgICAgIGNvbnN0IGNvb2tpZSA9ICJ0ZXN0Q29va2llPXRlc3RWYWx1
ZSI7CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZSArICI7IG1heC1hZ2U9MTAwOyI7
CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09IGNvb2tpZSkKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBkaWQgbm90IGdldCBzZXQuIik7CisKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwg
dHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwor
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rp
b24oc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBs
b2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgbm90IGRlbGV0ZWQ6ICIg
KyBkb2N1bWVudC5jb29raWUpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb29raWUgZGVsZXRlZC4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNl
KTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNp
c3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFz
c2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29y
ZHNSZW1vdmFsKDApOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Rp
bWVUb0xpdmVVc2VySW50ZXJhY3Rpb24oMCk7CisKKyAgICAgICAgICAgICAgICAvLyBUaGlzIGlz
IHRvIGVuc3VyZSB0aGUgdGltZW91dCB3ZSdyZSB0ZXN0aW5nLgorICAgICAgICAgICAgICAgIHNl
dFRpbWVvdXQoInRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJl
Y29yZHMoKSIsIDEwMDApOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRv
dy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0
cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0
YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsK
KyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Ut
d2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Ut
d2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mNzgwOWU5MWMyM2MyM2EyMzY5Y2QwODU0ZWIxODE2NDdkZmFlYjQzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZh
bGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCitQQVNTIENvb2tpZSBkZWxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNl
LXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0
LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yN2IwYjJhYWUzMDg0
ZDRjNDdkOWVjOWY3Y2UzMmZlNGQ0MGI5YzRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13
aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU5IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIFByZXZhbGVudCBSZXNvdXJjZSBXaXRo
b3V0IFVzZXIgSW50ZXJhY3Rpb248L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qg
c3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworCisg
ICAgZnVuY3Rpb24gZmluaXNoVGVzdCAoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUg
IT09ICIiKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5vdCBkZWxldGVkOiAiICsg
ZG9jdW1lbnQuY29va2llKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgi
Q29va2llIGRlbGV0ZWQuIik7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0
VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1
bm5lclRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09ICIiKQorICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIG5vdCBlbXB0eS4iKTsKKyAgICAgICAg
Y29uc3QgY29va2llID0gInRlc3RDb29raWU9dGVzdFZhbHVlIjsKKyAgICAgICAgZG9jdW1lbnQu
Y29va2llID0gY29va2llICsgIjsgbWF4LWFnZT0xMDA7IjsKKyAgICAgICAgaWYgKGRvY3VtZW50
LmNvb2tpZSAhPT0gY29va2llKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29v
a2llIGRpZCBub3QgZ2V0IHNldC4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3Qg
Z2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCBmYWxz
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsZWFyZWQgb2YgdXNlciBpbnRlcmFj
dGlvbi4iKTsKKworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NE
aWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
ICAgICBzZXRUaW1lb3V0KCJmaW5pc2hUZXN0KCkiLCAxMDAwKTsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lm
eVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNS
ZW1vdmFsKDApOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NT
dGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsK
KyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVz
dCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQ
RGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBh
Z2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5u
ZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3Rh
dGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTc0NzU3YmM1MjU2MDA1MjFkNDYxNTQ1ZDAzNjdjMGYwNTAxYmVmMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE3IEBACitUZXN0cyB0aGF0IHN0YXRpc3RpY3MgYXJlIHBydW5lZCBpbiB0aGUgcmlnaHQgb3Jk
ZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRlc3QgaXRlcmF0aW9u
IDEgcGFzc2VkLgorUEFTUyBUZXN0IGl0ZXJhdGlvbiAyIHBhc3NlZC4KK1BBU1MgVGVzdCBpdGVy
YXRpb24gMyBwYXNzZWQuCitQQVNTIFRlc3QgaXRlcmF0aW9uIDQgcGFzc2VkLgorUEFTUyBUZXN0
IGl0ZXJhdGlvbiA1IHBhc3NlZC4KK1BBU1MgVGVzdCBpdGVyYXRpb24gNiBwYXNzZWQuCitQQVNT
IFRlc3QgaXRlcmF0aW9uIDcgcGFzc2VkLgorUEFTUyBUZXN0IGl0ZXJhdGlvbiA4IHBhc3NlZC4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1
bmUtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3BydW5lLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wY2FiN2QzOTE3MWQwM2Y0N2I0MTlkMmFkYjBjYTEzOGFkZjc4ZWI5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3By
dW5lLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDE2MyBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8
dGl0bGU+VGVzdCBmb3IgUmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzIFBydW5pbmc8L3RpdGxlPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
c3RhdGlzdGljcyBhcmUgcHJ1bmVkIGluIHRoZSByaWdodCBvcmRlci4iKTsKKyAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IG9sZGVyVGltZXN0YW1wID0gTWF0aC5yb3VuZCgo
bmV3IERhdGUoKSkuZ2V0VGltZSgpIC8gMTAwMCk7CisgICAgY29uc3QgbmV3ZXJUaW1lc3RhbXAg
PSBvbGRlclRpbWVzdGFtcCArIDEwOworICAgIGNvbnN0IG5ld2VzdFRpbWVzdGFtcCA9IG5ld2Vy
VGltZXN0YW1wICsgMTA7CisKKyAgICBjb25zdCB1cmxzVG9CZVBydW5lZCA9IFsKKyAgICAgICAg
eyB1cmw6ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvdGVtcCIsIHByZXZhbGVudDogZmFsc2UgfSwK
KyAgICAgICAgeyB1cmw6ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCIsIHByZXZhbGVudDog
ZmFsc2UgfSwKKyAgICAgICAgeyB1cmw6ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCIsIHBy
ZXZhbGVudDogdHJ1ZSB9LAorICAgICAgICB7IHVybDogImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90
ZW1wIiwgcHJldmFsZW50OiB0cnVlIH0sCisgICAgICAgIHsgdXJsOiAiaHR0cDovLzEyNy4wLjAu
NTo4MDAwL3RlbXAiLCBwcmV2YWxlbnQ6IGZhbHNlIH0sCisgICAgICAgIHsgdXJsOiAiaHR0cDov
LzEyNy4wLjAuNjo4MDAwL3RlbXAiLCBwcmV2YWxlbnQ6IGZhbHNlIH0sCisgICAgICAgIHsgdXJs
OiAiaHR0cDovLzEyNy4wLjAuNzo4MDAwL3RlbXAiLCBwcmV2YWxlbnQ6IHRydWUgfSwKKyAgICAg
ICAgeyB1cmw6ICJodHRwOi8vMTI3LjAuMC44OjgwMDAvdGVtcCIsIHByZXZhbGVudDogdHJ1ZSB9
CisgICAgXTsKKworICAgIGZ1bmN0aW9uIGNoZWNrSWZQcmV2YWxlbnRBY2NvcmRpbmdUb0luaXRp
YWxFeHBlY3RhdGlvbihiZWdpbiwgZW5kKSB7CisgICAgICAgIHZhciBmYWlsZWQgPSBmYWxzZTsK
KyAgICAgICAgZm9yICh2YXIgaSA9IGJlZ2luOyBpIDwgZW5kOyArK2kpIHsKKyAgICAgICAgICAg
IGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1
bmVkW2ldLnVybCkgIT09IHVybHNUb0JlUHJ1bmVkW2ldLnByZXZhbGVudCkgeworICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoImNoZWNrSWZQcmV2YWxlbnRBY2NvcmRpbmdUb0luaXRpYWxFeHBl
Y3RhdGlvbjogVGVzdCBpdGVyYXRpb24gIiArIGN1cnJlbnRUZXN0ICsgIiBmYWlsZWQuICIgKyB1
cmxzVG9CZVBydW5lZFtpXS51cmwgKyAodXJsc1RvQmVQcnVuZWRbaV0ucHJldmFsZW50ID8gIiB3
YXNuJ3QgIiA6ICIgd2FzICIpICsgInByZXZhbGVudCIpOworICAgICAgICAgICAgICAgIGZhaWxl
ZCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZhaWxlZCkg
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0
ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gY2hlY2tJZlByZXZhbGVu
dChiZWdpbiwgZW5kLCBleHBlY3RlZCkgeworICAgICAgICB2YXIgZmFpbGVkID0gZmFsc2U7Cisg
ICAgICAgIGZvciAodmFyIGkgPSBiZWdpbjsgaSA8IGVuZDsgKytpKSB7CisgICAgICAgICAgICBp
ZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh1cmxzVG9CZVBydW5l
ZFtpXS51cmwpICE9PSBleHBlY3RlZCkgeworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoImNo
ZWNrSWZQcmV2YWxlbnQ6IFRlc3QgaXRlcmF0aW9uICIgKyBjdXJyZW50VGVzdCArICIgZmFpbGVk
LiAiICsgdXJsc1RvQmVQcnVuZWRbaV0udXJsICsgKGV4cGVjdGVkID8gIiB3YXNuJ3QgIiA6ICIg
d2FzICIpICsgInByZXZhbGVudCIpOworICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZhaWxlZCkgeworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5U
ZXN0cyhzdGVwKSB7CisgICAgICAgIHN3aXRjaCAoc3RlcCkgeworICAgICAgICAgICAgLy8gTm9u
LXByZXZhbGVudCB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIGZpcnN0Lgor
ICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVkWzBdLnVybCwgb2xkZXJUaW1lc3RhbXAsIGZ1bmN0
aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDIpOyB9KTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFsxXS51cmwsIG5ld2Vy
VGltZXN0YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygz
KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAvLyBQcmV2YWxlbnQg
d2l0aG91dCB1c2VyIGludGVyYWN0aW9uIHRvIGJlIHBydW5lZCBzZWNvbmQuCisgICAgICAgICAg
ICBjYXNlIDM6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2UodXJsc1RvQmVQcnVuZWRbMl0udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsgaW5p
dGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyg0KTsgfSk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbMl0udXJsLCBvbGRlclRpbWVzdGFtcCwg
ZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoNSk7IH0pOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1bmVk
WzNdLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVz
dHMoNik7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSA2Ogor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0Jl
UHJ1bmVkWzNdLnVybCwgbmV3ZXJUaW1lc3RhbXAsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3Rh
dGlzdGljc0FuZFJ1blRlc3RzKDcpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIC8vIE5vbi1wcmV2YWxlbnQgd2l0aCB1c2VyIGludGVyYWN0aW9uIHRvIGJlIHBydW5l
ZCB0aGlyZC4KKyAgICAgICAgICAgIGNhc2UgNzoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odXJsc1RvQmVQcnVuZWRbNF0udXJs
LCB0cnVlLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyg4KTsg
fSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDg6CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRb
NF0udXJsLCBvbGRlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNz
QW5kUnVuVGVzdHMoOSk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSA5OgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbih1cmxzVG9CZVBydW5lZFs1XS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBp
bml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDEwKTsgfSk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIDEwOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVkWzVdLnVybCwgbmV3ZXJUaW1lc3Rh
bXAsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDExKTsgfSk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAvLyBQcmV2YWxlbnQgd2l0aCB1
c2VyIGludGVyYWN0aW9uIHRvIGJlIHBydW5lZCBsYXN0LgorICAgICAgICAgICAgY2FzZSAxMToK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSh1cmxzVG9CZVBydW5lZFs2XS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3Rh
dGlzdGljc0FuZFJ1blRlc3RzKDEyKTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIDEyOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbih1cmxzVG9CZVBydW5lZFs2XS51cmwsIHRydWUsIGZ1bmN0
aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDEzKTsgfSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDEzOgorICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVkWzZdLnVybCwgb2xk
ZXJUaW1lc3RhbXAsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3Rz
KDE0KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDE0Ogor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHVybHNUb0JlUHJ1bmVkWzddLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0
aXN0aWNzQW5kUnVuVGVzdHMoMTUpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgMTU6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
SGFzSGFkVXNlckludGVyYWN0aW9uKHVybHNUb0JlUHJ1bmVkWzddLnVybCwgdHJ1ZSwgZnVuY3Rp
b24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTYpOyB9KTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTY6CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbN10udXJsLCBuZXdl
clRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMo
MTcpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTc6Cisg
ICAgICAgICAgICAgICAgY2hlY2tJZlByZXZhbGVudEFjY29yZGluZ1RvSW5pdGlhbEV4cGVjdGF0
aW9uKDAsIHVybHNUb0JlUHJ1bmVkLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgcnVuVGVzdCgp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgdmFyIGN1
cnJlbnRUZXN0OworICAgIGZ1bmN0aW9uIGNoZWNrU3RhdGlzdGljc0FmdGVyUHJ1bmluZygpIHsK
KyAgICAgICAgLy8gUHJ1bmVkIGVudHJpZXMgc2hvdWxkIG5vdCBiZSBwcmV2YWxlbnQuCisgICAg
ICAgIGNoZWNrSWZQcmV2YWxlbnQoMCwgY3VycmVudFRlc3QsIGZhbHNlKTsKKyAgICAgICAgLy8g
Tm9uLXBydW5lZCBlbnRyaWVzIHNob3VsZCBrZWVwIHRoZWlyIGV4cGVjdGVkIHN0YXR1cy4KKyAg
ICAgICAgY2hlY2tJZlByZXZhbGVudEFjY29yZGluZ1RvSW5pdGlhbEV4cGVjdGF0aW9uKGN1cnJl
bnRUZXN0LCB1cmxzVG9CZVBydW5lZC5sZW5ndGgpOworICAgICAgICB0ZXN0UGFzc2VkKCJUZXN0
IGl0ZXJhdGlvbiAiICsgY3VycmVudFRlc3QgKyAiIHBhc3NlZC4iKTsKKyAgICAgICAgaWYgKGN1
cnJlbnRUZXN0IDwgdXJsc1RvQmVQcnVuZWQubGVuZ3RoKSB7CisgICAgICAgICAgICArK2N1cnJl
bnRUZXN0OworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5E
YXRhUmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdGlzdGljc0FmdGVyUHJ1bmluZyk7CisgICAgICAg
ICAgICBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDEpOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0
ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IGZpbGxlclVybDsKKyAgICBmdW5j
dGlvbiBydW5UZXN0KCkgeworICAgICAgICBmaWxsZXJVcmwgPSAiaHR0cDovLzEyNy4wLiIgKyBj
dXJyZW50VGVzdCArICIuMTo4MDAwL3RlbXAiOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShmaWxsZXJVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKGZp
bGxlclVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzTGFzdFNlZW4oZmlsbGVyVXJsLCBuZXdlc3RUaW1lc3RhbXAsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3Rh
dGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURh
dGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0
cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWF4U3RhdGlzdGljc0VudHJp
ZXModXJsc1RvQmVQcnVuZWQubGVuZ3RoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzUHJ1bmVFbnRyaWVzRG93blRvKHVybHNUb0JlUHJ1bmVkLmxlbmd0aCk7CisKKyAgICAgICAg
Y3VycmVudFRlc3QgPSAxOworICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlk
U2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0aXN0aWNzQWZ0ZXJQcnVuaW5nKTsKKyAg
ICAgICAgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxKTsKKyAgICB9Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxv
Y2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10
by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3YzE0
MzhiMTg2NDA2NDJhYTE2ZmMwNmI2OWQ4NDFmZGYzYmYxNmUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBzYW5kYm94ZWQgaWZy
YW1lcyBnZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVy
KCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xv
Y2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAi
aHR0cDovL2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1s
b2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2Fs
aG9zdC10by1pcC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2NzExMjA1MDY4MTgzOTFjYTk2
N2ZmMjRmZmZjMDU4YzkyMTlmNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1p
cC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJU
ZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3Igc2FuZGJveGVkIGlmcmFtZXMgZ2V0IGNvdW50ZWQgcHJv
cGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAg
ICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1
bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsK
KyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29y
ZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxT
dGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFp
bkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAg
ICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChl
dmVudC5vcmlnaW4gPT09ICJudWxsIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRh
LmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
ZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4
cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdl
SW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNr
ZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAg
ICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hv
dWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5k
ZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAg
ICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJl
Y3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNS
ZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOwor
CisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQ
YWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsK
KyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNhbmRi
b3g9ImFsbG93LXNjcmlwdHMiIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vbG9j
YWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhw
Lz9yZWRpcmVjdFRvPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3Jlc291cmNlcy9pZnJhbWUtcmVwb3J0LWJhY2stbG9hZGVkLmh0bWwiPgorPC9pZnJhbWU+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8t
aXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxv
Y2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmI3YzE0MzhiMTg2NDA2NDJhYTE2ZmMwNmI2OWQ4NDFmZGYzYmYxNmUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBm
b3Igc2FuZGJveGVkIGlmcmFtZXMgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJl
ZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikg
aXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0
aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BB
U1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRw
Oi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJh
bWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmYwMjZiZDljMGMyMTJiN2U1ZjE2NDliNTkzYjk3ODgzY2YzMTQ4ZmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMg
Zm9yIHNhbmRib3hlZCBpZnJhbWVzIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1l
c3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlz
aFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rl
c3QpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRh
UmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0K
KworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAg
ICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2Vp
dmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAibnVs
bCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09
IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgi
RkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBl
dmVudC5vcmlnaW4pOworCisgICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRl
ZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAg
IGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVu
Y3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0
IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2Nh
bGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUo
J3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDov
LzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHND
aGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxv
YWRlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKyAgICA8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzYW5kYm94PSJhbGxvdy1zY3JpcHRzIiBz
cmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNl
cy9yZWRpcmVjdC5waHAvP3JlZGlyZWN0VG89aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8v
bG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvaWZyYW1lLXJl
cG9ydC1iYWNrLWxvYWRlZC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Nh
bmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZy
YW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRv
LWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzY1OGNkMzQzZjU1NmUwYzM0
NDc1ZWY5ZWY0NWM2MjBkNGQ0MjdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13
aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1k
YXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVj
dHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgc2FuZGJveGVkIGlmcmFt
ZSBnZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJo
dHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2Fs
aG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0
cDovL2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJv
eGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAt
dG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDkyZDU5OTk2NGU3
ZTYyZmQwNWZiMGQ3OGFlNWUyOTY2MDU3YTA2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1p
ZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3Qt
dG8taXAtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGly
ZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBzYW5kYm94ZWQgaWZy
YW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVz
c2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlm
eVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNo
ZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFz
dFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hl
Y2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7
CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAibnVsbCIpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAg
ICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBt
ZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisg
ICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAg
ICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3Rp
ZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygp
IHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdp
c3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4w
LjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEy
Ny4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRw
Oi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAg
ICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAg
ICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPGlmcmFtZSBzYW5kYm94PSJhbGxvdy1zY3JpcHRzIiBzcmM9Imh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9wYWdlLXdpdGgtbm9uLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLmh0bWwiPgorPC9p
ZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgt
bm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9z
dC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hl
ZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM2NThjZDM0M2Y1NTZlMGMzNDQ3NWVmOWVmNDVjNjIw
ZDRkNDI3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3Ig
YSBub24tc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBzYW5kYm94ZWQgaWZyYW1lIGdldCBj
b3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9s
b2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0Iiwg
Imh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9j
YWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJv
eGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9j
YWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmODZm
ZThjMzI5NGUyNTM5MjJjMjVlYTM3OTI3ZmQ1Yzk0MzZmZjgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5l
c3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0
LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRl
c3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBh
IHNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2Fn
ZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVz
dCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNv
cmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisg
ICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAg
ICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1l
c3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikg
eworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEp
CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlM
ICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50
Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0g
dHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmlu
aXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlv
biBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAi
aHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9z
dCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3
LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNr
ZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVk
KQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMiIHNyYz0i
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3Bh
Z2Utd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8t
bG9jYWxob3N0Lmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVk
LW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2Nh
bGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTVjODVlYjQ3ZTBmMDg0MTZlNjFmZDAxNWZkN2FlM2Ni
ODY2YjY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQg
aWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Bl
cmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAi
aHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NS
ZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcu
MC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFz
UmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMg
dHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRo
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDZlOTRhNDU5Njk4NTRkM2UzODhkMTBhYWRjYWYwYTFkMmE0ZGFh
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEs
NTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVz
Y3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUgbmVz
dGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7Cisg
ICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rp
b24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5l
ZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlk
U2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZh
bHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rp
b24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4g
PT09ICJudWxsIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBB
U1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5y
ZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdp
bjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENo
YWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAg
ICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9s
b2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRy
dWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0
cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1Rv
KCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAg
ICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVj
dENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQor
ICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNj
cmlwdHMiIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cmVzb3VyY2VzL3BhZ2Utd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2Fs
aG9zdC10by1pcC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hl
ZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0
LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1l
LXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxo
b3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTVjODVlYjQ3ZTBmMDg0MTZl
NjFmZDAxNWZkN2FlM2NiODY2YjY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13
aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9z
dC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRp
cmVjdHMgZm9yIGEgc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlm
cmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVy
KCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xv
Y2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAi
aHR0cDovL2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFi
YXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1s
b2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWUx
OWRkMTAwMjExNWQ4YTE5NGZjMjI0MWQ1OGY0ZjgyZTAwMmJkOAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQt
bmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10
by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0
aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0
cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1z
YW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2Ui
LCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3Qo
KSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jk
c0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAg
ICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAg
dmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNz
YWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAibnVsbCIpIHsK
KyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQor
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAi
LCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
UmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5v
cmlnaW4pOworCisgICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRy
dWU7CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlz
aFRlc3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24g
Y2hlY2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0
dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3Qi
LCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4w
LjAuMSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2Vk
ID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkK
KyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzYW5kYm94PSJhbGxvdy1zY3JpcHRzIiBzcmM9Imh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9wYWdl
LXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxo
b3N0Lmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2
YWxlbnQtcmVzb3VyY2UtaW4tZGVidWctbW9kZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2
YWxlbnQtcmVzb3VyY2UtaW4tZGVidWctbW9kZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMmRjMDczZGE0N2NiYTQ4NjA3NzIzZDRmZGI2M2NiYTE1NmQ4N2U2MgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
ZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGZvciBlbmFibGluZyBkZWJ1ZyBtb2RlIGFu
ZCB0aGF0IGl0IGFsbG93cyBzZXR0aW5nIGEgY3VzdG9tIGRvbWFpbiBhcyBhIHByZXZhbGVudCBy
ZXNvdXJjZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIGdvdCBzZXQgYXMgYSBjdXN0b20gcHJldmFsZW50IHJlc291cmNlIGluIGRl
YnVnIG1vZGUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3NldC1jdXN0b20tcHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJh
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
ZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNWZkYTgxMjAxOWE5ZTczZmY5NTU4OTE1ZTBmODg5MjZhOGQ5MDQ5YQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNl
Lmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+
Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9q
cy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgor
ICAgIGRlc2NyaXB0aW9uKCJUZXN0IGZvciBlbmFibGluZyBkZWJ1ZyBtb2RlIGFuZCB0aGF0IGl0
IGFsbG93cyBzZXR0aW5nIGEgY3VzdG9tIGRvbWFpbiBhcyBhIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHRoaXJkUGFydHlPcmln
aW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
ciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0
YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKHRoaXJkUGFy
dHlPcmlnaW4gKyAiIGFscmVhZHkgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1
Z01vZGUodGhpcmRQYXJ0eU9yaWdpbiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzRGVidWdNb2RlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KHRoaXJkUGFydHlPcmlnaW4gKyAiIGRpZG4ndCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJj
ZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAg
dGVzdFBhc3NlZCh0aGlyZFBhcnR5T3JpZ2luICsgIiBnb3Qgc2V0IGFzIGEgY3VzdG9tIHByZXZh
bGVudCByZXNvdXJjZSBpbiBkZWJ1ZyBtb2RlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJl
Y3RzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1z
dWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdi
ZDU0M2VjOWFmMzI0YmQ1MGRjMWQ0Yzg2Y2RiMDllOWM0ZDViMjgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVm
ZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0cyB0aGF0IG9ubHkgdGhlIG9y
aWdpbiBpcyBzZW50IGFzIHJlZmVycmVyIGluIHJlZGlyZWN0cyB0byBwcmV2YWxlbnQgcmVzb3Vy
Y2VzIHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgcmVmZXJyZXIgaXMgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJl
c291cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS5odG1sIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1l
MS0tPicKKy0tLS0tLS0tCitodHRwOi8vMTI3LjAuMC4xOjgwMDAvCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXIt
dG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAt
cmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRh
dGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjBmOGEyZjQyMGI1YWE2MmMzN2EyNWQ0YmRkZmVkMzNh
MzNiZmE1ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1z
dWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDUxIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2Ny
aXB0aW9uKCJUZXN0cyB0aGF0IG9ubHkgdGhlIG9yaWdpbiBpcyBzZW50IGFzIHJlZmVycmVyIGlu
IHJlZGlyZWN0cyB0byBwcmV2YWxlbnQgcmVzb3VyY2VzIHdpdGhvdXQgdXNlciBpbnRlcmFjdGlv
bi4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICB0ZXN0UnVubmVyLmR1bXBDaGls
ZEZyYW1lc0FzVGV4dCgpOworCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhh
bmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9h
ZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsK
KyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOwor
ICAgIH0KKworICAgIHZhciByZWZlcnJlcjsKKyAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFi
YXNlKHRydWUpOworICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8v
bG9jYWxob3N0IikpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2FzIGNsYXNz
aWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydGVkLiIpOwor
CisgICAgICAgIGZldGNoKCJyZXNvdXJjZXMvZWNoby1yZWZlcnJlci5waHAiKS50aGVuKGZ1bmN0
aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpOworICAg
ICAgICB9KS50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgICAgICAgIHJlZmVycmVyID0gZGF0
YTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8t
b3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0bWwi
KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9s
b2NhbGhvc3QiKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90
IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUoInJlc291cmNlcy9yZWRpcmVjdC5waHA/cmVkaXJl
Y3RUbz1odHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMvZWNoby1yZWZlcnJlci5waHAiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJv
ci5tZXNzYWdlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpT
VGVzdCk7CisgICAgICAgIH0pOworICAgIH0pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVx
dWVzdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50
LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
OWNjYjljMjFmZjAwNzFhOTgwMjM5YjdiNzkzZjU1MTg3ZWJlZTVlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJl
ZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitUZXN0cyB0aGF0IG9ubHkgdGhlIG9y
aWdpbiBpcyBzZW50IGFzIHJlZmVycmVyIGZvciBwcmV2YWxlbnQgcmVzb3VyY2VzIHdpdGhvdXQg
dXNlciBpbnRlcmFjdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
cmVmZXJyZXIgaXMgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVl
c3RzLWRhdGFiYXNlLmh0bWwiCitQQVNTIHJlZmVycmVyIGlzICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAvIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
KworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitodHRwOi8vMTI3
LjAuMC4xOjgwMDAvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3Vi
cmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZh
bGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1ZDRm
MDM2NmY5N2NmY2U5NDI4YTZhODZlNTE1NDgzNjBlMzIxNzcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJy
ZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2Uu
aHRtbApAQCAtMCwwICsxLDYyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IG9ubHkgdGhlIG9y
aWdpbiBpcyBzZW50IGFzIHJlZmVycmVyIGZvciBwcmV2YWxlbnQgcmVzb3VyY2VzIHdpdGhvdXQg
dXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICB0ZXN0
UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworCisgICAgZnVuY3Rpb24gb3BlbklmcmFt
ZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAg
ICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0g
b25Mb2FkSGFuZGxlcjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGVsZW1lbnQpOworICAgIH0KKworICAgIHZhciByZWZlcnJlcjsKKyAgICB0ZXN0UnVubmVy
LnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKCJodHRwOi8vbG9jYWxob3N0IikpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2Nh
bGhvc3Qgd2FzIGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVz
dCBzdGFydGVkLiIpOworCisgICAgICAgIGZldGNoKCJyZXNvdXJjZXMvZWNoby1yZWZlcnJlci5w
aHAiKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzcG9u
c2UudGV4dCgpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgICAgICAg
IHJlZmVycmVyID0gZGF0YTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVm
ZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3Ry
aXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMt
ZGF0YWJhc2UuaHRtbCIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIsIHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgZmV0Y2goImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIpLnRo
ZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBy
ZXNwb25zZS50ZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24oZGF0
YSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJyZXIgPSBkYXRhOworICAgICAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvIik7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUo
InJlc291cmNlcy9yZWRpcmVjdC5waHA/cmVkaXJlY3RUbz1odHRwOi8vbG9jYWxob3N0OjgwMDAv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1yZWZlcnJlci5waHAiLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAg
ICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKGVy
cm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNo
SlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVy
YWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZh
bGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
NDM5MjJmZDkzZjFhNTQ0NGYyY2IwNjg4NGVmYzMyOTBiYWU1MWY0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1z
ZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgdGhlIHNlc3Npb24g
aXMgc3dpdGNoZWQgdXBvbiB0b3AgZnJhbWUgbmF2aWdhdGlvbiB0byBhIHByZXZhbGVudCByZXNv
dXJjZSB3aXRoIHVzZXIgaW50ZXJhY3Rpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIFNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHNlc3Npb24gY29va2llLgorUEFTUyBT
aG91bGQgaGF2ZSBhbmQgaGFzIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4KK1BBU1MgT3JpZ2luIGhh
cyBpc29sYXRlZCBzZXNzaW9uLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVu
dC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1w
cmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyNzBj
MDBiMDQ4MTY2NjBiYzgxZDBkNmVlODljYWE3MGUxZjc0YmMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Np
b24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5o
dG1sCkBAIC0wLDAgKzEsMTExIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4K
KzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRoZSBzZXNzaW9u
IGlzIHN3aXRjaGVkIHVwb24gdG9wIGZyYW1lIG5hdmlnYXRpb24gdG8gYSBwcmV2YWxlbnQgcmVz
b3VyY2Ugd2l0aCB1c2VyIGludGVyYWN0aW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVl
OworCisgICAgY29uc3QgcHJldmFsZW50T3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7
CisgICAgY29uc3Qgbm9uUHJldmFsZW50T3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7
CisgICAgY29uc3Qgc2Vzc2lvbkNvb2tpZU5hbWUgPSAic2Vzc2lvbkNvb2tpZSI7CisgICAgY29u
c3QgcGVyc2lzdGVudENvb2tpZU5hbWUgPSAicGVyc2lzdGVudENvb2tpZSI7CisgICAgY29uc3Qg
dHdvTWludXRlc0luU2Vjb25kcyA9IDEyMDsKKworICAgIGZ1bmN0aW9uIHNldFNlc3Npb25Db29r
aWUoKSB7CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNlc3Npb25Db29raWVOYW1lICsgIj0x
OyBwYXRoPS8iOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNldFBlcnNpc3RlbnRDb29raWUoKSB7
CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHBlcnNpc3RlbnRDb29raWVOYW1lICsgIj0xOyBw
YXRoPS87IE1heC1BZ2U9IiArIHR3b01pbnV0ZXNJblNlY29uZHMgKyAiOyI7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gY2hlY2tDb29raWVzKHNob3VsZEhhdmVTZXNzaW9uQ29va2llLCBzaG91bGRI
YXZlUGVyc2lzdGVudENvb2tpZSkgeworICAgICAgICBsZXQgaGFzU2Vzc2lvbkNvb2tpZSA9IChk
b2N1bWVudC5jb29raWUgKyAiIikuaW5jbHVkZXMoc2Vzc2lvbkNvb2tpZU5hbWUpLAorICAgICAg
ICAgICAgaGFzUGVyc2lzdGVudENvb2tpZSA9IChkb2N1bWVudC5jb29raWUgKyAiIikuaW5jbHVk
ZXMocGVyc2lzdGVudENvb2tpZU5hbWUpOworCisgICAgICAgIGlmIChzaG91bGRIYXZlU2Vzc2lv
bkNvb2tpZSAmJiBoYXNTZXNzaW9uQ29va2llKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiU2hv
dWxkIGhhdmUgYW5kIGhhcyB0aGUgc2Vzc2lvbiBjb29raWUuIik7CisgICAgICAgIGVsc2UgaWYg
KHNob3VsZEhhdmVTZXNzaW9uQ29va2llICYmICFoYXNTZXNzaW9uQ29va2llKSB7CisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJTaG91bGQgaGF2ZSBidXQgZG9lc24ndCBoYXZlIHRoZSBzZXNzaW9u
IGNvb2tpZS4iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpT
VGVzdCk7CisgICAgICAgIH0gZWxzZSBpZiAoIXNob3VsZEhhdmVTZXNzaW9uQ29va2llICYmIGhh
c1Nlc3Npb25Db29raWUpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZG4ndCBoYXZl
IGJ1dCBoYXMgdGhlIHNlc3Npb24gY29va2llLiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJTaG91bGRuJ3QgaGF2ZSBhbmQgZG9lc24ndCBoYXZlIHRoZSBzZXNzaW9uIGNv
b2tpZS4iKTsKKworCisgICAgICAgIGlmIChzaG91bGRIYXZlUGVyc2lzdGVudENvb2tpZSAmJiBo
YXNQZXJzaXN0ZW50Q29va2llKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxkIGhhdmUg
YW5kIGhhcyB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgICAgIGVsc2UgaWYgKHNob3Vs
ZEhhdmVQZXJzaXN0ZW50Q29va2llICYmICFoYXNQZXJzaXN0ZW50Q29va2llKSB7CisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJTaG91bGQgaGF2ZSBidXQgZG9lc24ndCBoYXZlIHRoZSBwZXJzaXN0
ZW50IGNvb2tpZS4iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlz
aEpTVGVzdCk7CisgICAgICAgIH0gZWxzZSBpZiAoIXNob3VsZEhhdmVQZXJzaXN0ZW50Q29va2ll
ICYmIGhhc1BlcnNpc3RlbnRDb29raWUpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3Vs
ZG4ndCBoYXZlIGJ1dCBoYXMgdGhlIHBlcnNpc3RlbnQgY29va2llLiIpOworICAgICAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91bGRuJ3QgaGF2ZSBhbmQgZG9lc24ndCBoYXZlIHRo
ZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkg
eworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
SGFzSGFkVXNlckludGVyYWN0aW9uKHByZXZhbGVudE9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgICAgIHNldFNlc3Npb25Db29raWUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgc2V0UGVyc2lzdGVudENvb2tpZSgpOworICAgICAgICAgICAgICAgICAgICBjaGVja0Nv
b2tpZXModHJ1ZSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmhh
c1N0YXRpc3RpY3NJc29sYXRlZFNlc3Npb24ocHJldmFsZW50T3JpZ2luKSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3JpZ2luIGhhcyBpc29sYXRlZCBzZXNzaW9uLiIp
OworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNo
SlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJPcmlnaW4gaGFzIG5vIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBub25QcmV2YWxlbnRPcmln
aW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlv
bi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sI3N0ZXAyIjsKKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJz
dGVwMyI7CisgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiAhPT0g
bm9uUHJldmFsZW50T3JpZ2luKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTdGVw
IDIgaXMgbm90IG9uICIgKyBub25QcmV2YWxlbnRPcmlnaW4gKyAiLiIpOworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudE9y
aWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRPcmlnaW4pKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKHByZXZhbGVudE9yaWdpbiArICIgZGlk
IG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBk
YXRlQ29va2llQmxvY2tpbmcocnVuVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBwcmV2YWxlbnRPcmlnaW4gKyAiL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQt
d2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sI3N0ZXA0IjsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgY2hlY2tD
b29raWVzKHRydWUsIHRydWUpOworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmhhc1N0
YXRpc3RpY3NJc29sYXRlZFNlc3Npb24ocHJldmFsZW50T3JpZ2luKSkKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiT3JpZ2luIGhhcyBpc29sYXRlZCBzZXNzaW9uLiIpOworICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3JpZ2luIGhh
cyBubyBpc29sYXRlZCBzZXNzaW9uLiIpOworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlVua25vd24gaGFzaC4i
KTsKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09
ICIiKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gIT09IHByZXZhbGVu
dE9yaWdpbikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRlc3QgaXMgbm90IHN0YXJ0aW5nIG91
dCBvbiAiICsgcHJldmFsZW50T3JpZ2luICsgIi4iKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRV
c2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShwcmV2YWxlbnRPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
cHJldmFsZW50T3JpZ2luICsgIiB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Ug
YmVmb3JlIHRoZSB0ZXN0IHN0YXJ0cy4iKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9u
Lmhhc2ggPSAic3RlcDEiOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy90ZWxlbWV0cnktZ2VuZXJhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RlbGVtZXRyeS1nZW5lcmF0aW9uLmh0bWwKaW5k
ZXggODQxOTU2MjA3MGIyODc4NDg2ZTA5NDFiMmUyZTFjYjI1ZTg2MTcyYy4uNjQ3ZGIzMDBlZjhh
MjU4MTQ0MDlkOGUxNWU2YmJiOTM2NTViNTlkYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RlbGVtZXRyeS1nZW5lcmF0aW9uLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RlbGVt
ZXRyeS1nZW5lcmF0aW9uLmh0bWwKQEAgLTgsNiArOCw3IEBACiA8L2hlYWQ+CiA8Ym9keT4KIDxz
Y3JpcHQ+CisgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZShmYWxzZSk7CiAgICAgZGVz
Y3JpcHRpb24oIlRlc3RzIHRoYXQgdGVsZW1ldHJ5IGZvciBwcmV2YWxlbnQgcmVzb3VyY2VzIGlz
IGNhbGN1bGF0ZWQgY29ycmVjdGx5LiIpOwogICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
dXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91
c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjI4NDI3MzBhNDVkYWRlNmVhNmYxNWRlY2MzOWE3ZTVhOWEwZTMx
MmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0cyB0aGF0IHVzZXIgaW50
ZXJhY3Rpb24gaXMgYWx3YXlzIGxvZ2dlZCBmb3IgdGhlIHRvcCBkb2N1bWVudC9mcmFtZS4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQubG9jYXRpb24ub3Jp
Z2luIGlzIHRvcEZyYW1lT3JpZ2luCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikgaXMgZmFs
c2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9w
RnJhbWVPcmlnaW4pIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4t
Y3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3Jp
Z2luLXN1Yi1mcmFtZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2NzRkMDkwOTcwYzU2M2Jm
YmE0ZDkzY2ZhNjQ1Y2FiMTVhNTk0ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9z
cy1vcmlnaW4tc3ViLWZyYW1lLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
dWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdXNlciBpbnRlcmFj
dGlvbiBpcyBhbHdheXMgbG9nZ2VkIGZvciB0aGUgdG9wIGRvY3VtZW50L2ZyYW1lLiIpOworanNU
ZXN0SXNBc3luYyA9IHRydWU7Cit0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOwor
Citjb25zdCB0b3BGcmFtZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworY29uc3Qg
c3ViRnJhbWVPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKworZnVuY3Rpb24gYWN0
aXZhdGVFbGVtZW50KGVsZW1lbnRJZCkgeworICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0
TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgIHZhciBjZW50ZXJZID0gZWxlbWVu
dC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgVUlIZWxwZXIuYWN0
aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKTsKK30KKworZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsK
KyAgICBzaG91bGRCZVRydWUoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworICAg
IHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cit9CisKK29ubG9hZCA9IGZ1
bmN0aW9uKCkgeworICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNr
KGZpbmlzaFRlc3QpOworICAgICAgICB9CisKKyAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50Lmxv
Y2F0aW9uLm9yaWdpbiIsICJ0b3BGcmFtZU9yaWdpbiIpOworCisgICAgICAgIGlmICh0ZXN0UnVu
bmVyKSB7CisgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgICAgIHNo
b3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHN1YkZyYW1lT3JpZ2luKSIpOworCisgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RG
cmFtZSIpOworICAgICAgICB9CisgICAgfSk7Cit9OworPC9zY3JpcHQ+Cis8aWZyYW1lIGlkPSJ0
ZXN0RnJhbWUiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcmVzb3VyY2VzL2R1bW15Lmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Vz
ZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2Yt
dGltZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0
aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41NDMyYmM4ZWQ3MzgxZmJjNDk4ZGIzNGMwZmIzYmU3YTU3YmQ5MWQxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXIt
aW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGlt
ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGVzdHMgdGhhdCB1c2Vy
IGludGVyYWN0aW9uIGlzIG5vdCByZXBvcnRlZCByZXBlYXRlZGx5IHdpdGhpbiBhIHNob3J0IHBl
cmlvZCBvZiB0aW1lLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1
bWVudC5sb2NhdGlvbi5vcmlnaW4gaXMgdG9wRnJhbWVPcmlnaW4KK1BBU1MgdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIGlzIGZhbHNl
CitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZy
YW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikgaXMgZmFsc2UK
K1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJh
bWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikgaXMgZmFsc2UK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorVGhpcyBp
cyB0aGUgdGVzdCBlbGVtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Ut
d2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJl
cG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjA5NTI0MmNhZDY3NDA0MTdhYTk5NzI0NjE4OTgxNDRkYzJjZTkzZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9k
LW9mLXRpbWUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdXNlciBpbnRlcmFjdGlvbiBp
cyBub3QgcmVwb3J0ZWQgcmVwZWF0ZWRseSB3aXRoaW4gYSBzaG9ydCBwZXJpb2Qgb2YgdGltZS4i
KTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2lu
ID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3ViRnJhbWVPcmlnaW4gPSAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChl
bGVtZW50SWQsIGNhbGxiYWNrKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9m
ZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkg
PSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAg
VUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQ
cm9taXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFs
c2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gZmlyc3RJbnRlcmFjdGlvbigpIHsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgi
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmln
aW4pIik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworICAgICAgICBhY3RpdmF0ZUVs
ZW1lbnQoInRlc3RFbGVtZW50Iiwgc2Vjb25kSW50ZXJhY3Rpb24pOworICAgIH0KKworICAgIGZ1
bmN0aW9uIHNlY29uZEludGVyYWN0aW9uKCkgeworICAgICAgICBzaG91bGRCZVRydWUoInRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIp
OworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKworICAgICAgICBpZiAodGVzdFJ1bm5l
cikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKHRvcEZyYW1lT3JpZ2luLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24odG9wRnJhbWVPcmlnaW4pIik7CisKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1l
bnQoInRlc3RFbGVtZW50IiwgZmluaXNoVGVzdCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNob3VsZEJl
RmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZy
YW1lT3JpZ2luKSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBvbmxvYWQg
PSBmdW5jdGlvbigpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIHNob3VsZEJlKCJkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4iLCAidG9wRnJhbWVPcmlnaW4i
KTsKKworICAgICAgICAgICAgZmlyc3RJbnRlcmFjdGlvbigpOworICAgICAgICB9KTsKKyAgICB9
OworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJ0ZXN0RWxlbWVudCI+VGhpcyBpcyB0aGUgdGVzdCBlbGVt
ZW50PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1h
ZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1y
ZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFzZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYmYyOGM5OWIzMDI0NDQ1NjBiNTFiMzQ4Yjk2MDIxYjA1ODU2ZWEzYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFs
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitUZXN0cyB0aGF0IHVzZXIg
aW50ZXJhY3Rpb24gaXMgcmVwb3J0ZWQgYWZ0ZXIgaGlzdG9yeSByZW1vdmFsIHNpbmNlIHRoYXQg
bWVhbnMgYWxsIHN0YXRpc3RpY3MgaGF2ZSBiZWVuIHJlc2V0LgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gaXMgdG9wRnJhbWVP
cmlnaW4KK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24o
dG9wRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMg
dHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihz
dWJGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNI
YWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyB0
cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1
YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCitUaGlzIGlzIHRoZSB0ZXN0IGVsZW1lbnQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0
aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFj
dGlvbi1yZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFzZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjJiZWI0MmY5NDJmMWI2OGZmYWNmZTBlZmIxZmU5MjM5NjJmMjI2OGQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvdXNlci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1k
YXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
KyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB1c2VyIGludGVyYWN0aW9uIGlzIHJlcG9ydGVk
IGFmdGVyIGhpc3RvcnkgcmVtb3ZhbCBzaW5jZSB0aGF0IG1lYW5zIGFsbCBzdGF0aXN0aWNzIGhh
dmUgYmVlbiByZXNldC4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0
IHRvcEZyYW1lT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3Vi
RnJhbWVPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKworICAgIGZ1bmN0aW9uIGFj
dGl2YXRlRWxlbWVudChlbGVtZW50SWQsIGNhbGxiYWNrKSB7CisgICAgICAgIHZhciBlbGVtZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAgdmFyIGNlbnRl
clggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAg
ICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0
IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVu
KAorICAgICAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICB9CisgICAgICAg
ICk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmlyc3RJbnRlcmFjdGlvbigpIHsKKyAgICAgICAg
c2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rp
b24odG9wRnJhbWVPcmlnaW4pIik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworICAg
ICAgICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RFbGVtZW50IiwgY2xlYXJXZWJzaXRlRGF0YSk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gY2xlYXJXZWJzaXRlRGF0YSgpIHsKKyAgICAgICAgc2hvdWxk
QmVUcnVlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BG
cmFtZU9yaWdpbikiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7CisKKyAgICAgICAg
aWYgKHRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NDbGVhclRo
cm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoc2Vjb25kSW50ZXJhY3Rpb24pOworICAgIH0KKworICAg
IGZ1bmN0aW9uIHNlY29uZEludGVyYWN0aW9uKCkgeworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdp
bikiKTsKKyAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0ZXN0RWxlbWVudCIsIGZpbmlzaFRlc3Qp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNob3VsZEJl
VHJ1ZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJh
bWVPcmlnaW4pIik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworCisgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgb25sb2Fk
ID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1
ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICBzaG91bGRCZSgiZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luIiwgInRvcEZyYW1lT3JpZ2lu
Iik7CisKKyAgICAgICAgICAgIGZpcnN0SW50ZXJhY3Rpb24oKTsKKyAgICAgICAgfSk7CisgICAg
fTsKKzwvc2NyaXB0PgorPGRpdiBpZD0idGVzdEVsZW1lbnQiPlRoaXMgaXMgdGhlIHRlc3QgZWxl
bWVudDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZvci1z
aXRlLW5hdmlnYXRlZC10by13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZv
ci1zaXRlLW5hdmlnYXRlZC10by13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sCmluZGV4IGJkM2Y2
NjNhYjczZDlkZDBmMTg2MTE2NDA1YWE5YmEzN2YzZTA1ZDkuLjZlYjYxOWFjNzUyMTZkZGM1NTlj
NWE3ZmZkMWFjMmZhNWQxODA2ZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy93ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS1uYXZp
Z2F0ZWQtdG8td2l0aC1saW5rLWRlY29yYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNp
dGUtbmF2aWdhdGVkLXRvLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0bWwKQEAgLTEwLDYgKzEwLDcg
QEAKIDxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+CiA8YnI+CiA8c2NyaXB0PgorICAgIHRlc3RSdW5u
ZXIuc2V0VXNlSVRQRGF0YWJhc2UoZmFsc2UpOwogICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOwogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGIxNTZkNTFiMDE4YjgxMDliZjNhMTAxMTZmNWY0
ZDg1ZDNhZDExNWQuLmMzNzg4NjI0OGJiNjY4M2FhZmQwN2VhMzIxY2QwNWJlOTRlMjc3NjkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC05ODksNiArOTg5
LDggQEAgaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2tleWJvYXJkLWV2ZW50cy1kdXJpbmctcHJvdmlz
aW9uYWwtbmF2aWdhdGlvbi5odG1sIFsgU2tpcAogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2tleWJv
YXJkLWV2ZW50cy1kdXJpbmctcHJvdmlzaW9uYWwtc3ViZnJhbWUtbmF2aWdhdGlvbi5odG1sIFsg
U2tpcCBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291
cmNlLWhhbmRsZWQta2V5ZG93bi5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLmh0bWwgWyBT
a2lwIF0KK2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3Vy
Y2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24t
ZGF0YWJhc2UuaHRtbCBbIFNraXAgXQogbWVkaWEvYXVkaW8tcGxheWJhY2stdm9sdW1lLWNoYW5n
ZXMtd2l0aC1yZXN0cmljdGlvbnMtYW5kLXVzZXItZ2VzdHVyZXMuaHRtbCBbIFNraXAgXQogbWVk
aWEvYXVkaW8tcGxheWJhY2stdm9sdW1lLWNoYW5nZXMtd2l0aC1yZXN0cmljdGlvbnMuaHRtbCBb
IFNraXAgXQogbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlLWludGVycnVwdGlvbi5odG1sIFsgU2tp
cCBdCkBAIC0yNzc5LDYgKzI3ODEsOSBAQCBmYXN0L2NhbnZhcy93ZWJnbC9yZWFkUGl4ZWxzLWZs
b2F0Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNzQxMjAgaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFt
ZS5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1p
bnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1l
Lmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWlu
dGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLmh0bWwgWyBTa2lw
IF0KK3dlYmtpdC5vcmcvYi8xNzQxMjAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS5odG1s
IFsgU2tpcCBdCitodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFj
dGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFi
YXNlLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2Vy
LWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNl
Lmh0bWwgWyBTa2lwIF0KICMgU2tpcHBlZCBpbiBXSzIgZXhwZWN0YXRpb25zIGJlY2F1c2UgY29v
a2llIHBhcnRpdGlvbmluZyBpcyBvbmx5IGF2YWlsYWJsZSBpbiBtYWNPUyBIaWdoIFNpZXJyYSBh
bmQgaU9TIDExLgogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxl
dGlvbi5odG1sIFsgUGFzcyBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29v
a2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbCBbIFBhc3MgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379582</attachid>
            <date>2019-09-25 15:07:10 -0700</date>
            <delta_ts>2019-09-26 09:47:21 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-195420-20190925150709.patch</filename>
            <type>text/plain</type>
            <size>397628</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTBiMzI2ZTE1OTg5YjFk
ZTM5NWQzNjk2NWE1NWU1ZGQ1OGExOTc4Zi4uYWNkMDdiMzM3NWMwN2UzNDczNTE5NWI3NTg1NjRi
MGRhMTE0NmI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDE5LTA5LTI1ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBM
YXlvdXRUZXN0cyB1c2luZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFNRTGl0ZSBiYWNrZW5kICgx
OTU0MjApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTU0MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjEzNTUxPiAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tp
bmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1m
b3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRo
LWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAg
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29v
a2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2Ut
ZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVl
cnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlm
ZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50
LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0
aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1l
LW9yaWdpbnMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVz
b3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2
YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdp
bnMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRp
cmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJy
ZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMt
dG8tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJl
Y3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZy
YW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJh
c2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12
ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1t
ZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAg
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVy
c2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9uLWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29r
aWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlw
dC1hY2Nlc3NpYmxlLWNvb2tpZXMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdh
dGlvbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxl
LXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVj
dC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50
LXdpdGhvdXQtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmln
YXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmFi
bGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJhc2UuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQt
cmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291
cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAg
ICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJj
ZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0
LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVk
LW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxo
b3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFt
ZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRh
dGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZh
bGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1k
YXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwK
KyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxl
bnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3Vy
Y2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJj
ZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAg
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BydW5lLXN0YXRpc3RpY3MtZGF0YWJh
c2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0
YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAg
ICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZy
YW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRv
LWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbAorICAg
ICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1u
ZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRv
LWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4t
ZGVidWctbW9kZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQt
c3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9y
LXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sCisgICAgICAgICAg
ICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24t
bmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRl
cmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRhdGFiYXNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9u
LW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUtZGF0YWJhc2Uu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Vz
ZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwtZGF0YWJh
c2UuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmg6CisgICAg
ICAgIEFkZGVkIFdFQkNPUkVfRVhQT1JUIHByZWZpeCB0byAyIGZ1bmN0aW9ucyBuZWVkZWQgaW4g
dGhlIElUUCBEYXRhYmFzZSAKKyAgICAgICAgdG8gY2xlYXIgb3V0IHRoZSBkYXRhYmFzZS4KKwog
MjAxOS0wOS0yNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbaVBhZE9TXSBbRGF0YUFjdGl2YXRpb25dIEZvY3VzIG1vdmVzIGF3YXkgYWZ0ZXIgZm9j
dXNpbmcgaW5wdXQgZmllbGRzIG9uIHd3dy5hdHQuY29tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFlNjdjYmQyYWNi
NzNlZThmNDdmOTI3ZGE4NWU4OTk0ZGVjZDQ2NTEuLjEwMDg4NDhlMjk2MTE1MmNlM2E1MDg5MjAy
Y2ZhMjQ2YmJlNTVhMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcwIEBACisyMDE5LTA5LTI1ICBL
YXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJs
ZSBMYXlvdXRUZXN0cyB1c2luZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFNRTGl0ZSBiYWNrZW5k
ICgxOTU0MjApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTU0MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjEzNTUxPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZWQgYWxsIFJFTEVBU0Vf
TE9HX0VSUk9SKCkgY2FsbHMgaW52b2x2aW5nIGRvbWFpbiBzdHJpbmdzIHRvCisgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoKSB0byBwcmV2ZW50IGxlYWtpbmcgaW5mb3JtYXRp
b24gYWJvdXQKKyAgICAgICAgdGhlIGRvbWFpbiBzdHJpbmdzIG9ubHkgaWYgc2Vzc2lvbklELmlz
QWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZSk6CisgICAgICAgIEFkZGVkIGF1dG92YWN1dW1pbmcg
dG8gdGhlIGNvbnN0cnVjdG9yIHRvIGF2b2lkIG1hbnVhbGx5IGNhbGxpbmcKKyAgICAgICAgcnVu
VmFjdXVtQ29tbWFuZCgpLiBDaGFuZ2VkIGNvbnN0cnVjdG9yIHRvIHRha2UgaW4gc2Vzc2lvbklE
IHNvIGl0CisgICAgICAgIGNhbiB1c2UgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCB3aGlj
aCByZXF1aXJlcyB0aGUgc2Vzc2lvbklELgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJlU3RhdGVtZW50cyk6CisgICAgICAgIEFk
ZGVkIDIgc3RhdGVtZW50cyB0aGF0IHdlcmUgbm90IGJlaW5nIHByZXBhcmVkLgorCisgICAgICAg
IChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWxhdGlvbnNo
aXBFeGlzdHMgY29uc3QpOgorICAgICAgICBDb3JyZWN0ZWQgaW5jb3JyZWN0IGNhcGl0YWxpemF0
aW9uLiBBZGRlZCBjaGVjayBmb3IgbnVsbG9wdCBpbiBjYXNlCisgICAgICAgIGRvbWFpbklEIGlz
IGZvciBhIGRvbWFpbiBub3QgaW4gdGhlIGRhdGFiYXNlIHlldC4KKworICAgICAgICAoV2ViS2l0
OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZG9tYWluSUQgY29uc3QpOgor
ICAgICAgICBDaGFuZ2VkIHJldHVybiB2YWx1ZSB0byBPcHRpb25hbDx1bnNpZ25lZD4uIFNvbWUg
dGVzdHMgd2VyZSBkaXJlY3RseQorICAgICAgICBjaGVja2luZyBmb3Igc3ViZnJhbWVzIHVuZGVy
IHRvcCBmcmFtZSBkb21haW5zIG9uIGRvbWFpbnMgdGhhdCBoYWQKKyAgICAgICAgbm90IGJlZW4g
aW5zZXJ0ZWQgeWV0LiBOb3csIGRvbWFpbklEKCkgd29uJ3QgY3Jhc2ggYnV0IHdpbGwgcmV0dXJu
CisgICAgICAgIGEgbnVsbG9wdCB2YWx1ZSB3aGljaCBjYW4gYmUgY2hlY2tlZCB0byBrbm93IHRo
YXQgdGhlIHRlc3RzIGZhaWxlZC4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwcyk6CisgICAgICAg
IEFkZGVkIGEgY2hlY2sgdG8gYXNzdXJlIGRvbWFpbklEIGV4aXN0cyBhbmQgdXBkYXRlZCB0aGUg
ZG9tYWluSUQKKyAgICAgICAgaW50ZXJhY3Rpb25zIHRvIHdvcmsgYXMgT3B0aW9uYWxzLgorCisg
ICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwb3B1
bGF0ZUZyb21NZW1vcnlTdG9yZSk6CisgICAgICAgIE1vdmVkIHRoZSBwcmVwYXJlU3RhdGVtZW50
cygpIGNhbGwgYWZ0ZXIgdGhlIHZhY3V1bSBjb21tYW5kIGluIHRoZSBjYXNlCisgICAgICAgIHdo
ZXJlIHRoZSBkYXRhYmFzZSBpcyBlbXB0eS4gT3RoZXJ3aXNlIGNhbGxlZCBpdCBiZWZvcmUgcmV0
dXJuaW5nLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpyZWN1cnNpdmVseUZpbmROb25QcmV2YWxlbnREb21haW5zVGhhdFJlZGlyZWN0ZWRU
b1RoaXNEb21haW4pOgorICAgICAgICBBZGRlZCBhIHNwYWNlIHRvIHRoZSBTUUwgY29tbWFuZHMg
dG8gY29ycmVjdCB0aGUgc3ludGF4LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpmaW5kTm90VmVyeVByZXZhbGVudFJlc291cmNlcyk6Cisg
ICAgICAgIENvcnJlY3RlZCBhIGJ1ZyBpbiB0aGUgU1FMIGNvbW1hbmQgZm9yIHF1ZXJ5aW5nCisg
ICAgICAgIHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbi4gVGhlIG9sZCBxdWVyeSB3YXMgYXNr
aW5nIGZvciBzdWJyZXNvdXJjZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVjbGFzc2lmeVJlc291cmNlcyk6CisgICAgICAgIFNwZWxs
aW5nIGZpeC4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICBDaGFuZ2VkIHN0cmluZyBj
b25jYXRlbmF0aW9uIHRvIGJpbmRpbmcuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW5kZmF0aGVyRGF0YUZvckRvbWFpbnMpOgorICAg
ICAgICBUaGUgZ3JhbmRmYXRoZXJpbmcuaHRtbCB0ZXN0IHdhcyBmYWlsaW5nIGJlY2F1c2UgZG9t
YWlucyB3ZXJlIGJlaW5nCisgICAgICAgICJzZXQiIHRvIGdyYW5kZmF0aGVyZWQgaW4gdGhlIGRh
dGFiYXNlIGJlZm9yZSBiZWluZyBpbnNlcnRlZC4gVGhpcyBmaXgKKyAgICAgICAgZW5zdXJlcyBh
bGwgZG9tYWlucyBiZWZvcmUgc2V0dGluZyB0aGUgZ3JhbmRmYXRoZXJpbmcgZmxhZy4KKworICAg
ICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nRnJh
bWVOYXZpZ2F0aW9uKToKKyAgICAgICAgTXVsdGlwbGUgdGVzdHMgd2VyZSBmYWlsaW5nIGJlY2F1
c2UgdGhlIHF1ZXJ5IHRvIGluc2VydCB0aGUgcmVsYXRpb25zaGlwCisgICAgICAgIGZvciB0aGUg
c291cmNlIGRvbWFpbiByZWxpZXMgb24gdGhlIHRhcmdldCBkb21haW4gYmVpbmcgaW4gdGhlCisg
ICAgICAgIE9ic2VydmVkRG9tYWlucyB0YWJsZS4gVGhpcyBwYXRjaCBlbnN1cmVzIGFsbCBkb21h
aW5zIGFyZSBhZGRlZCBiZWZvcmUKKyAgICAgICAgcGVyZm9ybWluZyB0aGUgcXVlcnkuCisKKyAg
ICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFVz
ZXJJbnRlcmFjdGlvbik6CisgICAgICAgIEFkZGVkIGEgIT0gU1FMSVRFX09LIGNoZWNrIHRvIG1h
a2Ugc3VyZSBhbiBlcnJvciBpcyBsb2dnZWQgaWYgdGhlCisgICAgICAgIHN0YXRlbWVudCBmYWls
cyB0byBiaW5kLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpjbGVhclVzZXJJbnRlcmFjdGlvbik6CisgICAgICAgIENoYW5nZWQgc3RyaW5n
IGNvbmNhdGVuYXRpb24gdG8gYmluZGluZy4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVXNlckludGVyYWN0aW9uKTogICAKKyAg
ICAgICAgVGhlIFNRTCBzdGF0ZW1lbnQgd2FzIGJlaW5nIGJvdW5kIHRvIGEgdmFsdWUgYW5kIG5v
dCBiZWluZyByZXNldC4gVGhpcworICAgICAgICBwYXRjaCByZXNldHMgdGhlIHN0YXRlbWVudCBh
ZnRlciBiaW5kaW5nLiBBZGRpdGlvbmFsbHksIHRoZSBzdGVwKCkKKyAgICAgICAgZnVuY3Rpb24g
d2FzIGJlaW5nIGNvbXBhcmVkIHRvIFNRTElURV9ET05FIGluc3RlYWQgb2YgU1FMSVRFX1JPVywK
KyAgICAgICAgY2F1c2luZyBhbiBlcnJvciBpZiB0aGUgcXVlcnkgcmV0dXJuZWQgcmVzdWx0cy4g
VGhlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpIHdhcyBjYXVzaW5nIG51bGwgc2VhcmNo
ZXMgdG8gY3Jhc2ggaW5zdGVhZCBvZgorICAgICAgICByZXR1cm5pbmcgZmFsc2UgKGkuZS4gaWYg
YSBkb21haW4gaXMgbm90IGluIHRoZSBkYXRhYmFzZSBpdCBzaG91bGQKKyAgICAgICAgcmV0dXJu
IHRoYXQgaXQgaGFzIG5vIHVzZXIgaW50ZXJhY3Rpb24gaW5zdGVhZCBvZiBjcmFzaGluZykuCisK
KyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNl
dFByZXZhbGVudFJlc291cmNlKTogCisgICAgICAgIFVwZGF0ZWQgZG9tYWluSUQgY2FsbCB0byBh
Y3QgYXMgYW4gT3B0aW9uYWwuIAorICAgICAgICAKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZWRpY2F0ZVZhbHVlRm9yRG9tYWluIGNvbnN0
KToKKyAgICAgICAgVGhlIFNRTCBzdGF0ZW1lbnQgd2FzIGJlaW5nIGJvdW5kIHRvIGEgdmFsdWUg
YW5kIG5vdCBiZWluZyByZXNldC4gVGhpcworICAgICAgICBwYXRjaCByZXNldHMgdGhlIHN0YXRl
bWVudCBhZnRlciBiaW5kaW5nLiBTUUxJVEVfRE9ORSBjaGFuZ2VkIHRvCisgICAgICAgIFNRTElU
RV9ST1cgdG8gcmV0dXJuIG5vbi1lbXB0eSBxdWVyeSByZXN1bHRzLiBBU1NFUlRfTk9UX1JFQUNI
RUQoKQorICAgICAgICByZW1vdmVkIGZvciB0aGUgc2FtZSByZWFzb25zIGFzIGFib3ZlLiAKKwor
ICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZW5z
dXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4pOgorICAgICAgICBGaXhl
ZCB0aGUgcmVsZWFzZSBsb2cgc3RhdGVtZW50IHdoaWNoIHdhcyBsb2dnaW5nIHRoZSB3cm9uZyBm
dW5jdGlvbiAKKyAgICAgICAgbmFtZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJEYXRhYmFzZUNvbnRlbnRzKTogCisgICAgICAg
IENsZWFycyB0aGUgZGF0YWJhc2UgYW5kIHJlYnVpbGRzIHRoZSB0YWJsZXMgb24gYSBjbGVhciBj
b21tYW5kIHRvCisgICAgICAgIG1hdGNoIHRoZSBmdW5jdGlvbmFsaXR5IGluIHRoZSBNZW1vcnkg
U3RvcmUuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OmNsZWFyKTogICAgICAgICAgICAgICAgICAgCisgICAgICAgIENhbGwgdGhlIGNsZWFy
RGF0YWJhc2VDb250ZW50cyBmdW5jdGlvbiB0byBtYXRjaCB0aGUgZnVuY3Rpb25hbGl0eSAKKyAg
ICAgICAgaW4gdGhlIE1lbW9yeSBTdG9yZS4gCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc1VzZXJHcmFudGVkU3RvcmFnZUFjY2Vzc1Ro
cm91Z2hQcm9tcHQgY29uc3QpOgorICAgICAgICBVcGRhdGVkIGRvbWFpbklEIGNhbGwgdG8gYWN0
IGFzIGFuIE9wdGlvbmFsLiAKKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVW5leHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9uKToK
KyAgICAgICAgVGVzdHMgd2VyZSBmYWlsaW5nIGJlY2F1c2Ugc2hvdWxkUmVtb3ZlQWxsV2Vic2l0
ZURhdGFGb3IoKSB3YXMgbm90IAorICAgICAgICBjaGVja2luZyBmb3IgZXhwaXJlZCB1c2VyIGlu
dGVyYWN0aW9uLiBNYXRjaGVkIGZ1bmN0aW9uYWxpdHkgaW4gdGhlCisgICAgICAgIE1lbW9yeSBT
dG9yZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6c2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3IpOgorICAgICAgICBUZXN0cyB3ZXJl
IGZhaWxpbmcgYmVjYXVzZSBzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvcigpIHdhcyBub3Qg
CisgICAgICAgIGNoZWNraW5nIGZvciBleHBpcmVkIHVzZXIgaW50ZXJhY3Rpb24uIE1hdGNoZWQg
ZnVuY3Rpb25hbGl0eSBpbiB0aGUKKyAgICAgICAgTWVtb3J5IFN0b3JlLiAKKworICAgICAgICAo
V2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVnaXN0cmFibGVE
b21haW5zVG9SZW1vdmVXZWJzaXRlRGF0YUZvcik6CisgICAgICAgIFNwZWxsaW5nIGZpeC4gCisK
KyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBy
dW5lU3RhdGlzdGljc0lmTmVlZGVkKTogCisgICAgICAgIExhc3Qgc2VlbiBzaG91bGQgYmUgc29y
dGVkIGluIGFzY2VuZGluZyBvcmRlciBiZWNhdXNlIHlvdSB3YW50IHRvIAorICAgICAgICBwcnVu
ZSB0aGUgb2xkZXIgc3RhdGlzdGljcyBmaXJzdCwgd2hpY2ggd2lsbCBoYXZlIGEgbG93ZXIgbGFz
dFNlZW4KKyAgICAgICAgZmllbGQgKHNlY29uZHNTaW5jZUVwb2NoKCkgd2lsbCBiZSBsb3dlciBm
b3Igb2xkZXIgdmFsdWVzKS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6c2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3IgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICBEZWxldGVkIGNvbnN0IHNwZWNpZmllciBiZWNhdXNlIHRoZSBmdW5j
dGlvbiBuZWVkcyB0byBjbGVhciB0aGUKKyAgICAgICAgZGF0YWJhc2UuIAorCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZS5oOiAgICAgIAorICAgICAgICBEZWNsYXJlZCBuZXcgZnVuY3Rpb25zLiBVcGRhdGVkIHNw
ZWxsaW5nIGVycm9yIChyZWdpc3RlcmFibGUgLS0+IAorICAgICAgICByZWdpc3RyYWJsZSkuIFVw
ZGF0ZWQgY29uc3RydWN0b3IgdG8gdGFrZSBzZXNzaW9uSUQuIAorCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOiAK
KyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUpOgorICAgICAgICBJVFAgZGF0YWJhc2UgZmxhZyBub3cg
aXMgc3RvcmVkIGluIHRoZSBOZXR3b3JrUHJvY2Vzcy4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHA6IAorCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
Ojppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOiAKKyAgICAgICAgU2V0IHRoZSBJVFAgZGF0YWJh
c2UgZmxhZyB3aGljaCBpcyBub3cgc3RvcmVkIGluIHRoZSBOZXR3b3JrIFByb2Nlc3MuIAorCisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRVc2VJVFBEYXRhYmFzZSk6IAorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzOjppc0lUUERhdGFiYXNlRW5hYmxlZCBjb25zdCk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgIFBhc3Nl
ZCB0aGUgc2V0VXNlSVRQRGF0YWJhc2UgZmxhZyB0byB0aGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rp
b24gCisgICAgICAgIG9mIHRoZSBzdGF0aXN0aWNzIHN0b3JlIHRvIGVuYWJsZSB0aGUgZGF0YWJh
c2UgYmFja2VuZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246Ok5ldHdvcmtTZXNzaW9uKToKKyAg
ICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5IHdhcyBub3QgZ2V0dGlu
ZyBjYWxsZWQgb24gdGhlIAorICAgICAgICBXZWJLaXRUZXN0UnVubmVyIHJlc291cmNlTG9hZFN0
YXRpc3RpY3MgcGF0aC4gVGhpcyB3YXMgcHJldmVudGluZworICAgICAgICB0aGUgZGF0YWJhc2Ug
ZmlsZSBmcm9tIG9wZW5pbmcuIAorCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpy
ZWNyZWF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY1N0b3JlKToKKyAgICAgICAgRGVzdHJveSBvbGQg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIGFuZCBjcmVhdGUgYSBuZXcgb25lIHVzaW5n
CisgICAgICAgIHRoZSBJVFAgZGF0YWJhc2UuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRh
U3RvcmVSZWYuY3BwOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0VXNlSVRQRGF0YWJh
c2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0VXNlSVRQRGF0YWJhc2UpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFVzZUlUUERhdGFiYXNlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICBQYXNz
ZWQgdGhlIHNldFVzZUlUUERhdGFiYXNlIGZsYWcgdG8gdGhlIGluaXRpYWxpemF0aW9uIGZ1bmN0
aW9uCisgICAgICAgIG9mIHRoZSBzdGF0aXN0aWNzIHN0b3JlIHRvIGVuYWJsZSB0aGUgZGF0YWJh
c2UgYmFja2VuZC4gCisKIDIwMTktMDktMjUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXBsYWNlIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5DVERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUgd2l0aCBfV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5kYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oCmluZGV4IDE0OTg2NmZiYzExOTdiYTA5ZGEy
MTU3NWYxY2VhZmFkNjQxOWZlNmIuLjUyMjRmMWU3NzdjNTZiZWZiM2Q2NmY4ZTA1ODhhZDAwOGEy
MDQyNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRh
YmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5o
CkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICBib29sIHJldHVybnNBdExlYXN0T25lUmVz
dWx0KGNvbnN0IFN0cmluZyYpOwogICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgdGFibGVF
eGlzdHMoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBjbGVhckFsbFRhYmxlcygpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJBbGxUYWJsZXMoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBp
bnQgcnVuVmFjdXVtQ29tbWFuZCgpOwogICAgIGludCBydW5JbmNyZW1lbnRhbFZhY3V1bUNvbW1h
bmQoKTsKICAgICAKQEAgLTEyNSw3ICsxMjUsNyBAQCBwdWJsaWM6CiAgICAgLy8gICAgICAgICAg
ICAgICBmaWxlLCBidXQgcmVtb3ZlcyB0aGUgZW1wdHkgcGFnZXMgb25seSB3aGVuIFBSQUdNQSBJ
TkNSRU1BTlRBTF9WQUNVVU0KICAgICAvLyAgICAgICAgICAgICAgIGlzIGNhbGxlZC4KICAgICBl
bnVtIEF1dG9WYWN1dW1QcmFnbWEgeyBBdXRvVmFjdXVtTm9uZSA9IDAsIEF1dG9WYWN1dW1GdWxs
ID0gMSwgQXV0b1ZhY3V1bUluY3JlbWVudGFsID0gMiB9OwotICAgIGJvb2wgdHVybk9uSW5jcmVt
ZW50YWxBdXRvVmFjdXVtKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCB0dXJuT25JbmNyZW1l
bnRhbEF1dG9WYWN1dW0oKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29sbGF0aW9u
RnVuY3Rpb24oY29uc3QgU3RyaW5nJiBjb2xsYXRpb25OYW1lLCBXVEY6OkZ1bmN0aW9uPGludChp
bnQsIGNvbnN0IHZvaWQqLCBpbnQsIGNvbnN0IHZvaWQqKT4mJik7CiAgICAgdm9pZCByZW1vdmVD
b2xsYXRpb25GdW5jdGlvbihjb25zdCBTdHJpbmcmIGNvbGxhdGlvbk5hbWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKaW5kZXgg
N2UxZjBhY2YzZWRmOGU3ZmFlOTViNGFjYTNjYWZkYzIxN2Q5MzRmNC4uZjc2ZTlkMzA3ZjZkZmUw
NGZiMGE2ZWQ0MTA5YzFjM2Q1MjFhNzJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCkBAIC0xNjAsNyArMTYwLDcgQEAgY29u
c3RleHByIGF1dG8gY3JlYXRlU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tID0gIkNSRUFU
RSBUQUJMRSBTdWJyZXNvdXJjZVUKICAgICAiRk9SRUlHTiBLRVkoc3VicmVzb3VyY2VEb21haW5J
RCkgUkVGRVJFTkNFUyBPYnNlcnZlZERvbWFpbnMoZG9tYWluSUQpIE9OIERFTEVURSBDQVNDQURF
LCAiCiAgICAgIkZPUkVJR04gS0VZKGZyb21Eb21haW5JRCkgUkVGRVJFTkNFUyBPYnNlcnZlZERv
bWFpbnMoZG9tYWluSUQpIE9OIERFTEVURSBDQVNDQURFKTsiX3M7CiAgICAgCi1SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmUoV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlJiBzdG9yZSwgV29ya1F1ZXVlJiB3
b3JrUXVldWUsIFNob3VsZEluY2x1ZGVMb2NhbGhvc3Qgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCwg
Y29uc3QgU3RyaW5nJiBzdG9yYWdlRGlyZWN0b3J5UGF0aCkKK1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZShXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUmIHN0b3JlLCBXb3JrUXVldWUmIHdvcmtRdWV1ZSwg
U2hvdWxkSW5jbHVkZUxvY2FsaG9zdCBzaG91bGRJbmNsdWRlTG9jYWxob3N0LCBjb25zdCBTdHJp
bmcmIHN0b3JhZ2VEaXJlY3RvcnlQYXRoLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAg
OiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoc3RvcmUsIHdvcmtRdWV1ZSwgc2hvdWxkSW5j
bHVkZUxvY2FsaG9zdCkKICAgICAsIG1fc3RvcmFnZURpcmVjdG9yeVBhdGgoc3RvcmFnZURpcmVj
dG9yeVBhdGggKyAiL29ic2VydmF0aW9ucy5kYiIpCiAgICAgLCBtX29ic2VydmVkRG9tYWluQ291
bnQobV9kYXRhYmFzZSwgb2JzZXJ2ZWREb21haW5Db3VudFF1ZXJ5KQpAQCAtMTkzLDYgKzE5Myw3
IEBAIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZShXZWJSZXNvCiAgICAgLCBtX3VwZGF0ZUdyYW5kZmF0aGVyZWRT
dGF0ZW1lbnQobV9kYXRhYmFzZSwgdXBkYXRlR3JhbmRmYXRoZXJlZFF1ZXJ5KQogICAgICwgbV9p
c0dyYW5kZmF0aGVyZWRTdGF0ZW1lbnQobV9kYXRhYmFzZSwgaXNHcmFuZGZhdGhlcmVkUXVlcnkp
CiAgICAgLCBtX2ZpbmRFeHBpcmVkVXNlckludGVyYWN0aW9uU3RhdGVtZW50KG1fZGF0YWJhc2Us
IGZpbmRFeHBpcmVkVXNlckludGVyYWN0aW9uUXVlcnkpCisgICAgLCBtX3Nlc3Npb25JRChzZXNz
aW9uSUQpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTIxMiw2ICsy
MTMsOSBAQCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmUoV2ViUmVzbwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAgICAgfQorICAgIAorICAgIGlmICghbV9kYXRhYmFzZS50dXJuT25JbmNyZW1lbnRh
bEF1dG9WYWN1dW0oKSkKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0g
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnR1cm5PbkluY3JlbWVudGFsQXV0
b1ZhY3V1bSBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFi
YXNlLmxhc3RFcnJvck1zZygpKTsKIAogICAgIGlmICghcHJlcGFyZVN0YXRlbWVudHMoKSkgewog
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMgZmFpbGVkLCBlcnJvciBtZXNz
YWdlOiAle3B1YmxpY31zLCBkYXRhYmFzZSBwYXRoOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRh
YmFzZS5sYXN0RXJyb3JNc2coKSwgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aC51dGY4KCkuZGF0YSgp
KTsKQEAgLTMyOCw3ICszMzIsOCBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpwcmVwYXJlU3RhdGVtZW50cygpCiAgICAgICAgIHx8IG1fdXBkYXRlR3JhbmRmYXRo
ZXJlZFN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1faXNHcmFu
ZGZhdGhlcmVkU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9m
aW5kRXhwaXJlZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09L
Ci0gICAgICAgICkgeworICAgICAgICB8fCBtX3RvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbS5w
cmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IG1fdG9wRnJhbWVMaW5rRGVjb3JhdGlv
bnNGcm9tRXhpc3RzLnByZXBhcmUoKSAhPSBTUUxJVEVfT0spIHsKICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OnByZXBhcmVTdGF0ZW1lbnRzIGZhaWxlZCB0byBwcmVwYXJlLCBlcnJvciBtZXNzYWdlOiAl
e3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zNTUsNyArMzYw
LDcgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0T2Jz
ZXJ2ZWREb21haW4oY29uc3QgUmVzb3VyY2VMb2EKICAgICAgICAgfHwgbV9pbnNlcnRPYnNlcnZl
ZERvbWFpblN0YXRlbWVudC5iaW5kSW50KDgsIGxvYWRTdGF0aXN0aWNzLmRhdGFSZWNvcmRzUmVt
b3ZlZCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1faW5zZXJ0T2JzZXJ2ZWREb21haW5TdGF0
ZW1lbnQuYmluZEludCg5LCBsb2FkU3RhdGlzdGljcy50aW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5
RHVlVG9Vc2VySW50ZXJhY3Rpb24pICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX2luc2VydE9i
c2VydmVkRG9tYWluU3RhdGVtZW50LmJpbmRJbnQoMTAsIGxvYWRTdGF0aXN0aWNzLnRpbWVzQWNj
ZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VBY2Nlc3NBUEkpICE9IFNRTElURV9PSykgewot
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0T2JzZXJ2ZWREb21haW4gZmFpbGVkIHRvIGJpbmQs
IGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1z
ZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwg
IiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydE9ic2VydmVk
RG9tYWluIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMzcyLDI0ICszNzcsMjYgQEAgYm9v
bCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0T2JzZXJ2ZWREb21h
aW4oY29uc3QgUmVzb3VyY2VMb2EKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVsYXRpb25zaGlwRXhpc3RzKFdlYkNvcmU6
OlNRTGl0ZVN0YXRlbWVudCYgc3RhdGVtZW50LCB1bnNpZ25lZCBmaXJzdERvbWFpbklELCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgc2Vjb25kRG9tYWluKSBjb25zdAorYm9vbCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVsYXRpb25zaGlwRXhpc3RzKFdlYkNvcmU6OlNR
TGl0ZVN0YXRlbWVudCYgc3RhdGVtZW50LCBPcHRpb25hbDx1bnNpZ25lZD4gZmlyc3REb21haW5J
RCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHNlY29uZERvbWFpbikgY29uc3QKIHsKKyAgICBp
ZiAoIWZpcnN0RG9tYWluSUQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKICAgICBBU1NF
UlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIGlmIChzdGF0ZW1lbnQuYmluZEludCgxLCBm
aXJzdERvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICBpZiAoc3RhdGVtZW50LmJpbmRJbnQoMSwg
KmZpcnN0RG9tYWluSUQpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzdGF0ZW1lbnQuYmluZFRl
eHQoMiwgc2Vjb25kRG9tYWluLnN0cmluZygpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc3Rh
dGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfUk9XKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptX2lu
c2VydERvbWFpblJlbGF0aW9uc2hpcFN0YXRlbWVudCBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVz
c2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV9pbnNlcnREb21haW5SZWxhdGlvbnNo
aXBTdGF0ZW1lbnQgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0
aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgCi0gICAgYm9vbCByZWxh
dGlvblNoaXBFeGlzdHMgPSAhIXN0YXRlbWVudC5nZXRDb2x1bW5JbnQoMCk7CisgICAgYm9vbCBy
ZWxhdGlvbnNoaXBFeGlzdHMgPSAhIXN0YXRlbWVudC5nZXRDb2x1bW5JbnQoMCk7CiAKICAgICBp
bnQgcmVzZXRSZXN1bHQgPSBzdGF0ZW1lbnQucmVzZXQoKTsKICAgICBBU1NFUlRfVU5VU0VEKHJl
c2V0UmVzdWx0LCByZXNldFJlc3VsdCA9PSBTUUxJVEVfT0spOwogICAgIAotICAgIHJldHVybiBy
ZWxhdGlvblNoaXBFeGlzdHM7CisgICAgcmV0dXJuIHJlbGF0aW9uc2hpcEV4aXN0czsKIH0KIAog
Ym9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RG9tYWluUmVs
YXRpb25zaGlwKFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCYgc3RhdGVtZW50LCB1bnNpZ25lZCBk
b21haW5JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lKQpAQCAtMzk5LDcgKzQw
Niw3IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydERv
bWFpblJlbGF0aW9uc2hpcChXZWJDb3JlOjpTUUxpCiAgICAgaWYgKHN0YXRlbWVudC5iaW5kSW50
KDEsIGRvbWFpbklEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc3RhdGVtZW50LmJpbmRUZXh0
KDIsIHRvcEZyYW1lLnN0cmluZygpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc3RhdGVtZW50
LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3
b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV9pbnNlcnRE
b21haW5SZWxhdGlvbnNoaXBTdGF0ZW1lbnQgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6
ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1faW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwU3Rh
dGVtZW50IGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtNDE2LDcgKzQyMyw3IEBAIGJvb2wg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNvbmZpcm1Eb21haW5Eb2VzTm90
RXhpc3QoY29uc3QgUmVnaXN0CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAg
ICBpZiAobV9kb21haW5JREZyb21TdHJpbmdTdGF0ZW1lbnQuYmluZFRleHQoMSwgZG9tYWluLnN0
cmluZygpKSAhPSBTUUxJVEVfT0spIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29y
aywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNvbmZpcm1Eb21h
aW5Eb2VzTm90RXhpc3QgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMi
LCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0df
RVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OmNvbmZpcm1Eb21haW5Eb2VzTm90RXhpc3QgZmFpbGVkIHRvIGJpbmQs
IGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1z
ZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CkBAIC00MzQsMTcgKzQ0MSwyMSBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpjb25maXJtRG9tYWluRG9lc05vdEV4aXN0KGNvbnN0IFJlZ2lzdAog
fQogI2VuZGlmCiAKLXVuc2lnbmVkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
Ojpkb21haW5JRChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKSBjb25zdAorT3B0aW9u
YWw8dW5zaWduZWQ+IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkb21haW5J
RChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKSBjb25zdAogewogICAgIEFTU0VSVCgh
UnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgdW5zaWduZWQgZG9tYWluSUQgPSAwOwogCi0gICAg
aWYgKG1fZG9tYWluSURGcm9tU3RyaW5nU3RhdGVtZW50LmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJp
bmcoKSkgIT0gU1FMSVRFX09LCi0gICAgICAgIHx8IG1fZG9tYWluSURGcm9tU3RyaW5nU3RhdGVt
ZW50LnN0ZXAoKSAhPSBTUUxJVEVfUk9XKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5l
dHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkb21haW5J
REZyb21TdHJpbmcgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9k
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgICAgICByZXR1cm4gZG9tYWluSUQ7CisgICAgaWYgKG1fZG9tYWluSURGcm9tU3RyaW5nU3Rh
dGVtZW50LmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LKSB7CisgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkb21haW5JREZyb21TdHJpbmcgZmFpbGVk
LCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JN
c2coKSk7CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgfQorICAgIAorICAgIGlm
IChtX2RvbWFpbklERnJvbVN0cmluZ1N0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX1JPVykgewor
ICAgICAgICBpbnQgcmVzZXRSZXN1bHQgPSBtX2RvbWFpbklERnJvbVN0cmluZ1N0YXRlbWVudC5y
ZXNldCgpOworICAgICAgICBBU1NFUlRfVU5VU0VEKHJlc2V0UmVzdWx0LCByZXNldFJlc3VsdCA9
PSBTUUxJVEVfT0spOworICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIAogICAg
IGRvbWFpbklEID0gbV9kb21haW5JREZyb21TdHJpbmdTdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDAp
OwpAQCAtNDU4LDI4ICs0NjksMzEgQEAgdW5zaWduZWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OmRvbWFpbklEKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJgogdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlw
cyhjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiBsb2FkU3RhdGlzdGljcykKIHsKICAgICBB
U1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKLQogICAgIGF1dG8gcmVnaXN0cmFibGVEb21haW5J
RCA9IGRvbWFpbklEKGxvYWRTdGF0aXN0aWNzLnJlZ2lzdHJhYmxlRG9tYWluKTsKKyAgICAKKyAg
ICBpZiAoIXJlZ2lzdHJhYmxlRG9tYWluSUQpCisgICAgICAgIHJldHVybjsKKyAgICAKICAgICBm
b3IgKGF1dG8mIHRvcEZyYW1lRG9tYWluIDogbG9hZFN0YXRpc3RpY3Muc3RvcmFnZUFjY2Vzc1Vu
ZGVyVG9wRnJhbWVEb21haW5zKQotICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9z
dG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnNTdGF0ZW1lbnQsIHJlZ2lzdHJhYmxlRG9t
YWluSUQsIHRvcEZyYW1lRG9tYWluKTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlw
KG1fc3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zU3RhdGVtZW50LCByZWdpc3RyYWJs
ZURvbWFpbklELnZhbHVlKCksIHRvcEZyYW1lRG9tYWluKTsKIAogICAgIGZvciAoYXV0byYgdG9E
b21haW4gOiBsb2FkU3RhdGlzdGljcy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvKQotICAgICAg
ICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvLCBy
ZWdpc3RyYWJsZURvbWFpbklELCB0b0RvbWFpbik7CisgICAgICAgIGluc2VydERvbWFpblJlbGF0
aW9uc2hpcChtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8sIHJlZ2lzdHJhYmxlRG9tYWluSUQu
dmFsdWUoKSwgdG9Eb21haW4pOwogICAgIAogICAgIGZvciAoYXV0byYgZnJvbURvbWFpbiA6IGxv
YWRTdGF0aXN0aWNzLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSkKLSAgICAgICAgaW5zZXJ0
RG9tYWluUmVsYXRpb25zaGlwKG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLCByZWdpc3Ry
YWJsZURvbWFpbklELCBmcm9tRG9tYWluKTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25z
aGlwKG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLCByZWdpc3RyYWJsZURvbWFpbklELnZh
bHVlKCksIGZyb21Eb21haW4pOwogICAgIAogICAgIGZvciAoYXV0byYgdG9wRnJhbWVEb21haW4g
OiBsb2FkU3RhdGlzdGljcy5zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zKQotICAgICAgICBp
bnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zLCBy
ZWdpc3RyYWJsZURvbWFpbklELCB0b3BGcmFtZURvbWFpbik7CisgICAgICAgIGluc2VydERvbWFp
blJlbGF0aW9uc2hpcChtX3N1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMsIHJlZ2lzdHJhYmxl
RG9tYWluSUQudmFsdWUoKSwgdG9wRnJhbWVEb21haW4pOwogICAgIAogICAgIGZvciAoYXV0byYg
dG9wRnJhbWVEb21haW4gOiBsb2FkU3RhdGlzdGljcy5zdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVE
b21haW5zKQotICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVu
ZGVyVG9wRnJhbWVEb21haW5zLCByZWdpc3RyYWJsZURvbWFpbklELCB0b3BGcmFtZURvbWFpbik7
CisgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5kZXJUb3BG
cmFtZURvbWFpbnMsIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgdG9wRnJhbWVEb21haW4p
OwogICAgIAogICAgIGZvciAoYXV0byYgdG9Eb21haW4gOiBsb2FkU3RhdGlzdGljcy5zdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0c1RvKQotICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAo
bV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLCByZWdpc3RyYWJsZURvbWFpbklELCB0b0Rv
bWFpbik7CisgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RzVG8sIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgdG9Eb21haW4pOwog
ICAgIAogICAgIGZvciAoYXV0byYgZnJvbURvbWFpbiA6IGxvYWRTdGF0aXN0aWNzLnN1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSkKLSAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlw
KG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLCByZWdpc3RyYWJsZURvbWFpbklELCBm
cm9tRG9tYWluKTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fc3VicmVzb3Vy
Y2VVbmlxdWVSZWRpcmVjdHNGcm9tLCByZWdpc3RyYWJsZURvbWFpbklELnZhbHVlKCksIGZyb21E
b21haW4pOwogfQogCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpw
b3B1bGF0ZUZyb21NZW1vcnlTdG9yZShjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5
U3RvcmUmIG1lbW9yeVN0b3JlKQpAQCAtNDk3LDggKzUxMSw2IEBAIHZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBvcHVsYXRlRnJvbU1lbW9yeVN0b3JlKGNvbnN0IFJl
c291cmNlCiAgICAgLy8gY2FuIHJlZmVyIHRvIHRoZSBPYnNlcnZlZERvbWFpbiB0YWJsZSBlbnRy
aWVzCiAgICAgZm9yIChhdXRvJiBzdGF0aXN0aWMgOiBzdGF0aXN0aWNzTWFwKQogICAgICAgICBp
bnNlcnREb21haW5SZWxhdGlvbnNoaXBzKHN0YXRpc3RpYy52YWx1ZSk7Ci0KLSAgICBtX2RhdGFi
YXNlLnJ1blZhY3V1bUNvbW1hbmQoKTsKIH0KIAogdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6Y2FsY3VsYXRlQW5kU3VibWl0VGVsZW1ldHJ5KCkgY29uc3QKQEAgLTUy
OSw3ICs1NDEsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpp
bmNyZW1lbnRSZWNvcmRzRGVsZXRlZENvdW50Rm9yRG9tYWlucwogICAgIFNRTGl0ZVN0YXRlbWVu
dCBkb21haW5zVG9VcGRhdGVTdGF0ZW1lbnQobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiVVBEQVRF
IE9ic2VydmVkRG9tYWlucyBTRVQgZGF0YVJlY29yZHNSZW1vdmVkID0gZGF0YVJlY29yZHNSZW1v
dmVkICsgMSBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiBJTiAoIiwgZG9tYWluc1RvU3RyaW5nKGRv
bWFpbnMpLCAiKSIpKTsKICAgICBpZiAoZG9tYWluc1RvVXBkYXRlU3RhdGVtZW50LnByZXBhcmUo
KSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgZG9tYWluc1RvVXBkYXRlU3RhdGVtZW50LnN0ZXAo
KSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAi
JXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5jcmVtZW50U3RhdGlz
dGljc0ZvckRvbWFpbnMgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lG
X0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjppbmNyZW1lbnRTdGF0aXN0aWNzRm9yRG9tYWlucyBmYWlsZWQsIGVycm9yIG1lc3Nh
Z2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogfQpAQCAtNTQ2LDI0ICs1NTgsMzQgQEAg
dW5zaWduZWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlY3Vyc2l2ZWx5
RmluZE5vblByZXZhbGVudERvbWFpbnMKICAgICArK251bWJlck9mUmVjdXJzaXZlQ2FsbHM7CiAK
ICAgICBTdGRTZXQ8dW5zaWduZWQ+IG5ld2x5SWRlbnRpZmllZERvbWFpbnM7Ci0gICAgU1FMaXRl
U3RhdGVtZW50IGZpbmRTdWJyZXNvdXJjZXMobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNU
IFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQgZnJvbSBTdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20gSU5ORVIgSk9JTiBPYnNlcnZlZERvbWFpbnMgT04gT2Jz
ZXJ2ZWREb21haW5zLmRvbWFpbklEID0gU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLmZy
b21Eb21haW5JRCBXSEVSRSBzdWJyZXNvdXJjZURvbWFpbklEID0gIiwgU3RyaW5nOjpudW1iZXIo
cHJpbWFyeURvbWFpbklEKSwgIkFORCBPYnNlcnZlZERvbWFpbnMuaXNQcmV2YWxlbnQgPSAwIikp
OwotICAgIGlmIChmaW5kU3VicmVzb3VyY2VzLnByZXBhcmUoKSA9PSBTUUxJVEVfT0spIHsKLSAg
ICAgICAgd2hpbGUgKGZpbmRTdWJyZXNvdXJjZXMuc3RlcCgpID09IFNRTElURV9ST1cpIHsKLSAg
ICAgICAgICAgIGF1dG8gbmV3RG9tYWluSUQgPSBmaW5kU3VicmVzb3VyY2VzLmdldENvbHVtbklu
dCgwKTsKLSAgICAgICAgICAgIGF1dG8gaW5zZXJ0UmVzdWx0ID0gbm9uUHJldmFsZW50UmVkaXJl
Y3Rpb25Tb3VyY2VzLmluc2VydChuZXdEb21haW5JRCk7Ci0gICAgICAgICAgICBpZiAoaW5zZXJ0
UmVzdWx0LnNlY29uZCkKLSAgICAgICAgICAgICAgICBuZXdseUlkZW50aWZpZWREb21haW5zLmlu
c2VydChuZXdEb21haW5JRCk7Ci0gICAgICAgIH0KKyAgICBTUUxpdGVTdGF0ZW1lbnQgZmluZFN1
YnJlc291cmNlcyhtX2RhdGFiYXNlLCAiU0VMRUNUIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3Rz
RnJvbS5mcm9tRG9tYWluSUQgZnJvbSBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20gSU5O
RVIgSk9JTiBPYnNlcnZlZERvbWFpbnMgT04gT2JzZXJ2ZWREb21haW5zLmRvbWFpbklEID0gU3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5JRCBXSEVSRSBzdWJyZXNvdXJj
ZURvbWFpbklEID0gPyBBTkQgT2JzZXJ2ZWREb21haW5zLmlzUHJldmFsZW50ID0gMCJfcyk7Cisg
ICAgaWYgKGZpbmRTdWJyZXNvdXJjZXMucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICB8
fCBmaW5kU3VicmVzb3VyY2VzLmJpbmRJbnQoMSwgcHJpbWFyeURvbWFpbklEKSAhPSBTUUxJVEVf
T0spIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwg
IiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlY3Vyc2l2ZWx5Rmlu
ZE5vblByZXZhbGVudERvbWFpbnNUaGF0UmVkaXJlY3RlZFRvVGhpc0RvbWFpbiBmYWlsZWQsIGVy
cm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygp
KTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiAwOworICAg
IH0KKyAgICAKKyAgICB3aGlsZSAoZmluZFN1YnJlc291cmNlcy5zdGVwKCkgPT0gU1FMSVRFX1JP
VykgeworICAgICAgICBpbnQgbmV3RG9tYWluSUQgPSBmaW5kU3VicmVzb3VyY2VzLmdldENvbHVt
bkludCgwKTsKKyAgICAgICAgYXV0byBpbnNlcnRSZXN1bHQgPSBub25QcmV2YWxlbnRSZWRpcmVj
dGlvblNvdXJjZXMuaW5zZXJ0KG5ld0RvbWFpbklEKTsKKyAgICAgICAgaWYgKGluc2VydFJlc3Vs
dC5zZWNvbmQpCisgICAgICAgICAgICBuZXdseUlkZW50aWZpZWREb21haW5zLmluc2VydChuZXdE
b21haW5JRCk7CiAgICAgfQogCi0gICAgU1FMaXRlU3RhdGVtZW50IGZpbmRUb3BGcmFtZXMobV9k
YXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbS5m
cm9tRG9tYWluSUQgZnJvbSBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20gSU5ORVIgSk9JTiBP
YnNlcnZlZERvbWFpbnMgT04gT2JzZXJ2ZWREb21haW5zLmRvbWFpbklEID0gVG9wRnJhbWVVbmlx
dWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5JRCBXSEVSRSB0YXJnZXREb21haW5JRCA9ICIsIFN0
cmluZzo6bnVtYmVyKHByaW1hcnlEb21haW5JRCksICJBTkQgT2JzZXJ2ZWREb21haW5zLmlzUHJl
dmFsZW50ID0gMCIpKTsKLSAgICBpZiAoZmluZFRvcEZyYW1lcy5wcmVwYXJlKCkgPT0gU1FMSVRF
X09LKSB7Ci0gICAgICAgIHdoaWxlIChmaW5kVG9wRnJhbWVzLnN0ZXAoKSA9PSBTUUxJVEVfUk9X
KSB7Ci0gICAgICAgICAgICBhdXRvIG5ld0RvbWFpbklEID0gZmluZFRvcEZyYW1lcy5nZXRDb2x1
bW5JbnQoMCk7Ci0gICAgICAgICAgICBhdXRvIGluc2VydFJlc3VsdCA9IG5vblByZXZhbGVudFJl
ZGlyZWN0aW9uU291cmNlcy5pbnNlcnQobmV3RG9tYWluSUQpOwotICAgICAgICAgICAgaWYgKGlu
c2VydFJlc3VsdC5zZWNvbmQpCi0gICAgICAgICAgICAgICAgbmV3bHlJZGVudGlmaWVkRG9tYWlu
cy5pbnNlcnQobmV3RG9tYWluSUQpOwotICAgICAgICB9CisgICAgU1FMaXRlU3RhdGVtZW50IGZp
bmRUb3BGcmFtZXMobV9kYXRhYmFzZSwgIlNFTEVDVCBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zy
b20uZnJvbURvbWFpbklEIGZyb20gVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tIElOTkVSIEpP
SU4gT2JzZXJ2ZWREb21haW5zIE9OIE9ic2VydmVkRG9tYWlucy5kb21haW5JRCA9IFRvcEZyYW1l
VW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQgV0hFUkUgdGFyZ2V0RG9tYWluSUQgPSA/
IEFORCBPYnNlcnZlZERvbWFpbnMuaXNQcmV2YWxlbnQgPSAwIl9zKTsKKyAgICBpZiAoZmluZFRv
cEZyYW1lcy5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IGZpbmRUb3BGcmFtZXMu
YmluZEludCgxLCBwcmltYXJ5RG9tYWluSUQpICE9IFNRTElURV9PSykgeworICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVjdXJzaXZlbHlGaW5kTm9uUHJldmFsZW50RG9tYWlu
c1RoYXRSZWRpcmVjdGVkVG9UaGlzRG9tYWluIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJs
aWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIAorICAgIHdoaWxl
IChmaW5kVG9wRnJhbWVzLnN0ZXAoKSA9PSBTUUxJVEVfUk9XKSB7CisgICAgICAgIGludCBuZXdE
b21haW5JRCA9IGZpbmRUb3BGcmFtZXMuZ2V0Q29sdW1uSW50KDApOworICAgICAgICBhdXRvIGlu
c2VydFJlc3VsdCA9IG5vblByZXZhbGVudFJlZGlyZWN0aW9uU291cmNlcy5pbnNlcnQobmV3RG9t
YWluSUQpOworICAgICAgICBpZiAoaW5zZXJ0UmVzdWx0LnNlY29uZCkKKyAgICAgICAgICAgIG5l
d2x5SWRlbnRpZmllZERvbWFpbnMuaW5zZXJ0KG5ld0RvbWFpbklEKTsKICAgICB9CiAKICAgICBp
ZiAobmV3bHlJZGVudGlmaWVkRG9tYWlucy5lbXB0eSgpKQpAQCAtNjA3LDcgKzYyOSw3IEBAIHZv
aWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1hcmtBc1ByZXZhbGVudElm
SGFzUmVkaXJlY3RlZFRvUHJldmFsCiAgICAgU1FMaXRlU3RhdGVtZW50IG1hcmtQcmV2YWxlbnRT
dGF0ZW1lbnQobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiVVBEQVRFIE9ic2VydmVkRG9tYWlucyBT
RVQgaXNQcmV2YWxlbnQgPSAxIFdIRVJFIGRvbWFpbklEIElOICgiLCBidWlsZExpc3QoV1RGOjpJ
dGVyYXRvclJhbmdlPFN0ZFNldDx1bnNpZ25lZD46Oml0ZXJhdG9yPihwcmV2YWxlbnREdWVUb1Jl
ZGlyZWN0LmJlZ2luKCksIHByZXZhbGVudER1ZVRvUmVkaXJlY3QuZW5kKCkpKSwgIikiKSk7CiAg
ICAgaWYgKG1hcmtQcmV2YWxlbnRTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwogICAg
ICAgICB8fCBtYXJrUHJldmFsZW50U3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewot
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWFya0FzUHJldmFsZW50SWZIYXNSZWRpcmVjdGVkVG9QcmV2
YWxlbnQgZmFpbGVkIHRvIGV4ZWN1dGUsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlz
LCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Jf
SUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6Om1hcmtBc1ByZXZhbGVudElmSGFzUmVkaXJlY3RlZFRvUHJldmFsZW50IGZhaWxl
ZCB0byBleGVjdXRlLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFz
ZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0K
IH0KQEAgLTY1Nyw3ICs2NzksNyBAQCBIYXNoTWFwPHVuc2lnbmVkLCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6Tm90VmVyeVByZXZhbGVudFJlc291cmNlcwogICAgICAgICB9
CiAgICAgfQogCi0gICAgU1FMaXRlU3RhdGVtZW50IHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFp
bnNDb3VudFN0YXRlbWVudChtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1Qgc3VicmVzb3Vy
Y2VEb21haW5JRCwgQ09VTlQodG9wRnJhbWVEb21haW5JRCkgRlJPTSBTdWJyZXNvdXJjZVVuZGVy
VG9wRnJhbWVEb21haW5zIFdIRVJFIHN1YnJlc291cmNlRG9tYWluSUQgSU4gKCIsIGRvbWFpbklE
c09mSW50ZXJlc3QsICIpIEdST1VQIEJZIHN1YnJlc291cmNlRG9tYWluSUQiKSk7CisgICAgU1FM
aXRlU3RhdGVtZW50IHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNDb3VudFN0YXRlbWVudCht
X2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1Qgc3ViZnJhbWVEb21haW5JRCwgQ09VTlQodG9w
RnJhbWVEb21haW5JRCkgRlJPTSBTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJFIHN1
YmZyYW1lRG9tYWluSUQgSU4gKCIsIGRvbWFpbklEc09mSW50ZXJlc3QsICIpIEdST1VQIEJZIHN1
YmZyYW1lRG9tYWluSUQiKSk7CiAgICAgaWYgKHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnND
b3VudFN0YXRlbWVudC5wcmVwYXJlKCkgPT0gU1FMSVRFX09LKSB7CiAgICAgICAgIHdoaWxlIChz
dWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnRTdGF0ZW1lbnQuc3RlcCgpID09IFNRTElU
RV9ST1cpIHsKICAgICAgICAgICAgIHVuc2lnbmVkIGRvbWFpbklEID0gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNDb3VudFN0YXRlbWVudC5nZXRDb2x1
bW5JbnQoMCkpOwpAQCAtNjg3LDEyICs3MDksMTIgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6cmVjbGFzc2lmeVJlc291cmNlcygpCiAgICAgYXV0byBub3RWZXJ5
UHJldmFsZW50UmVzb3VyY2VzID0gZmluZE5vdFZlcnlQcmV2YWxlbnRSZXNvdXJjZXMoKTsKIAog
ICAgIGZvciAoYXV0byYgcmVzb3VyY2VTdGF0aXN0aWMgOiBub3RWZXJ5UHJldmFsZW50UmVzb3Vy
Y2VzLnZhbHVlcygpKSB7Ci0gICAgICAgIGlmIChzaG91bGRTa2lwKHJlc291cmNlU3RhdGlzdGlj
LnJlZ2lzdGVyYWJsZURvbWFpbikpCisgICAgICAgIGlmIChzaG91bGRTa2lwKHJlc291cmNlU3Rh
dGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAg
ICAgIGF1dG8gbmV3UHJldmFsZW5jZSA9IGNsYXNzaWZpZXIoKS5jYWxjdWxhdGVSZXNvdXJjZVBy
ZXZhbGVuY2UocmVzb3VyY2VTdGF0aXN0aWMuc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlu
c0NvdW50LCByZXNvdXJjZVN0YXRpc3RpYy5zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvQ291
bnQsIHJlc291cmNlU3RhdGlzdGljLnN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNDb3VudCwg
cmVzb3VyY2VTdGF0aXN0aWMudG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb0NvdW50LCByZXNvdXJj
ZVN0YXRpc3RpYy5wcmV2YWxlbmNlKTsKICAgICAgICAgaWYgKG5ld1ByZXZhbGVuY2UgIT0gcmVz
b3VyY2VTdGF0aXN0aWMucHJldmFsZW5jZSkKLSAgICAgICAgICAgIHNldFByZXZhbGVudFJlc291
cmNlKHJlc291cmNlU3RhdGlzdGljLnJlZ2lzdGVyYWJsZURvbWFpbiwgbmV3UHJldmFsZW5jZSk7
CisgICAgICAgICAgICBzZXRQcmV2YWxlbnRSZXNvdXJjZShyZXNvdXJjZVN0YXRpc3RpYy5yZWdp
c3RyYWJsZURvbWFpbiwgbmV3UHJldmFsZW5jZSk7CiAgICAgfQogfQogCkBAIC03NzUsMTEgKzc5
NywxMyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0
U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmCiAgICAgaWYgKHVzZXJXYXNQcm9tcHRlZEVh
cmxpZXIgPT0gU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpZZXMpCiAgICAgICAgIFJFTEVB
U0VfTE9HX0lORk9fSUYoZGVidWdMb2dnaW5nRW5hYmxlZCgpLCBJVFBEZWJ1ZywgIlN0b3JhZ2Ug
YWNjZXNzIHdhcyBncmFudGVkIHRvICV7cHVibGljfXMgdW5kZXIgJXtwdWJsaWN9cy4iLCBzdWJG
cmFtZURvbWFpbi5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCB0b3BGcmFtZURvbWFpbi5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKIAotICAgIFNRTGl0ZVN0YXRlbWVudCBpbmNyZW1lbnRTdG9yYWdl
QWNjZXNzKG1fZGF0YWJhc2UsIG1ha2VTdHJpbmcoIlVQREFURSBPYnNlcnZlZERvbWFpbnMgU0VU
IHRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VBY2Nlc3NBUEkgPSB0aW1lc0Fj
Y2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9TdG9yYWdlQWNjZXNzQVBJICsgMSBXSEVSRSBkb21haW5J
RCA9ICIsIFN0cmluZzo6bnVtYmVyKHN1YkZyYW1lU3RhdHVzLnNlY29uZCkpKTsKKyAgICBTUUxp
dGVTdGF0ZW1lbnQgaW5jcmVtZW50U3RvcmFnZUFjY2VzcyhtX2RhdGFiYXNlLCAiVVBEQVRFIE9i
c2VydmVkRG9tYWlucyBTRVQgdGltZXNBY2Nlc3NlZEFzRmlyc3RQYXJ0eUR1ZVRvU3RvcmFnZUFj
Y2Vzc0FQSSA9IHRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VBY2Nlc3NBUEkg
KyAxIFdIRVJFIGRvbWFpbklEID0gPyIpOwogICAgIGlmIChpbmNyZW1lbnRTdG9yYWdlQWNjZXNz
LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgaW5jcmVtZW50U3RvcmFnZUFjY2Vz
cy5iaW5kSW50KDEsIHN1YkZyYW1lU3RhdHVzLnNlY29uZCkgIT0gU1FMSVRFX09LCiAgICAgICAg
IHx8IGluY3JlbWVudFN0b3JhZ2VBY2Nlc3Muc3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyBmYWlsZWQsIGVycm9yIG1lc3Nh
Z2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzIGZhaWxl
ZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9y
TXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICAKICAgICBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChXVEZNb3ZlKHN1YkZy
YW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURvbWFpbiksIGZyYW1lSUQsIHBhZ2VJRCwgdXNl
cldhc1Byb21wdGVkRWFybGllciwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildIChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCB3YXNHcmFudGVkKSBtdXRhYmxl
IHsKQEAgLTg1MSwxMCArODc1LDEzIEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OmdyYW5kZmF0aGVyRGF0YUZvckRvbWFpbnMoY29uc3QgSGFzaFNlCiB7CiAgICAg
QVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKKyAgICBmb3IgKGF1dG8mIHJlZ2lzdHJhYmxl
RG9tYWluIDogZG9tYWlucykKKyAgICAgICAgZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVn
aXN0cmFibGVEb21haW4ocmVnaXN0cmFibGVEb21haW4pOworCiAgICAgU1FMaXRlU3RhdGVtZW50
IGRvbWFpbnNUb1VwZGF0ZVN0YXRlbWVudChtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJVUERBVEUg
T2JzZXJ2ZWREb21haW5zIFNFVCBncmFuZGZhdGhlcmVkID0gMSBXSEVSRSByZWdpc3RyYWJsZURv
bWFpbiBJTiAoIiwgZG9tYWluc1RvU3RyaW5nKGRvbWFpbnMpLCAiKSIpKTsKICAgICBpZiAoZG9t
YWluc1RvVXBkYXRlU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwg
ZG9tYWluc1RvVXBkYXRlU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6Z3JhbmRmYXRoZXJEYXRhRm9yRG9tYWlucyBmYWlsZWQsIGVycm9yIG1l
c3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW5kZmF0aGVyRGF0YUZvckRvbWFp
bnMgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5s
YXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIH0K
QEAgLTg5NCw3ICs5MjEsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgUmVnaXN0cmFibGVEbwogICAgIGlmICghaXNN
YWluRnJhbWUgJiYgIShhcmVUYXJnZXRBbmRUb3BGcmFtZURvbWFpbnNTYW1lU2l0ZSB8fCBhcmVU
YXJnZXRBbmRTb3VyY2VEb21haW5zU2FtZVNpdGUpKSB7CiAgICAgICAgIGF1dG8gdGFyZ2V0UmVz
dWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4odGFyZ2V0
RG9tYWluKTsKICAgICAgICAgdXBkYXRlTGFzdFNlZW4odGFyZ2V0RG9tYWluLCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzOjpyZWR1Y2VUaW1lUmVzb2x1dGlvbihXYWxsVGltZTo6bm93KCkpKTsKLQor
ICAgICAgICBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0b3BG
cmFtZURvbWFpbik7CiAgICAgICAgIGlmICghcmVsYXRpb25zaGlwRXhpc3RzKG1fc3ViZnJhbWVV
bmRlclRvcEZyYW1lRG9tYWluRXhpc3RzLCB0YXJnZXRSZXN1bHQuc2Vjb25kLCB0b3BGcmFtZURv
bWFpbikpIHsKICAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YmZyYW1l
VW5kZXJUb3BGcmFtZURvbWFpbnMsIHRhcmdldFJlc3VsdC5zZWNvbmQsIHRvcEZyYW1lRG9tYWlu
KTsKICAgICAgICAgICAgIHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7CkBAIC05MDQsMjQg
KzkzMSwyNSBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dG
cmFtZU5hdmlnYXRpb24oY29uc3QgUmVnaXN0cmFibGVEbwogICAgIGlmIChpc1JlZGlyZWN0ICYm
ICFhcmVUYXJnZXRBbmRTb3VyY2VEb21haW5zU2FtZVNpdGUpIHsKICAgICAgICAgaWYgKGlzTWFp
bkZyYW1lKSB7CiAgICAgICAgICAgICBhdXRvIHJlZGlyZWN0aW5nRG9tYWluUmVzdWx0ID0gZW5z
dXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4oc291cmNlRG9tYWluKTsK
KyAgICAgICAgICAgIGF1dG8gdGFyZ2V0UmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNz
Rm9yUmVnaXN0cmFibGVEb21haW4odGFyZ2V0RG9tYWluKTsKKwogICAgICAgICAgICAgaWYgKCFy
ZWxhdGlvbnNoaXBFeGlzdHMobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvRXhpc3RzLCByZWRp
cmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQsIHRhcmdldERvbWFpbikpIHsKICAgICAgICAgICAg
ICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1Rv
LCByZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQsIHRhcmdldERvbWFpbik7CiAgICAgICAg
ICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgYXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NG
b3JSZWdpc3RyYWJsZURvbWFpbih0YXJnZXREb21haW4pOwogICAgICAgICAgICAgaWYgKCFyZWxh
dGlvbnNoaXBFeGlzdHMobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb21FeGlzdHMsIHRhcmdl
dFJlc3VsdC5zZWNvbmQsIHNvdXJjZURvbWFpbikpIHsKICAgICAgICAgICAgICAgICBpbnNlcnRE
b21haW5SZWxhdGlvbnNoaXAobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHRhcmdldFJl
c3VsdC5zZWNvbmQsIHNvdXJjZURvbWFpbik7CiAgICAgICAgICAgICAgICAgc3RhdGlzdGljc1dl
cmVVcGRhdGVkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIGF1dG8gcmVkaXJlY3RpbmdEb21haW5SZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRp
c3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihzb3VyY2VEb21haW4pOworICAgICAgICAgICAgYXV0
byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURv
bWFpbih0YXJnZXREb21haW4pOwogICAgICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMo
bV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvRXhpc3RzLCByZWRpcmVjdGluZ0RvbWFpblJl
c3VsdC5zZWNvbmQsIHRhcmdldERvbWFpbikpIHsKICAgICAgICAgICAgICAgICBpbnNlcnREb21h
aW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLCByZWRpcmVjdGlu
Z0RvbWFpblJlc3VsdC5zZWNvbmQsIHRhcmdldERvbWFpbik7CiAgICAgICAgICAgICAgICAgc3Rh
dGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAg
YXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJs
ZURvbWFpbih0YXJnZXREb21haW4pOwogICAgICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlz
dHMobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb21FeGlzdHMsIHRhcmdldFJlc3VsdC5z
ZWNvbmQsIHNvdXJjZURvbWFpbikpIHsKICAgICAgICAgICAgICAgICBpbnNlcnREb21haW5SZWxh
dGlvbnNoaXAobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHRhcmdldFJlc3VsdC5z
ZWNvbmQsIHNvdXJjZURvbWFpbik7CiAgICAgICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRh
dGVkID0gdHJ1ZTsKQEAgLTk1MCwxMSArOTc4LDExIEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OnNldFVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURv
CiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBpZiAobV9tb3N0UmVj
ZW50VXNlckludGVyYWN0aW9uU3RhdGVtZW50LmJpbmRJbnQoMSwgaGFkVXNlckludGVyYWN0aW9u
KQorICAgIGlmIChtX21vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuYmluZEludCgx
LCBoYWRVc2VySW50ZXJhY3Rpb24pICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX21vc3RSZWNl
bnRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuYmluZERvdWJsZSgyLCBtb3N0UmVjZW50SW50ZXJh
Y3Rpb24uc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKSAhPSBTUUxJVEVfT0sKICAgICAgICAg
fHwgbV9tb3N0UmVjZW50VXNlckludGVyYWN0aW9uU3RhdGVtZW50LmJpbmRUZXh0KDMsIGRvbWFp
bi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fbW9zdFJlY2VudFVzZXJJbnRl
cmFjdGlvblN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OnNldFVzZXJJbnRlcmFjdGlvbiwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRo
aXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJP
Ul9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6c2V0VXNlckludGVyYWN0aW9uLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31z
IiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtOTc4LDEwICsxMDA2LDExIEBA
IHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyVXNlckludGVy
YWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlCiAgICAgYXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVS
ZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihkb21haW4pOwogICAgIHNldFVz
ZXJJbnRlcmFjdGlvbihkb21haW4sIGZhbHNlLCB7IH0pOwogCi0gICAgU1FMaXRlU3RhdGVtZW50
IHJlbW92ZVN0b3JhZ2VBY2Nlc3MobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiREVMRVRFIEZST00g
U3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJFIGRvbWFpbklEID0gIiwgU3Ry
aW5nOjpudW1iZXIodGFyZ2V0UmVzdWx0LnNlY29uZCkpKTsKKyAgICBTUUxpdGVTdGF0ZW1lbnQg
cmVtb3ZlU3RvcmFnZUFjY2VzcyhtX2RhdGFiYXNlLCAiREVMRVRFIEZST00gU3RvcmFnZUFjY2Vz
c1VuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJFIGRvbWFpbklEID0gPyIpOwogICAgIGlmIChyZW1v
dmVTdG9yYWdlQWNjZXNzLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgcmVtb3Zl
U3RvcmFnZUFjY2Vzcy5iaW5kSW50KDEsIHRhcmdldFJlc3VsdC5zZWNvbmQpICE9IFNRTElURV9P
SwogICAgICAgICB8fCByZW1vdmVTdG9yYWdlQWNjZXNzLnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkg
ewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nVXNlckludGVyYWN0aW9uIGZhaWxlZCB0byBiaW5k
LCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JN
c2coKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQs
ICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dVc2VySW50ZXJh
Y3Rpb24gZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBt
X2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgfQogfQpAQCAtOTkxLDE1ICsxMDIwLDIwIEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6Omhhc0hhZFVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJs
CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBpZiAobV9oYWRVc2VySW50
ZXJhY3Rpb25TdGF0ZW1lbnQuYmluZFRleHQoMSwgZG9tYWluLnN0cmluZygpKSAhPSBTUUxJVEVf
T0sKLSAgICAgICAgfHwgbV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuc3RlcCgpICE9IFNR
TElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptX3VwZGF0ZVByZXZhbGVudFJlc291
cmNlU3RhdGVtZW50IGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1f
ZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgfHwgbV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElU
RV9ST1cpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25J
RCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1faGFkVXNlcklu
dGVyYWN0aW9uU3RhdGVtZW50IGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRo
aXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworCisgICAgICAgIGludCByZXNldFJlc3Vs
dCA9IG1faGFkVXNlckludGVyYWN0aW9uU3RhdGVtZW50LnJlc2V0KCk7CisgICAgICAgIEFTU0VS
VF9VTlVTRUQocmVzZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNRTElURV9PSyk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiA9ICEh
bV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDApOwotICAgIGlmICgh
aGFkVXNlckludGVyYWN0aW9uKQorICAgIGlmICghaGFkVXNlckludGVyYWN0aW9uKSB7CisgICAg
ICAgIGludCByZXNldFJlc3VsdCA9IG1faGFkVXNlckludGVyYWN0aW9uU3RhdGVtZW50LnJlc2V0
KCk7CisgICAgICAgIEFTU0VSVF9VTlVTRUQocmVzZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNR
TElURV9PSyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgCiAgICAgV2FsbFRp
bWUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29u
ZHMobV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuZ2V0Q29sdW1uRG91YmxlKDEpKTsKIApA
QCAtMTAxMSw2ICsxMDQ1LDkgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6aGFzSGFkVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmwKICAgICAgICAgaGFk
VXNlckludGVyYWN0aW9uID0gZmFsc2U7CiAgICAgfQogICAgIAorICAgIGludCByZXNldFJlc3Vs
dCA9IG1faGFkVXNlckludGVyYWN0aW9uU3RhdGVtZW50LnJlc2V0KCk7CisgICAgQVNTRVJUX1VO
VVNFRChyZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQgPT0gU1FMSVRFX09LKTsKKwogICAgIHJldHVy
biBoYWRVc2VySW50ZXJhY3Rpb247CiB9CiAKQEAgLTEwMjMsNyArMTA2MCw3IEBAIHZvaWQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFByZXZhbGVudFJlc291cmNlKGNv
bnN0IFJlZ2lzdHJhYmxlCiAgICAgaWYgKG1fdXBkYXRlUHJldmFsZW50UmVzb3VyY2VTdGF0ZW1l
bnQuYmluZEludCgxLCAxKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV91cGRhdGVQcmV2YWxl
bnRSZXNvdXJjZVN0YXRlbWVudC5iaW5kVGV4dCgyLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElU
RV9PSwogICAgICAgICB8fCBtX3VwZGF0ZVByZXZhbGVudFJlc291cmNlU3RhdGVtZW50LnN0ZXAo
KSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAi
JXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV91cGRhdGVQcmV2YWxl
bnRSZXNvdXJjZVN0YXRlbWVudCBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0
aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6Om1fdXBkYXRlUHJldmFsZW50UmVzb3VyY2VTdGF0ZW1lbnQgZmFpbGVkLCBl
cnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2co
KSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAg
fQpAQCAtMTAzNSw3ICsxMDcyLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6c2V0UHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGUKICAgICAgICAg
aWYgKG1fdXBkYXRlVmVyeVByZXZhbGVudFJlc291cmNlU3RhdGVtZW50LmJpbmRJbnQoMSwgMSkg
IT0gU1FMSVRFX09LCiAgICAgICAgICAgICB8fCBtX3VwZGF0ZVZlcnlQcmV2YWxlbnRSZXNvdXJj
ZVN0YXRlbWVudC5iaW5kVGV4dCgyLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSwogICAg
ICAgICAgICAgfHwgbV91cGRhdGVWZXJ5UHJldmFsZW50UmVzb3VyY2VTdGF0ZW1lbnQuc3RlcCgp
ICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3Jr
LCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV91cGRhdGVWZXJ5
UHJldmFsZW50UmVzb3VyY2VTdGF0ZW1lbnQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1Ymxp
Y31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV91cGRhdGVWZXJ5UHJldmFsZW50UmVzb3VyY2VTdGF0
ZW1lbnQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFz
ZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTA0NSw3ICsxMDgyLDcgQEAgdm9pZCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0UHJldmFsZW50UmVzb3VyY2Uo
Y29uc3QgUmVnaXN0cmFibGUKICAgICB9CiAKICAgICBTdGRTZXQ8dW5zaWduZWQ+IG5vblByZXZh
bGVudFJlZGlyZWN0aW9uU291cmNlczsKLSAgICByZWN1cnNpdmVseUZpbmROb25QcmV2YWxlbnRE
b21haW5zVGhhdFJlZGlyZWN0ZWRUb1RoaXNEb21haW4oZG9tYWluSUQoZG9tYWluKSwgbm9uUHJl
dmFsZW50UmVkaXJlY3Rpb25Tb3VyY2VzLCAwKTsKKyAgICByZWN1cnNpdmVseUZpbmROb25QcmV2
YWxlbnREb21haW5zVGhhdFJlZGlyZWN0ZWRUb1RoaXNEb21haW4oZG9tYWluSUQoZG9tYWluKS52
YWx1ZSgpLCBub25QcmV2YWxlbnRSZWRpcmVjdGlvblNvdXJjZXMsIDApOwogICAgIHNldERvbWFp
bnNBc1ByZXZhbGVudChXVEZNb3ZlKG5vblByZXZhbGVudFJlZGlyZWN0aW9uU291cmNlcykpOwog
fQogCkBAIC0xMDU2LDcgKzEwOTMsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpzZXREb21haW5zQXNQcmV2YWxlbnQoU3RkU2V0PHVuc2lnbmVkPgogICAgIFNR
TGl0ZVN0YXRlbWVudCBkb21haW5zVG9VcGRhdGVTdGF0ZW1lbnQobV9kYXRhYmFzZSwgbWFrZVN0
cmluZygiVVBEQVRFIE9ic2VydmVkRG9tYWlucyBTRVQgaXNQcmV2YWxlbnQgPSAxIFdIRVJFIGRv
bWFpbklEIElOICgiLCBidWlsZExpc3QoV1RGOjpJdGVyYXRvclJhbmdlPFN0ZFNldDx1bnNpZ25l
ZD46Oml0ZXJhdG9yPihkb21haW5zLmJlZ2luKCksIGRvbWFpbnMuZW5kKCkpKSwgIikiKSk7CiAg
ICAgaWYgKGRvbWFpbnNUb1VwZGF0ZVN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCiAg
ICAgICAgIHx8IGRvbWFpbnNUb1VwZGF0ZVN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUp
IHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldERvbWFpbnNBc1ByZXZhbGVudCBmYWlsZWQsIGVy
cm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygp
KTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVw
IC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldERvbWFpbnNBc1ByZXZh
bGVudCBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNl
Lmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CkBAIC0xMDc2LDkgKzExMTMsMTIgQEAgYm9vbCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlZGljYXRlVmFsdWVGb3JEb21haW4oV2ViQ29yZTo6
U1FMaXQKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAKICAgICBpZiAocHJl
ZGljYXRlU3RhdGVtZW50LmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09L
Ci0gICAgICAgIHx8IHByZWRpY2F0ZVN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsK
LSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZWRpY2F0ZVZhbHVlRm9yRG9tYWluIGZhaWxlZCB0byBi
aW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSk7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB8fCBwcmVk
aWNhdGVTdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ST1cpIHsKKworICAgICAgICBpbnQgcmVz
ZXRSZXN1bHQgPSBwcmVkaWNhdGVTdGF0ZW1lbnQucmVzZXQoKTsKKyAgICAgICAgQVNTRVJUX1VO
VVNFRChyZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQgPT0gU1FMSVRFX09LKTsKKworICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlZGljYXRlVmFsdWVGb3JEb21haW4gZmFpbGVk
IHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxh
c3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTEzNyw3
ICsxMTc3LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xl
YXJQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWIKICAgICAKICAgICBpZiAobV9jbGVh
clByZXZhbGVudFJlc291cmNlU3RhdGVtZW50LmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJpbmcoKSkg
IT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fY2xlYXJQcmV2YWxlbnRSZXNvdXJjZVN0YXRlbWVu
dC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0
d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyUHJl
dmFsZW50UmVzb3VyY2UsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFi
YXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dF
RChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmNsZWFyUHJldmFsZW50UmVzb3VyY2UsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlz
LCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMTU1LDcgKzExOTUsNyBAQCB2b2lkIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRHcmFuZGZhdGhlcmVkKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYQogICAgIGlmIChtX3VwZGF0ZUdyYW5kZmF0aGVyZWRTdGF0ZW1lbnQu
YmluZEludCgxLCB2YWx1ZSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fdXBkYXRlR3JhbmRm
YXRoZXJlZFN0YXRlbWVudC5iaW5kVGV4dCgxLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9P
SwogICAgICAgICB8fCBtX3VwZGF0ZUdyYW5kZmF0aGVyZWRTdGF0ZW1lbnQuc3RlcCgpICE9IFNR
TElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRHcmFuZGZhdGhlcmVkIGZhaWxl
ZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5s
YXN0RXJyb3JNc2coKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9z
ZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRH
cmFuZGZhdGhlcmVkIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwg
dGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTI0OCw3ICsxMjg4LDcgQEAgc3Rk
OjpwYWlyPFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpBZGRlZFJlY29yZCwg
dW5zaWduZWQ+IFJlc291cmNlTG8KICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAog
ICAgIGlmIChtX2RvbWFpbklERnJvbVN0cmluZ1N0YXRlbWVudC5iaW5kVGV4dCgxLCBkb21haW4u
c3RyaW5nKCkpICE9IFNRTElURV9PSykgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3
b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y3JlYXRlU2No
ZW1hIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2Uu
bGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1f
c2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZW5z
dXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4gZmFpbGVkLCBlcnJvciBt
ZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4geyBBZGRlZFJlY29y
ZDo6Tm8sIDAgfTsKICAgICB9CkBAIC0xMjY3LDEzICsxMzA3LDI1IEBAIHN0ZDo6cGFpcjxSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6QWRkZWRSZWNvcmQsIHVuc2lnbmVkPiBS
ZXNvdXJjZUxvCiAgICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBuZXdPYnNlcnZhdGlvbihkb21h
aW4pOwogICAgIGluc2VydE9ic2VydmVkRG9tYWluKG5ld09ic2VydmF0aW9uKTsKIAotICAgIHJl
dHVybiB7IEFkZGVkUmVjb3JkOjpZZXMsIGRvbWFpbklEKGRvbWFpbikgfTsKKyAgICByZXR1cm4g
eyBBZGRlZFJlY29yZDo6WWVzLCBkb21haW5JRChkb21haW4pLnZhbHVlKCkgfTsKK30KKwordm9p
ZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJEYXRhYmFzZUNvbnRl
bnRzKCkKK3sKKyAgICBtX2RhdGFiYXNlLmNsZWFyQWxsVGFibGVzKCk7CisKKyAgICBpZiAoIWNy
ZWF0ZVNjaGVtYSgpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAt
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhckRhdGFiYXNlQ29udGVu
dHMgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zLCBkYXRhYmFzZSBwYXRoOiAle3B1
YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSwgbV9zdG9yYWdlRGlyZWN0
b3J5UGF0aC51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OmNsZWFyKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAorICAgIGNsZWFy
RGF0YWJhc2VDb250ZW50cygpOwogICAgIGNsZWFyT3BlcmF0aW5nRGF0ZXMoKTsKIAogICAgIGF1
dG8gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwpAQCAtMTI4OSwxMiArMTM0MSwxNiBAQCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Q29va2llVHJlYXRtZW50UmVzdWx0IFJlc291cmNl
TG9hZFN0YXRpc3RpYwogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAg
U1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudChtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1Qg
aXNQcmV2YWxlbnQsIGhhZFVzZXJJbnRlcmFjdGlvbiBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVS
RSByZWdpc3RyYWJsZURvbWFpbiA9ICIsIGRvbWFpbi5zdHJpbmcoKSkpOworICAgIFNRTGl0ZVN0
YXRlbWVudCBzdGF0ZW1lbnQobV9kYXRhYmFzZSwgIlNFTEVDVCBpc1ByZXZhbGVudCwgaGFkVXNl
ckludGVyYWN0aW9uIEZST00gT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWlu
ID0gPyIpOwogICAgIGlmIChzdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwotICAgICAg
ICB8fCBzdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ST1cpIHsKLSAgICAgICAgcmV0dXJuIENv
b2tpZVRyZWF0bWVudFJlc3VsdDo6QWxsb3c7CisgICAgICAgIHx8IHN0YXRlbWVudC5iaW5kVGV4
dCgxLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSykgeworICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6Y29va2llVHJlYXRtZW50Rm9yT3JpZ2luIGZhaWxlZCB0byBiaW5k
LCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JN
c2coKSk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KICAgICAKKyAgICBp
ZiAoc3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfUk9XKQorICAgICAgICByZXR1cm4gQ29va2ll
VHJlYXRtZW50UmVzdWx0OjpBbGxvdzsKKyAgICAKICAgICBib29sIGlzUHJldmFsZW50ID0gISFz
dGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDApOwogICAgIGlmICghaXNQcmV2YWxlbnQpCiAgICAgICAg
IHJldHVybiBDb29raWVUcmVhdG1lbnRSZXN1bHQ6OkFsbG93OwpAQCAtMTMwNywxMCArMTM2Mywx
MiBAQCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6Omhhc1VzZXJHcmFudGVkUwogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNN
YWluKCkpOwogCi0gICAgYXV0byBmaXJzdFBhcnR5UHJpbWFyeURvbWFpbklEID0gZG9tYWluSUQo
Zmlyc3RQYXJ0eURvbWFpbik7CisgICAgYXV0byBmaXJzdFBhcnR5UHJpbWFyeURvbWFpbklEID0g
ZG9tYWluSUQoZmlyc3RQYXJ0eURvbWFpbikudmFsdWUoKTsKIAotICAgIFNRTGl0ZVN0YXRlbWVu
dCBzdGF0ZW1lbnQobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIENPVU5UKCopIEZST00g
U3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJFIGRvbWFpbklEID0gIiwgU3Ry
aW5nOjpudW1iZXIocmVxdWVzdGluZ0RvbWFpbklEKSwgIiBBTkQgdG9wTGV2ZWxEb21haW5JRCA9
ICIsIFN0cmluZzo6bnVtYmVyKGZpcnN0UGFydHlQcmltYXJ5RG9tYWluSUQpKSk7CisgICAgU1FM
aXRlU3RhdGVtZW50IHN0YXRlbWVudChtX2RhdGFiYXNlLCAiU0VMRUNUIENPVU5UKCopIEZST00g
U3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJFIGRvbWFpbklEID0gPyBBTkQg
dG9wTGV2ZWxEb21haW5JRCA9ID8iKTsKICAgICBpZiAoc3RhdGVtZW50LnByZXBhcmUoKSAhPSBT
UUxJVEVfT0sKKyAgICAgICAgfHwgc3RhdGVtZW50LmJpbmRJbnQoMSwgcmVxdWVzdGluZ0RvbWFp
bklEKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgc3RhdGVtZW50LmJpbmRJbnQoMiwgZmlyc3RQ
YXJ0eVByaW1hcnlEb21haW5JRCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHN0YXRlbWVudC5z
dGVwKCkgIT0gU1FMSVRFX1JPVykKICAgICAgICAgcmV0dXJuIFN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93bjo6Tm87CiAKQEAgLTE0MzgsNyArMTQ5Niw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyRXhwaXJlZFVzZXJJbnRlcmFjdGlvbnMoKQogCiAg
ICAgaWYgKGNsZWFyRXhwaXJlZEludGVyYWN0aW9uLnN0ZXAoKSAhPSBTUUxJVEVfRE9ORQogICAg
ICAgICB8fCByZW1vdmVTdG9yYWdlQWNjZXNzLnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6bG9nVXNlckludGVyYWN0aW9uIGZhaWxlZCB0byBiaW5kLCBlcnJv
ciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7
CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhckV4cGlyZWRVc2VySW50ZXJhY3Rpb25zIHN0YXRl
bWVudChzKSBmYWlsZWQgdG8gc3RlcCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMs
IG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICB9CiB9CkBAIC0xNDU3LDE0ICsxNTE1LDI0IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyR3JhbmRmYXRoZXJpbmcoVmVjdG9yPHVuc2lnbmVk
PiYmCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBpZiAoY2xlYXJHcmFuZGZhdGhlcmluZ1N0
YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNs
ZWFyR3JhbmRmYXRoZXJpbmcgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGlj
fXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyR3JhbmRmYXRoZXJpbmcgZmFpbGVkIHRvIGJpbmQsIGVy
cm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygp
KTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogfQogCi1ib29sIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0
YUZvcihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiByZXNvdXJjZVN0YXRpc3RpYywgYm9vbCBz
aG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSBjb25zdAorYm9vbCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVW5leHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9u
KGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmIHJlc291cmNlU3RhdGlzdGljLCBPcGVyYXRpbmdE
YXRlc1dpbmRvdyBvcGVyYXRpbmdEYXRlc1dpbmRvdykKIHsKLSAgICByZXR1cm4gIXJlc291cmNl
U3RhdGlzdGljLmhhZFVzZXJJbnRlcmFjdGlvbiAmJiAoIXNob3VsZENoZWNrRm9yR3JhbmRmYXRo
ZXJpbmcgfHwgIXJlc291cmNlU3RhdGlzdGljLmdyYW5kZmF0aGVyZWQpOworICAgIGlmIChyZXNv
dXJjZVN0YXRpc3RpYy5oYWRVc2VySW50ZXJhY3Rpb24gJiYgaGFzU3RhdGlzdGljc0V4cGlyZWQo
cmVzb3VyY2VTdGF0aXN0aWMubW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUsIG9wZXJhdGlu
Z0RhdGVzV2luZG93KSkgeworICAgICAgICBjbGVhclVzZXJJbnRlcmFjdGlvbihyZXNvdXJjZVN0
YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisKKyAgICByZXR1cm4gcmVzb3VyY2VTdGF0aXN0aWMuaGFkVXNlckludGVyYWN0aW9uOworfQor
Citib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRSZW1vdmVB
bGxXZWJzaXRlRGF0YUZvcihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiByZXNvdXJjZVN0YXRp
c3RpYywgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKQoreworICAgIHJldHVybiAh
aGFzSGFkVW5leHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9uKHJlc291cmNlU3RhdGlzdGljLCBP
cGVyYXRpbmdEYXRlc1dpbmRvdzo6TG9uZykgJiYgKCFzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVy
aW5nIHx8ICFyZXNvdXJjZVN0YXRpc3RpYy5ncmFuZGZhdGhlcmVkKTsKIH0KIAogYm9vbCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2hvdWxkUmVtb3ZlQWxsQnV0Q29va2ll
c0Zvcihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiByZXNvdXJjZVN0YXRpc3RpYywgYm9vbCBz
aG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSBjb25zdApAQCAtMTQ5Miw5ICsxNTYwLDkgQEAg
VmVjdG9yPHN0ZDo6cGFpcjxSZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZT4+
IFJlc291cmNlTG9hZFN0YXRpc3RpY3MKICAgICBWZWN0b3I8dW5zaWduZWQ+IGRvbWFpbklEc1Rv
Q2xlYXJHcmFuZGZhdGhlcmluZzsKICAgICBmb3IgKGF1dG8mIHN0YXRpc3RpYyA6IHByZXZhbGVu
dERvbWFpbnMpIHsKICAgICAgICAgaWYgKHNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9yKHN0
YXRpc3RpYywgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZykpCi0gICAgICAgICAgICBkb21h
aW5zVG9SZW1vdmVXZWJzaXRlRGF0YUZvci5hcHBlbmQoc3RkOjptYWtlX3BhaXIoc3RhdGlzdGlj
LnJlZ2lzdGVyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZTo6QWxsKSk7CisgICAgICAg
ICAgICBkb21haW5zVG9SZW1vdmVXZWJzaXRlRGF0YUZvci5hcHBlbmQoc3RkOjptYWtlX3BhaXIo
c3RhdGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlOjpBbGwpKTsK
ICAgICAgICAgZWxzZSBpZiAoc2hvdWxkUmVtb3ZlQWxsQnV0Q29va2llc0ZvcihzdGF0aXN0aWMs
IHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpKQotICAgICAgICAgICAgZG9tYWluc1RvUmVt
b3ZlV2Vic2l0ZURhdGFGb3IuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKHN0YXRpc3RpYy5yZWdpc3Rl
cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU6OkFsbEJ1dENvb2tpZXMpKTsKKyAgICAg
ICAgICAgIGRvbWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yLmFwcGVuZChzdGQ6Om1ha2VfcGFp
cihzdGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU6OkFsbEJ1
dENvb2tpZXMpKTsKIAogICAgICAgICBpZiAoc2hvdWxkQ2xlYXJHcmFuZGZhdGhlcmluZyAmJiBz
dGF0aXN0aWMuZ3JhbmRmYXRoZXJlZCkKICAgICAgICAgICAgIGRvbWFpbklEc1RvQ2xlYXJHcmFu
ZGZhdGhlcmluZy5hcHBlbmQoc3RhdGlzdGljLmRvbWFpbklEKTsKQEAgLTE1MjQsOCArMTU5Miw5
IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBydW5lU3RhdGlz
dGljc0lmTmVlZGVkKCkKICAgICBzaXplX3QgY291bnRMZWZ0VG9QcnVuZSA9IGNvdW50IC0gcGFy
YW1ldGVycygpLnBydW5lRW50cmllc0Rvd25UbzsKICAgICBBU1NFUlQoY291bnRMZWZ0VG9QcnVu
ZSk7CiAKLSAgICBTUUxpdGVTdGF0ZW1lbnQgcmVjb3Jkc1RvUHJ1bmUobV9kYXRhYmFzZSwgbWFr
ZVN0cmluZygiU0VMRUNUIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIE9SREVSIEJZIGhh
ZFVzZXJJbnRlcmFjdGlvbiwgaXNQcmV2YWxlbnQsIGxhc3RTZWVuIERFU0MgTElNSVQgIiwgU3Ry
aW5nOjpudW1iZXIoY291bnRMZWZ0VG9QcnVuZSkpKTsKLSAgICBpZiAocmVjb3Jkc1RvUHJ1bmUu
cHJlcGFyZSgpICE9IFNRTElURV9PSykgeworICAgIFNRTGl0ZVN0YXRlbWVudCByZWNvcmRzVG9Q
cnVuZShtX2RhdGFiYXNlLCAiU0VMRUNUIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIE9S
REVSIEJZIGhhZFVzZXJJbnRlcmFjdGlvbiwgaXNQcmV2YWxlbnQsIGxhc3RTZWVuIExJTUlUID8i
KTsKKyAgICBpZiAocmVjb3Jkc1RvUHJ1bmUucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAg
ICB8fCByZWNvcmRzVG9QcnVuZS5iaW5kSW50KDEsIGNvdW50TGVmdFRvUHJ1bmUpICE9IFNRTElU
RV9PSykgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJ1bmVTdGF0aXN0aWNzSWZOZWVkZWQgZmFp
bGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47
CkBAIC0xNTQwLDcgKzE2MDksNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpwcnVuZVN0YXRpc3RpY3NJZk5lZWRlZCgpCiAgICAgU1FMaXRlU3RhdGVtZW50IHBy
dW5lQ29tbWFuZChtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJERUxFVEUgZnJvbSBPYnNlcnZlZERv
bWFpbnMgV0hFUkUgZG9tYWluSUQgSU4gKCIsIGxpc3RUb1BydW5lLCAiKSIpKTsKICAgICBpZiAo
cHJ1bmVDb21tYW5kLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgcHJ1bmVDb21t
YW5kLnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihO
ZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJ1bmVT
dGF0aXN0aWNzSWZOZWVkZWQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhp
cywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
X0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpwcnVuZVN0YXRpc3RpY3NJZk5lZWRlZCBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6
ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xNTUzLDcg
KzE2MjIsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp1cGRh
dGVMYXN0U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbgogICAgIGlmIChtX3VwZGF0ZUxhc3RT
ZWVuU3RhdGVtZW50LmJpbmREb3VibGUoMSwgbGFzdFNlZW4uc2Vjb25kc1NpbmNlRXBvY2goKS52
YWx1ZSgpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV91cGRhdGVMYXN0U2VlblN0YXRlbWVu
dC5iaW5kVGV4dCgyLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBt
X3VwZGF0ZUxhc3RTZWVuU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6dXBkYXRlTGFzdFNlZW4gZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3Nh
Z2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnVwZGF0ZUxhc3RTZWVuIGZhaWxlZCB0byBi
aW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmUuaAppbmRleCAwZmIyNGFkMDY3MDQ1YzlhZDMxNGYyM2NmYjQ0NDBkOGFmODQ1ZmVjLi5m
MWQ1NjU1ZGVlYmNkYjA0N2NkZDk2ZDJlOTM1NjM0Y2VhYzAxZDNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaApAQCAtNTEsNyArNTEs
NyBAQCBjbGFzcyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU7CiAvLyBUaGlzIGlz
IGFsd2F5cyBjb25zdHJ1Y3RlZCAvIHVzZWQgLyBkZXN0cm95ZWQgb24gdGhlIFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZSdzIHN0YXRpc3RpY3MgcXVldWUuCiBjbGFzcyBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZSBmaW5hbCA6IHB1YmxpYyBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUgewogcHVibGljOgotICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlKFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSYsIFdvcmtRdWV1ZSYsIFNob3Vs
ZEluY2x1ZGVMb2NhbGhvc3QsIGNvbnN0IFN0cmluZyYgc3RvcmFnZURpcmVjdG9yeVBhdGgpOwor
ICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlKFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZSYsIFdvcmtRdWV1ZSYsIFNob3VsZEluY2x1ZGVMb2NhbGhvc3QsIGNvbnN0
IFN0cmluZyYgc3RvcmFnZURpcmVjdG9yeVBhdGgsIFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIHZv
aWQgcG9wdWxhdGVGcm9tTWVtb3J5U3RvcmUoY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01l
bW9yeVN0b3JlJik7CiAKQEAgLTEwNSwxMSArMTA1LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgU2Vjb25kcykgb3ZlcnJpZGU7CiAK
IHByaXZhdGU6CisgICAgdm9pZCBjbGVhckRhdGFiYXNlQ29udGVudHMoKTsKICAgICBib29sIGlu
c2VydE9ic2VydmVkRG9tYWluKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsKICAgICB2
b2lkIGluc2VydERvbWFpblJlbGF0aW9uc2hpcHMoY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyYpOwogICAgIGJvb2wgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKFdlYkNvcmU6OlNRTGl0ZVN0
YXRlbWVudCYsIHVuc2lnbmVkIGRvbWFpbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9w
RnJhbWVEb21haW4pOwotICAgIGJvb2wgcmVsYXRpb25zaGlwRXhpc3RzKFdlYkNvcmU6OlNRTGl0
ZVN0YXRlbWVudCYsIHVuc2lnbmVkIGZpcnN0RG9tYWluSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBzZWNvbmREb21haW4pIGNvbnN0OwotICAgIHVuc2lnbmVkIGRvbWFpbklEKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJikgY29uc3Q7CisgICAgYm9vbCByZWxhdGlvbnNoaXBFeGlzdHMoV2Vi
Q29yZTo6U1FMaXRlU3RhdGVtZW50JiwgT3B0aW9uYWw8dW5zaWduZWQ+IGZpcnN0RG9tYWluSUQs
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzZWNvbmREb21haW4pIGNvbnN0OworICAgIE9wdGlv
bmFsPHVuc2lnbmVkPiBkb21haW5JRChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIGNvbnN0Owog
I2lmbmRlZiBOREVCVUcKICAgICBib29sIGNvbmZpcm1Eb21haW5Eb2VzTm90RXhpc3QoY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mKSBjb25zdDsKICNlbmRpZgpAQCAtMTIwLDEyICsxMjEsMTMgQEAg
cHJpdmF0ZToKIAogICAgIHN0cnVjdCBQcmV2YWxlbnREb21haW5EYXRhIHsKICAgICAgICAgdW5z
aWduZWQgZG9tYWluSUQ7Ci0gICAgICAgIFJlZ2lzdHJhYmxlRG9tYWluIHJlZ2lzdGVyYWJsZURv
bWFpbjsKKyAgICAgICAgUmVnaXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW47CiAgICAg
ICAgIFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lOwogICAgICAgICBib29s
IGhhZFVzZXJJbnRlcmFjdGlvbjsKICAgICAgICAgYm9vbCBncmFuZGZhdGhlcmVkOwogICAgIH07
CiAgICAgVmVjdG9yPFByZXZhbGVudERvbWFpbkRhdGE+IHByZXZhbGVudERvbWFpbnMoKSBjb25z
dDsKKyAgICBib29sIGhhc0hhZFVuZXhwaXJlZFJlY2VudFVzZXJJbnRlcmFjdGlvbihjb25zdCBQ
cmV2YWxlbnREb21haW5EYXRhJiwgT3BlcmF0aW5nRGF0ZXNXaW5kb3cpOwogICAgIFZlY3Rvcjx1
bnNpZ25lZD4gZmluZEV4cGlyZWRVc2VySW50ZXJhY3Rpb25zKCkgY29uc3Q7CiAgICAgdm9pZCBj
bGVhckV4cGlyZWRVc2VySW50ZXJhY3Rpb25zKCk7CiAgICAgdm9pZCBjbGVhckdyYW5kZmF0aGVy
aW5nKFZlY3Rvcjx1bnNpZ25lZD4mJik7CkBAIC0xMzQsNyArMTM2LDcgQEAgcHJpdmF0ZToKIAog
ICAgIHZvaWQgcmVjbGFzc2lmeVJlc291cmNlcygpOwogICAgIHN0cnVjdCBOb3RWZXJ5UHJldmFs
ZW50UmVzb3VyY2VzIHsKLSAgICAgICAgUmVnaXN0cmFibGVEb21haW4gcmVnaXN0ZXJhYmxlRG9t
YWluOworICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWdpc3RyYWJsZURvbWFpbjsKICAgICAg
ICAgUmVzb3VyY2VMb2FkUHJldmFsZW5jZSBwcmV2YWxlbmNlOwogICAgICAgICB1bnNpZ25lZCBz
dWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnQ7CiAgICAgICAgIHVuc2lnbmVkIHN1
YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9Db3VudDsKQEAgLTE1OCw3ICsxNjAsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgcHJ1bmVTdGF0aXN0aWNzSWZOZWVkZWQoKSBvdmVycmlkZTsKICAgICBl
bnVtIGNsYXNzIEFkZGVkUmVjb3JkIHsgTm8sIFllcyB9OwogICAgIHN0ZDo6cGFpcjxBZGRlZFJl
Y29yZCwgdW5zaWduZWQ+IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9t
YWluKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7Ci0gICAgYm9vbCBzaG91bGRSZW1vdmVBbGxX
ZWJzaXRlRGF0YUZvcihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiwgYm9vbCBzaG91bGRDaGVj
a0ZvckdyYW5kZmF0aGVyaW5nKSBjb25zdDsKKyAgICBib29sIHNob3VsZFJlbW92ZUFsbFdlYnNp
dGVEYXRhRm9yKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmLCBib29sIHNob3VsZENoZWNrRm9y
R3JhbmRmYXRoZXJpbmcpOwogICAgIGJvb2wgc2hvdWxkUmVtb3ZlQWxsQnV0Q29va2llc0Zvcihj
b25zdCBQcmV2YWxlbnREb21haW5EYXRhJiwgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVy
aW5nKSBjb25zdDsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZ2lzdHJhYmxlRG9tYWluLCBXZWJz
aXRlRGF0YVRvUmVtb3ZlPj4gcmVnaXN0cmFibGVEb21haW5zVG9SZW1vdmVXZWJzaXRlRGF0YUZv
cigpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNEYXRhYmFzZVN0b3JlKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gdHJ1ZTsgfQpAQCAtMTk4LDYgKzIwMCw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6
U1FMaXRlU3RhdGVtZW50IG1fdXBkYXRlR3JhbmRmYXRoZXJlZFN0YXRlbWVudDsKICAgICBtdXRh
YmxlIFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBtX2lzR3JhbmRmYXRoZXJlZFN0YXRlbWVudDsK
ICAgICBtdXRhYmxlIFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBtX2ZpbmRFeHBpcmVkVXNlcklu
dGVyYWN0aW9uU3RhdGVtZW50OworICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IDRhYjM0NTczZGEzNDJmY2Y3YzY4ODc3MDNiNTNkMGVl
NjMzNDAzYjEuLjJiYmVkY2I5NjM3ZmUzNjFmYzMwOGVjZTQ2OTY5OTc0NDE5ZmI2OGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBAIC0xNTYs
MTAgKzE1NiwxMCBAQCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZShOZXR3b3JrU2Vzc2lvbiYgbgogICAgICwgbV9kYWlseVRhc2tz
VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpwZXJmb3JtRGFpbHlUYXNrcykKIHsKICAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7Ci0gICAgCi0gICAgcG9zdFRhc2soW3RoaXMsIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3RvcnkgPSByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5Lmlzb2xhdGVkQ29w
eSgpLCBzaG91bGRJbmNsdWRlTG9jYWxob3N0XSB7Ci0gICAgICAgIGlmIChSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlzSVRQRGF0YWJhc2VFbmFibGVkKCkpIHsKLSAg
ICAgICAgICAgIG1fc3RhdGlzdGljc1N0b3JlID0gbWFrZVVuaXF1ZTxSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZT4oKnRoaXMsIG1fc3RhdGlzdGljc1F1ZXVlLCBzaG91bGRJbmNs
dWRlTG9jYWxob3N0LCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KTsKKworICAgIHBv
c3RUYXNrKFt0aGlzLCBkYXRhYmFzZUVuYWJsZWQgPSBuZXR3b3JrU2Vzc2lvbi5uZXR3b3JrUHJv
Y2VzcygpLmlzSVRQRGF0YWJhc2VFbmFibGVkKCksIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJl
Y3RvcnkgPSByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5Lmlzb2xhdGVkQ29weSgpLCBz
aG91bGRJbmNsdWRlTG9jYWxob3N0LCBzZXNzaW9uSUQgPSBuZXR3b3JrU2Vzc2lvbi5zZXNzaW9u
SUQoKV0geworICAgICAgICBpZiAoZGF0YWJhc2VFbmFibGVkKSB7CisgICAgICAgICAgICBtX3N0
YXRpc3RpY3NTdG9yZSA9IG1ha2VVbmlxdWU8UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU+KCp0aGlzLCBtX3N0YXRpc3RpY3NRdWV1ZSwgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCwg
cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgc2Vzc2lvbklEKTsKIAogICAgICAgICAg
ICAgYXV0byBtZW1vcnlTdG9yZSA9IG1ha2VVbmlxdWU8UmVzb3VyY2VMb2FkU3RhdGlzdGljc01l
bW9yeVN0b3JlPigqdGhpcywgbV9zdGF0aXN0aWNzUXVldWUsIHNob3VsZEluY2x1ZGVMb2NhbGhv
c3QpOwogICAgICAgICAgICAgYXV0byBwZXJzaXN0ZW50U3RvcmUgPSBtYWtlVW5pcXVlPFJlc291
cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZT4oKm1lbW9yeVN0b3JlLCBtX3N0YXRp
c3RpY3NRdWV1ZSwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDRkM2UxOWM4
MGRiNzA3MDAxOTQxYTMzZjM1OTk5YjlmMjI5ZGYzYmIuLjZmNzNiMTM2M2ZlNGZjY2NjMDRlODg2
M2Q2ZTFiNDMxZWY0YjkzMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0zMTQsNyArMzE0LDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
czo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzJiYKICAgICAgICAgbV9kZWZhdWx0TmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gbmV3VGVzdGlu
Z1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7CiAgICAgfQogCi0g
ICAgV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRJ
c0lUUERhdGFiYXNlRW5hYmxlZChwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZUlUUERhdGFiYXNlKTsK
KyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgIG1faXNJVFBEYXRhYmFz
ZUVuYWJsZWQgPSBwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZUlUUERhdGFiYXNlOworI2VuZGlmCiAK
ICAgICBXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNl
dEFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQocGFyYW1ldGVycy5lbmFibGVBZENs
aWNrQXR0cmlidXRpb25EZWJ1Z01vZGUpOwogCkBAIC02ODIsNiArNjg0LDE3IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OnNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBj
b25zdCBSZWdpc3RyYWJsCiAgICAgfQogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRVc2VJ
VFBEYXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUpCit7CisgICAg
aWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklE
KSkgeworICAgICAgICBpZiAobV9pc0lUUERhdGFiYXNlRW5hYmxlZCAhPSB2YWx1ZSkgeworICAg
ICAgICAgICAgbV9pc0lUUERhdGFiYXNlRW5hYmxlZCA9IHZhbHVlOworICAgICAgICAgICAgbmV0
d29ya1Nlc3Npb24tPnJlY3JlYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljU3RvcmUoKTsKKyAgICAg
ICAgfQorICAgIH0gZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6c2V0UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtT
ZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDNkOTEzNjUwMmIwNjIz
NWExYTkzODZiZmVmMTY2MDJhZTQ3NWJjMzkuLmJmNWRiN2ZmYjNmYTFmYTM5NjdhZTY0NTNmMTZi
N2ZjNGFiZDUxZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmgKQEAgLTIyMyw2ICsyMjMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBpc1JlZ2lzdGVy
ZWRBc1N1YkZyYW1lVW5kZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN1YkZyYW1lRG9tYWluJiwg
Y29uc3QgVG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsK
ICAgICB2b2lkIGlzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihQQUw6OlNlc3Npb25JRCwg
Y29uc3QgU3ViUmVzb3VyY2VEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgc2V0R3JhbmRmYXRoZXJlZChQQUw6
OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBib29sIGlzR3JhbmRmYXRoZXJl
ZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFVzZUlUUERhdGFi
YXNlKFBBTDo6U2Vzc2lvbklELCBib29sIHZhbHVlKTsKICAgICB2b2lkIHNldE1heFN0YXRpc3Rp
Y3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBtYXhpbXVtRW50cnlDb3VudCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNl
KFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9k
ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwpAQCAtMjYzLDYgKzI2NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZnJvbURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHRvRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
cmVzZXRDcm9zc1NpdGVMb2Fkc1dpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNz
aW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBoYXNJc29sYXRl
ZFNlc3Npb24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgY29uc3Q7CisgICAgYm9vbCBpc0lU
UERhdGFiYXNlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNJVFBEYXRhYmFzZUVuYWJsZWQ7
IH0KICNlbmRpZgogCiAgICAgdXNpbmcgQ2FjaGVTdG9yYWdlUm9vdFBhdGhDYWxsYmFjayA9IENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPjsKQEAgLTUzNiw2ICs1MzgsMTAgQEAgcHJp
dmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXI+IG1f
bmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXI7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgYm9vbCBtX2lzSVRQRGF0YWJhc2VFbmFibGVkIHsgZmFs
c2UgfTsKKyNlbmRpZgorICAgIAogICAgIGNsYXNzIFN0b3JhZ2VRdW90YU1hbmFnZXJzIHsKICAg
ICBwdWJsaWM6CiAgICAgICAgIHVpbnQ2NF90IGRlZmF1bHRRdW90YShjb25zdCBXZWJDb3JlOjpD
bGllbnRPcmlnaW4mIG9yaWdpbikgY29uc3QgeyByZXR1cm4gb3JpZ2luLnRvcE9yaWdpbiA9PSBv
cmlnaW4uY2xpZW50T3JpZ2luID8gbV9kZWZhdWx0UXVvdGEgOiBtX2RlZmF1bHRUaGlyZFBhcnR5
UXVvdGE7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGUwMTM2ZGFkNWI3MGE4NzRmNDk3ZDUzYWIzODk2
OTdjYmEwNWNhYjUuLmM5ZTFhZWFiYzY5NWY1ZmFmYWY3YjdiNDQ0YmEyNjU1MGNjNmRiOWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbgpAQCAtMTEzLDYgKzExMyw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9j
ZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTdWJtaXRUZWxlbWV0cnkoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKSAtPiAoKSBBc3luYwogICAgIFNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50
UmVzb3VyY2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzKSAtPiAo
KSBBc3luYwogICAgIFNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbiwgYm9vbCBpc0dyYW5kZmF0
aGVyZWQpIC0+ICgpIEFzeW5jCisgICAgU2V0VXNlSVRQRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBib29sIHZhbHVlKQogICAgIFNldEdyYW5kZmF0aGVyaW5nVGltZShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25kcykgLT4gKCkgQXN5bmMKICAgICBTZXRN
YXhTdGF0aXN0aWNzRW50cmllcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IG1h
eGltdW1FbnRyeUNvdW50KSAtPiAoKSBBc3luYwogICAgIFNldE1pbmltdW1UaW1lQmV0d2VlbkRh
dGFSZWNvcmRzUmVtb3ZhbChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25k
cykgLT4gKCkgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5jcHAKaW5kZXggYzU3Y2JjZWUwYmFiMmY5Nzc4ZTcxZmEwODY0MTNkYjRjYWVlYzRh
Zi4uYjExY2NlY2FkYTI2MGVjYmViNWJlYjM1MjYwZGMyMGI4MDEwMzNmYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTkwLDYgKzkw
LDkgQEAgTmV0d29ya1Nlc3Npb246Ok5ldHdvcmtTZXNzaW9uKE5ldHdvcmtQcm9jZXNzJiBuZXR3
b3JrUHJvY2VzcywgY29uc3QgTmV0d29ya1Nlc3MKICAgICAgICAgaWYgKCFuZXR3b3JrQ2FjaGVE
aXJlY3RvcnkuaXNOdWxsKCkpCiAgICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1l
UGVybWFuZW50bHkocGFyYW1ldGVycy5uZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpOwogCisgICAgICAgIGlmICghcGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGly
ZWN0b3J5LmlzRW1wdHkoKSkKKyAgICAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQ
ZXJtYW5lbnRseShwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUpOworICAgICAgICAKICAgICAgICAgbV9jYWNoZSA9IE5ldHdvcmtDYWNoZTo6
Q2FjaGU6Om9wZW4obmV0d29ya1Byb2Nlc3MsIG5ldHdvcmtDYWNoZURpcmVjdG9yeSwgbmV0d29y
a1Byb2Nlc3MuY2FjaGVPcHRpb25zKCksIG1fc2Vzc2lvbklEKTsKICAgICAgICAgaWYgKCFtX2Nh
Y2hlKQogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29ya0NhY2hlLCAiRmFpbGVk
IHRvIGluaXRpYWxpemUgdGhlIFdlYktpdCBuZXR3b3JrIGRpc2sgY2FjaGUiKTsKQEAgLTE1OSw2
ICsxNjIsMTIgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbjo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0VuYWJsZWQoYm9vbCBlbmFibGUpCiAgICAgICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+
c2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUobV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWFudWFsUHJldmFsZW50UmVzb3VyY2UsIFtdIHsgfSk7CiB9CiAKK3ZvaWQgTmV0d29ya1Nlc3Np
b246OnJlY3JlYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljU3RvcmUoKQoreworICAgIGRlc3Ryb3lS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCk7CisgICAgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0g
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjcmVhdGUoKnRoaXMsIG1fcmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgbV9zaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzKTsKK30KKwogdm9pZCBOZXR3b3JrU2Vzc2lvbjo6bm90aWZ5UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1Byb2Nlc3NlZCgpCiB7CiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+cGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94
eTo6Tm90aWZ5UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Byb2Nlc3NlZCgpLCAwKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAppbmRleCAzMThlY2U0YTQ0
YjI0YzQ1ZjFkNzA2OWQ5ODZhMzMyMmE5YTUwMjliLi41M2U5ZmY3ZGNmNThmNmNjYmYyMWY0MzI4
NDM4NjM5NzFlMmQyMGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbi5oCkBAIC04NCw2ICs4NCw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSog
cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy5nZXQoKTsgfQogICAgIHZvaWQgc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJs
ZWQoYm9vbCk7CisgICAgdm9pZCByZWNyZWF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY1N0b3JlKCk7
CiAgICAgdm9pZCBub3RpZnlSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUHJvY2Vzc2VkKCk7CiAgICAg
dm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvclJlZ2lzdHJhYmxlRG9tYWlucyhPcHRpb25TZXQ8V2Vi
c2l0ZURhdGFUeXBlPiwgVmVjdG9yPHN0ZDo6cGFpcjxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biwgV2Vic2l0ZURhdGFUb1JlbW92ZT4+JiYsIGJvb2wgc2hvdWxkTm90aWZ5UGFnZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChjb25zdCBIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
PiYpPiYmKTsKICAgICB2b2lkIHJlZ2lzdHJhYmxlRG9tYWluc1dpdGhXZWJzaXRlRGF0YShPcHRp
b25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgYm9vbCBzaG91bGROb3RpZnlQYWdlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+JiYpPiYmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFT
dG9yZVJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRh
U3RvcmVSZWYuY3BwCmluZGV4IDU4Y2Q0M2YxOGViN2MxZGVhZDBlMWM3NjY1MjkzZDVkOTM1MGE0
MzIuLmYyOTZiNmIyZDhjMTNjYTkzZTVjMzlmNmZlYTMwN2RmYjk3MWRlZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVm
LmNwcApAQCAtMjY4LDYgKzI2OCwxMyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlz
dGljc0dyYW5kZmF0aGVyZWQoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZQogI2VuZGlm
CiB9CiAKK3ZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0VXNlSVRQRGF0YWJhc2UoV0tXZWJzaXRl
RGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgYm9vbCB2YWx1ZSkKK3sKKyNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZikt
PnNldFVzZUlUUERhdGFiYXNlKHZhbHVlKTsKKyNlbmRpZgorfQorCiB2b2lkIFdLV2Vic2l0ZURh
dGFTdG9yZVNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oV0tXZWJzaXRl
RGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYg
dG9wRnJhbWVIb3N0KQogewogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3Rv
cmVSZWYuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9y
ZVJlZi5oCmluZGV4IDdhM2RhNDU1MDBiMjAxOWIyY2U1OTE4YzRhODAyMTE4YTE0M2RkN2IuLmI4
MzU3Y2MyNzA0ZmVkZWJkNTU5NWQwMzJjMGU5M2U0YTU3MGUxYmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oCkBAIC03
MSw2ICs3MSw3IEBAIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbihXS1dlYnNpdGVEYXRhCiBXS19FWFBPUlQgdm9pZCBXS1dl
YnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1dlYnNpdGVEYXRhU3Rv
cmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBib29sIHZhbHVlKTsKIHR5cGVk
ZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWRGdW5j
dGlvbikoYm9vbCBpc0dyYW5kZmF0aGVyZWQsIHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CiBXS19F
WFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdL
V2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIHZvaWQq
IGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWRGdW5j
dGlvbiBjYWxsYmFjayk7CitXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRVc2VJ
VFBEYXRhYmFzZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBib29sIHZhbHVl
KTsKIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTdWJmcmFt
ZVVuZGVyVG9wRnJhbWVPcmlnaW4oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwg
V0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0KTsKIFdLX0VYUE9SVCB2
b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJh
bWVPcmlnaW4oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYg
aG9zdCwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0KTsKIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0
ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oV0tXZWJz
aXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdS
ZWYgaG9zdFJlZGlyZWN0ZWRUbyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBkYzU0ODhjNDczNjhiODBk
ZWRlZWVlYzg4ZmRkM2NhZTI4NDE1MjJkLi5iNWY2OWFmZmYxYmEwMjc3YWIyN2E5ZGJmNmQ1MWE4
NDZhYWEzNWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTc3NCw2ICs3NzQsMTQgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgUmVnaXMKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpTZXRHcmFuZGZhdGhlcmVkKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4sIGlzR3Jh
bmRmYXRoZXJlZCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpzZXRVc2VJVFBEYXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGJvb2wgdmFsdWUpCit7CisgICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgpKQorICAgICAgICBy
ZXR1cm47CisgICAgCisgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFVzZUlU
UERhdGFiYXNlKHNlc3Npb25JRCwgdmFsdWUpLCAwKTsKK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViUGFnZVByb3h5SWRlbnRpZmll
ciBwYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFp
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBhdXRvKiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oCmluZGV4IGJiMGUyYmYyM2Q4ZmI1YTAyYzVjNDQ5OTZhOWNkODVhNDdhYzRmNWMuLjVlZWRi
NzA3NTk5ODZjMmY1ZGJjNjY4OTI0MWVhZjc0YmEwOGVhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0xMTYs
NiArMTE2LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tp
ZXMoUEFMOjpTZXNzaW9uSUQsIE9wdGlvbmFsPFNlY29uZHM+LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Q2FjaGVNYXhBZ2VDYXAoUEFMOjpTZXNzaW9uSUQsIFNl
Y29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRHcmFuZGZh
dGhlcmVkKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGJvb2wgaXNH
cmFuZGZhdGhlcmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0
VXNlSVRQRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQsIGJvb2wgdmFsdWUpOwogICAgIHZvaWQgc2V0
Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChQQUw6OlNlc3Npb25JRCwgYm9v
bCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldElzUnVubmluZ1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NUZXN0KFBBTDo6U2Vzc2lvbklELCBib29sLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Tm90aWZ5UGFnZXNXaGVuVGVsZW1ldHJ5
V2FzQ2FwdHVyZWQoUEFMOjpTZXNzaW9uSUQsIGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IGI4YjJjZjVhOTU2ODg2YjFhOTlhMjc2OGE1MDIw
M2JkMTM2MTY4ZWYuLmU3ZWY3ZTQzMGJiZjE1NDNjNTAyMzBjNWQ0ZGUzMTQ4Y2FmNDk0MWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwCkBAIC0xNjkxLDYgKzE2OTEsMTQgQEAgdm9pZCBXZWJzaXRlRGF0YVN0
b3JlOjpzZXRHcmFuZGZhdGhlcmVkKGNvbnN0IFVSTCYgdXJsLCBib29sIGlzR3JhbmRmYXRoZXJl
ZCwgQ28KICAgICB9CiB9CiAKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0VXNlSVRQRGF0YWJh
c2UoYm9vbCB2YWx1ZSkKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAg
Zm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IHByb2Nlc3NQb29scygpKQorICAgICAgICBwcm9jZXNz
UG9vbC0+ZW5zdXJlTmV0d29ya1Byb2Nlc3MoKS5zZXRVc2VJVFBEYXRhYmFzZShtX3Nlc3Npb25J
RCwgdmFsdWUpOworfQorCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldENyb3NzU2l0ZUxvYWRX
aXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKGNvbnN0IFVSTCYgZnJvbVVSTCwgY29uc3QgVVJM
JiB0b1VSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggNDE1Yzgz
MWZjNTBhNzA1ODIxYTA0ZjA1ZTE1ZGI1OGViNDNmZDgzYy4uOGI3NjUxZWNlZTUxNzc2ZTJlYmUw
ZWJhYjZmMGZmZGIzYzE5Y2IyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtMTYxLDYgKzE2MSw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNjaGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vzc2lu
ZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc3VibWl0VGVsZW1ldHJ5
KCk7CiAgICAgdm9pZCBzZXRHcmFuZGZhdGhlcmVkKGNvbnN0IFVSTCYsIGJvb2wsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRVc2VJVFBEYXRhYmFzZShib29sKTsK
ICAgICB2b2lkIHNldEdyYW5kZmF0aGVyaW5nVGltZShTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0TGFzdFNlZW4oY29uc3QgVVJMJiwgU2Vjb25kcywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldE5vdGlmeVBhZ2VzV2hl
bkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBl
OGY1Njc2NDk0NmRhNGVlNDQ5MmM3MTk2NjQ4NjI5YmNiMmQyZGZlLi40NDRjOWQzMzY0YzUzZDk5
ZThhN2JmOWRlYmI2Y2IyNGI3ZjQxZTA0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTktMDktMjUgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIExheW91
dFRlc3RzIHVzaW5nIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgU1FMaXRlIGJhY2tlbmQgKDE5NTQy
MCkgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTU0
MjAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQy
MTM1NTE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKKworICAgICAgICBBZGRlZCBpbiBsb2dpYyB0byBzZW5k
IGEgbWVzc2FnZSBmcm9tIHRoZSBVSVByb2Nlc3MgdG8gdGhlIE5ldHdvcmsgICAgICAKKyAgICAg
ICAgUHJvY2VzcyB3aGljaCB3aWxsIGluaXRhbGl6ZSB0aGUgSVRQIERhdGFiYXNlIGJhY2tlbmQg
dG8gYWxsb3cgZm9yICAgICAgCisgICAgICAgIGxheW91dCB0ZXN0aW5nLiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0VXNlSVRQRGF0YWJhc2UpOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6c2V0VXNlSVRQRGF0YWJhc2UpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5j
aHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDE5LTA5LTI1ICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpUGFkT1NdIFtEYXRh
QWN0aXZhdGlvbl0gRm9jdXMgbW92ZXMgYXdheSBhZnRlciBmb2N1c2luZyBpbnB1dCBmaWVsZHMg
b24gd3d3LmF0dC5jb20KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IDNjZDk0YmVkYTQ3
MDYwNDlhZTA5YmI4YjMxMjNlMTlhNjNjOWZlNjYuLjk2NzZmMmVhNjVmNDUyNGUxOTQxNTkwMjRh
NmVkNjI4MjQwNWIwZDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtMzA5LDYgKzMw
OSw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICBib29sZWFuIGlzU3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbihET01TdHJpbmcgaG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3Rh
dGlzdGljc0dyYW5kZmF0aGVyZWQoRE9NU3RyaW5nIGhvc3ROYW1lLCBib29sZWFuIHZhbHVlKTsK
ICAgICBib29sZWFuIGlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoRE9NU3RyaW5nIGhvc3ROYW1l
KTsKKyAgICB2b2lkIHNldFVzZUlUUERhdGFiYXNlKGJvb2xlYW4gdmFsdWUpOwogICAgIHZvaWQg
c2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihET01TdHJpbmcgaG9zdE5h
bWUsIERPTVN0cmluZyB0b3BGcmFtZUhvc3ROYW1lKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NT
dWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oRE9NU3RyaW5nIGhvc3ROYW1lLCBET01TdHJp
bmcgdG9wRnJhbWVIb3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VV
bmlxdWVSZWRpcmVjdFRvKERPTVN0cmluZyBob3N0TmFtZSwgRE9NU3RyaW5nIGhvc3ROYW1lUmVk
aXJlY3RlZFRvKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGI0OTVjZmEwZDQyZTkyNmVlNTE2MjE1ZmUzYzAzMGI5
MTMwZmUzYTcuLmY4MTYyNDJmMmRiNGJmMTA5ZmUwYjQ4NmMwYmM5ZWE0NWU0NTk0OTcgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcApAQCAtMTY5NCw3ICsxNjk0LDE1IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGlj
c0dyYW5kZmF0aGVyZWQoSlNTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpCiAgICAgCiAg
ICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0
b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxs
cHRyKTsKIH0KKwordm9pZCBUZXN0UnVubmVyOjpzZXRVc2VJVFBEYXRhYmFzZShib29sIHZhbHVl
KQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZSA9IGFkb3B0V0so
V0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlNldFVzZUlUUERhdGFiYXNlIikpOworICAg
IFdLUmV0YWluUHRyPFdLQm9vbGVhblJlZj4gbWVzc2FnZUJvZHkgPSBhZG9wdFdLKFdLQm9vbGVh
bkNyZWF0ZSh2YWx1ZSkpOwogICAgIAorICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2Fn
ZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgp
LCBtZXNzYWdlQm9keS5nZXQoKSwgbnVsbHB0cik7Cit9CisKIGJvb2wgVGVzdFJ1bm5lcjo6aXNT
dGF0aXN0aWNzR3JhbmRmYXRoZXJlZChKU1N0cmluZ1JlZiBob3N0TmFtZSkKIHsKICAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJJc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkIikpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCAy
ZGEyOGJiZGQ2MjY2YjZiN2JiOTI2NDQ5N2ZhY2RlZjY0NDEzNzc5Li5mNGFkM2E2MGUyZTU3NTBi
M2MxNjU2MjY0ODQyNTU5YTVkYzMyNjNiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtNDEwLDYgKzQxMCw3IEBAIHB1Ymxp
YzoKICAgICBib29sIGlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihKU1N0cmluZ1Jl
ZiBob3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChKU1N0cmlu
Z1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSk7CiAgICAgYm9vbCBpc1N0YXRpc3RpY3NHcmFuZGZh
dGhlcmVkKEpTU3RyaW5nUmVmIGhvc3ROYW1lKTsKKyAgICB2b2lkIHNldFVzZUlUUERhdGFiYXNl
KGJvb2wgdmFsdWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFt
ZU9yaWdpbihKU1N0cmluZ1JlZiBob3N0TmFtZSwgSlNTdHJpbmdSZWYgdG9wRnJhbWVIb3N0TmFt
ZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lu
KEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBKU1N0cmluZ1JlZiB0b3BGcmFtZUhvc3ROYW1lKTsKICAg
ICB2b2lkIHNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oSlNTdHJpbmdS
ZWYgaG9zdE5hbWUsIEpTU3RyaW5nUmVmIGhvc3ROYW1lUmVkaXJlY3RlZFRvKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZDJhMTBjYTY0YjRhYmFiZTFm
ZGM3ODRiNTM4NzMzZWExYjlkMGJmMy4uMmY1YmQ5OTI5NjdkNzNhZjMyYTBiN2Y0YWI1NmNlNDZi
MTQ1Zjk2MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAg
LTMzNTEsNiArMzM1MSwxMSBAQCBib29sIFRlc3RDb250cm9sbGVyOjppc1N0YXRpc3RpY3NHcmFu
ZGZhdGhlcmVkKFdLU3RyaW5nUmVmIGhvc3QpCiAgICAgcmV0dXJuIGNvbnRleHQucmVzdWx0Owog
fQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRVc2VJVFBEYXRhYmFzZShib29sIHZhbHVlKQor
eworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFVzZUlUUERhdGFiYXNlKFRlc3RDb250cm9sbGVy
Ojp3ZWJzaXRlRGF0YVN0b3JlKCksIHZhbHVlKTsKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6
c2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihXS1N0cmluZ1JlZiBob3N0
LCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3QpCiB7CiAgICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0
U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihUZXN0Q29udHJvbGxlcjo6d2Vi
c2l0ZURhdGFTdG9yZSgpLCBob3N0LCB0b3BGcmFtZUhvc3QpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5oCmluZGV4IGFmNWU1OTk1NjJkNzZiZTg3YWM1NzJjNDRiYzQyNzkz
ZTdlZTI1NDIuLjcyZWRhYmU4ZmYyYTljZTRmMjZmOTUzNDc2ODRiZDg0YTZiYzYxNmIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTIyMiw2ICsyMjIsNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oV0tTdHJp
bmdSZWYgaG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tT
dHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpOwogICAgIGJvb2wgaXNTdGF0aXN0aWNzR3Jh
bmRmYXRoZXJlZChXS1N0cmluZ1JlZiBob3N0TmFtZSk7CisgICAgdm9pZCBzZXRVc2VJVFBEYXRh
YmFzZShib29sIHZhbHVlKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9w
RnJhbWVPcmlnaW4oV0tTdHJpbmdSZWYgaG9zdE5hbWUsIFdLU3RyaW5nUmVmIHRvcEZyYW1lSG9z
dE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9y
aWdpbihXS1N0cmluZ1JlZiBob3N0TmFtZSwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0TmFtZSk7
CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKFdLU3Ry
aW5nUmVmIGhvc3ROYW1lLCBXS1N0cmluZ1JlZiBob3N0TmFtZVJlZGlyZWN0ZWRUbyk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IGZkMjUyMDBkNDAyZjBj
ZmQzMjJjYmViYTE4ZjA1YjA5ZjRmY2QxZmUuLjMwNjUwYzQ5OTExMzkzYWRkZjA4MWM3YTEwZjBj
NDhlMWQzODk0NDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3Bw
CkBAIC0xMjQxLDYgKzEyNDEsMTQgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2Nh
dGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICAgICAg
V0tSZXRhaW5QdHI8V0tUeXBlUmVmPiByZXN1bHQgPSBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZShp
c0dyYW5kZmF0aGVyZWQpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CisKKyAgICBp
ZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFVzZUlUUERh
dGFiYXNlIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBX
S0Jvb2xlYW5HZXRUeXBlSUQoKSk7CisKKyAgICAgICAgV0tCb29sZWFuUmVmIHZhbHVlID0gc3Rh
dGljX2Nhc3Q8V0tCb29sZWFuUmVmPihtZXNzYWdlQm9keSk7CisgICAgICAgIFRlc3RDb250cm9s
bGVyOjpzaW5nbGV0b24oKS5zZXRVc2VJVFBEYXRhYmFzZShXS0Jvb2xlYW5HZXRWYWx1ZSh2YWx1
ZSkpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CiAgICAgCiAgICAgaWYgKFdLU3Ry
aW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRTdGF0aXN0aWNzU3ViZnJh
bWVVbmRlclRvcEZyYW1lT3JpZ2luIikpIHsKICAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1l
c3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25hcnlHZXRUeXBlSUQoKSk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTdiMzU5MTJi
NWJjMTBkOGNhY2Q1ODk2MDY2YjY2MGQ2NTlkMmU3MC4uNzMzN2JhZDRkOWM5M2M2YTBhZDAwOGE3
YjQ0YTY5Njc0YzhiODMwNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1OCBAQAorMjAxOS0wOS0yNSAgS2F0
ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUg
TGF5b3V0VGVzdHMgdXNpbmcgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBTUUxpdGUgYmFja2VuZCAo
MTk1NDIwKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk1NDIwIAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQyMTM1NTE+CisKKyAgICAgICAgQWRk
ZWQgYSBmbGFnIHRvIGFsbCBJVFAgdGVzdHMgdG8gZW5hYmxlIHRoZSBJVFAgZGF0YWJhc2UgYmFj
a2VuZCB0byAKKyAgICAgICAgYWxsb3cgZm9yIHRlc3RpbmcgZnVuY3Rpb25hbGl0eSBhZ2FpbnN0
IHRoZSBtZW1vcnkgc3RvcmUuIFRlc3RzIHdlcmUgCisgICAgICAgIG5vdCBjcmVhdGVkIGZvciB0
ZWxlbWV0cnktZ2VuZXJhdGlvbi5odG1sLCAKKyAgICAgICAgbG9nLWNyb3NzLXNpdGUtbG9hZC13
aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sLCBvciAKKyAgICAgICAgd2Vic2l0ZS1kYXRhLXJlbW92
YWwtZm9yLXNpdGUtbmF2aWdhdGVkLXRvLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0bWwsIAorICAg
ICAgICBiZWNhdXNlIHRoZXNlIHJlbHkgb24gZnVuY3Rpb25zIG5vdCB5ZXQgaW1wbGVtZW50ZWQg
aW4gdGhlIElUUCBkYXRhYmFzZS4KKyAgICAgICAgQWRkaXRpb25hbGx5LCBhZGRlZCBmbGFncyB0
byBzb21lIG1lbW9yeSBzdG9yZSB0ZXN0cyB0byBlbnN1cmUgdGhleQorICAgICAgICBhcmUgdXNp
bmcgdGhlIG1lbW9yeSBzdG9yZSBiZWZvcmUgY2FsbGluZyBmdW5jdGlvbnMgbm90IGltcGxlbWVu
dGVkIGluCisgICAgICAgIHRoZSBkYXRhYmFzZSBzdG9yZSB5ZXQuCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Fk
ZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1z
Y3JpcHQtaW1wb3J0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Jsb2NraW5nLWluLXdlYi13b3JrZXItc2Ny
aXB0LWltcG9ydC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1hZ2UtZm9yLXByZXZhbGVudC1yZXNv
dXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1mb3ItcHJldmFsZW50LXJl
c291cmNlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLWRhdGFi
YXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29y
YXRpb24tc2FtZS1zaXRlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29v
a2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUtZGF0YWJhc2UuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nh
cHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJv
bS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZv
ci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNv
dXJjZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgt
bGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1x
dWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBl
ZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2
YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRh
YmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGhvdXQtbGluay1k
ZWNvcmF0aW9uLWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBl
ZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1m
cm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVu
dC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9y
aWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1v
bi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdp
bnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1z
dWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
bm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVz
b3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50
LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11
bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJh
c2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVz
aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2Ut
cmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZh
bGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2Uu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJh
bWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJj
ZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1k
YXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVj
dC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJh
c2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRh
YmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVu
aXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJh
c2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVy
eS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4t
bWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1l
bW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1w
ZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9y
eS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9u
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llcy13aXRo
LWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llcy13
aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQt
YWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNz
aWJsZS1jb29raWVzLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24t
cmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0
aW9uLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNzLWZvci1zaW1w
bGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1jYXB0dXJlLXN0YXRp
c3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2aWdhdGlvbnMtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUt
YmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9j
a2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmln
YXRpb24tdG8tcHJldmFsZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
ZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGhvdXQt
aW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24t
d2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20t
cHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJh
c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xvZy1jcm9zcy1zaXRlLWxvYWQt
d2l0aC1saW5rLWRlY29yYXRpb24uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rp
b24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50
ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWlu
dGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91
dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlcy1jYW4t
YWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0LWRhdGFiYXNlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBh
cnR5LWNvbnRleHQtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRv
LWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2Fs
aG9zdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJh
bWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVk
LW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxo
b3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5l
c3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0
LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFt
ZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94
ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNh
bmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9j
YWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVk
LW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3Qt
dG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZS1k
YXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJl
dmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxl
bnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Ut
dW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVu
aGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWlu
dGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXIt
aW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJh
Y3Rpb24tdGltZW91dC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11
c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRo
b3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNl
LXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRh
YmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94
ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxv
Y2FsaG9zdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRi
b3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3Rpbmct
aWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlw
LXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUt
d2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9j
YWxob3N0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
YW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlw
LXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdp
dGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hl
ZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4tZGVidWctbW9kZS1kYXRhYmFzZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRp
cmVjdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2
YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1v
cmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1
ZXN0cy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQt
d2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZp
Z2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy90ZWxlbWV0cnkt
Z2VuZXJhdGlvbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRhdGFi
YXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVy
aW9kLW9mLXRpbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9y
dGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVy
YWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwt
ZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZvci1zaXRlLW5hdmlnYXRlZC10by13aXRo
LWxpbmstZGVjb3JhdGlvbi5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0
YXRpb25zOgorICAgICAgICBBZGRlZCB0ZXN0IGV4cGVjdGF0aW9ucyB0byBza2lwIGRhdGFiYXNl
IHRlc3RzIHdoaWNoIGRvIG5vdCB3b3JrIGluIAorICAgICAgICBpb3MgYmVjYXVzZSBvZiByZWxp
YW5jZSBvbiBFdmVudFNlbmRlci5rZXlkb3duKCkgd2hpY2ggaXMgbm90CisgICAgICAgIHN1cHBv
cnRlZCBvbiBpT1MgYW5kIGFsc28gdGhvc2Ugd2hpY2ggdXNlIFVJSGVscGVyLmFjdGl2YXRlQXQo
KSB3aGljaAorICAgICAgICBkb2VzIG5vdCBwcm9kdWNlIGEgdXNlciBnZXN0dXJlIGNhcHR1cmVk
IGJ5IElUUCBpbiBpT1MuCisKIDIwMTktMDktMjUgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxl
c2hAZ21haWwuY29tPgogCiAgICAgICAgIFJlLXN5bmMgd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQiBmcm9tIHVwc3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFmZWY5Y2QyNmU4NjFiMGZkYjE0ZjVkYzBiMGExNjAwZjRlOGRhZDQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRk
LWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYz
IEBACitUZXN0cyB0aGF0IGJsb2NraW5nIGlzIGFkZGVkIG1pZC1mbGlnaHQgaW4gcmVkaXJlY3Rz
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0t
ZnJhbWUxLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4K
K1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2Vp
dmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVu
dC5jb29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEt
LWZyYW1lMi0tPicKKy0tLS0tLS0tCitSZWRpcmVjdCBjYXNlIDEsIHNob3VsZCByZWNlaXZlIGZp
cnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tp
ZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitD
bGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUKKworLS0t
LS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMy0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBu
byBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tp
ZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitD
bGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFt
ZTQtLT4nCistLS0tLS0tLQorUmVkaXJlY3QgY2FzZSAyLCBzaG91bGQgcmVjZWl2ZSBubyBjb29r
aWUuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0Rp
ZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3BhcnRpdGlvbmVkQ29va2llJy4KK0NsaWVudC1z
aWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNS0tPicK
Ky0tLS0tLS0tCitUcnkgdG8gc2V0IHRoaXJkLXBhcnR5IGNvb2tpZSBpbiBibG9ja2VkIG1vZGUu
CisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNi0tPicKKy0tLS0tLS0tCitBZnRlciBh
dHRlbXB0ZWQgY29va2llIGNyZWF0aW9uLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWUuCitEaWQg
bm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVj
ZWl2ZSBjb29raWUgbmFtZWQgJ3BhcnRpdGlvbmVkQ29va2llJy4KK0NsaWVudC1zaWRlIGRvY3Vt
ZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNy0tPicKKy0tLS0tLS0t
CitSZWRpcmVjdCBjYXNlIDMsIGFmdGVyIGF0dGVtcHRlZCBjb29raWUgY3JlYXRpb24sIHNob3Vs
ZCByZWNlaXZlIG5vIGNvb2tpZS4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0
UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9uZWRD
b29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1y
ZWRpcmVjdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjAxZDYzYTUxNjg3OGEwODM4ZDI5OGU3NjNlMDNkMmViODQ2YTA5OWQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
YWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMDQgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hh
cnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMg
dGhhdCBibG9ja2luZyBpcyBhZGRlZCBtaWQtZmxpZ2h0IGluIHJlZGlyZWN0cy4iKTsKKyAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAu
MC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIjsKKyAgICBjb25zdCByZXNvdXJjZVBhdGggPSAiL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlP
cmlnaW4gKyByZXNvdXJjZVBhdGg7CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgPSAi
Zmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tp
ZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiJnZh
bHVlPXZhbHVlIjsKKyAgICBjb25zdCBwYXJ0aXRpb25lZENvb2tpZU5hbWUgPSAicGFydGl0aW9u
ZWRDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldFBhcnRpdGlvbmVkQ29va2llID0gIi9z
ZXQtY29va2llLnBocD9uYW1lPSIgKyBwYXJ0aXRpb25lZENvb2tpZU5hbWUgKyAiJnZhbHVlPXZh
bHVlIjsKKyAgICBjb25zdCByZXR1cm5VcmwgPSAiaHR0cDovLyIgKyBwYXJ0aXRpb25Ib3N0ICsg
Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC5odG1sIjsK
KyAgICBjb25zdCBzdWJQYXRoVG9HZXRDb29raWVzID0gIi9nZXQtY29va2llcy5waHA/bmFtZTE9
IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZuYW1lMj0iICsgcGFydGl0aW9uZWRDb29raWVO
YW1lOworICAgIGNvbnN0IHJlZGlyZWN0Q2hhaW5VcmwgPSAiaHR0cDovLyIgKyBwYXJ0aXRpb25I
b3N0ICsgcmVzb3VyY2VQYXRoICsgIi9yZWRpcmVjdC5waHA/cmVkaXJlY3RUbz0iICsgdGhpcmRQ
YXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzOworCisgICAgZnVuY3Rpb24gb3Blbklm
cmFtZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsK
KyAgICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2Fk
ID0gb25Mb2FkSGFuZGxlcjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGVsZW1lbnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAg
ICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAi
I3N0ZXAxIjoKKyAgICAgICAgICAgICAgICAvLyBTZXQgZmlyc3QtcGFydHkgY29va2llIGZvciBs
b2NhbGhvc3QuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJk
UGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIHJldHVy
blVybCArICIjc3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBjb29raWUgZ2V0
cyBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCBpcyBu
b3QgcHJldmFsZW50LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAi
c3RlcDMiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBz
dWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5
IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9
ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgLy8gTG9hZCBhbiBpZnJhbWUgaW4gYSByZWRpcmVj
dCBjaGFpbiB0aGF0IHN0YXJ0cyB3aXRoIDEyNy4wLjAuMSBhbmQgZW5kcyB3aXRoIGxvY2FsaG9z
dC4gRXhwZWN0IGEgY29va2llIGZvciBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAgb3Blbklm
cmFtZShyZWRpcmVjdENoYWluVXJsICsgIiZtZXNzYWdlPVJlZGlyZWN0IGNhc2UgMSwgc2hvdWxk
IHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICAvLyBT
ZXQgbG9jYWxob3N0IGFzIHByZXZhbGVudCB0byBwdXQgaXQgaW4gdGhlIGJsb2NraW5nIGNhdGVn
b3J5LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0
eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSAiI3N0ZXA1IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IG5vIGNvb2tpZSBnZXRz
IHNlbnQgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEgc2luY2UgbG9jYWxob3N0J3MgY29v
a2llcyBhcmUgYmxvY2tlZC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNo
ID0gInN0ZXA2IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJs
ICsgc3ViUGF0aFRvR2V0Q29va2llcyArICAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgbm8gY29v
a2llcy4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgIiNzdGVwNiI6CisgICAgICAgICAgICAgICAgLy8gTG9hZCBhbiBpZnJhbWUgaW4gYSByZWRp
cmVjdCBjaGFpbiB0aGF0IHN0YXJ0cyB3aXRoIDEyNy4wLjAuMSBhbmQgZW5kcyB3aXRoIGxvY2Fs
aG9zdC4gRXhwZWN0IG5vIGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDciOworICAgICAgICAgICAgICAgIG9wZW5JZnJh
bWUocmVkaXJlY3RDaGFpblVybCArICImbWVzc2FnZT1SZWRpcmVjdCBjYXNlIDIsIHNob3VsZCBy
ZWNlaXZlIG5vIGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgIiNzdGVwNyI6CisgICAgICAgICAgICAgICAgLy8gVHJ5IHRvIHNldCBj
b29raWUgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwOCI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFt
ZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldFBhcnRpdGlvbmVkQ29va2llICsgIiZt
ZXNzYWdlPVRyeSB0byBzZXQgdGhpcmQtcGFydHkgY29va2llIGluIGJsb2NrZWQgbW9kZS4iLCBy
dW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVw
OCI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBubyBjb29raWUgZ2V0cyBzZW50IGZv
ciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCdzIGNvb2tpZXMgYXJl
IGJsb2NrZWQuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVw
OSI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBh
dGhUb0dldENvb2tpZXMgKyAgIiZtZXNzYWdlPUFmdGVyIGF0dGVtcHRlZCBjb29raWUgY3JlYXRp
b24sIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwOSI6CisgICAgICAgICAgICAgICAgLy8g
TG9hZCBhbiBpZnJhbWUgaW4gYSByZWRpcmVjdCBjaGFpbiB0aGF0IHN0YXJ0cyB3aXRoIDEyNy4w
LjAuMSBhbmQgZW5kcyB3aXRoIGxvY2FsaG9zdC4gRXhwZWN0IG5vIGNvb2tpZSBmb3IgbG9jYWxo
b3N0LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEwIjsK
KyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHJlZGlyZWN0Q2hhaW5VcmwgKyAiJm1lc3NhZ2U9
UmVkaXJlY3QgY2FzZSAzLCBhZnRlciBhdHRlbXB0ZWQgY29va2llIGNyZWF0aW9uLCBzaG91bGQg
cmVjZWl2ZSBubyBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlICIjc3RlcDEwIjoKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IHdhcyBjbGFzc2lmaWVkIGFzIHByZXZh
bGVudCByZXNvdXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2ggPSAic3RlcDEiOworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9
KTsKKyAgICB9IGVsc2UgeworICAgICAgICBydW5UZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRh
dGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljYjc5OTQzZWQ4YjQ5YTg0MWJkMTI5YjNmNWFjYTZl
MmEzYjIxYmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRh
dGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0IGZvciBjb29raWUgYmxv
Y2tpbmcgd2hlbiB3ZWIgd29ya2VycyBpbXBvcnQgY3Jvc3Mtc2l0ZSBzY3JpcHRzLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBEaWQgcmVjZWl2ZSBmaXJzdFBhcnR5Q29v
a2llID09IHZhbHVlCitQQVNTIERpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgZmlyc3RQYXJ0
eUNvb2tpZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQg
cmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0
UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29v
a2llPXZhbHVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxv
Y2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uY2MyMDEwODUxMDY1YWNhODRhMmEyZjhlOTk3OTA3ODE4NTdmYjE5YgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9j
a2luZy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsx
LDg4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxz
Y3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgY29va2llIGJsb2NraW5nIHdo
ZW4gd2ViIHdvcmtlcnMgaW1wb3J0IGNyb3NzLXNpdGUgc2NyaXB0cy4iKTsKKyAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgw
MDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
IjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyAiL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29v
a2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJz
dFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2ll
TmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHJldHVyblVybCA9ICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29ya2Vy
LXNjcmlwdC1pbXBvcnQuaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIv
Z2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZTsKKworICAgIGZ1
bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVu
dC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBl
bGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAgICBsZXQgcmVjZWl2ZWRN
ZXNzYWdlcyA9IDA7CisgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAg
ICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7
CisKKyAgICAgICAgKytyZWNlaXZlZE1lc3NhZ2VzOworICAgICAgICBpZiAocmVjZWl2ZWRNZXNz
YWdlcyA+PSAyKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hK
U1Rlc3QpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0
aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAg
ZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0
Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIHJldHVyblVybCArICIjc3RlcDIiOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAg
ICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBvcGVu
SWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2Fn
ZT1TaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDQiOworICAgICAgICAgICAgICAgIGxl
dCB3MSA9IG5ldyBXb3JrZXIoInJlc291cmNlcy93b3JrZXItaW1wb3J0aW5nLWxvY2FsaG9zdC1z
Y3JpcHQuanMiKTsKKyAgICAgICAgICAgICAgICB3MS5vbm1lc3NhZ2UgPSByZWNlaXZlTWVzc2Fn
ZTsKKyAgICAgICAgICAgICAgICB3MS5wb3N0TWVzc2FnZSgic2hvdWxkUmVjZWl2ZUNvb2tpZXM9
dHJ1ZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0
IjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA1IjsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0
aGlyZFBhcnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlP
cmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90
IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
IiNzdGVwNSI6CisgICAgICAgICAgICAgICAgbGV0IHcyID0gbmV3IFdvcmtlcigicmVzb3VyY2Vz
L3dvcmtlci1pbXBvcnRpbmctbG9jYWxob3N0LXNjcmlwdC5qcyIpOworICAgICAgICAgICAgICAg
IHcyLm9ubWVzc2FnZSA9IHJlY2VpdmVNZXNzYWdlOworICAgICAgICAgICAgICAgIHcyLnBvc3RN
ZXNzYWdlKCJzaG91bGROb3RSZWNlaXZlQ29va2llcyIpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09
IHBhcnRpdGlvbkhvc3QgJiYgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIgJiYgd2luZG93
LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNl
dFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAg
ICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQ
YXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IHdhcyBj
bGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLiIp
OworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAg
ICAgICBydW5UZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2Fw
LWNhY2hlLW1heC1hZ2UtZm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNh
Y2hlLW1heC1hZ2UtZm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGNjZTVhYTFjMzZhOTRkNTUwYmRlMjI5YWRlNDQ2ZmY4MzU1YzFjYgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jYXAtY2FjaGUtbWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0cyB0aGF0IGNhY2hlIG1heC1hZ2UgaXMg
Y2FwcGVkIGZvciBwcmV2YWxlbnQgcmVzb3VyY2VzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBsb2FkZWRVcmwgaXMgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXF1ZXJ5LnBocD92YWx1ZT0xMjM0IgorUEFT
UyBsb2FkZWRVcmwgaXMgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3Jlc291cmNlcy9lY2hvLXF1ZXJ5LnBocD92YWx1ZT00MzIxIgorUEFTUyBsb2FkZWRVcmwg
aXMgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNl
cy9lY2hvLXF1ZXJ5LnBocD92YWx1ZT0iCitQQVNTIGxvYWRlZFVybCBpcyAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhw
P3ZhbHVlPSIKK1BBU1MgbG9hZGVkVXJsIGlzICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9IgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUt
bWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1hZ2UtZm9y
LXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2NGE0NTE4YTgz
Mzk0NjA5MDczMzM3M2YxZjYwMjE2M2FhYjkzMmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1hZ2Ut
Zm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTEzIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2FwcGVkIENhY2hl
IE1heC1BZ2U8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0
aW9uKCJUZXN0cyB0aGF0IGNhY2hlIG1heC1hZ2UgaXMgY2FwcGVkIGZvciBwcmV2YWxlbnQgcmVz
b3VyY2VzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgdmFyIGxvYWRlZFVy
bDsKKyAgICBmdW5jdGlvbiBmaXJzdEZldGNoKCkgeworICAgICAgICAvLyBUaGlzIHNob3VsZCBj
cmVhdGUgYSBjYXBwZWQgY2FjaGUgZW50cnkuCisgICAgICAgIGZldGNoKCJodHRwOi8vbG9jYWxo
b3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvY2FjaGVkLXBlcm1hbmVu
dC1yZWRpcmVjdC5waHAiLAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhY2hlOiAi
cmVsb2FkIiwKKyAgICAgICAgICAgICAgICBoZWFkZXJzOiB7CisgICAgICAgICAgICAgICAgICAg
ICJYLVdlYktpdCI6ICIxMjM0IiwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Cisg
ICAgICAgICkudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgbG9hZGVkVXJs
ID0gcmVzcG9uc2UudXJsOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsb2Fk
ZWRVcmwiLCAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVz
b3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPTEyMzQiKTsKKyAgICAgICAgICAgIHNlY29uZEZl
dGNoKCk7CisgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgICAgICB0
ZXN0RmFpbGVkKGVycm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
c2Vjb25kRmV0Y2goKSB7CisgICAgICAgIC8vIFRoaXMgc2hvdWxkIG5vdCB0cmlnZ2VyIGEgc3Vj
Y2Vzc2Z1bCBjYWNoZSBoaXQgYW5kIGluc3RlYWQgY3JlYXRlIGFub3RoZXIgY2FwcGVkIGNhY2hl
IGVudHJ5LgorICAgICAgICBmZXRjaCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2NhY2hlZC1wZXJtYW5lbnQtcmVkaXJlY3QucGhwIiwKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjYWNoZTogImZvcmNlLWNhY2hlIiwKKyAgICAg
ICAgICAgICAgICBoZWFkZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICJYLVdlYktpdCI6ICI0
MzIxIiwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICkudGhlbihm
dW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgbG9hZGVkVXJsID0gcmVzcG9uc2UudXJs
OworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsb2FkZWRVcmwiLCAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVl
cnkucGhwP3ZhbHVlPTQzMjEiKTsKKyAgICAgICAgICAgIHRoaXJkRmV0Y2goKTsKKyAgICAgICAg
fSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoZXJyb3Iu
bWVzc2FnZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rl
c3QpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0aGlyZEZldGNoKCkgewor
ICAgICAgICAvLyBUaGlzIHNob3VsZCBub3QgdHJpZ2dlciBhIHN1Y2Nlc3NmdWwgY2FjaGUgaGl0
IGFuZCBpbnN0ZWFkIGNyZWF0ZSBhbm90aGVyIGNhcHBlZCBjYWNoZSBlbnRyeS4KKyAgICAgICAg
ZmV0Y2goImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291
cmNlcy9jYWNoZWQtcGVybWFuZW50LXJlZGlyZWN0LnBocCIsCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgY2FjaGU6ICJmb3JjZS1jYWNoZSIsCisgICAgICAgICAgICB9CisgICAgICAg
ICkudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgbG9hZGVkVXJsID0gcmVz
cG9uc2UudXJsOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsb2FkZWRVcmwi
LCAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2Vz
L2VjaG8tcXVlcnkucGhwP3ZhbHVlPSIpOworICAgICAgICAgICAgZm91cnRoRmV0Y2goKTsKKyAg
ICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
ZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5p
c2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmb3VydGhGZXRj
aCgpIHsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgbm90IHRyaWdnZXIgYSBzdWNjZXNzZnVsIGNh
Y2hlIGhpdCBidXQgY2xlYXIgY2FwcGluZy4KKyAgICAgICAgZmV0Y2goImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9jYWNoZWQtcGVybWFuZW50
LXJlZGlyZWN0LnBocCIsCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY2FjaGU6ICJm
b3JjZS1jYWNoZSIsCisgICAgICAgICAgICB9CisgICAgICAgICkudGhlbihmdW5jdGlvbihyZXNw
b25zZSkgeworICAgICAgICAgICAgbG9hZGVkVXJsID0gcmVzcG9uc2UudXJsOworICAgICAgICAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsb2FkZWRVcmwiLCAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVl
PSIpOworICAgICAgICAgICAgZmlmdGhGZXRjaCgpOworICAgICAgICB9KS5jYXRjaChmdW5jdGlv
bihlcnJvcikgeworICAgICAgICAgICAgdGVzdEZhaWxlZChlcnJvci5tZXNzYWdlKTsKKyAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0p
OworICAgIH0KKworICAgIGZ1bmN0aW9uIGZpZnRoRmV0Y2goKSB7CisgICAgICAgIC8vIFRoaXMg
c2hvdWxkIHRyaWdnZXIgYSByZWd1bGFyLCBzdWNjZXNzZnVsIGNhY2hlIGhpdC4KKyAgICAgICAg
ZmV0Y2goImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291
cmNlcy9jYWNoZWQtcGVybWFuZW50LXJlZGlyZWN0LnBocCIsCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgaGVhZGVyczogeworICAgICAgICAgICAgICAgICAgICAiWC1XZWJLaXQiOiAi
MTIzNCIsCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICApLnRoZW4o
ZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGxvYWRlZFVybCA9IHJlc3BvbnNlLnVy
bDsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibG9hZGVkVXJsIiwgImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXF1
ZXJ5LnBocD92YWx1ZT0iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKGVycm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfQorICAgIHRlc3RS
dW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
IkxvY2FsaG9zdCB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRo
ZSB0ZXN0IHN0YXJ0ZWQuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzQ2Fj
aGVNYXhBZ2VDYXAoMCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhmaXJzdEZldGNo
KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
YXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1s
aWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDg0NjIwZDZkMzMxMjExNjQ1MWE4YTU5Yzg0YmU2MTc2NGM0NmUzMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
YXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTEgQEAKK0NoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3Jp
cHQgd2l0aCBtYXgtYWdlIG9yIGV4cGlyeSBsb25nZXIgdGhhbiBhIHdlZWsgZ2V0IGNhcHBlZCB0
byBhIHdlZWsuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSB0d28g
c2hvcnQtbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDE3MjgzMCBz
ZWNvbmRzLgorUEFTUyBUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0
ZXIgbW9yZSB0aGFuIDYwNDgzMCBzZWNvbmRzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQt
aW4tanMtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtZGF0YWJhc2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lMmZmZDA0MWFlMzJkZTI4NjAzYjgxOTEwMzBjZThhMzA1ZDI2MjZi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS5o
dG1sCkBAIC0wLDAgKzEsODMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkNo
ZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgd2l0aCBtYXgtYWdlIG9yIGV4
cGlyeSBsb25nZXIgdGhhbiBhIHdlZWsgZ2V0IGNhcHBlZCB0byBhIHdlZWsuIik7CisgICAganNU
ZXN0SXNBc3luYyA9IHRydWU7CisgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKworICAgIGlmIChpbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKworICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7Cisg
ICAgZnVuY3Rpb24gY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZURhdGEs
IG1heEFnZUluU2Vjb25kcykgeworICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKKyAgICAg
ICAgbGV0IG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA9IG5vdy5nZXRUaW1lKCkgKyAobWF4
QWdlSW5TZWNvbmRzICogMTAwMCk7CisKKyAgICAgICAgaWYgKG1heEV4cGlyeURhdGVJbk1pbGxp
c2Vjb25kcyA+IGNvb2tpZURhdGFbImV4cGlyZXMiXSkKKyAgICAgICAgICAgICsrcGFzc2VkVGVz
dHM7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBuYW1lZCAi
ICsgY29va2llRGF0YVsibmFtZSJdICsgIiBleHBpcmVzIGluIG1vcmUgdGhhbiAiICsgbWF4QWdl
SW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgIH0KKworICAgIGNvbnN0IHR3b0RheXNJblNl
Y29uZHMgPSAyICogMjQgKiA2MCAqIDYwOworICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVNYXhB
Z2UgPSB7IG5hbWUgOiAic2hvcnRMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1B
Z2U9IiArIHR3b0RheXNJblNlY29uZHMgKyAiOyIgfTsKKyAgICBkb2N1bWVudC5jb29raWUgPSBz
aG9ydExpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29r
aWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICBjb25zdCB0d29EYXlzQXNFeHBp
cmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsK
KyAgICBjb25zdCBzaG9ydExpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJzaG9ydExpdmVk
Q29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3b0RheXNBc0V4cGlyZXNE
YXRlICsgIjsiIH07CisgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZUV4cGly
ZXMubmFtZSArICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUg
KyAiIHBhdGg9LyI7CisKKyAgICBjb25zdCBvbmVXZWVrSW5TZWNvbmRzID0gNyAqIDI0ICogNjAg
KiA2MDsKKyAgICBjb25zdCB0d29XZWVrc0luU2Vjb25kcyA9IDIgKiBvbmVXZWVrSW5TZWNvbmRz
OworICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJsb25nTGl2ZWRD
b29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d29XZWVrc0luU2Vjb25kcyAr
ICI7IiB9OworICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1l
ICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9
LyI7CisKKyAgICBjb25zdCB0d29XZWVrc0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0
ZUZyb21NYXhBZ2UodHdvV2Vla3NJblNlY29uZHMpOworICAgIGNvbnN0IGxvbmdMaXZlZENvb2tp
ZUV4cGlyZXMgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDog
IkV4cGlyZXM9IiArIHR3b1dlZWtzQXNFeHBpcmVzRGF0ZSArICI7IiB9OworICAgIGRvY3VtZW50
LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgbG9u
Z0xpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgIGNvbnN0IG92
ZXJUd29EYXlzSW5TZWNvbmRzID0gdHdvRGF5c0luU2Vjb25kcyArIDMwOworICAgIGNvbnN0IG92
ZXJPbmVXZWVrSW5TZWNvbmRzID0gb25lV2Vla0luU2Vjb25kcyArIDMwOworICAgIGlmIChpbnRl
cm5hbHMpIHsKKyAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOwor
ICAgICAgICBpZiAoIWNvb2tpZXMubGVuZ3RoKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8g
Y29va2llcyBmb3VuZC4iKTsKKyAgICAgICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsK
KyAgICAgICAgICAgIHN3aXRjaCAoY29va2llLm5hbWUpIHsKKyAgICAgICAgICAgICAgICBjYXNl
IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tU
aGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3b0RheXNJblNlY29uZHMp
OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIHNob3J0
TGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENv
b2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJUd29EYXlzSW5TZWNvbmRzKTsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRD
b29raWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9l
c05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZVdlZWtJblNlY29uZHMpOworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZUV4
cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4
cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZVdlZWtJblNlY29uZHMpOworICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJlc2V0Q29v
a2llc0ZvckN1cnJlbnRPcmlnaW4oKTsKKworICAgICAgICBpZiAocGFzc2VkVGVzdHMgPT09IDQp
IHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBk
b24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBvdmVyVHdvRGF5c0luU2Vjb25kcyArICIg
c2Vjb25kcy4iKTsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gbG9uZy1saXZlZCBj
b29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJPbmVXZWVrSW5TZWNv
bmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkF0IGxlYXN0IG9uZSBjb29raWUncyBleHBpcnkgYXR0cmlidXRlIHdhcyBiZXlvbmQgdGhl
IHRlc3QgdGhyZXNob2xkcy4iKTsKKyAgICB9IGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiTm8g
aW50ZXJuYWxzIG9iamVjdC4iKTsKKworICAgIGlmIChpbnRlcm5hbHMpCisgICAgICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGlt
ZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmst
ZGVjb3JhdGlvbi1zYW1lLXNpdGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0
OTU0NWEwMzRkM2FmMjU5MGM5OTMzN2QyMzA1YTliZWZkYmE0MTAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxp
ZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0
ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorQ2hlY2sgdGhhdCBjb29r
aWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBhZnRlciBhIHNhbWUtc2l0ZSBuYXZpZ2F0aW9uIHdp
dGggbGluayBkZWNvcmF0aW9uIGRvbid0IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSB0d28gbG9uZy1saXZlZCBjb29raWVz
IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gODY0MzAgc2Vjb25kcy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1j
b29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBl
ZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1l
LXNpdGUtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZDA5OTkxYjNmYThhY2Q0ODE5OWE4NTMy
MzRkMjVhYjI4OTE1ZGMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1p
bi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUtZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDg2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iL2Nvb2tpZXMvcmVzb3VyY2VzL2Nvb2tpZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1blRlc3QoKScsIDApIj4KKzxzY3JpcHQ+CisgICAg
ZGVzY3JpcHRpb24oIkNoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0
ZXIgYSBzYW1lLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgZGVjb3JhdGlvbiBkb24ndCBnZXQg
Y2FwcGVkIHRvIDI0IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAg
ZnVuY3Rpb24gdGVzdENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7CisK
KyAgICAgICAgZnVuY3Rpb24gY2hlY2tUaGF0Q29va2llRG9lc0V4cGlyZUFmdGVyKGNvb2tpZURh
dGEsIG1heEFnZUluU2Vjb25kcykgeworICAgICAgICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7
CisgICAgICAgICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93LmdldFRp
bWUoKSArIChtYXhBZ2VJblNlY29uZHMgKiAxMDAwKTsKKworICAgICAgICAgICAgaWYgKG1heEV4
cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA8IGNvb2tpZURhdGFbImV4cGlyZXMiXSkKKyAgICAgICAg
ICAgICAgICArK3Bhc3NlZFRlc3RzOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkNvb2tpZSBuYW1lZCAiICsgY29va2llRGF0YVsibmFtZSJdICsgIiBleHBp
cmVzIGluIGxlc3MgdGhhbiAiICsgbWF4QWdlSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAg
ICAgICB9CisKKyAgICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0gMjQgKiA2MCAqIDYwOwor
ICAgICAgICBjb25zdCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIG9uZURheUluU2Vjb25kczsKKyAg
ICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogImxvbmdMaXZlZENv
b2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b0RheXNJblNlY29uZHMgKyAi
OyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5h
bWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0
aD0vIjsKKworICAgICAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGly
ZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3QgbG9uZ0xp
dmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlm
ZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAg
ICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29i
YXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisg
ICAgICAgIGNvbnN0IG92ZXJPbmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMgKyAzMDsK
KyAgICAgICAgaWYgKGludGVybmFscykgeworICAgICAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRl
cm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAgICAg
ICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2gg
KGNvb2tpZS5uYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2ll
TWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2Vz
RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tp
ZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURv
ZXNFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAgICAg
IGlmIChwYXNzZWRUZXN0cyA9PT0gMikgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRo
ZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJP
bmVEYXlJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJp
YnV0ZSB3YXMgYmVsb3cgdGhlIHRlc3QgdGhyZXNob2xkcy4iKTsKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOworCisgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aHJlZiA9IHByZXZhbGVudFJlc291cmNlT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlv
bi1zYW1lLXNpdGUuaHRtbD9saW5rPWRlY29yYXRpb24jZnJhZ21lbnQiOworICAgIH0KKworICAg
IGNvbnN0IGRlc3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAg
Y29uc3QgcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsK
KyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24u
b3JpZ2luID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiAmJiBkb2N1bWVudC5sb2NhdGlvbi5o
YXNoICE9PSAiI2ZyYWdtZW50IikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBE
YXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2ll
QmxvY2tpbmcobmF2aWdhdGVDcm9zc09yaWdpbik7CisgICAgICAgICAgICAgICAgfSk7CisKKyAg
ICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdENvb2tpZXMo
KTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBl
ZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1w
cmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2ll
LXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3YmFkMDMyYzZmMjI0NTczYTMzNWQzZjcw
NDE5ZGNiNGJlNDNhMTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWlu
LWpzLXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQg
YnkgSmF2YVNjcmlwdCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgZnJh
Z21lbnQgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgVGhlIHR3byBzaG9ydC1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRl
ciBtb3JlIHRoYW4gNDMyMzAgc2Vjb25kcy4KK1BBU1MgVGhlIHR3byBsb25nLWxpdmVkIGNvb2tp
ZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA4NjQzMCBzZWNvbmRzLgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRp
bWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50
LXJlc291cmNlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgt
bGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjVjODRmYjg5NGY5OWIzMjdjMTc3M2UyMDA3ZGMxMGQ5MWMyYTg3OTkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1m
cm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTAxIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2Nvb2tp
ZXMvcmVzb3VyY2VzL2Nvb2tpZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InNldFRpbWVvdXQoJ3J1blRlc3QoKScsIDApIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24o
IkNoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1z
aXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIGZyYWdtZW50IGdldCBjYXBwZWQgdG8gMjQgaG91cnMu
Iik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29va2ll
cygpIHsKKyAgICAgICAgbGV0IHBhc3NlZFRlc3RzID0gMDsKKyAgICAgICAgZnVuY3Rpb24gY2hl
Y2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZURhdGEsIG1heEFnZUluU2Vjb25k
cykgeworICAgICAgICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7CisgICAgICAgICAgICBsZXQg
bWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93LmdldFRpbWUoKSArIChtYXhBZ2VJblNl
Y29uZHMgKiAxMDAwKTsKKworICAgICAgICAgICAgaWYgKG1heEV4cGlyeURhdGVJbk1pbGxpc2Vj
b25kcyA+IGNvb2tpZURhdGFbImV4cGlyZXMiXSkKKyAgICAgICAgICAgICAgICArK3Bhc3NlZFRl
c3RzOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tp
ZSBuYW1lZCAiICsgY29va2llRGF0YVsibmFtZSJdICsgIiBleHBpcmVzIGluIG1vcmUgdGhhbiAi
ICsgbWF4QWdlSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICB9CisKKyAgICAgICAg
Y29uc3QgdHdlbHZlSG91cnNJblNlY29uZHMgPSAxMiAqIDYwICogNjA7CisgICAgICAgIGNvbnN0
IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUgOiAic2hvcnRMaXZlZENvb2tpZU1heEFn
ZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgIjsiIH07
CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZSAr
ICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0v
IjsKKworICAgICAgICBjb25zdCB0d2VsdmVIb3Vyc0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBp
cmVzRGF0ZUZyb21NYXhBZ2UodHdlbHZlSG91cnNJblNlY29uZHMpOworICAgICAgICBjb25zdCBz
aG9ydExpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJzaG9ydExpdmVkQ29va2llRXhwaXJl
cyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0ZSArICI7
IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5u
YW1lICsgIj1mb29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSArICIg
cGF0aD0vIjsKKworICAgICAgICBjb25zdCBvbmVEYXlJblNlY29uZHMgPSAyICogdHdlbHZlSG91
cnNJblNlY29uZHM7CisgICAgICAgIGNvbnN0IHR3b0RheXNJblNlY29uZHMgPSAyICogb25lRGF5
SW5TZWNvbmRzOworICAgICAgICBjb25zdCBsb25nTGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUg
OiAibG9uZ0xpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdvRGF5
c0luU2Vjb25kcyArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRD
b29raWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llTWF4QWdlLmxp
ZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3b0RheXNBc0V4cGlyZXNEYXRl
ID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3b0RheXNJblNlY29uZHMpOworICAgICAg
ICBjb25zdCBsb25nTGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tp
ZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d29EYXlzQXNFeHBpcmVzRGF0ZSAr
ICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVFeHBpcmVz
Lm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAi
IHBhdGg9LyI7CisKKyAgICAgICAgY29uc3Qgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzID0gdHdl
bHZlSG91cnNJblNlY29uZHMgKyAzMDsKKyAgICAgICAgY29uc3Qgb3Zlck9uZURheUluU2Vjb25k
cyA9IG9uZURheUluU2Vjb25kcyArIDMwOworICAgICAgICBpZiAoaW50ZXJuYWxzKSB7CisgICAg
ICAgICAgICBsZXQgY29va2llcyA9IGludGVybmFscy5nZXRDb29raWVzKCk7CisgICAgICAgICAg
ICBpZiAoIWNvb2tpZXMubGVuZ3RoKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGNv
b2tpZXMgZm91bmQuIik7CisgICAgICAgICAgICBmb3IgKGxldCBjb29raWUgb2YgY29va2llcykg
eworICAgICAgICAgICAgICAgIHN3aXRjaCAoY29va2llLm5hbWUpIHsKKyAgICAgICAgICAgICAg
ICAgICAgY2FzZSBzaG9ydExpdmVkQ29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAg
ICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdl
bHZlSG91cnNJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29r
aWUsIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29raWVNYXhBZ2UubmFt
ZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVB
ZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llRXhwaXJl
cy5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4
cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIHJlc2V0Q29va2llc0ZvckN1cnJlbnRPcmlnaW4oKTsKKworICAgICAgICAgICAgaWYg
KHBhc3NlZFRlc3RzID09PSA0KSB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3
byBzaG9ydC1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92
ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIg
bW9yZSB0aGFuICIgKyBvdmVyT25lRGF5SW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQXQgbGVhc3Qgb25lIGNv
b2tpZSdzIGV4cGlyeSBhdHRyaWJ1dGUgd2FzIGJleW9uZCB0aGUgdGVzdCB0aHJlc2hvbGRzLiIp
OworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGludGVybmFscyBv
YmplY3QuIik7CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBuYXZpZ2F0ZUNyb3NzT3JpZ2luKCkgeworICAgICAg
ICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gZGVzdGluYXRpb25PcmlnaW4gKyAiL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgt
bGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sI2xpbms9ZnJhZ21lbnQi
OworICAgIH0KKworICAgIGNvbnN0IGRlc3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCI7CisgICAgY29uc3QgcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwIjsKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9j
dW1lbnQubG9jYXRpb24ub3JpZ2luID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNl
T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3Jp
Z2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBn
ZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcobmF2aWdhdGVDcm9zc09yaWdp
bik7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgdGVzdENvb2tpZXMoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1p
bi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNl
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1s
aW5rLXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmU5OGRjOGY5MGUyZGExYjE5ODNiNDhkYzE4NmVhZDdh
Njk2NWQ3YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0
aC1saW5rLXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0
ZWQgYnkgSmF2YVNjcmlwdCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsg
cXVlcnkgYW5kIGZyYWdtZW50IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBkb24n
dCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDQzMjMwIHNlY29uZHMuCitQQVNTIFRoZSB0d28gbG9u
Zy1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gODY0MzAgc2Vjb25k
cy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQt
ZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9y
LWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZh
bGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1OTFlYjRlOTU4ZmIxYjUw
ZGI3ZjgyMmEyMDBlY2NjNjczODI0MTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQt
cmVzb3VyY2UtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDEwMSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9j
b29raWUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdy
dW5UZXN0KCknLCAwKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IGNv
b2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9u
IHdpdGggbGluayBxdWVyeSBhbmQgZnJhZ21lbnQgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4iKTsK
KyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0aW9uIHRlc3RDb29raWVzKCkg
eworICAgICAgICBsZXQgcGFzc2VkVGVzdHMgPSAwOworICAgICAgICBmdW5jdGlvbiBjaGVja1Ro
YXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llRGF0YSwgbWF4QWdlSW5TZWNvbmRzKSB7
CisgICAgICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKKyAgICAgICAgICAgIGxldCBtYXhF
eHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPSBub3cuZ2V0VGltZSgpICsgKG1heEFnZUluU2Vjb25k
cyAqIDEwMDApOworCisgICAgICAgICAgICBpZiAobWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRz
ID4gY29va2llRGF0YVsiZXhwaXJlcyJdKQorICAgICAgICAgICAgICAgICsrcGFzc2VkVGVzdHM7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5h
bWVkICIgKyBjb29raWVEYXRhWyJuYW1lIl0gKyAiIGV4cGlyZXMgaW4gbW9yZSB0aGFuICIgKyBt
YXhBZ2VJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgIH0KKworICAgICAgICBjb25z
dCB0d2VsdmVIb3Vyc0luU2Vjb25kcyA9IDEyICogNjAgKiA2MDsKKyAgICAgICAgY29uc3Qgc2hv
cnRMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJzaG9ydExpdmVkQ29va2llTWF4QWdlIiwg
bGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdlbHZlSG91cnNJblNlY29uZHMgKyAiOyIgfTsKKyAg
ICAgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1m
b29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8iOwor
CisgICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNE
YXRlRnJvbU1heEFnZSh0d2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgIGNvbnN0IHNob3J0
TGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogInNob3J0TGl2ZWRDb29raWVFeHBpcmVzIiwg
bGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdlbHZlSG91cnNBc0V4cGlyZXNEYXRlICsgIjsiIH07
CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLm5hbWUg
KyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRo
PS8iOworCisgICAgICAgIGNvbnN0IG9uZURheUluU2Vjb25kcyA9IDIgKiB0d2VsdmVIb3Vyc0lu
U2Vjb25kczsKKyAgICAgICAgY29uc3QgdHdvRGF5c0luU2Vjb25kcyA9IDIgKiBvbmVEYXlJblNl
Y29uZHM7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJs
b25nTGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d29EYXlzSW5T
ZWNvbmRzICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tp
ZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVNYXhBZ2UubGlmZXRp
bWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdvRGF5c0FzRXhwaXJlc0RhdGUgPSBj
cmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdvRGF5c0luU2Vjb25kcyk7CisgICAgICAgIGNv
bnN0IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llRXhw
aXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3b0RheXNBc0V4cGlyZXNEYXRlICsgIjsi
IH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFt
ZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSArICIgcGF0
aD0vIjsKKworICAgICAgICBjb25zdCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMgPSB0d2VsdmVI
b3Vyc0luU2Vjb25kcyArIDMwOworICAgICAgICBjb25zdCBvdmVyT25lRGF5SW5TZWNvbmRzID0g
b25lRGF5SW5TZWNvbmRzICsgMzA7CisgICAgICAgIGlmIChpbnRlcm5hbHMpIHsKKyAgICAgICAg
ICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKTsKKyAgICAgICAgICAgIGlm
ICghY29va2llcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gY29va2ll
cyBmb3VuZC4iKTsKKyAgICAgICAgICAgIGZvciAobGV0IGNvb2tpZSBvZiBjb29raWVzKSB7Cisg
ICAgICAgICAgICAgICAgc3dpdGNoIChjb29raWUubmFtZSkgeworICAgICAgICAgICAgICAgICAg
ICBjYXNlIHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJUd2VsdmVI
b3Vyc0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICAgICAgY2FzZSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAg
ICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwg
b3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lOgor
ICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVy
KGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5h
bWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJl
QWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgcmVzZXRDb29raWVzRm9yQ3VycmVudE9yaWdpbigpOworCisgICAgICAgICAgICBpZiAocGFz
c2VkVGVzdHMgPT09IDQpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIHNo
b3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3ZlclR3
ZWx2ZUhvdXJzSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIlRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3Jl
IHRoYW4gIiArIG92ZXJPbmVEYXlJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2ll
J3MgZXhwaXJ5IGF0dHJpYnV0ZSB3YXMgYmV5b25kIHRoZSB0ZXN0IHRocmVzaG9sZHMuIik7Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gaW50ZXJuYWxzIG9iamVj
dC4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIG5hdmlnYXRlQ3Jvc3NPcmlnaW4oKSB7CisgICAgICAgIGRv
Y3VtZW50LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbk9yaWdpbiArICIvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5r
LXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sP2xpbms9cXVl
cnkjbGluaz1mcmFnbWVudCI7CisgICAgfQorCisgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4g
PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCBwcmV2YWxlbnRSZXNvdXJjZU9y
aWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7
CisgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHByZXZhbGVudFJlc291
cmNlT3JpZ2luKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRy
dWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
cHJldmFsZW50UmVzb3VyY2VPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJl
dmFsZW50UmVzb3VyY2VPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhu
YXZpZ2F0ZUNyb3NzT3JpZ2luKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0Q29va2llcygpOworICAgICAg
ICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1l
LWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNv
dXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdp
dGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDQ1ZGQxNmMyZWUwMTA4MGUzYzFmMWI0MDIwNmI2NmE4MDJlMGFjMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1
ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDExIEBACitDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVy
IGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBxdWVyeSBnZXQgY2FwcGVkIHRvIDI0
IGhvdXJzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgdHdvIHNo
b3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA0MzIzMCBzZWNv
bmRzLgorUEFTUyBUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIg
bW9yZSB0aGFuIDg2NDMwIHNlY29uZHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1q
cy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlm
ZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50
LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjVmMDk3NmIyNDg2NjY2ODljMTgx
YWE1OTVmMGMxOGZmNmFmMDUwYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
Lmh0bWwKQEAgLTAsMCArMSwxMDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgor
PHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkg
SmF2YVNjcmlwdCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVlcnkg
Z2V0IGNhcHBlZCB0byAyNCBob3Vycy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
ICAgIGZ1bmN0aW9uIHRlc3RDb29raWVzKCkgeworICAgICAgICBsZXQgcGFzc2VkVGVzdHMgPSAw
OworICAgICAgICBmdW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29v
a2llRGF0YSwgbWF4QWdlSW5TZWNvbmRzKSB7CisgICAgICAgICAgICBsZXQgbm93ID0gbmV3IERh
dGUoKTsKKyAgICAgICAgICAgIGxldCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPSBub3cu
Z2V0VGltZSgpICsgKG1heEFnZUluU2Vjb25kcyAqIDEwMDApOworCisgICAgICAgICAgICBpZiAo
bWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID4gY29va2llRGF0YVsiZXhwaXJlcyJdKQorICAg
ICAgICAgICAgICAgICsrcGFzc2VkVGVzdHM7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5hbWVkICIgKyBjb29raWVEYXRhWyJuYW1lIl0gKyAi
IGV4cGlyZXMgaW4gbW9yZSB0aGFuICIgKyBtYXhBZ2VJblNlY29uZHMgKyAiIHNlY29uZHMuIik7
CisgICAgICAgIH0KKworICAgICAgICBjb25zdCB0d2VsdmVIb3Vyc0luU2Vjb25kcyA9IDEyICog
NjAgKiA2MDsKKyAgICAgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6
ICJzaG9ydExpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdlbHZl
SG91cnNJblNlY29uZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRM
aXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llTWF4
QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzQXNF
eHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d2VsdmVIb3Vyc0luU2Vj
b25kcyk7CisgICAgICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDog
InNob3J0TGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdlbHZl
SG91cnNBc0V4cGlyZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNo
b3J0TGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29r
aWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG9uZURheUlu
U2Vjb25kcyA9IDIgKiB0d2VsdmVIb3Vyc0luU2Vjb25kczsKKyAgICAgICAgY29uc3QgdHdvRGF5
c0luU2Vjb25kcyA9IDIgKiBvbmVEYXlJblNlY29uZHM7CisgICAgICAgIGNvbnN0IGxvbmdMaXZl
ZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGlt
ZSA6ICJNYXgtQWdlPSIgKyB0d29EYXlzSW5TZWNvbmRzICsgIjsiIH07CisgICAgICAgIGRvY3Vt
ZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBs
b25nTGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29u
c3QgdHdvRGF5c0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdv
RGF5c0luU2Vjb25kcyk7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMgPSB7
IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiAr
IHR3b0RheXNBc0V4cGlyZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9
IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29v
a2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCBvdmVyVHdl
bHZlSG91cnNJblNlY29uZHMgPSB0d2VsdmVIb3Vyc0luU2Vjb25kcyArIDMwOworICAgICAgICBj
b25zdCBvdmVyT25lRGF5SW5TZWNvbmRzID0gb25lRGF5SW5TZWNvbmRzICsgMzA7CisgICAgICAg
IGlmIChpbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdl
dENvb2tpZXMoKTsKKyAgICAgICAgICAgIGlmICghY29va2llcy5sZW5ndGgpCisgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiTm8gY29va2llcyBmb3VuZC4iKTsKKyAgICAgICAgICAgIGZvciAo
bGV0IGNvb2tpZSBvZiBjb29raWVzKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjb29raWUu
bmFtZSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRDb29raWVNYXhBZ2Uu
bmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBp
cmVBZnRlcihjb29raWUsIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBzaG9ydExpdmVkQ29v
a2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2ll
RG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxv
bmdMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tU
aGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7
CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBj
aGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNv
bmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVzZXRDb29raWVzRm9yQ3VycmVudE9yaWdp
bigpOworCisgICAgICAgICAgICBpZiAocGFzc2VkVGVzdHMgPT09IDQpIHsKKyAgICAgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJl
IGFmdGVyIG1vcmUgdGhhbiAiICsgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgIiBzZWNvbmRz
LiIpOworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gbG9uZy1saXZlZCBjb29r
aWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJPbmVEYXlJblNlY29uZHMg
KyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJpYnV0ZSB3YXMgYmV5b25k
IHRoZSB0ZXN0IHRocmVzaG9sZHMuIik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVz
dEZhaWxlZCgiTm8gaW50ZXJuYWxzIG9iamVjdC4iKTsKKyAgICAgICAgCisgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
bmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9
IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQt
cmVzb3VyY2UuaHRtbD9saW5rPXF1ZXJ5IjsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5hdGlv
bk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHByZXZhbGVudFJl
c291cmNlT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24gcnVu
VGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJldmFs
ZW50UmVzb3VyY2VPcmlnaW4pIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0
YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJs
b2NraW5nKG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOworCisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RDb29raWVzKCk7
CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQt
bGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJv
bS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29v
a2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNv
dXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JmNjQ5YTU3ZTEzNjRjMDYw
NjQ1Njk0MTMwNDU0MTEzNzQ1ODMwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tp
ZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3Vy
Y2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0NoZWNrIHRoYXQgY29v
a2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24g
d2l0aG91dCBsaW5rIGRlY29yYXRpb24gZG9uJ3QgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHR3byBsb25nLWxpdmVkIGNv
b2tpZXMgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA4NjQzMCBzZWNvbmRzLgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUt
Zm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxl
bnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0
aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hZTQ3YjQ5NDg3ZTg5NjcyOWQwYTRiNzc3MGI1MWQ3ODNmNGU4Y2YwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmst
ZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAg
KzEsODYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAgICBk
ZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBhZnRl
ciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRob3V0IGxpbmsgZGVjb3JhdGlvbiBkb24ndCBn
ZXQgY2FwcGVkIHRvIDI0IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisg
ICAgZnVuY3Rpb24gdGVzdENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7
CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tUaGF0Q29va2llRG9lc0V4cGlyZUFmdGVyKGNvb2tp
ZURhdGEsIG1heEFnZUluU2Vjb25kcykgeworICAgICAgICAgICAgbGV0IG5vdyA9IG5ldyBEYXRl
KCk7CisgICAgICAgICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93Lmdl
dFRpbWUoKSArIChtYXhBZ2VJblNlY29uZHMgKiAxMDAwKTsKKworICAgICAgICAgICAgaWYgKG1h
eEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA8IGNvb2tpZURhdGFbImV4cGlyZXMiXSkKKyAgICAg
ICAgICAgICAgICArK3Bhc3NlZFRlc3RzOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBuYW1lZCAiICsgY29va2llRGF0YVsibmFtZSJdICsgIiBl
eHBpcmVzIGluIGxlc3MgdGhhbiAiICsgbWF4QWdlSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOwor
ICAgICAgICB9CisKKyAgICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0gMjQgKiA2MCAqIDYw
OworICAgICAgICBjb25zdCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIG9uZURheUluU2Vjb25kczsK
KyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogImxvbmdMaXZl
ZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b0RheXNJblNlY29uZHMg
KyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llTWF4QWdl
Lm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIg
cGF0aD0vIjsKKworICAgICAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4
cGlyZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3QgbG9u
Z0xpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwg
bGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAg
ICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1m
b29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOwor
CisgICAgICAgIGNvbnN0IG92ZXJPbmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMgKyAz
MDsKKyAgICAgICAgaWYgKGludGVybmFscykgeworICAgICAgICAgICAgbGV0IGNvb2tpZXMgPSBp
bnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAg
ICAgICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAgICAgICBzd2l0
Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29v
a2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVE
b2VzRXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENv
b2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tp
ZURvZXNFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
CisgICAgICAgICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAg
ICAgIGlmIChwYXNzZWRUZXN0cyA9PT0gMikgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQo
IlRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92
ZXJPbmVEYXlJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0
dHJpYnV0ZSB3YXMgYmVsb3cgdGhlIHRlc3QgdGhyZXNob2xkcy4iKTsKKyAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOworICAgICAg
ICAgICAgCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxp
bmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sIjsKKyAgICB9CisKKyAg
ICBjb25zdCBkZXN0aW5hdGlvbk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAg
IGNvbnN0IHByZXZhbGVudFJlc291cmNlT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7
CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9u
Lm9yaWdpbiA9PT0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4pIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAg
ICAgICAgIH0pOworCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIHRlc3RDb29raWVzKCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRp
c3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4
ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBjMjU4Yjhl
MDA1ZDM1NTQxODJhZjA2ZDQ4MjU4M2FlNzdlNWExMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24t
cHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCitQQVNTIEhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0
YXRpc3RpY3MtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0
YXRpc3RpY3MtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZTAzZmQ4NzEyZWY5ZWRjOWIxODYy
ZjYzNmQxZTc0ZWE2ODhkODQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFz
ZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNl
dD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24g
TWl4ZWQgU3RhdGlzdGljczwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAg
ICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0
aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29u
c3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBj
b25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAg
IGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisK
KyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAg
dGVzdEZhaWxlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFz
c2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0
aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworCisgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmws
IGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJU
b3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lu
KHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwg
dG9wRnJhbWVPcmlnaW4zKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlz
dGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMo
KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3Qg
PT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFs
cykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVz
dCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5v
bi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11
bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjBjMjU4YjhlMDA1ZDM1NTQxODJhZjA2ZDQ4MjU4M2FlNzdlNWExMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3Jp
Z2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgSG9zdCBkaWQgbm90IGdl
dCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1w
cmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFi
YXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZy
YW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODU0MDkwOGVkODBkMTM0ZTcz
ODA0OTZhMjc1MDVhZDAwNWM5N2JhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQt
YmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwK
QEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVh
ZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBDbGFz
c2lmaWNhdGlvbiBCYXNlZCBvbiBTdWIgRnJhbWUgVW5kZXIgVG9wIEZyYW1lIE9yaWdpbnM8L3Rp
dGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVz
dCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8v
IiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9
ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4y
ID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdp
bjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxl
dGVUZXN0KCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgY2xh
c3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNp
c3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVz
dCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0
YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlz
dGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbjIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVV
bmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHND
YWxsYmFjayhjb21wbGV0ZVRlc3QpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3Rh
dGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVj
b3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24u
aG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7Cisg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5u
ZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3Jp
Z2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJy
ZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjBjMjU4YjhlMDA1ZDM1NTQxODJhZjA2ZDQ4MjU4M2FlNzdlNWExMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRv
cC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0
IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUt
b3JpZ2lucy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3Vy
Y2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjEx
MjBhODU5MzEyMTE0MDcyZDQ3MjliMzZiYTBhMTc3ZjNkYzQxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdp
bnMtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
IGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0
bGU+VGVzdHMgZm9yIENsYXNzaWZpY2F0aW9uIEJhc2VkIG9uIFN1YnJlc291cmNlIFVuZGVyIFRv
cCBGcmFtZSBPcmlnaW5zPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAg
IGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRp
c3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25z
dCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNv
bnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisKKyAg
ICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVz
dEZhaWxlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lm
aWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NO
b3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworIAorICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBm
YWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIp
OworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVy
VG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdp
bihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVU
ZXN0KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3Rp
Y3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1l
bnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAm
JiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJh
c2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBp
bnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAg
IHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUt
cmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2Vk
LW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjIwYzI1OGI4ZTAwNWQzNTU0MTgyYWYwNmQ0ODI1ODNhZTc3ZTVhMTMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlx
dWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0
IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3Rz
LXRvLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11
bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWE1YTVkNGJkYTRl
NGZkZWVkMTg2YTNmMDg4MTJmYjhlMjg2ZDU5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJl
dmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2Uu
aHRtbApAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4K
KzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9y
IENsYXNzaWZpY2F0aW9uIEJhc2VkIG9uIFN1YnJlc291cmNlIFVuaXF1ZSBSZWRpcmVjdHMgVG88
L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVy
VGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRw
Oi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2lu
MSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmln
aW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBs
ZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGNs
YXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOworCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9D
b25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5l
clRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hl
bkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgCisgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
ZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhz
dGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRv
cEZyYW1lT3JpZ2luMik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3Rp
Y3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7
CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09
PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3Qo
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZShmYWxzZSk7CisgICAgfQor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1i
YXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zMmRkNjlmOTQxOWY1MTk4OTU3ZjA5MDhkZDY3NGQ2ODQzNmNiOWM3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291
cmNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3Mt
ZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRh
YmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4OTczMTlhYjBmYjEwMDA1NWE5MzVkNGE5NTJiMmFiOTk0
NDgzMzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRp
c3RpY3MtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDYyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8
dGl0bGU+VGVzdHMgZm9yIENsYXNzaWZpY2F0aW9uIEJhc2VkIG9uIE1peGVkIFN0YXRpc3RpY3M8
L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVy
VGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRw
Oi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2lu
MSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmln
aW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9y
aWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1l
T3JpZ2luNCA9ICJodHRwOi8vMTI3LjAuMC41OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBj
b21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZ290IGNsYXNzaWZpZWQg
YXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisK
KyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNl
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJl
U2Nhbm5lZCh0cnVlKTsKKyAKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQg
YXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRv
cEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJm
cmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW40KTsK
KworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRv
cEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4o
c3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJs
LCB0b3BGcmFtZU9yaWdpbjQpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmln
aW4zKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJh
Y2soY29tcGxldGVUZXN0KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJv
Y2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAg
ICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cu
dGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0
VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1
ZSk7CisgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11
bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50
LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJkZDY5Zjk0MTlmNTE5ODk1N2YwOTA4ZGQ2NzRkNjg0MzZj
YjljNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVu
ZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUg
QEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFT
UyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRh
YmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1l
LW9yaWdpbnMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWE3NjIwMGRhMmZmYjFhMDA1NWE4
YTE5OGFlMjc4M2UyZWIzZjUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1v
bi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAg
IDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIENsYXNzaWZpY2F0
aW9uIEJhc2VkIG9uIFN1YiBGcmFtZSBVbmRlciBUb3AgRnJhbWUgT3JpZ2luczwvdGl0bGU+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEy
Ny4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9z
dFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6
Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0
cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJo
dHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW40ID0g
Imh0dHA6Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVz
dCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90
IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwp
KQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3Nl
ZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICBp
bnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRy
dWUpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdp
bjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRv
cEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3Rh
dGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BG
cmFtZU9yaWdpbjQpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNz
RGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOwor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0g
aG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7
CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFs
ZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1
c2lvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTRkZGNlNWIzMTRjZDdkMmQw
ZGVjNDhiNmY5ZjllMGVjY2FiODMwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE0IEBACitUZXN0cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24gc3Vi
cmVzb3VyY2UgcmVkaXJlY3QgY29sbHVzaW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBDb2xsdWRpbmcgaG9zdCAxIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LgorUEFTUyBDb2xsdWRpbmcgaG9zdCAyIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLgor
UEFTUyBDb2xsdWRpbmcgaG9zdCAzIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLgorUEFT
UyBDb2xsdWRpbmcgaG9zdCA0IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLgorUEFTUyBD
b2xsdWRpbmcgbG9jYWxob3N0IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIGFj
dHVhbCBzdWIgZnJhbWUgcmVkaXJlY3QuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJy
ZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTRiZmIyZjI1NzdjYmNiZGYzYzFmNGMxNGE0NmE5YWFkNjE2ZjdhZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVz
aW9uLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw3MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBmb3IgY2xhc3NpZmljYXRpb24gYmFz
ZWQgb24gc3VicmVzb3VyY2UgcmVkaXJlY3QgY29sbHVzaW9uLiIpOworICAgIGpzVGVzdElzQXN5
bmMgPSB0cnVlOworCisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7
CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAi
L3RlbXAiOworICAgIGNvbnN0IHN1YnJlc291cmNlT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4y
OjgwMDAvdGVtcCI7CisgICAgY29uc3Qgc3VicmVzb3VyY2VPcmlnaW4yID0gImh0dHA6Ly8xMjcu
MC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCBzdWJyZXNvdXJjZU9yaWdpbjMgPSAiaHR0cDov
LzEyNy4wLjAuNDo4MDAwL3RlbXAiOworICAgIGNvbnN0IHN1YnJlc291cmNlT3JpZ2luNCA9ICJo
dHRwOi8vMTI3LjAuMC41OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgewor
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworCisgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKHN0
YXRpc3RpY3NVcmwsIHN1YnJlc291cmNlT3JpZ2luMSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKHN1YnJlc291cmNlT3JpZ2lu
MSwgc3VicmVzb3VyY2VPcmlnaW4yKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oc3VicmVzb3VyY2VPcmlnaW4yLCBzdWJyZXNv
dXJjZU9yaWdpbjMpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0RnJvbShzdWJyZXNvdXJjZU9yaWdpbjMsIHN1YnJlc291cmNlT3JpZ2lu
NCk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
c3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoIXRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBleHBsaWNpdHkgc2V0IGRpZCBub3QgZ2V0IHNl
dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjEpKQorICAgICAg
ICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDEgZ290IHNldCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NW
ZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4xKSkKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCAxIGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJl
dmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4yKSkKKyAgICAgICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCAyIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291
cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZh
bGVudFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luMikpCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiQ29sbHVkaW5nIGhvc3QgMiBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luMykpCisgICAgICAgICAgICAgICAgdGVzdFBh
c3NlZCgiQ29sbHVkaW5nIGhvc3QgMyBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNv
dXJjZShzdWJyZXNvdXJjZU9yaWdpbjMpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNv
bGx1ZGluZyBob3N0IDMgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShzdWJyZXNvdXJjZU9yaWdpbjQpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNv
bGx1ZGluZyBob3N0IDQgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3Vi
cmVzb3VyY2VPcmlnaW40KSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcg
aG9zdCA0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAg
ICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1
ZGluZyBsb2NhbGhvc3QgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgYWN0dWFs
IHN1YiBmcmFtZSByZWRpcmVjdC4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikpCisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGxvY2FsaG9zdCBnb3QgY2xhc3Np
ZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSk7
CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRl
c3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0
ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpwqB7
CisgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
ICAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJh
bWUiKTsKKyAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50Lm9ubG9hZCA9IHJ1blRlc3Q7Cisg
ICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRv
PWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL29uY2xpY2suaHRt
bCI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVt
ZW50KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3Vy
Y2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxl
bnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOGZjYmQ4ZDhmNmQwNWZjNDk0ZDRlZWRkY2Q5Y2I1ZWJk
ZGUwYzM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJj
ZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTAgQEAKK1Rlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiBzdWJyZXNvdXJjZSByZWRp
cmVjdCB0byBvdGhlciBwcmV2YWxlbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXBy
ZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJh
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJl
dmFsZW50LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTU4MGE1OWY2OWFlMGU3MDllNTA0MGVi
ZjM1MDc3MmE2ZGY4YmY0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
c3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCAr
MSw1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8
bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9u
KCJUZXN0cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24gc3VicmVzb3VyY2UgcmVkaXJlY3Qg
dG8gb3RoZXIgcHJldmFsZW50LiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAg
Y29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlz
dGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0
IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisKKyAgICBm
dW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisgICAgICAgIGVsc2UgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBn
b3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIAorICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3Jp
Z2luMSwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVP
cmlnaW4xKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNj
YW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5k
ZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRp
c3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1m
cmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
c3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjMyZGQ2OWY5NDE5ZjUxOTg5NTdmMDkwOGRkNjc0ZDY4NDM2Y2I5YzcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRv
cC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0
IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFs
ZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1v
cmlnaW5zLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQwMWVhNmJjMjQ5Mzc1OTJmMGU4OTY3
NjE1Yzk5YzVjOGRjM2ZhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
c3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAg
IDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIENsYXNzaWZpY2F0
aW9uIEJhc2VkIG9uIFN1YnJlc291cmNlIFVuZGVyIFRvcCBGcmFtZSBPcmlnaW5zPC90aXRsZT4K
KyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAi
MTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBo
b3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0
cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJo
dHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0g
Imh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjQg
PSAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVU
ZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1Vy
bCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkg
cHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAg
IGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQo
dHJ1ZSk7CisgCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1w
cmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3Vy
Y2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJh
bWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0
aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjQpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmlu
c3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsK
KworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmRE
YXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9j
YXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5k
b3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1
ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5h
bHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHJ1blRl
c3RSdW5uZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMt
dG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJj
ZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
MmRkNjlmOTQxOWY1MTk4OTU3ZjA5MDhkZDY3NGQ2ODQzNmNiOWM3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJl
dmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJl
c291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc4ZjdmMTM5MWM2MjFkZTg2NmUxYmQyM2IwMWJkYTMzMmQwZDlmMzcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVj
dHMtdG8tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8
dGl0bGU+VGVzdHMgZm9yIENsYXNzaWZpY2F0aW9uIEJhc2VkIG9uIFN1YnJlc291cmNlIFVuaXF1
ZSBSZWRpcmVjdHMgVG88L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAg
Y29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlz
dGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0
IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29u
c3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBj
b25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworICAg
IGNvbnN0IHRvcEZyYW1lT3JpZ2luNCA9ICJodHRwOi8vMTI3LjAuMC41OjgwMDAvdGVtcCI7CisK
KyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
Z290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0Nv
bnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVy
VGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVu
RGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBk
aWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0
YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9w
RnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJl
c291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21w
bGV0ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3Rh
dGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChk
b2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVu
bmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBE
YXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAg
ICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAg
ICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0
LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRv
cC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZkMzkzOGI3NmM5NzQ0YzNhZmE3YjI1NTA1ZWFlYjQ5ZDg2NmI1MjAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24t
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3RzIGZvciBjbGFzc2lm
aWNhdGlvbiBiYXNlZCBvbiB0b3AgZnJhbWUgcmVkaXJlY3QgY29sbHVzaW9uLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBDb2xsdWRpbmcgaG9zdCAxIGdvdCBzZXQgYXMg
cHJldmFsZW50IHJlc291cmNlLgorUEFTUyBDb2xsdWRpbmcgaG9zdCAyIGdvdCBzZXQgYXMgcHJl
dmFsZW50IHJlc291cmNlLgorUEFTUyBDb2xsdWRpbmcgaG9zdCAzIGdvdCBzZXQgYXMgcHJldmFs
ZW50IHJlc291cmNlLgorUEFTUyBDb2xsdWRpbmcgaG9zdCA0IGdvdCBzZXQgYXMgcHJldmFsZW50
IHJlc291cmNlLgorUEFTUyBDb2xsdWRpbmcgbG9jYWxob3N0IGdvdCBzZXQgYXMgcHJldmFsZW50
IHJlc291cmNlIGFmdGVyIGFjdHVhbCBuYXZpZ2F0aW9uYWwgcmVkaXJlY3QuCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXBy
ZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YTk4M2JjMDZkMzUwZWQ1NjU1MjQwMmRmY2ZkMzM0NTlj
NjA1Y2VkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUt
cmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw3MSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJV
VEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBmb3IgY2xh
c3NpZmljYXRpb24gYmFzZWQgb24gdG9wIGZyYW1lIHJlZGlyZWN0IGNvbGx1c2lvbi4iKTsKKyAg
ICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3
LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0
VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDov
LzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRw
Oi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0
dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjQgPSAi
aHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luNSA9
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvIjsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9t
KHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKHRvcEZyYW1lT3JpZ2luMSwgdG9w
RnJhbWVPcmlnaW4yKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVV
bmlxdWVSZWRpcmVjdEZyb20odG9wRnJhbWVPcmlnaW4yLCB0b3BGcmFtZU9yaWdpbjMpOworICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSh0
b3BGcmFtZU9yaWdpbjMsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBleHBsaWNpdHkgc2V0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSh0b3BGcmFtZU9yaWdpbjEpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGlu
ZyBob3N0IDEgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBp
ZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVP
cmlnaW4xKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCAxIGdv
dCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAg
aWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmln
aW4yKSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCAyIGdvdCBz
ZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMikpCisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhvc3QgMiBnb3QgY2xhc3NpZmllZCBh
cyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMykpCisgICAgICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgMyBnb3Qgc2V0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1Zl
cnlQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjMpKQorICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDMgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjQpKQorICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIkNvbGx1ZGluZyBob3N0IDQgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVz
b3VyY2UodG9wRnJhbWVPcmlnaW40KSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xs
dWRpbmcgaG9zdCA0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIp
OworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UodG9wRnJhbWVPcmlnaW41KSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRp
bmcgbG9jYWxob3N0IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIGFjdHVhbCBu
YXZpZ2F0aW9uYWwgcmVkaXJlY3QuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW41KSkKKyAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgbG9jYWxob3N0IGdvdCBjbGFzc2lmaWVkIGFz
IHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9
CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIgJiYgd2luZG93LnRlc3RS
dW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwp
KQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBh
cyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
bG9jYXRpb24uaHJlZiA9IHRvcEZyYW1lT3JpZ2luNSArICJyZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3Jlc291cmNlcy9yZWRpcmVjdC5waHA/cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAuMC4xOjgwMDAv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9w
LWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi5odG1sI2NvbnRpbnVlIjsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3Rp
Y3NOb3RpZnlPYnNlcnZlcigpOworICAgICAgICBydW5UZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1m
cmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZh
bGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OWY5OTUzMzgyODBmMzE1YjIyMDAzZjAwODJkMDgxNDg0
N2U5YWIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUt
cmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACitUZXN0cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24gdG9wIGZyYW1lIHJlZGlyZWN0
IHRvIG90aGVyIHByZXZhbGVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFs
ZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1k
YXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5MmM3NTE2ODg5NzE1OTUzNTRlNjIwNjRlOTgzODMz
MGVmY2FlOTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFt
ZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDUxIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZv
ciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0b3AgZnJhbWUgcmVkaXJlY3QgdG8gb3RoZXIgcHJl
dmFsZW50LiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgaG9zdFVu
ZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJo
dHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3Jp
Z2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21w
bGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
ZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
IGVsc2UgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBnb3QgY2xhc3NpZmll
ZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4xLCB0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5p
cXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJh
Y2soY29tcGxldGVUZXN0KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nl
c3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAg
aWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRl
c3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVz
ZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNX
aGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIp
OworICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0
cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ5MWJmOTYwMzM1NzA5Yzk5
MWRmMWZmZDMyNDI4YmRiYWU4MDZmOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0b3Ag
ZnJhbWUgdW5pcXVlIHJlZGlyZWN0cyB0by4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRv
LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWM0YzdlZTVmNmMzZmVhNjU2MTNmODU4MzYyN2E0
Yzk4NTAzMTVkYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZy
YW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU2IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZv
ciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0b3AgZnJhbWUgdW5pcXVlIHJlZGlyZWN0cyB0by4i
KTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3Qg
PSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIg
KyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAi
aHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9
ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4z
ID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdp
bjQgPSAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxl
dGVUZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRp
ZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBp
ZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZl
cnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9w
RnJhbWVVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7Cisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhz
dGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVP
cmlnaW4zKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVS
ZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgdGVz
dFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBs
ZXRlVGVzdCk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3Rp
Y3NBbmREYXRhUmVjb3JkcygpOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5o
b3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5u
ZWQodHJ1ZSk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdl
dCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICBydW5U
ZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4
ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFz
ZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjBmMDMxZGNhNWQwYzk2MDhmNGQ4ZjVhZjg5OWExNmU5ZWY1MWM1OAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGZvciBjbGFzc2lmaWNhdGlvbiBhcyB2
ZXJ5IHByZXZhbGVudCBiYXNlZCBvbiBtaXhlZCBzdGF0aXN0aWNzLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQg
cmVzb3VyY2UuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3Rp
Y3MtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0
aWNzLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWIwNmZhMjA5ZWRiYjZmMTE4OGFmZjdkMTYw
NjMwNDAyN2FiYjE3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1v
bi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJV
VEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IGZvciBjbGFz
c2lmaWNhdGlvbiBhcyB2ZXJ5IHByZXZhbGVudCBiYXNlZCBvbiBtaXhlZCBzdGF0aXN0aWNzLiIp
OworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9
ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiAr
IGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIHZhciB0b3BGcmFtZU9yaWdpbnMgPSBbXTsK
KyAgICBjb25zdCBzdGFydE51bSA9IDI7CisgICAgY29uc3QgbnVtYmVyT2ZTdWJyZXNvdXJjZURv
bWFpbnMgPSAzMDsKKyAgICBmb3IgKHZhciBpID0gc3RhcnROdW07IGkgPCBudW1iZXJPZlN1YnJl
c291cmNlRG9tYWlucyArIHN0YXJ0TnVtOyArK2kpCisgICAgICAgIHRvcEZyYW1lT3JpZ2lucy5w
dXNoKCJodHRwOi8vMTI3LjAuMC4iICsgaSArICI6ODAwMC90ZW1wIikKKworICAgIGZ1bmN0aW9u
IGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAg
ICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQg
Y2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50
IHJlc291cmNlLiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpT
VGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2Vy
ZVNjYW5uZWQodHJ1ZSk7CisgCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qgc3RhcnRlZCBvdXQgYXMg
cHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB2YXIgaSA9IDA7CisgICAgICAg
ICAgICB3aGlsZSAoaSA8IG51bWJlck9mU3VicmVzb3VyY2VEb21haW5zKSB7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lu
KHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpXSk7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRp
c3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpXSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmws
IHRvcEZyYW1lT3JpZ2luc1tpXSk7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJh
bWVPcmlnaW5zW2krMV0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9y
aWdpbnNbaSsxXSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tp
KzFdKTsKKworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1l
VW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaSsyXSk7
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRl
clRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpKzJdKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJl
ZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2krMl0pOworICAgICAgICAg
ICAgICAgIGkgKz0gMzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGVzdFJ1bm5lci5p
bnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERh
dGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2Nh
dGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRv
dy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBydW5UZXN0UnVubmVyVGVzdCk7Cisg
ICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1w
ZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3Rl
bnQtc3RvcmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhZTAwMzNmZmNjYWVj
MjYzYTk2ZjJiM2Q3ODNlZGNmNzA0MDgzZDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1w
ZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitU
ZXN0cyBjbGVhcmluZyBvZiB3ZWJzaXRlIGRhdGEgc3RvcmUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
CitQQVNTIEhvc3QgaXMgbm8gbG9uZ2VyIGEgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIHRoZSBz
dG9yZSB3YXMgY2xlYXJlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFi
YXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjE3ZWJhYmFkOTE3YWFkNDk5MDMzODFlYTM1MjNlMjA2MmJhZWIwYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDY3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAg
IDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdCBDbGVhcmVkIFN0b3JlPC90
aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGNsZWFyaW5n
IG9mIHdlYnNpdGUgZGF0YSBzdG9yZS4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
ICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0
YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBj
b25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAg
IGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7Cisg
ICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsK
KworICAgIGZ1bmN0aW9uIHRlc3RTdGVwMigpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNz
aWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc3Rh
dGlzdGljc0NsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmUoY29tcGxldGVUZXN0KTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiSG9zdCBpcyBzdGlsbCBhIHByZXZhbGVudCByZXNvdXJjZSBhZnRl
ciB0aGUgc3RvcmUgd2FzIGNsZWFyZWQuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRl
c3RQYXNzZWQoIkhvc3QgaXMgbm8gbG9uZ2VyIGEgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIHRo
ZSBzdG9yZSB3YXMgY2xlYXJlZC4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0
KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRh
UmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5v
dCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0
aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1l
T3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJj
ZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFt
ZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVP
cmlnaW4zKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNl
VW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworCisg
ICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRz
Q2FsbGJhY2sodGVzdFN0ZXAyKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
UHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisK
KyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5k
b3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwg
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICAgICAg
fSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5
LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1v
cnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjA3Zjk5OWM2ZmViMzI2NWRlZmYzOTUxYWMyZjgxNDBhYzFhNmVlZTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyBjbGVhcmluZyBvZiB3ZWJzaXRl
IGRhdGEgc3RvcmUgKG9uZSBob3VyKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1MgSG9zdCBp
cyBubyBsb25nZXIgYSBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgdGhlIHN0b3JlIHdhcyBjbGVh
cmVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVh
ci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hNmJiMDY1ZTM3YmRhMjQ0ODA0MzM3MjM0NTVmZThmN2Q4Njk2OGMwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFz
ZS5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4i
PgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT48L3RpdGxl
PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgY2xlYXJpbmcgb2Yg
d2Vic2l0ZSBkYXRhIHN0b3JlIChvbmUgaG91cikuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBj
b25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7
CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1w
IjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3Rl
bXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAv
dGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBpcyBzdGlsbCBhIHByZXZhbGVudCByZXNvdXJjZSBh
ZnRlciB0aGUgc3RvcmUgd2FzIGNsZWFyZWQuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQoIkhvc3QgaXMgbm8gbG9uZ2VyIGEgcHJldmFsZW50IHJlc291cmNlIGFmdGVy
IHRoZSBzdG9yZSB3YXMgY2xlYXJlZC4iKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0U3RlcDIoKSB7Cisg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRp
c3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVu
dFN0b3JlTW9kaWZpZWRTaW5jZUhvdXJzKDEsIGNvbXBsZXRlVGVzdCk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkge30pOworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZy
YW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NT
dWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmln
aW4xKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRv
cEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0
aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmln
aW4zKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRv
cEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisKKyAgICAgICAg
dGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKHRl
c3RTdGVwMik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3Rp
Y3NBbmREYXRhUmVjb3JkcygpOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5o
b3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBy
dW5UZXN0UnVubmVyVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlv
bi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIzZmNmYTA0OTM4Mzc5OTYyZGNk
N2E3YmRhNDM5NTUwMjJlYzJlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTUgQEAKK1Rlc3QgZm9yIHBhcnRpdGlvbmVkIGFuZCB1bnBh
cnRpdGlvbmVkIGNvb2tpZSBkZWxldGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAK
KworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVj
ZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFy
dHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tp
ZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUK
KworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMi0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVj
ZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0
eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2ll
Jy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEt
LWZyYW1lMy0tPicKKy0tLS0tLS0tCitUcnkgdG8gc2V0IHRoaXJkIHBhcnR5IGNvb2tpZS4KKwor
CistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWU0LS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNl
aXZlIG5vIGNvb2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5
Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUn
LgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0t
ZnJhbWU1LS0+JworLS0tLS0tLS0KK0FmdGVyIHJlbW92YWwsIHNob3VsZCByZWNlaXZlIG5vIGNv
b2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4K
K0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgorQ2xpZW50
LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWU2LS0+
JworLS0tLS0tLS0KK0FmdGVyIGRlY2xhc3NpZmllZCwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2ll
cy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlk
IG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lk
ZSBkb2N1bWVudC5jb29raWU6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9u
LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTgzNGU4NzMwOGEwMzhkNDI0NjJiMTIxMTJlNGVi
YzE0NTU5ZGVlNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDExNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAg
ICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0
aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0
aW9uKCJUZXN0IGZvciBwYXJ0aXRpb25lZCBhbmQgdW5wYXJ0aXRpb25lZCBjb29raWUgZGVsZXRp
b24uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBwYXJ0aXRpb25I
b3N0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGly
ZFBhcnR5T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAg
Y29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29u
c3Qgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0i
ICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCB0aGly
ZFBhcnR5Q29va2llTmFtZSA9ICJ0aGlyZFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRo
VG9TZXRUaGlyZFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyB0aGlyZFBh
cnR5Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IGZyYWdtZW50V2l0aFJl
dHVyblVybCA9ICJodHRwOi8vIiArIHBhcnRpdGlvbkhvc3QgKyAiL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY29va2llLWRlbGV0aW9uLmh0bWwiOworICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tp
ZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAi
Jm5hbWUyPSIgKyB0aGlyZFBhcnR5Q29va2llTmFtZTsKKworICAgIGZ1bmN0aW9uIGZpbmlzaFRl
c3QoKSB7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAg
ICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwor
ICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsK
KyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsKKyAgICAgICAgfQor
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIH0KKworCisg
ICAgZnVuY3Rpb24gZmlyZURhdGFNb2RpZmljYXRpb25IYW5kbGVyQW5kQ29udGludWUoKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxs
YmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQocnVuVGVzdCwgNTAwKTsK
KyAgICAgICAgfSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0
aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZXRBc05vblByZXZh
bGVudEFuZENvbnRpbnVlKCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGly
ZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IHN0aWxsIHNl
dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgfSk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2Nh
dGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAg
IC8vIFNldCBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAg
ICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9T
ZXRGaXJzdFBhcnR5Q29va2llICsgIiMiICsgZnJhZ21lbnRXaXRoUmV0dXJuVXJsICsgIiNzdGVw
MiI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgor
ICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIHRoaXJkLXBhcnR5IGhhcyBhY2Nlc3Mg
dG8gaXRzIGZpcnN0LXBhcnR5IGNvb2tpZXMuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBh
cnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2Vp
dmUgZmlyc3QtcGFydHkgY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSAiI3N0ZXAzIjoKKyAgICAgICAgICAgICAgICAvLyBDbGFzc2lm
eSBsb2NhbGhvc3QgYXMgcHJldmFsZW50LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0
aW9uLmhhc2ggPSAic3RlcDQiOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJs
b2NraW5nKHJ1blRlc3QpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVj
ayB0aGF0IHRoZSB0aGlyZC1wYXJ0eSBubyBsb25nZXIgaGFzIGFjY2VzcyB0byBpdHMgZmlyc3Qt
cGFydHkgY29va2llcy4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0g
InN0ZXA1IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsg
c3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBubyBjb29raWVz
LiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAi
I3N0ZXA1IjoKKyAgICAgICAgICAgICAgICAvLyBUcnkgc2V0dGluZyBhIGNvb2tpZSBhcyB0aGly
ZC1wYXJ0eS4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA2
IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0
aFRvU2V0VGhpcmRQYXJ0eUNvb2tpZSArICImbWVzc2FnZT1UcnkgdG8gc2V0IHRoaXJkIHBhcnR5
IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwNiI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgdGhpcmQt
cGFydHkgc3RpbGwgaGFzIG5vIGFjY2VzcyB0byBjb29raWVzIGFuZCB0aGVuIGZpcmUgZGF0YSBy
ZWNvcmQgcmVtb3ZhbC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0g
InN0ZXA3IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsg
c3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBubyBjb29raWVz
LiIsIGZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlckFuZENvbnRpbnVlKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNyI6CisgICAgICAgICAgICAgICAg
Ly8gQ2hlY2sgdGhhdCB0aGUgdGhpcmQtcGFydHkgc3RpbGwgaGFzIG5vIGFjY2VzcyB0byBjb29r
aWVzIGFuZCB0aGVuIGRlY2xhc3NpZnkgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDgiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUo
dGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPUFmdGVy
IHJlbW92YWwsIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwgc2V0QXNOb25QcmV2YWxlbnRB
bmRDb250aW51ZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIj
c3RlcDgiOgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIHRoaXJkLXBhcnR5IHN0
aWxsIGhhcyBubyBhY2Nlc3MgdG8gY29va2llcy4KKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1l
KHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1BZnRl
ciBkZWNsYXNzaWZpZWQsIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwgZmluaXNoVGVzdCk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9j
dW1lbnQubG9jYXRpb24uaG9zdCA9PT0gcGFydGl0aW9uSG9zdCAmJiBkb2N1bWVudC5sb2NhdGlv
bi5oYXNoID09PSAiIiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVt
b3ZhbChmYWxzZSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVt
VGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlv
bi5oYXNoID0gInN0ZXAxIjsKKworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsK
KyAgICB9IGVsc2UgeworICAgICAgICBydW5UZXN0KCk7CisgICAgfQorCis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlv
bi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24t
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkMTA5MmVmZGVlZTQ2ZmFjNmUzNmFj
MDc2ZDgxNGQyYmJlNWM3YjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXIt
aW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjUgQEAKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAKKworLS0tLS0t
LS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBmaXJz
dC1wYXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUn
LgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCisK
Ky0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTItLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2Vp
dmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlD
b29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6
ICc8IS0tZnJhbWUzLS0+JworLS0tLS0tLS0KK0FmdGVyIHVzZXIgaW50ZXJhY3Rpb24sIHNob3Vs
ZCBzdGlsbCByZWNlaXZlIG5vIGNvb2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVk
ICdmaXJzdFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29r
aWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1h
bmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWM3
YTM5YzczZTlmMTVjNjY1MGExNzZiM2VjOTE4YzFiNWZmNjViYQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdp
dGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEs
ODQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1l
dGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0IGZvciBQYXJ0aXRpb25lZCBDb29r
aWVzIFdpdGggYW5kIFdpdGhvdXQgVXNlciBJbnRlcmFjdGlvbjwvdGl0bGU+CisgICAgPHNjcmlw
dCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0PgorICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAg
IGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBj
b25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyAiL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9
ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29v
a2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICIm
dmFsdWU9dmFsdWUiOworICAgIGNvbnN0IGZyYWdtZW50V2l0aFJldHVyblVybCA9ICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdpdGgtYW5kLXdp
dGhvdXQtdXNlci1pbnRlcmFjdGlvbi5odG1sIjsKKyAgICBjb25zdCBzdWJQYXRoVG9HZXRDb29r
aWVzID0gIi9nZXQtY29va2llcy5waHA/bmFtZTE9IiArIGZpcnN0UGFydHlDb29raWVOYW1lOwor
CisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9h
ZEhhbmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9u
TG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxl
cjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHNldFVzZXJJbnRlcmFjdGlvbkFuZENvbnRpbnVlKCkg
eworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24o
dGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoIXRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmln
aW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRoaXJkIHBhcnR5IGRpZCBub3QgZ2V0
IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsK
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAg
c3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3Rl
cDEiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5
QmFzZVVybCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyBmcmFnbWVudFdp
dGhSZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFz
aCA9ICJzdGVwMyI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVy
bCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgZmlyc3Qt
cGFydHkgY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSAiI3N0ZXAzIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5o
YXNoID0gInN0ZXA0IjsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAg
ICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2lu
ZyhydW5UZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaGFzaCA9ICJzdGVwNSI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBh
cnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2Vp
dmUgbm8gY29va2llcy4iLCBzZXRVc2VySW50ZXJhY3Rpb25BbmRDb250aW51ZSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDUiOgorICAgICAgICAgICAg
ICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsg
IiZtZXNzYWdlPUFmdGVyIHVzZXIgaW50ZXJhY3Rpb24sIHNob3VsZCBzdGlsbCByZWNlaXZlIG5v
IGNvb2tpZXMuIiwgZmluaXNoVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gcGFydGl0aW9u
SG9zdCAmJiBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09ICIiICYmIHdpbmRvdy50ZXN0UnVubmVy
ICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRh
YmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2ggPSAic3RlcDEiOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNv
dXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAgICAgICAgcnVuVGVzdCgpOwor
ICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBydW5UZXN0KCk7CisgICAgfQorPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNvb2tp
ZXMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzQwN2RjZjNlZGVlYjYwZWM5NjQ5Mjg1MDE0NTFh
MDUxOTI4NDc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitDaGVjayB0aGF0IG9ubHkgSHR0cE9u
bHkgY29va2llcyByZW1haW4gaWYgYWxsIHNjcmlwdC1hY2Nlc3NpYmxlIGNvb2tpZXMgYXJlIGRl
bGV0ZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIEJlZm9yZSBzY3Jp
cHQtYWNjZXNzaWJsZSBkZWxldGlvbjogQ2xpZW50LXNpZGUgY29va2llIGV4aXN0cy4KK1BBU1Mg
QmVmb3JlIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiBIdHRwT25seSBjb29raWUgZXhpc3Rz
LgorUEFTUyBCZWZvcmUgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246IFJlZ3VsYXIgc2VydmVy
LXNpZGUgY29va2llIGV4aXN0cy4KK1BBU1MgQWZ0ZXIgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRp
b246ICBIdHRwT25seSBjb29raWUgZXhpc3RzLgorUEFTUyBBZnRlciBmdWxsIGRlbGV0aW9uOiAg
ICAgICAgICAgICAgIEFsbCBjb29raWVzIGFyZSBnb25lLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUt
Y29va2llcy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjBmYzUzNzdkN2RlZTYwNDI5OTBiZTBjMmRiZmI3NDVhZTA1Y2Q1OQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUtY29va2llcy1kYXRhYmFzZS5odG1sCkBA
IC0wLDAgKzEsNzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2Ny
aXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigi
Q2hlY2sgdGhhdCBvbmx5IEh0dHBPbmx5IGNvb2tpZXMgcmVtYWluIGlmIGFsbCBzY3JpcHQtYWNj
ZXNzaWJsZSBjb29raWVzIGFyZSBkZWxldGVkLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVl
OworCisgICAgY29uc3QgaHR0cE9ubHlDb29raWVOYW1lID0gImh0dHAtb25seS1jb29raWUiOwor
ICAgIGNvbnN0IHNlcnZlclNpZGVDb29raWVOYW1lID0gInNlcnZlci1zaWRlLWNvb2tpZSI7Cisg
ICAgY29uc3QgY2xpZW50U2lkZUNvb2tpZU5hbWUgPSAiY2xpZW50LXNpZGUtY29va2llIjsKKwor
ICAgIGZ1bmN0aW9uIHNvcnRTdHJpbmdBcnJheShhLCBiKSB7CisgICAgICAgIGEgPSBhLnRvTG93
ZXJDYXNlKCk7CisgICAgICAgIGIgPSBiLnRvTG93ZXJDYXNlKCk7CisKKyAgICAgICAgcmV0dXJu
IGEgPiBiID8gMSA6IGIgPiBhID8gLTEgOiAwOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNoZWNr
Q29va2llcyhpc0FmdGVyU2NyaXB0QWNjZXNzaWJsZURlbGV0aW9uKSB7CisgICAgICAgIGxldCB1
bnNvcnRlZFRlc3RQYXNzZWRNZXNzYWdlcyA9IFtdOworICAgICAgICBsZXQgY29va2llcyA9IGlu
dGVybmFscy5nZXRDb29raWVzKCk7CisgICAgICAgIGlmICghY29va2llcy5sZW5ndGgpCisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKChpc0FmdGVyU2NyaXB0QWNjZXNzaWJsZURlbGV0aW9uID8gIkFm
dGVyIiA6ICJCZWZvcmUiKSArICIgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246IE5vIGNvb2tp
ZXMgZm91bmQuIik7CisgICAgICAgIGZvciAobGV0IGNvb2tpZSBvZiBjb29raWVzKSB7CisgICAg
ICAgICAgICBzd2l0Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAgICAgICAgICAgICAgY2FzZSBodHRw
T25seUNvb2tpZU5hbWU6CisgICAgICAgICAgICAgICAgICAgIHVuc29ydGVkVGVzdFBhc3NlZE1l
c3NhZ2VzLnB1c2goKGlzQWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24gPyAiQWZ0ZXIiIDog
IkJlZm9yZSIpICsgIiBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogIiArIChpc0FmdGVyU2Ny
aXB0QWNjZXNzaWJsZURlbGV0aW9uID8gIiAiIDogIiIpICsgIkh0dHBPbmx5IGNvb2tpZSBleGlz
dHMuIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2Ug
c2VydmVyU2lkZUNvb2tpZU5hbWU6CisgICAgICAgICAgICAgICAgICAgIGlmIChpc0FmdGVyU2Ny
aXB0QWNjZXNzaWJsZURlbGV0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiQWZ0ZXIgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246ICBSZWd1bGFyIHNlcnZlci1zaWRl
IGNvb2tpZSBleGlzdHMuIik7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHVuc29ydGVkVGVzdFBhc3NlZE1lc3NhZ2VzLnB1c2goIkJlZm9yZSBzY3Jp
cHQtYWNjZXNzaWJsZSBkZWxldGlvbjogUmVndWxhciBzZXJ2ZXItc2lkZSBjb29raWUgZXhpc3Rz
LiIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIGNs
aWVudFNpZGVDb29raWVOYW1lOgorICAgICAgICAgICAgICAgICAgICBpZiAoaXNBZnRlclNjcmlw
dEFjY2Vzc2libGVEZWxldGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
IkFmdGVyIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiAgQ2xpZW50LXNpZGUgY29va2llIGV4
aXN0cy4iKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAg
ICAgdW5zb3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMucHVzaCgiQmVmb3JlIHNjcmlwdC1hY2Nlc3Np
YmxlIGRlbGV0aW9uOiBDbGllbnQtc2lkZSBjb29raWUgZXhpc3RzLiIpOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBsZXQgc29y
dGVkVGVzdFBhc3NlZE1lc3NhZ2VzID0gdW5zb3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMuc29ydChz
b3J0U3RyaW5nQXJyYXkpOworICAgICAgICBmb3IgKGxldCB0ZXN0UGFzc2VkTWVzc2FnZSBvZiBz
b3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKHRlc3RQYXNz
ZWRNZXNzYWdlKTsKKyAgICB9CisKKyAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkgeworICAg
ICAgICBpZiAoIXRlc3RSdW5uZXIgfHwgIWludGVybmFscykgeworICAgICAgICAgICAgdGVzdEZh
aWxlZCgiTm8gdGVzdFJ1bm5lciBvciBubyBpbnRlcm5hbHMuIik7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKyAgICAgICAgYXdhaXQgZmV0Y2goIi9jb29raWVzL3Jlc291cmNlcy9zZXQtaHR0cC1vbmx5
LWNvb2tpZS5waHA/Y29va2llTmFtZT0iICsgaHR0cE9ubHlDb29raWVOYW1lLCB7IGNyZWRlbnRp
YWxzOiAic2FtZS1vcmlnaW4iIH0pOworICAgICAgICBhd2FpdCBmZXRjaCgiL2Nvb2tpZXMvcmVz
b3VyY2VzL3NldENvb2tpZXMuY2dpIiwgeyBoZWFkZXJzOiB7ICJTZXQtQ29va2llIjogc2VydmVy
U2lkZUNvb2tpZU5hbWUgKyAiPTE7IHBhdGg9LzsiIH0sIGNyZWRlbnRpYWxzOiAic2FtZS1vcmln
aW4iIH0pOworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBjbGllbnRTaWRlQ29va2llTmFtZSAr
ICI9MSI7CisgICAgICAgIGNoZWNrQ29va2llcyhmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc0RlbGV0ZUNvb2tpZXNGb3JIb3N0KCJodHRwOi8vMTI3LjAuMC4xIiwgZmFsc2Up
OworICAgICAgICBjaGVja0Nvb2tpZXModHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc0RlbGV0ZUNvb2tpZXNGb3JIb3N0KCJodHRwOi8vMTI3LjAuMC4xIiwgdHJ1ZSk7CisgICAg
ICAgIGxldCBjb29raWVzTGVmdCA9IGludGVybmFscy5nZXRDb29raWVzKCkubGVuZ3RoOworICAg
ICAgICBpZiAoY29va2llc0xlZnQgPT09IDApCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJBZnRl
ciBmdWxsIGRlbGV0aW9uOiAgICAgICAgICAgICAgIEFsbCBjb29raWVzIGFyZSBnb25lLiIpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBZnRlciBmdWxsIGRlbGV0aW9u
OiAgICAgICAgICAgICAgIiArIGNvb2tpZXNMZWZ0ICsgIiBjb29raWUocykgbGVmdC4iKTsKKyAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0LWRhdGFiYXNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3NDMwNjFmZjExOWZhZDNmNTk3ZGMxNWFlMDRiNGI4YzY5
Mzc5NDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTRUQ6IENvb2tpZSBzdWNj
ZXNzZnVsbHkgc2V0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0
LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0LWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDIxOWUzZDY4OTMyYmZmMThjNWEwMWM1Njg0YzQ0ZjM3MTZmZGU4
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QtZGF0
YWJhc2UuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9
ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0
aW9uKCJUZXN0cyB0aGF0IGJsb2NraW5nIGlzIG5vdCBhcHBsaWVkIHRvIHRvcC1sZXZlbCBuYXZp
Z2F0aW9uIHJlZGlyZWN0cy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGlu
dGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKworICAgIGZ1
bmN0aW9uIGRvUmVkaXJlY3QoKQorICAgIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBE
YXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSgiaHR0cDovL2xvY2FsaG9zdCIsIHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9s
b2NhbGhvc3QiKSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3NldC1j
b29raWUtb24tcmVkaXJlY3QucGhwP3N0ZXA9MSI7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQo
J2RvUmVkaXJlY3QoKScsIDApIj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1z
dGF0aXN0aWNzLWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qt
Y2FwdHVyZS1zdGF0aXN0aWNzLWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjljOTFjYWU2ZWFhM2JkY2M4NDYwYzYzMzdiMDJmN2Q2
NGYyNGZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1jYXB0dXJlLXN0YXRpc3RpY3MtZm9yLXNpbXBsZS10b3At
bmF2aWdhdGlvbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3Qg
dGhhdCBhIG5vbi1yZWRpcmVjdGVkIHRvcCBmcmFtZSBuYXZpZ2F0aW9uIGRvZXNuJ3QgZ2V0IGNh
cHR1cmVkIGluIHN0YXRpc3RpY3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0
cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vMTI3LjAu
MC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNz
LWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWNhcHR1cmUtc3RhdGlzdGlj
cy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4
MDkzNWEyMzcwZWRiZDc2OTI1MTMxOWJhYzk0NGY3MjhiYzc2ZTYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWNh
cHR1cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFzZS5odG1s
CkBAIC0wLDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhl
YWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBk
ZXNjcmlwdGlvbigiVGVzdCB0aGF0IGEgbm9uLXJlZGlyZWN0ZWQgdG9wIGZyYW1lIG5hdmlnYXRp
b24gZG9lc24ndCBnZXQgY2FwdHVyZWQgaW4gc3RhdGlzdGljcy4iKTsKKyAgICBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKyAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAg
IGxldCB0aW1lckhhbmRsZSA9IDA7CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAg
ICAgICBpZiAodGltZXJIYW5kbGUpCisgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVySGFuZGxl
KTsKKworICAgICAgICBzaG91bGRCZUZhbHNlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lz
dGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAu
MSIpJyk7CisgICAgICAgIHNob3VsZEJlRmFsc2UoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVn
aXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxo
b3N0IiknKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3Vt
ZW50LmxvY2F0aW9uLmhvc3QpIHsKKyAgICAgICAgICAgIGNhc2UgIjEyNy4wLjAuMTo4MDAwIjoK
KyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSgiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikpCisgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2FzIGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNl
IGJlZm9yZSB0aGUgdGVzdCBzdGFydHMuIik7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZG8tbm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9u
cy5odG1sIjsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgImxvY2FsaG9zdDo4MDAwIjoKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRy
dWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2Fu
RGF0YVJlY29yZHNDYWxsYmFjayhmaW5pc2hUZXN0KTsKKyAgICAgICAgICAgICAgICBpZiAoIXRl
c3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCkpCisgICAgICAgICAgICAgICAgICAg
IHRpbWVySGFuZGxlID0gc2V0VGltZW91dChmaW5pc2hUZXN0LCAxMDApOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJVbmtub3duIGhvc3Q6ICIgKyBkb2N1bWVudC5sb2NhdGlvbi5ob3N0KTsKKyAgICAgICAg
ICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykKKyAgICAgICAgcnVuVGVzdCgpOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRp
cmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRh
YmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWFkN2Q5ZTUwMDc2YjZkMTZiYmMyNmE1MDQ2
ZTk5Njk2ZDZlMDc2OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUxIEBACitUZXN0cyB0aGF0IGJsb2Nr
aW5nIGlzIG5vdCByZW1vdmVkIG1pZC1mbGlnaHQgaW4gcmVkaXJlY3RzLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0t
LS0tLS0KK1Nob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0Lgor
RGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUlQJy4KK1JlY2Vp
dmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUxvY2FsaG9zdCcuCitEaWQgbm90IHJl
Y2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3Vt
ZW50LmNvb2tpZTogZmlyc3RQYXJ0eUNvb2tpZUxvY2FsaG9zdD1sb2NhbGhvc3QKKworLS0tLS0t
LS0KK0ZyYW1lOiAnPCEtLWZyYW1lMi0tPicKKy0tLS0tLS0tCitSZWRpcmVjdCBjYXNlIDEsIHNo
b3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgMTI3LjAuMC4xLgorUmVjZWl2ZWQg
Y29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llSVAnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tp
ZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUxvY2FsaG9zdCcuCitEaWQgbm90IHJlY2VpdmUgY29v
a2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tp
ZTogZmlyc3RQYXJ0eUNvb2tpZUlQPTEyNy4wLjAuMQorCistLS0tLS0tLQorRnJhbWU6ICc8IS0t
ZnJhbWUzLS0+JworLS0tLS0tLS0KK1RyeSB0byBzZXQgdGhpcmQtcGFydHkgY29va2llIGZvciBs
b2NhbGhvc3QgaW4gYmxvY2tlZCBtb2RlLgorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFt
ZTQtLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgbm8gY29va2llLgorRGlkIG5vdCByZWNl
aXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUlQJy4KK0RpZCBub3QgcmVjZWl2ZSBj
b29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWVMb2NhbGhvc3QnLgorRGlkIG5vdCByZWNlaXZl
IGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5j
b29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTUtLT4nCistLS0tLS0tLQorUmVk
aXJlY3QgY2FzZSAyLCBzaG91bGQgbm90IHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llIGZvciAx
MjcuMC4wLjEuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2ll
SVAnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUxvY2Fs
aG9zdCcuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2llJy4K
K0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQYXJ0eUNvb2tpZUlQPTEyNy4wLjAu
MQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3Zl
LWJsb2NraW5nLWluLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzZkMzBhYWRl
ZjQ1NzdiODUyNDIzYzZhMjM2ZjNhYTM3MTlmMTAyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJs
b2NraW5nLWluLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMDAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0i
VVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBi
bG9ja2luZyBpcyBub3QgcmVtb3ZlZCBtaWQtZmxpZ2h0IGluIHJlZGlyZWN0cy4iKTsKKyAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAu
MC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIjsKKyAgICBjb25zdCByZXNvdXJjZVBhdGggPSAiL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlP
cmlnaW4gKyByZXNvdXJjZVBhdGg7CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWVQcmVm
aXggPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWVJ
UCA9IGZpcnN0UGFydHlDb29raWVOYW1lUHJlZml4ICsgIklQIjsKKyAgICBjb25zdCBmaXJzdFBh
cnR5Q29va2llTmFtZUxvY2FsaG9zdCA9IGZpcnN0UGFydHlDb29raWVOYW1lUHJlZml4ICsgIkxv
Y2FsaG9zdCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUNvb2tpZU5hbWUgPSAidGhpcmRQYXJ0eUNv
b2tpZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNvb2tpZSA9ICIvc2V0LWNv
b2tpZS5waHA/bmFtZT0iICsgdGhpcmRQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsK
KyAgICBjb25zdCBzdWJQYXRoVG9HZXRDb29raWVzID0gIi9nZXQtY29va2llcy5waHA/bmFtZTE9
IiArIGZpcnN0UGFydHlDb29raWVOYW1lSVAgKyAiJm5hbWUyPSIgKyBmaXJzdFBhcnR5Q29va2ll
TmFtZUxvY2FsaG9zdCArICImbmFtZTM9IiArIHRoaXJkUGFydHlDb29raWVOYW1lOworICAgIGNv
bnN0IHJlZGlyZWN0Q2hhaW5VcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsgcmVzb3VyY2VQYXRoICsg
Ii9yZWRpcmVjdC5waHA/cmVkaXJlY3RUbz1odHRwOi8vIiArIHBhcnRpdGlvbkhvc3QgKyByZXNv
dXJjZVBhdGggKyBzdWJQYXRoVG9HZXRDb29raWVzOworCisgICAgZnVuY3Rpb24gb3BlbklmcmFt
ZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAg
ICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0g
b25Mb2FkSGFuZGxlcjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGVsZW1lbnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAg
IHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAiI3N0
ZXAxIjoKKyAgICAgICAgICAgICAgICAvLyBTZXQgZmlyc3QtcGFydHkgY29va2llcyBmb3IgMTI3
LjAuMC4xIGFuZCBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0
aW9uLm9yaWdpbiA9PT0gdGhpcmRQYXJ0eU9yaWdpbikgeworICAgICAgICAgICAgICAgICAgICBk
b2N1bWVudC5jb29raWUgPSBmaXJzdFBhcnR5Q29va2llTmFtZUxvY2FsaG9zdCArICI9bG9jYWxo
b3N0O3BhdGg9Jy8nIjsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJl
ZiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qt
cmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwjc3RlcDIiOworICAgICAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9
IGZpcnN0UGFydHlDb29raWVOYW1lSVAgKyAiPTEyNy4wLjAuMTtwYXRoPScvJyI7CisgICAgICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRp
cmVjdC1kYXRhYmFzZS5odG1sI3N0ZXAxIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAgICAgICAg
IC8vIENoZWNrIHRoYXQgdGhlIGNvb2tpZSBnZXRzIHNlbnQgZm9yIGxvY2FsaG9zdCB1bmRlciAx
MjcuMC4wLjEgc2luY2UgbG9jYWxob3N0IGlzIG5vdCBwcmV2YWxlbnQuCisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAgICAgICAgb3Bl
bklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3Nh
Z2U9U2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3QuIiwgcnVu
VGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMi
OgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDQiOworICAg
ICAgICAgICAgICAgIC8vIExvYWQgYW4gaWZyYW1lIGluIGEgcmVkaXJlY3QgY2hhaW4gdGhhdCBz
dGFydHMgd2l0aCBsb2NhbGhvc3QgYW5kIGVuZHMgd2l0aCAxMjcuMC4wLjEuIEV4cGVjdCBhIGNv
b2tpZSBmb3IgMTI3LjAuMC4xLgorICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUocmVkaXJlY3RD
aGFpblVybCArICImbWVzc2FnZT1SZWRpcmVjdCBjYXNlIDEsIHNob3VsZCByZWNlaXZlIGZpcnN0
LXBhcnR5IGNvb2tpZSBmb3IgMTI3LjAuMC4xLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICAvLyBT
ZXQgbG9jYWxob3N0IGFzIHByZXZhbGVudCB0byBwdXQgaXQgaW4gdGhlIGJsb2NraW5nIGNhdGVn
b3J5LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0
eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSAiI3N0ZXA1IjoKKyAgICAgICAgICAgICAgICAvLyBUcnkgdG8gc2V0IHBhcnRpdGlvbmVkIGNv
b2tpZSBmb3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMS4KKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA2IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1l
KHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNvb2tpZSArICImbWVz
c2FnZT1UcnkgdG8gc2V0IHRoaXJkLXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0IGluIGJsb2Nr
ZWQgbW9kZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwNiI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBubyBjb29raWUg
Z2V0cyBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCdz
IGNvb2tpZXMgYXJlIGJsb2NrZWQuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aGFzaCA9ICJzdGVwNyI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFz
ZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIG5v
IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwNyI6CisgICAgICAgICAgICAgICAgLy8gTG9hZCBhbiBpZnJhbWUgaW4gYSBy
ZWRpcmVjdCBjaGFpbiB0aGF0IHN0YXJ0cyB3aXRoIGxvY2FsaG9zdCBhbmQgZW5kcyB3aXRoIDEy
Ny4wLjAuMS4gRXhwZWN0IGEgY29va2llIGZvciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAg
ZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwOCI7CisgICAgICAgICAgICAgICAgb3Blbklm
cmFtZShyZWRpcmVjdENoYWluVXJsICsgIiZtZXNzYWdlPVJlZGlyZWN0IGNhc2UgMiwgc2hvdWxk
IG5vdCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgMTI3LjAuMC4xLiIsIHJ1blRlc3Qp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA4IjoKKyAg
ICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggPT09ICIiKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0
YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhv
c3Qgd2FzIGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBz
dGFydHMuIik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgp
OworICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAg
ICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRl
c3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNo
LXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1k
YXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFs
ZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQwNWRjMDliNjk2MzlmMWQ5MGM2YzM3YzIyZWQxYjk2Zjg2MWM0NDkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90
LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGhvdXQtaW50ZXJh
Y3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQg
dGhlIHNlc3Npb24gaXMgbm90IHN3aXRjaGVkIHVwb24gdG9wIGZyYW1lIG5hdmlnYXRpb24gdG8g
YSBwcmV2YWxlbnQgcmVzb3VyY2Ugd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBTaG91bGQgaGF2ZSBhbmQgaGFzIHRoZSBzZXNz
aW9uIGNvb2tpZS4KK1BBU1MgU2hvdWxkIGhhdmUgYW5kIGhhcyB0aGUgcGVyc2lzdGVudCBjb29r
aWUuCitQQVNTIE9yaWdpbiBoYXMgbm8gaXNvbGF0ZWQgc2Vzc2lvbi4KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNz
aW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24tZGF0YWJh
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9k
by1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1p
bnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhYmZkYjljNDJiZTIwYTczOTY2
MjI0NGVlZDRkNzM2NDhmNWMwZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5h
dmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApA
QCAtMCwwICsxLDExMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVh
ZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB0aGUgc2Vzc2lvbiBpcyBu
b3Qgc3dpdGNoZWQgdXBvbiB0b3AgZnJhbWUgbmF2aWdhdGlvbiB0byBhIHByZXZhbGVudCByZXNv
dXJjZSB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKyAgICBjb25zdCBwcmV2YWxlbnRPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IjsKKyAgICBjb25zdCBub25QcmV2YWxlbnRPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
IjsKKyAgICBjb25zdCBzZXNzaW9uQ29va2llTmFtZSA9ICJzZXNzaW9uQ29va2llIjsKKyAgICBj
b25zdCBwZXJzaXN0ZW50Q29va2llTmFtZSA9ICJwZXJzaXN0ZW50Q29va2llIjsKKyAgICBjb25z
dCB0d29NaW51dGVzSW5TZWNvbmRzID0gMTIwOworCisgICAgZnVuY3Rpb24gc2V0U2Vzc2lvbkNv
b2tpZSgpIHsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2Vzc2lvbkNvb2tpZU5hbWUgKyAi
PTE7IHBhdGg9LyI7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2V0UGVyc2lzdGVudENvb2tpZSgp
IHsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gcGVyc2lzdGVudENvb2tpZU5hbWUgKyAiPTE7
IHBhdGg9LzsgTWF4LUFnZT0iICsgdHdvTWludXRlc0luU2Vjb25kcyArICI7IjsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBjaGVja0Nvb2tpZXMoc2hvdWxkSGF2ZVNlc3Npb25Db29raWUsIHNob3Vs
ZEhhdmVQZXJzaXN0ZW50Q29va2llKSB7CisgICAgICAgIGxldCBoYXNTZXNzaW9uQ29va2llID0g
KGRvY3VtZW50LmNvb2tpZSArICIiKS5pbmNsdWRlcyhzZXNzaW9uQ29va2llTmFtZSksCisgICAg
ICAgICAgICBoYXNQZXJzaXN0ZW50Q29va2llID0gKGRvY3VtZW50LmNvb2tpZSArICIiKS5pbmNs
dWRlcyhwZXJzaXN0ZW50Q29va2llTmFtZSk7CisKKyAgICAgICAgaWYgKHNob3VsZEhhdmVTZXNz
aW9uQ29va2llICYmIGhhc1Nlc3Npb25Db29raWUpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJT
aG91bGQgaGF2ZSBhbmQgaGFzIHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKKyAgICAgICAgZWxzZSBp
ZiAoc2hvdWxkSGF2ZVNlc3Npb25Db29raWUgJiYgIWhhc1Nlc3Npb25Db29raWUpIHsKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCBoYXZlIGJ1dCBkb2Vzbid0IGhhdmUgdGhlIHNlc3Np
b24gY29va2llLiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNo
SlNUZXN0KTsKKyAgICAgICAgfSBlbHNlIGlmICghc2hvdWxkSGF2ZVNlc3Npb25Db29raWUgJiYg
aGFzU2Vzc2lvbkNvb2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkbid0IGhh
dmUgYnV0IGhhcyB0aGUgc2Vzc2lvbiBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQoIlNob3VsZG4ndCBoYXZlIGFuZCBkb2Vzbid0IGhhdmUgdGhlIHNlc3Npb24g
Y29va2llLiIpOworCisKKyAgICAgICAgaWYgKHNob3VsZEhhdmVQZXJzaXN0ZW50Q29va2llICYm
IGhhc1BlcnNpc3RlbnRDb29raWUpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91bGQgaGF2
ZSBhbmQgaGFzIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsKKyAgICAgICAgZWxzZSBpZiAoc2hv
dWxkSGF2ZVBlcnNpc3RlbnRDb29raWUgJiYgIWhhc1BlcnNpc3RlbnRDb29raWUpIHsKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCBoYXZlIGJ1dCBkb2Vzbid0IGhhdmUgdGhlIHBlcnNp
c3RlbnQgY29va2llLiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICAgICAgfSBlbHNlIGlmICghc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29r
aWUgJiYgaGFzUGVyc2lzdGVudENvb2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hv
dWxkbid0IGhhdmUgYnV0IGhhcyB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlNob3VsZG4ndCBoYXZlIGFuZCBkb2Vzbid0IGhhdmUg
dGhlIHBlcnNpc3RlbnQgY29va2llLiIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAg
ICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAgICBzZXRTZXNzaW9uQ29va2llKCk7Cisg
ICAgICAgICAgICAgICAgc2V0UGVyc2lzdGVudENvb2tpZSgpOworICAgICAgICAgICAgICAgIGNo
ZWNrQ29va2llcyh0cnVlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5o
YXNTdGF0aXN0aWNzSXNvbGF0ZWRTZXNzaW9uKHByZXZhbGVudE9yaWdpbikpIHsKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3JpZ2luIGhhcyBpc29sYXRlZCBzZXNzaW9uLiIpOwor
ICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2Vk
KCJPcmlnaW4gaGFzIG5vIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAgICAgICAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaHJlZiA9IG5vblByZXZhbGVudE9yaWdpbiArICIvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxl
bnQtd2l0aG91dC1pbnRlcmFjdGlvbi5odG1sI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
bG9jYXRpb24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50Lmxv
Y2F0aW9uLm9yaWdpbiAhPT0gbm9uUHJldmFsZW50T3JpZ2luKQorICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJTdGVwIDIgaXMgbm90IG9uICIgKyBub25QcmV2YWxlbnRPcmlnaW4gKyAi
LiIpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHByZXZhbGVudE9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2
YWxlbnRPcmlnaW4pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKHByZXZh
bGVudE9yaWdpbiArICIgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpT
VGVzdCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcocnVuVGVzdCk7CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3Rl
cDMiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBwcmV2YWxlbnRP
cmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9u
LW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24uaHRtbCNzdGVwNCI7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAg
ICAgICAgICAgICAgIGNoZWNrQ29va2llcyh0cnVlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBp
ZiAodGVzdFJ1bm5lci5oYXNTdGF0aXN0aWNzSXNvbGF0ZWRTZXNzaW9uKHByZXZhbGVudE9yaWdp
bikpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk9yaWdpbiBoYXMgaXNvbGF0ZWQg
c2Vzc2lvbi4iKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRl
c3RQYXNzZWQoIk9yaWdpbiBoYXMgbm8gaXNvbGF0ZWQgc2Vzc2lvbi4iKTsKKyAgICAgICAgICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJVbmtub3duIGhhc2guIik7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1bWVu
dC5sb2NhdGlvbi5oYXNoID09PSAiIikgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24u
b3JpZ2luICE9PSBwcmV2YWxlbnRPcmlnaW4pCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJUZXN0
IGlzIG5vdCBzdGFydGluZyBvdXQgb24gIiArIHByZXZhbGVudE9yaWdpbiArICIuIik7CisgICAg
ICAgICAgICAKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7
CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50
T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKHByZXZhbGVudE9yaWdpbiArICIg
d2FzIGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFy
dHMuIik7CisgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAg
ICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRl
ZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQt
cmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24t
d2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wZmJhODEwMzVlMmZlY2JhMTM5NGQwMWRmMmU5YmUyMDY5NWU4NWE1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1
ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEwIEBACitDaGVjayB0aGF0IGRvY3VtZW50LnJlZmVycmVyIGlzIGRvd25ncmFkZWQgdG8g
dGhlIGVUTEQrMSBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVlcnku
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSByZWZlcnJlciBpcyBk
b3duZ3JhZGVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVy
eS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5h
dmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOWFlYmRlOTViZThhMDUyYWZmMzY3OWMwNjg4NWFlMTcwMmUxZDc1
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1x
dWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTQg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIv
Y29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlw
dGlvbigiQ2hlY2sgdGhhdCBkb2N1bWVudC5yZWZlcnJlciBpcyBkb3duZ3JhZGVkIHRvIHRoZSBl
VExEKzEgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIHF1ZXJ5LiIpOwor
ICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgbGV0IG51bWJlck9mVHJpZXMgPSAwOwor
ICAgIGZ1bmN0aW9uIHRlc3RSZWZlcnJlcigpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LnJlZmVy
cmVyID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiArICIvIikgeworICAgICAgICAgICAgdGVz
dFBhc3NlZCgiVGhlIHJlZmVycmVyIGlzIGRvd25ncmFkZWQuIik7CisgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UgaWYgKCsr
bnVtYmVyT2ZUcmllcyA8PSA1KQorICAgICAgICAgICAgc2V0VGltZW91dCh0ZXN0UmVmZXJyZXIs
IDIwMCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhlIHJlZmVy
cmVyIGlzIG5vdCBkb3duZ3JhZGVkOiAiICsgZG9jdW1lbnQucmVmZXJyZXIpOworICAgICAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIGZ1bmN0aW9uIG5hdmlnYXRlU2FtZU9yaWdpblRvQWRkUXVlcnkoKSB7CisgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiArICIv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9u
LXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sP2xpbms9cXVlcnki
OworICAgIH0KKworICAgIGZ1bmN0aW9uIG5hdmlnYXRlQ3Jvc3NPcmlnaW4oKSB7CisgICAgICAg
IGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbk9yaWdpbiArICIvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGlu
ay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sIjsKKyAgICB9CisKKyAgICBjb25z
dCBkZXN0aW5hdGlvbk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0
IHByZXZhbGVudFJlc291cmNlT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdp
biA9PT0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gJiYgZG9jdW1lbnQubG9jYXRpb24uc2VhcmNo
ID09PSAiIikgeworICAgICAgICAgICAgbmF2aWdhdGVTYW1lT3JpZ2luVG9BZGRRdWVyeSgpOwor
ICAgICAgICB9IGVsc2UgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJldmFsZW50
UmVzb3VyY2VPcmlnaW4pIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJh
c2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2Nr
aW5nKG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0UmVmZXJyZXIoKTsKKyAg
ICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1
Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjUyMTlkZDNiMTFmMmEzNGM0NTc1MzQwZTczOGRhZGNmYTBjY2ZjYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMCBAQAorVGVzdCBmb3IgZW5hYmxpbmcgZGVidWcgbW9kZSBhbmQgdGhhdCBpdCBwZXJtYW5l
bnRseSB0cmVhdHMgM3JkcGFydHl0ZXN0d2Via2l0Lm9yZyBhcyBhIHByZXZhbGVudCByZXNvdXJj
ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaHR0cDovLzNyZHBhcnR5
dGVzdHdlYmtpdC5vcmcgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgaW4gZGVidWcgbW9k
ZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
ZW5hYmxlLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjYzN2ZmOTIyNTY3ZjlhNDcyODI3M2RmYTQ3MzI2MzdhNDg1Y2I5ZjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvZW5hYmxlLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9
IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgZm9yIGVu
YWJsaW5nIGRlYnVnIG1vZGUgYW5kIHRoYXQgaXQgcGVybWFuZW50bHkgdHJlYXRzIDNyZHBhcnR5
dGVzdHdlYmtpdC5vcmcgYXMgYSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAganNUZXN0SXNB
c3luYyA9IHRydWU7CisKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly8zcmRw
YXJ0eXRlc3R3ZWJraXQub3JnIjsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5k
b3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1
ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBh
cnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKHRoaXJkUGFydHlPcmlnaW4g
KyAiIGFscmVhZHkgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzRGVidWdNb2RlKHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCh0aGly
ZFBhcnR5T3JpZ2luICsgIiBkaWRuJ3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKHRo
aXJkUGFydHlPcmlnaW4gKyAiIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlIGluIGRlYnVn
IG1vZGUuIik7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzRGVidWdN
b2RlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxODAzYmZjYjUzYjE0MDQ5ZDVlMWRhYWU1YjI1YjYyN2Zh
Y2U1YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCitQQVNTIEdyYW5kZmF0aGVyZWQgY29va2llIHdhcyBub3QgcHVyZ2VkLgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRm
YXRoZXJpbmctZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFh
ZjBiODU3ZjJlOGMwNzQxYTVhNWNjODRhNzg5ODdkM2M1Yzg1ZjQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRo
ZXJpbmctZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDExNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAg
PHRpdGxlPlRlc3QgZm9yIEdyYW5kZmF0aGVyaW5nPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CisgICAgY29uc3QgZmlyc3RQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOwor
ICAgIGNvbnN0IGZpcnN0UGFydHlCYXNlVXJsID0gZmlyc3RQYXJ0eU9yaWdpbiArICIvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVO
YW1lID0gImZpcnN0UGFydHlDb29raWUiOworICAgIGNvbnN0IHRoaXJkUGFydHlDb29raWVOYW1l
ID0gInRoaXJkUGFydHlDb29raWUiOworICAgIGNvbnN0IGNvb2tpZVZhbHVlID0gInZhbHVlIjsK
KyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBo
cD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9IiArIGNvb2tpZVZhbHVl
OworICAgIGNvbnN0IHJldHVyblVybCA9IGZpcnN0UGFydHlPcmlnaW4gKyAiL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmcuaHRtbCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9y
aWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNl
VXJsID0gdGhpcmRQYXJ0eU9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldFRoaXJkUGFydHlDb29raWUgPSAiL3NldC1jb29r
aWUucGhwP25hbWU9IiArIHRoaXJkUGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT0iICsgY29va2ll
VmFsdWU7CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVy
LnNldFVzZUlUUERhdGFiYXNlKGZhbHNlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmlyZURhdGFNb2RpZmljYXRpb25IYW5k
bGVyQW5kQ29udGludWUoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NE
aWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJ1blRl
c3QoKTsKKyAgICAgICAgfSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NT
dGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjbGVhcklu
TWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlQW5kQ29udGludWUoKSB7CisgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc0NsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmUoZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkg
eworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAgICAvLyBTZXQgYSBm
aXJzdC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5ocmVmID0gZmlyc3RQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRGaXJzdFBh
cnR5Q29va2llICsgIiMiICsgcmV0dXJuVXJsICsgIiNzdGVwMiI7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAgICAgICAgICAgIC8vIENoZWNrIHRo
YXQgbG9jYWxob3N0J3MgY29va2llIGlzIHRoZXJlLgorICAgICAgICAgICAgICAgIGlmIChkb2N1
bWVudC5jb29raWUgIT09IGZpcnN0UGFydHlDb29raWVOYW1lICsgIj0iICsgY29va2llVmFsdWUp
CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkZpcnN0LXBhcnR5IGNvb2tpZSBub3Qg
c2V0LiIpOworICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
bG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgLy8gQ2xlYXIgc3RvcmUg
dG8gdHJpZ2dlciBncmFuZGZhdGhlcmluZy4KKyAgICAgICAgICAgICAgICBjbGVhckluTWVtb3J5
QW5kUGVyc2lzdGVudFN0b3JlQW5kQ29udGludWUoKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaGFzaCA9ICJzdGVwNSI7CisgICAgICAgICAgICAgICAgLy8gU2V0IGxvY2FsaG9zdCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IikpCisgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA1
IjoKKyAgICAgICAgICAgICAgICAvLyBTZXQgYSBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIDEyNy4w
LjAuMS4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0
eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRUaGlyZFBhcnR5Q29va2llICsgIiMiICsgcmV0dXJuVXJs
ICsgIiNzdGVwNiI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIj
c3RlcDYiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDci
OworICAgICAgICAgICAgICAgIC8vIFNldCAxMjcuMC4wLjEgYXMgcHJldmFsZW50IHJlc291cmNl
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UoImh0dHA6Ly8xMjcuMC4wLjEiLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRw
Oi8vMTI3LjAuMC4xIikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCIxMjcu
MC4wLjEgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA3IjoKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA4IjsKKyAgICAgICAgICAgICAgICAvLyBUcmln
Z2VyIGEgcHVyZ2UuCisgICAgICAgICAgICAgICAgZmlyZURhdGFNb2RpZmljYXRpb25IYW5kbGVy
QW5kQ29udGludWUoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
IiNzdGVwOCI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBsb2NhbGhvc3QncyBjb29r
aWUgaXMgc3RpbGwgdGhlcmUuCisgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAh
PT0gZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiPSIgKyBjb29raWVWYWx1ZSkKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiRmlyc3QtcGFydHkgY29va2llIHB1cmdlZC4iKTsKKyAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkdyYW5kZmF0
aGVyZWQgY29va2llIHdhcyBub3QgcHVyZ2VkLiIpOworICAgICAgICAgICAgICAgIGZpbmlzaFRl
c3QoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkIG5vdCBiZSByZWFjaGVkLiIpOworICAgICAg
ICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cu
aW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7
CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURh
dGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7CisKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPSAic3RlcDEiOworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9
IGVsc2UKKyAgICAgICAgcnVuVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bG9nLWNyb3NzLXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xvZy1jcm9zcy1zaXRlLWxvYWQt
d2l0aC1saW5rLWRlY29yYXRpb24uaHRtbAppbmRleCBjNmNiMGRiYTA1NmMxOTFhYjk0ZWFiMzdi
M2RmMTNlMmNiOWU4ZjE5Li5mY2M4MmM1NjU2ODI4ZGYwNWFjYmMyM2FiODBlZTA2NGJhMGE3OGZm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvbG9nLWNyb3NzLXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9sb2ctY3Jvc3Mtc2l0
ZS1sb2FkLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0bWwKQEAgLTgsNiArOCw3IEBACiA8ZGl2IGlk
PSJvdXRwdXQiPjwvZGl2PgogPHNjcmlwdD4KICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZShmYWxzZSk7CiAgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24t
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9u
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODlmODU1YTc4OWNmMTBiZjMzMGY0
YzkyZWExMmI5NDFhYmVmYzA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11
c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBDb29r
aWUgbm90IGRlbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRl
cmFjdGlvbi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9u
LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDk3ZTgwZmQ2NjRlZTFlYTgwMzhkOWU4NzJjNzM5
NTcyOTBmNTExZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRl
cmFjdGlvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAg
IDx0aXRsZT5UZXN0cyBmb3IgTm9uLVByZXZhbGVudCBSZXNvdXJjZSBXaXRoIFVzZXIgSW50ZXJh
Y3Rpb248L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0
ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8i
ICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3Qgb3RoZXJQcmV2YWxlbnRVcmwg
PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1
bm5lclRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09ICIiKQorICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIG5vdCBlbXB0eS4iKTsKKyAgICAgICAg
Y29uc3QgY29va2llID0gInRlc3RDb29raWU9dGVzdFZhbHVlIjsKKyAgICAgICAgZG9jdW1lbnQu
Y29va2llID0gY29va2llICsgIjsgbWF4LWFnZT0xMDA7IjsKKyAgICAgICAgaWYgKGRvY3VtZW50
LmNvb2tpZSAhPT0gY29va2llKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29v
a2llIGRpZCBub3QgZ2V0IHNldC4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3Qg
Z2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICAvLyBU
aGlzIGlzIGRvbmUgdG8gbm90IGhhdmUgYW4gZW1wdHkgc2V0IG9mIHByZXZhbGVudCByZXNvdXJj
ZXMuCisgICAgICAgICAgICAvLyBPdGhlcndpc2UgZGF0YSByZWNvcmRzIGFyZSBuZXZlciBzY2Fu
bmVkLgorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uob3RoZXJQcmV2YWxlbnRVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
IGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZh
bGVudFVybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk90aGVyIGhvc3QgZGlk
IG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNz
VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgbG9nZ2Vk
IGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworCisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgPT09IGNvb2tp
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb29raWUgbm90IGRl
bGV0ZWQuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIGRlbGV0ZWQgb3IgZG9jdW1lbnQuY29va2ll
IGNvbnRhaW5zIG90aGVyIGNvb2tpZXM6ICIgKyBkb2N1bWVudC5jb29raWUpOworCisgICAgICAg
ICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJj
ZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92
YWwoMCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NT
dGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24u
aG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7Cisg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAg
ICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWlu
dGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNl
ci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg5Zjg1NWE3
ODljZjEwYmYzMzBmNGM5MmVhMTJiOTQxYWJlZmMwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJl
c291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKK1BBU1MgQ29va2llIG5vdCBkZWxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJj
ZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdp
dGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiY2U5OTA0
NWYwYTNlY2NkYmFkMTg3ODdlZWQ4ZmZmNjY1N2ZmNjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1y
ZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsx
LDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxt
ZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIE5vbi1QcmV2YWxlbnQg
UmVzb3VyY2UgV2l0aG91dCBVc2VyIEludGVyYWN0aW9uPC90aXRsZT4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29u
c3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOwor
ICAgIGNvbnN0IG90aGVyUHJldmFsZW50VXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC90ZW1w
IjsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICBpZiAoZG9j
dW1lbnQuY29va2llICE9PSAiIikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3VtZW50LmNv
b2tpZSBub3QgZW1wdHkuIik7CisgICAgICAgIGNvbnN0IGNvb2tpZSA9ICJ0ZXN0Q29va2llPXRl
c3RWYWx1ZSI7CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZSArICI7IG1heC1hZ2U9
MTAwOyI7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09IGNvb2tpZSkKKyAgICAgICAg
ICAgIHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBkaWQgbm90IGdldCBzZXQuIik7CisKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNv
dXJjZS4iKTsKKworICAgICAgICAgICAgLy8gVGhpcyBpcyBkb25lIHRvIG5vdCBoYXZlIGFuIGVt
cHR5IHNldCBvZiBwcmV2YWxlbnQgcmVzb3VyY2VzLgorICAgICAgICAgICAgLy8gT3RoZXJ3aXNl
IGRhdGEgcmVjb3JkcyBhcmUgbmV2ZXIgc2Nhbm5lZC4KKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsLCB0cnVlLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2Uob3RoZXJQcmV2YWxlbnRVcmwpKQorICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJPdGhlciBob3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNI
YWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsZWFyZWQgb2YgdXNlciBpbnRlcmFjdGlvbi4iKTsKKwor
ICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRh
dGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoZG9jdW1lbnQuY29va2llID09PSBjb29raWUpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiQ29va2llIG5vdCBkZWxldGVkLiIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tp
ZSBkZWxldGVkIG9yIGRvY3VtZW50LmNvb2tpZSBjb250YWlucyBvdGhlciBjb29raWVzOiAiICsg
ZG9jdW1lbnQuY29va2llKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZShmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZh
bHNlKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11
bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQor
CisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2lu
ZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVy
LnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRz
V2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAg
ICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFs
ZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMt
aW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wZmI5N2Y5MWZjZDMzY2M5Nzg5NzljZDQ4YTU1YTQ5NDc0ZDI3NzExCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1w
cmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNv
bnRleHQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKKy0tLS0tLS0tCitGcmFt
ZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgb25lIGNvb2tpZS4K
K1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBk
b2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJl
c291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0LWRhdGFi
YXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFy
dHktY29udGV4dC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2NGNmY2IxZjNlMzcyMGZjYTIy
M2M0MmQ4NzhjMjVhOTY2MjI5YmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2Fu
LWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1kYXRhYmFzZS5odG1sCkBA
IC0wLDAgKzEsNjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+
CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0IHRvIGVuc3VyZSBu
b24tcHJldmFsZW50IHJlc291cmNlcyBjYW4gYWNjZXNzIHRoZWlyIGNvb2tpZXMgaW4gYSB0aGly
ZCBwYXJ0eSBjb250ZXh0PC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRp
bC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgcGFy
dGl0aW9uSG9zdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdp
biA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJs
ID0gdGhpcmRQYXJ0eU9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMi
OworICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVOYW1lID0gImZpcnN0UGFydHlDb29raWUiOwor
ICAgIGNvbnN0IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhw
P25hbWU9IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgY29u
c3QgZnJhZ21lbnRXaXRoUmV0dXJuVXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2ll
cy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQuaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0
Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFt
ZTsKKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBv
bkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgIGlm
IChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhh
bmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVt
ZW50KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2gg
KGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6Cisg
ICAgICAgICAgICAgICAgLy8gU2V0IGEgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3Qu
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNl
VXJsICsgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIGZyYWdtZW50V2l0aFJl
dHVyblVybCArICIjc3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICAvLyBMb2FkIGxvY2FsaG9zdCB1bmRlciAx
MjcuMC4wLjEgYW5kIGNoZWNrIHRoYXQgaXQgZ2V0cyBpdHMgY29va2llLgorICAgICAgICAgICAg
ICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsg
IiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIG9uZSBjb29raWUuIiwgZmluaXNoVGVzdCk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQu
bG9jYXRpb24uaG9zdCA9PT0gcGFydGl0aW9uSG9zdCAmJiBkb2N1bWVudC5sb2NhdGlvbi5oYXNo
ID09ICIiICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNU
ZXh0KCk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBh
cnR5T3JpZ2luLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4sIGZh
bHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aGFzaCA9ICJzdGVwMSI7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRlc3Qo
KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODYzYzcyMDJiMDNlNzcwZDZlNDQ2ZmI2ZjM0MDBmYjM4YzU5
ZjUzMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhv
c3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRo
YXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Bl
cmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAi
aHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NS
ZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcu
MC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFz
UmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMg
dHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0
YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNWJkYTZmOWYxYmNlYmY0ODk0NTViZWNlNDg1ZjVjZWNk
MWY2MDljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2Fs
aG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
cmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5
LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAg
IGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5S
ZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBm
YWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAg
ICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAi
IikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVj
ZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmln
aW4pOworCisgICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7
CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRl
c3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hl
Y2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6
Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAi
aHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAu
MSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0g
dHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAg
ICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVz
dFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jk
c0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/cmVkaXJl
Y3RUbz1odHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMvcmVkaXJlY3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9pZnJhbWUtcmVwb3J0LWJhY2stbG9hZGVkLmh0bWwi
PgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVk
aXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRi
b3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODYzYzcyMDJiMDNlNzcwZDZlNDQ2ZmI2ZjM0MDBm
YjM4YzU5ZjUzMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhv
c3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEy
IEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQg
Y291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8v
bG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIs
ICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xv
Y2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRv
LWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2Fs
aG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YjVlZTk5
MzcwNDEwNTJkYzI2ZThmNmE1ODY5YTIyMTMyMDAzYTMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRt
bApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAg
PHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+
CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2Fu
ZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNB
c3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwg
cmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkg
eworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZh
bHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rp
b24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4g
PT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50
LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFu
IHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFz
dFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRz
Q2hlY2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsK
KyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAg
ICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJh
bWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNS
ZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOwor
ICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVy
ZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIp
Jyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAo
bGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVz
dCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRh
UmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0K
KyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHAv
P3JlZGlyZWN0VG89aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cmVzb3VyY2VzL3JlZGlyZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vbG9jYWxob3N0OjgwMDAv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvaWZyYW1lLXJlcG9ydC1iYWNrLWxvYWRl
ZC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVz
dGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2Nh
bGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0
aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliNTE2ZjEzMmY5ZmIxMDEzNjgyMjYzYzZm
MmM4MTBiN2ZhZjlkOGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRo
LW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRh
YmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMg
Zm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJh
bWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigi
aHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2Nh
bGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0
dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1u
b24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJh
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVk
aXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQ5
Y2E1OTAxZGI4MGUwZGQwMmMyMDUyMDMzYzE1N2RkZDM2ZTMxZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJv
eGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAt
dG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVz
dHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEg
bm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpz
VGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVz
c2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNo
VGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVz
dCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2Fk
ZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAg
IGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQu
b3JpZ2luID09PSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIikgeworICAgICAgICAgICAgICAgIGlm
IChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2Ug
ZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAg
ICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlm
IChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2Vy
dmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7
CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4x
IiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NS
ZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2Nh
bGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAg
ICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZp
bmlzaFRlc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVk
KHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRT
Y2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcGFnZS13
aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC5o
dG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGlu
Zy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8t
aXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1l
LXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxv
Y2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWI1MTZmMTMyZjlmYjEw
MTM2ODIyNjNjNmYyYzgxMGI3ZmFmOWQ4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3Rpbmct
aWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlw
LXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVz
dHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEg
bm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJl
ZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikg
aXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0
aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BB
U1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRw
Oi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVz
dGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3Qt
dG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRo
LW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhv
c3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMWUzM2Y2NjdkYTM1OWYzYTgyYmYzYzBjMzEw
ZDM0ZWMzNzViMzRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1u
b24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMg
Zm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJh
bWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVl
OworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNz
YWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKwor
ICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAg
ICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVN
ZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4
T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQu
ZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVk
IG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRp
cmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisg
ICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0K
KworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVU
cnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0
dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91
bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdU
bygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAg
IHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVj
dGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAg
ICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5S
ZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0
cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxs
YmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcGFnZS13aXRoLW5vbi1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QuaHRtbCI+Cis8L2lm
cmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdp
dGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzE1Yzg1ZWI0N2UwZjA4NDE2ZTYxZmQwMTVmZDdhZTNjYjg2NmI2OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUgbmVz
dGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3
LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlz
IHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGlu
Z1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5k
Ym94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRv
LWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjk3MzhlYTNiNTlhMGE3MDc0M2QzNDVkZjA1MmVhNjI5ZDJmNmI5M2QK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJh
bWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCAr
MSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBk
ZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgc2FuZGJveGVkIGlmcmFtZSBu
ZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsK
KyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5j
dGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJl
Y3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7
CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAg
IGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikgeworICAgICAgICAgICAgICAgIGlmIChldmVu
dC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBh
biB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxh
c3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0
c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7
CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAg
ICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZy
YW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAg
ICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFz
UmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsK
KyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3Rl
cmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3Qi
KScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYg
KGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRl
c3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUp
OworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0
YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8vMTI3
LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcGFnZS13aXRoLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLmh0bWwiPgorPC9p
ZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13
aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9z
dC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hl
ZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE1Yzg1ZWI0N2UwZjA4NDE2ZTYxZmQwMTVmZDdhZTNj
Yjg2NmI2OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3Ig
YSBzYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBj
b3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9s
b2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0Iiwg
Imh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9j
YWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNh
bmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9j
YWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3ZmFm
MDBhOGZkNzJmMTQ0ZWFhZWVlNGE3ZDJkMGNiNDliOGQ5OTUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hl
ZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0
LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRl
c3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9u
LXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2Fn
ZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVz
dCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQg
PSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1
bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3Jp
Z2luID09PSAibnVsbCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9m
KCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRh
dGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBv
cmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJl
Y3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAg
ICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAgICAgICB9CisK
KyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1
ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRw
Oi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxk
QmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8o
Imh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBz
aG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3Rp
bmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsKKworICAgICAg
ICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVk
aXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAg
IH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJh
Y2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QuaHRtbCI+Cis8L2lmcmFtZT4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjU0OWJmYjkwY2MxYWM1ZjkzMTVkZGYwOWNkNGI5MzFjOThiNzQ3ZWYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMjQgQEAKK1Rlc3RzIHRoYXQgY29va2llIGJsb2NraW5nIGlzIGFwcGxpZWQgdG8gcGluZyBs
b2Fkcy4KKyAgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0K
K1Nob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1l
ZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0
UGFydHlDb29raWU9dmFsdWUKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMi0tPicKKy0t
LS0tLS0tCitTaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tp
ZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6
CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTMtLT4nCistLS0tLS0tLQorUGluZyByZWNl
aXZlZC4KK0hUVFBfSE9TVDogbG9jYWxob3N0OjgwMDAKK1JFUVVFU1RfVVJJOiAvY29udGVudGV4
dGVuc2lvbnMvcmVzb3VyY2VzL3NhdmUtcGluZy5waHA/dGVzdD1waW5nLXRvLXByZXZhbGVudC1y
ZXNvdXJjZQorTm8gY29va2llcyBpbiBwaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNl
LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lNjIxMjgxMTU4ZmQzN2VhZWRkMGM1NGVhYjFlNDczOGU5MGE2NWRiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Bpbmct
dG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMDAgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNl
dD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBj
b29raWUgYmxvY2tpbmcgaXMgYXBwbGllZCB0byBwaW5nIGxvYWRzLjwvZGl2PgorPGEgaWQ9InRh
cmdldExpbmsiIGhyZWY9IiMiIHBpbmc9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9jb250ZW50ZXh0
ZW5zaW9ucy9yZXNvdXJjZXMvc2F2ZS1waW5nLnBocD90ZXN0PXBpbmctdG8tcHJldmFsZW50LXJl
c291cmNlIj5UaGUgbGluazwvYT4KKzxzY3JpcHQ+CisgICAgaWYgKHRlc3RSdW5uZXIpCisgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgY29uc3QgcGFydGl0aW9uSG9z
dCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHJlc291cmNlUGF0aCA9ICIvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0g
dGhpcmRQYXJ0eU9yaWdpbiArIHJlc291cmNlUGF0aDsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29v
a2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJz
dFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2ll
TmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHJldHVyblVybCA9ICJodHRwOi8vIiAr
IHBhcnRpdGlvbkhvc3QgKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1wcmV2YWxl
bnQtcmVzb3VyY2UuaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0
LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZTsKKworICAgIGZ1bmN0
aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQsIGNhbGxiYWNrKSB7CisgICAgICAgIHZhciBl
bGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKKyAgICAgICAgdmFy
IGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsK
KyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0
SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZ
KS50aGVuKAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGNhbGxi
YWNrKCk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAg
ICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVy
KSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJh
bWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbkxvYWRIYW5k
bGVyKSB7CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAg
ICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAg
ICAgLy8gU2V0IGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhU
b1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyByZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAg
ICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgY29va2llIGdldHMgc2VudCBmb3IgbG9jYWxob3N0IHVu
ZGVyIDEyNy4wLjAuMSBzaW5jZSBsb2NhbGhvc3QgaXMgbm90IHByZXZhbGVudC4KKyAgICAgICAg
ICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAg
ICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICIm
bWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAg
ICAgICAgICAgIC8vIFNldCBsb2NhbGhvc3QgYXMgcHJldmFsZW50IHRvIHB1dCBpdCBpbiB0aGUg
YmxvY2tpbmcgY2F0ZWdvcnkuCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJs
b2NraW5nKHJ1blRlc3QpOworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5o
YXNoID0gInN0ZXA0IjsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sg
dGhhdCBubyBjb29raWUgZ2V0cyBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNp
bmNlIGxvY2FsaG9zdCdzIGNvb2tpZXMgYXJlIGJsb2NrZWQuCisgICAgICAgICAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNSI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFt
ZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAgIiZtZXNzYWdlPVNo
b3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDUiOgorICAgICAgICAgICAgICAgIC8vIENsaWNr
IHRoZSBsaW5rIHRvIHRyaWdnZXIgdGhlIHBpbmcuCisgICAgICAgICAgICAgICAgYWN0aXZhdGVF
bGVtZW50KCJ0YXJnZXRMaW5rIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIG9w
ZW5JZnJhbWUodGhpcmRQYXJ0eU9yaWdpbiArICIvY29udGVudGV4dGVuc2lvbnMvcmVzb3VyY2Vz
L2dldC1waW5nLWRhdGEucGhwP3Rlc3Q9cGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UiLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hp
bGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgZmV0Y2goIi9jb250ZW50ZXh0ZW5zaW9ucy9yZXNvdXJjZXMvZGVsZXRlLXBp
bmcucGhwP3Rlc3Q9cGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UiKS50aGVuKCgpPT57CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlm
IChkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIikgeworICAgICAgICBpZiAodGVzdFJ1bm5l
cikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAg
ICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAgICAgICAgICAgcnVu
VGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAg
ICBydW5UZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFs
ZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291
cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTRl
MzJjNTkzZGUxMGQ1NzczNzEwMTM1NzFkZDM0OGY1Mzg1MTk2ZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQt
cmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEyIEBACitUZXN0cyB0aGF0IHdlIGdyYW50IFVzZXIgSW50ZXJhY3Rpb24gY3JlZGl0IGZvciBo
YW5kbGVkIGtleXByZXNzZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTaW11
bGF0ZSB1c2VyIHR5cGluZyBsZXR0ZXIgJ2EnIGludG8gdGhlIGZpZWxkLgorUEFTUyB0ZXN0SW5w
dXQudmFsdWUgaXMgImEiCitQQVNTIE9yaWdpbiB3YXMgZ3JhbnRlZCB1c2VyIGludGVyYWN0aW9u
LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJj
ZS1oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTU2YTUwY2NjODRm
ODBhMTc1ZGY0NjdmZjc4ODk0Y2U3YjUxOWZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1o
YW5kbGVkLWtleWRvd24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDYyIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHdl
IGdyYW50IFVzZXIgSW50ZXJhY3Rpb24gY3JlZGl0IGZvciBoYW5kbGVkIGtleXByZXNzZXMuIik7
Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvdGVtcCI7CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHRlc3RGcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0RnJhbWUiKTsKKworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIGludGVybmFscy5zZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsK
KyAgICB9CisKKyAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbihzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1Vy
bCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGVhcmVk
IG9mIHVzZXIgaW50ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAgIHRlc3RJbnB1dCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0SW5wdXQiKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXN0SW5wdXQudmFs
dWUiLCAiYSIpOworCisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiT3JpZ2luIGRpZCBub3QgZ2V0IHVzZXIgaW50ZXJhY3Rpb24gY3JlZGl0
LiIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3Nl
ZCgiT3JpZ2luIHdhcyBncmFudGVkIHVzZXIgaW50ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAg
ICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RnJh
bWUuc3JjID0gImFib3V0OmJsYW5rIjsKKyAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNz
aWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVt
b3ZhbCgwKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0
aWNzQW5kRGF0YVJlY29yZHMoKTsKKworICAgICAgICAgICAgZGVidWcoIlNpbXVsYXRlIHVzZXIg
dHlwaW5nIGxldHRlciAnYScgaW50byB0aGUgZmllbGQuIik7CisgICAgICAgICAgICB0ZXN0SW5w
dXQuZm9jdXMoKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAg
ICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiYSIpOworICAgICAgICB9KTsKKyAgICB9KTsK
K30KKzwvc2NyaXB0PgorPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBzcmM9InJlc291cmNlcy9vbmNs
aWNrLmh0bWwiPjwvaWZyYW1lPgorPGlucHV0IGlkPSJ0ZXN0SW5wdXQiIHR5cGU9InRleHQiPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1k
YXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNmU1NTliZmEyZGQyNDYxNjc5ODliMjVhYjgyMzlj
NDU2YjE2NGIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1k
YXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdHMgdGhhdCB3ZSBkbyBu
b3QgZ3JhbnQgVXNlciBJbnRlcmFjdGlvbiBjcmVkaXQgZm9yIHVuaGFuZGxlZCBrZXlwcmVzcy4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1NpbXVsYXRlIGFuIHVuaGFuZGxlZCB1
c2VyIGtleSBwcmVzcy4KK1BBU1MgT3JpZ2luIGRpZCBub3QgZ2V0IHVzZXIgaW50ZXJhY3Rpb24g
Y3JlZGl0LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQt
cmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YWNk
ZWIyOGU0Y2NiNzEyODI1MzIxN2JhODgxOWVhN2VhNmZiMmZkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1y
ZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRl
c3RzIHRoYXQgd2UgZG8gbm90IGdyYW50IFVzZXIgSW50ZXJhY3Rpb24gY3JlZGl0IGZvciB1bmhh
bmRsZWQga2V5cHJlc3MuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworY29uc3Qgc3RhdGlz
dGljc1VybCA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvdGVtcCI7CisKK29ubG9hZCA9IGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHRlc3RGcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
ZXN0RnJhbWUiKTsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJu
YWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAg
ICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNX
ZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICB9CisKKyAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMg
cHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBk
aWQgbm90IGdldCBjbGVhcmVkIG9mIHVzZXIgaW50ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNr
KGZ1bmN0aW9uKCkgeworCisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiT3JpZ2luIGRpZCBub3QgZ2V0IHVzZXIgaW50ZXJhY3Rpb24gY3Jl
ZGl0LiIpOworCisgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdEZyYW1lLnNyYyA9ICJhYm91dDpibGFuayI7CisgICAgICAgICAg
ICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0sIDApOworICAgICAgICAg
ICAgICAgIH0sIDApOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3Zh
bChmYWxzZSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGlt
ZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisKKyAgICAgICAgICAg
IGRlYnVnKCJTaW11bGF0ZSBhbiB1bmhhbmRsZWQgdXNlciBrZXkgcHJlc3MuIik7CisgICAgICAg
ICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVy
LmtleURvd24oImEiLCBbIm1ldGFLZXkiXSk7CisgICAgICAgIH0pOworICAgIH0pOworfQorPC9z
Y3JpcHQ+Cis8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUiIHNyYz0icmVzb3VyY2VzL29uY2xpY2suaHRt
bCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgt
dXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNl
ci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg5Zjg1NWE3
ODljZjEwYmYzMzBmNGM5MmVhMTJiOTQxYWJlZmMwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3Vy
Y2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
UEFTUyBDb29raWUgbm90IGRlbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2Vy
LWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlv
bi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjMTNhNTAyNzRjNmRkOTRiZmU4YTE2NDU5YzRj
YmFiOGE5MGU5MGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFj
dGlvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0
aXRsZT5UZXN0cyBmb3IgUHJldmFsZW50IFJlc291cmNlIFdpdGggVXNlciBJbnRlcmFjdGlvbjwv
dGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdzZXRVcEFuZFJ1bigpJywgMCkiPgor
PHNjcmlwdD4KKyAgICBpZiAodGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsK
KyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIv
dGVtcCI7CisgICAgY29uc3Qgb3RoZXJQcmV2YWxlbnRVcmwgPSAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3RlbXAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICBp
ZiAoZG9jdW1lbnQuY29va2llICE9PSAiIikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3Vt
ZW50LmNvb2tpZSBub3QgZW1wdHkuIik7CisgICAgICAgIGNvbnN0IGNvb2tpZSA9ICJ0ZXN0Q29v
a2llPXRlc3RWYWx1ZSI7CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZSArICI7IG1h
eC1hZ2U9MTAwOyI7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09IGNvb2tpZSkKKyAg
ICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBkaWQgbm90IGdldCBzZXQuIik7
CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3Rh
dGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJl
c291cmNlLiIpOworCisgICAgICAgICAgICAvLyBUaGlzIGlzIGRvbmUgdG8gbm90IGhhdmUgYW4g
ZW1wdHkgc2V0IG9mIHByZXZhbGVudCByZXNvdXJjZXMuCisgICAgICAgICAgICAvLyBPdGhlcndp
c2UgZGF0YSByZWNvcmRzIGFyZSBuZXZlciBzY2FubmVkLgorICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uob3RoZXJQcmV2YWxlbnRVcmwsIHRydWUs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZhbGVudFVybCkpCisgICAgICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIk90aGVyIGhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOwor
CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2Rp
ZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKGRvY3VtZW50LmNvb2tpZSA9PT0gY29va2llKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIkNvb2tpZSBub3QgZGVsZXRlZC4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJD
b29raWUgZGVsZXRlZCBvciBkb2N1bWVudC5jb29raWUgY29udGFpbnMgb3RoZXIgY29va2llczog
IiArIGRvY3VtZW50LmNvb2tpZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwo
ZmFsc2UpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5p
bXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7CisgICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBzZXRVcEFuZFJ1bigpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50Lmxv
Y2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2lu
ZG93LmludGVybmFscykgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFz
ZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIldyb25nIGhvc3QsIG5v
IHRlc3RSdW5uZXIsIG9yIG5vIGludGVybmFscy4iKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0LWRh
dGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVv
dXQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ODA5ZTkxYzIzYzIzYTIzNjlj
ZDA4NTRlYjE4MTY0N2RmYWViNDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNl
ci1pbnRlcmFjdGlvbi10aW1lb3V0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUg
QEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFT
UyBDb29raWUgZGVsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJh
Y3Rpb24tdGltZW91dC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rp
b24tdGltZW91dC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyMDg5NzA1ZDI3OGVhYTIyMTI2
ODU2ZDFkNmQwOTlhNTlhMGE3YjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNl
ci1pbnRlcmFjdGlvbi10aW1lb3V0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0
PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBQcmV2YWxlbnQgUmVzb3VyY2UgV2l0aCBV
c2VyIEludGVyYWN0aW9uIFRpbWVvdXQ8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29u
c3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOwor
ICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQu
Y29va2llICE9PSAiIikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBu
b3QgZW1wdHkuIik7CisgICAgICAgIGNvbnN0IGNvb2tpZSA9ICJ0ZXN0Q29va2llPXRlc3RWYWx1
ZSI7CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZSArICI7IG1heC1hZ2U9MTAwOyI7
CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09IGNvb2tpZSkKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBkaWQgbm90IGdldCBzZXQuIik7CisKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwg
dHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwor
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rp
b24oc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBs
b2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgbm90IGRlbGV0ZWQ6ICIg
KyBkb2N1bWVudC5jb29raWUpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb29raWUgZGVsZXRlZC4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNl
KTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNp
c3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFz
c2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29y
ZHNSZW1vdmFsKDApOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Rp
bWVUb0xpdmVVc2VySW50ZXJhY3Rpb24oMCk7CisKKyAgICAgICAgICAgICAgICAvLyBUaGlzIGlz
IHRvIGVuc3VyZSB0aGUgdGltZW91dCB3ZSdyZSB0ZXN0aW5nLgorICAgICAgICAgICAgICAgIHNl
dFRpbWVvdXQoInRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJl
Y29yZHMoKSIsIDEwMDApOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRv
dy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0
cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0
YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsK
KyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Ut
d2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Ut
d2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mNzgwOWU5MWMyM2MyM2EyMzY5Y2QwODU0ZWIxODE2NDdkZmFlYjQzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZh
bGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCitQQVNTIENvb2tpZSBkZWxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNl
LXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0
LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yN2IwYjJhYWUzMDg0
ZDRjNDdkOWVjOWY3Y2UzMmZlNGQ0MGI5YzRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13
aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU5IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIFByZXZhbGVudCBSZXNvdXJjZSBXaXRo
b3V0IFVzZXIgSW50ZXJhY3Rpb248L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qg
c3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworCisg
ICAgZnVuY3Rpb24gZmluaXNoVGVzdCAoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUg
IT09ICIiKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5vdCBkZWxldGVkOiAiICsg
ZG9jdW1lbnQuY29va2llKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgi
Q29va2llIGRlbGV0ZWQuIik7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0
VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1
bm5lclRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09ICIiKQorICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIG5vdCBlbXB0eS4iKTsKKyAgICAgICAg
Y29uc3QgY29va2llID0gInRlc3RDb29raWU9dGVzdFZhbHVlIjsKKyAgICAgICAgZG9jdW1lbnQu
Y29va2llID0gY29va2llICsgIjsgbWF4LWFnZT0xMDA7IjsKKyAgICAgICAgaWYgKGRvY3VtZW50
LmNvb2tpZSAhPT0gY29va2llKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29v
a2llIGRpZCBub3QgZ2V0IHNldC4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3Qg
Z2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCBmYWxz
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsZWFyZWQgb2YgdXNlciBpbnRlcmFj
dGlvbi4iKTsKKworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NE
aWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
ICAgICBzZXRUaW1lb3V0KCJmaW5pc2hUZXN0KCkiLCAxMDAwKTsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lm
eVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNS
ZW1vdmFsKDApOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NT
dGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsK
KyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVz
dCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQ
RGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBh
Z2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5u
ZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3Rh
dGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTc0NzU3YmM1MjU2MDA1MjFkNDYxNTQ1ZDAzNjdjMGYwNTAxYmVmMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE3IEBACitUZXN0cyB0aGF0IHN0YXRpc3RpY3MgYXJlIHBydW5lZCBpbiB0aGUgcmlnaHQgb3Jk
ZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRlc3QgaXRlcmF0aW9u
IDEgcGFzc2VkLgorUEFTUyBUZXN0IGl0ZXJhdGlvbiAyIHBhc3NlZC4KK1BBU1MgVGVzdCBpdGVy
YXRpb24gMyBwYXNzZWQuCitQQVNTIFRlc3QgaXRlcmF0aW9uIDQgcGFzc2VkLgorUEFTUyBUZXN0
IGl0ZXJhdGlvbiA1IHBhc3NlZC4KK1BBU1MgVGVzdCBpdGVyYXRpb24gNiBwYXNzZWQuCitQQVNT
IFRlc3QgaXRlcmF0aW9uIDcgcGFzc2VkLgorUEFTUyBUZXN0IGl0ZXJhdGlvbiA4IHBhc3NlZC4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1
bmUtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3BydW5lLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wY2FiN2QzOTE3MWQwM2Y0N2I0MTlkMmFkYjBjYTEzOGFkZjc4ZWI5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3By
dW5lLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDE2MyBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8
dGl0bGU+VGVzdCBmb3IgUmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzIFBydW5pbmc8L3RpdGxlPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
c3RhdGlzdGljcyBhcmUgcHJ1bmVkIGluIHRoZSByaWdodCBvcmRlci4iKTsKKyAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IG9sZGVyVGltZXN0YW1wID0gTWF0aC5yb3VuZCgo
bmV3IERhdGUoKSkuZ2V0VGltZSgpIC8gMTAwMCk7CisgICAgY29uc3QgbmV3ZXJUaW1lc3RhbXAg
PSBvbGRlclRpbWVzdGFtcCArIDEwOworICAgIGNvbnN0IG5ld2VzdFRpbWVzdGFtcCA9IG5ld2Vy
VGltZXN0YW1wICsgMTA7CisKKyAgICBjb25zdCB1cmxzVG9CZVBydW5lZCA9IFsKKyAgICAgICAg
eyB1cmw6ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvdGVtcCIsIHByZXZhbGVudDogZmFsc2UgfSwK
KyAgICAgICAgeyB1cmw6ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCIsIHByZXZhbGVudDog
ZmFsc2UgfSwKKyAgICAgICAgeyB1cmw6ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCIsIHBy
ZXZhbGVudDogdHJ1ZSB9LAorICAgICAgICB7IHVybDogImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90
ZW1wIiwgcHJldmFsZW50OiB0cnVlIH0sCisgICAgICAgIHsgdXJsOiAiaHR0cDovLzEyNy4wLjAu
NTo4MDAwL3RlbXAiLCBwcmV2YWxlbnQ6IGZhbHNlIH0sCisgICAgICAgIHsgdXJsOiAiaHR0cDov
LzEyNy4wLjAuNjo4MDAwL3RlbXAiLCBwcmV2YWxlbnQ6IGZhbHNlIH0sCisgICAgICAgIHsgdXJs
OiAiaHR0cDovLzEyNy4wLjAuNzo4MDAwL3RlbXAiLCBwcmV2YWxlbnQ6IHRydWUgfSwKKyAgICAg
ICAgeyB1cmw6ICJodHRwOi8vMTI3LjAuMC44OjgwMDAvdGVtcCIsIHByZXZhbGVudDogdHJ1ZSB9
CisgICAgXTsKKworICAgIGZ1bmN0aW9uIGNoZWNrSWZQcmV2YWxlbnRBY2NvcmRpbmdUb0luaXRp
YWxFeHBlY3RhdGlvbihiZWdpbiwgZW5kKSB7CisgICAgICAgIHZhciBmYWlsZWQgPSBmYWxzZTsK
KyAgICAgICAgZm9yICh2YXIgaSA9IGJlZ2luOyBpIDwgZW5kOyArK2kpIHsKKyAgICAgICAgICAg
IGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1
bmVkW2ldLnVybCkgIT09IHVybHNUb0JlUHJ1bmVkW2ldLnByZXZhbGVudCkgeworICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoImNoZWNrSWZQcmV2YWxlbnRBY2NvcmRpbmdUb0luaXRpYWxFeHBl
Y3RhdGlvbjogVGVzdCBpdGVyYXRpb24gIiArIGN1cnJlbnRUZXN0ICsgIiBmYWlsZWQuICIgKyB1
cmxzVG9CZVBydW5lZFtpXS51cmwgKyAodXJsc1RvQmVQcnVuZWRbaV0ucHJldmFsZW50ID8gIiB3
YXNuJ3QgIiA6ICIgd2FzICIpICsgInByZXZhbGVudCIpOworICAgICAgICAgICAgICAgIGZhaWxl
ZCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZhaWxlZCkg
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0
ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gY2hlY2tJZlByZXZhbGVu
dChiZWdpbiwgZW5kLCBleHBlY3RlZCkgeworICAgICAgICB2YXIgZmFpbGVkID0gZmFsc2U7Cisg
ICAgICAgIGZvciAodmFyIGkgPSBiZWdpbjsgaSA8IGVuZDsgKytpKSB7CisgICAgICAgICAgICBp
ZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh1cmxzVG9CZVBydW5l
ZFtpXS51cmwpICE9PSBleHBlY3RlZCkgeworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoImNo
ZWNrSWZQcmV2YWxlbnQ6IFRlc3QgaXRlcmF0aW9uICIgKyBjdXJyZW50VGVzdCArICIgZmFpbGVk
LiAiICsgdXJsc1RvQmVQcnVuZWRbaV0udXJsICsgKGV4cGVjdGVkID8gIiB3YXNuJ3QgIiA6ICIg
d2FzICIpICsgInByZXZhbGVudCIpOworICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZhaWxlZCkgeworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5U
ZXN0cyhzdGVwKSB7CisgICAgICAgIHN3aXRjaCAoc3RlcCkgeworICAgICAgICAgICAgLy8gTm9u
LXByZXZhbGVudCB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIGZpcnN0Lgor
ICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVkWzBdLnVybCwgb2xkZXJUaW1lc3RhbXAsIGZ1bmN0
aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDIpOyB9KTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFsxXS51cmwsIG5ld2Vy
VGltZXN0YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygz
KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAvLyBQcmV2YWxlbnQg
d2l0aG91dCB1c2VyIGludGVyYWN0aW9uIHRvIGJlIHBydW5lZCBzZWNvbmQuCisgICAgICAgICAg
ICBjYXNlIDM6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2UodXJsc1RvQmVQcnVuZWRbMl0udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsgaW5p
dGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyg0KTsgfSk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbMl0udXJsLCBvbGRlclRpbWVzdGFtcCwg
ZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoNSk7IH0pOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1bmVk
WzNdLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVz
dHMoNik7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSA2Ogor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0Jl
UHJ1bmVkWzNdLnVybCwgbmV3ZXJUaW1lc3RhbXAsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3Rh
dGlzdGljc0FuZFJ1blRlc3RzKDcpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIC8vIE5vbi1wcmV2YWxlbnQgd2l0aCB1c2VyIGludGVyYWN0aW9uIHRvIGJlIHBydW5l
ZCB0aGlyZC4KKyAgICAgICAgICAgIGNhc2UgNzoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odXJsc1RvQmVQcnVuZWRbNF0udXJs
LCB0cnVlLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyg4KTsg
fSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDg6CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRb
NF0udXJsLCBvbGRlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNz
QW5kUnVuVGVzdHMoOSk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSA5OgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbih1cmxzVG9CZVBydW5lZFs1XS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBp
bml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDEwKTsgfSk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIDEwOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVkWzVdLnVybCwgbmV3ZXJUaW1lc3Rh
bXAsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDExKTsgfSk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAvLyBQcmV2YWxlbnQgd2l0aCB1
c2VyIGludGVyYWN0aW9uIHRvIGJlIHBydW5lZCBsYXN0LgorICAgICAgICAgICAgY2FzZSAxMToK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSh1cmxzVG9CZVBydW5lZFs2XS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3Rh
dGlzdGljc0FuZFJ1blRlc3RzKDEyKTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIDEyOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbih1cmxzVG9CZVBydW5lZFs2XS51cmwsIHRydWUsIGZ1bmN0
aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDEzKTsgfSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDEzOgorICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVkWzZdLnVybCwgb2xk
ZXJUaW1lc3RhbXAsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3Rz
KDE0KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDE0Ogor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHVybHNUb0JlUHJ1bmVkWzddLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0
aXN0aWNzQW5kUnVuVGVzdHMoMTUpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgMTU6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
SGFzSGFkVXNlckludGVyYWN0aW9uKHVybHNUb0JlUHJ1bmVkWzddLnVybCwgdHJ1ZSwgZnVuY3Rp
b24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTYpOyB9KTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTY6CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbN10udXJsLCBuZXdl
clRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMo
MTcpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTc6Cisg
ICAgICAgICAgICAgICAgY2hlY2tJZlByZXZhbGVudEFjY29yZGluZ1RvSW5pdGlhbEV4cGVjdGF0
aW9uKDAsIHVybHNUb0JlUHJ1bmVkLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgcnVuVGVzdCgp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgdmFyIGN1
cnJlbnRUZXN0OworICAgIGZ1bmN0aW9uIGNoZWNrU3RhdGlzdGljc0FmdGVyUHJ1bmluZygpIHsK
KyAgICAgICAgLy8gUHJ1bmVkIGVudHJpZXMgc2hvdWxkIG5vdCBiZSBwcmV2YWxlbnQuCisgICAg
ICAgIGNoZWNrSWZQcmV2YWxlbnQoMCwgY3VycmVudFRlc3QsIGZhbHNlKTsKKyAgICAgICAgLy8g
Tm9uLXBydW5lZCBlbnRyaWVzIHNob3VsZCBrZWVwIHRoZWlyIGV4cGVjdGVkIHN0YXR1cy4KKyAg
ICAgICAgY2hlY2tJZlByZXZhbGVudEFjY29yZGluZ1RvSW5pdGlhbEV4cGVjdGF0aW9uKGN1cnJl
bnRUZXN0LCB1cmxzVG9CZVBydW5lZC5sZW5ndGgpOworICAgICAgICB0ZXN0UGFzc2VkKCJUZXN0
IGl0ZXJhdGlvbiAiICsgY3VycmVudFRlc3QgKyAiIHBhc3NlZC4iKTsKKyAgICAgICAgaWYgKGN1
cnJlbnRUZXN0IDwgdXJsc1RvQmVQcnVuZWQubGVuZ3RoKSB7CisgICAgICAgICAgICArK2N1cnJl
bnRUZXN0OworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5E
YXRhUmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdGlzdGljc0FmdGVyUHJ1bmluZyk7CisgICAgICAg
ICAgICBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDEpOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0
ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IGZpbGxlclVybDsKKyAgICBmdW5j
dGlvbiBydW5UZXN0KCkgeworICAgICAgICBmaWxsZXJVcmwgPSAiaHR0cDovLzEyNy4wLiIgKyBj
dXJyZW50VGVzdCArICIuMTo4MDAwL3RlbXAiOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShmaWxsZXJVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKGZp
bGxlclVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzTGFzdFNlZW4oZmlsbGVyVXJsLCBuZXdlc3RUaW1lc3RhbXAsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3Rh
dGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURh
dGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0
cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWF4U3RhdGlzdGljc0VudHJp
ZXModXJsc1RvQmVQcnVuZWQubGVuZ3RoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzUHJ1bmVFbnRyaWVzRG93blRvKHVybHNUb0JlUHJ1bmVkLmxlbmd0aCk7CisKKyAgICAgICAg
Y3VycmVudFRlc3QgPSAxOworICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlk
U2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0aXN0aWNzQWZ0ZXJQcnVuaW5nKTsKKyAg
ICAgICAgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxKTsKKyAgICB9Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxv
Y2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10
by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3YzE0
MzhiMTg2NDA2NDJhYTE2ZmMwNmI2OWQ4NDFmZGYzYmYxNmUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBzYW5kYm94ZWQgaWZy
YW1lcyBnZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVy
KCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xv
Y2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAi
aHR0cDovL2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1s
b2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2Fs
aG9zdC10by1pcC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2NzExMjA1MDY4MTgzOTFjYTk2
N2ZmMjRmZmZjMDU4YzkyMTlmNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1p
cC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJU
ZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3Igc2FuZGJveGVkIGlmcmFtZXMgZ2V0IGNvdW50ZWQgcHJv
cGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAg
ICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1
bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsK
KyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29y
ZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxT
dGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFp
bkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAg
ICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChl
dmVudC5vcmlnaW4gPT09ICJudWxsIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRh
LmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
ZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4
cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdl
SW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNr
ZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAg
ICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hv
dWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5k
ZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAg
ICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJl
Y3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNS
ZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOwor
CisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQ
YWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsK
KyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNhbmRi
b3g9ImFsbG93LXNjcmlwdHMiIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vbG9j
YWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhw
Lz9yZWRpcmVjdFRvPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3Jlc291cmNlcy9pZnJhbWUtcmVwb3J0LWJhY2stbG9hZGVkLmh0bWwiPgorPC9pZnJhbWU+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8t
aXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxv
Y2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmI3YzE0MzhiMTg2NDA2NDJhYTE2ZmMwNmI2OWQ4NDFmZGYzYmYxNmUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBm
b3Igc2FuZGJveGVkIGlmcmFtZXMgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJl
ZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikg
aXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0
aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BB
U1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRw
Oi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJh
bWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmYwMjZiZDljMGMyMTJiN2U1ZjE2NDliNTkzYjk3ODgzY2YzMTQ4ZmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMg
Zm9yIHNhbmRib3hlZCBpZnJhbWVzIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1l
c3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlz
aFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rl
c3QpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRh
UmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0K
KworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAg
ICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2Vp
dmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAibnVs
bCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09
IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgi
RkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBl
dmVudC5vcmlnaW4pOworCisgICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRl
ZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAg
IGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVu
Y3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0
IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2Nh
bGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUo
J3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDov
LzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHND
aGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxv
YWRlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKyAgICA8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzYW5kYm94PSJhbGxvdy1zY3JpcHRzIiBz
cmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNl
cy9yZWRpcmVjdC5waHAvP3JlZGlyZWN0VG89aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8v
bG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvaWZyYW1lLXJl
cG9ydC1iYWNrLWxvYWRlZC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Nh
bmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZy
YW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRv
LWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzY1OGNkMzQzZjU1NmUwYzM0
NDc1ZWY5ZWY0NWM2MjBkNGQ0MjdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13
aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1k
YXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVj
dHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgc2FuZGJveGVkIGlmcmFt
ZSBnZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJo
dHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2Fs
aG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0
cDovL2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJv
eGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAt
dG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDkyZDU5OTk2NGU3
ZTYyZmQwNWZiMGQ3OGFlNWUyOTY2MDU3YTA2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1p
ZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3Qt
dG8taXAtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGly
ZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBzYW5kYm94ZWQgaWZy
YW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVz
c2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlm
eVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNo
ZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFz
dFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hl
Y2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7
CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAibnVsbCIpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAg
ICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBt
ZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisg
ICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAg
ICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3Rp
ZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygp
IHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdp
c3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4w
LjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEy
Ny4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRw
Oi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAg
ICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAg
ICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPGlmcmFtZSBzYW5kYm94PSJhbGxvdy1zY3JpcHRzIiBzcmM9Imh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9wYWdlLXdpdGgtbm9uLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLmh0bWwiPgorPC9p
ZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgt
bm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9z
dC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hl
ZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM2NThjZDM0M2Y1NTZlMGMzNDQ3NWVmOWVmNDVjNjIw
ZDRkNDI3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3Ig
YSBub24tc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBzYW5kYm94ZWQgaWZyYW1lIGdldCBj
b3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9s
b2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0Iiwg
Imh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9j
YWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJv
eGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9j
YWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmODZm
ZThjMzI5NGUyNTM5MjJjMjVlYTM3OTI3ZmQ1Yzk0MzZmZjgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5l
c3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0
LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRl
c3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBh
IHNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2Fn
ZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVz
dCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNv
cmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisg
ICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAg
ICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1l
c3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikg
eworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEp
CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlM
ICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50
Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0g
dHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmlu
aXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlv
biBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAi
aHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9z
dCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3
LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNr
ZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVk
KQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMiIHNyYz0i
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3Bh
Z2Utd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8t
bG9jYWxob3N0Lmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVk
LW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2Nh
bGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTVjODVlYjQ3ZTBmMDg0MTZlNjFmZDAxNWZkN2FlM2Ni
ODY2YjY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQg
aWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Bl
cmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAi
aHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NS
ZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcu
MC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFz
UmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMg
dHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRo
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDZlOTRhNDU5Njk4NTRkM2UzODhkMTBhYWRjYWYwYTFkMmE0ZGFh
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEs
NTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVz
Y3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUgbmVz
dGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7Cisg
ICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rp
b24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5l
ZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlk
U2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZh
bHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rp
b24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4g
PT09ICJudWxsIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBB
U1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5y
ZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdp
bjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENo
YWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAg
ICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9s
b2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRy
dWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0
cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1Rv
KCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAg
ICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVj
dENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQor
ICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNj
cmlwdHMiIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cmVzb3VyY2VzL3BhZ2Utd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2Fs
aG9zdC10by1pcC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hl
ZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0
LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1l
LXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxo
b3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTVjODVlYjQ3ZTBmMDg0MTZl
NjFmZDAxNWZkN2FlM2NiODY2YjY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13
aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9z
dC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRp
cmVjdHMgZm9yIGEgc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlm
cmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVy
KCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xv
Y2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAi
aHR0cDovL2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFi
YXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1s
b2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWUx
OWRkMTAwMjExNWQ4YTE5NGZjMjI0MWQ1OGY0ZjgyZTAwMmJkOAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQt
bmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10
by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0
aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0
cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1z
YW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2Ui
LCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3Qo
KSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jk
c0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAg
ICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAg
dmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNz
YWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAibnVsbCIpIHsK
KyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQor
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAi
LCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
UmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5v
cmlnaW4pOworCisgICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRy
dWU7CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlz
aFRlc3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24g
Y2hlY2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0
dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3Qi
LCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4w
LjAuMSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2Vk
ID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkK
KyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzYW5kYm94PSJhbGxvdy1zY3JpcHRzIiBzcmM9Imh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9wYWdl
LXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxo
b3N0Lmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2
YWxlbnQtcmVzb3VyY2UtaW4tZGVidWctbW9kZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2
YWxlbnQtcmVzb3VyY2UtaW4tZGVidWctbW9kZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMmRjMDczZGE0N2NiYTQ4NjA3NzIzZDRmZGI2M2NiYTE1NmQ4N2U2MgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
ZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGZvciBlbmFibGluZyBkZWJ1ZyBtb2RlIGFu
ZCB0aGF0IGl0IGFsbG93cyBzZXR0aW5nIGEgY3VzdG9tIGRvbWFpbiBhcyBhIHByZXZhbGVudCBy
ZXNvdXJjZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIGdvdCBzZXQgYXMgYSBjdXN0b20gcHJldmFsZW50IHJlc291cmNlIGluIGRl
YnVnIG1vZGUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3NldC1jdXN0b20tcHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJh
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
ZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNWZkYTgxMjAxOWE5ZTczZmY5NTU4OTE1ZTBmODg5MjZhOGQ5MDQ5YQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNl
Lmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+
Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9q
cy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgor
ICAgIGRlc2NyaXB0aW9uKCJUZXN0IGZvciBlbmFibGluZyBkZWJ1ZyBtb2RlIGFuZCB0aGF0IGl0
IGFsbG93cyBzZXR0aW5nIGEgY3VzdG9tIGRvbWFpbiBhcyBhIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHRoaXJkUGFydHlPcmln
aW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
ciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0
YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKHRoaXJkUGFy
dHlPcmlnaW4gKyAiIGFscmVhZHkgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1
Z01vZGUodGhpcmRQYXJ0eU9yaWdpbiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzRGVidWdNb2RlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KHRoaXJkUGFydHlPcmlnaW4gKyAiIGRpZG4ndCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJj
ZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAg
dGVzdFBhc3NlZCh0aGlyZFBhcnR5T3JpZ2luICsgIiBnb3Qgc2V0IGFzIGEgY3VzdG9tIHByZXZh
bGVudCByZXNvdXJjZSBpbiBkZWJ1ZyBtb2RlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJl
Y3RzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1z
dWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdi
ZDU0M2VjOWFmMzI0YmQ1MGRjMWQ0Yzg2Y2RiMDllOWM0ZDViMjgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVm
ZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0cyB0aGF0IG9ubHkgdGhlIG9y
aWdpbiBpcyBzZW50IGFzIHJlZmVycmVyIGluIHJlZGlyZWN0cyB0byBwcmV2YWxlbnQgcmVzb3Vy
Y2VzIHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgcmVmZXJyZXIgaXMgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJl
c291cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS5odG1sIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1l
MS0tPicKKy0tLS0tLS0tCitodHRwOi8vMTI3LjAuMC4xOjgwMDAvCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXIt
dG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAt
cmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRh
dGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjBmOGEyZjQyMGI1YWE2MmMzN2EyNWQ0YmRkZmVkMzNh
MzNiZmE1ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1z
dWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDUxIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2Ny
aXB0aW9uKCJUZXN0cyB0aGF0IG9ubHkgdGhlIG9yaWdpbiBpcyBzZW50IGFzIHJlZmVycmVyIGlu
IHJlZGlyZWN0cyB0byBwcmV2YWxlbnQgcmVzb3VyY2VzIHdpdGhvdXQgdXNlciBpbnRlcmFjdGlv
bi4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICB0ZXN0UnVubmVyLmR1bXBDaGls
ZEZyYW1lc0FzVGV4dCgpOworCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhh
bmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9h
ZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsK
KyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOwor
ICAgIH0KKworICAgIHZhciByZWZlcnJlcjsKKyAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFi
YXNlKHRydWUpOworICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8v
bG9jYWxob3N0IikpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2FzIGNsYXNz
aWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydGVkLiIpOwor
CisgICAgICAgIGZldGNoKCJyZXNvdXJjZXMvZWNoby1yZWZlcnJlci5waHAiKS50aGVuKGZ1bmN0
aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpOworICAg
ICAgICB9KS50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgICAgICAgIHJlZmVycmVyID0gZGF0
YTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8t
b3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0bWwi
KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9s
b2NhbGhvc3QiKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90
IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUoInJlc291cmNlcy9yZWRpcmVjdC5waHA/cmVkaXJl
Y3RUbz1odHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMvZWNoby1yZWZlcnJlci5waHAiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJv
ci5tZXNzYWdlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpT
VGVzdCk7CisgICAgICAgIH0pOworICAgIH0pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVx
dWVzdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50
LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
OWNjYjljMjFmZjAwNzFhOTgwMjM5YjdiNzkzZjU1MTg3ZWJlZTVlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJl
ZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitUZXN0cyB0aGF0IG9ubHkgdGhlIG9y
aWdpbiBpcyBzZW50IGFzIHJlZmVycmVyIGZvciBwcmV2YWxlbnQgcmVzb3VyY2VzIHdpdGhvdXQg
dXNlciBpbnRlcmFjdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
cmVmZXJyZXIgaXMgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVl
c3RzLWRhdGFiYXNlLmh0bWwiCitQQVNTIHJlZmVycmVyIGlzICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAvIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
KworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitodHRwOi8vMTI3
LjAuMC4xOjgwMDAvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3Vi
cmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZh
bGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1ZDRm
MDM2NmY5N2NmY2U5NDI4YTZhODZlNTE1NDgzNjBlMzIxNzcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJy
ZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2Uu
aHRtbApAQCAtMCwwICsxLDYyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IG9ubHkgdGhlIG9y
aWdpbiBpcyBzZW50IGFzIHJlZmVycmVyIGZvciBwcmV2YWxlbnQgcmVzb3VyY2VzIHdpdGhvdXQg
dXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICB0ZXN0
UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworCisgICAgZnVuY3Rpb24gb3BlbklmcmFt
ZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAg
ICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0g
b25Mb2FkSGFuZGxlcjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGVsZW1lbnQpOworICAgIH0KKworICAgIHZhciByZWZlcnJlcjsKKyAgICB0ZXN0UnVubmVy
LnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKCJodHRwOi8vbG9jYWxob3N0IikpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2Nh
bGhvc3Qgd2FzIGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVz
dCBzdGFydGVkLiIpOworCisgICAgICAgIGZldGNoKCJyZXNvdXJjZXMvZWNoby1yZWZlcnJlci5w
aHAiKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzcG9u
c2UudGV4dCgpOworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgICAgICAg
IHJlZmVycmVyID0gZGF0YTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVm
ZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3Ry
aXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMt
ZGF0YWJhc2UuaHRtbCIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIsIHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgZmV0Y2goImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIpLnRo
ZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBy
ZXNwb25zZS50ZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24oZGF0
YSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJyZXIgPSBkYXRhOworICAgICAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvIik7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUo
InJlc291cmNlcy9yZWRpcmVjdC5waHA/cmVkaXJlY3RUbz1odHRwOi8vbG9jYWxob3N0OjgwMDAv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1yZWZlcnJlci5waHAiLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAg
ICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKGVy
cm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNo
SlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVy
YWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZh
bGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
NDM5MjJmZDkzZjFhNTQ0NGYyY2IwNjg4NGVmYzMyOTBiYWU1MWY0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1z
ZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgdGhlIHNlc3Npb24g
aXMgc3dpdGNoZWQgdXBvbiB0b3AgZnJhbWUgbmF2aWdhdGlvbiB0byBhIHByZXZhbGVudCByZXNv
dXJjZSB3aXRoIHVzZXIgaW50ZXJhY3Rpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIFNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHNlc3Npb24gY29va2llLgorUEFTUyBT
aG91bGQgaGF2ZSBhbmQgaGFzIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4KK1BBU1MgT3JpZ2luIGhh
cyBpc29sYXRlZCBzZXNzaW9uLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVu
dC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1w
cmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyNzBj
MDBiMDQ4MTY2NjBiYzgxZDBkNmVlODljYWE3MGUxZjc0YmMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Np
b24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5o
dG1sCkBAIC0wLDAgKzEsMTExIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4K
KzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRoZSBzZXNzaW9u
IGlzIHN3aXRjaGVkIHVwb24gdG9wIGZyYW1lIG5hdmlnYXRpb24gdG8gYSBwcmV2YWxlbnQgcmVz
b3VyY2Ugd2l0aCB1c2VyIGludGVyYWN0aW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVl
OworCisgICAgY29uc3QgcHJldmFsZW50T3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7
CisgICAgY29uc3Qgbm9uUHJldmFsZW50T3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7
CisgICAgY29uc3Qgc2Vzc2lvbkNvb2tpZU5hbWUgPSAic2Vzc2lvbkNvb2tpZSI7CisgICAgY29u
c3QgcGVyc2lzdGVudENvb2tpZU5hbWUgPSAicGVyc2lzdGVudENvb2tpZSI7CisgICAgY29uc3Qg
dHdvTWludXRlc0luU2Vjb25kcyA9IDEyMDsKKworICAgIGZ1bmN0aW9uIHNldFNlc3Npb25Db29r
aWUoKSB7CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNlc3Npb25Db29raWVOYW1lICsgIj0x
OyBwYXRoPS8iOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNldFBlcnNpc3RlbnRDb29raWUoKSB7
CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHBlcnNpc3RlbnRDb29raWVOYW1lICsgIj0xOyBw
YXRoPS87IE1heC1BZ2U9IiArIHR3b01pbnV0ZXNJblNlY29uZHMgKyAiOyI7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gY2hlY2tDb29raWVzKHNob3VsZEhhdmVTZXNzaW9uQ29va2llLCBzaG91bGRI
YXZlUGVyc2lzdGVudENvb2tpZSkgeworICAgICAgICBsZXQgaGFzU2Vzc2lvbkNvb2tpZSA9IChk
b2N1bWVudC5jb29raWUgKyAiIikuaW5jbHVkZXMoc2Vzc2lvbkNvb2tpZU5hbWUpLAorICAgICAg
ICAgICAgaGFzUGVyc2lzdGVudENvb2tpZSA9IChkb2N1bWVudC5jb29raWUgKyAiIikuaW5jbHVk
ZXMocGVyc2lzdGVudENvb2tpZU5hbWUpOworCisgICAgICAgIGlmIChzaG91bGRIYXZlU2Vzc2lv
bkNvb2tpZSAmJiBoYXNTZXNzaW9uQ29va2llKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiU2hv
dWxkIGhhdmUgYW5kIGhhcyB0aGUgc2Vzc2lvbiBjb29raWUuIik7CisgICAgICAgIGVsc2UgaWYg
KHNob3VsZEhhdmVTZXNzaW9uQ29va2llICYmICFoYXNTZXNzaW9uQ29va2llKSB7CisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJTaG91bGQgaGF2ZSBidXQgZG9lc24ndCBoYXZlIHRoZSBzZXNzaW9u
IGNvb2tpZS4iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpT
VGVzdCk7CisgICAgICAgIH0gZWxzZSBpZiAoIXNob3VsZEhhdmVTZXNzaW9uQ29va2llICYmIGhh
c1Nlc3Npb25Db29raWUpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZG4ndCBoYXZl
IGJ1dCBoYXMgdGhlIHNlc3Npb24gY29va2llLiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJTaG91bGRuJ3QgaGF2ZSBhbmQgZG9lc24ndCBoYXZlIHRoZSBzZXNzaW9uIGNv
b2tpZS4iKTsKKworCisgICAgICAgIGlmIChzaG91bGRIYXZlUGVyc2lzdGVudENvb2tpZSAmJiBo
YXNQZXJzaXN0ZW50Q29va2llKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxkIGhhdmUg
YW5kIGhhcyB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgICAgIGVsc2UgaWYgKHNob3Vs
ZEhhdmVQZXJzaXN0ZW50Q29va2llICYmICFoYXNQZXJzaXN0ZW50Q29va2llKSB7CisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJTaG91bGQgaGF2ZSBidXQgZG9lc24ndCBoYXZlIHRoZSBwZXJzaXN0
ZW50IGNvb2tpZS4iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlz
aEpTVGVzdCk7CisgICAgICAgIH0gZWxzZSBpZiAoIXNob3VsZEhhdmVQZXJzaXN0ZW50Q29va2ll
ICYmIGhhc1BlcnNpc3RlbnRDb29raWUpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3Vs
ZG4ndCBoYXZlIGJ1dCBoYXMgdGhlIHBlcnNpc3RlbnQgY29va2llLiIpOworICAgICAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91bGRuJ3QgaGF2ZSBhbmQgZG9lc24ndCBoYXZlIHRo
ZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkg
eworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
SGFzSGFkVXNlckludGVyYWN0aW9uKHByZXZhbGVudE9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgICAgIHNldFNlc3Npb25Db29raWUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgc2V0UGVyc2lzdGVudENvb2tpZSgpOworICAgICAgICAgICAgICAgICAgICBjaGVja0Nv
b2tpZXModHJ1ZSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmhh
c1N0YXRpc3RpY3NJc29sYXRlZFNlc3Npb24ocHJldmFsZW50T3JpZ2luKSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3JpZ2luIGhhcyBpc29sYXRlZCBzZXNzaW9uLiIp
OworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNo
SlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJPcmlnaW4gaGFzIG5vIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBub25QcmV2YWxlbnRPcmln
aW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlv
bi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sI3N0ZXAyIjsKKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJz
dGVwMyI7CisgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiAhPT0g
bm9uUHJldmFsZW50T3JpZ2luKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTdGVw
IDIgaXMgbm90IG9uICIgKyBub25QcmV2YWxlbnRPcmlnaW4gKyAiLiIpOworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudE9y
aWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRPcmlnaW4pKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKHByZXZhbGVudE9yaWdpbiArICIgZGlk
IG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBk
YXRlQ29va2llQmxvY2tpbmcocnVuVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBwcmV2YWxlbnRPcmlnaW4gKyAiL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQt
d2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sI3N0ZXA0IjsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgY2hlY2tD
b29raWVzKHRydWUsIHRydWUpOworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmhhc1N0
YXRpc3RpY3NJc29sYXRlZFNlc3Npb24ocHJldmFsZW50T3JpZ2luKSkKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiT3JpZ2luIGhhcyBpc29sYXRlZCBzZXNzaW9uLiIpOworICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3JpZ2luIGhh
cyBubyBpc29sYXRlZCBzZXNzaW9uLiIpOworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlVua25vd24gaGFzaC4i
KTsKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09
ICIiKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gIT09IHByZXZhbGVu
dE9yaWdpbikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRlc3QgaXMgbm90IHN0YXJ0aW5nIG91
dCBvbiAiICsgcHJldmFsZW50T3JpZ2luICsgIi4iKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRV
c2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShwcmV2YWxlbnRPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
cHJldmFsZW50T3JpZ2luICsgIiB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Ug
YmVmb3JlIHRoZSB0ZXN0IHN0YXJ0cy4iKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9u
Lmhhc2ggPSAic3RlcDEiOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy90ZWxlbWV0cnktZ2VuZXJhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RlbGVtZXRyeS1nZW5lcmF0aW9uLmh0bWwKaW5k
ZXggODQxOTU2MjA3MGIyODc4NDg2ZTA5NDFiMmUyZTFjYjI1ZTg2MTcyYy4uNjQ3ZGIzMDBlZjhh
MjU4MTQ0MDlkOGUxNWU2YmJiOTM2NTViNTlkYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RlbGVtZXRyeS1nZW5lcmF0aW9uLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RlbGVt
ZXRyeS1nZW5lcmF0aW9uLmh0bWwKQEAgLTgsNiArOCw3IEBACiA8L2hlYWQ+CiA8Ym9keT4KIDxz
Y3JpcHQ+CisgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZShmYWxzZSk7CiAgICAgZGVz
Y3JpcHRpb24oIlRlc3RzIHRoYXQgdGVsZW1ldHJ5IGZvciBwcmV2YWxlbnQgcmVzb3VyY2VzIGlz
IGNhbGN1bGF0ZWQgY29ycmVjdGx5LiIpOwogICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
dXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91
c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjI4NDI3MzBhNDVkYWRlNmVhNmYxNWRlY2MzOWE3ZTVhOWEwZTMx
MmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0cyB0aGF0IHVzZXIgaW50
ZXJhY3Rpb24gaXMgYWx3YXlzIGxvZ2dlZCBmb3IgdGhlIHRvcCBkb2N1bWVudC9mcmFtZS4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQubG9jYXRpb24ub3Jp
Z2luIGlzIHRvcEZyYW1lT3JpZ2luCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikgaXMgZmFs
c2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9w
RnJhbWVPcmlnaW4pIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4t
Y3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3Jp
Z2luLXN1Yi1mcmFtZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2NzRkMDkwOTcwYzU2M2Jm
YmE0ZDkzY2ZhNjQ1Y2FiMTVhNTk0ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9z
cy1vcmlnaW4tc3ViLWZyYW1lLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
dWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdXNlciBpbnRlcmFj
dGlvbiBpcyBhbHdheXMgbG9nZ2VkIGZvciB0aGUgdG9wIGRvY3VtZW50L2ZyYW1lLiIpOworanNU
ZXN0SXNBc3luYyA9IHRydWU7Cit0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOwor
Citjb25zdCB0b3BGcmFtZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworY29uc3Qg
c3ViRnJhbWVPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKworZnVuY3Rpb24gYWN0
aXZhdGVFbGVtZW50KGVsZW1lbnRJZCkgeworICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0
TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgIHZhciBjZW50ZXJZID0gZWxlbWVu
dC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgVUlIZWxwZXIuYWN0
aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKTsKK30KKworZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsK
KyAgICBzaG91bGRCZVRydWUoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworICAg
IHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cit9CisKK29ubG9hZCA9IGZ1
bmN0aW9uKCkgeworICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNr
KGZpbmlzaFRlc3QpOworICAgICAgICB9CisKKyAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50Lmxv
Y2F0aW9uLm9yaWdpbiIsICJ0b3BGcmFtZU9yaWdpbiIpOworCisgICAgICAgIGlmICh0ZXN0UnVu
bmVyKSB7CisgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgICAgIHNo
b3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHN1YkZyYW1lT3JpZ2luKSIpOworCisgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RG
cmFtZSIpOworICAgICAgICB9CisgICAgfSk7Cit9OworPC9zY3JpcHQ+Cis8aWZyYW1lIGlkPSJ0
ZXN0RnJhbWUiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcmVzb3VyY2VzL2R1bW15Lmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Vz
ZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2Yt
dGltZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0
aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41NDMyYmM4ZWQ3MzgxZmJjNDk4ZGIzNGMwZmIzYmU3YTU3YmQ5MWQxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXIt
aW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGlt
ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGVzdHMgdGhhdCB1c2Vy
IGludGVyYWN0aW9uIGlzIG5vdCByZXBvcnRlZCByZXBlYXRlZGx5IHdpdGhpbiBhIHNob3J0IHBl
cmlvZCBvZiB0aW1lLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1
bWVudC5sb2NhdGlvbi5vcmlnaW4gaXMgdG9wRnJhbWVPcmlnaW4KK1BBU1MgdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIGlzIGZhbHNl
CitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZy
YW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikgaXMgZmFsc2UK
K1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJh
bWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikgaXMgZmFsc2UK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorVGhpcyBp
cyB0aGUgdGVzdCBlbGVtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Ut
d2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJl
cG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjA5NTI0MmNhZDY3NDA0MTdhYTk5NzI0NjE4OTgxNDRkYzJjZTkzZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9k
LW9mLXRpbWUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdXNlciBpbnRlcmFjdGlvbiBp
cyBub3QgcmVwb3J0ZWQgcmVwZWF0ZWRseSB3aXRoaW4gYSBzaG9ydCBwZXJpb2Qgb2YgdGltZS4i
KTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2lu
ID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3ViRnJhbWVPcmlnaW4gPSAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChl
bGVtZW50SWQsIGNhbGxiYWNrKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9m
ZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkg
PSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAg
VUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQ
cm9taXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFs
c2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gZmlyc3RJbnRlcmFjdGlvbigpIHsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgi
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmln
aW4pIik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworICAgICAgICBhY3RpdmF0ZUVs
ZW1lbnQoInRlc3RFbGVtZW50Iiwgc2Vjb25kSW50ZXJhY3Rpb24pOworICAgIH0KKworICAgIGZ1
bmN0aW9uIHNlY29uZEludGVyYWN0aW9uKCkgeworICAgICAgICBzaG91bGRCZVRydWUoInRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIp
OworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKworICAgICAgICBpZiAodGVzdFJ1bm5l
cikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKHRvcEZyYW1lT3JpZ2luLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24odG9wRnJhbWVPcmlnaW4pIik7CisKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1l
bnQoInRlc3RFbGVtZW50IiwgZmluaXNoVGVzdCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNob3VsZEJl
RmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZy
YW1lT3JpZ2luKSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBvbmxvYWQg
PSBmdW5jdGlvbigpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIHNob3VsZEJlKCJkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4iLCAidG9wRnJhbWVPcmlnaW4i
KTsKKworICAgICAgICAgICAgZmlyc3RJbnRlcmFjdGlvbigpOworICAgICAgICB9KTsKKyAgICB9
OworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJ0ZXN0RWxlbWVudCI+VGhpcyBpcyB0aGUgdGVzdCBlbGVt
ZW50PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1h
ZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1y
ZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFzZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYmYyOGM5OWIzMDI0NDQ1NjBiNTFiMzQ4Yjk2MDIxYjA1ODU2ZWEzYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFs
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitUZXN0cyB0aGF0IHVzZXIg
aW50ZXJhY3Rpb24gaXMgcmVwb3J0ZWQgYWZ0ZXIgaGlzdG9yeSByZW1vdmFsIHNpbmNlIHRoYXQg
bWVhbnMgYWxsIHN0YXRpc3RpY3MgaGF2ZSBiZWVuIHJlc2V0LgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gaXMgdG9wRnJhbWVP
cmlnaW4KK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24o
dG9wRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMg
dHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihz
dWJGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNI
YWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyB0
cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1
YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCitUaGlzIGlzIHRoZSB0ZXN0IGVsZW1lbnQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0
aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFj
dGlvbi1yZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFzZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjJiZWI0MmY5NDJmMWI2OGZmYWNmZTBlZmIxZmU5MjM5NjJmMjI2OGQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvdXNlci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1k
YXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
KyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB1c2VyIGludGVyYWN0aW9uIGlzIHJlcG9ydGVk
IGFmdGVyIGhpc3RvcnkgcmVtb3ZhbCBzaW5jZSB0aGF0IG1lYW5zIGFsbCBzdGF0aXN0aWNzIGhh
dmUgYmVlbiByZXNldC4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0
IHRvcEZyYW1lT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3Vi
RnJhbWVPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKworICAgIGZ1bmN0aW9uIGFj
dGl2YXRlRWxlbWVudChlbGVtZW50SWQsIGNhbGxiYWNrKSB7CisgICAgICAgIHZhciBlbGVtZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAgdmFyIGNlbnRl
clggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAg
ICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0
IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVu
KAorICAgICAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICB9CisgICAgICAg
ICk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmlyc3RJbnRlcmFjdGlvbigpIHsKKyAgICAgICAg
c2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rp
b24odG9wRnJhbWVPcmlnaW4pIik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworICAg
ICAgICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RFbGVtZW50IiwgY2xlYXJXZWJzaXRlRGF0YSk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gY2xlYXJXZWJzaXRlRGF0YSgpIHsKKyAgICAgICAgc2hvdWxk
QmVUcnVlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BG
cmFtZU9yaWdpbikiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7CisKKyAgICAgICAg
aWYgKHRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NDbGVhclRo
cm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoc2Vjb25kSW50ZXJhY3Rpb24pOworICAgIH0KKworICAg
IGZ1bmN0aW9uIHNlY29uZEludGVyYWN0aW9uKCkgeworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdp
bikiKTsKKyAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0ZXN0RWxlbWVudCIsIGZpbmlzaFRlc3Qp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNob3VsZEJl
VHJ1ZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJh
bWVPcmlnaW4pIik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworCisgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgb25sb2Fk
ID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1
ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICBzaG91bGRCZSgiZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luIiwgInRvcEZyYW1lT3JpZ2lu
Iik7CisKKyAgICAgICAgICAgIGZpcnN0SW50ZXJhY3Rpb24oKTsKKyAgICAgICAgfSk7CisgICAg
fTsKKzwvc2NyaXB0PgorPGRpdiBpZD0idGVzdEVsZW1lbnQiPlRoaXMgaXMgdGhlIHRlc3QgZWxl
bWVudDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZvci1z
aXRlLW5hdmlnYXRlZC10by13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZv
ci1zaXRlLW5hdmlnYXRlZC10by13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sCmluZGV4IGJkM2Y2
NjNhYjczZDlkZDBmMTg2MTE2NDA1YWE5YmEzN2YzZTA1ZDkuLjZlYjYxOWFjNzUyMTZkZGM1NTlj
NWE3ZmZkMWFjMmZhNWQxODA2ZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy93ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS1uYXZp
Z2F0ZWQtdG8td2l0aC1saW5rLWRlY29yYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNp
dGUtbmF2aWdhdGVkLXRvLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0bWwKQEAgLTEwLDYgKzEwLDcg
QEAKIDxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+CiA8YnI+CiA8c2NyaXB0PgorICAgIHRlc3RSdW5u
ZXIuc2V0VXNlSVRQRGF0YWJhc2UoZmFsc2UpOwogICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOwogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGIxNTZkNTFiMDE4YjgxMDliZjNhMTAxMTZmNWY0
ZDg1ZDNhZDExNWQuLmMzNzg4NjI0OGJiNjY4M2FhZmQwN2VhMzIxY2QwNWJlOTRlMjc3NjkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC05ODksNiArOTg5
LDggQEAgaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2tleWJvYXJkLWV2ZW50cy1kdXJpbmctcHJvdmlz
aW9uYWwtbmF2aWdhdGlvbi5odG1sIFsgU2tpcAogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2tleWJv
YXJkLWV2ZW50cy1kdXJpbmctcHJvdmlzaW9uYWwtc3ViZnJhbWUtbmF2aWdhdGlvbi5odG1sIFsg
U2tpcCBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291
cmNlLWhhbmRsZWQta2V5ZG93bi5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLmh0bWwgWyBT
a2lwIF0KK2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3Vy
Y2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24t
ZGF0YWJhc2UuaHRtbCBbIFNraXAgXQogbWVkaWEvYXVkaW8tcGxheWJhY2stdm9sdW1lLWNoYW5n
ZXMtd2l0aC1yZXN0cmljdGlvbnMtYW5kLXVzZXItZ2VzdHVyZXMuaHRtbCBbIFNraXAgXQogbWVk
aWEvYXVkaW8tcGxheWJhY2stdm9sdW1lLWNoYW5nZXMtd2l0aC1yZXN0cmljdGlvbnMuaHRtbCBb
IFNraXAgXQogbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlLWludGVycnVwdGlvbi5odG1sIFsgU2tp
cCBdCkBAIC0yNzc5LDYgKzI3ODEsOSBAQCBmYXN0L2NhbnZhcy93ZWJnbC9yZWFkUGl4ZWxzLWZs
b2F0Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNzQxMjAgaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFt
ZS5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1p
bnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1l
Lmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWlu
dGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLmh0bWwgWyBTa2lw
IF0KK3dlYmtpdC5vcmcvYi8xNzQxMjAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS5odG1s
IFsgU2tpcCBdCitodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFj
dGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFi
YXNlLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2Vy
LWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNl
Lmh0bWwgWyBTa2lwIF0KICMgU2tpcHBlZCBpbiBXSzIgZXhwZWN0YXRpb25zIGJlY2F1c2UgY29v
a2llIHBhcnRpdGlvbmluZyBpcyBvbmx5IGF2YWlsYWJsZSBpbiBtYWNPUyBIaWdoIFNpZXJyYSBh
bmQgaU9TIDExLgogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxl
dGlvbi5odG1sIFsgUGFzcyBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29v
a2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbCBbIFBhc3MgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379649</attachid>
            <date>2019-09-26 09:47:24 -0700</date>
            <delta_ts>2019-09-26 10:04:53 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-195420-20190926094723.patch</filename>
            <type>text/plain</type>
            <size>404915</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMzgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzRjZjFjY2U4YTZkY2Jh
ZDEzOTk4MmNlZTI2OGZkOWJlNmVmMDdmMS4uYmFhYWFhNzg3MGEyNmJlNzQ5ZjVjNzQ4NjMzMTRl
NDQ4MjNiNzVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDE5LTA5LTI2ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBM
YXlvdXRUZXN0cyB1c2luZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFNRTGl0ZSBiYWNrZW5kICgx
OTU0MjApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTU0MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjEzNTUxPiAKKworICAgICAgICBSZXZp
ZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwK
KyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2lu
Zy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZv
ci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNl
dC1pbi1qcy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgt
bGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1k
YXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVy
eS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbAorICAg
ICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQt
cmVzb3VyY2UtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRo
b3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUt
b3JpZ2lucy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNv
dXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAg
ICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZh
bGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lu
cy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGly
ZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJl
c291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAg
ICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50
LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10
by1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVj
dC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJh
bWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZl
cnktcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbAorICAg
ICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1l
bW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJz
aXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tp
ZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0
LWFjY2Vzc2libGUtY29va2llcy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0
aW9uLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNzLWZvci1zaW1wbGUt
dG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0
LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQt
d2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdh
dGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJs
ZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1y
ZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3Vy
Y2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNl
cy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0LWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24t
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2Uu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
bi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3Qt
ZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQt
bmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhv
c3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1l
LXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0
YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFs
ZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRh
dGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVu
dC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJj
ZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC1kYXRhYmFzZS5odG1sCisgICAgICAgICAg
ICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNl
LXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFz
ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2Uu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Nh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRh
YmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVk
aXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8t
bG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5l
c3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8t
aXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1k
ZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1z
dWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3It
cHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1u
YXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVy
YWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24t
b25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNl
ci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFz
ZS5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaDoKKyAgICAg
ICAgQWRkZWQgV0VCQ09SRV9FWFBPUlQgcHJlZml4IHRvIDIgZnVuY3Rpb25zIG5lZWRlZCBpbiB0
aGUgSVRQIERhdGFiYXNlIAorICAgICAgICB0byBjbGVhciBvdXQgdGhlIGRhdGFiYXNlLgorCisy
MDE5LTA5LTI2ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xG
Q11bSUZDXSBEZWNvdXBsZSBEaXNwbGF5OjpSdW4gYW5kIERpc3BsYXk6OkJveCBpbml0aWFsaXph
dGlvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDIyNTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1NzMxNDQ1PgorCisgICAgICAgIFJldmll
d2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIFRoaXMgaXMgaW4gcHJlcGFyYXRpb24g
Zm9yIG1vdmluZyBEaXNwbGF5OjpSdW4gaW5pdGlhbGl6YXRpb24gdG8gTGluZSBjbGFzcy4KKwor
ICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0
TGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRp
bmdDb250ZXh0OjpJbmxpbmVMYXlvdXQ6OmNyZWF0ZURpc3BsYXlSdW5zKToKKwogMjAxOS0wOS0y
NiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgRmxha3kgVGVz
dDogaW5zcGVjdG9yL2NhbnZhcy91cGRhdGVTaGFkZXIuaHRtbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4NjVlYmNl
YjgwYTFlMDM4MDgyZWMwNmVjZTZmZTgyZjQ0MjRkODVhLi4xZTE5ZDk4MTk3NjlkYTdlMDUxYjI2
MzAzNGU3MmE4ODFiMGY0NjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3MCBAQAorMjAxOS0wOS0y
NiAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBF
bmFibGUgTGF5b3V0VGVzdHMgdXNpbmcgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBTUUxpdGUgYmFj
a2VuZCAoMTk1NDIwKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk1NDIwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NDIxMzU1MT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgIENoYW5nZWQgYWxsIFJFTEVB
U0VfTE9HX0VSUk9SKCkgY2FsbHMgaW52b2x2aW5nIGRvbWFpbiBzdHJpbmdzIHRvCisgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoKSB0byBwcmV2ZW50IGxlYWtpbmcgaW5mb3Jt
YXRpb24gYWJvdXQKKyAgICAgICAgdGhlIGRvbWFpbiBzdHJpbmdzIG9ubHkgaWYgc2Vzc2lvbklE
LmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZSk6CisgICAgICAgIEFkZGVkIGF1dG92YWN1dW1p
bmcgdG8gdGhlIGNvbnN0cnVjdG9yIHRvIGF2b2lkIG1hbnVhbGx5IGNhbGxpbmcKKyAgICAgICAg
cnVuVmFjdXVtQ29tbWFuZCgpLiBDaGFuZ2VkIGNvbnN0cnVjdG9yIHRvIHRha2UgaW4gc2Vzc2lv
bklEIHNvIGl0CisgICAgICAgIGNhbiB1c2UgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCB3
aGljaCByZXF1aXJlcyB0aGUgc2Vzc2lvbklELgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJlU3RhdGVtZW50cyk6CisgICAgICAg
IEFkZGVkIDIgc3RhdGVtZW50cyB0aGF0IHdlcmUgbm90IGJlaW5nIHByZXBhcmVkLgorCisgICAg
ICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWxhdGlv
bnNoaXBFeGlzdHMgY29uc3QpOgorICAgICAgICBDb3JyZWN0ZWQgaW5jb3JyZWN0IGNhcGl0YWxp
emF0aW9uLiBBZGRlZCBjaGVjayBmb3IgbnVsbG9wdCBpbiBjYXNlCisgICAgICAgIGRvbWFpbklE
IGlzIGZvciBhIGRvbWFpbiBub3QgaW4gdGhlIGRhdGFiYXNlIHlldC4KKworICAgICAgICAoV2Vi
S2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZG9tYWluSUQgY29uc3Qp
OgorICAgICAgICBDaGFuZ2VkIHJldHVybiB2YWx1ZSB0byBPcHRpb25hbDx1bnNpZ25lZD4uIFNv
bWUgdGVzdHMgd2VyZSBkaXJlY3RseQorICAgICAgICBjaGVja2luZyBmb3Igc3ViZnJhbWVzIHVu
ZGVyIHRvcCBmcmFtZSBkb21haW5zIG9uIGRvbWFpbnMgdGhhdCBoYWQKKyAgICAgICAgbm90IGJl
ZW4gaW5zZXJ0ZWQgeWV0LiBOb3csIGRvbWFpbklEKCkgd29uJ3QgY3Jhc2ggYnV0IHdpbGwgcmV0
dXJuCisgICAgICAgIGEgbnVsbG9wdCB2YWx1ZSB3aGljaCBjYW4gYmUgY2hlY2tlZCB0byBrbm93
IHRoYXQgdGhlIHRlc3RzIGZhaWxlZC4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwcyk6CisgICAg
ICAgIEFkZGVkIGEgY2hlY2sgdG8gYXNzdXJlIGRvbWFpbklEIGV4aXN0cyBhbmQgdXBkYXRlZCB0
aGUgZG9tYWluSUQKKyAgICAgICAgaW50ZXJhY3Rpb25zIHRvIHdvcmsgYXMgT3B0aW9uYWxzLgor
CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpw
b3B1bGF0ZUZyb21NZW1vcnlTdG9yZSk6CisgICAgICAgIE1vdmVkIHRoZSBwcmVwYXJlU3RhdGVt
ZW50cygpIGNhbGwgYWZ0ZXIgdGhlIHZhY3V1bSBjb21tYW5kIGluIHRoZSBjYXNlCisgICAgICAg
IHdoZXJlIHRoZSBkYXRhYmFzZSBpcyBlbXB0eS4gT3RoZXJ3aXNlIGNhbGxlZCBpdCBiZWZvcmUg
cmV0dXJuaW5nLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpyZWN1cnNpdmVseUZpbmROb25QcmV2YWxlbnREb21haW5zVGhhdFJlZGlyZWN0
ZWRUb1RoaXNEb21haW4pOgorICAgICAgICBBZGRlZCBhIHNwYWNlIHRvIHRoZSBTUUwgY29tbWFu
ZHMgdG8gY29ycmVjdCB0aGUgc3ludGF4LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpmaW5kTm90VmVyeVByZXZhbGVudFJlc291cmNlcyk6
CisgICAgICAgIENvcnJlY3RlZCBhIGJ1ZyBpbiB0aGUgU1FMIGNvbW1hbmQgZm9yIHF1ZXJ5aW5n
CisgICAgICAgIHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbi4gVGhlIG9sZCBxdWVyeSB3YXMg
YXNraW5nIGZvciBzdWJyZXNvdXJjZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVjbGFzc2lmeVJlc291cmNlcyk6CisgICAgICAgIFNw
ZWxsaW5nIGZpeC4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICBDaGFuZ2VkIHN0cmlu
ZyBjb25jYXRlbmF0aW9uIHRvIGJpbmRpbmcuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW5kZmF0aGVyRGF0YUZvckRvbWFpbnMpOgor
ICAgICAgICBUaGUgZ3JhbmRmYXRoZXJpbmcuaHRtbCB0ZXN0IHdhcyBmYWlsaW5nIGJlY2F1c2Ug
ZG9tYWlucyB3ZXJlIGJlaW5nCisgICAgICAgICJzZXQiIHRvIGdyYW5kZmF0aGVyZWQgaW4gdGhl
IGRhdGFiYXNlIGJlZm9yZSBiZWluZyBpbnNlcnRlZC4gVGhpcyBmaXgKKyAgICAgICAgZW5zdXJl
cyBhbGwgZG9tYWlucyBiZWZvcmUgc2V0dGluZyB0aGUgZ3JhbmRmYXRoZXJpbmcgZmxhZy4KKwor
ICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9n
RnJhbWVOYXZpZ2F0aW9uKToKKyAgICAgICAgTXVsdGlwbGUgdGVzdHMgd2VyZSBmYWlsaW5nIGJl
Y2F1c2UgdGhlIHF1ZXJ5IHRvIGluc2VydCB0aGUgcmVsYXRpb25zaGlwCisgICAgICAgIGZvciB0
aGUgc291cmNlIGRvbWFpbiByZWxpZXMgb24gdGhlIHRhcmdldCBkb21haW4gYmVpbmcgaW4gdGhl
CisgICAgICAgIE9ic2VydmVkRG9tYWlucyB0YWJsZS4gVGhpcyBwYXRjaCBlbnN1cmVzIGFsbCBk
b21haW5zIGFyZSBhZGRlZCBiZWZvcmUKKyAgICAgICAgcGVyZm9ybWluZyB0aGUgcXVlcnkuCisK
KyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNl
dFVzZXJJbnRlcmFjdGlvbik6CisgICAgICAgIEFkZGVkIGEgIT0gU1FMSVRFX09LIGNoZWNrIHRv
IG1ha2Ugc3VyZSBhbiBlcnJvciBpcyBsb2dnZWQgaWYgdGhlCisgICAgICAgIHN0YXRlbWVudCBm
YWlscyB0byBiaW5kLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpjbGVhclVzZXJJbnRlcmFjdGlvbik6CisgICAgICAgIENoYW5nZWQgc3Ry
aW5nIGNvbmNhdGVuYXRpb24gdG8gYmluZGluZy4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVXNlckludGVyYWN0aW9uKTogICAK
KyAgICAgICAgVGhlIFNRTCBzdGF0ZW1lbnQgd2FzIGJlaW5nIGJvdW5kIHRvIGEgdmFsdWUgYW5k
IG5vdCBiZWluZyByZXNldC4gVGhpcworICAgICAgICBwYXRjaCByZXNldHMgdGhlIHN0YXRlbWVu
dCBhZnRlciBiaW5kaW5nLiBBZGRpdGlvbmFsbHksIHRoZSBzdGVwKCkKKyAgICAgICAgZnVuY3Rp
b24gd2FzIGJlaW5nIGNvbXBhcmVkIHRvIFNRTElURV9ET05FIGluc3RlYWQgb2YgU1FMSVRFX1JP
VywKKyAgICAgICAgY2F1c2luZyBhbiBlcnJvciBpZiB0aGUgcXVlcnkgcmV0dXJuZWQgcmVzdWx0
cy4gVGhlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpIHdhcyBjYXVzaW5nIG51bGwgc2Vh
cmNoZXMgdG8gY3Jhc2ggaW5zdGVhZCBvZgorICAgICAgICByZXR1cm5pbmcgZmFsc2UgKGkuZS4g
aWYgYSBkb21haW4gaXMgbm90IGluIHRoZSBkYXRhYmFzZSBpdCBzaG91bGQKKyAgICAgICAgcmV0
dXJuIHRoYXQgaXQgaGFzIG5vIHVzZXIgaW50ZXJhY3Rpb24gaW5zdGVhZCBvZiBjcmFzaGluZyku
CisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OnNldFByZXZhbGVudFJlc291cmNlKTogCisgICAgICAgIFVwZGF0ZWQgZG9tYWluSUQgY2FsbCB0
byBhY3QgYXMgYW4gT3B0aW9uYWwuIAorICAgICAgICAKKyAgICAgICAgKFdlYktpdDo6UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZWRpY2F0ZVZhbHVlRm9yRG9tYWluIGNv
bnN0KToKKyAgICAgICAgVGhlIFNRTCBzdGF0ZW1lbnQgd2FzIGJlaW5nIGJvdW5kIHRvIGEgdmFs
dWUgYW5kIG5vdCBiZWluZyByZXNldC4gVGhpcworICAgICAgICBwYXRjaCByZXNldHMgdGhlIHN0
YXRlbWVudCBhZnRlciBiaW5kaW5nLiBTUUxJVEVfRE9ORSBjaGFuZ2VkIHRvCisgICAgICAgIFNR
TElURV9ST1cgdG8gcmV0dXJuIG5vbi1lbXB0eSBxdWVyeSByZXN1bHRzLiBBU1NFUlRfTk9UX1JF
QUNIRUQoKQorICAgICAgICByZW1vdmVkIGZvciB0aGUgc2FtZSByZWFzb25zIGFzIGFib3ZlLiAK
KworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
ZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4pOgorICAgICAgICBG
aXhlZCB0aGUgcmVsZWFzZSBsb2cgc3RhdGVtZW50IHdoaWNoIHdhcyBsb2dnaW5nIHRoZSB3cm9u
ZyBmdW5jdGlvbiAKKyAgICAgICAgbmFtZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJEYXRhYmFzZUNvbnRlbnRzKTogCisgICAg
ICAgIENsZWFycyB0aGUgZGF0YWJhc2UgYW5kIHJlYnVpbGRzIHRoZSB0YWJsZXMgb24gYSBjbGVh
ciBjb21tYW5kIHRvCisgICAgICAgIG1hdGNoIHRoZSBmdW5jdGlvbmFsaXR5IGluIHRoZSBNZW1v
cnkgU3RvcmUuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OmNsZWFyKTogICAgICAgICAgICAgICAgICAgCisgICAgICAgIENhbGwgdGhlIGNs
ZWFyRGF0YWJhc2VDb250ZW50cyBmdW5jdGlvbiB0byBtYXRjaCB0aGUgZnVuY3Rpb25hbGl0eSAK
KyAgICAgICAgaW4gdGhlIE1lbW9yeSBTdG9yZS4gCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc1VzZXJHcmFudGVkU3RvcmFnZUFjY2Vz
c1Rocm91Z2hQcm9tcHQgY29uc3QpOgorICAgICAgICBVcGRhdGVkIGRvbWFpbklEIGNhbGwgdG8g
YWN0IGFzIGFuIE9wdGlvbmFsLiAKKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVW5leHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9u
KToKKyAgICAgICAgVGVzdHMgd2VyZSBmYWlsaW5nIGJlY2F1c2Ugc2hvdWxkUmVtb3ZlQWxsV2Vi
c2l0ZURhdGFGb3IoKSB3YXMgbm90IAorICAgICAgICBjaGVja2luZyBmb3IgZXhwaXJlZCB1c2Vy
IGludGVyYWN0aW9uLiBNYXRjaGVkIGZ1bmN0aW9uYWxpdHkgaW4gdGhlCisgICAgICAgIE1lbW9y
eSBTdG9yZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6c2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3IpOgorICAgICAgICBUZXN0cyB3
ZXJlIGZhaWxpbmcgYmVjYXVzZSBzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvcigpIHdhcyBu
b3QgCisgICAgICAgIGNoZWNraW5nIGZvciBleHBpcmVkIHVzZXIgaW50ZXJhY3Rpb24uIE1hdGNo
ZWQgZnVuY3Rpb25hbGl0eSBpbiB0aGUKKyAgICAgICAgTWVtb3J5IFN0b3JlLiAKKworICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVnaXN0cmFi
bGVEb21haW5zVG9SZW1vdmVXZWJzaXRlRGF0YUZvcik6CisgICAgICAgIFNwZWxsaW5nIGZpeC4g
CisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OnBydW5lU3RhdGlzdGljc0lmTmVlZGVkKTogCisgICAgICAgIExhc3Qgc2VlbiBzaG91bGQgYmUg
c29ydGVkIGluIGFzY2VuZGluZyBvcmRlciBiZWNhdXNlIHlvdSB3YW50IHRvIAorICAgICAgICBw
cnVuZSB0aGUgb2xkZXIgc3RhdGlzdGljcyBmaXJzdCwgd2hpY2ggd2lsbCBoYXZlIGEgbG93ZXIg
bGFzdFNlZW4KKyAgICAgICAgZmllbGQgKHNlY29uZHNTaW5jZUVwb2NoKCkgd2lsbCBiZSBsb3dl
ciBmb3Igb2xkZXIgdmFsdWVzKS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3IgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICBEZWxldGVkIGNvbnN0IHNwZWNpZmllciBiZWNhdXNlIHRoZSBm
dW5jdGlvbiBuZWVkcyB0byBjbGVhciB0aGUKKyAgICAgICAgZGF0YWJhc2UuIAorCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZS5oOiAgICAgIAorICAgICAgICBEZWNsYXJlZCBuZXcgZnVuY3Rpb25zLiBVcGRhdGVk
IHNwZWxsaW5nIGVycm9yIChyZWdpc3RlcmFibGUgLS0+IAorICAgICAgICByZWdpc3RyYWJsZSku
IFVwZGF0ZWQgY29uc3RydWN0b3IgdG8gdGFrZSBzZXNzaW9uSUQuIAorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3Bw
OiAKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUpOgorICAgICAgICBJVFAgZGF0YWJhc2UgZmxhZyBu
b3cgaXMgc3RvcmVkIGluIHRoZSBOZXR3b3JrUHJvY2Vzcy4KKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6IAorCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOiAKKyAgICAgICAgU2V0IHRoZSBJVFAgZGF0
YWJhc2UgZmxhZyB3aGljaCBpcyBub3cgc3RvcmVkIGluIHRoZSBOZXR3b3JrIFByb2Nlc3MuIAor
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRVc2VJVFBEYXRhYmFzZSk6IAor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjppc0lUUERhdGFiYXNlRW5hYmxlZCBjb25zdCk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgIFBh
c3NlZCB0aGUgc2V0VXNlSVRQRGF0YWJhc2UgZmxhZyB0byB0aGUgaW5pdGlhbGl6YXRpb24gZnVu
Y3Rpb24gCisgICAgICAgIG9mIHRoZSBzdGF0aXN0aWNzIHN0b3JlIHRvIGVuYWJsZSB0aGUgZGF0
YWJhc2UgYmFja2VuZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246Ok5ldHdvcmtTZXNzaW9uKToK
KyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5IHdhcyBub3QgZ2V0
dGluZyBjYWxsZWQgb24gdGhlIAorICAgICAgICBXZWJLaXRUZXN0UnVubmVyIHJlc291cmNlTG9h
ZFN0YXRpc3RpY3MgcGF0aC4gVGhpcyB3YXMgcHJldmVudGluZworICAgICAgICB0aGUgZGF0YWJh
c2UgZmlsZSBmcm9tIG9wZW5pbmcuIAorCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9u
OjpyZWNyZWF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY1N0b3JlKToKKyAgICAgICAgRGVzdHJveSBv
bGQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIGFuZCBjcmVhdGUgYSBuZXcgb25lIHVz
aW5nCisgICAgICAgIHRoZSBJVFAgZGF0YWJhc2UuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVE
YXRhU3RvcmVSZWYuY3BwOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0VXNlSVRQRGF0
YWJhc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0VXNlSVRQRGF0YWJhc2Up
OgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFVzZUlUUERhdGFiYXNlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICBQ
YXNzZWQgdGhlIHNldFVzZUlUUERhdGFiYXNlIGZsYWcgdG8gdGhlIGluaXRpYWxpemF0aW9uIGZ1
bmN0aW9uCisgICAgICAgIG9mIHRoZSBzdGF0aXN0aWNzIHN0b3JlIHRvIGVuYWJsZSB0aGUgZGF0
YWJhc2UgYmFja2VuZC4gCisKIDIwMTktMDktMjUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgcmVwbGFjZW1lbnQgU1BJIG9uIF9XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGZvciBlbmFibGluZyBzcGVjdWxhdGl2ZSBjYWNo
ZSB2YWxpZGF0aW9uIGFuZCBJUEMtZnJlZSBzZXJ2ZXIgdHJ1c3QgZXZhbHVhdGlvbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0
dGluZ0NvbnRleHRMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC5jcHAKaW5kZXggZDY5
NDFiMmVjNjZmN2NlYzhjOTMxY2UxODM4ODlmYzExNjFhZDg1Mi4uYTNmMTc5NjdjZDYxOTA2N2E5
OWViZDE3MTIzOGM0NjM1MWM5MzUxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0
aW5nQ29udGV4dExpbmVMYXlvdXQuY3BwCkBAIC0zNzksOCArMzc5LDQxIEBAIHZvaWQgSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQ6OklubGluZUxheW91dDo6Y3JlYXRlRGlzcGxheVJ1bnMoY29uc3Qg
TGluZTo6Q29udGVuCiAgICAgYXV0byBwcmV2aW91c0xpbmVMYXN0UnVuSW5kZXggPSBPcHRpb25h
bDx1bnNpZ25lZD4geyBpbmxpbmVEaXNwbGF5UnVucy5pc0VtcHR5KCkgPyBPcHRpb25hbDx1bnNp
Z25lZD4oKSA6IGlubGluZURpc3BsYXlSdW5zLnNpemUoKSAtIDEgfTsKICAgICAvLyA5LjQuMiBJ
bmxpbmUgZm9ybWF0dGluZyBjb250ZXh0cwogICAgIC8vIEEgbGluZSBib3ggaXMgYWx3YXlzIHRh
bGwgZW5vdWdoIGZvciBhbGwgb2YgdGhlIGJveGVzIGl0IGNvbnRhaW5zLgorCiAgICAgLy8gQ3Jl
YXRlIGZpbmFsIGRpc3BsYXkgcnVucy4KICAgICBhdXRvJiBsaW5lUnVucyA9IGxpbmVDb250ZW50
LnJ1bnMoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCBsaW5lUnVucy5z
aXplKCk7ICsraW5kZXgpIHsKKyAgICAgICAgYXV0byYgcnVuID0gbGluZVJ1bnMuYXQoaW5kZXgp
OworICAgICAgICAvLyBJbmxpbmUgbGV2ZWwgY29udGFpbmVycyAoPHNwYW4+KSBkb24ndCBnZW5l
cmF0ZSBpbmxpbmUgcnVucy4KKyAgICAgICAgaWYgKHJ1bi0+aXNDb250YWluZXJTdGFydCgpIHx8
IHJ1bi0+aXNDb250YWluZXJFbmQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBh
dXRvJiBsb2dpY2FsUmVjdCA9IHJ1bi0+bG9naWNhbFJlY3QoKTsKKyAgICAgICAgLy8gSW5saW5l
IGxldmVsIGJveCAocmVwbGFjZWQgb3IgaW5saW5lLWJsb2NrKSBvciA8YnI+Lzx3YnI+CisgICAg
ICAgIGlmIChydW4tPmlzTGluZUJyZWFrKCkgfHwgcnVuLT5pc0JveCgpKSB7CisgICAgICAgICAg
ICBmb3JtYXR0aW5nU3RhdGUuYWRkSW5saW5lUnVuKG1ha2VVbmlxdWU8RGlzcGxheTo6UnVuPihs
b2dpY2FsUmVjdCkpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAg
aWYgKHJ1bi0+aXNUZXh0KCkpIHsKKyAgICAgICAgICAgIC8vIENvbGxhcHNlZCBsaW5lIHJ1bnMg
ZG9uJ3QgZ2VuZXJhdGUgZGlzcGxheSBydW5zLgorICAgICAgICAgICAgYXV0byB0ZXh0Q29udGV4
dCA9IHJ1bi0+dGV4dENvbnRleHQoKTsKKyAgICAgICAgICAgIGlmICh0ZXh0Q29udGV4dC0+aXND
b2xsYXBzZWQpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAvLyBUcnkg
dG8gam9pbiBtdWx0aXBsZSB0ZXh0IHJ1bnMgd2hlbiBwb3NzaWJsZS4KKyAgICAgICAgICAgIGNv
bnN0IExpbmU6OkNvbnRlbnQ6OlJ1biogcHJldmlvdXNSdW4gPSAhaW5kZXggPyBudWxscHRyIDog
bGluZVJ1bnNbaW5kZXggLSAxXS5nZXQoKTsKKyAgICAgICAgICAgIGF1dG8gcHJldmlvdXNSdW5D
YW5CZUV4dGVuZGVkID0gcHJldmlvdXNSdW4gJiYgcHJldmlvdXNSdW4tPnRleHRDb250ZXh0KCkg
PyBwcmV2aW91c1J1bi0+dGV4dENvbnRleHQoKS0+Y2FuQmVFeHRlbmRlZCA6IGZhbHNlOworICAg
ICAgICAgICAgYXV0byBjdXJyZW50UnVuQ2FuQmVNZXJnZWRXaXRoUHJldmlvdXMgPSAhcHJldmlv
dXNSdW4gfHwgJnJ1bi0+bGF5b3V0Qm94KCkgPT0gJnByZXZpb3VzUnVuLT5sYXlvdXRCb3goKTsK
KworICAgICAgICAgICAgaWYgKHByZXZpb3VzUnVuQ2FuQmVFeHRlbmRlZCAmJiBjdXJyZW50UnVu
Q2FuQmVNZXJnZWRXaXRoUHJldmlvdXMpIHsKKyAgICAgICAgICAgICAgICBhdXRvJiBwcmV2aW91
c0Rpc3BsYXlSdW4gPSBmb3JtYXR0aW5nU3RhdGUuaW5saW5lUnVucygpLmxhc3QoKTsKKyAgICAg
ICAgICAgICAgICBwcmV2aW91c0Rpc3BsYXlSdW4tPmV4cGFuZEhvcml6b250YWxseShsb2dpY2Fs
UmVjdC53aWR0aCgpKTsKKyAgICAgICAgICAgICAgICBwcmV2aW91c0Rpc3BsYXlSdW4tPnRleHRD
b250ZXh0KCktPmV4cGFuZCh0ZXh0Q29udGV4dC0+bGVuZ3RoKTsKKyAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5hZGRJbmxpbmVSdW4obWFrZVVuaXF1
ZTxEaXNwbGF5OjpSdW4+KGxvZ2ljYWxSZWN0LCBEaXNwbGF5OjpSdW46OlRleHRDb250ZXh0IHsg
dGV4dENvbnRleHQtPnN0YXJ0LCB0ZXh0Q29udGV4dC0+bGVuZ3RoIH0pKTsKKyAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IH0KKwogICAgIGF1dG8gZ2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeSgpOwog
ICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IGxpbmVSdW5zLnNpemUoKTsgKytp
bmRleCkgewogICAgICAgICBhdXRvJiBsaW5lUnVuID0gbGluZVJ1bnMuYXQoaW5kZXgpOwpAQCAt
MzkyLDcgKzQyNSw2IEBAIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OklubGluZUxheW91
dDo6Y3JlYXRlRGlzcGxheVJ1bnMoY29uc3QgTGluZTo6Q29udGVuCiAgICAgICAgICAgICBkaXNw
bGF5Qm94LnNldFRvcExlZnQobG9naWNhbFJlY3QudG9wTGVmdCgpKTsKICAgICAgICAgICAgIGRp
c3BsYXlCb3guc2V0Q29udGVudEJveFdpZHRoKGxvZ2ljYWxSZWN0LndpZHRoKCkpOwogICAgICAg
ICAgICAgZGlzcGxheUJveC5zZXRDb250ZW50Qm94SGVpZ2h0KGxvZ2ljYWxSZWN0LmhlaWdodCgp
KTsKLSAgICAgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5hZGRJbmxpbmVSdW4obWFrZVVuaXF1ZTxE
aXNwbGF5OjpSdW4+KGxvZ2ljYWxSZWN0KSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgfQogCkBAIC00MDIsNyArNDM0LDYgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6
SW5saW5lTGF5b3V0OjpjcmVhdGVEaXNwbGF5UnVucyhjb25zdCBMaW5lOjpDb250ZW4KICAgICAg
ICAgICAgIGlmIChsYXlvdXRCb3guaXNJbkZsb3dQb3NpdGlvbmVkKCkpCiAgICAgICAgICAgICAg
ICAgdG9wTGVmdCArPSBnZW9tZXRyeS5pbkZsb3dQb3NpdGlvbmVkUG9zaXRpb25PZmZzZXQobGF5
b3V0Qm94LCBtX3VzZWRIb3Jpem9udGFsVmFsdWVzKTsKICAgICAgICAgICAgIGRpc3BsYXlCb3gu
c2V0VG9wTGVmdCh0b3BMZWZ0KTsKLSAgICAgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5hZGRJbmxp
bmVSdW4obWFrZVVuaXF1ZTxEaXNwbGF5OjpSdW4+KGxvZ2ljYWxSZWN0KSk7CiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgfQogCkBAIC00MjgsMzEgKzQ1OSwyMyBAQCB2b2lkIElubGlu
ZUZvcm1hdHRpbmdDb250ZXh0OjpJbmxpbmVMYXlvdXQ6OmNyZWF0ZURpc3BsYXlSdW5zKGNvbnN0
IExpbmU6OkNvbnRlbgogICAgICAgICB9CiAKICAgICAgICAgLy8gVGV4dCBjb250ZW50LiBUcnkg
dG8gam9pbiBtdWx0aXBsZSB0ZXh0IHJ1bnMgd2hlbiBwb3NzaWJsZS4KLSAgICAgICAgQVNTRVJU
KGxpbmVSdW4tPmlzVGV4dCgpKTsKLSAgICAgICAgYXV0byB0ZXh0Q29udGV4dCA9IGxpbmVSdW4t
PnRleHRDb250ZXh0KCk7ICAgCi0gICAgICAgIGNvbnN0IExpbmU6OkNvbnRlbnQ6OlJ1biogcHJl
dmlvdXNMaW5lUnVuID0gIWluZGV4ID8gbnVsbHB0ciA6IGxpbmVSdW5zW2luZGV4IC0gMV0uZ2V0
KCk7Ci0gICAgICAgIGlmICghdGV4dENvbnRleHQtPmlzQ29sbGFwc2VkKSB7Ci0gICAgICAgICAg
ICBhdXRvIHByZXZpb3VzUnVuQ2FuQmVFeHRlbmRlZCA9IHByZXZpb3VzTGluZVJ1biAmJiBwcmV2
aW91c0xpbmVSdW4tPnRleHRDb250ZXh0KCkgPyBwcmV2aW91c0xpbmVSdW4tPnRleHRDb250ZXh0
KCktPmNhbkJlRXh0ZW5kZWQgOiBmYWxzZTsKLSAgICAgICAgICAgIGF1dG8gcmVxdWlyZXNOZXdS
dW4gPSAhaW5kZXggfHwgIXByZXZpb3VzUnVuQ2FuQmVFeHRlbmRlZCB8fCAmbGF5b3V0Qm94ICE9
ICZwcmV2aW91c0xpbmVSdW4tPmxheW91dEJveCgpOwotICAgICAgICAgICAgaWYgKHJlcXVpcmVz
TmV3UnVuKQotICAgICAgICAgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5hZGRJbmxpbmVSdW4obWFr
ZVVuaXF1ZTxEaXNwbGF5OjpSdW4+KGxvZ2ljYWxSZWN0LCBEaXNwbGF5OjpSdW46OlRleHRDb250
ZXh0IHsgdGV4dENvbnRleHQtPnN0YXJ0LCB0ZXh0Q29udGV4dC0+bGVuZ3RoIH0pKTsKLSAgICAg
ICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGF1dG8mIGxhc3REaXNwbGF5UnVuID0gZm9y
bWF0dGluZ1N0YXRlLmlubGluZVJ1bnMoKS5sYXN0KCk7Ci0gICAgICAgICAgICAgICAgbGFzdERp
c3BsYXlSdW4tPmV4cGFuZEhvcml6b250YWxseShsb2dpY2FsUmVjdC53aWR0aCgpKTsKLSAgICAg
ICAgICAgICAgICBsYXN0RGlzcGxheVJ1bi0+dGV4dENvbnRleHQoKS0+ZXhwYW5kKHRleHRDb250
ZXh0LT5sZW5ndGgpOworICAgICAgICBpZiAobGluZVJ1bi0+aXNUZXh0KCkpIHsKKyAgICAgICAg
ICAgIGF1dG8gdGV4dENvbnRleHQgPSBsaW5lUnVuLT50ZXh0Q29udGV4dCgpOworICAgICAgICAg
ICAgY29uc3QgTGluZTo6Q29udGVudDo6UnVuKiBwcmV2aW91c0xpbmVSdW4gPSAhaW5kZXggPyBu
dWxscHRyIDogbGluZVJ1bnNbaW5kZXggLSAxXS5nZXQoKTsKKyAgICAgICAgICAgIC8vIEZJWE1F
IHRha2UgY29udGVudCBicmVha2luZyBpbnRvIGFjY291bnQgd2hlbiBwYXJ0IG9mIHRoZSBsYXlv
dXQgYm94IGlzIG9uIHRoZSBwcmV2aW91cyBsaW5lLgorICAgICAgICAgICAgYXV0byBmaXJzdElu
bGluZVJ1bkZvckxheW91dEJveCA9ICFwcmV2aW91c0xpbmVSdW4gfHwgJnByZXZpb3VzTGluZVJ1
bi0+bGF5b3V0Qm94KCkgIT0gJmxheW91dEJveDsKKyAgICAgICAgICAgIGlmIChmaXJzdElubGlu
ZVJ1bkZvckxheW91dEJveCkgeworICAgICAgICAgICAgICAgIC8vIFNldHVwIGRpc3BsYXkgYm94
IGZvciB0aGUgYXNzb2NpYXRlZCBsYXlvdXQgYm94LgorICAgICAgICAgICAgICAgIGRpc3BsYXlC
b3guc2V0VG9wTGVmdChsb2dpY2FsUmVjdC50b3BMZWZ0KCkpOworICAgICAgICAgICAgICAgIGRp
c3BsYXlCb3guc2V0Q29udGVudEJveFdpZHRoKHRleHRDb250ZXh0LT5pc0NvbGxhcHNlZCA/IExh
eW91dFVuaXQoKSA6IGxvZ2ljYWxSZWN0LndpZHRoKCkpOworICAgICAgICAgICAgICAgIGRpc3Bs
YXlCb3guc2V0Q29udGVudEJveEhlaWdodChsb2dpY2FsUmVjdC5oZWlnaHQoKSk7CisgICAgICAg
ICAgICB9IGVsc2UgaWYgKCF0ZXh0Q29udGV4dC0+aXNDb2xsYXBzZWQpIHsKKyAgICAgICAgICAg
ICAgICAvLyBGSVhNRSBmaXggaXQgZm9yIG11bHRpcnVuL211bHRpbGluZS4KKyAgICAgICAgICAg
ICAgICBkaXNwbGF5Qm94LnNldENvbnRlbnRCb3hXaWR0aChkaXNwbGF5Qm94LmNvbnRlbnRCb3hX
aWR0aCgpICsgbG9naWNhbFJlY3Qud2lkdGgoKSk7CiAgICAgICAgICAgICB9CisgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgfQotICAgICAgICAvLyBGSVhNRSB0YWtlIGNvbnRlbnQgYnJl
YWtpbmcgaW50byBhY2NvdW50IHdoZW4gcGFydCBvZiB0aGUgbGF5b3V0IGJveCBpcyBvbiB0aGUg
cHJldmlvdXMgbGluZS4KLSAgICAgICAgYXV0byBmaXJzdElubGluZVJ1bkZvckxheW91dEJveCA9
ICFwcmV2aW91c0xpbmVSdW4gfHwgJnByZXZpb3VzTGluZVJ1bi0+bGF5b3V0Qm94KCkgIT0gJmxh
eW91dEJveDsKLSAgICAgICAgaWYgKGZpcnN0SW5saW5lUnVuRm9yTGF5b3V0Qm94KSB7Ci0gICAg
ICAgICAgICAvLyBTZXR1cCBkaXNwbGF5IGJveCBmb3IgdGhlIGFzc29jaWF0ZWQgbGF5b3V0IGJv
eC4KLSAgICAgICAgICAgIGRpc3BsYXlCb3guc2V0VG9wTGVmdChsb2dpY2FsUmVjdC50b3BMZWZ0
KCkpOwotICAgICAgICAgICAgZGlzcGxheUJveC5zZXRDb250ZW50Qm94V2lkdGgodGV4dENvbnRl
eHQtPmlzQ29sbGFwc2VkID8gTGF5b3V0VW5pdCgpIDogbG9naWNhbFJlY3Qud2lkdGgoKSk7Ci0g
ICAgICAgICAgICBkaXNwbGF5Qm94LnNldENvbnRlbnRCb3hIZWlnaHQobG9naWNhbFJlY3QuaGVp
Z2h0KCkpOwotICAgICAgICB9IGVsc2UgaWYgKCF0ZXh0Q29udGV4dC0+aXNDb2xsYXBzZWQpIHsK
LSAgICAgICAgICAgIC8vIEZJWE1FIGZpeCBpdCBmb3IgbXVsdGlydW4vbXVsdGlsaW5lLgotICAg
ICAgICAgICAgZGlzcGxheUJveC5zZXRDb250ZW50Qm94V2lkdGgoZGlzcGxheUJveC5jb250ZW50
Qm94V2lkdGgoKSArIGxvZ2ljYWxSZWN0LndpZHRoKCkpOwotICAgICAgICB9CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KICAgICAvLyBGSVhNRSBsaW5lYm94IG5lZWRzIHRv
IGJlIGFqdXN0ZWQgYWZ0ZXIgY29udGVudCBhbGlnbm1lbnQuCiAgICAgZm9ybWF0dGluZ1N0YXRl
LmFkZExpbmVCb3gobGluZUNvbnRlbnQubGluZUJveCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKaW5kZXggMTQ5ODY2ZmJjMTE5N2JhMDlkYTIxNTc1
ZjFjZWFmYWQ2NDE5ZmU2Yi4uNTIyNGYxZTc3N2M1NmJlZmIzZDY2ZjhlMDU4OGFkMDA4YTIwNDI0
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKQEAg
LTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIGJvb2wgcmV0dXJuc0F0TGVhc3RPbmVSZXN1bHQo
Y29uc3QgU3RyaW5nJik7CiAgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCB0YWJsZUV4aXN0
cyhjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIGNsZWFyQWxsVGFibGVzKCk7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBjbGVhckFsbFRhYmxlcygpOwogICAgIFdFQkNPUkVfRVhQT1JUIGludCBy
dW5WYWN1dW1Db21tYW5kKCk7CiAgICAgaW50IHJ1bkluY3JlbWVudGFsVmFjdXVtQ29tbWFuZCgp
OwogICAgIApAQCAtMTI1LDcgKzEyNSw3IEBAIHB1YmxpYzoKICAgICAvLyAgICAgICAgICAgICAg
IGZpbGUsIGJ1dCByZW1vdmVzIHRoZSBlbXB0eSBwYWdlcyBvbmx5IHdoZW4gUFJBR01BIElOQ1JF
TUFOVEFMX1ZBQ1VVTQogICAgIC8vICAgICAgICAgICAgICAgaXMgY2FsbGVkLgogICAgIGVudW0g
QXV0b1ZhY3V1bVByYWdtYSB7IEF1dG9WYWN1dW1Ob25lID0gMCwgQXV0b1ZhY3V1bUZ1bGwgPSAx
LCBBdXRvVmFjdXVtSW5jcmVtZW50YWwgPSAyIH07Ci0gICAgYm9vbCB0dXJuT25JbmNyZW1lbnRh
bEF1dG9WYWN1dW0oKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIHR1cm5PbkluY3JlbWVudGFs
QXV0b1ZhY3V1bSgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb2xsYXRpb25GdW5j
dGlvbihjb25zdCBTdHJpbmcmIGNvbGxhdGlvbk5hbWUsIFdURjo6RnVuY3Rpb248aW50KGludCwg
Y29uc3Qgdm9pZCosIGludCwgY29uc3Qgdm9pZCopPiYmKTsKICAgICB2b2lkIHJlbW92ZUNvbGxh
dGlvbkZ1bmN0aW9uKGNvbnN0IFN0cmluZyYgY29sbGF0aW9uTmFtZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAppbmRleCA3ZTFm
MGFjZjNlZGY4ZTdmYWU5NWI0YWNhM2NhZmRjMjE3ZDkzNGY0Li5mNzZlOWQzMDdmNmRmZTA0ZmIw
YTZlZDQxMDljMWMzZDUyMWE3MmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKQEAgLTE2MCw3ICsxNjAsNyBAQCBjb25zdGV4
cHIgYXV0byBjcmVhdGVTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20gPSAiQ1JFQVRFIFRB
QkxFIFN1YnJlc291cmNlVQogICAgICJGT1JFSUdOIEtFWShzdWJyZXNvdXJjZURvbWFpbklEKSBS
RUZFUkVOQ0VTIE9ic2VydmVkRG9tYWlucyhkb21haW5JRCkgT04gREVMRVRFIENBU0NBREUsICIK
ICAgICAiRk9SRUlHTiBLRVkoZnJvbURvbWFpbklEKSBSRUZFUkVOQ0VTIE9ic2VydmVkRG9tYWlu
cyhkb21haW5JRCkgT04gREVMRVRFIENBU0NBREUpOyJfczsKICAgICAKLVJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZShXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUmIHN0b3JlLCBXb3JrUXVldWUmIHdvcmtR
dWV1ZSwgU2hvdWxkSW5jbHVkZUxvY2FsaG9zdCBzaG91bGRJbmNsdWRlTG9jYWxob3N0LCBjb25z
dCBTdHJpbmcmIHN0b3JhZ2VEaXJlY3RvcnlQYXRoKQorUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlKFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSYgc3RvcmUsIFdvcmtRdWV1ZSYgd29ya1F1ZXVlLCBTaG91
bGRJbmNsdWRlTG9jYWxob3N0IHNob3VsZEluY2x1ZGVMb2NhbGhvc3QsIGNvbnN0IFN0cmluZyYg
c3RvcmFnZURpcmVjdG9yeVBhdGgsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IFJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShzdG9yZSwgd29ya1F1ZXVlLCBzaG91bGRJbmNsdWRl
TG9jYWxob3N0KQogICAgICwgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aChzdG9yYWdlRGlyZWN0b3J5
UGF0aCArICIvb2JzZXJ2YXRpb25zLmRiIikKICAgICAsIG1fb2JzZXJ2ZWREb21haW5Db3VudCht
X2RhdGFiYXNlLCBvYnNlcnZlZERvbWFpbkNvdW50UXVlcnkpCkBAIC0xOTMsNiArMTkzLDcgQEAg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlKFdlYlJlc28KICAgICAsIG1fdXBkYXRlR3JhbmRmYXRoZXJlZFN0YXRl
bWVudChtX2RhdGFiYXNlLCB1cGRhdGVHcmFuZGZhdGhlcmVkUXVlcnkpCiAgICAgLCBtX2lzR3Jh
bmRmYXRoZXJlZFN0YXRlbWVudChtX2RhdGFiYXNlLCBpc0dyYW5kZmF0aGVyZWRRdWVyeSkKICAg
ICAsIG1fZmluZEV4cGlyZWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQobV9kYXRhYmFzZSwgZmlu
ZEV4cGlyZWRVc2VySW50ZXJhY3Rpb25RdWVyeSkKKyAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25J
RCkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMjEyLDYgKzIxMyw5
IEBAIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZShXZWJSZXNvCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KICAgICB9CisgICAgCisgICAgaWYgKCFtX2RhdGFiYXNlLnR1cm5PbkluY3JlbWVudGFsQXV0
b1ZhY3V1bSgpKQorICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6dHVybk9uSW5jcmVtZW50YWxBdXRvVmFj
dXVtIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2Uu
bGFzdEVycm9yTXNnKCkpOwogCiAgICAgaWYgKCFwcmVwYXJlU3RhdGVtZW50cygpKSB7CiAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJlU3RhdGVtZW50cyBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6
ICV7cHVibGljfXMsIGRhdGFiYXNlIHBhdGg6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNl
Lmxhc3RFcnJvck1zZygpLCBtX3N0b3JhZ2VEaXJlY3RvcnlQYXRoLnV0ZjgoKS5kYXRhKCkpOwpA
QCAtMzI4LDcgKzMzMiw4IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OnByZXBhcmVTdGF0ZW1lbnRzKCkKICAgICAgICAgfHwgbV91cGRhdGVHcmFuZGZhdGhlcmVk
U3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9pc0dyYW5kZmF0
aGVyZWRTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX2ZpbmRF
eHBpcmVkVXNlckludGVyYWN0aW9uU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKLSAg
ICAgICAgKSB7CisgICAgICAgIHx8IG1fdG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tLnByZXBh
cmUoKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgbV90b3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zy
b21FeGlzdHMucHJlcGFyZSgpICE9IFNRTElURV9PSykgewogICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
cHJlcGFyZVN0YXRlbWVudHMgZmFpbGVkIHRvIHByZXBhcmUsIGVycm9yIG1lc3NhZ2U6ICV7cHVi
bGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM1NSw3ICszNjAsNyBA
QCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNlcnRPYnNlcnZl
ZERvbWFpbihjb25zdCBSZXNvdXJjZUxvYQogICAgICAgICB8fCBtX2luc2VydE9ic2VydmVkRG9t
YWluU3RhdGVtZW50LmJpbmRJbnQoOCwgbG9hZFN0YXRpc3RpY3MuZGF0YVJlY29yZHNSZW1vdmVk
KSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9pbnNlcnRPYnNlcnZlZERvbWFpblN0YXRlbWVu
dC5iaW5kSW50KDksIGxvYWRTdGF0aXN0aWNzLnRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVU
b1VzZXJJbnRlcmFjdGlvbikgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1faW5zZXJ0T2JzZXJ2
ZWREb21haW5TdGF0ZW1lbnQuYmluZEludCgxMCwgbG9hZFN0YXRpc3RpY3MudGltZXNBY2Nlc3Nl
ZEFzRmlyc3RQYXJ0eUR1ZVRvU3RvcmFnZUFjY2Vzc0FQSSkgIT0gU1FMSVRFX09LKSB7Ci0gICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjppbnNlcnRPYnNlcnZlZERvbWFpbiBmYWlsZWQgdG8gYmluZCwgZXJy
b3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkp
OworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAg
LSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0T2JzZXJ2ZWREb21h
aW4gZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2Rh
dGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0zNzIsMjQgKzM3NywyNiBAQCBib29sIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNlcnRPYnNlcnZlZERvbWFpbihj
b25zdCBSZXNvdXJjZUxvYQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWxhdGlvbnNoaXBFeGlzdHMoV2ViQ29yZTo6U1FM
aXRlU3RhdGVtZW50JiBzdGF0ZW1lbnQsIHVuc2lnbmVkIGZpcnN0RG9tYWluSUQsIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiBzZWNvbmREb21haW4pIGNvbnN0Citib29sIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWxhdGlvbnNoaXBFeGlzdHMoV2ViQ29yZTo6U1FMaXRl
U3RhdGVtZW50JiBzdGF0ZW1lbnQsIE9wdGlvbmFsPHVuc2lnbmVkPiBmaXJzdERvbWFpbklELCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc2Vjb25kRG9tYWluKSBjb25zdAogeworICAgIGlmICgh
Zmlyc3REb21haW5JRCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAogICAgIEFTU0VSVCgh
UnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgaWYgKHN0YXRlbWVudC5iaW5kSW50KDEsIGZpcnN0
RG9tYWluSUQpICE9IFNRTElURV9PSworICAgIGlmIChzdGF0ZW1lbnQuYmluZEludCgxLCAqZmly
c3REb21haW5JRCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHN0YXRlbWVudC5iaW5kVGV4dCgy
LCBzZWNvbmREb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzdGF0ZW1l
bnQuc3RlcCgpICE9IFNRTElURV9ST1cpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0
d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1faW5zZXJ0
RG9tYWluUmVsYXRpb25zaGlwU3RhdGVtZW50IGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdl
OiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptX2luc2VydERvbWFpblJlbGF0aW9uc2hpcFN0
YXRlbWVudCBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMs
IG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICAKLSAgICBib29sIHJlbGF0aW9u
U2hpcEV4aXN0cyA9ICEhc3RhdGVtZW50LmdldENvbHVtbkludCgwKTsKKyAgICBib29sIHJlbGF0
aW9uc2hpcEV4aXN0cyA9ICEhc3RhdGVtZW50LmdldENvbHVtbkludCgwKTsKIAogICAgIGludCBy
ZXNldFJlc3VsdCA9IHN0YXRlbWVudC5yZXNldCgpOwogICAgIEFTU0VSVF9VTlVTRUQocmVzZXRS
ZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNRTElURV9PSyk7CiAgICAgCi0gICAgcmV0dXJuIHJlbGF0
aW9uU2hpcEV4aXN0czsKKyAgICByZXR1cm4gcmVsYXRpb25zaGlwRXhpc3RzOwogfQogCiBib29s
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNlcnREb21haW5SZWxhdGlv
bnNoaXAoV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50JiBzdGF0ZW1lbnQsIHVuc2lnbmVkIGRvbWFp
bklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWUpCkBAIC0zOTksNyArNDA2LDcg
QEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RG9tYWlu
UmVsYXRpb25zaGlwKFdlYkNvcmU6OlNRTGkKICAgICBpZiAoc3RhdGVtZW50LmJpbmRJbnQoMSwg
ZG9tYWluSUQpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzdGF0ZW1lbnQuYmluZFRleHQoMiwg
dG9wRnJhbWUuc3RyaW5nKCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzdGF0ZW1lbnQuc3Rl
cCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmss
ICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptX2luc2VydERvbWFp
blJlbGF0aW9uc2hpcFN0YXRlbWVudCBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJXtw
dWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV9pbnNlcnREb21haW5SZWxhdGlvbnNoaXBTdGF0ZW1l
bnQgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2Rh
dGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC00MTYsNyArNDIzLDcgQEAgYm9vbCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y29uZmlybURvbWFpbkRvZXNOb3RFeGlz
dChjb25zdCBSZWdpc3QKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGlm
IChtX2RvbWFpbklERnJvbVN0cmluZ1N0YXRlbWVudC5iaW5kVGV4dCgxLCBkb21haW4uc3RyaW5n
KCkpICE9IFNRTElURV9PSykgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAi
JXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y29uZmlybURvbWFpbkRv
ZXNOb3RFeGlzdCBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRo
aXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJP
Ul9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6Y29uZmlybURvbWFpbkRvZXNOb3RFeGlzdCBmYWlsZWQgdG8gYmluZCwgZXJy
b3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkp
OwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KQEAgLTQzNCwxNyArNDQxLDIxIEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OmNvbmZpcm1Eb21haW5Eb2VzTm90RXhpc3QoY29uc3QgUmVnaXN0CiB9CiAj
ZW5kaWYKIAotdW5zaWduZWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmRv
bWFpbklEKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4pIGNvbnN0CitPcHRpb25hbDx1
bnNpZ25lZD4gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmRvbWFpbklEKGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4pIGNvbnN0CiB7CiAgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7CiAKICAgICB1bnNpZ25lZCBkb21haW5JRCA9IDA7CiAKLSAgICBpZiAo
bV9kb21haW5JREZyb21TdHJpbmdTdGF0ZW1lbnQuYmluZFRleHQoMSwgZG9tYWluLnN0cmluZygp
KSAhPSBTUUxJVEVfT0sKLSAgICAgICAgfHwgbV9kb21haW5JREZyb21TdHJpbmdTdGF0ZW1lbnQu
c3RlcCgpICE9IFNRTElURV9ST1cpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29y
aywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmRvbWFpbklERnJv
bVN0cmluZyBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFi
YXNlLmxhc3RFcnJvck1zZygpKTsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgIHJldHVybiBkb21haW5JRDsKKyAgICBpZiAobV9kb21haW5JREZyb21TdHJpbmdTdGF0ZW1l
bnQuYmluZFRleHQoMSwgZG9tYWluLnN0cmluZygpKSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmRvbWFpbklERnJvbVN0cmluZyBmYWlsZWQsIGVy
cm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygp
KTsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICB9CisgICAgCisgICAgaWYgKG1f
ZG9tYWluSURGcm9tU3RyaW5nU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfUk9XKSB7CisgICAg
ICAgIGludCByZXNldFJlc3VsdCA9IG1fZG9tYWluSURGcm9tU3RyaW5nU3RhdGVtZW50LnJlc2V0
KCk7CisgICAgICAgIEFTU0VSVF9VTlVTRUQocmVzZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNR
TElURV9PSyk7CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgfQogCiAgICAgZG9t
YWluSUQgPSBtX2RvbWFpbklERnJvbVN0cmluZ1N0YXRlbWVudC5nZXRDb2x1bW5JbnQoMCk7CkBA
IC00NTgsMjggKzQ2OSwzMSBAQCB1bnNpZ25lZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6ZG9tYWluSUQoY29uc3QgUmVnaXN0cmFibGVEb21haW4mCiB2b2lkIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNlcnREb21haW5SZWxhdGlvbnNoaXBzKGNv
bnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MmIGxvYWRTdGF0aXN0aWNzKQogewogICAgIEFTU0VS
VCghUnVuTG9vcDo6aXNNYWluKCkpOwotCiAgICAgYXV0byByZWdpc3RyYWJsZURvbWFpbklEID0g
ZG9tYWluSUQobG9hZFN0YXRpc3RpY3MucmVnaXN0cmFibGVEb21haW4pOworICAgIAorICAgIGlm
ICghcmVnaXN0cmFibGVEb21haW5JRCkKKyAgICAgICAgcmV0dXJuOworICAgIAogICAgIGZvciAo
YXV0byYgdG9wRnJhbWVEb21haW4gOiBsb2FkU3RhdGlzdGljcy5zdG9yYWdlQWNjZXNzVW5kZXJU
b3BGcmFtZURvbWFpbnMpCi0gICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N0b3Jh
Z2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWluc1N0YXRlbWVudCwgcmVnaXN0cmFibGVEb21haW5J
RCwgdG9wRnJhbWVEb21haW4pOworICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9z
dG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnNTdGF0ZW1lbnQsIHJlZ2lzdHJhYmxlRG9t
YWluSUQudmFsdWUoKSwgdG9wRnJhbWVEb21haW4pOwogCiAgICAgZm9yIChhdXRvJiB0b0RvbWFp
biA6IGxvYWRTdGF0aXN0aWNzLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8pCi0gICAgICAgIGlu
c2VydERvbWFpblJlbGF0aW9uc2hpcChtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8sIHJlZ2lz
dHJhYmxlRG9tYWluSUQsIHRvRG9tYWluKTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25z
aGlwKG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUbywgcmVnaXN0cmFibGVEb21haW5JRC52YWx1
ZSgpLCB0b0RvbWFpbik7CiAgICAgCiAgICAgZm9yIChhdXRvJiBmcm9tRG9tYWluIDogbG9hZFN0
YXRpc3RpY3MudG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tKQotICAgICAgICBpbnNlcnREb21h
aW5SZWxhdGlvbnNoaXAobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHJlZ2lzdHJhYmxl
RG9tYWluSUQsIGZyb21Eb21haW4pOworICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAo
bV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUo
KSwgZnJvbURvbWFpbik7CiAgICAgCiAgICAgZm9yIChhdXRvJiB0b3BGcmFtZURvbWFpbiA6IGxv
YWRTdGF0aXN0aWNzLnN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMpCi0gICAgICAgIGluc2Vy
dERvbWFpblJlbGF0aW9uc2hpcChtX3N1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMsIHJlZ2lz
dHJhYmxlRG9tYWluSUQsIHRvcEZyYW1lRG9tYWluKTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVs
YXRpb25zaGlwKG1fc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlucywgcmVnaXN0cmFibGVEb21h
aW5JRC52YWx1ZSgpLCB0b3BGcmFtZURvbWFpbik7CiAgICAgCiAgICAgZm9yIChhdXRvJiB0b3BG
cmFtZURvbWFpbiA6IGxvYWRTdGF0aXN0aWNzLnN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFp
bnMpCi0gICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5kZXJU
b3BGcmFtZURvbWFpbnMsIHJlZ2lzdHJhYmxlRG9tYWluSUQsIHRvcEZyYW1lRG9tYWluKTsKKyAg
ICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fc3VicmVzb3VyY2VVbmRlclRvcEZyYW1l
RG9tYWlucywgcmVnaXN0cmFibGVEb21haW5JRC52YWx1ZSgpLCB0b3BGcmFtZURvbWFpbik7CiAg
ICAgCiAgICAgZm9yIChhdXRvJiB0b0RvbWFpbiA6IGxvYWRTdGF0aXN0aWNzLnN1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RzVG8pCi0gICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1
YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8sIHJlZ2lzdHJhYmxlRG9tYWluSUQsIHRvRG9tYWlu
KTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fc3VicmVzb3VyY2VVbmlxdWVS
ZWRpcmVjdHNUbywgcmVnaXN0cmFibGVEb21haW5JRC52YWx1ZSgpLCB0b0RvbWFpbik7CiAgICAg
CiAgICAgZm9yIChhdXRvJiBmcm9tRG9tYWluIDogbG9hZFN0YXRpc3RpY3Muc3VicmVzb3VyY2VV
bmlxdWVSZWRpcmVjdHNGcm9tKQotICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9z
dWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20sIHJlZ2lzdHJhYmxlRG9tYWluSUQsIGZyb21E
b21haW4pOworICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVu
aXF1ZVJlZGlyZWN0c0Zyb20sIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgZnJvbURvbWFp
bik7CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBvcHVs
YXRlRnJvbU1lbW9yeVN0b3JlKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9y
ZSYgbWVtb3J5U3RvcmUpCkBAIC00OTcsOCArNTExLDYgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6cG9wdWxhdGVGcm9tTWVtb3J5U3RvcmUoY29uc3QgUmVzb3Vy
Y2UKICAgICAvLyBjYW4gcmVmZXIgdG8gdGhlIE9ic2VydmVkRG9tYWluIHRhYmxlIGVudHJpZXMK
ICAgICBmb3IgKGF1dG8mIHN0YXRpc3RpYyA6IHN0YXRpc3RpY3NNYXApCiAgICAgICAgIGluc2Vy
dERvbWFpblJlbGF0aW9uc2hpcHMoc3RhdGlzdGljLnZhbHVlKTsKLQotICAgIG1fZGF0YWJhc2Uu
cnVuVmFjdXVtQ29tbWFuZCgpOwogfQogCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpjYWxjdWxhdGVBbmRTdWJtaXRUZWxlbWV0cnkoKSBjb25zdApAQCAtNTI5LDcg
KzU0MSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmluY3Jl
bWVudFJlY29yZHNEZWxldGVkQ291bnRGb3JEb21haW5zCiAgICAgU1FMaXRlU3RhdGVtZW50IGRv
bWFpbnNUb1VwZGF0ZVN0YXRlbWVudChtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJVUERBVEUgT2Jz
ZXJ2ZWREb21haW5zIFNFVCBkYXRhUmVjb3Jkc1JlbW92ZWQgPSBkYXRhUmVjb3Jkc1JlbW92ZWQg
KyAxIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluIElOICgiLCBkb21haW5zVG9TdHJpbmcoZG9tYWlu
cyksICIpIikpOwogICAgIGlmIChkb21haW5zVG9VcGRhdGVTdGF0ZW1lbnQucHJlcGFyZSgpICE9
IFNRTElURV9PSwogICAgICAgICB8fCBkb21haW5zVG9VcGRhdGVTdGF0ZW1lbnQuc3RlcCgpICE9
IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAt
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbmNyZW1lbnRTdGF0aXN0aWNz
Rm9yRG9tYWlucyBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2Rh
dGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxM
T1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OmluY3JlbWVudFN0YXRpc3RpY3NGb3JEb21haW5zIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTog
JXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiB9CkBAIC01NDYsMjQgKzU1OCwzNCBAQCB1bnNp
Z25lZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVjdXJzaXZlbHlGaW5k
Tm9uUHJldmFsZW50RG9tYWlucwogICAgICsrbnVtYmVyT2ZSZWN1cnNpdmVDYWxsczsKIAogICAg
IFN0ZFNldDx1bnNpZ25lZD4gbmV3bHlJZGVudGlmaWVkRG9tYWluczsKLSAgICBTUUxpdGVTdGF0
ZW1lbnQgZmluZFN1YnJlc291cmNlcyhtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgU3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5JRCBmcm9tIFN1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RzRnJvbSBJTk5FUiBKT0lOIE9ic2VydmVkRG9tYWlucyBPTiBPYnNlcnZl
ZERvbWFpbnMuZG9tYWluSUQgPSBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20uZnJvbURv
bWFpbklEIFdIRVJFIHN1YnJlc291cmNlRG9tYWluSUQgPSAiLCBTdHJpbmc6Om51bWJlcihwcmlt
YXJ5RG9tYWluSUQpLCAiQU5EIE9ic2VydmVkRG9tYWlucy5pc1ByZXZhbGVudCA9IDAiKSk7Ci0g
ICAgaWYgKGZpbmRTdWJyZXNvdXJjZXMucHJlcGFyZSgpID09IFNRTElURV9PSykgewotICAgICAg
ICB3aGlsZSAoZmluZFN1YnJlc291cmNlcy5zdGVwKCkgPT0gU1FMSVRFX1JPVykgewotICAgICAg
ICAgICAgYXV0byBuZXdEb21haW5JRCA9IGZpbmRTdWJyZXNvdXJjZXMuZ2V0Q29sdW1uSW50KDAp
OwotICAgICAgICAgICAgYXV0byBpbnNlcnRSZXN1bHQgPSBub25QcmV2YWxlbnRSZWRpcmVjdGlv
blNvdXJjZXMuaW5zZXJ0KG5ld0RvbWFpbklEKTsKLSAgICAgICAgICAgIGlmIChpbnNlcnRSZXN1
bHQuc2Vjb25kKQotICAgICAgICAgICAgICAgIG5ld2x5SWRlbnRpZmllZERvbWFpbnMuaW5zZXJ0
KG5ld0RvbWFpbklEKTsKLSAgICAgICAgfQorICAgIFNRTGl0ZVN0YXRlbWVudCBmaW5kU3VicmVz
b3VyY2VzKG1fZGF0YWJhc2UsICJTRUxFQ1QgU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9t
LmZyb21Eb21haW5JRCBmcm9tIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSBJTk5FUiBK
T0lOIE9ic2VydmVkRG9tYWlucyBPTiBPYnNlcnZlZERvbWFpbnMuZG9tYWluSUQgPSBTdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20uZnJvbURvbWFpbklEIFdIRVJFIHN1YnJlc291cmNlRG9t
YWluSUQgPSA/IEFORCBPYnNlcnZlZERvbWFpbnMuaXNQcmV2YWxlbnQgPSAwIl9zKTsKKyAgICBp
ZiAoZmluZFN1YnJlc291cmNlcy5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IGZp
bmRTdWJyZXNvdXJjZXMuYmluZEludCgxLCBwcmltYXJ5RG9tYWluSUQpICE9IFNRTElURV9PSykg
eworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAg
LSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVjdXJzaXZlbHlGaW5kTm9u
UHJldmFsZW50RG9tYWluc1RoYXRSZWRpcmVjdGVkVG9UaGlzRG9tYWluIGZhaWxlZCwgZXJyb3Ig
bWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQor
ICAgIAorICAgIHdoaWxlIChmaW5kU3VicmVzb3VyY2VzLnN0ZXAoKSA9PSBTUUxJVEVfUk9XKSB7
CisgICAgICAgIGludCBuZXdEb21haW5JRCA9IGZpbmRTdWJyZXNvdXJjZXMuZ2V0Q29sdW1uSW50
KDApOworICAgICAgICBhdXRvIGluc2VydFJlc3VsdCA9IG5vblByZXZhbGVudFJlZGlyZWN0aW9u
U291cmNlcy5pbnNlcnQobmV3RG9tYWluSUQpOworICAgICAgICBpZiAoaW5zZXJ0UmVzdWx0LnNl
Y29uZCkKKyAgICAgICAgICAgIG5ld2x5SWRlbnRpZmllZERvbWFpbnMuaW5zZXJ0KG5ld0RvbWFp
bklEKTsKICAgICB9CiAKLSAgICBTUUxpdGVTdGF0ZW1lbnQgZmluZFRvcEZyYW1lcyhtX2RhdGFi
YXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21E
b21haW5JRCBmcm9tIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSBJTk5FUiBKT0lOIE9ic2Vy
dmVkRG9tYWlucyBPTiBPYnNlcnZlZERvbWFpbnMuZG9tYWluSUQgPSBUb3BGcmFtZVVuaXF1ZVJl
ZGlyZWN0c0Zyb20uZnJvbURvbWFpbklEIFdIRVJFIHRhcmdldERvbWFpbklEID0gIiwgU3RyaW5n
OjpudW1iZXIocHJpbWFyeURvbWFpbklEKSwgIkFORCBPYnNlcnZlZERvbWFpbnMuaXNQcmV2YWxl
bnQgPSAwIikpOwotICAgIGlmIChmaW5kVG9wRnJhbWVzLnByZXBhcmUoKSA9PSBTUUxJVEVfT0sp
IHsKLSAgICAgICAgd2hpbGUgKGZpbmRUb3BGcmFtZXMuc3RlcCgpID09IFNRTElURV9ST1cpIHsK
LSAgICAgICAgICAgIGF1dG8gbmV3RG9tYWluSUQgPSBmaW5kVG9wRnJhbWVzLmdldENvbHVtbklu
dCgwKTsKLSAgICAgICAgICAgIGF1dG8gaW5zZXJ0UmVzdWx0ID0gbm9uUHJldmFsZW50UmVkaXJl
Y3Rpb25Tb3VyY2VzLmluc2VydChuZXdEb21haW5JRCk7Ci0gICAgICAgICAgICBpZiAoaW5zZXJ0
UmVzdWx0LnNlY29uZCkKLSAgICAgICAgICAgICAgICBuZXdseUlkZW50aWZpZWREb21haW5zLmlu
c2VydChuZXdEb21haW5JRCk7Ci0gICAgICAgIH0KKyAgICBTUUxpdGVTdGF0ZW1lbnQgZmluZFRv
cEZyYW1lcyhtX2RhdGFiYXNlLCAiU0VMRUNUIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbS5m
cm9tRG9tYWluSUQgZnJvbSBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20gSU5ORVIgSk9JTiBP
YnNlcnZlZERvbWFpbnMgT04gT2JzZXJ2ZWREb21haW5zLmRvbWFpbklEID0gVG9wRnJhbWVVbmlx
dWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5JRCBXSEVSRSB0YXJnZXREb21haW5JRCA9ID8gQU5E
IE9ic2VydmVkRG9tYWlucy5pc1ByZXZhbGVudCA9IDAiX3MpOworICAgIGlmIChmaW5kVG9wRnJh
bWVzLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgZmluZFRvcEZyYW1lcy5iaW5k
SW50KDEsIHByaW1hcnlEb21haW5JRCkgIT0gU1FMSVRFX09LKSB7CisgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpyZWN1cnNpdmVseUZpbmROb25QcmV2YWxlbnREb21haW5zVGhh
dFJlZGlyZWN0ZWRUb1RoaXNEb21haW4gZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31z
IiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgCisgICAgd2hpbGUgKGZp
bmRUb3BGcmFtZXMuc3RlcCgpID09IFNRTElURV9ST1cpIHsKKyAgICAgICAgaW50IG5ld0RvbWFp
bklEID0gZmluZFRvcEZyYW1lcy5nZXRDb2x1bW5JbnQoMCk7CisgICAgICAgIGF1dG8gaW5zZXJ0
UmVzdWx0ID0gbm9uUHJldmFsZW50UmVkaXJlY3Rpb25Tb3VyY2VzLmluc2VydChuZXdEb21haW5J
RCk7CisgICAgICAgIGlmIChpbnNlcnRSZXN1bHQuc2Vjb25kKQorICAgICAgICAgICAgbmV3bHlJ
ZGVudGlmaWVkRG9tYWlucy5pbnNlcnQobmV3RG9tYWluSUQpOwogICAgIH0KIAogICAgIGlmIChu
ZXdseUlkZW50aWZpZWREb21haW5zLmVtcHR5KCkpCkBAIC02MDcsNyArNjI5LDcgQEAgdm9pZCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWFya0FzUHJldmFsZW50SWZIYXNS
ZWRpcmVjdGVkVG9QcmV2YWwKICAgICBTUUxpdGVTdGF0ZW1lbnQgbWFya1ByZXZhbGVudFN0YXRl
bWVudChtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJVUERBVEUgT2JzZXJ2ZWREb21haW5zIFNFVCBp
c1ByZXZhbGVudCA9IDEgV0hFUkUgZG9tYWluSUQgSU4gKCIsIGJ1aWxkTGlzdChXVEY6Okl0ZXJh
dG9yUmFuZ2U8U3RkU2V0PHVuc2lnbmVkPjo6aXRlcmF0b3I+KHByZXZhbGVudER1ZVRvUmVkaXJl
Y3QuYmVnaW4oKSwgcHJldmFsZW50RHVlVG9SZWRpcmVjdC5lbmQoKSkpLCAiKSIpKTsKICAgICBp
ZiAobWFya1ByZXZhbGVudFN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCiAgICAgICAg
IHx8IG1hcmtQcmV2YWxlbnRTdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjptYXJrQXNQcmV2YWxlbnRJZkhhc1JlZGlyZWN0ZWRUb1ByZXZhbGVu
dCBmYWlsZWQgdG8gZXhlY3V0ZSwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1f
ZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9B
TExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6bWFya0FzUHJldmFsZW50SWZIYXNSZWRpcmVjdGVkVG9QcmV2YWxlbnQgZmFpbGVkIHRv
IGV4ZWN1dGUsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxh
c3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogfQpA
QCAtNjU3LDcgKzY3OSw3IEBAIEhhc2hNYXA8dW5zaWduZWQsIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpOb3RWZXJ5UHJldmFsZW50UmVzb3VyY2VzCiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICBTUUxpdGVTdGF0ZW1lbnQgc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluc0Nv
dW50U3RhdGVtZW50KG1fZGF0YWJhc2UsIG1ha2VTdHJpbmcoIlNFTEVDVCBzdWJyZXNvdXJjZURv
bWFpbklELCBDT1VOVCh0b3BGcmFtZURvbWFpbklEKSBGUk9NIFN1YnJlc291cmNlVW5kZXJUb3BG
cmFtZURvbWFpbnMgV0hFUkUgc3VicmVzb3VyY2VEb21haW5JRCBJTiAoIiwgZG9tYWluSURzT2ZJ
bnRlcmVzdCwgIikgR1JPVVAgQlkgc3VicmVzb3VyY2VEb21haW5JRCIpKTsKKyAgICBTUUxpdGVT
dGF0ZW1lbnQgc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluc0NvdW50U3RhdGVtZW50KG1fZGF0
YWJhc2UsIG1ha2VTdHJpbmcoIlNFTEVDVCBzdWJmcmFtZURvbWFpbklELCBDT1VOVCh0b3BGcmFt
ZURvbWFpbklEKSBGUk9NIFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMgV0hFUkUgc3ViZnJh
bWVEb21haW5JRCBJTiAoIiwgZG9tYWluSURzT2ZJbnRlcmVzdCwgIikgR1JPVVAgQlkgc3ViZnJh
bWVEb21haW5JRCIpKTsKICAgICBpZiAoc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluc0NvdW50
U3RhdGVtZW50LnByZXBhcmUoKSA9PSBTUUxJVEVfT0spIHsKICAgICAgICAgd2hpbGUgKHN1YmZy
YW1lVW5kZXJUb3BGcmFtZURvbWFpbnNDb3VudFN0YXRlbWVudC5zdGVwKCkgPT0gU1FMSVRFX1JP
VykgewogICAgICAgICAgICAgdW5zaWduZWQgZG9tYWluSUQgPSBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluc0NvdW50U3RhdGVtZW50LmdldENvbHVtbklu
dCgwKSk7CkBAIC02ODcsMTIgKzcwOSwxMiBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpyZWNsYXNzaWZ5UmVzb3VyY2VzKCkKICAgICBhdXRvIG5vdFZlcnlQcmV2
YWxlbnRSZXNvdXJjZXMgPSBmaW5kTm90VmVyeVByZXZhbGVudFJlc291cmNlcygpOwogCiAgICAg
Zm9yIChhdXRvJiByZXNvdXJjZVN0YXRpc3RpYyA6IG5vdFZlcnlQcmV2YWxlbnRSZXNvdXJjZXMu
dmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKHNob3VsZFNraXAocmVzb3VyY2VTdGF0aXN0aWMucmVn
aXN0ZXJhYmxlRG9tYWluKSkKKyAgICAgICAgaWYgKHNob3VsZFNraXAocmVzb3VyY2VTdGF0aXN0
aWMucmVnaXN0cmFibGVEb21haW4pKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAg
YXV0byBuZXdQcmV2YWxlbmNlID0gY2xhc3NpZmllcigpLmNhbGN1bGF0ZVJlc291cmNlUHJldmFs
ZW5jZShyZXNvdXJjZVN0YXRpc3RpYy5zdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zQ291
bnQsIHJlc291cmNlU3RhdGlzdGljLnN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9Db3VudCwg
cmVzb3VyY2VTdGF0aXN0aWMuc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluc0NvdW50LCByZXNv
dXJjZVN0YXRpc3RpYy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvQ291bnQsIHJlc291cmNlU3Rh
dGlzdGljLnByZXZhbGVuY2UpOwogICAgICAgICBpZiAobmV3UHJldmFsZW5jZSAhPSByZXNvdXJj
ZVN0YXRpc3RpYy5wcmV2YWxlbmNlKQotICAgICAgICAgICAgc2V0UHJldmFsZW50UmVzb3VyY2Uo
cmVzb3VyY2VTdGF0aXN0aWMucmVnaXN0ZXJhYmxlRG9tYWluLCBuZXdQcmV2YWxlbmNlKTsKKyAg
ICAgICAgICAgIHNldFByZXZhbGVudFJlc291cmNlKHJlc291cmNlU3RhdGlzdGljLnJlZ2lzdHJh
YmxlRG9tYWluLCBuZXdQcmV2YWxlbmNlKTsKICAgICB9CiB9CiAKQEAgLTc3NSwxMSArNzk3LDEz
IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9y
YWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYKICAgICBpZiAodXNlcldhc1Byb21wdGVkRWFybGll
ciA9PSBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd246OlllcykKICAgICAgICAgUkVMRUFTRV9M
T0dfSU5GT19JRihkZWJ1Z0xvZ2dpbmdFbmFibGVkKCksIElUUERlYnVnLCAiU3RvcmFnZSBhY2Nl
c3Mgd2FzIGdyYW50ZWQgdG8gJXtwdWJsaWN9cyB1bmRlciAle3B1YmxpY31zLiIsIHN1YkZyYW1l
RG9tYWluLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHRvcEZyYW1lRG9tYWluLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwogCi0gICAgU1FMaXRlU3RhdGVtZW50IGluY3JlbWVudFN0b3JhZ2VBY2Nl
c3MobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiVVBEQVRFIE9ic2VydmVkRG9tYWlucyBTRVQgdGlt
ZXNBY2Nlc3NlZEFzRmlyc3RQYXJ0eUR1ZVRvU3RvcmFnZUFjY2Vzc0FQSSA9IHRpbWVzQWNjZXNz
ZWRBc0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VBY2Nlc3NBUEkgKyAxIFdIRVJFIGRvbWFpbklEID0g
IiwgU3RyaW5nOjpudW1iZXIoc3ViRnJhbWVTdGF0dXMuc2Vjb25kKSkpOworICAgIFNRTGl0ZVN0
YXRlbWVudCBpbmNyZW1lbnRTdG9yYWdlQWNjZXNzKG1fZGF0YWJhc2UsICJVUERBVEUgT2JzZXJ2
ZWREb21haW5zIFNFVCB0aW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9TdG9yYWdlQWNjZXNz
QVBJID0gdGltZXNBY2Nlc3NlZEFzRmlyc3RQYXJ0eUR1ZVRvU3RvcmFnZUFjY2Vzc0FQSSArIDEg
V0hFUkUgZG9tYWluSUQgPSA/Iik7CiAgICAgaWYgKGluY3JlbWVudFN0b3JhZ2VBY2Nlc3MucHJl
cGFyZSgpICE9IFNRTElURV9PSworICAgICAgICB8fCBpbmNyZW1lbnRTdG9yYWdlQWNjZXNzLmJp
bmRJbnQoMSwgc3ViRnJhbWVTdGF0dXMuc2Vjb25kKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwg
aW5jcmVtZW50U3RvcmFnZUFjY2Vzcy5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTog
JXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MgZmFpbGVkLCBl
cnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2co
KSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIAogICAgIGdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFdURk1vdmUoc3ViRnJhbWVE
b21haW4pLCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwgZnJhbWVJRCwgcGFnZUlELCB1c2VyV2Fz
UHJvbXB0ZWRFYXJsaWVyLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0gKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIHdhc0dyYW50ZWQpIG11dGFibGUgewpA
QCAtODUxLDEwICs4NzUsMTMgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6Z3JhbmRmYXRoZXJEYXRhRm9yRG9tYWlucyhjb25zdCBIYXNoU2UKIHsKICAgICBBU1NF
UlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAorICAgIGZvciAoYXV0byYgcmVnaXN0cmFibGVEb21h
aW4gOiBkb21haW5zKQorICAgICAgICBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3Ry
YWJsZURvbWFpbihyZWdpc3RyYWJsZURvbWFpbik7CisKICAgICBTUUxpdGVTdGF0ZW1lbnQgZG9t
YWluc1RvVXBkYXRlU3RhdGVtZW50KG1fZGF0YWJhc2UsIG1ha2VTdHJpbmcoIlVQREFURSBPYnNl
cnZlZERvbWFpbnMgU0VUIGdyYW5kZmF0aGVyZWQgPSAxIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWlu
IElOICgiLCBkb21haW5zVG9TdHJpbmcoZG9tYWlucyksICIpIikpOwogICAgIGlmIChkb21haW5z
VG9VcGRhdGVTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwogICAgICAgICB8fCBkb21h
aW5zVG9VcGRhdGVTdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpncmFuZGZhdGhlckRhdGFGb3JEb21haW5zIGZhaWxlZCwgZXJyb3IgbWVzc2Fn
ZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbmRmYXRoZXJEYXRhRm9yRG9tYWlucyBm
YWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RF
cnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogfQpAQCAt
ODk0LDcgKzkyMSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBSZWdpc3RyYWJsZURvCiAgICAgaWYgKCFpc01haW5G
cmFtZSAmJiAhKGFyZVRhcmdldEFuZFRvcEZyYW1lRG9tYWluc1NhbWVTaXRlIHx8IGFyZVRhcmdl
dEFuZFNvdXJjZURvbWFpbnNTYW1lU2l0ZSkpIHsKICAgICAgICAgYXV0byB0YXJnZXRSZXN1bHQg
PSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0YXJnZXREb21h
aW4pOwogICAgICAgICB1cGRhdGVMYXN0U2Vlbih0YXJnZXREb21haW4sIFJlc291cmNlTG9hZFN0
YXRpc3RpY3M6OnJlZHVjZVRpbWVSZXNvbHV0aW9uKFdhbGxUaW1lOjpub3coKSkpOwotCisgICAg
ICAgIGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHRvcEZyYW1l
RG9tYWluKTsKICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV9zdWJmcmFtZVVuZGVy
VG9wRnJhbWVEb21haW5FeGlzdHMsIHRhcmdldFJlc3VsdC5zZWNvbmQsIHRvcEZyYW1lRG9tYWlu
KSkgewogICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fc3ViZnJhbWVVbmRl
clRvcEZyYW1lRG9tYWlucywgdGFyZ2V0UmVzdWx0LnNlY29uZCwgdG9wRnJhbWVEb21haW4pOwog
ICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKQEAgLTkwNCwyNCArOTMx
LDI1IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmxvZ0ZyYW1l
TmF2aWdhdGlvbihjb25zdCBSZWdpc3RyYWJsZURvCiAgICAgaWYgKGlzUmVkaXJlY3QgJiYgIWFy
ZVRhcmdldEFuZFNvdXJjZURvbWFpbnNTYW1lU2l0ZSkgewogICAgICAgICBpZiAoaXNNYWluRnJh
bWUpIHsKICAgICAgICAgICAgIGF1dG8gcmVkaXJlY3RpbmdEb21haW5SZXN1bHQgPSBlbnN1cmVS
ZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihzb3VyY2VEb21haW4pOworICAg
ICAgICAgICAgYXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JS
ZWdpc3RyYWJsZURvbWFpbih0YXJnZXREb21haW4pOworCiAgICAgICAgICAgICBpZiAoIXJlbGF0
aW9uc2hpcEV4aXN0cyhtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9FeGlzdHMsIHJlZGlyZWN0
aW5nRG9tYWluUmVzdWx0LnNlY29uZCwgdGFyZ2V0RG9tYWluKSkgewogICAgICAgICAgICAgICAg
IGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8sIHJl
ZGlyZWN0aW5nRG9tYWluUmVzdWx0LnNlY29uZCwgdGFyZ2V0RG9tYWluKTsKICAgICAgICAgICAg
ICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICBhdXRvIHRhcmdldFJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJl
Z2lzdHJhYmxlRG9tYWluKHRhcmdldERvbWFpbik7CiAgICAgICAgICAgICBpZiAoIXJlbGF0aW9u
c2hpcEV4aXN0cyhtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbUV4aXN0cywgdGFyZ2V0UmVz
dWx0LnNlY29uZCwgc291cmNlRG9tYWluKSkgewogICAgICAgICAgICAgICAgIGluc2VydERvbWFp
blJlbGF0aW9uc2hpcChtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSwgdGFyZ2V0UmVzdWx0
LnNlY29uZCwgc291cmNlRG9tYWluKTsKICAgICAgICAgICAgICAgICBzdGF0aXN0aWNzV2VyZVVw
ZGF0ZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgYXV0byByZWRpcmVjdGluZ0RvbWFpblJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGlj
c0ZvclJlZ2lzdHJhYmxlRG9tYWluKHNvdXJjZURvbWFpbik7CisgICAgICAgICAgICBhdXRvIHRh
cmdldFJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWlu
KHRhcmdldERvbWFpbik7CiAgICAgICAgICAgICBpZiAoIXJlbGF0aW9uc2hpcEV4aXN0cyhtX3N1
YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9FeGlzdHMsIHJlZGlyZWN0aW5nRG9tYWluUmVzdWx0
LnNlY29uZCwgdGFyZ2V0RG9tYWluKSkgewogICAgICAgICAgICAgICAgIGluc2VydERvbWFpblJl
bGF0aW9uc2hpcChtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8sIHJlZGlyZWN0aW5nRG9t
YWluUmVzdWx0LnNlY29uZCwgdGFyZ2V0RG9tYWluKTsKICAgICAgICAgICAgICAgICBzdGF0aXN0
aWNzV2VyZVVwZGF0ZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBhdXRv
IHRhcmdldFJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9t
YWluKHRhcmdldERvbWFpbik7CiAgICAgICAgICAgICBpZiAoIXJlbGF0aW9uc2hpcEV4aXN0cyht
X3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbUV4aXN0cywgdGFyZ2V0UmVzdWx0LnNlY29u
ZCwgc291cmNlRG9tYWluKSkgewogICAgICAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9u
c2hpcChtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSwgdGFyZ2V0UmVzdWx0LnNlY29u
ZCwgc291cmNlRG9tYWluKTsKICAgICAgICAgICAgICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQg
PSB0cnVlOwpAQCAtOTUwLDExICs5NzgsMTEgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6c2V0VXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG8KIHsK
ICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIGlmIChtX21vc3RSZWNlbnRV
c2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuYmluZEludCgxLCBoYWRVc2VySW50ZXJhY3Rpb24pCisg
ICAgaWYgKG1fbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5iaW5kSW50KDEsIGhh
ZFVzZXJJbnRlcmFjdGlvbikgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fbW9zdFJlY2VudFVz
ZXJJbnRlcmFjdGlvblN0YXRlbWVudC5iaW5kRG91YmxlKDIsIG1vc3RSZWNlbnRJbnRlcmFjdGlv
bi5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBt
X21vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuYmluZFRleHQoMywgZG9tYWluLnN0
cmluZygpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9tb3N0UmVjZW50VXNlckludGVyYWN0
aW9uU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6c2V0VXNlckludGVyYWN0aW9uLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lG
X0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpzZXRVc2VySW50ZXJhY3Rpb24sIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0
aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC05NzgsMTAgKzEwMDYsMTEgQEAgdm9p
ZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJVc2VySW50ZXJhY3Rp
b24oY29uc3QgUmVnaXN0cmFibGUKICAgICBhdXRvIHRhcmdldFJlc3VsdCA9IGVuc3VyZVJlc291
cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKGRvbWFpbik7CiAgICAgc2V0VXNlcklu
dGVyYWN0aW9uKGRvbWFpbiwgZmFsc2UsIHsgfSk7CiAKLSAgICBTUUxpdGVTdGF0ZW1lbnQgcmVt
b3ZlU3RvcmFnZUFjY2VzcyhtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJERUxFVEUgRlJPTSBTdG9y
YWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMgV0hFUkUgZG9tYWluSUQgPSAiLCBTdHJpbmc6
Om51bWJlcih0YXJnZXRSZXN1bHQuc2Vjb25kKSkpOworICAgIFNRTGl0ZVN0YXRlbWVudCByZW1v
dmVTdG9yYWdlQWNjZXNzKG1fZGF0YWJhc2UsICJERUxFVEUgRlJPTSBTdG9yYWdlQWNjZXNzVW5k
ZXJUb3BGcmFtZURvbWFpbnMgV0hFUkUgZG9tYWluSUQgPSA/Iik7CiAgICAgaWYgKHJlbW92ZVN0
b3JhZ2VBY2Nlc3MucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICB8fCByZW1vdmVTdG9y
YWdlQWNjZXNzLmJpbmRJbnQoMSwgdGFyZ2V0UmVzdWx0LnNlY29uZCkgIT0gU1FMSVRFX09LCiAg
ICAgICAgIHx8IHJlbW92ZVN0b3JhZ2VBY2Nlc3Muc3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0g
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dVc2VySW50ZXJhY3Rpb24gZmFpbGVkIHRvIGJpbmQsIGVy
cm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygp
KTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVw
IC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmxvZ1VzZXJJbnRlcmFjdGlv
biBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0
YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICB9CiB9CkBAIC05OTEsMTUgKzEwMjAsMjAgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6aGFzSGFkVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmwKICAg
ICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGlmIChtX2hhZFVzZXJJbnRlcmFj
dGlvblN0YXRlbWVudC5iaW5kVGV4dCgxLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSwot
ICAgICAgICB8fCBtX2hhZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRF
X0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1fdXBkYXRlUHJldmFsZW50UmVzb3VyY2VT
dGF0ZW1lbnQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRh
YmFzZS5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICB8fCBtX2hhZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX1JP
VykgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAi
JXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV9oYWRVc2VySW50ZXJh
Y3Rpb25TdGF0ZW1lbnQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisKKyAgICAgICAgaW50IHJlc2V0UmVzdWx0ID0g
bV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQucmVzZXQoKTsKKyAgICAgICAgQVNTRVJUX1VO
VVNFRChyZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQgPT0gU1FMSVRFX09LKTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KIAogICAgIGJvb2wgaGFkVXNlckludGVyYWN0aW9uID0gISFtX2hh
ZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5nZXRDb2x1bW5JbnQoMCk7Ci0gICAgaWYgKCFoYWRV
c2VySW50ZXJhY3Rpb24pCisgICAgaWYgKCFoYWRVc2VySW50ZXJhY3Rpb24pIHsKKyAgICAgICAg
aW50IHJlc2V0UmVzdWx0ID0gbV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQucmVzZXQoKTsK
KyAgICAgICAgQVNTRVJUX1VOVVNFRChyZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQgPT0gU1FMSVRF
X09LKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KICAgICAKICAgICBXYWxsVGltZSBt
b3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZSA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyht
X2hhZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5nZXRDb2x1bW5Eb3VibGUoMSkpOwogCkBAIC0x
MDExLDYgKzEwNDUsOSBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpoYXNIYWRVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0cmFibAogICAgICAgICBoYWRVc2Vy
SW50ZXJhY3Rpb24gPSBmYWxzZTsKICAgICB9CiAgICAgCisgICAgaW50IHJlc2V0UmVzdWx0ID0g
bV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQucmVzZXQoKTsKKyAgICBBU1NFUlRfVU5VU0VE
KHJlc2V0UmVzdWx0LCByZXNldFJlc3VsdCA9PSBTUUxJVEVfT0spOworCiAgICAgcmV0dXJuIGhh
ZFVzZXJJbnRlcmFjdGlvbjsKIH0KIApAQCAtMTAyMyw3ICsxMDYwLDcgQEAgdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0UHJldmFsZW50UmVzb3VyY2UoY29uc3Qg
UmVnaXN0cmFibGUKICAgICBpZiAobV91cGRhdGVQcmV2YWxlbnRSZXNvdXJjZVN0YXRlbWVudC5i
aW5kSW50KDEsIDEpICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX3VwZGF0ZVByZXZhbGVudFJl
c291cmNlU3RhdGVtZW50LmJpbmRUZXh0KDIsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09L
CiAgICAgICAgIHx8IG1fdXBkYXRlUHJldmFsZW50UmVzb3VyY2VTdGF0ZW1lbnQuc3RlcCgpICE9
IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAt
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptX3VwZGF0ZVByZXZhbGVudFJl
c291cmNlU3RhdGVtZW50IGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMs
IG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9J
Rl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6bV91cGRhdGVQcmV2YWxlbnRSZXNvdXJjZVN0YXRlbWVudCBmYWlsZWQsIGVycm9y
IG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC0xMDM1LDcgKzEwNzIsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpzZXRQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZQogICAgICAgICBpZiAo
bV91cGRhdGVWZXJ5UHJldmFsZW50UmVzb3VyY2VTdGF0ZW1lbnQuYmluZEludCgxLCAxKSAhPSBT
UUxJVEVfT0sKICAgICAgICAgICAgIHx8IG1fdXBkYXRlVmVyeVByZXZhbGVudFJlc291cmNlU3Rh
dGVtZW50LmJpbmRUZXh0KDIsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LCiAgICAgICAg
ICAgICB8fCBtX3VwZGF0ZVZlcnlQcmV2YWxlbnRSZXNvdXJjZVN0YXRlbWVudC5zdGVwKCkgIT0g
U1FMSVRFX0RPTkUpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIl
cCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptX3VwZGF0ZVZlcnlQcmV2
YWxlbnRSZXNvdXJjZVN0YXRlbWVudCBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMi
LCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjptX3VwZGF0ZVZlcnlQcmV2YWxlbnRSZXNvdXJjZVN0YXRlbWVu
dCBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxh
c3RFcnJvck1zZygpKTsKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xMDQ1LDcgKzEwODIsNyBAQCB2b2lkIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRQcmV2YWxlbnRSZXNvdXJjZShjb25z
dCBSZWdpc3RyYWJsZQogICAgIH0KIAogICAgIFN0ZFNldDx1bnNpZ25lZD4gbm9uUHJldmFsZW50
UmVkaXJlY3Rpb25Tb3VyY2VzOwotICAgIHJlY3Vyc2l2ZWx5RmluZE5vblByZXZhbGVudERvbWFp
bnNUaGF0UmVkaXJlY3RlZFRvVGhpc0RvbWFpbihkb21haW5JRChkb21haW4pLCBub25QcmV2YWxl
bnRSZWRpcmVjdGlvblNvdXJjZXMsIDApOworICAgIHJlY3Vyc2l2ZWx5RmluZE5vblByZXZhbGVu
dERvbWFpbnNUaGF0UmVkaXJlY3RlZFRvVGhpc0RvbWFpbihkb21haW5JRChkb21haW4pLnZhbHVl
KCksIG5vblByZXZhbGVudFJlZGlyZWN0aW9uU291cmNlcywgMCk7CiAgICAgc2V0RG9tYWluc0Fz
UHJldmFsZW50KFdURk1vdmUobm9uUHJldmFsZW50UmVkaXJlY3Rpb25Tb3VyY2VzKSk7CiB9CiAK
QEAgLTEwNTYsNyArMTA5Myw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OnNldERvbWFpbnNBc1ByZXZhbGVudChTdGRTZXQ8dW5zaWduZWQ+CiAgICAgU1FMaXRl
U3RhdGVtZW50IGRvbWFpbnNUb1VwZGF0ZVN0YXRlbWVudChtX2RhdGFiYXNlLCBtYWtlU3RyaW5n
KCJVUERBVEUgT2JzZXJ2ZWREb21haW5zIFNFVCBpc1ByZXZhbGVudCA9IDEgV0hFUkUgZG9tYWlu
SUQgSU4gKCIsIGJ1aWxkTGlzdChXVEY6Okl0ZXJhdG9yUmFuZ2U8U3RkU2V0PHVuc2lnbmVkPjo6
aXRlcmF0b3I+KGRvbWFpbnMuYmVnaW4oKSwgZG9tYWlucy5lbmQoKSkpLCAiKSIpKTsKICAgICBp
ZiAoZG9tYWluc1RvVXBkYXRlU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAg
ICAgfHwgZG9tYWluc1RvVXBkYXRlU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewot
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0RG9tYWluc0FzUHJldmFsZW50IGZhaWxlZCwgZXJyb3Ig
bWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwor
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0RG9tYWluc0FzUHJldmFsZW50
IGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFz
dEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTEwNzYsOSArMTExMywxMiBAQCBib29sIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVkaWNhdGVWYWx1ZUZvckRvbWFpbihXZWJDb3JlOjpTUUxp
dAogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIAogICAgIGlmIChwcmVkaWNh
dGVTdGF0ZW1lbnQuYmluZFRleHQoMSwgZG9tYWluLnN0cmluZygpKSAhPSBTUUxJVEVfT0sKLSAg
ICAgICAgfHwgcHJlZGljYXRlU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6cHJlZGljYXRlVmFsdWVGb3JEb21haW4gZmFpbGVkIHRvIGJpbmQs
IGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1z
ZygpKTsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHx8IHByZWRpY2F0
ZVN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX1JPVykgeworCisgICAgICAgIGludCByZXNldFJl
c3VsdCA9IHByZWRpY2F0ZVN0YXRlbWVudC5yZXNldCgpOworICAgICAgICBBU1NFUlRfVU5VU0VE
KHJlc2V0UmVzdWx0LCByZXNldFJlc3VsdCA9PSBTUUxJVEVfT0spOworCisgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVkaWNhdGVWYWx1ZUZvckRvbWFpbiBmYWlsZWQgdG8g
YmluZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVy
cm9yTXNnKCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0xMTM3LDcgKzEx
NzcsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhclBy
ZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYgogICAgIAogICAgIGlmIChtX2NsZWFyUHJl
dmFsZW50UmVzb3VyY2VTdGF0ZW1lbnQuYmluZFRleHQoMSwgZG9tYWluLnN0cmluZygpKSAhPSBT
UUxJVEVfT0sKICAgICAgICAgfHwgbV9jbGVhclByZXZhbGVudFJlc291cmNlU3RhdGVtZW50LnN0
ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3Jr
LCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJQcmV2YWxl
bnRSZXNvdXJjZSwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2Uu
bGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1f
c2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xl
YXJQcmV2YWxlbnRSZXNvdXJjZSwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1f
ZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTExNTUsNyArMTE5NSw3IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldEdyYW5kZmF0aGVyZWQoY29uc3QgUmVn
aXN0cmFibGVEb21hCiAgICAgaWYgKG1fdXBkYXRlR3JhbmRmYXRoZXJlZFN0YXRlbWVudC5iaW5k
SW50KDEsIHZhbHVlKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV91cGRhdGVHcmFuZGZhdGhl
cmVkU3RhdGVtZW50LmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LCiAg
ICAgICAgIHx8IG1fdXBkYXRlR3JhbmRmYXRoZXJlZFN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRF
X0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldEdyYW5kZmF0aGVyZWQgZmFpbGVkIHRv
IGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RF
cnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Np
b25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldEdyYW5k
ZmF0aGVyZWQgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlz
LCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMjQ4LDcgKzEyODgsNyBAQCBzdGQ6OnBh
aXI8UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OkFkZGVkUmVjb3JkLCB1bnNp
Z25lZD4gUmVzb3VyY2VMbwogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAg
aWYgKG1fZG9tYWluSURGcm9tU3RyaW5nU3RhdGVtZW50LmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJp
bmcoKSkgIT0gU1FMSVRFX09LKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmss
ICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjcmVhdGVTY2hlbWEg
ZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0
RXJyb3JNc2coKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNz
aW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjplbnN1cmVS
ZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbiBmYWlsZWQsIGVycm9yIG1lc3Nh
Z2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiB7IEFkZGVkUmVjb3JkOjpO
bywgMCB9OwogICAgIH0KQEAgLTEyNjcsMTMgKzEzMDcsMjUgQEAgc3RkOjpwYWlyPFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpBZGRlZFJlY29yZCwgdW5zaWduZWQ+IFJlc291
cmNlTG8KICAgICBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIG5ld09ic2VydmF0aW9uKGRvbWFpbik7
CiAgICAgaW5zZXJ0T2JzZXJ2ZWREb21haW4obmV3T2JzZXJ2YXRpb24pOwogCi0gICAgcmV0dXJu
IHsgQWRkZWRSZWNvcmQ6OlllcywgZG9tYWluSUQoZG9tYWluKSB9OworICAgIHJldHVybiB7IEFk
ZGVkUmVjb3JkOjpZZXMsIGRvbWFpbklEKGRvbWFpbikudmFsdWUoKSB9OworfQorCit2b2lkIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhckRhdGFiYXNlQ29udGVudHMo
KQoreworICAgIG1fZGF0YWJhc2UuY2xlYXJBbGxUYWJsZXMoKTsKKworICAgIGlmICghY3JlYXRl
U2NoZW1hKCkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyRGF0YWJhc2VDb250ZW50cyBm
YWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMsIGRhdGFiYXNlIHBhdGg6ICV7cHVibGlj
fXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpLCBtX3N0b3JhZ2VEaXJlY3RvcnlQ
YXRoLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KIH0KIAogdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6Y2xlYXIoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAgY2xlYXJEYXRh
YmFzZUNvbnRlbnRzKCk7CiAgICAgY2xlYXJPcGVyYXRpbmdEYXRlcygpOwogCiAgICAgYXV0byBj
YWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CkBAIC0xMjg5LDEyICsxMzQxLDE2IEBAIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpDb29raWVUcmVhdG1lbnRSZXN1bHQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBTUUxp
dGVTdGF0ZW1lbnQgc3RhdGVtZW50KG1fZGF0YWJhc2UsIG1ha2VTdHJpbmcoIlNFTEVDVCBpc1By
ZXZhbGVudCwgaGFkVXNlckludGVyYWN0aW9uIEZST00gT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJl
Z2lzdHJhYmxlRG9tYWluID0gIiwgZG9tYWluLnN0cmluZygpKSk7CisgICAgU1FMaXRlU3RhdGVt
ZW50IHN0YXRlbWVudChtX2RhdGFiYXNlLCAiU0VMRUNUIGlzUHJldmFsZW50LCBoYWRVc2VySW50
ZXJhY3Rpb24gRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/
Iik7CiAgICAgaWYgKHN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCi0gICAgICAgIHx8
IHN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX1JPVykgewotICAgICAgICByZXR1cm4gQ29va2ll
VHJlYXRtZW50UmVzdWx0OjpBbGxvdzsKKyAgICAgICAgfHwgc3RhdGVtZW50LmJpbmRUZXh0KDEs
IGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpjb29raWVUcmVhdG1lbnRGb3JPcmlnaW4gZmFpbGVkIHRvIGJpbmQsIGVy
cm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygp
KTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogICAgIAorICAgIGlmIChz
dGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ST1cpCisgICAgICAgIHJldHVybiBDb29raWVUcmVh
dG1lbnRSZXN1bHQ6OkFsbG93OworICAgIAogICAgIGJvb2wgaXNQcmV2YWxlbnQgPSAhIXN0YXRl
bWVudC5nZXRDb2x1bW5JbnQoMCk7CiAgICAgaWYgKCFpc1ByZXZhbGVudCkKICAgICAgICAgcmV0
dXJuIENvb2tpZVRyZWF0bWVudFJlc3VsdDo6QWxsb3c7CkBAIC0xMzA3LDEwICsxMzYzLDEyIEBA
IFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6aGFzVXNlckdyYW50ZWRTCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4o
KSk7CiAKLSAgICBhdXRvIGZpcnN0UGFydHlQcmltYXJ5RG9tYWluSUQgPSBkb21haW5JRChmaXJz
dFBhcnR5RG9tYWluKTsKKyAgICBhdXRvIGZpcnN0UGFydHlQcmltYXJ5RG9tYWluSUQgPSBkb21h
aW5JRChmaXJzdFBhcnR5RG9tYWluKS52YWx1ZSgpOwogCi0gICAgU1FMaXRlU3RhdGVtZW50IHN0
YXRlbWVudChtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgQ09VTlQoKikgRlJPTSBTdG9y
YWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMgV0hFUkUgZG9tYWluSUQgPSAiLCBTdHJpbmc6
Om51bWJlcihyZXF1ZXN0aW5nRG9tYWluSUQpLCAiIEFORCB0b3BMZXZlbERvbWFpbklEID0gIiwg
U3RyaW5nOjpudW1iZXIoZmlyc3RQYXJ0eVByaW1hcnlEb21haW5JRCkpKTsKKyAgICBTUUxpdGVT
dGF0ZW1lbnQgc3RhdGVtZW50KG1fZGF0YWJhc2UsICJTRUxFQ1QgQ09VTlQoKikgRlJPTSBTdG9y
YWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMgV0hFUkUgZG9tYWluSUQgPSA/IEFORCB0b3BM
ZXZlbERvbWFpbklEID0gPyIpOwogICAgIGlmIChzdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElU
RV9PSworICAgICAgICB8fCBzdGF0ZW1lbnQuYmluZEludCgxLCByZXF1ZXN0aW5nRG9tYWluSUQp
ICE9IFNRTElURV9PSworICAgICAgICB8fCBzdGF0ZW1lbnQuYmluZEludCgyLCBmaXJzdFBhcnR5
UHJpbWFyeURvbWFpbklEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc3RhdGVtZW50LnN0ZXAo
KSAhPSBTUUxJVEVfUk9XKQogICAgICAgICByZXR1cm4gU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1No
b3duOjpObzsKIApAQCAtMTQzOCw3ICsxNDk2LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJFeHBpcmVkVXNlckludGVyYWN0aW9ucygpCiAKICAgICBp
ZiAoY2xlYXJFeHBpcmVkSW50ZXJhY3Rpb24uc3RlcCgpICE9IFNRTElURV9ET05FCiAgICAgICAg
IHx8IHJlbW92ZVN0b3JhZ2VBY2Nlc3Muc3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpsb2dVc2VySW50ZXJhY3Rpb24gZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1l
c3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyRXhwaXJlZFVzZXJJbnRlcmFjdGlvbnMgc3RhdGVtZW50
KHMpIGZhaWxlZCB0byBzdGVwLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9k
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgIH0KIH0KQEAgLTE0NTcsMTQgKzE1MTUsMjQgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJHcmFuZGZhdGhlcmluZyhWZWN0b3I8dW5zaWduZWQ+JiYK
ICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGlmIChjbGVhckdyYW5kZmF0aGVyaW5nU3RhdGVt
ZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihO
ZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJH
cmFuZGZhdGhlcmluZyBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIs
IHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6Y2xlYXJHcmFuZGZhdGhlcmluZyBmYWlsZWQgdG8gYmluZCwgZXJyb3Ig
bWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiB9CiAKLWJvb2wgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9y
KGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmIHJlc291cmNlU3RhdGlzdGljLCBib29sIHNob3Vs
ZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpIGNvbnN0Citib29sIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpoYXNIYWRVbmV4cGlyZWRSZWNlbnRVc2VySW50ZXJhY3Rpb24oY29u
c3QgUHJldmFsZW50RG9tYWluRGF0YSYgcmVzb3VyY2VTdGF0aXN0aWMsIE9wZXJhdGluZ0RhdGVz
V2luZG93IG9wZXJhdGluZ0RhdGVzV2luZG93KQogewotICAgIHJldHVybiAhcmVzb3VyY2VTdGF0
aXN0aWMuaGFkVXNlckludGVyYWN0aW9uICYmICghc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmlu
ZyB8fCAhcmVzb3VyY2VTdGF0aXN0aWMuZ3JhbmRmYXRoZXJlZCk7CisgICAgaWYgKHJlc291cmNl
U3RhdGlzdGljLmhhZFVzZXJJbnRlcmFjdGlvbiAmJiBoYXNTdGF0aXN0aWNzRXhwaXJlZChyZXNv
dXJjZVN0YXRpc3RpYy5tb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZSwgb3BlcmF0aW5nRGF0
ZXNXaW5kb3cpKSB7CisgICAgICAgIGNsZWFyVXNlckludGVyYWN0aW9uKHJlc291cmNlU3RhdGlz
dGljLnJlZ2lzdHJhYmxlRG9tYWluKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwor
ICAgIHJldHVybiByZXNvdXJjZVN0YXRpc3RpYy5oYWRVc2VySW50ZXJhY3Rpb247Cit9CisKK2Jv
b2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNob3VsZFJlbW92ZUFsbFdl
YnNpdGVEYXRhRm9yKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmIHJlc291cmNlU3RhdGlzdGlj
LCBib29sIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpCit7CisgICAgcmV0dXJuICFoYXNI
YWRVbmV4cGlyZWRSZWNlbnRVc2VySW50ZXJhY3Rpb24ocmVzb3VyY2VTdGF0aXN0aWMsIE9wZXJh
dGluZ0RhdGVzV2luZG93OjpMb25nKSAmJiAoIXNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcg
fHwgIXJlc291cmNlU3RhdGlzdGljLmdyYW5kZmF0aGVyZWQpOwogfQogCiBib29sIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRSZW1vdmVBbGxCdXRDb29raWVzRm9y
KGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmIHJlc291cmNlU3RhdGlzdGljLCBib29sIHNob3Vs
ZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpIGNvbnN0CkBAIC0xNDkyLDkgKzE1NjAsOSBAQCBWZWN0
b3I8c3RkOjpwYWlyPFJlZ2lzdHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlPj4gUmVz
b3VyY2VMb2FkU3RhdGlzdGljcwogICAgIFZlY3Rvcjx1bnNpZ25lZD4gZG9tYWluSURzVG9DbGVh
ckdyYW5kZmF0aGVyaW5nOwogICAgIGZvciAoYXV0byYgc3RhdGlzdGljIDogcHJldmFsZW50RG9t
YWlucykgewogICAgICAgICBpZiAoc2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURhdGFGb3Ioc3RhdGlz
dGljLCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSkKLSAgICAgICAgICAgIGRvbWFpbnNU
b1JlbW92ZVdlYnNpdGVEYXRhRm9yLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihzdGF0aXN0aWMucmVn
aXN0ZXJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlOjpBbGwpKTsKKyAgICAgICAgICAg
IGRvbWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihzdGF0
aXN0aWMucmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU6OkFsbCkpOwogICAg
ICAgICBlbHNlIGlmIChzaG91bGRSZW1vdmVBbGxCdXRDb29raWVzRm9yKHN0YXRpc3RpYywgc2hv
dWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZykpCi0gICAgICAgICAgICBkb21haW5zVG9SZW1vdmVX
ZWJzaXRlRGF0YUZvci5hcHBlbmQoc3RkOjptYWtlX3BhaXIoc3RhdGlzdGljLnJlZ2lzdGVyYWJs
ZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZTo6QWxsQnV0Q29va2llcykpOworICAgICAgICAg
ICAgZG9tYWluc1RvUmVtb3ZlV2Vic2l0ZURhdGFGb3IuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKHN0
YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZTo6QWxsQnV0Q29v
a2llcykpOwogCiAgICAgICAgIGlmIChzaG91bGRDbGVhckdyYW5kZmF0aGVyaW5nICYmIHN0YXRp
c3RpYy5ncmFuZGZhdGhlcmVkKQogICAgICAgICAgICAgZG9tYWluSURzVG9DbGVhckdyYW5kZmF0
aGVyaW5nLmFwcGVuZChzdGF0aXN0aWMuZG9tYWluSUQpOwpAQCAtMTUyNCw4ICsxNTkyLDkgQEAg
dm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJ1bmVTdGF0aXN0aWNz
SWZOZWVkZWQoKQogICAgIHNpemVfdCBjb3VudExlZnRUb1BydW5lID0gY291bnQgLSBwYXJhbWV0
ZXJzKCkucHJ1bmVFbnRyaWVzRG93blRvOwogICAgIEFTU0VSVChjb3VudExlZnRUb1BydW5lKTsK
IAotICAgIFNRTGl0ZVN0YXRlbWVudCByZWNvcmRzVG9QcnVuZShtX2RhdGFiYXNlLCBtYWtlU3Ry
aW5nKCJTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgT1JERVIgQlkgaGFkVXNl
ckludGVyYWN0aW9uLCBpc1ByZXZhbGVudCwgbGFzdFNlZW4gREVTQyBMSU1JVCAiLCBTdHJpbmc6
Om51bWJlcihjb3VudExlZnRUb1BydW5lKSkpOwotICAgIGlmIChyZWNvcmRzVG9QcnVuZS5wcmVw
YXJlKCkgIT0gU1FMSVRFX09LKSB7CisgICAgU1FMaXRlU3RhdGVtZW50IHJlY29yZHNUb1BydW5l
KG1fZGF0YWJhc2UsICJTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgT1JERVIg
QlkgaGFkVXNlckludGVyYWN0aW9uLCBpc1ByZXZhbGVudCwgbGFzdFNlZW4gTElNSVQgPyIpOwor
ICAgIGlmIChyZWNvcmRzVG9QcnVuZS5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8
IHJlY29yZHNUb1BydW5lLmJpbmRJbnQoMSwgY291bnRMZWZ0VG9QcnVuZSkgIT0gU1FMSVRFX09L
KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcnVuZVN0YXRpc3RpY3NJZk5lZWRlZCBmYWlsZWQs
IGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1z
ZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKQEAg
LTE1NDAsNyArMTYwOSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OnBydW5lU3RhdGlzdGljc0lmTmVlZGVkKCkKICAgICBTUUxpdGVTdGF0ZW1lbnQgcHJ1bmVD
b21tYW5kKG1fZGF0YWJhc2UsIG1ha2VTdHJpbmcoIkRFTEVURSBmcm9tIE9ic2VydmVkRG9tYWlu
cyBXSEVSRSBkb21haW5JRCBJTiAoIiwgbGlzdFRvUHJ1bmUsICIpIikpOwogICAgIGlmIChwcnVu
ZUNvbW1hbmQucHJlcGFyZSgpICE9IFNRTElURV9PSwogICAgICAgICB8fCBwcnVuZUNvbW1hbmQu
c3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdv
cmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcnVuZVN0YXRp
c3RpY3NJZk5lZWRlZCBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBt
X2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZf
QUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OnBydW5lU3RhdGlzdGljc0lmTmVlZGVkIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtw
dWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE1NTMsNyArMTYy
Miw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnVwZGF0ZUxh
c3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluCiAgICAgaWYgKG1fdXBkYXRlTGFzdFNlZW5T
dGF0ZW1lbnQuYmluZERvdWJsZSgxLCBsYXN0U2Vlbi5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVl
KCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX3VwZGF0ZUxhc3RTZWVuU3RhdGVtZW50LmJp
bmRUZXh0KDIsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fdXBk
YXRlTGFzdFNlZW5TdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjp1cGRhdGVMYXN0U2VlbiBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTog
JXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6dXBkYXRlTGFzdFNlZW4gZmFpbGVkIHRvIGJpbmQs
IGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1z
ZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZS5oCmluZGV4IDBmYjI0YWQwNjcwNDVjOWFkMzE0ZjIzY2ZiNDQ0MGQ4YWY4NDVmZWMuLmYxZDU2
NTVkZWViY2RiMDQ3Y2RkOTZkMmU5MzU2MzRjZWFjMDFkM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCkBAIC01MSw3ICs1MSw3IEBA
IGNsYXNzIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTsKIC8vIFRoaXMgaXMgYWx3
YXlzIGNvbnN0cnVjdGVkIC8gdXNlZCAvIGRlc3Ryb3llZCBvbiB0aGUgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlJ3Mgc3RhdGlzdGljcyBxdWV1ZS4KIGNsYXNzIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlIGZpbmFsIDogcHVibGljIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZSB7CiBwdWJsaWM6Ci0gICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmUoV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlJiwgV29ya1F1ZXVlJiwgU2hvdWxkSW5j
bHVkZUxvY2FsaG9zdCwgY29uc3QgU3RyaW5nJiBzdG9yYWdlRGlyZWN0b3J5UGF0aCk7CisgICAg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUoV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlJiwgV29ya1F1ZXVlJiwgU2hvdWxkSW5jbHVkZUxvY2FsaG9zdCwgY29uc3QgU3Ry
aW5nJiBzdG9yYWdlRGlyZWN0b3J5UGF0aCwgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgdm9pZCBw
b3B1bGF0ZUZyb21NZW1vcnlTdG9yZShjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5
U3RvcmUmKTsKIApAQCAtMTA1LDExICsxMDUsMTIgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TGFz
dFNlZW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBTZWNvbmRzKSBvdmVycmlkZTsKIAogcHJp
dmF0ZToKKyAgICB2b2lkIGNsZWFyRGF0YWJhc2VDb250ZW50cygpOwogICAgIGJvb2wgaW5zZXJ0
T2JzZXJ2ZWREb21haW4oY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwogICAgIHZvaWQg
aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwcyhjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJik7
CiAgICAgYm9vbCBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAoV2ViQ29yZTo6U1FMaXRlU3RhdGVt
ZW50JiwgdW5zaWduZWQgZG9tYWluSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFt
ZURvbWFpbik7Ci0gICAgYm9vbCByZWxhdGlvbnNoaXBFeGlzdHMoV2ViQ29yZTo6U1FMaXRlU3Rh
dGVtZW50JiwgdW5zaWduZWQgZmlyc3REb21haW5JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHNlY29uZERvbWFpbikgY29uc3Q7Ci0gICAgdW5zaWduZWQgZG9tYWluSUQoY29uc3QgUmVnaXN0
cmFibGVEb21haW4mKSBjb25zdDsKKyAgICBib29sIHJlbGF0aW9uc2hpcEV4aXN0cyhXZWJDb3Jl
OjpTUUxpdGVTdGF0ZW1lbnQmLCBPcHRpb25hbDx1bnNpZ25lZD4gZmlyc3REb21haW5JRCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHNlY29uZERvbWFpbikgY29uc3Q7CisgICAgT3B0aW9uYWw8
dW5zaWduZWQ+IGRvbWFpbklEKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJikgY29uc3Q7CiAjaWZu
ZGVmIE5ERUJVRwogICAgIGJvb2wgY29uZmlybURvbWFpbkRvZXNOb3RFeGlzdChjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYpIGNvbnN0OwogI2VuZGlmCkBAIC0xMjAsMTIgKzEyMSwxMyBAQCBwcml2
YXRlOgogCiAgICAgc3RydWN0IFByZXZhbGVudERvbWFpbkRhdGEgewogICAgICAgICB1bnNpZ25l
ZCBkb21haW5JRDsKLSAgICAgICAgUmVnaXN0cmFibGVEb21haW4gcmVnaXN0ZXJhYmxlRG9tYWlu
OworICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWdpc3RyYWJsZURvbWFpbjsKICAgICAgICAg
V2FsbFRpbWUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWU7CiAgICAgICAgIGJvb2wgaGFk
VXNlckludGVyYWN0aW9uOwogICAgICAgICBib29sIGdyYW5kZmF0aGVyZWQ7CiAgICAgfTsKICAg
ICBWZWN0b3I8UHJldmFsZW50RG9tYWluRGF0YT4gcHJldmFsZW50RG9tYWlucygpIGNvbnN0Owor
ICAgIGJvb2wgaGFzSGFkVW5leHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9uKGNvbnN0IFByZXZh
bGVudERvbWFpbkRhdGEmLCBPcGVyYXRpbmdEYXRlc1dpbmRvdyk7CiAgICAgVmVjdG9yPHVuc2ln
bmVkPiBmaW5kRXhwaXJlZFVzZXJJbnRlcmFjdGlvbnMoKSBjb25zdDsKICAgICB2b2lkIGNsZWFy
RXhwaXJlZFVzZXJJbnRlcmFjdGlvbnMoKTsKICAgICB2b2lkIGNsZWFyR3JhbmRmYXRoZXJpbmco
VmVjdG9yPHVuc2lnbmVkPiYmKTsKQEAgLTEzNCw3ICsxMzYsNyBAQCBwcml2YXRlOgogCiAgICAg
dm9pZCByZWNsYXNzaWZ5UmVzb3VyY2VzKCk7CiAgICAgc3RydWN0IE5vdFZlcnlQcmV2YWxlbnRS
ZXNvdXJjZXMgewotICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWdpc3RlcmFibGVEb21haW47
CisgICAgICAgIFJlZ2lzdHJhYmxlRG9tYWluIHJlZ2lzdHJhYmxlRG9tYWluOwogICAgICAgICBS
ZXNvdXJjZUxvYWRQcmV2YWxlbmNlIHByZXZhbGVuY2U7CiAgICAgICAgIHVuc2lnbmVkIHN1YnJl
c291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnNDb3VudDsKICAgICAgICAgdW5zaWduZWQgc3VicmVz
b3VyY2VVbmlxdWVSZWRpcmVjdHNUb0NvdW50OwpAQCAtMTU4LDcgKzE2MCw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBwcnVuZVN0YXRpc3RpY3NJZk5lZWRlZCgpIG92ZXJyaWRlOwogICAgIGVudW0g
Y2xhc3MgQWRkZWRSZWNvcmQgeyBObywgWWVzIH07CiAgICAgc3RkOjpwYWlyPEFkZGVkUmVjb3Jk
LCB1bnNpZ25lZD4gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4o
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mKTsKLSAgICBib29sIHNob3VsZFJlbW92ZUFsbFdlYnNp
dGVEYXRhRm9yKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmLCBib29sIHNob3VsZENoZWNrRm9y
R3JhbmRmYXRoZXJpbmcpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkUmVtb3ZlQWxsV2Vic2l0ZURh
dGFGb3IoY29uc3QgUHJldmFsZW50RG9tYWluRGF0YSYsIGJvb2wgc2hvdWxkQ2hlY2tGb3JHcmFu
ZGZhdGhlcmluZyk7CiAgICAgYm9vbCBzaG91bGRSZW1vdmVBbGxCdXRDb29raWVzRm9yKGNvbnN0
IFByZXZhbGVudERvbWFpbkRhdGEmLCBib29sIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcp
IGNvbnN0OwogICAgIFZlY3RvcjxzdGQ6OnBhaXI8UmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVE
YXRhVG9SZW1vdmU+PiByZWdpc3RyYWJsZURvbWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yKCkg
b3ZlcnJpZGU7CiAgICAgYm9vbCBpc0RhdGFiYXNlU3RvcmUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biB0cnVlOyB9CkBAIC0xOTgsNiArMjAwLDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpTUUxp
dGVTdGF0ZW1lbnQgbV91cGRhdGVHcmFuZGZhdGhlcmVkU3RhdGVtZW50OwogICAgIG11dGFibGUg
V2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50IG1faXNHcmFuZGZhdGhlcmVkU3RhdGVtZW50OwogICAg
IG11dGFibGUgV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50IG1fZmluZEV4cGlyZWRVc2VySW50ZXJh
Y3Rpb25TdGF0ZW1lbnQ7CisgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5jcHAKaW5kZXggNGFiMzQ1NzNkYTM0MmZjZjdjNjg4NzcwM2I1M2QwZWU2MzM0
MDNiMS4uMmJiZWRjYjk2MzdmZTM2MWZjMzA4ZWNlNDY5Njk5NzQ0MTlmYjY4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTE1NiwxMCAr
MTU2LDEwIEBAIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6V2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlKE5ldHdvcmtTZXNzaW9uJiBuCiAgICAgLCBtX2RhaWx5VGFza3NUaW1l
cihSdW5Mb29wOjptYWluKCksIHRoaXMsICZXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OnBlcmZvcm1EYWlseVRhc2tzKQogewogICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKLSAgICAKLSAgICBwb3N0VGFzayhbdGhpcywgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rp
cmVjdG9yeSA9IHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkuaXNvbGF0ZWRDb3B5KCks
IHNob3VsZEluY2x1ZGVMb2NhbGhvc3RdIHsKLSAgICAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaXNJVFBEYXRhYmFzZUVuYWJsZWQoKSkgewotICAgICAg
ICAgICAgbV9zdGF0aXN0aWNzU3RvcmUgPSBtYWtlVW5pcXVlPFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlPigqdGhpcywgbV9zdGF0aXN0aWNzUXVldWUsIHNob3VsZEluY2x1ZGVM
b2NhbGhvc3QsIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpOworCisgICAgcG9zdFRh
c2soW3RoaXMsIGRhdGFiYXNlRW5hYmxlZCA9IG5ldHdvcmtTZXNzaW9uLm5ldHdvcmtQcm9jZXNz
KCkuaXNJVFBEYXRhYmFzZUVuYWJsZWQoKSwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9y
eSA9IHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkuaXNvbGF0ZWRDb3B5KCksIHNob3Vs
ZEluY2x1ZGVMb2NhbGhvc3QsIHNlc3Npb25JRCA9IG5ldHdvcmtTZXNzaW9uLnNlc3Npb25JRCgp
XSB7CisgICAgICAgIGlmIChkYXRhYmFzZUVuYWJsZWQpIHsKKyAgICAgICAgICAgIG1fc3RhdGlz
dGljc1N0b3JlID0gbWFrZVVuaXF1ZTxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZT4oKnRoaXMsIG1fc3RhdGlzdGljc1F1ZXVlLCBzaG91bGRJbmNsdWRlTG9jYWxob3N0LCByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBzZXNzaW9uSUQpOwogCiAgICAgICAgICAgICBh
dXRvIG1lbW9yeVN0b3JlID0gbWFrZVVuaXF1ZTxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5
U3RvcmU+KCp0aGlzLCBtX3N0YXRpc3RpY3NRdWV1ZSwgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCk7
CiAgICAgICAgICAgICBhdXRvIHBlcnNpc3RlbnRTdG9yZSA9IG1ha2VVbmlxdWU8UmVzb3VyY2VM
b2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlPigqbWVtb3J5U3RvcmUsIG1fc3RhdGlzdGlj
c1F1ZXVlLCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMDljODBiY2NkYjgx
ZjNiOWI2MzZlZDc1NTBmYTMxOTc2YWYwODI0Yy4uZTIxODczN2YwOTQ3ZDVkMWI1YWM2NWI4MjAw
MmZlMjkxNjhhZGExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAKQEAgLTMxNCw3ICszMTQsOSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpp
bml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
JgogICAgICAgICBtX2RlZmF1bHROZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBuZXdUZXN0aW5nU2Vz
c2lvbihQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKICAgICB9CiAKLSAgICBX
ZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldElzSVRQ
RGF0YWJhc2VFbmFibGVkKHBhcmFtZXRlcnMuc2hvdWxkRW5hYmxlSVRQRGF0YWJhc2UpOworI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgbV9pc0lUUERhdGFiYXNlRW5h
YmxlZCA9IHBhcmFtZXRlcnMuc2hvdWxkRW5hYmxlSVRQRGF0YWJhc2U7CisjZW5kaWYKIAogICAg
IFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0QWRD
bGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZChwYXJhbWV0ZXJzLmVuYWJsZUFkQ2xpY2tB
dHRyaWJ1dGlvbkRlYnVnTW9kZSk7CiAKQEAgLTY4NCw2ICs2ODYsMTcgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6c2V0R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFJlZ2lzdHJhYmwKICAgICB9CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFVzZUlUUERh
dGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSkKK3sKKyAgICBpZiAo
YXV0byogbmV0d29ya1Nlc3Npb24gPSB0aGlzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7
CisgICAgICAgIGlmIChtX2lzSVRQRGF0YWJhc2VFbmFibGVkICE9IHZhbHVlKSB7CisgICAgICAg
ICAgICBtX2lzSVRQRGF0YWJhc2VFbmFibGVkID0gdmFsdWU7CisgICAgICAgICAgICBuZXR3b3Jr
U2Vzc2lvbi0+cmVjcmVhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNTdG9yZSgpOworICAgICAgICB9
CisgICAgfSBlbHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCiB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpzZXRQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Np
b24gPSB0aGlzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggM2Q5MTM2NTAyYjA2MjM1YTFh
OTM4NmJmZWYxNjYwMmFlNDc1YmMzOS4uYmY1ZGI3ZmZiM2ZhMWZhMzk2N2FlNjQ1M2YxNmI3ZmM0
YWJkNTFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaApAQCAtMjIzLDYgKzIyMyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGlzUmVnaXN0ZXJlZEFz
U3ViRnJhbWVVbmRlcihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25z
dCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAg
IHZvaWQgaXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBTdWJSZXNvdXJjZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vz
c2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0VXNlSVRQRGF0YWJhc2Uo
UEFMOjpTZXNzaW9uSUQsIGJvb2wgdmFsdWUpOwogICAgIHZvaWQgc2V0TWF4U3RhdGlzdGljc0Vu
dHJpZXMoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IG1heGltdW1FbnRyeUNvdW50LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2UoUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CkBAIC0yNjMsNiArMjY0LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q3Jv
c3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmcm9tRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgdG9Eb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZXNl
dENyb3NzU2l0ZUxvYWRzV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhQQUw6OlNlc3Npb25J
RCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGhhc0lzb2xhdGVkU2Vz
c2lvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBjb25zdDsKKyAgICBib29sIGlzSVRQRGF0
YWJhc2VFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0lUUERhdGFiYXNlRW5hYmxlZDsgfQog
I2VuZGlmCiAKICAgICB1c2luZyBDYWNoZVN0b3JhZ2VSb290UGF0aENhbGxiYWNrID0gQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTdHJpbmcmJik+OwpAQCAtNTM2LDYgKzUzOCwxMCBAQCBwcml2YXRl
OgogICAgIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlcj4gbV9uZXR3
b3JrSFRUUFNVcGdyYWRlQ2hlY2tlcjsKICNlbmRpZgogCisjaWYgRU5BQkxFKFJFU09VUkNFX0xP
QURfU1RBVElTVElDUykKKyAgICBib29sIG1faXNJVFBEYXRhYmFzZUVuYWJsZWQgeyBmYWxzZSB9
OworI2VuZGlmCisgICAgCiAgICAgY2xhc3MgU3RvcmFnZVF1b3RhTWFuYWdlcnMgewogICAgIHB1
YmxpYzoKICAgICAgICAgdWludDY0X3QgZGVmYXVsdFF1b3RhKGNvbnN0IFdlYkNvcmU6OkNsaWVu
dE9yaWdpbiYgb3JpZ2luKSBjb25zdCB7IHJldHVybiBvcmlnaW4udG9wT3JpZ2luID09IG9yaWdp
bi5jbGllbnRPcmlnaW4gPyBtX2RlZmF1bHRRdW90YSA6IG1fZGVmYXVsdFRoaXJkUGFydHlRdW90
YTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZTAxMzZkYWQ1YjcwYTg3NGY0OTdkNTNhYjM4OTY5N2Ni
YTA1Y2FiNS4uYzllMWFlYWJjNjk1ZjVmYWZhZjdiN2I0NDRiYTI2NTUwY2M2ZGI5YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluCkBAIC0xMTMsNiArMTEzLDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3Mg
TGVnYWN5UmVjZWl2ZXIgewogICAgIFN1Ym1pdFRlbGVtZXRyeShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpIC0+ICgpIEFzeW5jCiAgICAgU2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNv
dXJjZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFz
eW5jCiAgICAgU2V0R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluLCBib29sIGlzR3JhbmRmYXRoZXJl
ZCkgLT4gKCkgQXN5bmMKKyAgICBTZXRVc2VJVFBEYXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGJvb2wgdmFsdWUpCiAgICAgU2V0R3JhbmRmYXRoZXJpbmdUaW1lKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzKSAtPiAoKSBBc3luYwogICAgIFNldE1heFN0
YXRpc3RpY3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgbWF4aW11
bUVudHJ5Q291bnQpIC0+ICgpIEFzeW5jCiAgICAgU2V0TWluaW11bVRpbWVCZXR3ZWVuRGF0YVJl
Y29yZHNSZW1vdmFsKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzKSAt
PiAoKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uLmNwcAppbmRleCAwNzU1MjgwNDAxMzE1ZjkyMzNlOGE1NmIwNjc4M2M1ODJhYTMyNzM5Li5l
NWZkYWY0N2I5YTk5MTUyODg3NTM4ZmIyODA4MTgxNTY4NmU5ZmE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApAQCAtOTcsOCArOTcsMTIg
QEAgTmV0d29ya1Nlc3Npb246Ok5ldHdvcmtTZXNzaW9uKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3Jr
UHJvY2VzcywgY29uc3QgTmV0d29ya1Nlc3MKICNlbmRpZgogCiAgICAgICAgIG1fY2FjaGUgPSBO
ZXR3b3JrQ2FjaGU6OkNhY2hlOjpvcGVuKG5ldHdvcmtQcm9jZXNzLCBuZXR3b3JrQ2FjaGVEaXJl
Y3RvcnksIGNhY2hlT3B0aW9ucywgbV9zZXNzaW9uSUQpOworCiAgICAgICAgIGlmICghbV9jYWNo
ZSkKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmtDYWNoZSwgIkZhaWxlZCB0
byBpbml0aWFsaXplIHRoZSBXZWJLaXQgbmV0d29yayBkaXNrIGNhY2hlIik7CisgICAgICAgIAor
ICAgICAgICBpZiAoIXBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeS5p
c0VtcHR5KCkpCisgICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50
bHkocGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFu
ZGxlKTsKICAgICB9CiAKICAgICBtX2FkQ2xpY2tBdHRyaWJ1dGlvbi0+c2V0UGluZ0xvYWRGdW5j
dGlvbihbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMmJiBsb2FkUGFyYW1ldGVycywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7CkBAIC0xNjUsNiArMTY5LDEyIEBAIHZvaWQg
TmV0d29ya1Nlc3Npb246OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wgZW5h
YmxlKQogICAgICAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldFByZXZhbGVudFJlc291
cmNlRm9yRGVidWdNb2RlKG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVudFJl
c291cmNlLCBbXSB7IH0pOwogfQogCit2b2lkIE5ldHdvcmtTZXNzaW9uOjpyZWNyZWF0ZVJlc291
cmNlTG9hZFN0YXRpc3RpY1N0b3JlKCkKK3sKKyAgICBkZXN0cm95UmVzb3VyY2VMb2FkU3RhdGlz
dGljcygpOworICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6Y3JlYXRlKCp0aGlzLCBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJl
Y3RvcnksIG1fc2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcyk7
Cit9CisKIHZvaWQgTmV0d29ya1Nlc3Npb246Om5vdGlmeVJlc291cmNlTG9hZFN0YXRpc3RpY3NQ
cm9jZXNzZWQoKQogewogICAgIG1fbmV0d29ya1Byb2Nlc3MtPnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6Ok5vdGlmeVJlc291cmNl
TG9hZFN0YXRpc3RpY3NQcm9jZXNzZWQoKSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKaW5kZXggMzE4ZWNlNGE0NGIyNGM0NWYxZDcwNjlkOTg2
YTMzMjJhOWE1MDI5Yi4uNTNlOWZmN2RjZjU4ZjZjY2JmMjFmNDMyODQzODYzOTcxZTJkMjBiNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAt
ODQsNiArODQsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKICAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUqIHJlc291cmNlTG9hZFN0YXRp
c3RpY3MoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MuZ2V0KCk7IH0K
ICAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wpOworICAgIHZv
aWQgcmVjcmVhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNTdG9yZSgpOwogICAgIHZvaWQgbm90aWZ5
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Byb2Nlc3NlZCgpOwogICAgIHZvaWQgZGVsZXRlV2Vic2l0
ZURhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIFZl
Y3RvcjxzdGQ6OnBhaXI8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9S
ZW1vdmU+PiYmLCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Y29uc3QgSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mKT4mJik7CiAgICAgdm9p
ZCByZWdpc3RyYWJsZURvbWFpbnNXaXRoV2Vic2l0ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRh
VHlwZT4sIGJvb2wgc2hvdWxkTm90aWZ5UGFnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNo
U2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiYmKT4mJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAppbmRl
eCA1OGNkNDNmMThlYjdjMWRlYWQwZTFjNzY2NTI5M2Q1ZDkzNTBhNDMyLi5mMjk2YjZiMmQ4YzEz
Y2E5M2U1YzM5ZjZmZWEzMDdkZmI5NzFkZWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKQEAgLTI2OCw2ICsy
NjgsMTMgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVk
KFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmUKICNlbmRpZgogfQogCit2b2lkIFdLV2Vi
c2l0ZURhdGFTdG9yZVNldFVzZUlUUERhdGFiYXNlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRh
U3RvcmVSZWYsIGJvb2wgdmFsdWUpCit7CisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKKyAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRVc2VJVFBEYXRhYmFz
ZSh2YWx1ZSk7CisjZW5kaWYKK30KKwogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0
aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRh
U3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIHRvcEZyYW1lSG9zdCkKIHsK
ICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaAppbmRleCA3YTNk
YTQ1NTAwYjIwMTliMmNlNTkxOGM0YTgwMjExOGExNDNkZDdiLi5iODM1N2NjMjcwNGZlZGViZDU1
OTVkMDMyYzBlOTNlNGE1NzBlMWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaApAQCAtNzEsNiArNzEsNyBAQCBXS19F
WFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24oV0tXZWJzaXRlRGF0YQogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0
U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJl
ZiwgV0tTdHJpbmdSZWYgaG9zdCwgYm9vbCB2YWx1ZSk7CiB0eXBlZGVmIHZvaWQgKCpXS1dlYnNp
dGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkRnVuY3Rpb24pKGJvb2wgaXNHcmFu
ZGZhdGhlcmVkLCB2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwogV0tfRVhQT1JUIHZvaWQgV0tXZWJz
aXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1dlYnNpdGVEYXRhU3RvcmVS
ZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCB2b2lkKiBjb250ZXh0LCBXS1dlYnNp
dGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkRnVuY3Rpb24gY2FsbGJhY2spOwor
V0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0VXNlSVRQRGF0YWJhc2UoV0tXZWJz
aXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgYm9vbCB2YWx1ZSk7CiBXS19FWFBPUlQgdm9p
ZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3Jp
Z2luKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3Qs
IFdLU3RyaW5nUmVmIHRvcEZyYW1lSG9zdCk7CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRh
U3RvcmVTZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKFdLV2Vic2l0
ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVm
IHRvcEZyYW1lSG9zdCk7CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0
aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBk
YXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIGhvc3RSZWRpcmVjdGVk
VG8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggZGM1NDg4YzQ3MzY4YjgwZGVkZWVlZWM4OGZkZDNjYWUy
ODQxNTIyZC4uYjVmNjlhZmZmMWJhMDI3N2FiMjdhOWRiZjZkNTFhODQ2YWFhMzVkNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuY3BwCkBAIC03NzQsNiArNzc0LDE0IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6
c2V0R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzCiAg
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0R3JhbmRm
YXRoZXJlZChzZXNzaW9uSUQsIHJlc291cmNlRG9tYWluLCBpc0dyYW5kZmF0aGVyZWQpLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6
c2V0VXNlSVRQRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlKQor
eworICAgIGlmICghY2FuU2VuZE1lc3NhZ2UoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAg
IHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRVc2VJVFBEYXRhYmFzZShzZXNzaW9u
SUQsIHZhbHVlKSwgMCk7Cit9CisKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVxdWVzdFN0
b3JhZ2VBY2Nlc3NDb25maXJtKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlELCBGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWlu
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byogcGFnZSA9
IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCBiYjBlMmJm
MjNkOGZiNWEwMmM1YzQ0OTk2YTljZDg1YTQ3YWM0ZjVjLi41ZWVkYjcwNzU5OTg2YzJmNWRiYzY2
ODkyNDFlYWY3NGJhMDhlYThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMTE2LDYgKzExNiw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKFBBTDo6U2Vzc2lvbklE
LCBPcHRpb25hbDxTZWNvbmRzPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIHNldENhY2hlTWF4QWdlQ2FwKFBBTDo6U2Vzc2lvbklELCBTZWNvbmRzLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Np
b25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFVzZUlUUERhdGFiYXNlKFBB
TDo6U2Vzc2lvbklELCBib29sIHZhbHVlKTsKICAgICB2b2lkIHNldE5vdGlmeVBhZ2VzV2hlbkRh
dGFSZWNvcmRzV2VyZVNjYW5uZWQoUEFMOjpTZXNzaW9uSUQsIGJvb2wsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRJc1J1bm5pbmdSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzVGVzdChQQUw6OlNlc3Npb25JRCwgYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIHNldE5vdGlmeVBhZ2VzV2hlblRlbGVtZXRyeVdhc0NhcHR1cmVkKFBBTDo6
U2Vzc2lvbklELCBib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmNwcAppbmRleCBkNTA5YTZmNzM4OWZjYjRkNmJkMjczM2ViODA3NWYzYzM2N2QyYzg0Li4wMzJl
YmNiNmJlOTQzMDNlMjQ4ZjEyY2MwZjg0Y2ZjODU4MTUyMzAwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApA
QCAtMTY0Nyw2ICsxNjQ3LDE0IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0R3JhbmRmYXRo
ZXJlZChjb25zdCBVUkwmIHVybCwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIENvCiAgICAgfQogfQog
Cit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldFVzZUlUUERhdGFiYXNlKGJvb2wgdmFsdWUpCit7
CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGZvciAoYXV0byYgcHJvY2Vz
c1Bvb2wgOiBwcm9jZXNzUG9vbHMoKSkKKyAgICAgICAgcHJvY2Vzc1Bvb2wtPmVuc3VyZU5ldHdv
cmtQcm9jZXNzKCkuc2V0VXNlSVRQRGF0YWJhc2UobV9zZXNzaW9uSUQsIHZhbHVlKTsKK30KKwog
dm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9u
Rm9yVGVzdGluZyhjb25zdCBVUkwmIGZyb21VUkwsIGNvbnN0IFVSTCYgdG9VUkwsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDBhYmYwYzNmM2Q4NDViYWU4MTFiZTIz
NTFhODhlYjI0NmI4ZGQ1NDkuLmZjMTI5MWYxZmZmNDllMGEyNDQxYzQ5ZjEzY2M1YmRjMjdiYjc0
MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTE1OSw2ICsxNTksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
Y2hlZHVsZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3NpbmcoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHN1Ym1pdFRlbGVtZXRyeSgpOwogICAgIHZvaWQgc2V0
R3JhbmRmYXRoZXJlZChjb25zdCBVUkwmLCBib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOworICAgIHZvaWQgc2V0VXNlSVRQRGF0YWJhc2UoYm9vbCk7CiAgICAgdm9pZCBzZXRHcmFu
ZGZhdGhlcmluZ1RpbWUoU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAg
ICB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFVSTCYsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVT
Y2FubmVkKGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWM4NmRiOTk0ZDc2OTYyYjg1
MDZiNjMxYzVhNDgzNjBkMjA1NWI0Zi4uZGY5OThlY2IxNGM1YWU2OGRiZTZhMDZmY2QyM2QwZTVi
MmY0M2RmNSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTA5LTI2ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9j
aGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBMYXlvdXRUZXN0cyB1c2luZyBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzIFNRTGl0ZSBiYWNrZW5kICgxOTU0MjApIAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1NDIwICAgICAgICAgICAgICAg
ICAgICAgICAgICAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjEzNTUxPiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQnJlbnQgRnVsZ2hhbS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKKworICAgICAgICBBZGRlZCBpbiBsb2dpYyB0byBzZW5kIGEgbWVzc2FnZSBmcm9tIHRo
ZSBVSVByb2Nlc3MgdG8gdGhlIE5ldHdvcmsgICAgICAKKyAgICAgICAgUHJvY2VzcyB3aGljaCB3
aWxsIGluaXRhbGl6ZSB0aGUgSVRQIERhdGFiYXNlIGJhY2tlbmQgdG8gYWxsb3cgZm9yICAgICAg
CisgICAgICAgIGxheW91dCB0ZXN0aW5nLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVz
dFJ1bm5lcjo6c2V0VXNlSVRQRGF0YWJhc2UpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0VXNl
SVRQRGF0YWJhc2UpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
aDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAg
ICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9t
SW5qZWN0ZWRCdW5kbGUpOgorCiAyMDE5LTA5LTI2ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgVGVzdFdlYktpdEFQSS5TT0F1dGhvcml6YXRpb25TdWJGcmFt
ZS5BdXRob3JpemF0aW9uT3B0aW9ucyBpcyBmYWlsaW5nIGNvbnNpc3RlbnRseSBvbiBpT1MgQVBJ
IHRlc3RzIEVXUwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggM2NkOTRiZWRhNDcwNjA0
OWFlMDliYjhiMzEyM2UxOWE2M2M5ZmU2Ni4uOTY3NmYyZWE2NWY0NTI0ZTE5NDE1OTAyNGE2ZWQ2
MjgyNDA1YjBkNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0zMDksNiArMzA5LDcg
QEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIGJvb2xlYW4gaXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKERPTVN0cmluZyBob3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0
aWNzR3JhbmRmYXRoZXJlZChET01TdHJpbmcgaG9zdE5hbWUsIGJvb2xlYW4gdmFsdWUpOwogICAg
IGJvb2xlYW4gaXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChET01TdHJpbmcgaG9zdE5hbWUpOwor
ICAgIHZvaWQgc2V0VXNlSVRQRGF0YWJhc2UoYm9vbGVhbiB2YWx1ZSk7CiAgICAgdm9pZCBzZXRT
dGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKERPTVN0cmluZyBob3N0TmFtZSwg
RE9NU3RyaW5nIHRvcEZyYW1lSG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YnJl
c291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihET01TdHJpbmcgaG9zdE5hbWUsIERPTVN0cmluZyB0
b3BGcmFtZUhvc3ROYW1lKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1
ZVJlZGlyZWN0VG8oRE9NU3RyaW5nIGhvc3ROYW1lLCBET01TdHJpbmcgaG9zdE5hbWVSZWRpcmVj
dGVkVG8pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5jcHAKaW5kZXggYjQ5NWNmYTBkNDJlOTI2ZWU1MTYyMTVmZTNjMDMwYjkxMzBm
ZTNhNy4uZjgxNjI0MmYyZGI0YmYxMDlmZTBiNDg2YzBiYzllYTQ1ZTQ1OTQ5NyAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3Bw
CkBAIC0xNjk0LDcgKzE2OTQsMTUgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzR3Jh
bmRmYXRoZXJlZChKU1N0cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSkKICAgICAKICAgICBX
S0J1bmRsZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigp
LmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCksIG51bGxwdHIp
OwogfQorCit2b2lkIFRlc3RSdW5uZXI6OnNldFVzZUlUUERhdGFiYXNlKGJvb2wgdmFsdWUpCit7
CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lID0gYWRvcHRXSyhXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2V0VXNlSVRQRGF0YWJhc2UiKSk7CisgICAgV0tS
ZXRhaW5QdHI8V0tCb29sZWFuUmVmPiBtZXNzYWdlQm9keSA9IGFkb3B0V0soV0tCb29sZWFuQ3Jl
YXRlKHZhbHVlKSk7CiAgICAgCisgICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKElu
amVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1l
c3NhZ2VCb2R5LmdldCgpLCBudWxscHRyKTsKK30KKwogYm9vbCBUZXN0UnVubmVyOjppc1N0YXRp
c3RpY3NHcmFuZGZhdGhlcmVkKEpTU3RyaW5nUmVmIGhvc3ROYW1lKQogewogICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoIklzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQiKSk7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDJkYTI4
YmJkZDYyNjZiNmI3YmI5MjY0NDk3ZmFjZGVmNjQ0MTM3NzkuLmY0YWQzYTYwZTJlNTc1MGIzYzE2
NTYyNjQ4NDI1NTlhNWRjMzI2M2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC00MTAsNiArNDEwLDcgQEAgcHVibGljOgog
ICAgIGJvb2wgaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKEpTU3RyaW5nUmVmIGhv
c3ROYW1lKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKEpTU3RyaW5nUmVm
IGhvc3ROYW1lLCBib29sIHZhbHVlKTsKICAgICBib29sIGlzU3RhdGlzdGljc0dyYW5kZmF0aGVy
ZWQoSlNTdHJpbmdSZWYgaG9zdE5hbWUpOworICAgIHZvaWQgc2V0VXNlSVRQRGF0YWJhc2UoYm9v
bCB2YWx1ZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3Jp
Z2luKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBKU1N0cmluZ1JlZiB0b3BGcmFtZUhvc3ROYW1lKTsK
ICAgICB2b2lkIHNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oSlNT
dHJpbmdSZWYgaG9zdE5hbWUsIEpTU3RyaW5nUmVmIHRvcEZyYW1lSG9zdE5hbWUpOwogICAgIHZv
aWQgc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhKU1N0cmluZ1JlZiBo
b3N0TmFtZSwgSlNTdHJpbmdSZWYgaG9zdE5hbWVSZWRpcmVjdGVkVG8pOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBkMmExMGNhNjRiNGFiYWJlMWZkYzc4
NGI1Mzg3MzNlYTFiOWQwYmYzLi4yZjViZDk5Mjk2N2Q3M2FmMzJhMGI3ZjRhYjU2Y2U0NmIxNDVm
OTYyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMzM1
MSw2ICszMzUxLDExIEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OmlzU3RhdGlzdGljc0dyYW5kZmF0
aGVyZWQoV0tTdHJpbmdSZWYgaG9zdCkKICAgICByZXR1cm4gY29udGV4dC5yZXN1bHQ7CiB9CiAK
K3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFVzZUlUUERhdGFiYXNlKGJvb2wgdmFsdWUpCit7Cisg
ICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0VXNlSVRQRGF0YWJhc2UoVGVzdENvbnRyb2xsZXI6Ondl
YnNpdGVEYXRhU3RvcmUoKSwgdmFsdWUpOworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRT
dGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKFdLU3RyaW5nUmVmIGhvc3QsIFdL
U3RyaW5nUmVmIHRvcEZyYW1lSG9zdCkKIHsKICAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0
aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRl
RGF0YVN0b3JlKCksIGhvc3QsIHRvcEZyYW1lSG9zdCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgKaW5kZXggYWY1ZTU5OTU2MmQ3NmJlODdhYzU3MmM0NGJjNDI3OTNlN2Vl
MjU0Mi4uNzJlZGFiZThmZjJhOWNlNGYyNmY5NTM0NzY4NGJkODRhNmJjNjE2YiAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMjIyLDYgKzIyMiw3IEBAIHB1Ymxp
YzoKICAgICBib29sIGlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihXS1N0cmluZ1Jl
ZiBob3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1N0cmlu
Z1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSk7CiAgICAgYm9vbCBpc1N0YXRpc3RpY3NHcmFuZGZh
dGhlcmVkKFdLU3RyaW5nUmVmIGhvc3ROYW1lKTsKKyAgICB2b2lkIHNldFVzZUlUUERhdGFiYXNl
KGJvb2wgdmFsdWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFt
ZU9yaWdpbihXS1N0cmluZ1JlZiBob3N0TmFtZSwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0TmFt
ZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lu
KFdLU3RyaW5nUmVmIGhvc3ROYW1lLCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3ROYW1lKTsKICAg
ICB2b2lkIHNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oV0tTdHJpbmdS
ZWYgaG9zdE5hbWUsIFdLU3RyaW5nUmVmIGhvc3ROYW1lUmVkaXJlY3RlZFRvKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggZmQyNTIwMGQ0MDJmMGNmZDMy
MmNiZWJhMThmMDViMDlmNGZjZDFmZS4uMzA2NTBjNDk5MTEzOTNhZGRmMDgxYzdhMTBmMGM0OGUx
ZDM4OTQ0NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlv
bi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAg
LTEyNDEsNiArMTI0MSwxNCBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9u
OjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICBXS1Jl
dGFpblB0cjxXS1R5cGVSZWY+IHJlc3VsdCA9IGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKGlzR3Jh
bmRmYXRoZXJlZCkpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KKworICAgIGlmIChX
S1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0VXNlSVRQRGF0YWJh
c2UiKSkgeworICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLQm9v
bGVhbkdldFR5cGVJRCgpKTsKKworICAgICAgICBXS0Jvb2xlYW5SZWYgdmFsdWUgPSBzdGF0aWNf
Y2FzdDxXS0Jvb2xlYW5SZWY+KG1lc3NhZ2VCb2R5KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6
OnNpbmdsZXRvbigpLnNldFVzZUlUUERhdGFiYXNlKFdLQm9vbGVhbkdldFZhbHVlKHZhbHVlKSk7
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KICAgICAKICAgICBpZiAoV0tTdHJpbmdJ
c0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFN0YXRpc3RpY3NTdWJmcmFtZVVu
ZGVyVG9wRnJhbWVPcmlnaW4iKSkgewogICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2Fn
ZUJvZHkpID09IFdLRGljdGlvbmFyeUdldFR5cGVJRCgpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmYTY5YWU2YTVlYThh
N2JjODc2ZDhhMTEzZjc1MTA3MzA5MTMyOTliLi4yY2RjM2VmZGU2MjU5YWQ5ZjEzMDRmOWVjYzdm
NjQ4ZjM2OWQ1ODVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTU4IEBACisyMDE5LTA5LTI2ICBLYXRlIENo
ZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBMYXlv
dXRUZXN0cyB1c2luZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFNRTGl0ZSBiYWNrZW5kICgxOTU0
MjApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTU0
MjAgCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NDIxMzU1MT4KKworICAgICAgICBBZGRlZCBh
IGZsYWcgdG8gYWxsIElUUCB0ZXN0cyB0byBlbmFibGUgdGhlIElUUCBkYXRhYmFzZSBiYWNrZW5k
IHRvIAorICAgICAgICBhbGxvdyBmb3IgdGVzdGluZyBmdW5jdGlvbmFsaXR5IGFnYWluc3QgdGhl
IG1lbW9yeSBzdG9yZS4gVGVzdHMgd2VyZSAKKyAgICAgICAgbm90IGNyZWF0ZWQgZm9yIHRlbGVt
ZXRyeS1nZW5lcmF0aW9uLmh0bWwsIAorICAgICAgICBsb2ctY3Jvc3Mtc2l0ZS1sb2FkLXdpdGgt
bGluay1kZWNvcmF0aW9uLmh0bWwsIG9yIAorICAgICAgICB3ZWJzaXRlLWRhdGEtcmVtb3ZhbC1m
b3Itc2l0ZS1uYXZpZ2F0ZWQtdG8td2l0aC1saW5rLWRlY29yYXRpb24uaHRtbCwgCisgICAgICAg
IGJlY2F1c2UgdGhlc2UgcmVseSBvbiBmdW5jdGlvbnMgbm90IHlldCBpbXBsZW1lbnRlZCBpbiB0
aGUgSVRQIGRhdGFiYXNlLgorICAgICAgICBBZGRpdGlvbmFsbHksIGFkZGVkIGZsYWdzIHRvIHNv
bWUgbWVtb3J5IHN0b3JlIHRlc3RzIHRvIGVuc3VyZSB0aGV5CisgICAgICAgIGFyZSB1c2luZyB0
aGUgbWVtb3J5IHN0b3JlIGJlZm9yZSBjYWxsaW5nIGZ1bmN0aW9ucyBub3QgaW1wbGVtZW50ZWQg
aW4KKyAgICAgICAgdGhlIGRhdGFiYXNlIHN0b3JlIHlldC4KKworICAgICAgICBSZXZpZXdlZCBi
eSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxv
Y2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Jsb2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0
LWltcG9ydC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNjcmlwdC1p
bXBvcnQtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2Ut
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1hZ2UtZm9yLXByZXZhbGVudC1yZXNvdXJj
ZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9u
LXNhbWUtc2l0ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQt
bGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJl
dmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29v
a2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2Ut
ZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmst
cXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnkt
YW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlm
ZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50
LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNl
dC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2Uu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3Jh
dGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlm
ZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1w
cmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFz
ZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24t
cHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5z
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3Vi
LWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24t
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVz
b3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1w
cmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNl
LXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNl
ZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZh
bGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXIt
dG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1v
bi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi1k
YXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGly
ZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQt
YmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9y
aWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1
YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1w
cmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5p
cXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9u
LXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJh
c2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtdG8t
cHJldmFsZW50LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1v
bi10b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1w
cmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUt
cmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1v
bi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJl
dmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9y
eS1hbmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnkt
YW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lz
dGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5k
LXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRh
YmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQt
d2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1h
bmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vz
c2libGUtY29va2llcy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUt
Y29va2llcy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGly
ZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdhdGlvbi1y
ZWRpcmVjdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxlLXRv
cC1uYXZpZ2F0aW9ucy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNz
LWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2Nr
aW5nLWluLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmct
aW4tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9u
LXRvLXByZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5v
dC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWludGVy
YWN0aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgt
bGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3du
Z3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZh
bGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5hYmxlLWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvZW5hYmxlLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9sb2ctY3Jvc3Mtc2l0ZS1sb2FkLXdpdGgt
bGluay1kZWNvcmF0aW9uLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0
aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFj
dGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNl
ci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vz
cy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24t
cHJldmFsZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1j
b250ZXh0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2Nh
bGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
bi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3Qt
ZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVk
LWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0
aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10
by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5n
LWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1p
cC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0
aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94
ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9z
dC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0
aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlw
LXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVu
dC1yZXNvdXJjZS1oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJl
c291cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFu
ZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRs
ZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFj
dGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVy
YWN0aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9u
LXRpbWVvdXQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1p
bnRlcmFjdGlvbi10aW1lb3V0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11
c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRo
b3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BydW5lLXN0YXRpc3RpY3MtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhv
c3QtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
YW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVj
dC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFt
ZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1s
b2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgt
bm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9z
dC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJv
eGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1s
b2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRh
YmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1j
dXN0b20tcHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4tZGVidWctbW9kZS1kYXRhYmFzZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3Ry
aXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3Rz
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50
LXN1YnJlc291cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2lu
LWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3Ry
aXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMt
ZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgt
aW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlv
bi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdGVsZW1ldHJ5LWdlbmVy
YXRpb24uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
dXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
dXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1v
Zi10aW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1v
bmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlv
bi1yZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFzZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91
c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFi
YXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy93ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS1uYXZpZ2F0ZWQtdG8td2l0aC1saW5r
LWRlY29yYXRpb24uaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgQWRkZWQgdGVzdCBleHBlY3RhdGlvbnMgdG8gc2tpcCBkYXRhYmFzZSB0ZXN0
cyB3aGljaCBkbyBub3Qgd29yayBpbiAKKyAgICAgICAgaW9zIGJlY2F1c2Ugb2YgcmVsaWFuY2Ug
b24gRXZlbnRTZW5kZXIua2V5ZG93bigpIHdoaWNoIGlzIG5vdAorICAgICAgICBzdXBwb3J0ZWQg
b24gaU9TIGFuZCBhbHNvIHRob3NlIHdoaWNoIHVzZSBVSUhlbHBlci5hY3RpdmF0ZUF0KCkgd2hp
Y2gKKyAgICAgICAgZG9lcyBub3QgcHJvZHVjZSBhIHVzZXIgZ2VzdHVyZSBjYXB0dXJlZCBieSBJ
VFAgaW4gaU9TLgorCiAyMDE5LTA5LTI1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIHZlcnkgYmFzaWMgUGFnZUNhY2hlIHN1cHBvcnQgZm9yIFJUQ1BlZXJD
b25uZWN0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxv
Y2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmZWY5
Y2QyNmU4NjFiMGZkYjE0ZjVkYzBiMGExNjAwZjRlOGRhZDQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5n
LXRvLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYzIEBACitUZXN0
cyB0aGF0IGJsb2NraW5nIGlzIGFkZGVkIG1pZC1mbGlnaHQgaW4gcmVkaXJlY3RzLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+
JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVk
IGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2ll
IG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6
IGZpcnN0UGFydHlDb29raWU9dmFsdWUKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMi0t
PicKKy0tLS0tLS0tCitSZWRpcmVjdCBjYXNlIDEsIHNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5
IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQg
bm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitDbGllbnQtc2lk
ZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUKKworLS0tLS0tLS0KK0Zy
YW1lOiAnPCEtLWZyYW1lMy0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBubyBjb29raWVz
LgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQg
bm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitDbGllbnQtc2lk
ZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTQtLT4nCist
LS0tLS0tLQorUmVkaXJlY3QgY2FzZSAyLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWUuCitEaWQg
bm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVj
ZWl2ZSBjb29raWUgbmFtZWQgJ3BhcnRpdGlvbmVkQ29va2llJy4KK0NsaWVudC1zaWRlIGRvY3Vt
ZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNS0tPicKKy0tLS0tLS0t
CitUcnkgdG8gc2V0IHRoaXJkLXBhcnR5IGNvb2tpZSBpbiBibG9ja2VkIG1vZGUuCisKKworLS0t
LS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNi0tPicKKy0tLS0tLS0tCitBZnRlciBhdHRlbXB0ZWQg
Y29va2llIGNyZWF0aW9uLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWUuCitEaWQgbm90IHJlY2Vp
dmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29r
aWUgbmFtZWQgJ3BhcnRpdGlvbmVkQ29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tp
ZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNy0tPicKKy0tLS0tLS0tCitSZWRpcmVj
dCBjYXNlIDMsIGFmdGVyIGF0dGVtcHRlZCBjb29raWUgY3JlYXRpb24sIHNob3VsZCByZWNlaXZl
IG5vIGNvb2tpZS4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29r
aWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9uZWRDb29raWUnLgor
Q2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1k
YXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAx
ZDYzYTUxNjg3OGEwODM4ZDI5OGU3NjNlMDNkMmViODQ2YTA5OWQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJsb2Nr
aW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMDQgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRG
LTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBibG9j
a2luZyBpcyBhZGRlZCBtaWQtZmxpZ2h0IGluIHJlZGlyZWN0cy4iKTsKKyAgICBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAi
OworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsK
KyAgICBjb25zdCByZXNvdXJjZVBhdGggPSAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3Vy
Y2VzIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyBy
ZXNvdXJjZVBhdGg7CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0
eUNvb2tpZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSA9ICIvc2V0
LWNvb2tpZS5waHA/bmFtZT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVl
IjsKKyAgICBjb25zdCBwYXJ0aXRpb25lZENvb2tpZU5hbWUgPSAicGFydGl0aW9uZWRDb29raWUi
OworICAgIGNvbnN0IHN1YlBhdGhUb1NldFBhcnRpdGlvbmVkQ29va2llID0gIi9zZXQtY29va2ll
LnBocD9uYW1lPSIgKyBwYXJ0aXRpb25lZENvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAg
ICBjb25zdCByZXR1cm5VcmwgPSAiaHR0cDovLyIgKyBwYXJ0aXRpb25Ib3N0ICsgIi9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC5odG1sIjsKKyAgICBjb25z
dCBzdWJQYXRoVG9HZXRDb29raWVzID0gIi9nZXQtY29va2llcy5waHA/bmFtZTE9IiArIGZpcnN0
UGFydHlDb29raWVOYW1lICsgIiZuYW1lMj0iICsgcGFydGl0aW9uZWRDb29raWVOYW1lOworICAg
IGNvbnN0IHJlZGlyZWN0Q2hhaW5VcmwgPSAiaHR0cDovLyIgKyBwYXJ0aXRpb25Ib3N0ICsgcmVz
b3VyY2VQYXRoICsgIi9yZWRpcmVjdC5waHA/cmVkaXJlY3RUbz0iICsgdGhpcmRQYXJ0eUJhc2VV
cmwgKyBzdWJQYXRoVG9HZXRDb29raWVzOworCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmws
IG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAg
aWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2Fk
SGFuZGxlcjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVs
ZW1lbnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRj
aCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoK
KyAgICAgICAgICAgICAgICAvLyBTZXQgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3Qu
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNl
VXJsICsgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIHJldHVyblVybCArICIj
c3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAy
IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBjb29raWUgZ2V0cyBzZW50IGZv
ciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCBpcyBub3QgcHJldmFs
ZW50LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOwor
ICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9H
ZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4i
LCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNz
dGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7
CisgICAgICAgICAgICAgICAgLy8gTG9hZCBhbiBpZnJhbWUgaW4gYSByZWRpcmVjdCBjaGFpbiB0
aGF0IHN0YXJ0cyB3aXRoIDEyNy4wLjAuMSBhbmQgZW5kcyB3aXRoIGxvY2FsaG9zdC4gRXhwZWN0
IGEgY29va2llIGZvciBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAgb3BlbklmcmFtZShyZWRp
cmVjdENoYWluVXJsICsgIiZtZXNzYWdlPVJlZGlyZWN0IGNhc2UgMSwgc2hvdWxkIHJlY2VpdmUg
Zmlyc3QtcGFydHkgY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICAvLyBTZXQgbG9jYWxo
b3N0IGFzIHByZXZhbGVudCB0byBwdXQgaXQgaW4gdGhlIGJsb2NraW5nIGNhdGVnb3J5LgorICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFy
dHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikp
CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNl
dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA1
IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IG5vIGNvb2tpZSBnZXRzIHNlbnQgZm9y
IGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEgc2luY2UgbG9jYWxob3N0J3MgY29va2llcyBhcmUg
YmxvY2tlZC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA2
IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0
aFRvR2V0Q29va2llcyArICAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4iLCBy
dW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVw
NiI6CisgICAgICAgICAgICAgICAgLy8gTG9hZCBhbiBpZnJhbWUgaW4gYSByZWRpcmVjdCBjaGFp
biB0aGF0IHN0YXJ0cyB3aXRoIDEyNy4wLjAuMSBhbmQgZW5kcyB3aXRoIGxvY2FsaG9zdC4gRXhw
ZWN0IG5vIGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2ggPSAic3RlcDciOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUocmVkaXJl
Y3RDaGFpblVybCArICImbWVzc2FnZT1SZWRpcmVjdCBjYXNlIDIsIHNob3VsZCByZWNlaXZlIG5v
IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwNyI6CisgICAgICAgICAgICAgICAgLy8gVHJ5IHRvIHNldCBjb29raWUgZm9y
IGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaGFzaCA9ICJzdGVwOCI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBh
cnR5QmFzZVVybCArIHN1YlBhdGhUb1NldFBhcnRpdGlvbmVkQ29va2llICsgIiZtZXNzYWdlPVRy
eSB0byBzZXQgdGhpcmQtcGFydHkgY29va2llIGluIGJsb2NrZWQgbW9kZS4iLCBydW5UZXN0KTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwOCI6CisgICAg
ICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBubyBjb29raWUgZ2V0cyBzZW50IGZvciBsb2NhbGhv
c3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCdzIGNvb2tpZXMgYXJlIGJsb2NrZWQu
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwOSI7CisgICAg
ICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENv
b2tpZXMgKyAgIiZtZXNzYWdlPUFmdGVyIGF0dGVtcHRlZCBjb29raWUgY3JlYXRpb24sIHNob3Vs
ZCByZWNlaXZlIG5vIGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgIiNzdGVwOSI6CisgICAgICAgICAgICAgICAgLy8gTG9hZCBhbiBp
ZnJhbWUgaW4gYSByZWRpcmVjdCBjaGFpbiB0aGF0IHN0YXJ0cyB3aXRoIDEyNy4wLjAuMSBhbmQg
ZW5kcyB3aXRoIGxvY2FsaG9zdC4gRXhwZWN0IG5vIGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEwIjsKKyAgICAgICAg
ICAgICAgICBvcGVuSWZyYW1lKHJlZGlyZWN0Q2hhaW5VcmwgKyAiJm1lc3NhZ2U9UmVkaXJlY3Qg
Y2FzZSAzLCBhZnRlciBhdHRlbXB0ZWQgY29va2llIGNyZWF0aW9uLCBzaG91bGQgcmVjZWl2ZSBu
byBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlICIjc3RlcDEwIjoKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
fQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNv
dXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPSAic3RlcDEiOworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9
IGVsc2UgeworICAgICAgICBydW5UZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjljYjc5OTQzZWQ4YjQ5YTg0MWJkMTI5YjNmNWFjYTZlMmEzYjIxYmMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0IGZvciBjb29raWUgYmxvY2tpbmcgd2hl
biB3ZWIgd29ya2VycyBpbXBvcnQgY3Jvc3Mtc2l0ZSBzY3JpcHRzLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBEaWQgcmVjZWl2ZSBmaXJzdFBhcnR5Q29va2llID09IHZh
bHVlCitQQVNTIERpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgZmlyc3RQYXJ0eUNvb2tpZQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKworLS0t
LS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBm
aXJzdC1wYXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29r
aWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4t
d2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2MyMDEw
ODUxMDY1YWNhODRhMmEyZjhlOTk3OTA3ODE4NTdmYjE5YgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1pbi13
ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDg4IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgY29va2llIGJsb2NraW5nIHdoZW4gd2ViIHdv
cmtlcnMgaW1wb3J0IGNyb3NzLXNpdGUgc2NyaXB0cy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKworICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAg
IGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBj
b25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyAiL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9
ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29v
a2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICIm
dmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHJldHVyblVybCA9ICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2luZy1pbi13ZWItd29ya2VyLXNjcmlwdC1p
bXBvcnQuaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0LWNvb2tp
ZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZTsKKworICAgIGZ1bmN0aW9uIG9w
ZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMgPSB1
cmw7CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVtZW50Lm9u
bG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAgICBsZXQgcmVjZWl2ZWRNZXNzYWdlcyA9
IDA7CisgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgaWYgKGV2
ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
ZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7CisKKyAgICAg
ICAgKytyZWNlaXZlZE1lc3NhZ2VzOworICAgICAgICBpZiAocmVjZWl2ZWRNZXNzYWdlcyA+PSAy
KSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOwor
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gp
IHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
bG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0
eUNvb2tpZSArICIjIiArIHJldHVyblVybCArICIjc3RlcDIiOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRo
aXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQg
cmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDQiOworICAgICAgICAgICAgICAgIGxldCB3MSA9IG5l
dyBXb3JrZXIoInJlc291cmNlcy93b3JrZXItaW1wb3J0aW5nLWxvY2FsaG9zdC1zY3JpcHQuanMi
KTsKKyAgICAgICAgICAgICAgICB3MS5vbm1lc3NhZ2UgPSByZWNlaXZlTWVzc2FnZTsKKyAgICAg
ICAgICAgICAgICB3MS5wb3N0TWVzc2FnZSgic2hvdWxkUmVjZWl2ZUNvb2tpZXM9dHJ1ZSIpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA1IjsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5
T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQor
ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQg
YXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNSI6
CisgICAgICAgICAgICAgICAgbGV0IHcyID0gbmV3IFdvcmtlcigicmVzb3VyY2VzL3dvcmtlci1p
bXBvcnRpbmctbG9jYWxob3N0LXNjcmlwdC5qcyIpOworICAgICAgICAgICAgICAgIHcyLm9ubWVz
c2FnZSA9IHJlY2VpdmVNZXNzYWdlOworICAgICAgICAgICAgICAgIHcyLnBvc3RNZXNzYWdlKCJz
aG91bGROb3RSZWNlaXZlQ29va2llcyIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IHBhcnRpdGlv
bkhvc3QgJiYgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIgJiYgd2luZG93LnRlc3RSdW5u
ZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERh
dGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdp
bikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IHdhcyBjbGFzc2lmaWVk
IGFzIHByZXZhbGVudCByZXNvdXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAg
ICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBydW5U
ZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1h
eC1hZ2UtZm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1h
Z2UtZm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMGNjZTVhYTFjMzZhOTRkNTUwYmRlMjI5YWRlNDQ2ZmY4MzU1YzFjYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAt
Y2FjaGUtbWF4LWFnZS1mb3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE0IEBACitUZXN0cyB0aGF0IGNhY2hlIG1heC1hZ2UgaXMgY2FwcGVkIGZv
ciBwcmV2YWxlbnQgcmVzb3VyY2VzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBsb2FkZWRVcmwgaXMgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3Jlc291cmNlcy9lY2hvLXF1ZXJ5LnBocD92YWx1ZT0xMjM0IgorUEFTUyBsb2FkZWRV
cmwgaXMgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291
cmNlcy9lY2hvLXF1ZXJ5LnBocD92YWx1ZT00MzIxIgorUEFTUyBsb2FkZWRVcmwgaXMgImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXF1
ZXJ5LnBocD92YWx1ZT0iCitQQVNTIGxvYWRlZFVybCBpcyAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPSIK
K1BBU1MgbG9hZGVkVXJsIGlzICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9IgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1m
b3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1hZ2UtZm9yLXByZXZhbGVu
dC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2NGE0NTE4YTgzMzk0NjA5MDcz
MzM3M2YxZjYwMjE2M2FhYjkzMmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1hZ2UtZm9yLXByZXZh
bGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTEzIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2FwcGVkIENhY2hlIE1heC1BZ2U8
L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0
cyB0aGF0IGNhY2hlIG1heC1hZ2UgaXMgY2FwcGVkIGZvciBwcmV2YWxlbnQgcmVzb3VyY2VzLiIp
OworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgdmFyIGxvYWRlZFVybDsKKyAgICBm
dW5jdGlvbiBmaXJzdEZldGNoKCkgeworICAgICAgICAvLyBUaGlzIHNob3VsZCBjcmVhdGUgYSBj
YXBwZWQgY2FjaGUgZW50cnkuCisgICAgICAgIGZldGNoKCJodHRwOi8vbG9jYWxob3N0OjgwMDAv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvY2FjaGVkLXBlcm1hbmVudC1yZWRpcmVj
dC5waHAiLAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhY2hlOiAicmVsb2FkIiwK
KyAgICAgICAgICAgICAgICBoZWFkZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICJYLVdlYktp
dCI6ICIxMjM0IiwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICku
dGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgbG9hZGVkVXJsID0gcmVzcG9u
c2UudXJsOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsb2FkZWRVcmwiLCAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2Vj
aG8tcXVlcnkucGhwP3ZhbHVlPTEyMzQiKTsKKyAgICAgICAgICAgIHNlY29uZEZldGNoKCk7Cisg
ICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVk
KGVycm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2Vjb25kRmV0
Y2goKSB7CisgICAgICAgIC8vIFRoaXMgc2hvdWxkIG5vdCB0cmlnZ2VyIGEgc3VjY2Vzc2Z1bCBj
YWNoZSBoaXQgYW5kIGluc3RlYWQgY3JlYXRlIGFub3RoZXIgY2FwcGVkIGNhY2hlIGVudHJ5Lgor
ICAgICAgICBmZXRjaCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcmVzb3VyY2VzL2NhY2hlZC1wZXJtYW5lbnQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICBjYWNoZTogImZvcmNlLWNhY2hlIiwKKyAgICAgICAgICAgICAg
ICBoZWFkZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICJYLVdlYktpdCI6ICI0MzIxIiwKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICkudGhlbihmdW5jdGlvbihy
ZXNwb25zZSkgeworICAgICAgICAgICAgbG9hZGVkVXJsID0gcmVzcG9uc2UudXJsOworICAgICAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsb2FkZWRVcmwiLCAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3Zh
bHVlPTQzMjEiKTsKKyAgICAgICAgICAgIHRoaXJkRmV0Y2goKTsKKyAgICAgICAgfSkuY2F0Y2go
ZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoZXJyb3IubWVzc2FnZSk7
CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAg
ICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0aGlyZEZldGNoKCkgeworICAgICAgICAv
LyBUaGlzIHNob3VsZCBub3QgdHJpZ2dlciBhIHN1Y2Nlc3NmdWwgY2FjaGUgaGl0IGFuZCBpbnN0
ZWFkIGNyZWF0ZSBhbm90aGVyIGNhcHBlZCBjYWNoZSBlbnRyeS4KKyAgICAgICAgZmV0Y2goImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9jYWNo
ZWQtcGVybWFuZW50LXJlZGlyZWN0LnBocCIsCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgY2FjaGU6ICJmb3JjZS1jYWNoZSIsCisgICAgICAgICAgICB9CisgICAgICAgICkudGhlbihm
dW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgbG9hZGVkVXJsID0gcmVzcG9uc2UudXJs
OworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsb2FkZWRVcmwiLCAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVl
cnkucGhwP3ZhbHVlPSIpOworICAgICAgICAgICAgZm91cnRoRmV0Y2goKTsKKyAgICAgICAgfSku
Y2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoZXJyb3IubWVz
c2FnZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmb3VydGhGZXRjaCgpIHsKKyAg
ICAgICAgLy8gVGhpcyBzaG91bGQgbm90IHRyaWdnZXIgYSBzdWNjZXNzZnVsIGNhY2hlIGhpdCBi
dXQgY2xlYXIgY2FwcGluZy4KKyAgICAgICAgZmV0Y2goImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9jYWNoZWQtcGVybWFuZW50LXJlZGlyZWN0
LnBocCIsCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY2FjaGU6ICJmb3JjZS1jYWNo
ZSIsCisgICAgICAgICAgICB9CisgICAgICAgICkudGhlbihmdW5jdGlvbihyZXNwb25zZSkgewor
ICAgICAgICAgICAgbG9hZGVkVXJsID0gcmVzcG9uc2UudXJsOworICAgICAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJsb2FkZWRVcmwiLCAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3ZhbHVlPSIpOworICAg
ICAgICAgICAgZmlmdGhGZXRjaCgpOworICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikg
eworICAgICAgICAgICAgdGVzdEZhaWxlZChlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0pOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGZpZnRoRmV0Y2goKSB7CisgICAgICAgIC8vIFRoaXMgc2hvdWxkIHRy
aWdnZXIgYSByZWd1bGFyLCBzdWNjZXNzZnVsIGNhY2hlIGhpdC4KKyAgICAgICAgZmV0Y2goImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9jYWNo
ZWQtcGVybWFuZW50LXJlZGlyZWN0LnBocCIsCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgaGVhZGVyczogeworICAgICAgICAgICAgICAgICAgICAiWC1XZWJLaXQiOiAiMTIzNCIsCisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICApLnRoZW4oZnVuY3Rpb24o
cmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGxvYWRlZFVybCA9IHJlc3BvbnNlLnVybDsKKyAgICAg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibG9hZGVkVXJsIiwgImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXF1ZXJ5LnBocD92
YWx1ZT0iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVz
dCk7CisgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgICAgICB0ZXN0
RmFpbGVkKGVycm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfQorICAgIHRlc3RSdW5uZXIuc2V0
VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9z
dCB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0
YXJ0ZWQuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzQ2FjaGVNYXhBZ2VD
YXAoMCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhmaXJzdEZldGNoKTsKKyAgICAg
ICAgfSk7CisgICAgfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlm
ZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1m
b3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDg0
NjIwZDZkMzMxMjExNjQ1MWE4YTU5Yzg0YmU2MTc2NGM0NmUzMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlm
ZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTEgQEAKK0NoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgd2l0aCBt
YXgtYWdlIG9yIGV4cGlyeSBsb25nZXIgdGhhbiBhIHdlZWsgZ2V0IGNhcHBlZCB0byBhIHdlZWsu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSB0d28gc2hvcnQtbGl2
ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDE3MjgzMCBzZWNvbmRzLgor
UEFTUyBUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0
aGFuIDYwNDgzMCBzZWNvbmRzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtZGF0
YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtZGF0YWJhc2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lMmZmZDA0MWFlMzJkZTI4NjAzYjgxOTEwMzBjZThhMzA1ZDI2MjZiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsODMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkNoZWNrIHRoYXQg
Y29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgd2l0aCBtYXgtYWdlIG9yIGV4cGlyeSBsb25n
ZXIgdGhhbiBhIHdlZWsgZ2V0IGNhcHBlZCB0byBhIHdlZWsuIik7CisgICAganNUZXN0SXNBc3lu
YyA9IHRydWU7CisgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKworICAg
IGlmIChpbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZCh0cnVlKTsKKworICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7CisgICAgZnVuY3Rp
b24gY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZURhdGEsIG1heEFnZUlu
U2Vjb25kcykgeworICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKKyAgICAgICAgbGV0IG1h
eEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA9IG5vdy5nZXRUaW1lKCkgKyAobWF4QWdlSW5TZWNv
bmRzICogMTAwMCk7CisKKyAgICAgICAgaWYgKG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA+
IGNvb2tpZURhdGFbImV4cGlyZXMiXSkKKyAgICAgICAgICAgICsrcGFzc2VkVGVzdHM7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBuYW1lZCAiICsgY29va2ll
RGF0YVsibmFtZSJdICsgIiBleHBpcmVzIGluIG1vcmUgdGhhbiAiICsgbWF4QWdlSW5TZWNvbmRz
ICsgIiBzZWNvbmRzLiIpOworICAgIH0KKworICAgIGNvbnN0IHR3b0RheXNJblNlY29uZHMgPSAy
ICogMjQgKiA2MCAqIDYwOworICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5h
bWUgOiAic2hvcnRMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3
b0RheXNJblNlY29uZHMgKyAiOyIgfTsKKyAgICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExpdmVk
Q29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVNYXhBZ2Uu
bGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0ZSA9
IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICBjb25z
dCBzaG9ydExpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJzaG9ydExpdmVkQ29va2llRXhw
aXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3b0RheXNBc0V4cGlyZXNEYXRlICsgIjsi
IH07CisgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubmFtZSAr
ICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBhdGg9
LyI7CisKKyAgICBjb25zdCBvbmVXZWVrSW5TZWNvbmRzID0gNyAqIDI0ICogNjAgKiA2MDsKKyAg
ICBjb25zdCB0d29XZWVrc0luU2Vjb25kcyA9IDIgKiBvbmVXZWVrSW5TZWNvbmRzOworICAgIGNv
bnN0IGxvbmdMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVNYXhB
Z2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d29XZWVrc0luU2Vjb25kcyArICI7IiB9Owor
ICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29i
YXI7ICIgKyBsb25nTGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAg
ICBjb25zdCB0d29XZWVrc0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhB
Z2UodHdvV2Vla3NJblNlY29uZHMpOworICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMg
PSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9
IiArIHR3b1dlZWtzQXNFeHBpcmVzRGF0ZSArICI7IiB9OworICAgIGRvY3VtZW50LmNvb2tpZSA9
IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29v
a2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgIGNvbnN0IG92ZXJUd29EYXlz
SW5TZWNvbmRzID0gdHdvRGF5c0luU2Vjb25kcyArIDMwOworICAgIGNvbnN0IG92ZXJPbmVXZWVr
SW5TZWNvbmRzID0gb25lV2Vla0luU2Vjb25kcyArIDMwOworICAgIGlmIChpbnRlcm5hbHMpIHsK
KyAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICBp
ZiAoIWNvb2tpZXMubGVuZ3RoKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gY29va2llcyBm
b3VuZC4iKTsKKyAgICAgICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAg
ICAgIHN3aXRjaCAoY29va2llLm5hbWUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2
ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2ll
RG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3b0RheXNJblNlY29uZHMpOworICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRDb29r
aWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNO
b3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJUd29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29raWVNYXhB
Z2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGly
ZUFmdGVyKGNvb2tpZSwgb3Zlck9uZVdlZWtJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFt
ZToKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVy
KGNvb2tpZSwgb3Zlck9uZVdlZWtJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJlc2V0Q29va2llc0ZvckN1
cnJlbnRPcmlnaW4oKTsKKworICAgICAgICBpZiAocGFzc2VkVGVzdHMgPT09IDQpIHsKKyAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBkb24ndCBleHBp
cmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBvdmVyVHdvRGF5c0luU2Vjb25kcyArICIgc2Vjb25kcy4i
KTsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRv
bid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJPbmVXZWVrSW5TZWNvbmRzICsgIiBz
ZWNvbmRzLiIpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkF0IGxl
YXN0IG9uZSBjb29raWUncyBleHBpcnkgYXR0cmlidXRlIHdhcyBiZXlvbmQgdGhlIHRlc3QgdGhy
ZXNob2xkcy4iKTsKKyAgICB9IGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiTm8gaW50ZXJuYWxz
IG9iamVjdC4iKTsKKworICAgIGlmIChpbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29v
a2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlv
bi1zYW1lLXNpdGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0OTU0NWEwMzRk
M2FmMjU5MGM5OTMzN2QyMzA1YTliZWZkYmE0MTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZv
ci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0
ZWQgYnkgSmF2YVNjcmlwdCBhZnRlciBhIHNhbWUtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBk
ZWNvcmF0aW9uIGRvbid0IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIFRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGV4cGlyZSBh
ZnRlciBtb3JlIHRoYW4gODY0MzAgc2Vjb25kcy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0
LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGlt
ZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUtZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZDA5OTkxYjNmYThhY2Q0ODE5OWE4NTMyMzRkMjVhYjI4
OTE1ZGMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRo
LWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDg2IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2Nv
b2tpZXMvcmVzb3VyY2VzL2Nvb2tpZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9InNldFRpbWVvdXQoJ3J1blRlc3QoKScsIDApIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRp
b24oIkNoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBzYW1l
LXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgZGVjb3JhdGlvbiBkb24ndCBnZXQgY2FwcGVkIHRv
IDI0IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rpb24g
dGVzdENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7CisKKyAgICAgICAg
ZnVuY3Rpb24gY2hlY2tUaGF0Q29va2llRG9lc0V4cGlyZUFmdGVyKGNvb2tpZURhdGEsIG1heEFn
ZUluU2Vjb25kcykgeworICAgICAgICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7CisgICAgICAg
ICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93LmdldFRpbWUoKSArICht
YXhBZ2VJblNlY29uZHMgKiAxMDAwKTsKKworICAgICAgICAgICAgaWYgKG1heEV4cGlyeURhdGVJ
bk1pbGxpc2Vjb25kcyA8IGNvb2tpZURhdGFbImV4cGlyZXMiXSkKKyAgICAgICAgICAgICAgICAr
K3Bhc3NlZFRlc3RzOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkNvb2tpZSBuYW1lZCAiICsgY29va2llRGF0YVsibmFtZSJdICsgIiBleHBpcmVzIGluIGxl
c3MgdGhhbiAiICsgbWF4QWdlSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICB9CisK
KyAgICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0gMjQgKiA2MCAqIDYwOworICAgICAgICBj
b25zdCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIG9uZURheUluU2Vjb25kczsKKyAgICAgICAgY29u
c3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZU1heEFn
ZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b0RheXNJblNlY29uZHMgKyAiOyIgfTsKKyAg
ICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZv
b2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKwor
ICAgICAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJv
bU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2ll
RXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAi
RXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1l
bnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBs
b25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNv
bnN0IG92ZXJPbmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMgKyAzMDsKKyAgICAgICAg
aWYgKGludGVybmFscykgeworICAgICAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0
Q29va2llcygpOworICAgICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAgICAgICAgZm9yIChs
ZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvb2tpZS5u
YW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5h
bWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzRXhwaXJlQWZ0
ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMu
bmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNFeHBpcmVB
ZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAgICAgIGlmIChwYXNz
ZWRUZXN0cyA9PT0gMikgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gbG9u
Zy1saXZlZCBjb29raWVzIGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJPbmVEYXlJblNl
Y29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJpYnV0ZSB3YXMg
YmVsb3cgdGhlIHRlc3QgdGhyZXNob2xkcy4iKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOworCisgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2
aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHBy
ZXZhbGVudFJlc291cmNlT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1s
aWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1lLXNp
dGUuaHRtbD9saW5rPWRlY29yYXRpb24jZnJhZ21lbnQiOworICAgIH0KKworICAgIGNvbnN0IGRl
c3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgcHJl
dmFsZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBmdW5j
dGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luID09
PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiAmJiBkb2N1bWVudC5sb2NhdGlvbi5oYXNoICE9PSAi
I2ZyYWdtZW50IikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0
cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHByZXZhbGVudFJlc291cmNlT3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHBy
ZXZhbGVudFJlc291cmNlT3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmco
bmF2aWdhdGVDcm9zc09yaWdpbik7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdENvb2tpZXMoKTsKKyAgICAg
ICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGlt
ZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQt
cmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1q
cy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3YmFkMDMyYzZmMjI0NTczYTMzNWQzZjcwNDE5ZGNiNGJl
NDNhMTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgt
bGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMSBAQAorQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNj
cmlwdCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgZnJhZ21lbnQgZ2V0
IGNhcHBlZCB0byAyNCBob3Vycy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgVGhlIHR3byBzaG9ydC1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRo
YW4gNDMyMzAgc2Vjb25kcy4KK1BBU1MgVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9uJ3Qg
ZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA4NjQzMCBzZWNvbmRzLgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNv
b2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNl
LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFn
bWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVj
ODRmYjg5NGY5OWIzMjdjMTc3M2UyMDA3ZGMxMGQ5MWMyYTg3OTkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxp
ZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZh
bGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTAxIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2Nvb2tpZXMvcmVzb3Vy
Y2VzL2Nvb2tpZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVv
dXQoJ3J1blRlc3QoKScsIDApIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkNoZWNrIHRo
YXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmln
YXRpb24gd2l0aCBsaW5rIGZyYWdtZW50IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuIik7CisgICAg
anNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29va2llcygpIHsKKyAg
ICAgICAgbGV0IHBhc3NlZFRlc3RzID0gMDsKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tUaGF0Q29v
a2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZURhdGEsIG1heEFnZUluU2Vjb25kcykgeworICAg
ICAgICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7CisgICAgICAgICAgICBsZXQgbWF4RXhwaXJ5
RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93LmdldFRpbWUoKSArIChtYXhBZ2VJblNlY29uZHMgKiAx
MDAwKTsKKworICAgICAgICAgICAgaWYgKG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA+IGNv
b2tpZURhdGFbImV4cGlyZXMiXSkKKyAgICAgICAgICAgICAgICArK3Bhc3NlZFRlc3RzOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBuYW1lZCAi
ICsgY29va2llRGF0YVsibmFtZSJdICsgIiBleHBpcmVzIGluIG1vcmUgdGhhbiAiICsgbWF4QWdl
SW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgdHdl
bHZlSG91cnNJblNlY29uZHMgPSAxMiAqIDYwICogNjA7CisgICAgICAgIGNvbnN0IHNob3J0TGl2
ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUgOiAic2hvcnRMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0
aW1lIDogIk1heC1BZ2U9IiArIHR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgIjsiIH07CisgICAgICAg
IGRvY3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZSArICI9Zm9vYmFy
OyAiICsgc2hvcnRMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAg
ICAgICBjb25zdCB0d2VsdmVIb3Vyc0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZy
b21NYXhBZ2UodHdlbHZlSG91cnNJblNlY29uZHMpOworICAgICAgICBjb25zdCBzaG9ydExpdmVk
Q29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJzaG9ydExpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0
aW1lIDogIkV4cGlyZXM9IiArIHR3ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0ZSArICI7IiB9OworICAg
ICAgICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1m
b29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0vIjsK
KworICAgICAgICBjb25zdCBvbmVEYXlJblNlY29uZHMgPSAyICogdHdlbHZlSG91cnNJblNlY29u
ZHM7CisgICAgICAgIGNvbnN0IHR3b0RheXNJblNlY29uZHMgPSAyICogb25lRGF5SW5TZWNvbmRz
OworICAgICAgICBjb25zdCBsb25nTGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUgOiAibG9uZ0xp
dmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdvRGF5c0luU2Vjb25k
cyArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVNYXhB
Z2UubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1lICsg
IiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3b0RheXNBc0V4cGlyZXNEYXRlID0gY3JlYXRl
RXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3b0RheXNJblNlY29uZHMpOworICAgICAgICBjb25zdCBs
b25nTGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZUV4cGlyZXMi
LCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d29EYXlzQXNFeHBpcmVzRGF0ZSArICI7IiB9Owor
ICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAi
PWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBhdGg9LyI7
CisKKyAgICAgICAgY29uc3Qgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzID0gdHdlbHZlSG91cnNJ
blNlY29uZHMgKyAzMDsKKyAgICAgICAgY29uc3Qgb3Zlck9uZURheUluU2Vjb25kcyA9IG9uZURh
eUluU2Vjb25kcyArIDMwOworICAgICAgICBpZiAoaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBs
ZXQgY29va2llcyA9IGludGVybmFscy5nZXRDb29raWVzKCk7CisgICAgICAgICAgICBpZiAoIWNv
b2tpZXMubGVuZ3RoKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGNvb2tpZXMgZm91
bmQuIik7CisgICAgICAgICAgICBmb3IgKGxldCBjb29raWUgb2YgY29va2llcykgeworICAgICAg
ICAgICAgICAgIHN3aXRjaCAoY29va2llLm5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBzaG9ydExpdmVkQ29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBj
aGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdlbHZlSG91cnNJ
blNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJU
d2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29r
aWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lOgor
ICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVy
KGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJl
c2V0Q29va2llc0ZvckN1cnJlbnRPcmlnaW4oKTsKKworICAgICAgICAgICAgaWYgKHBhc3NlZFRl
c3RzID09PSA0KSB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBzaG9ydC1s
aXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJUd2VsdmVI
b3Vyc0luU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2Vk
KCJUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFu
ICIgKyBvdmVyT25lRGF5SW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQXQgbGVhc3Qgb25lIGNvb2tpZSdzIGV4
cGlyeSBhdHRyaWJ1dGUgd2FzIGJleW9uZCB0aGUgdGVzdCB0aHJlc2hvbGRzLiIpOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGludGVybmFscyBvYmplY3QuIik7
CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBuYXZpZ2F0ZUNyb3NzT3JpZ2luKCkgeworICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5ocmVmID0gZGVzdGluYXRpb25PcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFn
bWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sI2xpbms9ZnJhZ21lbnQiOworICAgIH0K
KworICAgIGNvbnN0IGRlc3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7
CisgICAgY29uc3QgcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4
MDAwIjsKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9j
YXRpb24ub3JpZ2luID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikgeworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luLCB0
cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFz
IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
dGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcobmF2aWdhdGVDcm9zc09yaWdpbik7CisgICAg
ICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgdGVzdENvb2tpZXMoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRo
LWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5
LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmU5OGRjOGY5MGUyZGExYjE5ODNiNDhkYzE4NmVhZDdhNjk2NWQ3YQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1
ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMSBAQAorQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2
YVNjcmlwdCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVlcnkgYW5k
IGZyYWdtZW50IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIFRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUg
YWZ0ZXIgbW9yZSB0aGFuIDQzMjMwIHNlY29uZHMuCitQQVNTIFRoZSB0d28gbG9uZy1saXZlZCBj
b29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gODY0MzAgc2Vjb25kcy4KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxp
ZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQt
ZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNv
dXJjZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1OTFlYjRlOTU4ZmIxYjUwZGI3ZjgyMmEy
MDBlY2NjNjczODI0MTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWlu
LWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2Ut
ZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDEwMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUtdXRp
bGl0aWVzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCkn
LCAwKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IGNvb2tpZXMgY3Jl
YXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGlu
ayBxdWVyeSBhbmQgZnJhZ21lbnQgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4iKTsKKyAgICBqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0aW9uIHRlc3RDb29raWVzKCkgeworICAgICAg
ICBsZXQgcGFzc2VkVGVzdHMgPSAwOworICAgICAgICBmdW5jdGlvbiBjaGVja1RoYXRDb29raWVE
b2VzTm90RXhwaXJlQWZ0ZXIoY29va2llRGF0YSwgbWF4QWdlSW5TZWNvbmRzKSB7CisgICAgICAg
ICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKKyAgICAgICAgICAgIGxldCBtYXhFeHBpcnlEYXRl
SW5NaWxsaXNlY29uZHMgPSBub3cuZ2V0VGltZSgpICsgKG1heEFnZUluU2Vjb25kcyAqIDEwMDAp
OworCisgICAgICAgICAgICBpZiAobWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID4gY29va2ll
RGF0YVsiZXhwaXJlcyJdKQorICAgICAgICAgICAgICAgICsrcGFzc2VkVGVzdHM7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5hbWVkICIgKyBj
b29raWVEYXRhWyJuYW1lIl0gKyAiIGV4cGlyZXMgaW4gbW9yZSB0aGFuICIgKyBtYXhBZ2VJblNl
Y29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCB0d2VsdmVI
b3Vyc0luU2Vjb25kcyA9IDEyICogNjAgKiA2MDsKKyAgICAgICAgY29uc3Qgc2hvcnRMaXZlZENv
b2tpZU1heEFnZSA9IHsgbmFtZSA6ICJzaG9ydExpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUg
OiAiTWF4LUFnZT0iICsgdHdlbHZlSG91cnNJblNlY29uZHMgKyAiOyIgfTsKKyAgICAgICAgZG9j
dW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIg
KyBzaG9ydExpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAg
IGNvbnN0IHR3ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1h
eEFnZSh0d2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgIGNvbnN0IHNob3J0TGl2ZWRDb29r
aWVFeHBpcmVzID0geyBuYW1lIDogInNob3J0TGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUg
OiAiRXhwaXJlcz0iICsgdHdlbHZlSG91cnNBc0V4cGlyZXNEYXRlICsgIjsiIH07CisgICAgICAg
IGRvY3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAiPWZvb2Jh
cjsgIiArIHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisg
ICAgICAgIGNvbnN0IG9uZURheUluU2Vjb25kcyA9IDIgKiB0d2VsdmVIb3Vyc0luU2Vjb25kczsK
KyAgICAgICAgY29uc3QgdHdvRGF5c0luU2Vjb25kcyA9IDIgKiBvbmVEYXlJblNlY29uZHM7Cisg
ICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJsb25nTGl2ZWRD
b29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d29EYXlzSW5TZWNvbmRzICsg
IjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZU1heEFnZS5u
YW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBh
dGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdvRGF5c0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBp
cmVzRGF0ZUZyb21NYXhBZ2UodHdvRGF5c0luU2Vjb25kcyk7CisgICAgICAgIGNvbnN0IGxvbmdM
aXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llRXhwaXJlcyIsIGxp
ZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3b0RheXNBc0V4cGlyZXNEYXRlICsgIjsiIH07CisgICAg
ICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZSArICI9Zm9v
YmFyOyAiICsgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0vIjsKKwor
ICAgICAgICBjb25zdCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMgPSB0d2VsdmVIb3Vyc0luU2Vj
b25kcyArIDMwOworICAgICAgICBjb25zdCBvdmVyT25lRGF5SW5TZWNvbmRzID0gb25lRGF5SW5T
ZWNvbmRzICsgMzA7CisgICAgICAgIGlmIChpbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGxldCBj
b29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKTsKKyAgICAgICAgICAgIGlmICghY29va2ll
cy5sZW5ndGgpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gY29va2llcyBmb3VuZC4i
KTsKKyAgICAgICAgICAgIGZvciAobGV0IGNvb2tpZSBvZiBjb29raWVzKSB7CisgICAgICAgICAg
ICAgICAgc3dpdGNoIChjb29raWUubmFtZSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIHNo
b3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNr
VGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJUd2VsdmVIb3Vyc0luU2Vj
b25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAg
ICAgY2FzZSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAgICAg
ICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3ZWx2
ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAg
ICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwg
b3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAg
ICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29v
a2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVzZXRD
b29raWVzRm9yQ3VycmVudE9yaWdpbigpOworCisgICAgICAgICAgICBpZiAocGFzc2VkVGVzdHMg
PT09IDQpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIHNob3J0LWxpdmVk
IGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3ZlclR3ZWx2ZUhvdXJz
SW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRo
ZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiAr
IG92ZXJPbmVEYXlJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5
IGF0dHJpYnV0ZSB3YXMgYmV5b25kIHRoZSB0ZXN0IHRocmVzaG9sZHMuIik7CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gaW50ZXJuYWxzIG9iamVjdC4iKTsKKwor
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIG5hdmlnYXRlQ3Jvc3NPcmlnaW4oKSB7CisgICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbk9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWFu
ZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sP2xpbms9cXVlcnkjbGluaz1m
cmFnbWVudCI7CisgICAgfQorCisgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiA9ICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAg
IGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2lu
KSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50
UmVzb3VyY2VPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBp
ZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVz
b3VyY2VPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBk
aWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhuYXZpZ2F0ZUNy
b3NzT3JpZ2luKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0Q29va2llcygpOworICAgICAgICB9CisgICAg
fQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRh
YmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1x
dWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDQ1ZGQxNmMyZWUwMTA4MGUzYzFmMWI0MDIwNmI2NmE4MDJlMGFjMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
YXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20t
cHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBA
CitDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mt
c2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBxdWVyeSBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgdHdvIHNob3J0LWxpdmVk
IGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA0MzIzMCBzZWNvbmRzLgorUEFT
UyBUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFu
IDg2NDMwIHNlY29uZHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxp
bmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9y
LWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNl
LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjVmMDk3NmIyNDg2NjY2ODljMTgxYWE1OTVmMGMx
OGZmNmFmMDUwYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMt
d2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAg
LTAsMCArMSwxMDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2Ny
aXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4K
KyAgICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlw
dCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVlcnkgZ2V0IGNhcHBl
ZCB0byAyNCBob3Vycy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0
aW9uIHRlc3RDb29raWVzKCkgeworICAgICAgICBsZXQgcGFzc2VkVGVzdHMgPSAwOworICAgICAg
ICBmdW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llRGF0YSwg
bWF4QWdlSW5TZWNvbmRzKSB7CisgICAgICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKKyAg
ICAgICAgICAgIGxldCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPSBub3cuZ2V0VGltZSgp
ICsgKG1heEFnZUluU2Vjb25kcyAqIDEwMDApOworCisgICAgICAgICAgICBpZiAobWF4RXhwaXJ5
RGF0ZUluTWlsbGlzZWNvbmRzID4gY29va2llRGF0YVsiZXhwaXJlcyJdKQorICAgICAgICAgICAg
ICAgICsrcGFzc2VkVGVzdHM7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiQ29va2llIG5hbWVkICIgKyBjb29raWVEYXRhWyJuYW1lIl0gKyAiIGV4cGlyZXMg
aW4gbW9yZSB0aGFuICIgKyBtYXhBZ2VJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAg
IH0KKworICAgICAgICBjb25zdCB0d2VsdmVIb3Vyc0luU2Vjb25kcyA9IDEyICogNjAgKiA2MDsK
KyAgICAgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJzaG9ydExp
dmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdlbHZlSG91cnNJblNl
Y29uZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tp
ZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llTWF4QWdlLmxpZmV0
aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0
ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d2VsdmVIb3Vyc0luU2Vjb25kcyk7Cisg
ICAgICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogInNob3J0TGl2
ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdlbHZlSG91cnNBc0V4
cGlyZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRD
b29raWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVFeHBpcmVz
LmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG9uZURheUluU2Vjb25kcyA9
IDIgKiB0d2VsdmVIb3Vyc0luU2Vjb25kczsKKyAgICAgICAgY29uc3QgdHdvRGF5c0luU2Vjb25k
cyA9IDIgKiBvbmVEYXlJblNlY29uZHM7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZU1h
eEFnZSA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgt
QWdlPSIgKyB0d29EYXlzSW5TZWNvbmRzICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tp
ZSA9IGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRD
b29raWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdvRGF5
c0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdvRGF5c0luU2Vj
b25kcyk7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAi
bG9uZ0xpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3b0RheXNB
c0V4cGlyZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZl
ZENvb2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llRXhwaXJl
cy5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCBvdmVyVHdlbHZlSG91cnNJ
blNlY29uZHMgPSB0d2VsdmVIb3Vyc0luU2Vjb25kcyArIDMwOworICAgICAgICBjb25zdCBvdmVy
T25lRGF5SW5TZWNvbmRzID0gb25lRGF5SW5TZWNvbmRzICsgMzA7CisgICAgICAgIGlmIChpbnRl
cm5hbHMpIHsKKyAgICAgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMo
KTsKKyAgICAgICAgICAgIGlmICghY29va2llcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiTm8gY29va2llcyBmb3VuZC4iKTsKKyAgICAgICAgICAgIGZvciAobGV0IGNvb2tp
ZSBvZiBjb29raWVzKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjb29raWUubmFtZSkgewor
ICAgICAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihj
b29raWUsIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBzaG9ydExpdmVkQ29va2llRXhwaXJl
cy5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4
cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENv
b2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2ll
RG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2
ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRD
b29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgcmVzZXRDb29raWVzRm9yQ3VycmVudE9yaWdpbigpOworCisg
ICAgICAgICAgICBpZiAocGFzc2VkVGVzdHMgPT09IDQpIHsKKyAgICAgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1v
cmUgdGhhbiAiICsgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAg
ICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0
IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJPbmVEYXlJblNlY29uZHMgKyAiIHNlY29u
ZHMuIik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJB
dCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJpYnV0ZSB3YXMgYmV5b25kIHRoZSB0ZXN0
IHRocmVzaG9sZHMuIik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgi
Tm8gaW50ZXJuYWxzIG9iamVjdC4iKTsKKyAgICAgICAgCisgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVD
cm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0
aW9uT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3It
Y29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2Uu
aHRtbD9saW5rPXF1ZXJ5IjsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5hdGlvbk9yaWdpbiA9
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHByZXZhbGVudFJlc291cmNlT3Jp
Z2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
KyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJldmFsZW50UmVzb3Vy
Y2VPcmlnaW4pIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1
ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShw
cmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2
YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKG5h
dmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RDb29raWVzKCk7CisgICAgICAg
IH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUt
Zm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxl
bnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1p
bi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRh
YmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JmNjQ5YTU3ZTEzNjRjMDYwNjQ1Njk0MTMw
NDU0MTEzNzQ1ODMwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4t
anMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0NoZWNrIHRoYXQgY29va2llcyBjcmVh
dGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aG91dCBs
aW5rIGRlY29yYXRpb24gZG9uJ3QgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZXhw
aXJlIGFmdGVyIG1vcmUgdGhhbiA4NjQzMCBzZWNvbmRzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tp
ZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3Vy
Y2UtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5r
LWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hZTQ3YjQ5NDg3ZTg5NjcyOWQwYTRiNzc3MGI1MWQ3ODNmNGU4Y2YwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nh
cHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlv
bi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsODYgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvY29v
a2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlv
bigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBhZnRlciBhIGNyb3Nz
LXNpdGUgbmF2aWdhdGlvbiB3aXRob3V0IGxpbmsgZGVjb3JhdGlvbiBkb24ndCBnZXQgY2FwcGVk
IHRvIDI0IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rp
b24gdGVzdENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7CisKKyAgICAg
ICAgZnVuY3Rpb24gY2hlY2tUaGF0Q29va2llRG9lc0V4cGlyZUFmdGVyKGNvb2tpZURhdGEsIG1h
eEFnZUluU2Vjb25kcykgeworICAgICAgICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7CisgICAg
ICAgICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93LmdldFRpbWUoKSAr
IChtYXhBZ2VJblNlY29uZHMgKiAxMDAwKTsKKworICAgICAgICAgICAgaWYgKG1heEV4cGlyeURh
dGVJbk1pbGxpc2Vjb25kcyA8IGNvb2tpZURhdGFbImV4cGlyZXMiXSkKKyAgICAgICAgICAgICAg
ICArK3Bhc3NlZFRlc3RzOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkNvb2tpZSBuYW1lZCAiICsgY29va2llRGF0YVsibmFtZSJdICsgIiBleHBpcmVzIGlu
IGxlc3MgdGhhbiAiICsgbWF4QWdlSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICB9
CisKKyAgICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0gMjQgKiA2MCAqIDYwOworICAgICAg
ICBjb25zdCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIG9uZURheUluU2Vjb25kczsKKyAgICAgICAg
Y29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZU1h
eEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b0RheXNJblNlY29uZHMgKyAiOyIgfTsK
KyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAi
PWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsK
KworICAgICAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRl
RnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29v
a2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUg
OiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9j
dW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIg
KyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAg
IGNvbnN0IG92ZXJPbmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMgKyAzMDsKKyAgICAg
ICAgaWYgKGludGVybmFscykgeworICAgICAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMu
Z2V0Q29va2llcygpOworICAgICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAgICAgICAgZm9y
IChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvb2tp
ZS5uYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llTWF4QWdl
Lm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzRXhwaXJl
QWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZUV4cGly
ZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNFeHBp
cmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAgICAgIGlmIChw
YXNzZWRUZXN0cyA9PT0gMikgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28g
bG9uZy1saXZlZCBjb29raWVzIGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJPbmVEYXlJ
blNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJpYnV0ZSB3
YXMgYmVsb3cgdGhlIHRlc3QgdGhyZXNob2xkcy4iKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOworICAgICAgICAgICAgCisg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3Jh
dGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sIjsKKyAgICB9CisKKyAgICBjb25zdCBk
ZXN0aW5hdGlvbk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHBy
ZXZhbGVudFJlc291cmNlT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9
PT0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4pIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUs
IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0
ZUNvb2tpZUJsb2NraW5nKG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0p
OworCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RD
b29raWVzKCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlz
dGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBjMjU4YjhlMDA1ZDM1NTQx
ODJhZjA2ZDQ4MjU4M2FlNzdlNWExMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50
LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CitQQVNTIEhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3Mt
ZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3Mt
ZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZTAzZmQ4NzEyZWY5ZWRjOWIxODYyZjYzNmQxZTc0
ZWE2ODhkODQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4
ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgi
PgorICAgIDx0aXRsZT5UZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gTWl4ZWQgU3Rh
dGlzdGljczwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBo
b3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJs
ID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJh
bWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BG
cmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRv
cEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisKKyAgICBmdW5j
dGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFz
IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NS
ZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRl
c3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQ
YWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworCisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ikhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9y
aWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVP
cmlnaW4zKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNj
YW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAg
ICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RV
bmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAg
ICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAg
IH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxl
bnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3At
ZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBjMjU4Yjhl
MDA1ZDM1NTQxODJhZjA2ZDQ4MjU4M2FlNzdlNWExMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24t
cHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRh
YmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgSG9zdCBkaWQgbm90IGdldCBjbGFzc2lm
aWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQt
YmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdp
bnMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODU0MDkwOGVkODBkMTM0ZTczODA0OTZhMjc1
MDVhZDAwNWM5N2JhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24t
c3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCAr
MSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8
bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBDbGFzc2lmaWNhdGlv
biBCYXNlZCBvbiBTdWIgRnJhbWUgVW5kZXIgVG9wIEZyYW1lIE9yaWdpbnM8L3RpdGxlPgorICAg
IDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcu
MC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RV
bmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8v
MTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6
Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0
cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkg
eworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgY2xhc3NpZmllZCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0
ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAg
ICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNX
ZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNl
dCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwg
dG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1
YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZy
YW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhj
b21wbGV0ZVRlc3QpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0Rp
ZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOwor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0g
aG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7
CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXBy
ZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRh
YmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11
bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjBjMjU4YjhlMDA1ZDM1NTQxODJhZjA2ZDQ4MjU4M2FlNzdlNWExMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1v
cmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0IGRpZCBub3Qg
Z2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9u
LXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1k
YXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXIt
dG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjExMjBhODU5MzEy
MTE0MDcyZDQ3MjliMzZiYTBhMTc3ZjNkYzQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2
YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJh
c2UuaHRtbApAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVu
Ij4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMg
Zm9yIENsYXNzaWZpY2F0aW9uIEJhc2VkIG9uIFN1YnJlc291cmNlIFVuZGVyIFRvcCBGcmFtZSBP
cmlnaW5zPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhv
c3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwg
PSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFt
ZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZy
YW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlv
biBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNl
dFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RS
dW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdl
c1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworIAorICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVP
cmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0
aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3Rh
bGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRh
UmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRp
b24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cu
aW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7
CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5hbHMu
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RS
dW5uZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3Rz
LXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJl
c291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIwYzI1OGI4ZTAwNWQzNTU0MTgyYWYwNmQ0ODI1ODNhZTc3ZTVhMTMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJl
Y3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0IGRpZCBub3Qg
Z2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9u
LXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFi
YXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVk
aXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWE1YTVkNGJkYTRlNGZkZWVkMTg2
YTNmMDg4MTJmYjhlMjg2ZDU5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJh
c2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbApAQCAt
MCwwICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgor
ICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIENsYXNzaWZp
Y2F0aW9uIEJhc2VkIG9uIFN1YnJlc291cmNlIFVuaXF1ZSBSZWRpcmVjdHMgVG88L3RpdGxlPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIx
MjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhv
c3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRw
Oi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0
dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgp
IHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
c3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGNsYXNzaWZpZWQg
YXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50
U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNv
cmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBn
ZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3Jp
Z2luMik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2Fu
RGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5k
ZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZShmYWxzZSk7CisgICAgfQorPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVk
LXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1t
aXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmRkNjlm
OTQxOWY1MTk4OTU3ZjA5MDhkZDY3NGQ2ODQzNmNiOWM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXBy
ZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjM4OTczMTlhYjBmYjEwMDA1NWE5MzVkNGE5NTJiMmFiOTk0NDgzMzYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0
YWJhc2UuaHRtbApAQCAtMCwwICsxLDYyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9
ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVz
dHMgZm9yIENsYXNzaWZpY2F0aW9uIEJhc2VkIG9uIE1peGVkIFN0YXRpc3RpY3M8L3RpdGxlPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIx
MjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhv
c3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRw
Oi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0
dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAi
aHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luNCA9
ICJodHRwOi8vMTI3LjAuMC41OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRl
c3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5v
dCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGlmICh0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJs
KSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBw
cmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAg
aW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0
cnVlKTsKKyAKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3Jp
Z2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVy
VG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW40KTsKKworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3Jp
Z2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGlj
c1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbjQpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJl
Y3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworCisgICAgICAgICAgICB0ZXN0
UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxl
dGVUZXN0KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRp
c3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9j
dW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5l
ciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0
YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAg
ICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAg
ICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3At
ZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9u
LXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzJkZDY5Zjk0MTlmNTE5ODk1N2YwOTA4ZGQ2NzRkNjg0MzZjYjljNwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1m
cmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0IGNs
YXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50
LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMt
ZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWE3NjIwMGRhMmZmYjFhMDA1NWE4YTE5OGFlMjc4
M2UyZWIzZjUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJh
bWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU3IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNo
YXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIENsYXNzaWZpY2F0aW9uIEJhc2Vk
IG9uIFN1YiBGcmFtZSBVbmRlciBUb3AgRnJhbWUgT3JpZ2luczwvdGl0bGU+CisgICAgPHNjcmlw
dCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4
MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVz
dCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4w
LjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4w
LjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3
LjAuMC40OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW40ID0gImh0dHA6Ly8x
MjcuMC4wLjU6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAg
ICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRp
c3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFz
c2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiSG9zdCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBj
bGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICBpbnRlcm5hbHMu
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAg
IGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworCisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1l
VW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3Jp
Z2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1Vy
bCwgdG9wRnJhbWVPcmlnaW4zKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdp
bjQpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRh
dGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9
KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVy
VGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAg
IHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgfQor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRh
YmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTRkZGNlNWIzMTRjZDdkMmQwZGVjNDhiNmY5
ZjllMGVjY2FiODMwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3Vi
cmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDE0IEBACitUZXN0cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24gc3VicmVzb3VyY2Ug
cmVkaXJlY3QgY29sbHVzaW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBDb2xsdWRpbmcgaG9zdCAxIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLgorUEFTUyBD
b2xsdWRpbmcgaG9zdCAyIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLgorUEFTUyBDb2xs
dWRpbmcgaG9zdCAzIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLgorUEFTUyBDb2xsdWRp
bmcgaG9zdCA0IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLgorUEFTUyBDb2xsdWRpbmcg
bG9jYWxob3N0IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIGFjdHVhbCBzdWIg
ZnJhbWUgcmVkaXJlY3QuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1y
ZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3Vi
cmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTRi
ZmIyZjI1NzdjYmNiZGYzYzFmNGMxNGE0NmE5YWFkNjE2ZjdhZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFi
YXNlLmh0bWwKQEAgLTAsMCArMSw3MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJl
biI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9
Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24gc3Vi
cmVzb3VyY2UgcmVkaXJlY3QgY29sbHVzaW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVl
OworCisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29u
c3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOwor
ICAgIGNvbnN0IHN1YnJlc291cmNlT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVt
cCI7CisgICAgY29uc3Qgc3VicmVzb3VyY2VPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAw
MC90ZW1wIjsKKyAgICBjb25zdCBzdWJyZXNvdXJjZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAu
NDo4MDAwL3RlbXAiOworICAgIGNvbnN0IHN1YnJlc291cmNlT3JpZ2luNCA9ICJodHRwOi8vMTI3
LjAuMC41OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICB0
ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworCisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKHN0YXRpc3RpY3NV
cmwsIHN1YnJlc291cmNlT3JpZ2luMSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKHN1YnJlc291cmNlT3JpZ2luMSwgc3VicmVz
b3VyY2VPcmlnaW4yKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3Vy
Y2VVbmlxdWVSZWRpcmVjdEZyb20oc3VicmVzb3VyY2VPcmlnaW4yLCBzdWJyZXNvdXJjZU9yaWdp
bjMpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJl
ZGlyZWN0RnJvbShzdWJyZXNvdXJjZU9yaWdpbjMsIHN1YnJlc291cmNlT3JpZ2luNCk7CisKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBleHBsaWNpdHkgc2V0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjEpKQorICAgICAgICAgICAgICAg
IHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDEgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFs
ZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4xKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJDb2xsdWRpbmcgaG9zdCAxIGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJl
c291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4yKSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJDb2xsdWRpbmcgaG9zdCAyIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwor
ICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291
cmNlKHN1YnJlc291cmNlT3JpZ2luMikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29s
bHVkaW5nIGhvc3QgMiBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHN1YnJlc291cmNlT3JpZ2luMykpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29s
bHVkaW5nIGhvc3QgMyBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdWJy
ZXNvdXJjZU9yaWdpbjMpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBo
b3N0IDMgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAg
ICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdWJy
ZXNvdXJjZU9yaWdpbjQpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBo
b3N0IDQgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VP
cmlnaW40KSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCA0IGdv
dCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAg
aWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCIpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBsb2Nh
bGhvc3QgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgYWN0dWFsIHN1YiBmcmFt
ZSByZWRpcmVjdC4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1Zl
cnlQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikpCisgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGxvY2FsaG9zdCBnb3QgY2xhc3NpZmllZCBhcyB2
ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfQor
CisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2lu
ZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVy
LnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUs
IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpwqB7CisgICAgICAg
ICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3Rh
dGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5v
dCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAg
bGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAg
ICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50Lm9ubG9hZCA9IHJ1blRlc3Q7CisgICAgICAgICAg
ICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD9yZWRpcmVjdFRvPWh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL29uY2xpY2suaHRtbCI7CisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAg
ICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJl
Y3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tc3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iOGZjYmQ4ZDhmNmQwNWZjNDk0ZDRlZWRkY2Q5Y2I1ZWJkZGUwYzM5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVj
dC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rl
c3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiBzdWJyZXNvdXJjZSByZWRpcmVjdCB0byBv
dGhlciBwcmV2YWxlbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIEhv
c3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1i
YXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRh
dGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTU4MGE1OWY2OWFlMGU3MDllNTA0MGViZjM1MDc3MmE2
ZGY4YmY0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3Vy
Y2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1MSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFy
c2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBm
b3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24gc3VicmVzb3VyY2UgcmVkaXJlY3QgdG8gb3RoZXIg
cHJldmFsZW50LiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgaG9z
dFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9
ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1l
T3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBj
b21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAg
ICAgIGVsc2UgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNl
KHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBnb3QgY2xhc3Np
ZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKyAgICAgICAgICAgIAorICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hK
U1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMSwgdHJ1
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsK
KworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVj
b3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAg
IH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYm
IHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0
cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05v
dGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmws
IGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmln
aW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3Vy
Y2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjMyZGQ2OWY5NDE5ZjUxOTg5NTdmMDkwOGRkNjc0ZDY4NDM2Y2I5YzcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1v
cmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0IGNsYXNzaWZp
ZWQgYXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRh
dGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQwMWVhNmJjMjQ5Mzc1OTJmMGU4OTY3NjE1Yzk5YzVj
OGRjM2ZhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3Vy
Y2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU3IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNo
YXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIENsYXNzaWZpY2F0aW9uIEJhc2Vk
IG9uIFN1YnJlc291cmNlIFVuZGVyIFRvcCBGcmFtZSBPcmlnaW5zPC90aXRsZT4KKyAgICA8c2Ny
aXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4x
OjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJU
ZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4w
LjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3
LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8x
MjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjQgPSAiaHR0cDov
LzEyNy4wLjAuNTo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgewor
ICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3Rh
dGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNs
YXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBpZiAodGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50
IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0
IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIGludGVybmFs
cy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisgICAgICAgIHRlc3RS
dW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7Cisg
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRp
c3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJl
c291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRv
cEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4o
c3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJs
LCB0b3BGcmFtZU9yaWdpbjQpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0
aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3Jk
cygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9z
dCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJu
YWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5uZXJU
ZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJh
c2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUt
cmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmRkNjlmOTQx
OWY1MTk4OTU3ZjA5MDhkZDY3NGQ2ODQzNmNiOWM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZh
bGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJl
c291cmNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVu
aXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3Vi
cmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4
ZjdmMTM5MWM2MjFkZTg2NmUxYmQyM2IwMWJkYTMzMmQwZDlmMzcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0
YWJhc2UuaHRtbApAQCAtMCwwICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9
ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVz
dHMgZm9yIENsYXNzaWZpY2F0aW9uIEJhc2VkIG9uIFN1YnJlc291cmNlIFVuaXF1ZSBSZWRpcmVj
dHMgVG88L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9z
dFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9
ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1l
T3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJh
bWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BG
cmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRv
cEZyYW1lT3JpZ2luNCA9ICJodHRwOi8vMTI3LjAuMC41OjgwMDAvdGVtcCI7CisKKyAgICBmdW5j
dGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJj
ZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZ290IGNsYXNz
aWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVk
KGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRT
dGF0ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29y
ZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3Rh
dGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdl
dCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NV
cmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmln
aW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0
YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
aW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3Qp
OworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0Fu
ZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5s
b2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdp
bmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0
cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVu
VGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lv
bi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1y
ZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkMzkz
OGI3NmM5NzQ0YzNhZmE3YjI1NTA1ZWFlYjQ5ZDg2NmI1MjAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBi
YXNlZCBvbiB0b3AgZnJhbWUgcmVkaXJlY3QgY29sbHVzaW9uLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBDb2xsdWRpbmcgaG9zdCAxIGdvdCBzZXQgYXMgcHJldmFsZW50
IHJlc291cmNlLgorUEFTUyBDb2xsdWRpbmcgaG9zdCAyIGdvdCBzZXQgYXMgcHJldmFsZW50IHJl
c291cmNlLgorUEFTUyBDb2xsdWRpbmcgaG9zdCAzIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291
cmNlLgorUEFTUyBDb2xsdWRpbmcgaG9zdCA0IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LgorUEFTUyBDb2xsdWRpbmcgbG9jYWxob3N0IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
IGFmdGVyIGFjdHVhbCBuYXZpZ2F0aW9uYWwgcmVkaXJlY3QuCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1i
YXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJl
dmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40YTk4M2JjMDZkMzUwZWQ1NjU1MjQwMmRmY2ZkMzM0NTljNjA1Y2VkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3Qt
Y29sbHVzaW9uLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw3MSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBmb3IgY2xhc3NpZmljYXRp
b24gYmFzZWQgb24gdG9wIGZyYW1lIHJlZGlyZWN0IGNvbGx1c2lvbi4iKTsKKyAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgw
MDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0
ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAu
Mjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAu
MC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8xMjcu
MC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjQgPSAiaHR0cDovLzEy
Ny4wLjAuNTo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luNSA9ICJodHRwOi8v
bG9jYWxob3N0OjgwMDAvIjsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKHRvcEZyYW1lT3JpZ2luMSwgdG9wRnJhbWVPcmln
aW4yKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRp
cmVjdEZyb20odG9wRnJhbWVPcmlnaW4yLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSh0b3BGcmFtZU9y
aWdpbjMsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
c3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBleHBsaWNp
dHkgc2V0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFt
ZU9yaWdpbjEpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDEg
Z290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4xKSkK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCAxIGdvdCBjbGFzc2lm
aWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4yKSkKKyAg
ICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCAyIGdvdCBzZXQgYXMgcHJl
dmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMikpCisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhvc3QgMiBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luMykpCisgICAgICAgICAgICAgICAg
dGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgMyBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJj
ZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxl
bnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjMpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
IkNvbGx1ZGluZyBob3N0IDMgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZSh0b3BGcmFtZU9yaWdpbjQpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNv
bGx1ZGluZyBob3N0IDQgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UodG9w
RnJhbWVPcmlnaW40KSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9z
dCA0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJh
bWVPcmlnaW41KSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgbG9jYWxo
b3N0IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIGFjdHVhbCBuYXZpZ2F0aW9u
YWwgcmVkaXJlY3QuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NW
ZXJ5UHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW41KSkKKyAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJDb2xsdWRpbmcgbG9jYWxob3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJl
dmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBp
ZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYg
d2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNl
KHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlz
dGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJl
dmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aHJlZiA9IHRvcEZyYW1lT3JpZ2luNSArICJyZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNl
cy9yZWRpcmVjdC5waHA/cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJl
ZGlyZWN0LWNvbGx1c2lvbi5odG1sI2NvbnRpbnVlIjsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlP
YnNlcnZlcigpOworICAgICAgICBydW5UZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRp
cmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNl
ZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41OWY5OTUzMzgyODBmMzE1YjIyMDAzZjAwODJkMDgxNDg0N2U5YWIzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3Qt
dG8tcHJldmFsZW50LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0
cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24gdG9wIGZyYW1lIHJlZGlyZWN0IHRvIG90aGVy
IHByZXZhbGVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgSG9zdCBj
bGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjI5MmM3NTE2ODg5NzE1OTUzNTRlNjIwNjRlOTgzODMzMGVmY2FlOTQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVj
dC10by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDUxIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04
Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZvciBjbGFzc2lm
aWNhdGlvbiBiYXNlZCBvbiB0b3AgZnJhbWUgcmVkaXJlY3QgdG8gb3RoZXIgcHJldmFsZW50LiIp
OworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9
ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiAr
IGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJo
dHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3Qo
KSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBn
ZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5
IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBh
c3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4xLCB0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworCisgICAgICAgICAgICB0ZXN0
UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxl
dGVUZXN0KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0
aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3Vt
ZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIg
JiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFi
YXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJl
Y29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRh
YmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ5MWJmOTYwMzM1NzA5Yzk5MWRmMWZmZDMy
NDI4YmRiYWU4MDZmOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9w
LWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTAgQEAKK1Rlc3RzIGZvciBjbGFzc2lmaWNhdGlvbiBiYXNlZCBvbiB0b3AgZnJhbWUgdW5p
cXVlIHJlZGlyZWN0cyB0by4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
SG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50
LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNWM0YzdlZTVmNmMzZmVhNjU2MTNmODU4MzYyN2E0Yzk4NTAzMTVk
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVuaXF1
ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU2IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04
Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGZvciBjbGFzc2lm
aWNhdGlvbiBiYXNlZCBvbiB0b3AgZnJhbWUgdW5pcXVlIHJlZGlyZWN0cyB0by4iKTsKKyAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAu
MC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5k
ZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEy
Ny4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8v
MTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0dHA6
Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjQgPSAiaHR0
cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkg
eworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
c3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0
IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBpZiAodGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFs
ZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJI
b3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlx
dWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NU
b3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRv
KHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5p
bnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7
CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRh
UmVjb3JkcygpOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBo
b3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7
CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkK
KyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMg
bm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlz
dGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4
ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjBmMDMxZGNh
NWQwYzk2MDhmNGQ4ZjVhZjg5OWExNmU5ZWY1MWM1OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5
LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGZvciBjbGFzc2lmaWNhdGlvbiBhcyB2ZXJ5IHByZXZh
bGVudCBiYXNlZCBvbiBtaXhlZCBzdGF0aXN0aWNzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2Uu
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLXZlcnktcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJh
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFi
YXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYWIwNmZhMjA5ZWRiYjZmMTE4OGFmZjdkMTYwNjMwNDAyN2Fi
YjE3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1z
dGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IGZvciBjbGFzc2lmaWNhdGlv
biBhcyB2ZXJ5IHByZXZhbGVudCBiYXNlZCBvbiBtaXhlZCBzdGF0aXN0aWNzLiIpOworICAgIGpz
VGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4w
LjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRl
clRlc3QgKyAiL3RlbXAiOworICAgIHZhciB0b3BGcmFtZU9yaWdpbnMgPSBbXTsKKyAgICBjb25z
dCBzdGFydE51bSA9IDI7CisgICAgY29uc3QgbnVtYmVyT2ZTdWJyZXNvdXJjZURvbWFpbnMgPSAz
MDsKKyAgICBmb3IgKHZhciBpID0gc3RhcnROdW07IGkgPCBudW1iZXJPZlN1YnJlc291cmNlRG9t
YWlucyArIHN0YXJ0TnVtOyArK2kpCisgICAgICAgIHRvcEZyYW1lT3JpZ2lucy5wdXNoKCJodHRw
Oi8vMTI3LjAuMC4iICsgaSArICI6ODAwMC90ZW1wIikKKworICAgIGZ1bmN0aW9uIGNvbXBsZXRl
VGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQg
bm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmll
ZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNl
LiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQo
dHJ1ZSk7CisgCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qgc3RhcnRlZCBvdXQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB2YXIgaSA9IDA7CisgICAgICAgICAgICB3aGls
ZSAoaSA8IG51bWJlck9mU3VicmVzb3VyY2VEb21haW5zKSB7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpXSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmws
IHRvcEZyYW1lT3JpZ2luc1tpXSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1l
T3JpZ2luc1tpXSk7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NT
dWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5z
W2krMV0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291
cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaSsx
XSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VV
bmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpKzFdKTsKKwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BG
cmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaSsyXSk7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1l
T3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpKzJdKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8o
c3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW5zW2krMl0pOworICAgICAgICAgICAgICAgIGkg
Kz0gMzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3Rh
dGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRz
KCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0
ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5h
bHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBydW5UZXN0UnVubmVyVGVzdCk7CisgICAgfQorPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50
LXN0b3JlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUt
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhZTAwMzNmZmNjYWVjMjYzYTk2ZjJi
M2Q3ODNlZGNmNzA0MDgzZDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50
LXN0b3JlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyBjbGVh
cmluZyBvZiB3ZWJzaXRlIGRhdGEgc3RvcmUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQQVNTIEhv
c3QgaXMgbm8gbG9uZ2VyIGEgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIHRoZSBzdG9yZSB3YXMg
Y2xlYXJlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4t
bWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjE3
ZWJhYmFkOTE3YWFkNDk5MDMzODFlYTM1MjNlMjA2MmJhZWIwYQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1t
ZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY3IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNo
YXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdCBDbGVhcmVkIFN0b3JlPC90aXRsZT4KKyAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGNsZWFyaW5nIG9mIHdlYnNp
dGUgZGF0YSBzdG9yZS4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0
IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NV
cmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BG
cmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRv
cEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3Qg
dG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKworICAgIGZ1
bmN0aW9uIHRlc3RTdGVwMigpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0UGFzc2Vk
KCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMg
cHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc0Ns
ZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmUoY29tcGxldGVUZXN0KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVz
dEZhaWxlZCgiSG9zdCBpcyBzdGlsbCBhIHByZXZhbGVudCByZXNvdXJjZSBhZnRlciB0aGUgc3Rv
cmUgd2FzIGNsZWFyZWQuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQo
Ikhvc3QgaXMgbm8gbG9uZ2VyIGEgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIHRoZSBzdG9yZSB3
YXMgY2xlYXJlZC4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hK
U1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dl
cmVTY2FubmVkKHRydWUpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0
IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0
b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9w
RnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihz
dGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRv
cEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BG
cmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMpOworCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2so
dGVzdFN0ZXAyKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0
YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAo
ZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1
bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQ
RGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24g
KCkgeworICAgICAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICAgICAgfSk7CisgICAg
fQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJz
aXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBl
cnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjA3Zjk5OWM2ZmViMzI2NWRlZmYzOTUxYWMyZjgxNDBhYzFhNmVlZTAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXIt
aW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyBjbGVhcmluZyBvZiB3ZWJzaXRlIGRhdGEgc3Rv
cmUgKG9uZSBob3VyKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgSG9z
dCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1MgSG9zdCBpcyBubyBsb25n
ZXIgYSBwcmV2YWxlbnQgcmVzb3VyY2UgYWZ0ZXIgdGhlIHN0b3JlIHdhcyBjbGVhcmVkLgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1p
bi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1v
cnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hNmJiMDY1ZTM3YmRhMjQ0ODA0MzM3MjM0NTVmZThmN2Q4Njk2OGMwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFy
LWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS5odG1sCkBA
IC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+
CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT48L3RpdGxlPgorICAgIDxz
Y3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgY2xlYXJpbmcgb2Ygd2Vic2l0ZSBk
YXRhIHN0b3JlIChvbmUgaG91cikuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAg
ICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0
aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29u
c3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBj
b25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAg
IGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisK
KyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAg
dGVzdEZhaWxlZCgiSG9zdCBpcyBzdGlsbCBhIHByZXZhbGVudCByZXNvdXJjZSBhZnRlciB0aGUg
c3RvcmUgd2FzIGNsZWFyZWQuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIkhvc3QgaXMgbm8gbG9uZ2VyIGEgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIHRoZSBzdG9y
ZSB3YXMgY2xlYXJlZC4iKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNo
SlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0U3RlcDIoKSB7CisgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwp
KQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBk
aWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlTW9k
aWZpZWRTaW5jZUhvdXJzKDEsIGNvbXBsZXRlVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
cnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05v
dGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFs
c2UsIGZ1bmN0aW9uKCkge30pOworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ikhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lu
KHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BG
cmFtZU9yaWdpbjEpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJj
ZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3Jp
Z2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0
b3BGcmFtZU9yaWdpbjIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4zKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3Jp
Z2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisKKyAgICAgICAgdGVzdFJ1bm5l
ci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKHRlc3RTdGVwMik7
CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRh
UmVjb3JkcygpOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBo
b3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBydW5UZXN0UnVu
bmVyVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIzZmNmYTA0OTM4Mzc5OTYyZGNkN2E3YmRhNDM5
NTUwMjJlYzJlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNTUgQEAKK1Rlc3QgZm9yIHBhcnRpdGlvbmVkIGFuZCB1bnBhcnRpdGlvbmVk
IGNvb2tpZSBkZWxldGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAKKworLS0tLS0t
LS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBmaXJz
dC1wYXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUn
LgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGll
bnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUKKworLS0tLS0t
LS0KK0ZyYW1lOiAnPCEtLWZyYW1lMi0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBubyBj
b29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScu
CitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2llJy4KK0NsaWVu
dC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMy0t
PicKKy0tLS0tLS0tCitUcnkgdG8gc2V0IHRoaXJkIHBhcnR5IGNvb2tpZS4KKworCistLS0tLS0t
LQorRnJhbWU6ICc8IS0tZnJhbWU0LS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIG5vIGNv
b2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4K
K0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgorQ2xpZW50
LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWU1LS0+
JworLS0tLS0tLS0KK0FmdGVyIHJlbW92YWwsIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuCitE
aWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3Qg
cmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9j
dW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWU2LS0+JworLS0tLS0t
LS0KK0FmdGVyIGRlY2xhc3NpZmllZCwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBu
b3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNl
aXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVu
dC5jb29raWU6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9uLWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTgzNGU4NzMwOGEwMzhkNDI0NjJiMTIxMTJlNGViYzE0NTU5ZGVl
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDExNiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBj
aGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0
IGZvciBwYXJ0aXRpb25lZCBhbmQgdW5wYXJ0aXRpb25lZCBjb29raWUgZGVsZXRpb24uIik7Cisg
ICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBwYXJ0aXRpb25Ib3N0ID0gIjEy
Ny4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5T3Jp
Z2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3QgZmly
c3RQYXJ0eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3Qgc3ViUGF0
aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsgZmlyc3RQ
YXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5Q29v
a2llTmFtZSA9ICJ0aGlyZFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRUaGly
ZFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyB0aGlyZFBhcnR5Q29va2ll
TmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IGZyYWdtZW50V2l0aFJldHVyblVybCA9
ICJodHRwOi8vIiArIHBhcnRpdGlvbkhvc3QgKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29v
a2llLWRlbGV0aW9uLmh0bWwiOworICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tpZXMgPSAiL2dl
dC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiJm5hbWUyPSIg
KyB0aGlyZFBhcnR5Q29va2llTmFtZTsKKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7Cisg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgY29u
c3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBl
bGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAg
ICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsKKyAgICAgICAgfQorICAgICAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIH0KKworCisgICAgZnVuY3Rp
b24gZmlyZURhdGFNb2RpZmljYXRpb25IYW5kbGVyQW5kQ29udGludWUoKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQocnVuVGVzdCwgNTAwKTsKKyAgICAgICAg
fSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0
YVJlY29yZHMoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZXRBc05vblByZXZhbGVudEFuZENv
bnRpbnVlKCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSh0aGlyZFBhcnR5T3JpZ2luLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBp
ZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3Jp
Z2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IHN0aWxsIHNldCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRh
dGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNo
KSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgIC8vIFNldCBm
aXJzdC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRGaXJzdFBh
cnR5Q29va2llICsgIiMiICsgZnJhZ21lbnRXaXRoUmV0dXJuVXJsICsgIiNzdGVwMiI7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAg
ICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIHRoaXJkLXBhcnR5IGhhcyBhY2Nlc3MgdG8gaXRzIGZp
cnN0LXBhcnR5IGNvb2tpZXMuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFz
aCA9ICJzdGVwMyI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVy
bCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgZmlyc3Qt
cGFydHkgY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSAiI3N0ZXAzIjoKKyAgICAgICAgICAgICAgICAvLyBDbGFzc2lmeSBsb2NhbGhv
c3QgYXMgcHJldmFsZW50LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2gg
PSAic3RlcDQiOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1
blRlc3QpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRo
ZSB0aGlyZC1wYXJ0eSBubyBsb25nZXIgaGFzIGFjY2VzcyB0byBpdHMgZmlyc3QtcGFydHkgY29v
a2llcy4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA1IjsK
KyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRv
R2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLiIsIHJ1blRl
c3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA1IjoK
KyAgICAgICAgICAgICAgICAvLyBUcnkgc2V0dGluZyBhIGNvb2tpZSBhcyB0aGlyZC1wYXJ0eS4K
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA2IjsKKyAgICAg
ICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0VGhp
cmRQYXJ0eUNvb2tpZSArICImbWVzc2FnZT1UcnkgdG8gc2V0IHRoaXJkIHBhcnR5IGNvb2tpZS4i
LCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNz
dGVwNiI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgdGhpcmQtcGFydHkgc3Rp
bGwgaGFzIG5vIGFjY2VzcyB0byBjb29raWVzIGFuZCB0aGVuIGZpcmUgZGF0YSByZWNvcmQgcmVt
b3ZhbC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA3IjsK
KyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRv
R2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLiIsIGZpcmVE
YXRhTW9kaWZpY2F0aW9uSGFuZGxlckFuZENvbnRpbnVlKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNyI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sg
dGhhdCB0aGUgdGhpcmQtcGFydHkgc3RpbGwgaGFzIG5vIGFjY2VzcyB0byBjb29raWVzIGFuZCB0
aGVuIGRlY2xhc3NpZnkgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0
aW9uLmhhc2ggPSAic3RlcDgiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0
eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPUFmdGVyIHJlbW92YWws
IHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwgc2V0QXNOb25QcmV2YWxlbnRBbmRDb250aW51
ZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDgiOgor
ICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIHRoaXJkLXBhcnR5IHN0aWxsIGhhcyBu
byBhY2Nlc3MgdG8gY29va2llcy4KKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFy
dHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1BZnRlciBkZWNsYXNz
aWZpZWQsIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwgZmluaXNoVGVzdCk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9j
YXRpb24uaG9zdCA9PT0gcGFydGl0aW9uSG9zdCAmJiBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09
PSAiIiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAg
IHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxz
ZSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdl
ZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENo
aWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0g
InN0ZXAxIjsKKworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9IGVs
c2UgeworICAgICAgICBydW5UZXN0KCk7CisgICAgfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jb29raWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkMTA5MmVmZGVlZTQ2ZmFjNmUzNmFjMDc2ZDgxNGQy
YmJlNWM3YjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rp
b24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjUgQEAKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAKKworLS0tLS0tLS0KK0ZyYW1l
OiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBj
b29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50
LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCisKKy0tLS0tLS0t
CitGcmFtZTogJzwhLS1mcmFtZTItLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgbm8gY29v
a2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgor
Q2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJh
bWUzLS0+JworLS0tLS0tLS0KK0FmdGVyIHVzZXIgaW50ZXJhY3Rpb24sIHNob3VsZCBzdGlsbCBy
ZWNlaXZlIG5vIGNvb2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBh
cnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdpdGgt
YW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91
dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWM3YTM5YzczZTlm
MTVjNjY1MGExNzZiM2VjOTE4YzFiNWZmNjViYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdpdGgtYW5kLXdp
dGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsODQgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNl
dD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0IGZvciBQYXJ0aXRpb25lZCBDb29raWVzIFdpdGgg
YW5kIFdpdGhvdXQgVXNlciBJbnRlcmFjdGlvbjwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9q
cy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgor
ICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRo
aXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCB0aGly
ZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBh
cnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9z
ZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9dmFs
dWUiOworICAgIGNvbnN0IGZyYWdtZW50V2l0aFJldHVyblVybCA9ICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNl
ci1pbnRlcmFjdGlvbi5odG1sIjsKKyAgICBjb25zdCBzdWJQYXRoVG9HZXRDb29raWVzID0gIi9n
ZXQtY29va2llcy5waHA/bmFtZTE9IiArIGZpcnN0UGFydHlDb29raWVOYW1lOworCisgICAgZnVu
Y3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
fSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhhbmRsZXIp
IHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFt
ZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9hZEhhbmRs
ZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsKKyAgICAg
ICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIHNldFVzZXJJbnRlcmFjdGlvbkFuZENvbnRpbnVlKCkgeworICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0
eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4pKQorICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRoaXJkIHBhcnR5IGRpZCBub3QgZ2V0IGxvZ2dlZCBm
b3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAg
fSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChk
b2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFzZVVybCAr
IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyBmcmFnbWVudFdpdGhSZXR1cm5V
cmwgKyAiI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
IiNzdGVwMiI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVw
MyI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBh
dGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29v
a2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSAiI3N0ZXAzIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0
ZXA0IjsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRo
aXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0
KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFz
aCA9ICJzdGVwNSI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVy
bCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgbm8gY29v
a2llcy4iLCBzZXRVc2VySW50ZXJhY3Rpb25BbmRDb250aW51ZSk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDUiOgorICAgICAgICAgICAgICAgIG9wZW5J
ZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdl
PUFmdGVyIHVzZXIgaW50ZXJhY3Rpb24sIHNob3VsZCBzdGlsbCByZWNlaXZlIG5vIGNvb2tpZXMu
IiwgZmluaXNoVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gcGFydGl0aW9uSG9zdCAmJiBk
b2N1bWVudC5sb2NhdGlvbi5oYXNoID09ICIiICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRv
dy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVl
KTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPSAic3RlcDEiOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiTG9jYWxob3N0IHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZSBiZWZv
cmUgdGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9
KTsKKyAgICB9IGVsc2UgeworICAgICAgICBydW5UZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNvb2tpZXMtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42MzQwN2RjZjNlZGVlYjYwZWM5NjQ5Mjg1MDE0NTFhMDUxOTI4NDc4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitDaGVjayB0aGF0IG9ubHkgSHR0cE9ubHkgY29va2ll
cyByZW1haW4gaWYgYWxsIHNjcmlwdC1hY2Nlc3NpYmxlIGNvb2tpZXMgYXJlIGRlbGV0ZWQuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIEJlZm9yZSBzY3JpcHQtYWNjZXNz
aWJsZSBkZWxldGlvbjogQ2xpZW50LXNpZGUgY29va2llIGV4aXN0cy4KK1BBU1MgQmVmb3JlIHNj
cmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiBIdHRwT25seSBjb29raWUgZXhpc3RzLgorUEFTUyBC
ZWZvcmUgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246IFJlZ3VsYXIgc2VydmVyLXNpZGUgY29v
a2llIGV4aXN0cy4KK1BBU1MgQWZ0ZXIgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246ICBIdHRw
T25seSBjb29raWUgZXhpc3RzLgorUEFTUyBBZnRlciBmdWxsIGRlbGV0aW9uOiAgICAgICAgICAg
ICAgIEFsbCBjb29raWVzIGFyZSBnb25lLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUtY29va2llcy1k
YXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2RlbGV0ZS1zY3JpcHQtYWNjZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjBmYzUzNzdkN2RlZTYwNDI5OTBiZTBjMmRiZmI3NDVhZTA1Y2Q1OQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9k
ZWxldGUtc2NyaXB0LWFjY2Vzc2libGUtY29va2llcy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEs
NzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhh
dCBvbmx5IEh0dHBPbmx5IGNvb2tpZXMgcmVtYWluIGlmIGFsbCBzY3JpcHQtYWNjZXNzaWJsZSBj
b29raWVzIGFyZSBkZWxldGVkLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAg
Y29uc3QgaHR0cE9ubHlDb29raWVOYW1lID0gImh0dHAtb25seS1jb29raWUiOworICAgIGNvbnN0
IHNlcnZlclNpZGVDb29raWVOYW1lID0gInNlcnZlci1zaWRlLWNvb2tpZSI7CisgICAgY29uc3Qg
Y2xpZW50U2lkZUNvb2tpZU5hbWUgPSAiY2xpZW50LXNpZGUtY29va2llIjsKKworICAgIGZ1bmN0
aW9uIHNvcnRTdHJpbmdBcnJheShhLCBiKSB7CisgICAgICAgIGEgPSBhLnRvTG93ZXJDYXNlKCk7
CisgICAgICAgIGIgPSBiLnRvTG93ZXJDYXNlKCk7CisKKyAgICAgICAgcmV0dXJuIGEgPiBiID8g
MSA6IGIgPiBhID8gLTEgOiAwOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNoZWNrQ29va2llcyhp
c0FmdGVyU2NyaXB0QWNjZXNzaWJsZURlbGV0aW9uKSB7CisgICAgICAgIGxldCB1bnNvcnRlZFRl
c3RQYXNzZWRNZXNzYWdlcyA9IFtdOworICAgICAgICBsZXQgY29va2llcyA9IGludGVybmFscy5n
ZXRDb29raWVzKCk7CisgICAgICAgIGlmICghY29va2llcy5sZW5ndGgpCisgICAgICAgICAgICB0
ZXN0RmFpbGVkKChpc0FmdGVyU2NyaXB0QWNjZXNzaWJsZURlbGV0aW9uID8gIkFmdGVyIiA6ICJC
ZWZvcmUiKSArICIgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246IE5vIGNvb2tpZXMgZm91bmQu
Iik7CisgICAgICAgIGZvciAobGV0IGNvb2tpZSBvZiBjb29raWVzKSB7CisgICAgICAgICAgICBz
d2l0Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAgICAgICAgICAgICAgY2FzZSBodHRwT25seUNvb2tp
ZU5hbWU6CisgICAgICAgICAgICAgICAgICAgIHVuc29ydGVkVGVzdFBhc3NlZE1lc3NhZ2VzLnB1
c2goKGlzQWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24gPyAiQWZ0ZXIiIDogIkJlZm9yZSIp
ICsgIiBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogIiArIChpc0FmdGVyU2NyaXB0QWNjZXNz
aWJsZURlbGV0aW9uID8gIiAiIDogIiIpICsgIkh0dHBPbmx5IGNvb2tpZSBleGlzdHMuIik7Cisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2Ugc2VydmVyU2lk
ZUNvb2tpZU5hbWU6CisgICAgICAgICAgICAgICAgICAgIGlmIChpc0FmdGVyU2NyaXB0QWNjZXNz
aWJsZURlbGV0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQWZ0ZXIg
c2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246ICBSZWd1bGFyIHNlcnZlci1zaWRlIGNvb2tpZSBl
eGlzdHMuIik7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc29ydGVkVGVzdFBhc3NlZE1lc3NhZ2VzLnB1c2goIkJlZm9yZSBzY3JpcHQtYWNjZXNz
aWJsZSBkZWxldGlvbjogUmVndWxhciBzZXJ2ZXItc2lkZSBjb29raWUgZXhpc3RzLiIpOworICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIGNsaWVudFNpZGVD
b29raWVOYW1lOgorICAgICAgICAgICAgICAgICAgICBpZiAoaXNBZnRlclNjcmlwdEFjY2Vzc2li
bGVEZWxldGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkFmdGVyIHNj
cmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiAgQ2xpZW50LXNpZGUgY29va2llIGV4aXN0cy4iKTsK
KyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgdW5zb3J0
ZWRUZXN0UGFzc2VkTWVzc2FnZXMucHVzaCgiQmVmb3JlIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0
aW9uOiBDbGllbnQtc2lkZSBjb29raWUgZXhpc3RzLiIpOworICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBsZXQgc29ydGVkVGVzdFBh
c3NlZE1lc3NhZ2VzID0gdW5zb3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMuc29ydChzb3J0U3RyaW5n
QXJyYXkpOworICAgICAgICBmb3IgKGxldCB0ZXN0UGFzc2VkTWVzc2FnZSBvZiBzb3J0ZWRUZXN0
UGFzc2VkTWVzc2FnZXMpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKHRlc3RQYXNzZWRNZXNzYWdl
KTsKKyAgICB9CisKKyAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAo
IXRlc3RSdW5uZXIgfHwgIWludGVybmFscykgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8g
dGVzdFJ1bm5lciBvciBubyBpbnRlcm5hbHMuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAg
ICAgYXdhaXQgZmV0Y2goIi9jb29raWVzL3Jlc291cmNlcy9zZXQtaHR0cC1vbmx5LWNvb2tpZS5w
aHA/Y29va2llTmFtZT0iICsgaHR0cE9ubHlDb29raWVOYW1lLCB7IGNyZWRlbnRpYWxzOiAic2Ft
ZS1vcmlnaW4iIH0pOworICAgICAgICBhd2FpdCBmZXRjaCgiL2Nvb2tpZXMvcmVzb3VyY2VzL3Nl
dENvb2tpZXMuY2dpIiwgeyBoZWFkZXJzOiB7ICJTZXQtQ29va2llIjogc2VydmVyU2lkZUNvb2tp
ZU5hbWUgKyAiPTE7IHBhdGg9LzsiIH0sIGNyZWRlbnRpYWxzOiAic2FtZS1vcmlnaW4iIH0pOwor
ICAgICAgICBkb2N1bWVudC5jb29raWUgPSBjbGllbnRTaWRlQ29va2llTmFtZSArICI9MSI7Cisg
ICAgICAgIGNoZWNrQ29va2llcyhmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c0RlbGV0ZUNvb2tpZXNGb3JIb3N0KCJodHRwOi8vMTI3LjAuMC4xIiwgZmFsc2UpOworICAgICAg
ICBjaGVja0Nvb2tpZXModHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc0RlbGV0
ZUNvb2tpZXNGb3JIb3N0KCJodHRwOi8vMTI3LjAuMC4xIiwgdHJ1ZSk7CisgICAgICAgIGxldCBj
b29raWVzTGVmdCA9IGludGVybmFscy5nZXRDb29raWVzKCkubGVuZ3RoOworICAgICAgICBpZiAo
Y29va2llc0xlZnQgPT09IDApCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJBZnRlciBmdWxsIGRl
bGV0aW9uOiAgICAgICAgICAgICAgIEFsbCBjb29raWVzIGFyZSBnb25lLiIpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBZnRlciBmdWxsIGRlbGV0aW9uOiAgICAgICAg
ICAgICAgIiArIGNvb2tpZXNMZWZ0ICsgIiBjb29raWUocykgbGVmdC4iKTsKKyAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90
LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qt
YmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjM3NDMwNjFmZjExOWZhZDNmNTk3ZGMxNWFlMDRiNGI4YzY5Mzc5NDgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0LWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTRUQ6IENvb2tpZSBzdWNjZXNzZnVsbHkg
c2V0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0LWRhdGFiYXNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8t
bm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDIxOWUzZDY4OTMyYmZmMThjNWEwMWM1Njg0YzQ0ZjM3MTZmZGU4MQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9kby1ub3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UuaHRt
bApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxo
ZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0
cyB0aGF0IGJsb2NraW5nIGlzIG5vdCBhcHBsaWVkIHRvIHRvcC1sZXZlbCBuYXZpZ2F0aW9uIHJl
ZGlyZWN0cy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGludGVybmFscy5z
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKworICAgIGZ1bmN0aW9uIGRv
UmVkaXJlY3QoKQorICAgIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0
cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDov
L2xvY2FsaG9zdCIsIHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3Qi
KSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNl
dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3NldC1jb29raWUtb24t
cmVkaXJlY3QucGhwP3N0ZXA9MSI7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAg
fQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ2RvUmVkaXJl
Y3QoKScsIDApIj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNz
LWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1z
dGF0aXN0aWNzLWZvci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wNjljOTFjYWU2ZWFhM2JkY2M4NDYwYzYzMzdiMDJmN2Q2NGYyNGZkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2RvLW5vdC1jYXB0dXJlLXN0YXRpc3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2aWdhdGlv
bnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgdGhhdCBhIG5v
bi1yZWRpcmVjdGVkIHRvcCBmcmFtZSBuYXZpZ2F0aW9uIGRvZXNuJ3QgZ2V0IGNhcHR1cmVkIGlu
IHN0YXRpc3RpY3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2Fs
aG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0
dHA6Ly9sb2NhbGhvc3QiKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNzLWZvci1zaW1w
bGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3Itc2lt
cGxlLXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4MDkzNWEyMzcw
ZWRiZDc2OTI1MTMxOWJhYzk0NGY3MjhiYzc2ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWNhcHR1cmUtc3Rh
dGlzdGljcy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFzZS5odG1sCkBAIC0wLDAg
KzEsNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAg
PG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGls
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlv
bigiVGVzdCB0aGF0IGEgbm9uLXJlZGlyZWN0ZWQgdG9wIGZyYW1lIG5hdmlnYXRpb24gZG9lc24n
dCBnZXQgY2FwdHVyZWQgaW4gc3RhdGlzdGljcy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKyAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgIGxldCB0aW1l
ckhhbmRsZSA9IDA7CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBpZiAo
dGltZXJIYW5kbGUpCisgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVySGFuZGxlKTsKKworICAg
ICAgICBzaG91bGRCZUZhbHNlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1
YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7Cisg
ICAgICAgIHNob3VsZEJlRmFsc2UoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFz
U3ViRnJhbWVVbmRlcigiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsK
KyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0
aW9uLmhvc3QpIHsKKyAgICAgICAgICAgIGNhc2UgIjEyNy4wLjAuMTo4MDAwIjoKKyAgICAgICAg
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJMb2NhbGhvc3Qgd2FzIGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0
aGUgdGVzdCBzdGFydHMuIik7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9u
LmhyZWYgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8t
bm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy5odG1sIjsK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgImxvY2FsaG9zdDo4MDAwIjoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29y
ZHNDYWxsYmFjayhmaW5pc2hUZXN0KTsKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIu
c3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCkpCisgICAgICAgICAgICAgICAgICAgIHRpbWVySGFu
ZGxlID0gc2V0VGltZW91dChmaW5pc2hUZXN0LCAxMDApOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJVbmtu
b3duIGhvc3Q6ICIgKyBkb2N1bWVudC5sb2NhdGlvbi5ob3N0KTsKKyAgICAgICAgICAgICAgICBm
aW5pc2hUZXN0KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIgJiYgd2luZG93LmludGVybmFscykKKyAgICAgICAgcnVuVGVzdCgpOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRh
YmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWFkN2Q5ZTUwMDc2YjZkMTZiYmMyNmE1MDQ2ZTk5Njk2ZDZl
MDc2OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0LWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUxIEBACitUZXN0cyB0aGF0IGJsb2NraW5nIGlzIG5v
dCByZW1vdmVkIG1pZC1mbGlnaHQgaW4gcmVkaXJlY3RzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1No
b3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0LgorRGlkIG5vdCBy
ZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUlQJy4KK1JlY2VpdmVkIGNvb2tp
ZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUxvY2FsaG9zdCcuCitEaWQgbm90IHJlY2VpdmUgY29v
a2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tp
ZTogZmlyc3RQYXJ0eUNvb2tpZUxvY2FsaG9zdD1sb2NhbGhvc3QKKworLS0tLS0tLS0KK0ZyYW1l
OiAnPCEtLWZyYW1lMi0tPicKKy0tLS0tLS0tCitSZWRpcmVjdCBjYXNlIDEsIHNob3VsZCByZWNl
aXZlIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgMTI3LjAuMC4xLgorUmVjZWl2ZWQgY29va2llIG5h
bWVkICdmaXJzdFBhcnR5Q29va2llSVAnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAn
Zmlyc3RQYXJ0eUNvb2tpZUxvY2FsaG9zdCcuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVk
ICd0aGlyZFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQ
YXJ0eUNvb2tpZUlQPTEyNy4wLjAuMQorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUzLS0+
JworLS0tLS0tLS0KK1RyeSB0byBzZXQgdGhpcmQtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3Qg
aW4gYmxvY2tlZCBtb2RlLgorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTQtLT4nCist
LS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgbm8gY29va2llLgorRGlkIG5vdCByZWNlaXZlIGNvb2tp
ZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUlQJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFt
ZWQgJ2ZpcnN0UGFydHlDb29raWVMb2NhbGhvc3QnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBu
YW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisK
Ky0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTUtLT4nCistLS0tLS0tLQorUmVkaXJlY3QgY2Fz
ZSAyLCBzaG91bGQgbm90IHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llIGZvciAxMjcuMC4wLjEu
CitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llSVAnLgorRGlk
IG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUxvY2FsaG9zdCcuCitE
aWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29va2llJy4KK0NsaWVudC1z
aWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQYXJ0eUNvb2tpZUlQPTEyNy4wLjAuMQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5v
dC1yZW1vdmUtYmxvY2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5n
LWluLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzZkMzBhYWRlZjQ1NzdiODUy
NDIzYzZhMjM2ZjNhYTM3MTlmMTAyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5nLWlu
LXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMDAgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBibG9ja2luZyBp
cyBub3QgcmVtb3ZlZCBtaWQtZmxpZ2h0IGluIHJlZGlyZWN0cy4iKTsKKyAgICBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAi
OworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsK
KyAgICBjb25zdCByZXNvdXJjZVBhdGggPSAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3Vy
Y2VzIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyBy
ZXNvdXJjZVBhdGg7CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWVQcmVmaXggPSAiZmly
c3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWVJUCA9IGZpcnN0
UGFydHlDb29raWVOYW1lUHJlZml4ICsgIklQIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2ll
TmFtZUxvY2FsaG9zdCA9IGZpcnN0UGFydHlDb29raWVOYW1lUHJlZml4ICsgIkxvY2FsaG9zdCI7
CisgICAgY29uc3QgdGhpcmRQYXJ0eUNvb2tpZU5hbWUgPSAidGhpcmRQYXJ0eUNvb2tpZSI7Cisg
ICAgY29uc3Qgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/
bmFtZT0iICsgdGhpcmRQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25z
dCBzdWJQYXRoVG9HZXRDb29raWVzID0gIi9nZXQtY29va2llcy5waHA/bmFtZTE9IiArIGZpcnN0
UGFydHlDb29raWVOYW1lSVAgKyAiJm5hbWUyPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZUxvY2Fs
aG9zdCArICImbmFtZTM9IiArIHRoaXJkUGFydHlDb29raWVOYW1lOworICAgIGNvbnN0IHJlZGly
ZWN0Q2hhaW5VcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsgcmVzb3VyY2VQYXRoICsgIi9yZWRpcmVj
dC5waHA/cmVkaXJlY3RUbz1odHRwOi8vIiArIHBhcnRpdGlvbkhvc3QgKyByZXNvdXJjZVBhdGgg
KyBzdWJQYXRoVG9HZXRDb29raWVzOworCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9u
TG9hZEhhbmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYg
KG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFu
ZGxlcjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1l
bnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAo
ZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAg
ICAgICAgICAgICAgICAvLyBTZXQgZmlyc3QtcGFydHkgY29va2llcyBmb3IgMTI3LjAuMC4xIGFu
ZCBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdp
biA9PT0gdGhpcmRQYXJ0eU9yaWdpbikgeworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5j
b29raWUgPSBmaXJzdFBhcnR5Q29va2llTmFtZUxvY2FsaG9zdCArICI9bG9jYWxob3N0O3BhdGg9
Jy8nIjsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9ICJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJs
b2NraW5nLWluLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwjc3RlcDIiOworICAgICAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGZpcnN0UGFy
dHlDb29raWVOYW1lSVAgKyAiPTEyNy4wLjAuMTtwYXRoPScvJyI7CisgICAgICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRh
YmFzZS5odG1sI3N0ZXAxIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAgICAgICAgIC8vIENoZWNr
IHRoYXQgdGhlIGNvb2tpZSBnZXRzIHNlbnQgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEg
c2luY2UgbG9jYWxob3N0IGlzIG5vdCBwcmV2YWxlbnQuCisgICAgICAgICAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0
aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxk
IHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3QuIiwgcnVuVGVzdCk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDQiOworICAgICAgICAgICAg
ICAgIC8vIExvYWQgYW4gaWZyYW1lIGluIGEgcmVkaXJlY3QgY2hhaW4gdGhhdCBzdGFydHMgd2l0
aCBsb2NhbGhvc3QgYW5kIGVuZHMgd2l0aCAxMjcuMC4wLjEuIEV4cGVjdCBhIGNvb2tpZSBmb3Ig
MTI3LjAuMC4xLgorICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUocmVkaXJlY3RDaGFpblVybCAr
ICImbWVzc2FnZT1SZWRpcmVjdCBjYXNlIDEsIHNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNv
b2tpZSBmb3IgMTI3LjAuMC4xLiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSAiI3N0ZXA0IjoKKyAgICAgICAgICAgICAgICAvLyBTZXQgbG9jYWxo
b3N0IGFzIHByZXZhbGVudCB0byBwdXQgaXQgaW4gdGhlIGJsb2NraW5nIGNhdGVnb3J5LgorICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFy
dHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikp
CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNl
dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA1
IjoKKyAgICAgICAgICAgICAgICAvLyBUcnkgdG8gc2V0IHBhcnRpdGlvbmVkIGNvb2tpZSBmb3Ig
bG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMS4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2Nh
dGlvbi5oYXNoID0gInN0ZXA2IjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFy
dHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNvb2tpZSArICImbWVzc2FnZT1Ucnkg
dG8gc2V0IHRoaXJkLXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0IGluIGJsb2NrZWQgbW9kZS4i
LCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNz
dGVwNiI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBubyBjb29raWUgZ2V0cyBzZW50
IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCdzIGNvb2tpZXMg
YXJlIGJsb2NrZWQuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJz
dGVwNyI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1
YlBhdGhUb0dldENvb2tpZXMgKyAgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIG5vIGNvb2tpZS4i
LCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNz
dGVwNyI6CisgICAgICAgICAgICAgICAgLy8gTG9hZCBhbiBpZnJhbWUgaW4gYSByZWRpcmVjdCBj
aGFpbiB0aGF0IHN0YXJ0cyB3aXRoIGxvY2FsaG9zdCBhbmQgZW5kcyB3aXRoIDEyNy4wLjAuMS4g
RXhwZWN0IGEgY29va2llIGZvciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
bG9jYXRpb24uaGFzaCA9ICJzdGVwOCI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZShyZWRp
cmVjdENoYWluVXJsICsgIiZtZXNzYWdlPVJlZGlyZWN0IGNhc2UgMiwgc2hvdWxkIG5vdCByZWNl
aXZlIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgMTI3LjAuMC4xLiIsIHJ1blRlc3QpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA4IjoKKyAgICAgICAgICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9u
Lmhhc2ggPT09ICIiKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1
ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBh
cnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2FzIGNs
YXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydHMuIik7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAg
ICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAgICAgICBydW5U
ZXN0KCk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRlc3QoKTsKKyAg
ICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24t
b24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGhv
dXQtaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwNWRjMDli
Njk2MzlmMWQ5MGM2YzM3YzIyZWQxYjk2Zjg2MWM0NDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1z
ZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24tZGF0
YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgdGhlIHNlc3Np
b24gaXMgbm90IHN3aXRjaGVkIHVwb24gdG9wIGZyYW1lIG5hdmlnYXRpb24gdG8gYSBwcmV2YWxl
bnQgcmVzb3VyY2Ugd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBTaG91bGQgaGF2ZSBhbmQgaGFzIHRoZSBzZXNzaW9uIGNvb2tp
ZS4KK1BBU1MgU2hvdWxkIGhhdmUgYW5kIGhhcyB0aGUgcGVyc2lzdGVudCBjb29raWUuCitQQVNT
IE9yaWdpbiBoYXMgbm8gaXNvbGF0ZWQgc2Vzc2lvbi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5h
dmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dp
dGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlv
bi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhYmZkYjljNDJiZTIwYTczOTY2MjI0NGVlZDRk
NzM2NDhmNWMwZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24t
dG8tcHJldmFsZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsx
LDExMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8
bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHNjcmlw
dD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB0aGUgc2Vzc2lvbiBpcyBub3Qgc3dpdGNo
ZWQgdXBvbiB0b3AgZnJhbWUgbmF2aWdhdGlvbiB0byBhIHByZXZhbGVudCByZXNvdXJjZSB3aXRo
b3V0IHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAg
ICBjb25zdCBwcmV2YWxlbnRPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBj
b25zdCBub25QcmV2YWxlbnRPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBj
b25zdCBzZXNzaW9uQ29va2llTmFtZSA9ICJzZXNzaW9uQ29va2llIjsKKyAgICBjb25zdCBwZXJz
aXN0ZW50Q29va2llTmFtZSA9ICJwZXJzaXN0ZW50Q29va2llIjsKKyAgICBjb25zdCB0d29NaW51
dGVzSW5TZWNvbmRzID0gMTIwOworCisgICAgZnVuY3Rpb24gc2V0U2Vzc2lvbkNvb2tpZSgpIHsK
KyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2Vzc2lvbkNvb2tpZU5hbWUgKyAiPTE7IHBhdGg9
LyI7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2V0UGVyc2lzdGVudENvb2tpZSgpIHsKKyAgICAg
ICAgZG9jdW1lbnQuY29va2llID0gcGVyc2lzdGVudENvb2tpZU5hbWUgKyAiPTE7IHBhdGg9Lzsg
TWF4LUFnZT0iICsgdHdvTWludXRlc0luU2Vjb25kcyArICI7IjsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBjaGVja0Nvb2tpZXMoc2hvdWxkSGF2ZVNlc3Npb25Db29raWUsIHNob3VsZEhhdmVQZXJz
aXN0ZW50Q29va2llKSB7CisgICAgICAgIGxldCBoYXNTZXNzaW9uQ29va2llID0gKGRvY3VtZW50
LmNvb2tpZSArICIiKS5pbmNsdWRlcyhzZXNzaW9uQ29va2llTmFtZSksCisgICAgICAgICAgICBo
YXNQZXJzaXN0ZW50Q29va2llID0gKGRvY3VtZW50LmNvb2tpZSArICIiKS5pbmNsdWRlcyhwZXJz
aXN0ZW50Q29va2llTmFtZSk7CisKKyAgICAgICAgaWYgKHNob3VsZEhhdmVTZXNzaW9uQ29va2ll
ICYmIGhhc1Nlc3Npb25Db29raWUpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91bGQgaGF2
ZSBhbmQgaGFzIHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKKyAgICAgICAgZWxzZSBpZiAoc2hvdWxk
SGF2ZVNlc3Npb25Db29raWUgJiYgIWhhc1Nlc3Npb25Db29raWUpIHsKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoIlNob3VsZCBoYXZlIGJ1dCBkb2Vzbid0IGhhdmUgdGhlIHNlc3Npb24gY29va2ll
LiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICAgICAgfSBlbHNlIGlmICghc2hvdWxkSGF2ZVNlc3Npb25Db29raWUgJiYgaGFzU2Vzc2lv
bkNvb2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkbid0IGhhdmUgYnV0IGhh
cyB0aGUgc2Vzc2lvbiBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIlNob3VsZG4ndCBoYXZlIGFuZCBkb2Vzbid0IGhhdmUgdGhlIHNlc3Npb24gY29va2llLiIp
OworCisKKyAgICAgICAgaWYgKHNob3VsZEhhdmVQZXJzaXN0ZW50Q29va2llICYmIGhhc1BlcnNp
c3RlbnRDb29raWUpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91bGQgaGF2ZSBhbmQgaGFz
IHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsKKyAgICAgICAgZWxzZSBpZiAoc2hvdWxkSGF2ZVBl
cnNpc3RlbnRDb29raWUgJiYgIWhhc1BlcnNpc3RlbnRDb29raWUpIHsKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoIlNob3VsZCBoYXZlIGJ1dCBkb2Vzbid0IGhhdmUgdGhlIHBlcnNpc3RlbnQgY29v
a2llLiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKKyAgICAgICAgfSBlbHNlIGlmICghc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29raWUgJiYgaGFz
UGVyc2lzdGVudENvb2tpZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkbid0IGhh
dmUgYnV0IGhhcyB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIlNob3VsZG4ndCBoYXZlIGFuZCBkb2Vzbid0IGhhdmUgdGhlIHBlcnNp
c3RlbnQgY29va2llLiIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAg
ICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAi
I3N0ZXAxIjoKKyAgICAgICAgICAgICAgICBzZXRTZXNzaW9uQ29va2llKCk7CisgICAgICAgICAg
ICAgICAgc2V0UGVyc2lzdGVudENvb2tpZSgpOworICAgICAgICAgICAgICAgIGNoZWNrQ29va2ll
cyh0cnVlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5oYXNTdGF0aXN0
aWNzSXNvbGF0ZWRTZXNzaW9uKHByZXZhbGVudE9yaWdpbikpIHsKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiT3JpZ2luIGhhcyBpc29sYXRlZCBzZXNzaW9uLiIpOworICAgICAgICAg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAg
ICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPcmlnaW4g
aGFzIG5vIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaHJlZiA9IG5vblByZXZhbGVudE9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91
dC1pbnRlcmFjdGlvbi5odG1sI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9y
aWdpbiAhPT0gbm9uUHJldmFsZW50T3JpZ2luKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJTdGVwIDIgaXMgbm90IG9uICIgKyBub25QcmV2YWxlbnRPcmlnaW4gKyAiLiIpOworICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHBy
ZXZhbGVudE9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlm
ICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRPcmln
aW4pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKHByZXZhbGVudE9yaWdp
biArICIgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0
aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcocnVuVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBwcmV2YWxlbnRPcmlnaW4gKyAi
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRp
b24tdG8tcHJldmFsZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24uaHRtbCNzdGVwNCI7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAgICAg
ICAgIGNoZWNrQ29va2llcyh0cnVlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1
bm5lci5oYXNTdGF0aXN0aWNzSXNvbGF0ZWRTZXNzaW9uKHByZXZhbGVudE9yaWdpbikpCisgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk9yaWdpbiBoYXMgaXNvbGF0ZWQgc2Vzc2lvbi4i
KTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQo
Ik9yaWdpbiBoYXMgbm8gaXNvbGF0ZWQgc2Vzc2lvbi4iKTsKKyAgICAgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJVbmtu
b3duIGhhc2guIik7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlv
bi5oYXNoID09PSAiIikgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luICE9
PSBwcmV2YWxlbnRPcmlnaW4pCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJUZXN0IGlzIG5vdCBz
dGFydGluZyBvdXQgb24gIiArIHByZXZhbGVudE9yaWdpbiArICIuIik7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50T3JpZ2luKSkK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKHByZXZhbGVudE9yaWdpbiArICIgd2FzIGNsYXNz
aWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydHMuIik7Cisg
ICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgfSk7
CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJl
ci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2Ut
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5r
LXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wZmJhODEwMzVlMmZlY2JhMTM5NGQwMWRmMmU5YmUyMDY5NWU4NWE1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20t
cHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBA
CitDaGVjayB0aGF0IGRvY3VtZW50LnJlZmVycmVyIGlzIGRvd25ncmFkZWQgdG8gdGhlIGVUTEQr
MSBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVlcnkuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSByZWZlcnJlciBpcyBkb3duZ3JhZGVk
LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9k
b3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVyeS1mcm9tLXBy
ZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24t
d2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOWFlYmRlOTViZThhMDUyYWZmMzY3OWMwNjg4NWFlMTcwMmUxZDc1NAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVyeS1mcm9t
LXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvY29va2llcy9y
ZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0
VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiQ2hl
Y2sgdGhhdCBkb2N1bWVudC5yZWZlcnJlciBpcyBkb3duZ3JhZGVkIHRvIHRoZSBlVExEKzEgYWZ0
ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIHF1ZXJ5LiIpOworICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworCisgICAgbGV0IG51bWJlck9mVHJpZXMgPSAwOworICAgIGZ1bmN0
aW9uIHRlc3RSZWZlcnJlcigpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LnJlZmVycmVyID09PSBw
cmV2YWxlbnRSZXNvdXJjZU9yaWdpbiArICIvIikgeworICAgICAgICAgICAgdGVzdFBhc3NlZCgi
VGhlIHJlZmVycmVyIGlzIGRvd25ncmFkZWQuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UgaWYgKCsrbnVtYmVyT2ZU
cmllcyA8PSA1KQorICAgICAgICAgICAgc2V0VGltZW91dCh0ZXN0UmVmZXJyZXIsIDIwMCk7Cisg
ICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhlIHJlZmVycmVyIGlzIG5v
dCBkb3duZ3JhZGVkOiAiICsgZG9jdW1lbnQucmVmZXJyZXIpOworICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorICAgIH0KKworICAg
IGZ1bmN0aW9uIG5hdmlnYXRlU2FtZU9yaWdpblRvQWRkUXVlcnkoKSB7CisgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhyZWYgPSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiArICIvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGlu
ay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sP2xpbms9cXVlcnkiOworICAgIH0K
KworICAgIGZ1bmN0aW9uIG5hdmlnYXRlQ3Jvc3NPcmlnaW4oKSB7CisgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbk9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVyeS1m
cm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sIjsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5h
dGlvbk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHByZXZhbGVu
dFJlc291cmNlT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJl
dmFsZW50UmVzb3VyY2VPcmlnaW4gJiYgZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoID09PSAiIikg
eworICAgICAgICAgICAgbmF2aWdhdGVTYW1lT3JpZ2luVG9BZGRRdWVyeSgpOworICAgICAgICB9
IGVsc2UgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJldmFsZW50UmVzb3VyY2VP
cmlnaW4pIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7
CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2
YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxl
bnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKG5hdmln
YXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0UmVmZXJyZXIoKTsKKyAgICAgICAgfQor
ICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjUyMTlkZDNiMTFmMmEzNGM0NTc1MzQwZTczOGRhZGNmYTBjY2ZjYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9l
bmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAor
VGVzdCBmb3IgZW5hYmxpbmcgZGVidWcgbW9kZSBhbmQgdGhhdCBpdCBwZXJtYW5lbnRseSB0cmVh
dHMgM3JkcGFydHl0ZXN0d2Via2l0Lm9yZyBhcyBhIHByZXZhbGVudCByZXNvdXJjZS4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaHR0cDovLzNyZHBhcnR5dGVzdHdlYmtp
dC5vcmcgZ290IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgaW4gZGVidWcgbW9kZS4KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5hYmxlLWRl
YnVnLW1vZGUtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjYzN2ZmOTIyNTY3ZjlhNDcyODI3M2RmYTQ3MzI2MzdhNDg1Y2I5ZjUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5hYmxl
LWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4K
KyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgZm9yIGVuYWJsaW5nIGRl
YnVnIG1vZGUgYW5kIHRoYXQgaXQgcGVybWFuZW50bHkgdHJlYXRzIDNyZHBhcnR5dGVzdHdlYmtp
dC5vcmcgYXMgYSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly8zcmRwYXJ0eXRlc3R3
ZWJraXQub3JnIjsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJu
YWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2lu
KSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKHRoaXJkUGFydHlPcmlnaW4gKyAiIGFscmVh
ZHkgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzRGVidWdNb2RlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBh
cnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCh0aGlyZFBhcnR5T3Jp
Z2luICsgIiBkaWRuJ3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKHRoaXJkUGFydHlP
cmlnaW4gKyAiIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlIGluIGRlYnVnIG1vZGUuIik7
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzRGVidWdNb2RlKGZhbHNl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZh
dGhlcmluZy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJhc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjAxODAzYmZjYjUzYjE0MDQ5ZDVlMWRhYWU1YjI1YjYyN2ZhY2U1YTUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBA
QAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNT
IEdyYW5kZmF0aGVyZWQgY29va2llIHdhcyBub3QgcHVyZ2VkLgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmct
ZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhZjBiODU3ZjJl
OGMwNzQxYTVhNWNjODRhNzg5ODdkM2M1Yzg1ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0
YWJhc2UuaHRtbApAQCAtMCwwICsxLDExNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5n
PSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRl
c3QgZm9yIEdyYW5kZmF0aGVyaW5nPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29u
c3QgZmlyc3RQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0
IGZpcnN0UGFydHlCYXNlVXJsID0gZmlyc3RQYXJ0eU9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVOYW1lID0gImZp
cnN0UGFydHlDb29raWUiOworICAgIGNvbnN0IHRoaXJkUGFydHlDb29raWVOYW1lID0gInRoaXJk
UGFydHlDb29raWUiOworICAgIGNvbnN0IGNvb2tpZVZhbHVlID0gInZhbHVlIjsKKyAgICBjb25z
dCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIg
KyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9IiArIGNvb2tpZVZhbHVlOworICAgIGNv
bnN0IHJldHVyblVybCA9IGZpcnN0UGFydHlPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvZ3JhbmRmYXRoZXJpbmcuaHRtbCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhp
cmRQYXJ0eU9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMiOworICAg
IGNvbnN0IHN1YlBhdGhUb1NldFRoaXJkUGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhwP25h
bWU9IiArIHRoaXJkUGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT0iICsgY29va2llVmFsdWU7CisK
KyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKGZhbHNlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gZmlyZURhdGFNb2RpZmljYXRpb25IYW5kbGVyQW5kQ29u
dGludWUoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0
YVJlY29yZHNDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAg
ICAgICAgfSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNz
QW5kRGF0YVJlY29yZHMoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjbGVhckluTWVtb3J5QW5k
UGVyc2lzdGVudFN0b3JlQW5kQ29udGludWUoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc0NsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmUoZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRl
c3QoKSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAg
ICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAgICAvLyBTZXQgYSBmaXJzdC1wYXJ0
eSBjb29raWUgZm9yIGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlv
bi5ocmVmID0gZmlyc3RQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2ll
ICsgIiMiICsgcmV0dXJuVXJsICsgIiNzdGVwMiI7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0
aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgbG9jYWxo
b3N0J3MgY29va2llIGlzIHRoZXJlLgorICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5jb29r
aWUgIT09IGZpcnN0UGFydHlDb29raWVOYW1lICsgIj0iICsgY29va2llVmFsdWUpCisgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkZpcnN0LXBhcnR5IGNvb2tpZSBub3Qgc2V0LiIpOwor
ICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgLy8gQ2xlYXIgc3RvcmUgdG8gdHJpZ2dl
ciBncmFuZGZhdGhlcmluZy4KKyAgICAgICAgICAgICAgICBjbGVhckluTWVtb3J5QW5kUGVyc2lz
dGVudFN0b3JlQW5kQ29udGludWUoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFz
aCA9ICJzdGVwNSI7CisgICAgICAgICAgICAgICAgLy8gU2V0IGxvY2FsaG9zdCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKCJodHRwOi8vbG9jYWxob3N0IikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJMb2NhbGhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKyAgICAgICAgICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA1IjoKKyAgICAg
ICAgICAgICAgICAvLyBTZXQgYSBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIDEyNy4wLjAuMS4KKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eUJhc2VVcmwg
KyBzdWJQYXRoVG9TZXRUaGlyZFBhcnR5Q29va2llICsgIiMiICsgcmV0dXJuVXJsICsgIiNzdGVw
NiI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDYiOgor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDciOworICAgICAg
ICAgICAgICAgIC8vIFNldCAxMjcuMC4wLjEgYXMgcHJldmFsZW50IHJlc291cmNlCisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6
Ly8xMjcuMC4wLjEiLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vMTI3LjAu
MC4xIikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCIxMjcuMC4wLjEgZGlk
IG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgcnVuVGVzdCgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSAiI3N0ZXA3IjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5s
b2NhdGlvbi5oYXNoID0gInN0ZXA4IjsKKyAgICAgICAgICAgICAgICAvLyBUcmlnZ2VyIGEgcHVy
Z2UuCisgICAgICAgICAgICAgICAgZmlyZURhdGFNb2RpZmljYXRpb25IYW5kbGVyQW5kQ29udGlu
dWUoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwOCI6
CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBsb2NhbGhvc3QncyBjb29raWUgaXMgc3Rp
bGwgdGhlcmUuCisgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gZmlyc3RQ
YXJ0eUNvb2tpZU5hbWUgKyAiPSIgKyBjb29raWVWYWx1ZSkKKyAgICAgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiRmlyc3QtcGFydHkgY29va2llIHB1cmdlZC4iKTsKKyAgICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkdyYW5kZmF0aGVyZWQgY29v
a2llIHdhcyBub3QgcHVyZ2VkLiIpOworICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiU2hvdWxkIG5vdCBiZSByZWFjaGVkLiIpOworICAgICAgICAgICAgICAg
IGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2Nh
dGlvbi5oYXNoID09PSAiIiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxz
KSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRz
UmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5p
bXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7CisKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRG
cmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3Rl
cDEiOworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9IGVsc2UKKyAg
ICAgICAgcnVuVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbG9nLWNyb3Nz
LXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xvZy1jcm9zcy1zaXRlLWxvYWQtd2l0aC1saW5r
LWRlY29yYXRpb24uaHRtbAppbmRleCBjNmNiMGRiYTA1NmMxOTFhYjk0ZWFiMzdiM2RmMTNlMmNi
OWU4ZjE5Li5mY2M4MmM1NjU2ODI4ZGYwNWFjYmMyM2FiODBlZTA2NGJhMGE3OGZmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbG9nLWNy
b3NzLXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9sb2ctY3Jvc3Mtc2l0ZS1sb2FkLXdp
dGgtbGluay1kZWNvcmF0aW9uLmh0bWwKQEAgLTgsNiArOCw3IEBACiA8ZGl2IGlkPSJvdXRwdXQi
PjwvZGl2PgogPHNjcmlwdD4KICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZShmYWxzZSk7CiAgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICB9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODlmODU1YTc4OWNmMTBiZjMzMGY0YzkyZWExMmI5
NDFhYmVmYzA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVy
YWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBDb29raWUgbm90IGRl
bGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1k
YXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDk3ZTgwZmQ2NjRlZTFlYTgwMzhkOWU4NzJjNzM5NTcyOTBmNTEx
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1k
YXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFu
Zz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5U
ZXN0cyBmb3IgTm9uLVByZXZhbGVudCBSZXNvdXJjZSBXaXRoIFVzZXIgSW50ZXJhY3Rpb248L3Rp
dGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4w
LjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVu
ZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3Qgb3RoZXJQcmV2YWxlbnRVcmwgPSAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3Qo
KSB7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09ICIiKQorICAgICAgICAgICAgdGVz
dEZhaWxlZCgiZG9jdW1lbnQuY29va2llIG5vdCBlbXB0eS4iKTsKKyAgICAgICAgY29uc3QgY29v
a2llID0gInRlc3RDb29raWU9dGVzdFZhbHVlIjsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0g
Y29va2llICsgIjsgbWF4LWFnZT0xMDA7IjsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAh
PT0gY29va2llKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIGRpZCBu
b3QgZ2V0IHNldC4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBh
cyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICAvLyBUaGlzIGlzIGRv
bmUgdG8gbm90IGhhdmUgYW4gZW1wdHkgc2V0IG9mIHByZXZhbGVudCByZXNvdXJjZXMuCisgICAg
ICAgICAgICAvLyBPdGhlcndpc2UgZGF0YSByZWNvcmRzIGFyZSBuZXZlciBzY2FubmVkLgorICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uob3RoZXJQ
cmV2YWxlbnRVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICghdGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZhbGVudFVybCkp
CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk90aGVyIGhvc3QgZGlkIG5vdCBnZXQg
c2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCB0cnVl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2Vy
IGludGVyYWN0aW9uLiIpOworCisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFs
bFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgPT09IGNvb2tpZSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb29raWUgbm90IGRlbGV0ZWQuIik7
CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiQ29va2llIGRlbGV0ZWQgb3IgZG9jdW1lbnQuY29va2llIGNvbnRhaW5z
IG90aGVyIGNvb2tpZXM6ICIgKyBkb2N1bWVudC5jb29raWUpOworCisgICAgICAgICAgICAgICAg
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVE
YXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNz
QW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0g
aG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5
UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgIHJ1blRl
c3RSdW5uZXJUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9u
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFj
dGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg5Zjg1NWE3ODljZjEwYmYz
MzBmNGM5MmVhMTJiOTQxYWJlZmMwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdp
dGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1
IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BB
U1MgQ29va2llIG5vdCBkZWxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0
LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNl
ci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiY2U5OTA0NWYwYTNlY2Nk
YmFkMTg3ODdlZWQ4ZmZmNjY1N2ZmNjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13
aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY1IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIE5vbi1QcmV2YWxlbnQgUmVzb3VyY2Ug
V2l0aG91dCBVc2VyIEludGVyYWN0aW9uPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAg
Y29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlz
dGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0
IG90aGVyUHJldmFsZW50VXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC90ZW1wIjsKKworICAg
IGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQuY29v
a2llICE9PSAiIikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBub3Qg
ZW1wdHkuIik7CisgICAgICAgIGNvbnN0IGNvb2tpZSA9ICJ0ZXN0Q29va2llPXRlc3RWYWx1ZSI7
CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZSArICI7IG1heC1hZ2U9MTAwOyI7Cisg
ICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09IGNvb2tpZSkKKyAgICAgICAgICAgIHRlc3RG
YWlsZWQoImRvY3VtZW50LmNvb2tpZSBkaWQgbm90IGdldCBzZXQuIik7CisKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFs
c2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsK
KworICAgICAgICAgICAgLy8gVGhpcyBpcyBkb25lIHRvIG5vdCBoYXZlIGFuIGVtcHR5IHNldCBv
ZiBwcmV2YWxlbnQgcmVzb3VyY2VzLgorICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIGRhdGEgcmVj
b3JkcyBhcmUgbmV2ZXIgc2Nhbm5lZC4KKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsLCB0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2Uob3RoZXJQcmV2YWxlbnRVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJPdGhlciBob3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24o
c3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0
IGRpZCBub3QgZ2V0IGNsZWFyZWQgb2YgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRz
Q2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1l
bnQuY29va2llID09PSBjb29raWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFBh
c3NlZCgiQ29va2llIG5vdCBkZWxldGVkLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBkZWxldGVk
IG9yIGRvY3VtZW50LmNvb2tpZSBjb250YWlucyBvdGhlciBjb29raWVzOiAiICsgZG9jdW1lbnQu
Y29va2llKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1No
b3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3
ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYg
KGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RS
dW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5u
ZWQodHJ1ZSk7CisgICAgICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgICAgICB9KTsK
KyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291
cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0LWRhdGFiYXNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tcHJldmFsZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGly
ZC1wYXJ0eS1jb250ZXh0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZmI5N2Y5
MWZjZDMzY2M5Nzg5NzljZDQ4YTU1YTQ5NDc0ZDI3NzExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQt
cmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1m
cmFtZTEtLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgb25lIGNvb2tpZS4KK1JlY2VpdmVk
IGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5j
b29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlcy1j
YW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0LWRhdGFiYXNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZh
bGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4
dC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2NGNmY2IxZjNlMzcyMGZjYTIyM2M0MmQ4Nzhj
MjVhOTY2MjI5YmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1j
b29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEs
NjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1l
dGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0IHRvIGVuc3VyZSBub24tcHJldmFs
ZW50IHJlc291cmNlcyBjYW4gYWNjZXNzIHRoZWlyIGNvb2tpZXMgaW4gYSB0aGlyZCBwYXJ0eSBj
b250ZXh0PC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgcGFydGl0aW9uSG9z
dCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhpcmRQ
YXJ0eU9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNv
bnN0IGZpcnN0UGFydHlDb29raWVOYW1lID0gImZpcnN0UGFydHlDb29raWUiOworICAgIGNvbnN0
IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiAr
IGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgY29uc3QgZnJhZ21l
bnRXaXRoUmV0dXJuVXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRo
aXJkLXBhcnR5LWNvbnRleHQuaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9
ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZTsKKworICAg
IGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2Us
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5k
bGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJp
ZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbkxvYWRI
YW5kbGVyKSB7CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7Cisg
ICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50
LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAg
ICAgICAgLy8gU2V0IGEgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3QuCisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3Vi
UGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIGZyYWdtZW50V2l0aFJldHVyblVybCAr
ICIjc3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0
ZXAyIjoKKyAgICAgICAgICAgICAgICAvLyBMb2FkIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEg
YW5kIGNoZWNrIHRoYXQgaXQgZ2V0cyBpdHMgY29va2llLgorICAgICAgICAgICAgICAgIG9wZW5J
ZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdl
PVNob3VsZCByZWNlaXZlIG9uZSBjb29raWUuIiwgZmluaXNoVGVzdCk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24u
aG9zdCA9PT0gcGFydGl0aW9uSG9zdCAmJiBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09ICIiICYm
IHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Cisg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2lu
LCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4sIGZhbHNlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJz
dGVwMSI7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNv
b2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZy
YW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODYzYzcyMDJiMDNlNzcwZDZlNDQ2ZmI2ZjM0MDBmYjM4YzU5ZjUzMAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAt
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJl
Y3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEy
Ny4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVk
QXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBp
cyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3Rp
bmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iNWJkYTZmOWYxYmNlYmY0ODk0NTViZWNlNDg1ZjVjZWNkMWY2MDljCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1p
cC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3Rz
IGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAg
ICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9u
IGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5p
c2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENo
YWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKwor
ICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYg
KGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAg
ICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBt
ZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisg
ICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAg
ICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3Rp
ZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygp
IHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdp
c3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4w
LjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEy
Ny4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRw
Oi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAg
ICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAg
ICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikg
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNr
KGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHA/cmVkaXJlY3RUbz1odHRw
Oi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJl
Y3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3Jlc291cmNlcy9pZnJhbWUtcmVwb3J0LWJhY2stbG9hZGVkLmh0bWwiPgorPC9pZnJh
bWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9j
YWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJh
bWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODYzYzcyMDJiMDNlNzcwZDZlNDQ2ZmI2ZjM0MDBmYjM4YzU5ZjUz
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAt
dG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0
cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBw
cm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0
IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8v
MTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVy
ZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIp
IGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxv
Y2FsaG9zdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1p
cC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YjVlZTk5MzcwNDEwNTJk
YzI2ZThmNmE1ODY5YTIyMTMyMDAzYTMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAg
IGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlm
cmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRy
dWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1l
c3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQor
CisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAg
ICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2
ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5k
ZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVu
dC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0
ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJl
ZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkK
KyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAg
fQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRC
ZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigi
aHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNo
b3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGlu
Z1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAg
ICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGly
ZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAg
ICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJ
blJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAg
ICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0Nh
bGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHAvP3JlZGlyZWN0
VG89aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2Vz
L3JlZGlyZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvaWZyYW1lLXJlcG9ydC1iYWNrLWxvYWRlZC5odG1sIj4K
KzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8t
aXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliNTE2ZjEzMmY5ZmIxMDEzNjgyMjYzYzZmMmM4MTBiN2Zh
ZjlkOGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgbm9u
LXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNv
dW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xv
Y2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAi
aHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NS
ZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2Nh
bGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJv
eGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAt
dG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQ5Y2E1OTAxZGI4
MGUwZGQwMmMyMDUyMDMzYzE1N2RkZDM2ZTMxZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3Rp
bmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxo
b3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBy
ZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRi
b3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5
bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJl
Y2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsK
KyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
ICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxz
ZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9u
IHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09
PSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5k
YXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1
bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQ
YWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0No
ZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7Cisg
ICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAg
c2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1l
VW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAg
ICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVk
aXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAg
ICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVk
QXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScp
OworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxh
c3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3Qo
KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJl
Y29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9Cisg
ICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8vMTI3LjAu
MC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcGFnZS13aXRoLW5vbi1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC5odG1sIj4KKzwv
aWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUt
d2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9j
YWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9u
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1k
YXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWI1MTZmMTMyZjlmYjEwMTM2ODIyNjNj
NmYyYzgxMGI3ZmFmOWQ4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdp
dGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2Fs
aG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCBy
ZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRi
b3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJh
bWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQor
UEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0
dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAu
MC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8t
bG9jYWxob3N0LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJh
c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zMWUzM2Y2NjdkYTM1OWYzYTgyYmYzYzBjMzEwZDM0ZWMzNzVi
MzRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNl
Lmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgbm9u
LXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNv
dW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxz
ZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICB2
YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0
YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2
ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1Mi
KSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBs
YWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjog
IiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWlu
TG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAg
ICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2Nh
bGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUo
J3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDov
L2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJl
VHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJo
dHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBz
dGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENo
YWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQ
YWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVj
a1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcGFnZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QuaHRtbCI+Cis8L2lmcmFtZT4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
bi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzE1Yzg1ZWI0N2UwZjA4NDE2ZTYxZmQwMTVmZDdhZTNjYjg2NmI2OQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2Fu
ZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10
by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAK
K1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEg
bm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJl
ZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikg
aXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0
aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BB
U1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRw
Oi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVz
dGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9z
dC10by1pcC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk3MzhlYTNiNTlhMGE3MDc0M2QzNDVkZjA1MmVhNjI5ZDJmNmI5M2QKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlv
bigiVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4g
YSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAg
anNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJt
ZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5p
c2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNU
ZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxv
YWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAg
ICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVu
dC5vcmlnaW4gPT09ICJudWxsIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmlu
ZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZl
bnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVj
dGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5S
ZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQp
CisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAg
IH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxk
QmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIo
Imh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBz
aG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3Rp
bmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRp
cmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisg
ICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdl
SW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHND
YWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgw
MDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcGFnZS13aXRoLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLmh0bWwiPgorPC9pZnJhbWU+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRi
b3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzE1Yzg1ZWI0N2UwZjA4NDE2ZTYxZmQwMTVmZDdhZTNjYjg2NmI2OQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94
ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHBy
b3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3Qi
LCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8x
MjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJl
ZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0Iikg
aXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1u
ZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRv
LWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3ZmFmMDBhOGZkNzJm
MTQ0ZWFhZWVlNGE3ZDJkMGNiNDliOGQ5OTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5n
LWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRv
LWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
cmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hl
ZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMg
PSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2Vp
dmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAg
ICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAg
IH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsK
KyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJl
Y2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAi
bnVsbCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikg
PT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFj
ZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIg
KyBldmVudC5vcmlnaW4pOworCisgICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxv
YWRlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAg
ICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAg
ZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxo
b3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9s
b2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRy
dWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0
cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3Rh
dHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFp
bkxvYWRlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKworICAg
ICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBE
YXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFn
ZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tT
dGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10
by1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0
OWJmYjkwY2MxYWM1ZjkzMTVkZGYwOWNkNGI5MzFjOThiNzQ3ZWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1w
cmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjQgQEAK
K1Rlc3RzIHRoYXQgY29va2llIGJsb2NraW5nIGlzIGFwcGxpZWQgdG8gcGluZyBsb2Fkcy4KKyAg
IAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1Nob3VsZCBy
ZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQ
YXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29r
aWU9dmFsdWUKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMi0tPicKKy0tLS0tLS0tCitT
aG91bGQgcmVjZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAn
Zmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0t
LS0tCitGcmFtZTogJzwhLS1mcmFtZTMtLT4nCistLS0tLS0tLQorUGluZyByZWNlaXZlZC4KK0hU
VFBfSE9TVDogbG9jYWxob3N0OjgwMDAKK1JFUVVFU1RfVVJJOiAvY29udGVudGV4dGVuc2lvbnMv
cmVzb3VyY2VzL3NhdmUtcGluZy5waHA/dGVzdD1waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZQor
Tm8gY29va2llcyBpbiBwaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGlu
Zy10by1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjIxMjgx
MTU4ZmQzN2VhZWRkMGM1NGVhYjFlNDczOGU5MGE2NWRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFs
ZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMDAgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgi
PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBjb29raWUgYmxv
Y2tpbmcgaXMgYXBwbGllZCB0byBwaW5nIGxvYWRzLjwvZGl2PgorPGEgaWQ9InRhcmdldExpbmsi
IGhyZWY9IiMiIHBpbmc9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9jb250ZW50ZXh0ZW5zaW9ucy9y
ZXNvdXJjZXMvc2F2ZS1waW5nLnBocD90ZXN0PXBpbmctdG8tcHJldmFsZW50LXJlc291cmNlIj5U
aGUgbGluazwvYT4KKzxzY3JpcHQ+CisgICAgaWYgKHRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgY29uc3QgcGFydGl0aW9uSG9zdCA9ICIxMjcu
MC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiOworICAgIGNvbnN0IHJlc291cmNlUGF0aCA9ICIvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0
eU9yaWdpbiArIHJlc291cmNlUGF0aDsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9
ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29v
a2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICIm
dmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHJldHVyblVybCA9ICJodHRwOi8vIiArIHBhcnRpdGlv
bkhvc3QgKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1wcmV2YWxlbnQtcmVzb3Vy
Y2UuaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMu
cGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZTsKKworICAgIGZ1bmN0aW9uIGFjdGl2
YXRlRWxlbWVudChlbGVtZW50SUQsIGNhbGxiYWNrKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKKyAgICAgICAgdmFyIGNlbnRlclgg
PSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAg
dmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8g
MjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAor
ICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7Cisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICApOworICAg
IH0KKworICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7CisgICAg
ICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAg
ICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7Cisg
ICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0KKyAg
ICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhh
c2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgLy8gU2V0
IGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldEZpcnN0
UGFydHlDb29raWUgKyAiIyIgKyByZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgLy8g
Q2hlY2sgdGhhdCB0aGUgY29va2llIGdldHMgc2VudCBmb3IgbG9jYWxob3N0IHVuZGVyIDEyNy4w
LjAuMSBzaW5jZSBsb2NhbGhvc3QgaXMgbm90IHByZXZhbGVudC4KKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBvcGVuSWZy
YW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1T
aG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAgICAg
IC8vIFNldCBsb2NhbGhvc3QgYXMgcHJldmFsZW50IHRvIHB1dCBpdCBpbiB0aGUgYmxvY2tpbmcg
Y2F0ZWdvcnkuCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1
blRlc3QpOworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0
ZXA0IjsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBubyBj
b29raWUgZ2V0cyBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2Fs
aG9zdCdzIGNvb2tpZXMgYXJlIGJsb2NrZWQuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaGFzaCA9ICJzdGVwNSI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBh
cnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAgIiZtZXNzYWdlPVNob3VsZCByZWNl
aXZlIG5vIGNvb2tpZXMuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlICIjc3RlcDUiOgorICAgICAgICAgICAgICAgIC8vIENsaWNrIHRoZSBsaW5r
IHRvIHRyaWdnZXIgdGhlIHBpbmcuCisgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0
YXJnZXRMaW5rIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUo
dGhpcmRQYXJ0eU9yaWdpbiArICIvY29udGVudGV4dGVuc2lvbnMvcmVzb3VyY2VzL2dldC1waW5n
LWRhdGEucGhwP3Rlc3Q9cGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UiLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgZmV0Y2goIi9jb250ZW50ZXh0ZW5zaW9ucy9yZXNvdXJjZXMvZGVsZXRlLXBpbmcucGhwP3Rl
c3Q9cGluZy10by1wcmV2YWxlbnQtcmVzb3VyY2UiKS50aGVuKCgpPT57CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1bWVu
dC5sb2NhdGlvbi5oYXNoID09PSAiIikgeworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAgICAgICAgICAgcnVuVGVzdCgpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBydW5UZXN0
KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291
cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRs
ZWQta2V5ZG93bi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTRlMzJjNTkzZGUx
MGQ1NzczNzEwMTM1NzFkZDM0OGY1Mzg1MTk2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Ut
aGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitU
ZXN0cyB0aGF0IHdlIGdyYW50IFVzZXIgSW50ZXJhY3Rpb24gY3JlZGl0IGZvciBoYW5kbGVkIGtl
eXByZXNzZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTaW11bGF0ZSB1c2Vy
IHR5cGluZyBsZXR0ZXIgJ2EnIGludG8gdGhlIGZpZWxkLgorUEFTUyB0ZXN0SW5wdXQudmFsdWUg
aXMgImEiCitQQVNTIE9yaWdpbiB3YXMgZ3JhbnRlZCB1c2VyIGludGVyYWN0aW9uLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50
LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVk
LWtleWRvd24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTU2YTUwY2NjODRmODBhMTc1ZGY0
NjdmZjc4ODk0Y2U3YjUxOWZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVkLWtl
eWRvd24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDYyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHdlIGdyYW50IFVz
ZXIgSW50ZXJhY3Rpb24gY3JlZGl0IGZvciBoYW5kbGVkIGtleXByZXNzZXMuIik7Citqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAvdGVtcCI7CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHRlc3RGcmFt
ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0RnJhbWUiKTsKKworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICB9CisK
KyAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZh
aWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0
aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGVhcmVkIG9mIHVzZXIg
aW50ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAgIHRlc3RJbnB1dCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0ZXN0SW5wdXQiKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxs
U3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXN0SW5wdXQudmFsdWUiLCAiYSIp
OworCisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiT3JpZ2luIGRpZCBub3QgZ2V0IHVzZXIgaW50ZXJhY3Rpb24gY3JlZGl0LiIpOworICAg
ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiT3JpZ2lu
IHdhcyBncmFudGVkIHVzZXIgaW50ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAgICAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RnJhbWUuc3JjID0g
ImFib3V0OmJsYW5rIjsKKyAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9D
b25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3Vy
Y2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0
YVJlY29yZHMoKTsKKworICAgICAgICAgICAgZGVidWcoIlNpbXVsYXRlIHVzZXIgdHlwaW5nIGxl
dHRlciAnYScgaW50byB0aGUgZmllbGQuIik7CisgICAgICAgICAgICB0ZXN0SW5wdXQuZm9jdXMo
KTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAg
ZXZlbnRTZW5kZXIua2V5RG93bigiYSIpOworICAgICAgICB9KTsKKyAgICB9KTsKK30KKzwvc2Ny
aXB0PgorPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBzcmM9InJlc291cmNlcy9vbmNsaWNrLmh0bWwi
PjwvaWZyYW1lPgorPGlucHV0IGlkPSJ0ZXN0SW5wdXQiIHR5cGU9InRleHQiPgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zNmU1NTliZmEyZGQyNDYxNjc5ODliMjVhYjgyMzljNDU2YjE2NGIw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdHMgdGhhdCB3ZSBkbyBub3QgZ3JhbnQg
VXNlciBJbnRlcmFjdGlvbiBjcmVkaXQgZm9yIHVuaGFuZGxlZCBrZXlwcmVzcy4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1NpbXVsYXRlIGFuIHVuaGFuZGxlZCB1c2VyIGtleSBw
cmVzcy4KK1BBU1MgT3JpZ2luIGRpZCBub3QgZ2V0IHVzZXIgaW50ZXJhY3Rpb24gY3JlZGl0Lgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2
YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Ut
dW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YWNkZWIyOGU0Y2Ni
NzEyODI1MzIxN2JhODgxOWVhN2VhNmZiMmZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11
bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
d2UgZG8gbm90IGdyYW50IFVzZXIgSW50ZXJhY3Rpb24gY3JlZGl0IGZvciB1bmhhbmRsZWQga2V5
cHJlc3MuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworY29uc3Qgc3RhdGlzdGljc1VybCA9
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvdGVtcCI7CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHRlc3RGcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0RnJhbWUi
KTsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5l
ZCh0cnVlKTsKKyAgICB9CisKKyAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKCF0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQor
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3Rh
dGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdl
dCBjbGVhcmVkIG9mIHVzZXIgaW50ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9u
KCkgeworCisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hh
ZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVz
dFBhc3NlZCgiT3JpZ2luIGRpZCBub3QgZ2V0IHVzZXIgaW50ZXJhY3Rpb24gY3JlZGl0LiIpOwor
CisgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdEZyYW1lLnNyYyA9ICJhYm91dDpibGFuayI7CisgICAgICAgICAgICAgICAgICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0sIDApOworICAgICAgICAgICAgICAgIH0s
IDApOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5E
YXRhUmVjb3Jkc1JlbW92YWwoMCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQ
cm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisKKyAgICAgICAgICAgIGRlYnVnKCJT
aW11bGF0ZSBhbiB1bmhhbmRsZWQgdXNlciBrZXkgcHJlc3MuIik7CisgICAgICAgICAgICBpZiAo
d2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24o
ImEiLCBbIm1ldGFLZXkiXSk7CisgICAgICAgIH0pOworICAgIH0pOworfQorPC9zY3JpcHQ+Cis8
aWZyYW1lIGlkPSJ0ZXN0RnJhbWUiIHNyYz0icmVzb3VyY2VzL29uY2xpY2suaHRtbCI+PC9pZnJh
bWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRl
cmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFj
dGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg5Zjg1NWE3ODljZjEwYmYz
MzBmNGM5MmVhMTJiOTQxYWJlZmMwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11
c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBDb29r
aWUgbm90IGRlbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0
aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFz
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmVjMTNhNTAyNzRjNmRkOTRiZmU4YTE2NDU5YzRjYmFiOGE5MGU5
MGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRh
YmFzZS5odG1sCkBAIC0wLDAgKzEsNjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0i
ZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0
cyBmb3IgUHJldmFsZW50IFJlc291cmNlIFdpdGggVXNlciBJbnRlcmFjdGlvbjwvdGl0bGU+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdzZXRVcEFuZFJ1bigpJywgMCkiPgorPHNjcmlwdD4K
KyAgICBpZiAodGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25z
dCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7Cisg
ICAgY29uc3Qgb3RoZXJQcmV2YWxlbnRVcmwgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3RlbXAi
OworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1l
bnQuY29va2llICE9PSAiIikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tp
ZSBub3QgZW1wdHkuIik7CisgICAgICAgIGNvbnN0IGNvb2tpZSA9ICJ0ZXN0Q29va2llPXRlc3RW
YWx1ZSI7CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZSArICI7IG1heC1hZ2U9MTAw
OyI7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09IGNvb2tpZSkKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBkaWQgbm90IGdldCBzZXQuIik7CisKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1Vy
bCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIp
OworCisgICAgICAgICAgICAvLyBUaGlzIGlzIGRvbmUgdG8gbm90IGhhdmUgYW4gZW1wdHkgc2V0
IG9mIHByZXZhbGVudCByZXNvdXJjZXMuCisgICAgICAgICAgICAvLyBPdGhlcndpc2UgZGF0YSBy
ZWNvcmRzIGFyZSBuZXZlciBzY2FubmVkLgorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uob3RoZXJQcmV2YWxlbnRVcmwsIHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShvdGhlclByZXZhbGVudFVybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIk90aGVyIGhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworCisgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVj
b3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRv
Y3VtZW50LmNvb2tpZSA9PT0gY29va2llKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RQYXNzZWQoIkNvb2tpZSBub3QgZGVsZXRlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgZGVs
ZXRlZCBvciBkb2N1bWVudC5jb29raWUgY29udGFpbnMgb3RoZXIgY29va2llczogIiArIGRvY3Vt
ZW50LmNvb2tpZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOwor
ICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJl
dHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBzZXRVcEFuZFJ1bigpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhv
c3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVy
bmFscykgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsK
KyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAg
ICAgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIldyb25nIGhvc3QsIG5vIHRlc3RSdW5u
ZXIsIG9yIG5vIGludGVybmFscy4iKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJl
dmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0LWRhdGFiYXNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ODA5ZTkxYzIzYzIzYTIzNjljZDA4NTRlYjE4
MTY0N2RmYWViNDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFj
dGlvbi10aW1lb3V0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBDb29raWUg
ZGVsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGlt
ZW91dC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGltZW91
dC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyMDg5NzA1ZDI3OGVhYTIyMTI2ODU2ZDFkNmQw
OTlhNTlhMGE3YjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFj
dGlvbi10aW1lb3V0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+
CisgICAgPHRpdGxlPlRlc3RzIGZvciBQcmV2YWxlbnQgUmVzb3VyY2UgV2l0aCBVc2VyIEludGVy
YWN0aW9uIFRpbWVvdXQ8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAg
Y29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlz
dGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGZ1bmN0
aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9
PSAiIikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBub3QgZW1wdHku
Iik7CisgICAgICAgIGNvbnN0IGNvb2tpZSA9ICJ0ZXN0Q29va2llPXRlc3RWYWx1ZSI7CisgICAg
ICAgIGRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZSArICI7IG1heC1hZ2U9MTAwOyI7CisgICAgICAg
IGlmIChkb2N1bWVudC5jb29raWUgIT09IGNvb2tpZSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
ImRvY3VtZW50LmNvb2tpZSBkaWQgbm90IGdldCBzZXQuIik7CisKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlz
dGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBsb2dnZWQgZm9y
IHVzZXIgaW50ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3Rh
bGxTdGF0aXN0aWNzRGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgbm90IGRlbGV0ZWQ6ICIgKyBkb2N1bWVu
dC5jb29raWUpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJDb29raWUgZGVsZXRlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAg
aW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0
ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291
cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFs
KDApOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1RpbWVUb0xpdmVV
c2VySW50ZXJhY3Rpb24oMCk7CisKKyAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHRvIGVuc3Vy
ZSB0aGUgdGltZW91dCB3ZSdyZSB0ZXN0aW5nLgorICAgICAgICAgICAgICAgIHNldFRpbWVvdXQo
InRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKSIs
IDEwMDApOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChk
b2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVu
bmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBE
YXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAg
ICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNX
ZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11
c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11
c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzgwOWU5
MWMyM2MyM2EyMzY5Y2QwODU0ZWIxODE2NDdkZmFlYjQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNv
dXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCitQQVNTIENvb2tpZSBkZWxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQt
dXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50
ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yN2IwYjJhYWUzMDg0ZDRjNDdkOWVj
OWY3Y2UzMmZlNGQ0MGI5YzRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVz
ZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU5IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04
Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIFByZXZhbGVudCBSZXNvdXJjZSBXaXRob3V0IFVzZXIg
SW50ZXJhY3Rpb248L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29u
c3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGlj
c1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworCisgICAgZnVuY3Rp
b24gZmluaXNoVGVzdCAoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09ICIiKQor
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5vdCBkZWxldGVkOiAiICsgZG9jdW1lbnQu
Y29va2llKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29va2llIGRl
bGV0ZWQuIik7CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5h
YmxlZChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0
ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRlc3Qo
KSB7CisgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgIT09ICIiKQorICAgICAgICAgICAgdGVz
dEZhaWxlZCgiZG9jdW1lbnQuY29va2llIG5vdCBlbXB0eS4iKTsKKyAgICAgICAgY29uc3QgY29v
a2llID0gInRlc3RDb29raWU9dGVzdFZhbHVlIjsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0g
Y29va2llICsgIjsgbWF4LWFnZT0xMDA7IjsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAh
PT0gY29va2llKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZG9jdW1lbnQuY29va2llIGRpZCBu
b3QgZ2V0IHNldC4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsZWFyZWQgb2YgdXNlciBpbnRlcmFjdGlvbi4iKTsK
KworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlE
YXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBzZXRU
aW1lb3V0KCJmaW5pc2hUZXN0KCkiLCAxMDAwKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNl
c0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDAp
OworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNz
QW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9CisK
KyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5k
b3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2Uo
dHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRh
dGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7
CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1k
YXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTc0NzU3YmM1MjU2MDA1MjFkNDYxNTQ1ZDAzNjdjMGYwNTAxYmVmMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9w
cnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitU
ZXN0cyB0aGF0IHN0YXRpc3RpY3MgYXJlIHBydW5lZCBpbiB0aGUgcmlnaHQgb3JkZXIuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRlc3QgaXRlcmF0aW9uIDEgcGFzc2Vk
LgorUEFTUyBUZXN0IGl0ZXJhdGlvbiAyIHBhc3NlZC4KK1BBU1MgVGVzdCBpdGVyYXRpb24gMyBw
YXNzZWQuCitQQVNTIFRlc3QgaXRlcmF0aW9uIDQgcGFzc2VkLgorUEFTUyBUZXN0IGl0ZXJhdGlv
biA1IHBhc3NlZC4KK1BBU1MgVGVzdCBpdGVyYXRpb24gNiBwYXNzZWQuCitQQVNTIFRlc3QgaXRl
cmF0aW9uIDcgcGFzc2VkLgorUEFTUyBUZXN0IGl0ZXJhdGlvbiA4IHBhc3NlZC4KK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlz
dGljcy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3BydW5lLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2Fi
N2QzOTE3MWQwM2Y0N2I0MTlkMmFkYjBjYTEzOGFkZjc4ZWI5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BydW5lLXN0YXRp
c3RpY3MtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDE2MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVz
dCBmb3IgUmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzIFBydW5pbmc8L3RpdGxlPgorICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgc3RhdGlzdGlj
cyBhcmUgcHJ1bmVkIGluIHRoZSByaWdodCBvcmRlci4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKworICAgIGNvbnN0IG9sZGVyVGltZXN0YW1wID0gTWF0aC5yb3VuZCgobmV3IERhdGUo
KSkuZ2V0VGltZSgpIC8gMTAwMCk7CisgICAgY29uc3QgbmV3ZXJUaW1lc3RhbXAgPSBvbGRlclRp
bWVzdGFtcCArIDEwOworICAgIGNvbnN0IG5ld2VzdFRpbWVzdGFtcCA9IG5ld2VyVGltZXN0YW1w
ICsgMTA7CisKKyAgICBjb25zdCB1cmxzVG9CZVBydW5lZCA9IFsKKyAgICAgICAgeyB1cmw6ICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvdGVtcCIsIHByZXZhbGVudDogZmFsc2UgfSwKKyAgICAgICAg
eyB1cmw6ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCIsIHByZXZhbGVudDogZmFsc2UgfSwK
KyAgICAgICAgeyB1cmw6ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCIsIHByZXZhbGVudDog
dHJ1ZSB9LAorICAgICAgICB7IHVybDogImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIiwgcHJl
dmFsZW50OiB0cnVlIH0sCisgICAgICAgIHsgdXJsOiAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3Rl
bXAiLCBwcmV2YWxlbnQ6IGZhbHNlIH0sCisgICAgICAgIHsgdXJsOiAiaHR0cDovLzEyNy4wLjAu
Njo4MDAwL3RlbXAiLCBwcmV2YWxlbnQ6IGZhbHNlIH0sCisgICAgICAgIHsgdXJsOiAiaHR0cDov
LzEyNy4wLjAuNzo4MDAwL3RlbXAiLCBwcmV2YWxlbnQ6IHRydWUgfSwKKyAgICAgICAgeyB1cmw6
ICJodHRwOi8vMTI3LjAuMC44OjgwMDAvdGVtcCIsIHByZXZhbGVudDogdHJ1ZSB9CisgICAgXTsK
KworICAgIGZ1bmN0aW9uIGNoZWNrSWZQcmV2YWxlbnRBY2NvcmRpbmdUb0luaXRpYWxFeHBlY3Rh
dGlvbihiZWdpbiwgZW5kKSB7CisgICAgICAgIHZhciBmYWlsZWQgPSBmYWxzZTsKKyAgICAgICAg
Zm9yICh2YXIgaSA9IGJlZ2luOyBpIDwgZW5kOyArK2kpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1bmVkW2ldLnVy
bCkgIT09IHVybHNUb0JlUHJ1bmVkW2ldLnByZXZhbGVudCkgeworICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoImNoZWNrSWZQcmV2YWxlbnRBY2NvcmRpbmdUb0luaXRpYWxFeHBlY3RhdGlvbjog
VGVzdCBpdGVyYXRpb24gIiArIGN1cnJlbnRUZXN0ICsgIiBmYWlsZWQuICIgKyB1cmxzVG9CZVBy
dW5lZFtpXS51cmwgKyAodXJsc1RvQmVQcnVuZWRbaV0ucHJldmFsZW50ID8gIiB3YXNuJ3QgIiA6
ICIgd2FzICIpICsgInByZXZhbGVudCIpOworICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZhaWxlZCkgeworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gY2hlY2tJZlByZXZhbGVudChiZWdpbiwg
ZW5kLCBleHBlY3RlZCkgeworICAgICAgICB2YXIgZmFpbGVkID0gZmFsc2U7CisgICAgICAgIGZv
ciAodmFyIGkgPSBiZWdpbjsgaSA8IGVuZDsgKytpKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh1cmxzVG9CZVBydW5lZFtpXS51cmwp
ICE9PSBleHBlY3RlZCkgeworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoImNoZWNrSWZQcmV2
YWxlbnQ6IFRlc3QgaXRlcmF0aW9uICIgKyBjdXJyZW50VGVzdCArICIgZmFpbGVkLiAiICsgdXJs
c1RvQmVQcnVuZWRbaV0udXJsICsgKGV4cGVjdGVkID8gIiB3YXNuJ3QgIiA6ICIgd2FzICIpICsg
InByZXZhbGVudCIpOworICAgICAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZhaWxlZCkgeworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyhzdGVw
KSB7CisgICAgICAgIHN3aXRjaCAoc3RlcCkgeworICAgICAgICAgICAgLy8gTm9uLXByZXZhbGVu
dCB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24gdG8gYmUgcHJ1bmVkIGZpcnN0LgorICAgICAgICAg
ICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RT
ZWVuKHVybHNUb0JlUHJ1bmVkWzBdLnVybCwgb2xkZXJUaW1lc3RhbXAsIGZ1bmN0aW9uKCkgeyBp
bml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDIpOyB9KTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFsxXS51cmwsIG5ld2VyVGltZXN0YW1w
LCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygzKTsgfSk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAvLyBQcmV2YWxlbnQgd2l0aG91dCB1
c2VyIGludGVyYWN0aW9uIHRvIGJlIHBydW5lZCBzZWNvbmQuCisgICAgICAgICAgICBjYXNlIDM6
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UodXJsc1RvQmVQcnVuZWRbMl0udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0
YXRpc3RpY3NBbmRSdW5UZXN0cyg0KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
TGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbMl0udXJsLCBvbGRlclRpbWVzdGFtcCwgZnVuY3Rpb24o
KSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoNSk7IH0pOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1bmVkWzNdLnVybCwg
dHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoNik7IH0p
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSA2OgorICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVkWzNd
LnVybCwgbmV3ZXJUaW1lc3RhbXAsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0Fu
ZFJ1blRlc3RzKDcpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8v
IE5vbi1wcmV2YWxlbnQgd2l0aCB1c2VyIGludGVyYWN0aW9uIHRvIGJlIHBydW5lZCB0aGlyZC4K
KyAgICAgICAgICAgIGNhc2UgNzoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odXJsc1RvQmVQcnVuZWRbNF0udXJsLCB0cnVlLCBm
dW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyg4KTsgfSk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDg6CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbNF0udXJsLCBv
bGRlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVz
dHMoOSk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSA5Ogor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbih1cmxzVG9CZVBydW5lZFs1XS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXpl
U3RhdGlzdGljc0FuZFJ1blRlc3RzKDEwKTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIDEwOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVkWzVdLnVybCwgbmV3ZXJUaW1lc3RhbXAsIGZ1bmN0
aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDExKTsgfSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAvLyBQcmV2YWxlbnQgd2l0aCB1c2VyIGludGVy
YWN0aW9uIHRvIGJlIHBydW5lZCBsYXN0LgorICAgICAgICAgICAgY2FzZSAxMToKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh1cmxzVG9C
ZVBydW5lZFs2XS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0Fu
ZFJ1blRlc3RzKDEyKTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIDEyOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbih1cmxzVG9CZVBydW5lZFs2XS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBp
bml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDEzKTsgfSk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIDEzOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVkWzZdLnVybCwgb2xkZXJUaW1lc3Rh
bXAsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDE0KTsgfSk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDE0OgorICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNUb0Jl
UHJ1bmVkWzddLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5k
UnVuVGVzdHMoMTUpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgMTU6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHVybHNUb0JlUHJ1bmVkWzddLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGlu
aXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTYpOyB9KTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgMTY6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRbN10udXJsLCBuZXdlclRpbWVzdGFt
cCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMTcpOyB9KTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTc6CisgICAgICAgICAg
ICAgICAgY2hlY2tJZlByZXZhbGVudEFjY29yZGluZ1RvSW5pdGlhbEV4cGVjdGF0aW9uKDAsIHVy
bHNUb0JlUHJ1bmVkLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgdmFyIGN1cnJlbnRUZXN0
OworICAgIGZ1bmN0aW9uIGNoZWNrU3RhdGlzdGljc0FmdGVyUHJ1bmluZygpIHsKKyAgICAgICAg
Ly8gUHJ1bmVkIGVudHJpZXMgc2hvdWxkIG5vdCBiZSBwcmV2YWxlbnQuCisgICAgICAgIGNoZWNr
SWZQcmV2YWxlbnQoMCwgY3VycmVudFRlc3QsIGZhbHNlKTsKKyAgICAgICAgLy8gTm9uLXBydW5l
ZCBlbnRyaWVzIHNob3VsZCBrZWVwIHRoZWlyIGV4cGVjdGVkIHN0YXR1cy4KKyAgICAgICAgY2hl
Y2tJZlByZXZhbGVudEFjY29yZGluZ1RvSW5pdGlhbEV4cGVjdGF0aW9uKGN1cnJlbnRUZXN0LCB1
cmxzVG9CZVBydW5lZC5sZW5ndGgpOworICAgICAgICB0ZXN0UGFzc2VkKCJUZXN0IGl0ZXJhdGlv
biAiICsgY3VycmVudFRlc3QgKyAiIHBhc3NlZC4iKTsKKyAgICAgICAgaWYgKGN1cnJlbnRUZXN0
IDwgdXJsc1RvQmVQcnVuZWQubGVuZ3RoKSB7CisgICAgICAgICAgICArK2N1cnJlbnRUZXN0Owor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jk
c0NhbGxiYWNrKGNoZWNrU3RhdGlzdGljc0FmdGVyUHJ1bmluZyk7CisgICAgICAgICAgICBpbml0
aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDEpOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9CisgICAgfQorCisgICAgbGV0IGZpbGxlclVybDsKKyAgICBmdW5jdGlvbiBydW5U
ZXN0KCkgeworICAgICAgICBmaWxsZXJVcmwgPSAiaHR0cDovLzEyNy4wLiIgKyBjdXJyZW50VGVz
dCArICIuMTo4MDAwL3RlbXAiOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShmaWxsZXJVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKGZpbGxlclVybCwg
dHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzTGFzdFNlZW4oZmlsbGVyVXJsLCBuZXdlc3RUaW1lc3RhbXAsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0Fu
ZERhdGFSZWNvcmRzKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRz
UmVtb3ZhbChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1U
aW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWF4U3RhdGlzdGljc0VudHJpZXModXJsc1Rv
QmVQcnVuZWQubGVuZ3RoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJ1bmVF
bnRyaWVzRG93blRvKHVybHNUb0JlUHJ1bmVkLmxlbmd0aCk7CisKKyAgICAgICAgY3VycmVudFRl
c3QgPSAxOworICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFS
ZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0aXN0aWNzQWZ0ZXJQcnVuaW5nKTsKKyAgICAgICAgaW5p
dGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10
by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhv
c3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3YzE0MzhiMTg2NDA2
NDJhYTE2ZmMwNmI2OWQ4NDFmZGYzYmYxNmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBzYW5kYm94ZWQgaWZyYW1lcyBnZXQg
Y291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8v
bG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIs
ICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xv
Y2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3Qt
dG8taXAtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1p
cC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2NzExMjA1MDY4MTgzOTFjYTk2N2ZmMjRmZmZj
MDU4YzkyMTlmNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2Nh
bGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0
IHJlZGlyZWN0cyBmb3Igc2FuZGJveGVkIGlmcmFtZXMgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7
CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVu
Y3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2Us
IGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgewor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nh
bm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNz
RGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfQorCisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9
IGZhbHNlOworICAgICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVu
Y3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmln
aW4gPT09ICJudWxsIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2Yo
IlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0
YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9y
aWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVj
dENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAg
ICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKwor
ICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVl
KCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6
Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRC
ZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygi
aHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNo
b3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGlu
Z1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAg
ICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRp
cmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAg
fQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93
LXNjcmlwdHMiIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vbG9jYWxob3N0Ojgw
MDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwLz9yZWRpcmVj
dFRvPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNl
cy9pZnJhbWUtcmVwb3J0LWJhY2stbG9hZGVkLmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9j
YWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10
by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3YzE0
MzhiMTg2NDA2NDJhYTE2ZmMwNmI2OWQ4NDFmZGYzYmYxNmUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3Igc2FuZGJv
eGVkIGlmcmFtZXMgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJh
bWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQor
UEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0
dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAu
MC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3Qt
bG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmYwMjZiZDljMGMyMTJiN2U1ZjE2NDliNTkzYjk3ODgzY2YzMTQ4ZmMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJv
eGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNl
Lmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIHNhbmRi
b3hlZCBpZnJhbWVzIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBy
ZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7
CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAg
ICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0Nh
bGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAg
ICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFy
IHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdl
KGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAibnVsbCIpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAi
IikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVj
ZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmln
aW4pOworCisgICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7
CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRl
c3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hl
Y2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6
Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAi
aHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAu
MSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0g
dHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAg
ICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGlmcmFtZSBzYW5kYm94PSJhbGxvdy1zY3JpcHRzIiBzcmM9Imh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVj
dC5waHAvP3JlZGlyZWN0VG89aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vbG9jYWxob3N0
OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvaWZyYW1lLXJlcG9ydC1iYWNr
LWxvYWRlZC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1u
ZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxv
Y2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgt
bm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzY1OGNkMzQzZjU1NmUwYzM0NDc1ZWY5ZWY0
NWM2MjBkNGQ0MjdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEg
bm9uLXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgc2FuZGJveGVkIGlmcmFtZSBnZXQgY291
bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9j
YWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJo
dHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1Jl
Z2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2Fs
aG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3Rp
bmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxo
b3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDkyZDU5OTk2NGU3ZTYyZmQwNWZi
MGQ3OGFlNWUyOTY2MDU3YTA2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0
aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0
YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3Ig
YSBub24tc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBzYW5kYm94ZWQgaWZyYW1lIGdldCBj
b3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFs
c2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJh
c2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hl
bkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdHMp
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJl
ZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZh
bHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAg
ICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAibnVsbCIpIHsKKyAgICAgICAgICAgICAgICBpZiAo
ZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZy
b20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAgICAg
ICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAo
c3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZl
cigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAg
ICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNT
dWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOwor
ICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVy
ZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIp
Jyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVn
aXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxo
b3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAg
IGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBmaW5p
c2hUZXN0KCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlm
cmFtZSBzYW5kYm94PSJhbGxvdy1zY3JpcHRzIiBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9wYWdlLXdpdGgtbm9uLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLmh0bWwiPgorPC9pZnJhbWU+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRi
b3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjM2NThjZDM0M2Y1NTZlMGMzNDQ3NWVmOWVmNDVjNjIwZDRkNDI3ZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2Fu
ZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBzYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHBy
b3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3Qi
LCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8x
MjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJl
ZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0Iikg
aXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3Rp
bmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRv
LWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmODZmZThjMzI5NGUy
NTM5MjJjMjVlYTM3OTI3ZmQ1Yzk0MzZmZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZy
YW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRv
LWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
cmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIHNhbmRib3hl
ZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMg
PSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2Vp
dmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAg
ICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAg
IH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJh
Y2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHZh
ciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3Rh
dHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZl
bnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJudWxsIikgeworICAgICAg
ICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7
CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZl
ZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7
CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAg
ICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0
YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEy
Ny4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRw
Oi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwg
Imh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVl
OworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAg
ICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMiIHNyYz0iaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1u
b24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0
Lmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3Rpbmct
aWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8t
aXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43MTVjODVlYjQ3ZTBmMDg0MTZlNjFmZDAxNWZkN2FlM2NiODY2YjY5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVk
aXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQgaWZyYW1lIG5l
c3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEy
Ny4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVk
QXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBp
cyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3Rp
bmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94
ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxv
Y2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hl
ZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDZlOTRhNDU5Njk4NTRkM2UzODhkMTBhYWRjYWYwYTFkMmE0ZGFhZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24o
IlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEg
bm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAgICAgIGpz
VGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVz
c2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNo
VGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVz
dCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFS
ZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQor
CisgICAgICAgIHZhciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAg
ICAgICB2YXIgc3RhdHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2
ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJudWxs
IikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0g
LTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJG
QUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2
ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVk
ID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAg
ZmluaXNoVGVzdCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc05vdGlmeU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5j
dGlvbiBjaGVja1N0YXRzKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3Qi
LCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2Fs
aG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgn
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8v
MTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0No
ZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9h
ZGVkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNjcmlwdHMiIHNy
Yz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2Vz
L3BhZ2Utd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1p
cC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5n
LWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRv
LWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTVjODVlYjQ3ZTBmMDg0MTZlNjFmZDAxNWZk
N2FlM2NiODY2YjY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRi
b3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9y
IGEgc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQg
Y291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8v
bG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIs
ICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xv
Y2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVk
LW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3Qt
dG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWUxOWRkMTAwMjEx
NWQ4YTE5NGZjMjI0MWQ1OGY0ZjgyZTAwMmJkOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1p
ZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1s
b2NhbGhvc3QtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJl
ZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQg
aWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZl
TWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAg
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05v
dGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNr
KGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICB2YXIg
bGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRz
Q2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50
KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAibnVsbCIpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOwor
ICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQg
YSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOwor
CisgICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAg
ICAgICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NO
b3RpZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0
cygpIHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NS
ZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcu
MC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDov
LzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJo
dHRwOi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsK
KyAgICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAg
ICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGlmcmFtZSBzYW5kYm94PSJhbGxvdy1zY3JpcHRzIiBzcmM9Imh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9wYWdlLXdpdGgtc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0Lmh0bWwi
PgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVz
b3VyY2UtaW4tZGVidWctbW9kZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVz
b3VyY2UtaW4tZGVidWctbW9kZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmRj
MDczZGE0N2NiYTQ4NjA3NzIzZDRmZGI2M2NiYTE1NmQ4N2U2MgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9t
LXByZXZhbGVudC1yZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEwIEBACitUZXN0IGZvciBlbmFibGluZyBkZWJ1ZyBtb2RlIGFuZCB0aGF0IGl0
IGFsbG93cyBzZXR0aW5nIGEgY3VzdG9tIGRvbWFpbiBhcyBhIHByZXZhbGVudCByZXNvdXJjZS4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaHR0cDovL2xvY2FsaG9zdDo4
MDAwIGdvdCBzZXQgYXMgYSBjdXN0b20gcHJldmFsZW50IHJlc291cmNlIGluIGRlYnVnIG1vZGUu
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Nl
dC1jdXN0b20tcHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9t
LXByZXZhbGVudC1yZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWZkYTgxMjAxOWE5ZTczZmY5NTU4OTE1ZTBmODg5MjZhOGQ5MDQ5YQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQt
Y3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1kZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWwKQEAg
LTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4K
KyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2Ny
aXB0aW9uKCJUZXN0IGZvciBlbmFibGluZyBkZWJ1ZyBtb2RlIGFuZCB0aGF0IGl0IGFsbG93cyBz
ZXR0aW5nIGEgY3VzdG9tIGRvbWFpbiBhcyBhIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIjsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5k
b3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1
ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBh
cnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKHRoaXJkUGFydHlPcmlnaW4g
KyAiIGFscmVhZHkgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUodGhp
cmRQYXJ0eU9yaWdpbiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzRGVidWdNb2RlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
ICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQ
YXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKHRoaXJkUGFy
dHlPcmlnaW4gKyAiIGRpZG4ndCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3Nl
ZCh0aGlyZFBhcnR5T3JpZ2luICsgIiBnb3Qgc2V0IGFzIGEgY3VzdG9tIHByZXZhbGVudCByZXNv
dXJjZSBpbiBkZWJ1ZyBtb2RlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NEZWJ1Z01vZGUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVm
ZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJj
ZS1yZWRpcmVjdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiZDU0M2VjOWFm
MzI0YmQ1MGRjMWQ0Yzg2Y2RiMDllOWM0ZDViMjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8t
b3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0cyB0aGF0IG9ubHkgdGhlIG9yaWdpbiBpcyBz
ZW50IGFzIHJlZmVycmVyIGluIHJlZGlyZWN0cyB0byBwcmV2YWxlbnQgcmVzb3VyY2VzIHdpdGhv
dXQgdXNlciBpbnRlcmFjdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgcmVmZXJyZXIgaXMgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJl
ZGlyZWN0cy1kYXRhYmFzZS5odG1sIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0t
LS0tLS0tCitodHRwOi8vMTI3LjAuMC4xOjgwMDAvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2lu
LWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXIt
dG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjBmOGEyZjQyMGI1YWE2MmMzN2EyNWQ0YmRkZmVkMzNhMzNiZmE1Zgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJj
ZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDUxIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJU
ZXN0cyB0aGF0IG9ubHkgdGhlIG9yaWdpbiBpcyBzZW50IGFzIHJlZmVycmVyIGluIHJlZGlyZWN0
cyB0byBwcmV2YWxlbnQgcmVzb3VyY2VzIHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAg
ICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0Fz
VGV4dCgpOworCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsK
KyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIp
OworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9hZEhhbmRsZXIp
IHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsKKyAgICAgICAg
fQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIH0KKwor
ICAgIHZhciByZWZlcnJlcjsKKyAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUp
OworICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0
IikpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2FzIGNsYXNzaWZpZWQgYXMg
cHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydGVkLiIpOworCisgICAgICAg
IGZldGNoKCJyZXNvdXJjZXMvZWNoby1yZWZlcnJlci5waHAiKS50aGVuKGZ1bmN0aW9uKHJlc3Bv
bnNlKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpOworICAgICAgICB9KS50
aGVuKGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgICAgICAgIHJlZmVycmVyID0gZGF0YTsKKyAgICAg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAu
MTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZv
ci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0bWwiKTsKKworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6
Ly9sb2NhbGhvc3QiLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3Qi
KSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQg
YXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
dGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIG9wZW5JZnJhbWUoInJlc291cmNlcy9yZWRpcmVjdC5waHA/cmVkaXJlY3RUbz1odHRw
Oi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1y
ZWZlcnJlci5waHAiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pLmNhdGNo
KGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdl
KTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cisg
ICAgICAgIH0pOworICAgIH0pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAt
cmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291
cmNlLXJlcXVlc3RzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OWNjYjljMjFm
ZjAwNzFhOTgwMjM5YjdiNzkzZjU1MTg3ZWJlZTVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRv
LW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitUZXN0cyB0aGF0IG9ubHkgdGhlIG9yaWdpbiBpcyBz
ZW50IGFzIHJlZmVycmVyIGZvciBwcmV2YWxlbnQgcmVzb3VyY2VzIHdpdGhvdXQgdXNlciBpbnRl
cmFjdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVmZXJyZXIg
aXMgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJl
ZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFi
YXNlLmh0bWwiCitQQVNTIHJlZmVycmVyIGlzICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvIgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKworLS0tLS0t
LS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitodHRwOi8vMTI3LjAuMC4xOjgw
MDAvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2Ut
cmVxdWVzdHMtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJy
ZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1ZDRmMDM2NmY5N2Nm
Y2U5NDI4YTZhODZlNTE1NDgzNjBlMzIxNzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3Jp
Z2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UuaHRtbApAQCAt
MCwwICsxLDYyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlw
dCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IG9ubHkgdGhlIG9yaWdpbiBpcyBz
ZW50IGFzIHJlZmVycmVyIGZvciBwcmV2YWxlbnQgcmVzb3VyY2VzIHdpdGhvdXQgdXNlciBpbnRl
cmFjdGlvbi4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICB0ZXN0UnVubmVyLmR1
bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9u
TG9hZEhhbmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYg
KG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFu
ZGxlcjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1l
bnQpOworICAgIH0KKworICAgIHZhciByZWZlcnJlcjsKKyAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJo
dHRwOi8vbG9jYWxob3N0IikpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2Fz
IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydGVk
LiIpOworCisgICAgICAgIGZldGNoKCJyZXNvdXJjZXMvZWNoby1yZWZlcnJlci5waHAiKS50aGVu
KGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgp
OworICAgICAgICB9KS50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgICAgICAgIHJlZmVycmVy
ID0gZGF0YTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAi
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJy
ZXItdG8tb3JpZ2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2Uu
aHRtbCIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0
cDovL2xvY2FsaG9zdCIpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRp
ZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgZmV0Y2goImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXJlZmVycmVyLnBocCIpLnRoZW4oZnVuY3Rp
b24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS50
ZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24oZGF0YSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgcmVmZXJyZXIgPSBkYXRhOworICAgICAgICAgICAgICAgICAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAvIik7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUoInJlc291cmNl
cy9yZWRpcmVjdC5waHA/cmVkaXJlY3RUbz1odHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1yZWZlcnJlci5waHAiLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5p
c2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAg
ICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnNvbGUubG9nKGVycm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgICAgICAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSkuY2F0
Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yLm1lc3Nh
Z2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICAgICAgfSk7CisgICAgfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0
Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRo
LWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDM5MjJmZDkz
ZjFhNTQ0NGYyY2IwNjg4NGVmYzMyOTBiYWU1MWY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9u
LW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgdGhlIHNlc3Npb24gaXMgc3dpdGNo
ZWQgdXBvbiB0b3AgZnJhbWUgbmF2aWdhdGlvbiB0byBhIHByZXZhbGVudCByZXNvdXJjZSB3aXRo
IHVzZXIgaW50ZXJhY3Rpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IFNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHNlc3Npb24gY29va2llLgorUEFTUyBTaG91bGQgaGF2
ZSBhbmQgaGFzIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4KK1BBU1MgT3JpZ2luIGhhcyBpc29sYXRl
ZCBzZXNzaW9uLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWlu
dGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQt
d2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyNzBjMDBiMDQ4MTY2
NjBiYzgxZDBkNmVlODljYWE3MGUxZjc0YmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2
aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsMTExIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgor
ICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8
c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRoZSBzZXNzaW9uIGlzIHN3aXRj
aGVkIHVwb24gdG9wIGZyYW1lIG5hdmlnYXRpb24gdG8gYSBwcmV2YWxlbnQgcmVzb3VyY2Ugd2l0
aCB1c2VyIGludGVyYWN0aW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAg
Y29uc3QgcHJldmFsZW50T3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgY29u
c3Qgbm9uUHJldmFsZW50T3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29u
c3Qgc2Vzc2lvbkNvb2tpZU5hbWUgPSAic2Vzc2lvbkNvb2tpZSI7CisgICAgY29uc3QgcGVyc2lz
dGVudENvb2tpZU5hbWUgPSAicGVyc2lzdGVudENvb2tpZSI7CisgICAgY29uc3QgdHdvTWludXRl
c0luU2Vjb25kcyA9IDEyMDsKKworICAgIGZ1bmN0aW9uIHNldFNlc3Npb25Db29raWUoKSB7Cisg
ICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNlc3Npb25Db29raWVOYW1lICsgIj0xOyBwYXRoPS8i
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHNldFBlcnNpc3RlbnRDb29raWUoKSB7CisgICAgICAg
IGRvY3VtZW50LmNvb2tpZSA9IHBlcnNpc3RlbnRDb29raWVOYW1lICsgIj0xOyBwYXRoPS87IE1h
eC1BZ2U9IiArIHR3b01pbnV0ZXNJblNlY29uZHMgKyAiOyI7CisgICAgfQorCisgICAgZnVuY3Rp
b24gY2hlY2tDb29raWVzKHNob3VsZEhhdmVTZXNzaW9uQ29va2llLCBzaG91bGRIYXZlUGVyc2lz
dGVudENvb2tpZSkgeworICAgICAgICBsZXQgaGFzU2Vzc2lvbkNvb2tpZSA9IChkb2N1bWVudC5j
b29raWUgKyAiIikuaW5jbHVkZXMoc2Vzc2lvbkNvb2tpZU5hbWUpLAorICAgICAgICAgICAgaGFz
UGVyc2lzdGVudENvb2tpZSA9IChkb2N1bWVudC5jb29raWUgKyAiIikuaW5jbHVkZXMocGVyc2lz
dGVudENvb2tpZU5hbWUpOworCisgICAgICAgIGlmIChzaG91bGRIYXZlU2Vzc2lvbkNvb2tpZSAm
JiBoYXNTZXNzaW9uQ29va2llKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxkIGhhdmUg
YW5kIGhhcyB0aGUgc2Vzc2lvbiBjb29raWUuIik7CisgICAgICAgIGVsc2UgaWYgKHNob3VsZEhh
dmVTZXNzaW9uQ29va2llICYmICFoYXNTZXNzaW9uQ29va2llKSB7CisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJTaG91bGQgaGF2ZSBidXQgZG9lc24ndCBoYXZlIHRoZSBzZXNzaW9uIGNvb2tpZS4i
KTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cisg
ICAgICAgIH0gZWxzZSBpZiAoIXNob3VsZEhhdmVTZXNzaW9uQ29va2llICYmIGhhc1Nlc3Npb25D
b29raWUpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZG4ndCBoYXZlIGJ1dCBoYXMg
dGhlIHNlc3Npb24gY29va2llLiIpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2Vk
KCJTaG91bGRuJ3QgaGF2ZSBhbmQgZG9lc24ndCBoYXZlIHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsK
KworCisgICAgICAgIGlmIChzaG91bGRIYXZlUGVyc2lzdGVudENvb2tpZSAmJiBoYXNQZXJzaXN0
ZW50Q29va2llKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxkIGhhdmUgYW5kIGhhcyB0
aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgICAgIGVsc2UgaWYgKHNob3VsZEhhdmVQZXJz
aXN0ZW50Q29va2llICYmICFoYXNQZXJzaXN0ZW50Q29va2llKSB7CisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJTaG91bGQgaGF2ZSBidXQgZG9lc24ndCBoYXZlIHRoZSBwZXJzaXN0ZW50IGNvb2tp
ZS4iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgIH0gZWxzZSBpZiAoIXNob3VsZEhhdmVQZXJzaXN0ZW50Q29va2llICYmIGhhc1Bl
cnNpc3RlbnRDb29raWUpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZG4ndCBoYXZl
IGJ1dCBoYXMgdGhlIHBlcnNpc3RlbnQgY29va2llLiIpOworICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJTaG91bGRuJ3QgaGF2ZSBhbmQgZG9lc24ndCBoYXZlIHRoZSBwZXJzaXN0
ZW50IGNvb2tpZS4iKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAg
ICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNz
dGVwMSI6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHByZXZhbGVudE9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgICAgIHNldFNlc3Npb25Db29raWUoKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0
UGVyc2lzdGVudENvb2tpZSgpOworICAgICAgICAgICAgICAgICAgICBjaGVja0Nvb2tpZXModHJ1
ZSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmhhc1N0YXRpc3Rp
Y3NJc29sYXRlZFNlc3Npb24ocHJldmFsZW50T3JpZ2luKSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiT3JpZ2luIGhhcyBpc29sYXRlZCBzZXNzaW9uLiIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICAgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJPcmlnaW4gaGFzIG5vIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAgICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBub25QcmV2YWxlbnRPcmlnaW4gKyAiL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2
YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sI3N0ZXAyIjsKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVw
MiI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMyI7Cisg
ICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiAhPT0gbm9uUHJldmFs
ZW50T3JpZ2luKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTdGVwIDIgaXMgbm90
IG9uICIgKyBub25QcmV2YWxlbnRPcmlnaW4gKyAiLiIpOworICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHByZXZhbGVudE9yaWdpbiwgdHJ1
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRPcmlnaW4pKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKHByZXZhbGVudE9yaWdpbiArICIgZGlkIG5vdCBnZXQg
c2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2ll
QmxvY2tpbmcocnVuVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhyZWYgPSBwcmV2YWxlbnRPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aC1pbnRl
cmFjdGlvbi1kYXRhYmFzZS5odG1sI3N0ZXA0IjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgY2hlY2tDb29raWVzKHRy
dWUsIHRydWUpOworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmhhc1N0YXRpc3RpY3NJ
c29sYXRlZFNlc3Npb24ocHJldmFsZW50T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgdGVz
dFBhc3NlZCgiT3JpZ2luIGhhcyBpc29sYXRlZCBzZXNzaW9uLiIpOworICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3JpZ2luIGhhcyBubyBpc29s
YXRlZCBzZXNzaW9uLiIpOworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2Us
IGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlVua25vd24gaGFzaC4iKTsKKyAgICAg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAg
ICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiKSB7Cisg
ICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gIT09IHByZXZhbGVudE9yaWdpbikK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRlc3QgaXMgbm90IHN0YXJ0aW5nIG91dCBvbiAiICsg
cHJldmFsZW50T3JpZ2luICsgIi4iKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRh
YmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShwcmV2YWxlbnRPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQocHJldmFsZW50
T3JpZ2luICsgIiB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRo
ZSB0ZXN0IHN0YXJ0cy4iKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAi
c3RlcDEiOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy90ZWxlbWV0cnktZ2VuZXJhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3RlbGVtZXRyeS1nZW5lcmF0aW9uLmh0bWwKaW5kZXggODQxOTU2
MjA3MGIyODc4NDg2ZTA5NDFiMmUyZTFjYjI1ZTg2MTcyYy4uNjQ3ZGIzMDBlZjhhMjU4MTQ0MDlk
OGUxNWU2YmJiOTM2NTViNTlkYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RlbGVtZXRyeS1nZW5lcmF0aW9uLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RlbGVtZXRyeS1nZW5l
cmF0aW9uLmh0bWwKQEAgLTgsNiArOCw3IEBACiA8L2hlYWQ+CiA8Ym9keT4KIDxzY3JpcHQ+Cisg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZShmYWxzZSk7CiAgICAgZGVzY3JpcHRpb24o
IlRlc3RzIHRoYXQgdGVsZW1ldHJ5IGZvciBwcmV2YWxlbnQgcmVzb3VyY2VzIGlzIGNhbGN1bGF0
ZWQgY29ycmVjdGx5LiIpOwogICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRl
cmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVy
YWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjI4NDI3MzBhNDVkYWRlNmVhNmYxNWRlY2MzOWE3ZTVhOWEwZTMxMmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0cyB0aGF0IHVzZXIgaW50ZXJhY3Rpb24g
aXMgYWx3YXlzIGxvZ2dlZCBmb3IgdGhlIHRvcCBkb2N1bWVudC9mcmFtZS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luIGlzIHRv
cEZyYW1lT3JpZ2luCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1Mg
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmln
aW4pIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3Jp
Z2luLXN1Yi1mcmFtZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1m
cmFtZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2NzRkMDkwOTcwYzU2M2JmYmE0ZDkzY2Zh
NjQ1Y2FiMTVhNTk0ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4t
c3ViLWZyYW1lLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdXNlciBpbnRlcmFjdGlvbiBpcyBh
bHdheXMgbG9nZ2VkIGZvciB0aGUgdG9wIGRvY3VtZW50L2ZyYW1lLiIpOworanNUZXN0SXNBc3lu
YyA9IHRydWU7Cit0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworCitjb25zdCB0
b3BGcmFtZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworY29uc3Qgc3ViRnJhbWVP
cmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKworZnVuY3Rpb24gYWN0aXZhdGVFbGVt
ZW50KGVsZW1lbnRJZCkgeworICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoZWxlbWVudElkKTsKKyAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVs
ZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRU
b3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChj
ZW50ZXJYLCBjZW50ZXJZKTsKK30KKworZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICBzaG91
bGRCZVRydWUoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRv
cEZyYW1lT3JpZ2luKSIpOworICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cit9CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkg
eworICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh0
ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQ
YWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAgdGVzdFJ1
bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGZpbmlzaFRl
c3QpOworICAgICAgICB9CisKKyAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50LmxvY2F0aW9uLm9y
aWdpbiIsICJ0b3BGcmFtZU9yaWdpbiIpOworCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7Cisg
ICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRmFs
c2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1l
T3JpZ2luKSIpOworCisgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RGcmFtZSIpOwor
ICAgICAgICB9CisgICAgfSk7Cit9OworPC9zY3JpcHQ+Cis8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUi
IHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3Vy
Y2VzL2R1bW15Lmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJh
Y3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRh
YmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0
LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDMyYmM4
ZWQ3MzgxZmJjNDk4ZGIzNGMwZmIzYmU3YTU3YmQ5MWQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rp
b24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGVzdHMgdGhhdCB1c2VyIGludGVyYWN0
aW9uIGlzIG5vdCByZXBvcnRlZCByZXBlYXRlZGx5IHdpdGhpbiBhIHNob3J0IHBlcmlvZCBvZiB0
aW1lLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC5sb2Nh
dGlvbi5vcmlnaW4gaXMgdG9wRnJhbWVPcmlnaW4KK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2lu
KSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbih0b3BGcmFtZU9yaWdpbikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4p
IGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorVGhpcyBpcyB0aGUgdGVz
dCBlbGVtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNo
b3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9u
Y2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjA5NTI0MmNhZDY3NDA0MTdhYTk5NzI0NjE4OTgxNDRkYzJjZTkzZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWlu
dGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUt
ZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdXNlciBpbnRlcmFjdGlvbiBpcyBub3QgcmVw
b3J0ZWQgcmVwZWF0ZWRseSB3aXRoaW4gYSBzaG9ydCBwZXJpb2Qgb2YgdGltZS4iKTsKKyAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luID0gImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3ViRnJhbWVPcmlnaW4gPSAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIjsKKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SWQs
IGNhbGxiYWNrKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoZWxlbWVudElkKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQg
KyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50
Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxwZXIu
YWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQcm9taXNlIHJl
amVjdGVkLiIpOworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlz
aEpTVGVzdCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gZmlyc3RJbnRlcmFjdGlvbigpIHsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIik7Cisg
ICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRl
c3RFbGVtZW50Iiwgc2Vjb25kSW50ZXJhY3Rpb24pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNl
Y29uZEludGVyYWN0aW9uKCkgeworICAgICAgICBzaG91bGRCZVRydWUoInRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAg
ICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRv
cEZyYW1lT3JpZ2luLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9w
RnJhbWVPcmlnaW4pIik7CisKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RF
bGVtZW50IiwgZmluaXNoVGVzdCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0K
KworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2lu
KSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hh
ZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBvbmxvYWQgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHNob3Vs
ZEJlKCJkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4iLCAidG9wRnJhbWVPcmlnaW4iKTsKKworICAg
ICAgICAgICAgZmlyc3RJbnRlcmFjdGlvbigpOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3Jp
cHQ+Cis8ZGl2IGlkPSJ0ZXN0RWxlbWVudCI+VGhpcyBpcyB0aGUgdGVzdCBlbGVtZW50PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13ZWJz
aXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1h
ZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYmYyOGM5OWIzMDI0NDQ1NjBiNTFiMzQ4Yjk2MDIxYjA1ODU2ZWEzYwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2Vy
LWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitUZXN0cyB0aGF0IHVzZXIgaW50ZXJhY3Rp
b24gaXMgcmVwb3J0ZWQgYWZ0ZXIgaGlzdG9yeSByZW1vdmFsIHNpbmNlIHRoYXQgbWVhbnMgYWxs
IHN0YXRpc3RpY3MgaGF2ZSBiZWVuIHJlc2V0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gaXMgdG9wRnJhbWVPcmlnaW4KK1BB
U1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVP
cmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgdHJ1ZQorUEFT
UyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9y
aWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyB0cnVlCitQQVNT
IHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3Jp
Z2luKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCitUaGlzIGlzIHRoZSB0ZXN0IGVsZW1lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9y
dGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1yZXBv
cnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJiZWI0MmY5NDJmMWI2OGZmYWNmZTBlZmIxZmU5MjM5NjJmMjI2OGQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1p
bnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFzZS5o
dG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxz
Y3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICBkZXNj
cmlwdGlvbigiVGVzdHMgdGhhdCB1c2VyIGludGVyYWN0aW9uIGlzIHJlcG9ydGVkIGFmdGVyIGhp
c3RvcnkgcmVtb3ZhbCBzaW5jZSB0aGF0IG1lYW5zIGFsbCBzdGF0aXN0aWNzIGhhdmUgYmVlbiBy
ZXNldC4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHRvcEZyYW1l
T3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3ViRnJhbWVPcmln
aW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxl
bWVudChlbGVtZW50SWQsIGNhbGxiYWNrKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVt
ZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNl
bnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAg
ICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAg
ICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gZmlyc3RJbnRlcmFjdGlvbigpIHsKKyAgICAgICAgc2hvdWxkQmVG
YWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJh
bWVPcmlnaW4pIik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworICAgICAgICBhY3Rp
dmF0ZUVsZW1lbnQoInRlc3RFbGVtZW50IiwgY2xlYXJXZWJzaXRlRGF0YSk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gY2xlYXJXZWJzaXRlRGF0YSgpIHsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdp
bikiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNI
YWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7CisKKyAgICAgICAgaWYgKHRlc3RS
dW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NDbGVhclRocm91Z2hXZWJz
aXRlRGF0YVJlbW92YWwoc2Vjb25kSW50ZXJhY3Rpb24pOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHNlY29uZEludGVyYWN0aW9uKCkgeworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAg
ICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0ZXN0RWxlbWVudCIsIGZpbmlzaFRlc3QpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4p
Iik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIpOworCisgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgb25sb2FkID0gZnVuY3Rp
b24oKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBzaG91
bGRCZSgiZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luIiwgInRvcEZyYW1lT3JpZ2luIik7CisKKyAg
ICAgICAgICAgIGZpcnN0SW50ZXJhY3Rpb24oKTsKKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2Ny
aXB0PgorPGRpdiBpZD0idGVzdEVsZW1lbnQiPlRoaXMgaXMgdGhlIHRlc3QgZWxlbWVudDwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZvci1zaXRlLW5hdmln
YXRlZC10by13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZvci1zaXRlLW5h
dmlnYXRlZC10by13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sCmluZGV4IGJkM2Y2NjNhYjczZDlk
ZDBmMTg2MTE2NDA1YWE5YmEzN2YzZTA1ZDkuLjZlYjYxOWFjNzUyMTZkZGM1NTljNWE3ZmZkMWFj
MmZhNWQxODA2ZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy93ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS1uYXZpZ2F0ZWQtdG8t
d2l0aC1saW5rLWRlY29yYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUtbmF2aWdh
dGVkLXRvLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0bWwKQEAgLTEwLDYgKzEwLDcgQEAKIDxkaXYg
aWQ9Im91dHB1dCI+PC9kaXY+CiA8YnI+CiA8c2NyaXB0PgorICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UoZmFsc2UpOwogICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IGIxNTZkNTFiMDE4YjgxMDliZjNhMTAxMTZmNWY0ZDg1ZDNhZDEx
NWQuLmMzNzg4NjI0OGJiNjY4M2FhZmQwN2VhMzIxY2QwNWJlOTRlMjc3NjkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC05ODksNiArOTg5LDggQEAgaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL2tleWJvYXJkLWV2ZW50cy1kdXJpbmctcHJvdmlzaW9uYWwtbmF2
aWdhdGlvbi5odG1sIFsgU2tpcAogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2tleWJvYXJkLWV2ZW50
cy1kdXJpbmctcHJvdmlzaW9uYWwtc3ViZnJhbWUtbmF2aWdhdGlvbi5odG1sIFsgU2tpcCBdCiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRs
ZWQta2V5ZG93bi5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLmh0bWwgWyBTa2lwIF0KK2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxl
ZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2Uu
aHRtbCBbIFNraXAgXQogbWVkaWEvYXVkaW8tcGxheWJhY2stdm9sdW1lLWNoYW5nZXMtd2l0aC1y
ZXN0cmljdGlvbnMtYW5kLXVzZXItZ2VzdHVyZXMuaHRtbCBbIFNraXAgXQogbWVkaWEvYXVkaW8t
cGxheWJhY2stdm9sdW1lLWNoYW5nZXMtd2l0aC1yZXN0cmljdGlvbnMuaHRtbCBbIFNraXAgXQog
bWVkaWEvcGljdHVyZS1pbi1waWN0dXJlLWludGVycnVwdGlvbi5odG1sIFsgU2tpcCBdCkBAIC0y
Nzc5LDYgKzI3ODEsOSBAQCBmYXN0L2NhbnZhcy93ZWJnbC9yZWFkUGl4ZWxzLWZsb2F0Lmh0bWwg
WyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNzQxMjAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS5odG1sIFsg
U2tpcCBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlv
bi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLmh0bWwgWyBT
a2lwIF0KIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9u
LXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLmh0bWwgWyBTa2lwIF0KK3dlYmtp
dC5vcmcvYi8xNzQxMjAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50
ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS5odG1sIFsgU2tpcCBd
CitodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5
LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLmh0bWwg
WyBTa2lwIF0KK2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0
aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWRhdGFiYXNlLmh0bWwgWyBT
a2lwIF0KICMgU2tpcHBlZCBpbiBXSzIgZXhwZWN0YXRpb25zIGJlY2F1c2UgY29va2llIHBhcnRp
dGlvbmluZyBpcyBvbmx5IGF2YWlsYWJsZSBpbiBtYWNPUyBIaWdoIFNpZXJyYSBhbmQgaU9TIDEx
LgogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi5odG1s
IFsgUGFzcyBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llcy13aXRo
LWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbCBbIFBhc3MgXQo=
</data>
<flag name="review"
          id="395374"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
    <flag name="commit-queue"
          id="395373"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379658</attachid>
            <date>2019-09-26 10:24:22 -0700</date>
            <delta_ts>2019-09-26 12:16:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195420-20190926102421.patch</filename>
            <type>text/plain</type>
            <size>397698</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMzgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzRjZjFjY2U4YTZkY2Jh
ZDEzOTk4MmNlZTI2OGZkOWJlNmVmMDdmMS4uMTBlMmEyYjYwMjFkZjVlNTNlOGNkYjY4ZWYzN2Rm
YWY3NWRmYjg4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDE5LTA5LTI2ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBM
YXlvdXRUZXN0cyB1c2luZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFNRTGl0ZSBiYWNrZW5kICgx
OTU0MjApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTU0MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjEzNTUxPiAKKworICAgICAgICBSZXZp
ZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwK
KyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2lu
Zy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZv
ci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNl
dC1pbi1qcy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgt
bGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1k
YXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVy
eS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbAorICAg
ICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQt
cmVzb3VyY2UtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRo
b3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUt
b3JpZ2lucy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNv
dXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAg
ICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZh
bGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lu
cy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGly
ZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJl
c291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAg
ICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50
LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10
by1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVj
dC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJh
bWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tdG9wLWZyYW1lLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZl
cnktcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbAorICAg
ICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1l
bW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJz
aXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tp
ZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0
LWFjY2Vzc2libGUtY29va2llcy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0
aW9uLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNzLWZvci1zaW1wbGUt
dG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0
LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQt
d2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdh
dGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJs
ZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1y
ZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3Vy
Y2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNl
cy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0LWRhdGFiYXNlLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24t
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2Uu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
bi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3Qt
ZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQt
bmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhv
c3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1l
LXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0
YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFs
ZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRh
dGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVu
dC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJj
ZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC1kYXRhYmFzZS5odG1sCisgICAgICAgICAg
ICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNl
LXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFz
ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
c2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2Uu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Nh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRh
YmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVk
aXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8t
bG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQt
aWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5l
c3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8t
aXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1k
ZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1z
dWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3It
cHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1u
YXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVy
YWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24t
b25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNl
ci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFz
ZS5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaDoKKyAgICAg
ICAgQWRkZWQgV0VCQ09SRV9FWFBPUlQgcHJlZml4IHRvIDIgZnVuY3Rpb25zIG5lZWRlZCBpbiB0
aGUgSVRQIERhdGFiYXNlIAorICAgICAgICB0byBjbGVhciBvdXQgdGhlIGRhdGFiYXNlLgorCiAy
MDE5LTA5LTI2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBG
bGFreSBUZXN0OiBpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci5odG1sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDg2NWViY2ViODBhMWUwMzgwODJlYzA2ZWNlNmZlODJmNDQyNGQ4NWEuLjFlMTlkOTgxOTc2OWRh
N2UwNTFiMjYzMDM0ZTcyYTg4MWIwZjQ2OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcwIEBACisy
MDE5LTA5LTI2ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisg
ICAgICAgIEVuYWJsZSBMYXlvdXRUZXN0cyB1c2luZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFNR
TGl0ZSBiYWNrZW5kICgxOTU0MjApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTU0MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjEzNTUxPgor
CisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgQ2hhbmdlZCBh
bGwgUkVMRUFTRV9MT0dfRVJST1IoKSBjYWxscyBpbnZvbHZpbmcgZG9tYWluIHN0cmluZ3MgdG8K
KyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgpIHRvIHByZXZlbnQgbGVha2lu
ZyBpbmZvcm1hdGlvbiBhYm91dAorICAgICAgICB0aGUgZG9tYWluIHN0cmluZ3Mgb25seSBpZiBz
ZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCkuCisKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlKToKKyAgICAgICAgQWRkZWQgYXV0
b3ZhY3V1bWluZyB0byB0aGUgY29uc3RydWN0b3IgdG8gYXZvaWQgbWFudWFsbHkgY2FsbGluZwor
ICAgICAgICBydW5WYWN1dW1Db21tYW5kKCkuIENoYW5nZWQgY29uc3RydWN0b3IgdG8gdGFrZSBp
biBzZXNzaW9uSUQgc28gaXQKKyAgICAgICAgY2FuIHVzZSBSRUxFQVNFX0xPR19FUlJPUl9JRl9B
TExPV0VEIHdoaWNoIHJlcXVpcmVzIHRoZSBzZXNzaW9uSUQuCisKKyAgICAgICAgKFdlYktpdDo6
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZXBhcmVTdGF0ZW1lbnRzKToK
KyAgICAgICAgQWRkZWQgMiBzdGF0ZW1lbnRzIHRoYXQgd2VyZSBub3QgYmVpbmcgcHJlcGFyZWQu
CisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OnJlbGF0aW9uc2hpcEV4aXN0cyBjb25zdCk6CisgICAgICAgIENvcnJlY3RlZCBpbmNvcnJlY3Qg
Y2FwaXRhbGl6YXRpb24uIEFkZGVkIGNoZWNrIGZvciBudWxsb3B0IGluIGNhc2UKKyAgICAgICAg
ZG9tYWluSUQgaXMgZm9yIGEgZG9tYWluIG5vdCBpbiB0aGUgZGF0YWJhc2UgeWV0LgorCisgICAg
ICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkb21haW5J
RCBjb25zdCk6CisgICAgICAgIENoYW5nZWQgcmV0dXJuIHZhbHVlIHRvIE9wdGlvbmFsPHVuc2ln
bmVkPi4gU29tZSB0ZXN0cyB3ZXJlIGRpcmVjdGx5CisgICAgICAgIGNoZWNraW5nIGZvciBzdWJm
cmFtZXMgdW5kZXIgdG9wIGZyYW1lIGRvbWFpbnMgb24gZG9tYWlucyB0aGF0IGhhZAorICAgICAg
ICBub3QgYmVlbiBpbnNlcnRlZCB5ZXQuIE5vdywgZG9tYWluSUQoKSB3b24ndCBjcmFzaCBidXQg
d2lsbCByZXR1cm4KKyAgICAgICAgYSBudWxsb3B0IHZhbHVlIHdoaWNoIGNhbiBiZSBjaGVja2Vk
IHRvIGtub3cgdGhhdCB0aGUgdGVzdHMgZmFpbGVkLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNlcnREb21haW5SZWxhdGlvbnNoaXBz
KToKKyAgICAgICAgQWRkZWQgYSBjaGVjayB0byBhc3N1cmUgZG9tYWluSUQgZXhpc3RzIGFuZCB1
cGRhdGVkIHRoZSBkb21haW5JRAorICAgICAgICBpbnRlcmFjdGlvbnMgdG8gd29yayBhcyBPcHRp
b25hbHMuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OnBvcHVsYXRlRnJvbU1lbW9yeVN0b3JlKToKKyAgICAgICAgTW92ZWQgdGhlIHByZXBh
cmVTdGF0ZW1lbnRzKCkgY2FsbCBhZnRlciB0aGUgdmFjdXVtIGNvbW1hbmQgaW4gdGhlIGNhc2UK
KyAgICAgICAgd2hlcmUgdGhlIGRhdGFiYXNlIGlzIGVtcHR5LiBPdGhlcndpc2UgY2FsbGVkIGl0
IGJlZm9yZSByZXR1cm5pbmcuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OnJlY3Vyc2l2ZWx5RmluZE5vblByZXZhbGVudERvbWFpbnNUaGF0
UmVkaXJlY3RlZFRvVGhpc0RvbWFpbik6CisgICAgICAgIEFkZGVkIGEgc3BhY2UgdG8gdGhlIFNR
TCBjb21tYW5kcyB0byBjb3JyZWN0IHRoZSBzeW50YXguCisKKyAgICAgICAgKFdlYktpdDo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmZpbmROb3RWZXJ5UHJldmFsZW50UmVz
b3VyY2VzKToKKyAgICAgICAgQ29ycmVjdGVkIGEgYnVnIGluIHRoZSBTUUwgY29tbWFuZCBmb3Ig
cXVlcnlpbmcKKyAgICAgICAgc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluLiBUaGUgb2xkIHF1
ZXJ5IHdhcyBhc2tpbmcgZm9yIHN1YnJlc291cmNlLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWNsYXNzaWZ5UmVzb3VyY2VzKToKKyAg
ICAgICAgU3BlbGxpbmcgZml4LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIENoYW5n
ZWQgc3RyaW5nIGNvbmNhdGVuYXRpb24gdG8gYmluZGluZy4KKworICAgICAgICAoV2ViS2l0OjpS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbmRmYXRoZXJEYXRhRm9yRG9t
YWlucyk6CisgICAgICAgIFRoZSBncmFuZGZhdGhlcmluZy5odG1sIHRlc3Qgd2FzIGZhaWxpbmcg
YmVjYXVzZSBkb21haW5zIHdlcmUgYmVpbmcKKyAgICAgICAgInNldCIgdG8gZ3JhbmRmYXRoZXJl
ZCBpbiB0aGUgZGF0YWJhc2UgYmVmb3JlIGJlaW5nIGluc2VydGVkLiBUaGlzIGZpeAorICAgICAg
ICBlbnN1cmVzIGFsbCBkb21haW5zIGJlZm9yZSBzZXR0aW5nIHRoZSBncmFuZGZhdGhlcmluZyBm
bGFnLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24pOgorICAgICAgICBNdWx0aXBsZSB0ZXN0cyB3ZXJlIGZh
aWxpbmcgYmVjYXVzZSB0aGUgcXVlcnkgdG8gaW5zZXJ0IHRoZSByZWxhdGlvbnNoaXAKKyAgICAg
ICAgZm9yIHRoZSBzb3VyY2UgZG9tYWluIHJlbGllcyBvbiB0aGUgdGFyZ2V0IGRvbWFpbiBiZWlu
ZyBpbiB0aGUKKyAgICAgICAgT2JzZXJ2ZWREb21haW5zIHRhYmxlLiBUaGlzIHBhdGNoIGVuc3Vy
ZXMgYWxsIGRvbWFpbnMgYXJlIGFkZGVkIGJlZm9yZQorICAgICAgICBwZXJmb3JtaW5nIHRoZSBx
dWVyeS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6c2V0VXNlckludGVyYWN0aW9uKToKKyAgICAgICAgQWRkZWQgYSAhPSBTUUxJVEVfT0sg
Y2hlY2sgdG8gbWFrZSBzdXJlIGFuIGVycm9yIGlzIGxvZ2dlZCBpZiB0aGUKKyAgICAgICAgc3Rh
dGVtZW50IGZhaWxzIHRvIGJpbmQuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgQ2hh
bmdlZCBzdHJpbmcgY29uY2F0ZW5hdGlvbiB0byBiaW5kaW5nLgorCisgICAgICAgIChXZWJLaXQ6
OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNIYWRVc2VySW50ZXJhY3Rp
b24pOiAgIAorICAgICAgICBUaGUgU1FMIHN0YXRlbWVudCB3YXMgYmVpbmcgYm91bmQgdG8gYSB2
YWx1ZSBhbmQgbm90IGJlaW5nIHJlc2V0LiBUaGlzCisgICAgICAgIHBhdGNoIHJlc2V0cyB0aGUg
c3RhdGVtZW50IGFmdGVyIGJpbmRpbmcuIEFkZGl0aW9uYWxseSwgdGhlIHN0ZXAoKQorICAgICAg
ICBmdW5jdGlvbiB3YXMgYmVpbmcgY29tcGFyZWQgdG8gU1FMSVRFX0RPTkUgaW5zdGVhZCBvZiBT
UUxJVEVfUk9XLAorICAgICAgICBjYXVzaW5nIGFuIGVycm9yIGlmIHRoZSBxdWVyeSByZXR1cm5l
ZCByZXN1bHRzLiBUaGUKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCkgd2FzIGNhdXNpbmcg
bnVsbCBzZWFyY2hlcyB0byBjcmFzaCBpbnN0ZWFkIG9mCisgICAgICAgIHJldHVybmluZyBmYWxz
ZSAoaS5lLiBpZiBhIGRvbWFpbiBpcyBub3QgaW4gdGhlIGRhdGFiYXNlIGl0IHNob3VsZAorICAg
ICAgICByZXR1cm4gdGhhdCBpdCBoYXMgbm8gdXNlciBpbnRlcmFjdGlvbiBpbnN0ZWFkIG9mIGNy
YXNoaW5nKS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6c2V0UHJldmFsZW50UmVzb3VyY2UpOiAKKyAgICAgICAgVXBkYXRlZCBkb21haW5J
RCBjYWxsIHRvIGFjdCBhcyBhbiBPcHRpb25hbC4gCisgICAgICAgIAorICAgICAgICAoV2ViS2l0
OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlZGljYXRlVmFsdWVGb3JE
b21haW4gY29uc3QpOgorICAgICAgICBUaGUgU1FMIHN0YXRlbWVudCB3YXMgYmVpbmcgYm91bmQg
dG8gYSB2YWx1ZSBhbmQgbm90IGJlaW5nIHJlc2V0LiBUaGlzCisgICAgICAgIHBhdGNoIHJlc2V0
cyB0aGUgc3RhdGVtZW50IGFmdGVyIGJpbmRpbmcuIFNRTElURV9ET05FIGNoYW5nZWQgdG8KKyAg
ICAgICAgU1FMSVRFX1JPVyB0byByZXR1cm4gbm9uLWVtcHR5IHF1ZXJ5IHJlc3VsdHMuIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpCisgICAgICAgIHJlbW92ZWQgZm9yIHRoZSBzYW1lIHJlYXNvbnMgYXMg
YWJvdmUuIAorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjplbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbik6Cisg
ICAgICAgIEZpeGVkIHRoZSByZWxlYXNlIGxvZyBzdGF0ZW1lbnQgd2hpY2ggd2FzIGxvZ2dpbmcg
dGhlIHdyb25nIGZ1bmN0aW9uIAorICAgICAgICBuYW1lLgorCisgICAgICAgIChXZWJLaXQ6OlJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhckRhdGFiYXNlQ29udGVudHMp
OiAKKyAgICAgICAgQ2xlYXJzIHRoZSBkYXRhYmFzZSBhbmQgcmVidWlsZHMgdGhlIHRhYmxlcyBv
biBhIGNsZWFyIGNvbW1hbmQgdG8KKyAgICAgICAgbWF0Y2ggdGhlIGZ1bmN0aW9uYWxpdHkgaW4g
dGhlIE1lbW9yeSBTdG9yZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXIpOiAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgQ2Fs
bCB0aGUgY2xlYXJEYXRhYmFzZUNvbnRlbnRzIGZ1bmN0aW9uIHRvIG1hdGNoIHRoZSBmdW5jdGlv
bmFsaXR5IAorICAgICAgICBpbiB0aGUgTWVtb3J5IFN0b3JlLiAKKworICAgICAgICAoV2ViS2l0
OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzVXNlckdyYW50ZWRTdG9y
YWdlQWNjZXNzVGhyb3VnaFByb21wdCBjb25zdCk6CisgICAgICAgIFVwZGF0ZWQgZG9tYWluSUQg
Y2FsbCB0byBhY3QgYXMgYW4gT3B0aW9uYWwuIAorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNIYWRVbmV4cGlyZWRSZWNlbnRVc2VySW50
ZXJhY3Rpb24pOgorICAgICAgICBUZXN0cyB3ZXJlIGZhaWxpbmcgYmVjYXVzZSBzaG91bGRSZW1v
dmVBbGxXZWJzaXRlRGF0YUZvcigpIHdhcyBub3QgCisgICAgICAgIGNoZWNraW5nIGZvciBleHBp
cmVkIHVzZXIgaW50ZXJhY3Rpb24uIE1hdGNoZWQgZnVuY3Rpb25hbGl0eSBpbiB0aGUKKyAgICAg
ICAgTWVtb3J5IFN0b3JlLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvcik6CisgICAgICAg
IFRlc3RzIHdlcmUgZmFpbGluZyBiZWNhdXNlIHNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9y
KCkgd2FzIG5vdCAKKyAgICAgICAgY2hlY2tpbmcgZm9yIGV4cGlyZWQgdXNlciBpbnRlcmFjdGlv
bi4gTWF0Y2hlZCBmdW5jdGlvbmFsaXR5IGluIHRoZQorICAgICAgICBNZW1vcnkgU3RvcmUuIAor
CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpy
ZWdpc3RyYWJsZURvbWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yKToKKyAgICAgICAgU3BlbGxp
bmcgZml4LiAKKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6cHJ1bmVTdGF0aXN0aWNzSWZOZWVkZWQpOiAKKyAgICAgICAgTGFzdCBzZWVuIHNo
b3VsZCBiZSBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyIGJlY2F1c2UgeW91IHdhbnQgdG8gCisg
ICAgICAgIHBydW5lIHRoZSBvbGRlciBzdGF0aXN0aWNzIGZpcnN0LCB3aGljaCB3aWxsIGhhdmUg
YSBsb3dlciBsYXN0U2VlbgorICAgICAgICBmaWVsZCAoc2Vjb25kc1NpbmNlRXBvY2goKSB3aWxs
IGJlIGxvd2VyIGZvciBvbGRlciB2YWx1ZXMpLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZv
ciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIERlbGV0ZWQgY29uc3Qgc3BlY2lmaWVyIGJlY2F1
c2UgdGhlIGZ1bmN0aW9uIG5lZWRzIHRvIGNsZWFyIHRoZQorICAgICAgICBkYXRhYmFzZS4gCisK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmg6ICAgICAgCisgICAgICAgIERlY2xhcmVkIG5ldyBmdW5jdGlvbnMu
IFVwZGF0ZWQgc3BlbGxpbmcgZXJyb3IgKHJlZ2lzdGVyYWJsZSAtLT4gCisgICAgICAgIHJlZ2lz
dHJhYmxlKS4gVXBkYXRlZCBjb25zdHJ1Y3RvciB0byB0YWtlIHNlc3Npb25JRC4gCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZS5jcHA6IAorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSk6CisgICAgICAgIElUUCBkYXRhYmFz
ZSBmbGFnIG5vdyBpcyBzdG9yZWQgaW4gdGhlIE5ldHdvcmtQcm9jZXNzLgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDogCisKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6IAorICAgICAgICBTZXQgdGhl
IElUUCBkYXRhYmFzZSBmbGFnIHdoaWNoIGlzIG5vdyBzdG9yZWQgaW4gdGhlIE5ldHdvcmsgUHJv
Y2Vzcy4gCisKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFVzZUlUUERhdGFi
YXNlKTogCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmlzSVRQRGF0YWJhc2VFbmFibGVkIGNvbnN0KToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgUGFzc2VkIHRoZSBzZXRVc2VJVFBEYXRhYmFzZSBmbGFnIHRvIHRoZSBpbml0aWFsaXph
dGlvbiBmdW5jdGlvbiAKKyAgICAgICAgb2YgdGhlIHN0YXRpc3RpY3Mgc3RvcmUgdG8gZW5hYmxl
IHRoZSBkYXRhYmFzZSBiYWNrZW5kLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nl
c3Npb24pOgorICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkgd2Fz
IG5vdCBnZXR0aW5nIGNhbGxlZCBvbiB0aGUgCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgcmVz
b3VyY2VMb2FkU3RhdGlzdGljcyBwYXRoLiBUaGlzIHdhcyBwcmV2ZW50aW5nCisgICAgICAgIHRo
ZSBkYXRhYmFzZSBmaWxlIGZyb20gb3BlbmluZy4gCisKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Nlc3Npb246OnJlY3JlYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljU3RvcmUpOgorICAgICAgICBE
ZXN0cm95IG9sZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgYW5kIGNyZWF0ZSBhIG5l
dyBvbmUgdXNpbmcKKyAgICAgICAgdGhlIElUUCBkYXRhYmFzZS4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
V2Vic2l0ZURhdGFTdG9yZVJlZi5jcHA6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRV
c2VJVFBEYXRhYmFzZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFT
dG9yZVJlZi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRVc2VJVFBE
YXRhYmFzZSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0VXNlSVRQRGF0YWJhc2Up
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6Cisg
ICAgICAgIFBhc3NlZCB0aGUgc2V0VXNlSVRQRGF0YWJhc2UgZmxhZyB0byB0aGUgaW5pdGlhbGl6
YXRpb24gZnVuY3Rpb24KKyAgICAgICAgb2YgdGhlIHN0YXRpc3RpY3Mgc3RvcmUgdG8gZW5hYmxl
IHRoZSBkYXRhYmFzZSBiYWNrZW5kLiAKKwogMjAxOS0wOS0yNSAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCByZXBsYWNlbWVudCBTUEkg
b24gX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gZm9yIGVuYWJsaW5nIHNwZWN1bGF0
aXZlIGNhY2hlIHZhbGlkYXRpb24gYW5kIElQQy1mcmVlIHNlcnZlciB0cnVzdCBldmFsdWF0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oCmluZGV4IDE0
OTg2NmZiYzExOTdiYTA5ZGEyMTU3NWYxY2VhZmFkNjQxOWZlNmIuLjUyMjRmMWU3NzdjNTZiZWZi
M2Q2NmY4ZTA1ODhhZDAwOGEyMDQyNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nx
bC9TUUxpdGVEYXRhYmFzZS5oCkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICBib29sIHJl
dHVybnNBdExlYXN0T25lUmVzdWx0KGNvbnN0IFN0cmluZyYpOwogICAgIAogICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgdGFibGVFeGlzdHMoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBjbGVhckFs
bFRhYmxlcygpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJBbGxUYWJsZXMoKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCBpbnQgcnVuVmFjdXVtQ29tbWFuZCgpOwogICAgIGludCBydW5JbmNy
ZW1lbnRhbFZhY3V1bUNvbW1hbmQoKTsKICAgICAKQEAgLTEyNSw3ICsxMjUsNyBAQCBwdWJsaWM6
CiAgICAgLy8gICAgICAgICAgICAgICBmaWxlLCBidXQgcmVtb3ZlcyB0aGUgZW1wdHkgcGFnZXMg
b25seSB3aGVuIFBSQUdNQSBJTkNSRU1BTlRBTF9WQUNVVU0KICAgICAvLyAgICAgICAgICAgICAg
IGlzIGNhbGxlZC4KICAgICBlbnVtIEF1dG9WYWN1dW1QcmFnbWEgeyBBdXRvVmFjdXVtTm9uZSA9
IDAsIEF1dG9WYWN1dW1GdWxsID0gMSwgQXV0b1ZhY3V1bUluY3JlbWVudGFsID0gMiB9OwotICAg
IGJvb2wgdHVybk9uSW5jcmVtZW50YWxBdXRvVmFjdXVtKCk7CisgICAgV0VCQ09SRV9FWFBPUlQg
Ym9vbCB0dXJuT25JbmNyZW1lbnRhbEF1dG9WYWN1dW0oKTsKIAogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0Q29sbGF0aW9uRnVuY3Rpb24oY29uc3QgU3RyaW5nJiBjb2xsYXRpb25OYW1lLCBX
VEY6OkZ1bmN0aW9uPGludChpbnQsIGNvbnN0IHZvaWQqLCBpbnQsIGNvbnN0IHZvaWQqKT4mJik7
CiAgICAgdm9pZCByZW1vdmVDb2xsYXRpb25GdW5jdGlvbihjb25zdCBTdHJpbmcmIGNvbGxhdGlv
bk5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZS5jcHAKaW5kZXggN2UxZjBhY2YzZWRmOGU3ZmFlOTViNGFjYTNjYWZkYzIxN2Q5MzRm
NC4uZjc2ZTlkMzA3ZjZkZmUwNGZiMGE2ZWQ0MTA5YzFjM2Q1MjFhNzJlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCkBAIC0x
NjAsNyArMTYwLDcgQEAgY29uc3RleHByIGF1dG8gY3JlYXRlU3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdHNGcm9tID0gIkNSRUFURSBUQUJMRSBTdWJyZXNvdXJjZVUKICAgICAiRk9SRUlHTiBLRVko
c3VicmVzb3VyY2VEb21haW5JRCkgUkVGRVJFTkNFUyBPYnNlcnZlZERvbWFpbnMoZG9tYWluSUQp
IE9OIERFTEVURSBDQVNDQURFLCAiCiAgICAgIkZPUkVJR04gS0VZKGZyb21Eb21haW5JRCkgUkVG
RVJFTkNFUyBPYnNlcnZlZERvbWFpbnMoZG9tYWluSUQpIE9OIERFTEVURSBDQVNDQURFKTsiX3M7
CiAgICAgCi1SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmUoV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlJiBz
dG9yZSwgV29ya1F1ZXVlJiB3b3JrUXVldWUsIFNob3VsZEluY2x1ZGVMb2NhbGhvc3Qgc2hvdWxk
SW5jbHVkZUxvY2FsaG9zdCwgY29uc3QgU3RyaW5nJiBzdG9yYWdlRGlyZWN0b3J5UGF0aCkKK1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZShXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUmIHN0b3JlLCBXb3Jr
UXVldWUmIHdvcmtRdWV1ZSwgU2hvdWxkSW5jbHVkZUxvY2FsaG9zdCBzaG91bGRJbmNsdWRlTG9j
YWxob3N0LCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VEaXJlY3RvcnlQYXRoLCBQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpCiAgICAgOiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoc3RvcmUsIHdv
cmtRdWV1ZSwgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCkKICAgICAsIG1fc3RvcmFnZURpcmVjdG9y
eVBhdGgoc3RvcmFnZURpcmVjdG9yeVBhdGggKyAiL29ic2VydmF0aW9ucy5kYiIpCiAgICAgLCBt
X29ic2VydmVkRG9tYWluQ291bnQobV9kYXRhYmFzZSwgb2JzZXJ2ZWREb21haW5Db3VudFF1ZXJ5
KQpAQCAtMTkzLDYgKzE5Myw3IEBAIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZShXZWJSZXNvCiAgICAgLCBtX3Vw
ZGF0ZUdyYW5kZmF0aGVyZWRTdGF0ZW1lbnQobV9kYXRhYmFzZSwgdXBkYXRlR3JhbmRmYXRoZXJl
ZFF1ZXJ5KQogICAgICwgbV9pc0dyYW5kZmF0aGVyZWRTdGF0ZW1lbnQobV9kYXRhYmFzZSwgaXNH
cmFuZGZhdGhlcmVkUXVlcnkpCiAgICAgLCBtX2ZpbmRFeHBpcmVkVXNlckludGVyYWN0aW9uU3Rh
dGVtZW50KG1fZGF0YWJhc2UsIGZpbmRFeHBpcmVkVXNlckludGVyYWN0aW9uUXVlcnkpCisgICAg
LCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4o
KSk7CiAKQEAgLTIxMiw2ICsyMTMsOSBAQCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUoV2ViUmVzbwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQorICAgIAorICAgIGlmICghbV9kYXRhYmFz
ZS50dXJuT25JbmNyZW1lbnRhbEF1dG9WYWN1dW0oKSkKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnR1
cm5PbkluY3JlbWVudGFsQXV0b1ZhY3V1bSBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGlj
fXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKIAogICAgIGlmICghcHJlcGFy
ZVN0YXRlbWVudHMoKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAg
LSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMg
ZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zLCBkYXRhYmFzZSBwYXRoOiAle3B1Ymxp
Y31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSwgbV9zdG9yYWdlRGlyZWN0b3J5
UGF0aC51dGY4KCkuZGF0YSgpKTsKQEAgLTMyOCw3ICszMzIsOCBAQCBib29sIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJlU3RhdGVtZW50cygpCiAgICAgICAgIHx8
IG1fdXBkYXRlR3JhbmRmYXRoZXJlZFN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCiAg
ICAgICAgIHx8IG1faXNHcmFuZGZhdGhlcmVkU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVf
T0sKICAgICAgICAgfHwgbV9maW5kRXhwaXJlZFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5wcmVw
YXJlKCkgIT0gU1FMSVRFX09LCi0gICAgICAgICkgeworICAgICAgICB8fCBtX3RvcEZyYW1lTGlu
a0RlY29yYXRpb25zRnJvbS5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IG1fdG9w
RnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tRXhpc3RzLnByZXBhcmUoKSAhPSBTUUxJVEVfT0spIHsK
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZXBhcmVTdGF0ZW1lbnRzIGZhaWxlZCB0byBwcmVwYXJl
LCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JN
c2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gZmFs
c2U7CkBAIC0zNTUsNyArMzYwLDcgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6aW5zZXJ0T2JzZXJ2ZWREb21haW4oY29uc3QgUmVzb3VyY2VMb2EKICAgICAgICAg
fHwgbV9pbnNlcnRPYnNlcnZlZERvbWFpblN0YXRlbWVudC5iaW5kSW50KDgsIGxvYWRTdGF0aXN0
aWNzLmRhdGFSZWNvcmRzUmVtb3ZlZCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1faW5zZXJ0
T2JzZXJ2ZWREb21haW5TdGF0ZW1lbnQuYmluZEludCg5LCBsb2FkU3RhdGlzdGljcy50aW1lc0Fj
Y2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9Vc2VySW50ZXJhY3Rpb24pICE9IFNRTElURV9PSwogICAg
ICAgICB8fCBtX2luc2VydE9ic2VydmVkRG9tYWluU3RhdGVtZW50LmJpbmRJbnQoMTAsIGxvYWRT
dGF0aXN0aWNzLnRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VBY2Nlc3NBUEkp
ICE9IFNRTElURV9PSykgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAg
LSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0T2JzZXJ2ZWREb21h
aW4gZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2Rh
dGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxM
T1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6Omluc2VydE9ic2VydmVkRG9tYWluIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAl
e3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMzcy
LDI0ICszNzcsMjYgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
aW5zZXJ0T2JzZXJ2ZWREb21haW4oY29uc3QgUmVzb3VyY2VMb2EKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVsYXRpb25z
aGlwRXhpc3RzKFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCYgc3RhdGVtZW50LCB1bnNpZ25lZCBm
aXJzdERvbWFpbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc2Vjb25kRG9tYWluKSBjb25z
dAorYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVsYXRpb25zaGlw
RXhpc3RzKFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCYgc3RhdGVtZW50LCBPcHRpb25hbDx1bnNp
Z25lZD4gZmlyc3REb21haW5JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHNlY29uZERvbWFp
bikgY29uc3QKIHsKKyAgICBpZiAoIWZpcnN0RG9tYWluSUQpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIGlmIChzdGF0
ZW1lbnQuYmluZEludCgxLCBmaXJzdERvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICBpZiAoc3Rh
dGVtZW50LmJpbmRJbnQoMSwgKmZpcnN0RG9tYWluSUQpICE9IFNRTElURV9PSwogICAgICAgICB8
fCBzdGF0ZW1lbnQuYmluZFRleHQoMiwgc2Vjb25kRG9tYWluLnN0cmluZygpKSAhPSBTUUxJVEVf
T0sKICAgICAgICAgfHwgc3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfUk9XKSB7Ci0gICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjptX2luc2VydERvbWFpblJlbGF0aW9uc2hpcFN0YXRlbWVudCBmYWlsZWQg
dG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFz
dEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vz
c2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV9pbnNl
cnREb21haW5SZWxhdGlvbnNoaXBTdGF0ZW1lbnQgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3Nh
Z2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0g
ICAgCi0gICAgYm9vbCByZWxhdGlvblNoaXBFeGlzdHMgPSAhIXN0YXRlbWVudC5nZXRDb2x1bW5J
bnQoMCk7CisgICAgYm9vbCByZWxhdGlvbnNoaXBFeGlzdHMgPSAhIXN0YXRlbWVudC5nZXRDb2x1
bW5JbnQoMCk7CiAKICAgICBpbnQgcmVzZXRSZXN1bHQgPSBzdGF0ZW1lbnQucmVzZXQoKTsKICAg
ICBBU1NFUlRfVU5VU0VEKHJlc2V0UmVzdWx0LCByZXNldFJlc3VsdCA9PSBTUUxJVEVfT0spOwog
ICAgIAotICAgIHJldHVybiByZWxhdGlvblNoaXBFeGlzdHM7CisgICAgcmV0dXJuIHJlbGF0aW9u
c2hpcEV4aXN0czsKIH0KIAogYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCYgc3Rh
dGVtZW50LCB1bnNpZ25lZCBkb21haW5JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZy
YW1lKQpAQCAtMzk5LDcgKzQwNiw3IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6Omluc2VydERvbWFpblJlbGF0aW9uc2hpcChXZWJDb3JlOjpTUUxpCiAgICAgaWYg
KHN0YXRlbWVudC5iaW5kSW50KDEsIGRvbWFpbklEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwg
c3RhdGVtZW50LmJpbmRUZXh0KDIsIHRvcEZyYW1lLnN0cmluZygpKSAhPSBTUUxJVEVfT0sKICAg
ICAgICAgfHwgc3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6bV9pbnNlcnREb21haW5SZWxhdGlvbnNoaXBTdGF0ZW1lbnQgZmFpbGVkIHRvIGJp
bmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJv
ck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25J
RCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1faW5zZXJ0RG9t
YWluUmVsYXRpb25zaGlwU3RhdGVtZW50IGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAl
e3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtNDE2
LDcgKzQyMyw3IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNv
bmZpcm1Eb21haW5Eb2VzTm90RXhpc3QoY29uc3QgUmVnaXN0CiAgICAgQVNTRVJUKCFSdW5Mb29w
Ojppc01haW4oKSk7CiAKICAgICBpZiAobV9kb21haW5JREZyb21TdHJpbmdTdGF0ZW1lbnQuYmlu
ZFRleHQoMSwgZG9tYWluLnN0cmluZygpKSAhPSBTUUxJVEVfT0spIHsKLSAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OmNvbmZpcm1Eb21haW5Eb2VzTm90RXhpc3QgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1l
c3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNvbmZpcm1Eb21haW5Eb2VzTm90RXhp
c3QgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2Rh
dGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC00MzQsMTcgKzQ0MSwyMSBAQCBib29sIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjb25maXJtRG9tYWluRG9lc05vdEV4
aXN0KGNvbnN0IFJlZ2lzdAogfQogI2VuZGlmCiAKLXVuc2lnbmVkIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpkb21haW5JRChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9t
YWluKSBjb25zdAorT3B0aW9uYWw8dW5zaWduZWQ+IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpkb21haW5JRChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKSBjb25z
dAogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgdW5zaWduZWQgZG9t
YWluSUQgPSAwOwogCi0gICAgaWYgKG1fZG9tYWluSURGcm9tU3RyaW5nU3RhdGVtZW50LmJpbmRU
ZXh0KDEsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LCi0gICAgICAgIHx8IG1fZG9tYWlu
SURGcm9tU3RyaW5nU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfUk9XKSB7Ci0gICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpkb21haW5JREZyb21TdHJpbmcgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1
YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gZG9tYWluSUQ7CisgICAgaWYgKG1fZG9t
YWluSURGcm9tU3RyaW5nU3RhdGVtZW50LmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJpbmcoKSkgIT0g
U1FMSVRFX09LKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNz
aW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkb21haW5J
REZyb21TdHJpbmcgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9k
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cisg
ICAgfQorICAgIAorICAgIGlmIChtX2RvbWFpbklERnJvbVN0cmluZ1N0YXRlbWVudC5zdGVwKCkg
IT0gU1FMSVRFX1JPVykgeworICAgICAgICBpbnQgcmVzZXRSZXN1bHQgPSBtX2RvbWFpbklERnJv
bVN0cmluZ1N0YXRlbWVudC5yZXNldCgpOworICAgICAgICBBU1NFUlRfVU5VU0VEKHJlc2V0UmVz
dWx0LCByZXNldFJlc3VsdCA9PSBTUUxJVEVfT0spOworICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwogICAgIH0KIAogICAgIGRvbWFpbklEID0gbV9kb21haW5JREZyb21TdHJpbmdTdGF0ZW1l
bnQuZ2V0Q29sdW1uSW50KDApOwpAQCAtNDU4LDI4ICs0NjksMzEgQEAgdW5zaWduZWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmRvbWFpbklEKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJgogdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0
RG9tYWluUmVsYXRpb25zaGlwcyhjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiBsb2FkU3Rh
dGlzdGljcykKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKLQogICAgIGF1dG8g
cmVnaXN0cmFibGVEb21haW5JRCA9IGRvbWFpbklEKGxvYWRTdGF0aXN0aWNzLnJlZ2lzdHJhYmxl
RG9tYWluKTsKKyAgICAKKyAgICBpZiAoIXJlZ2lzdHJhYmxlRG9tYWluSUQpCisgICAgICAgIHJl
dHVybjsKKyAgICAKICAgICBmb3IgKGF1dG8mIHRvcEZyYW1lRG9tYWluIDogbG9hZFN0YXRpc3Rp
Y3Muc3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zKQotICAgICAgICBpbnNlcnREb21h
aW5SZWxhdGlvbnNoaXAobV9zdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnNTdGF0ZW1l
bnQsIHJlZ2lzdHJhYmxlRG9tYWluSUQsIHRvcEZyYW1lRG9tYWluKTsKKyAgICAgICAgaW5zZXJ0
RG9tYWluUmVsYXRpb25zaGlwKG1fc3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zU3Rh
dGVtZW50LCByZWdpc3RyYWJsZURvbWFpbklELnZhbHVlKCksIHRvcEZyYW1lRG9tYWluKTsKIAog
ICAgIGZvciAoYXV0byYgdG9Eb21haW4gOiBsb2FkU3RhdGlzdGljcy50b3BGcmFtZVVuaXF1ZVJl
ZGlyZWN0c1RvKQotICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV90b3BGcmFtZVVu
aXF1ZVJlZGlyZWN0c1RvLCByZWdpc3RyYWJsZURvbWFpbklELCB0b0RvbWFpbik7CisgICAgICAg
IGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3RvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8sIHJl
Z2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgdG9Eb21haW4pOwogICAgIAogICAgIGZvciAoYXV0
byYgZnJvbURvbWFpbiA6IGxvYWRTdGF0aXN0aWNzLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJv
bSkKLSAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fdG9wRnJhbWVVbmlxdWVSZWRp
cmVjdHNGcm9tLCByZWdpc3RyYWJsZURvbWFpbklELCBmcm9tRG9tYWluKTsKKyAgICAgICAgaW5z
ZXJ0RG9tYWluUmVsYXRpb25zaGlwKG1fdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLCByZWdp
c3RyYWJsZURvbWFpbklELnZhbHVlKCksIGZyb21Eb21haW4pOwogICAgIAogICAgIGZvciAoYXV0
byYgdG9wRnJhbWVEb21haW4gOiBsb2FkU3RhdGlzdGljcy5zdWJmcmFtZVVuZGVyVG9wRnJhbWVE
b21haW5zKQotICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJmcmFtZVVuZGVy
VG9wRnJhbWVEb21haW5zLCByZWdpc3RyYWJsZURvbWFpbklELCB0b3BGcmFtZURvbWFpbik7Cisg
ICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1YmZyYW1lVW5kZXJUb3BGcmFtZURv
bWFpbnMsIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUoKSwgdG9wRnJhbWVEb21haW4pOwogICAg
IAogICAgIGZvciAoYXV0byYgdG9wRnJhbWVEb21haW4gOiBsb2FkU3RhdGlzdGljcy5zdWJyZXNv
dXJjZVVuZGVyVG9wRnJhbWVEb21haW5zKQotICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNo
aXAobV9zdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zLCByZWdpc3RyYWJsZURvbWFpbklE
LCB0b3BGcmFtZURvbWFpbik7CisgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcChtX3N1
YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMsIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFsdWUo
KSwgdG9wRnJhbWVEb21haW4pOwogICAgIAogICAgIGZvciAoYXV0byYgdG9Eb21haW4gOiBsb2Fk
U3RhdGlzdGljcy5zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvKQotICAgICAgICBpbnNlcnRE
b21haW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLCByZWdpc3Ry
YWJsZURvbWFpbklELCB0b0RvbWFpbik7CisgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hp
cChtX3N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8sIHJlZ2lzdHJhYmxlRG9tYWluSUQudmFs
dWUoKSwgdG9Eb21haW4pOwogICAgIAogICAgIGZvciAoYXV0byYgZnJvbURvbWFpbiA6IGxvYWRT
dGF0aXN0aWNzLnN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSkKLSAgICAgICAgaW5zZXJ0
RG9tYWluUmVsYXRpb25zaGlwKG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLCByZWdp
c3RyYWJsZURvbWFpbklELCBmcm9tRG9tYWluKTsKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRp
b25zaGlwKG1fc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLCByZWdpc3RyYWJsZURvbWFp
bklELnZhbHVlKCksIGZyb21Eb21haW4pOwogfQogCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpwb3B1bGF0ZUZyb21NZW1vcnlTdG9yZShjb25zdCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUmIG1lbW9yeVN0b3JlKQpAQCAtNDk3LDggKzUxMSw2IEBA
IHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBvcHVsYXRlRnJvbU1l
bW9yeVN0b3JlKGNvbnN0IFJlc291cmNlCiAgICAgLy8gY2FuIHJlZmVyIHRvIHRoZSBPYnNlcnZl
ZERvbWFpbiB0YWJsZSBlbnRyaWVzCiAgICAgZm9yIChhdXRvJiBzdGF0aXN0aWMgOiBzdGF0aXN0
aWNzTWFwKQogICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBzKHN0YXRpc3RpYy52YWx1
ZSk7Ci0KLSAgICBtX2RhdGFiYXNlLnJ1blZhY3V1bUNvbW1hbmQoKTsKIH0KIAogdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2FsY3VsYXRlQW5kU3VibWl0VGVsZW1l
dHJ5KCkgY29uc3QKQEAgLTUyOSw3ICs1NDEsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjppbmNyZW1lbnRSZWNvcmRzRGVsZXRlZENvdW50Rm9yRG9tYWlucwog
ICAgIFNRTGl0ZVN0YXRlbWVudCBkb21haW5zVG9VcGRhdGVTdGF0ZW1lbnQobV9kYXRhYmFzZSwg
bWFrZVN0cmluZygiVVBEQVRFIE9ic2VydmVkRG9tYWlucyBTRVQgZGF0YVJlY29yZHNSZW1vdmVk
ID0gZGF0YVJlY29yZHNSZW1vdmVkICsgMSBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiBJTiAoIiwg
ZG9tYWluc1RvU3RyaW5nKGRvbWFpbnMpLCAiKSIpKTsKICAgICBpZiAoZG9tYWluc1RvVXBkYXRl
U3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgZG9tYWluc1RvVXBk
YXRlU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6aW5jcmVtZW50U3RhdGlzdGljc0ZvckRvbWFpbnMgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAl
e3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbmNyZW1lbnRTdGF0aXN0aWNzRm9yRG9tYWlucyBm
YWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RF
cnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogfQpAQCAt
NTQ2LDI0ICs1NTgsMzQgQEAgdW5zaWduZWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OnJlY3Vyc2l2ZWx5RmluZE5vblByZXZhbGVudERvbWFpbnMKICAgICArK251bWJlck9m
UmVjdXJzaXZlQ2FsbHM7CiAKICAgICBTdGRTZXQ8dW5zaWduZWQ+IG5ld2x5SWRlbnRpZmllZERv
bWFpbnM7Ci0gICAgU1FMaXRlU3RhdGVtZW50IGZpbmRTdWJyZXNvdXJjZXMobV9kYXRhYmFzZSwg
bWFrZVN0cmluZygiU0VMRUNUIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9t
YWluSUQgZnJvbSBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20gSU5ORVIgSk9JTiBPYnNl
cnZlZERvbWFpbnMgT04gT2JzZXJ2ZWREb21haW5zLmRvbWFpbklEID0gU3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5JRCBXSEVSRSBzdWJyZXNvdXJjZURvbWFpbklEID0g
IiwgU3RyaW5nOjpudW1iZXIocHJpbWFyeURvbWFpbklEKSwgIkFORCBPYnNlcnZlZERvbWFpbnMu
aXNQcmV2YWxlbnQgPSAwIikpOwotICAgIGlmIChmaW5kU3VicmVzb3VyY2VzLnByZXBhcmUoKSA9
PSBTUUxJVEVfT0spIHsKLSAgICAgICAgd2hpbGUgKGZpbmRTdWJyZXNvdXJjZXMuc3RlcCgpID09
IFNRTElURV9ST1cpIHsKLSAgICAgICAgICAgIGF1dG8gbmV3RG9tYWluSUQgPSBmaW5kU3VicmVz
b3VyY2VzLmdldENvbHVtbkludCgwKTsKLSAgICAgICAgICAgIGF1dG8gaW5zZXJ0UmVzdWx0ID0g
bm9uUHJldmFsZW50UmVkaXJlY3Rpb25Tb3VyY2VzLmluc2VydChuZXdEb21haW5JRCk7Ci0gICAg
ICAgICAgICBpZiAoaW5zZXJ0UmVzdWx0LnNlY29uZCkKLSAgICAgICAgICAgICAgICBuZXdseUlk
ZW50aWZpZWREb21haW5zLmluc2VydChuZXdEb21haW5JRCk7Ci0gICAgICAgIH0KKyAgICBTUUxp
dGVTdGF0ZW1lbnQgZmluZFN1YnJlc291cmNlcyhtX2RhdGFiYXNlLCAiU0VMRUNUIFN1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQgZnJvbSBTdWJyZXNvdXJjZVVuaXF1
ZVJlZGlyZWN0c0Zyb20gSU5ORVIgSk9JTiBPYnNlcnZlZERvbWFpbnMgT04gT2JzZXJ2ZWREb21h
aW5zLmRvbWFpbklEID0gU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5J
RCBXSEVSRSBzdWJyZXNvdXJjZURvbWFpbklEID0gPyBBTkQgT2JzZXJ2ZWREb21haW5zLmlzUHJl
dmFsZW50ID0gMCJfcyk7CisgICAgaWYgKGZpbmRTdWJyZXNvdXJjZXMucHJlcGFyZSgpICE9IFNR
TElURV9PSworICAgICAgICB8fCBmaW5kU3VicmVzb3VyY2VzLmJpbmRJbnQoMSwgcHJpbWFyeURv
bWFpbklEKSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxM
T1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OnJlY3Vyc2l2ZWx5RmluZE5vblByZXZhbGVudERvbWFpbnNUaGF0UmVkaXJlY3RlZFRvVGhp
c0RvbWFpbiBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFi
YXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIHJldHVybiAwOworICAgIH0KKyAgICAKKyAgICB3aGlsZSAoZmluZFN1YnJlc291cmNlcy5z
dGVwKCkgPT0gU1FMSVRFX1JPVykgeworICAgICAgICBpbnQgbmV3RG9tYWluSUQgPSBmaW5kU3Vi
cmVzb3VyY2VzLmdldENvbHVtbkludCgwKTsKKyAgICAgICAgYXV0byBpbnNlcnRSZXN1bHQgPSBu
b25QcmV2YWxlbnRSZWRpcmVjdGlvblNvdXJjZXMuaW5zZXJ0KG5ld0RvbWFpbklEKTsKKyAgICAg
ICAgaWYgKGluc2VydFJlc3VsdC5zZWNvbmQpCisgICAgICAgICAgICBuZXdseUlkZW50aWZpZWRE
b21haW5zLmluc2VydChuZXdEb21haW5JRCk7CiAgICAgfQogCi0gICAgU1FMaXRlU3RhdGVtZW50
IGZpbmRUb3BGcmFtZXMobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIFRvcEZyYW1lVW5p
cXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQgZnJvbSBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0
c0Zyb20gSU5ORVIgSk9JTiBPYnNlcnZlZERvbWFpbnMgT04gT2JzZXJ2ZWREb21haW5zLmRvbWFp
bklEID0gVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5JRCBXSEVSRSB0YXJn
ZXREb21haW5JRCA9ICIsIFN0cmluZzo6bnVtYmVyKHByaW1hcnlEb21haW5JRCksICJBTkQgT2Jz
ZXJ2ZWREb21haW5zLmlzUHJldmFsZW50ID0gMCIpKTsKLSAgICBpZiAoZmluZFRvcEZyYW1lcy5w
cmVwYXJlKCkgPT0gU1FMSVRFX09LKSB7Ci0gICAgICAgIHdoaWxlIChmaW5kVG9wRnJhbWVzLnN0
ZXAoKSA9PSBTUUxJVEVfUk9XKSB7Ci0gICAgICAgICAgICBhdXRvIG5ld0RvbWFpbklEID0gZmlu
ZFRvcEZyYW1lcy5nZXRDb2x1bW5JbnQoMCk7Ci0gICAgICAgICAgICBhdXRvIGluc2VydFJlc3Vs
dCA9IG5vblByZXZhbGVudFJlZGlyZWN0aW9uU291cmNlcy5pbnNlcnQobmV3RG9tYWluSUQpOwot
ICAgICAgICAgICAgaWYgKGluc2VydFJlc3VsdC5zZWNvbmQpCi0gICAgICAgICAgICAgICAgbmV3
bHlJZGVudGlmaWVkRG9tYWlucy5pbnNlcnQobmV3RG9tYWluSUQpOwotICAgICAgICB9CisgICAg
U1FMaXRlU3RhdGVtZW50IGZpbmRUb3BGcmFtZXMobV9kYXRhYmFzZSwgIlNFTEVDVCBUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0c0Zyb20uZnJvbURvbWFpbklEIGZyb20gVG9wRnJhbWVVbmlxdWVSZWRp
cmVjdHNGcm9tIElOTkVSIEpPSU4gT2JzZXJ2ZWREb21haW5zIE9OIE9ic2VydmVkRG9tYWlucy5k
b21haW5JRCA9IFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbS5mcm9tRG9tYWluSUQgV0hFUkUg
dGFyZ2V0RG9tYWluSUQgPSA/IEFORCBPYnNlcnZlZERvbWFpbnMuaXNQcmV2YWxlbnQgPSAwIl9z
KTsKKyAgICBpZiAoZmluZFRvcEZyYW1lcy5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAg
IHx8IGZpbmRUb3BGcmFtZXMuYmluZEludCgxLCBwcmltYXJ5RG9tYWluSUQpICE9IFNRTElURV9P
SykgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAi
JXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVjdXJzaXZlbHlGaW5k
Tm9uUHJldmFsZW50RG9tYWluc1RoYXRSZWRpcmVjdGVkVG9UaGlzRG9tYWluIGZhaWxlZCwgZXJy
b3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkp
OworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
fQorICAgIAorICAgIHdoaWxlIChmaW5kVG9wRnJhbWVzLnN0ZXAoKSA9PSBTUUxJVEVfUk9XKSB7
CisgICAgICAgIGludCBuZXdEb21haW5JRCA9IGZpbmRUb3BGcmFtZXMuZ2V0Q29sdW1uSW50KDAp
OworICAgICAgICBhdXRvIGluc2VydFJlc3VsdCA9IG5vblByZXZhbGVudFJlZGlyZWN0aW9uU291
cmNlcy5pbnNlcnQobmV3RG9tYWluSUQpOworICAgICAgICBpZiAoaW5zZXJ0UmVzdWx0LnNlY29u
ZCkKKyAgICAgICAgICAgIG5ld2x5SWRlbnRpZmllZERvbWFpbnMuaW5zZXJ0KG5ld0RvbWFpbklE
KTsKICAgICB9CiAKICAgICBpZiAobmV3bHlJZGVudGlmaWVkRG9tYWlucy5lbXB0eSgpKQpAQCAt
NjA3LDcgKzYyOSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
Om1hcmtBc1ByZXZhbGVudElmSGFzUmVkaXJlY3RlZFRvUHJldmFsCiAgICAgU1FMaXRlU3RhdGVt
ZW50IG1hcmtQcmV2YWxlbnRTdGF0ZW1lbnQobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiVVBEQVRF
IE9ic2VydmVkRG9tYWlucyBTRVQgaXNQcmV2YWxlbnQgPSAxIFdIRVJFIGRvbWFpbklEIElOICgi
LCBidWlsZExpc3QoV1RGOjpJdGVyYXRvclJhbmdlPFN0ZFNldDx1bnNpZ25lZD46Oml0ZXJhdG9y
PihwcmV2YWxlbnREdWVUb1JlZGlyZWN0LmJlZ2luKCksIHByZXZhbGVudER1ZVRvUmVkaXJlY3Qu
ZW5kKCkpKSwgIikiKSk7CiAgICAgaWYgKG1hcmtQcmV2YWxlbnRTdGF0ZW1lbnQucHJlcGFyZSgp
ICE9IFNRTElURV9PSwogICAgICAgICB8fCBtYXJrUHJldmFsZW50U3RhdGVtZW50LnN0ZXAoKSAh
PSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAg
LSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWFya0FzUHJldmFsZW50SWZI
YXNSZWRpcmVjdGVkVG9QcmV2YWxlbnQgZmFpbGVkIHRvIGV4ZWN1dGUsIGVycm9yIG1lc3NhZ2U6
ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1hcmtBc1ByZXZhbGVudElmSGFzUmVkaXJlY3Rl
ZFRvUHJldmFsZW50IGZhaWxlZCB0byBleGVjdXRlLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31z
IiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgIH0KIH0KQEAgLTY1Nyw3ICs2NzksNyBAQCBIYXNoTWFwPHVuc2lnbmVk
LCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Tm90VmVyeVByZXZhbGVudFJl
c291cmNlcwogICAgICAgICB9CiAgICAgfQogCi0gICAgU1FMaXRlU3RhdGVtZW50IHN1YmZyYW1l
VW5kZXJUb3BGcmFtZURvbWFpbnNDb3VudFN0YXRlbWVudChtX2RhdGFiYXNlLCBtYWtlU3RyaW5n
KCJTRUxFQ1Qgc3VicmVzb3VyY2VEb21haW5JRCwgQ09VTlQodG9wRnJhbWVEb21haW5JRCkgRlJP
TSBTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJFIHN1YnJlc291cmNlRG9tYWlu
SUQgSU4gKCIsIGRvbWFpbklEc09mSW50ZXJlc3QsICIpIEdST1VQIEJZIHN1YnJlc291cmNlRG9t
YWluSUQiKSk7CisgICAgU1FMaXRlU3RhdGVtZW50IHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFp
bnNDb3VudFN0YXRlbWVudChtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1Qgc3ViZnJhbWVE
b21haW5JRCwgQ09VTlQodG9wRnJhbWVEb21haW5JRCkgRlJPTSBTdWJmcmFtZVVuZGVyVG9wRnJh
bWVEb21haW5zIFdIRVJFIHN1YmZyYW1lRG9tYWluSUQgSU4gKCIsIGRvbWFpbklEc09mSW50ZXJl
c3QsICIpIEdST1VQIEJZIHN1YmZyYW1lRG9tYWluSUQiKSk7CiAgICAgaWYgKHN1YmZyYW1lVW5k
ZXJUb3BGcmFtZURvbWFpbnNDb3VudFN0YXRlbWVudC5wcmVwYXJlKCkgPT0gU1FMSVRFX09LKSB7
CiAgICAgICAgIHdoaWxlIChzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnRTdGF0ZW1l
bnQuc3RlcCgpID09IFNRTElURV9ST1cpIHsKICAgICAgICAgICAgIHVuc2lnbmVkIGRvbWFpbklE
ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnNDb3Vu
dFN0YXRlbWVudC5nZXRDb2x1bW5JbnQoMCkpOwpAQCAtNjg3LDEyICs3MDksMTIgQEAgdm9pZCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVjbGFzc2lmeVJlc291cmNlcygp
CiAgICAgYXV0byBub3RWZXJ5UHJldmFsZW50UmVzb3VyY2VzID0gZmluZE5vdFZlcnlQcmV2YWxl
bnRSZXNvdXJjZXMoKTsKIAogICAgIGZvciAoYXV0byYgcmVzb3VyY2VTdGF0aXN0aWMgOiBub3RW
ZXJ5UHJldmFsZW50UmVzb3VyY2VzLnZhbHVlcygpKSB7Ci0gICAgICAgIGlmIChzaG91bGRTa2lw
KHJlc291cmNlU3RhdGlzdGljLnJlZ2lzdGVyYWJsZURvbWFpbikpCisgICAgICAgIGlmIChzaG91
bGRTa2lwKHJlc291cmNlU3RhdGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluKSkKICAgICAgICAgICAg
IGNvbnRpbnVlOwogCiAgICAgICAgIGF1dG8gbmV3UHJldmFsZW5jZSA9IGNsYXNzaWZpZXIoKS5j
YWxjdWxhdGVSZXNvdXJjZVByZXZhbGVuY2UocmVzb3VyY2VTdGF0aXN0aWMuc3VicmVzb3VyY2VV
bmRlclRvcEZyYW1lRG9tYWluc0NvdW50LCByZXNvdXJjZVN0YXRpc3RpYy5zdWJyZXNvdXJjZVVu
aXF1ZVJlZGlyZWN0c1RvQ291bnQsIHJlc291cmNlU3RhdGlzdGljLnN1YmZyYW1lVW5kZXJUb3BG
cmFtZURvbWFpbnNDb3VudCwgcmVzb3VyY2VTdGF0aXN0aWMudG9wRnJhbWVVbmlxdWVSZWRpcmVj
dHNUb0NvdW50LCByZXNvdXJjZVN0YXRpc3RpYy5wcmV2YWxlbmNlKTsKICAgICAgICAgaWYgKG5l
d1ByZXZhbGVuY2UgIT0gcmVzb3VyY2VTdGF0aXN0aWMucHJldmFsZW5jZSkKLSAgICAgICAgICAg
IHNldFByZXZhbGVudFJlc291cmNlKHJlc291cmNlU3RhdGlzdGljLnJlZ2lzdGVyYWJsZURvbWFp
biwgbmV3UHJldmFsZW5jZSk7CisgICAgICAgICAgICBzZXRQcmV2YWxlbnRSZXNvdXJjZShyZXNv
dXJjZVN0YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbiwgbmV3UHJldmFsZW5jZSk7CiAgICAgfQog
fQogCkBAIC03NzUsMTEgKzc5NywxMyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmCiAgICAgaWYg
KHVzZXJXYXNQcm9tcHRlZEVhcmxpZXIgPT0gU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpZ
ZXMpCiAgICAgICAgIFJFTEVBU0VfTE9HX0lORk9fSUYoZGVidWdMb2dnaW5nRW5hYmxlZCgpLCBJ
VFBEZWJ1ZywgIlN0b3JhZ2UgYWNjZXNzIHdhcyBncmFudGVkIHRvICV7cHVibGljfXMgdW5kZXIg
JXtwdWJsaWN9cy4iLCBzdWJGcmFtZURvbWFpbi5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCB0b3BG
cmFtZURvbWFpbi5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgIFNRTGl0ZVN0YXRlbWVu
dCBpbmNyZW1lbnRTdG9yYWdlQWNjZXNzKG1fZGF0YWJhc2UsIG1ha2VTdHJpbmcoIlVQREFURSBP
YnNlcnZlZERvbWFpbnMgU0VUIHRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VB
Y2Nlc3NBUEkgPSB0aW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5RHVlVG9TdG9yYWdlQWNjZXNzQVBJ
ICsgMSBXSEVSRSBkb21haW5JRCA9ICIsIFN0cmluZzo6bnVtYmVyKHN1YkZyYW1lU3RhdHVzLnNl
Y29uZCkpKTsKKyAgICBTUUxpdGVTdGF0ZW1lbnQgaW5jcmVtZW50U3RvcmFnZUFjY2VzcyhtX2Rh
dGFiYXNlLCAiVVBEQVRFIE9ic2VydmVkRG9tYWlucyBTRVQgdGltZXNBY2Nlc3NlZEFzRmlyc3RQ
YXJ0eUR1ZVRvU3RvcmFnZUFjY2Vzc0FQSSA9IHRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVU
b1N0b3JhZ2VBY2Nlc3NBUEkgKyAxIFdIRVJFIGRvbWFpbklEID0gPyIpOwogICAgIGlmIChpbmNy
ZW1lbnRTdG9yYWdlQWNjZXNzLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgaW5j
cmVtZW50U3RvcmFnZUFjY2Vzcy5iaW5kSW50KDEsIHN1YkZyYW1lU3RhdHVzLnNlY29uZCkgIT0g
U1FMSVRFX09LCiAgICAgICAgIHx8IGluY3JlbWVudFN0b3JhZ2VBY2Nlc3Muc3RlcCgpICE9IFNR
TElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyBm
YWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RF
cnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Np
b25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlcXVlc3RT
dG9yYWdlQWNjZXNzIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1f
ZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKICAgICBncmFudFN0b3JhZ2VBY2Nlc3NJbnRl
cm5hbChXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURvbWFpbiksIGZy
YW1lSUQsIHBhZ2VJRCwgdXNlcldhc1Byb21wdGVkRWFybGllciwgW2NvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCB3
YXNHcmFudGVkKSBtdXRhYmxlIHsKQEAgLTg1MSwxMCArODc1LDEzIEBAIHZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW5kZmF0aGVyRGF0YUZvckRvbWFpbnMoY29u
c3QgSGFzaFNlCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKKyAgICBmb3Ig
KGF1dG8mIHJlZ2lzdHJhYmxlRG9tYWluIDogZG9tYWlucykKKyAgICAgICAgZW5zdXJlUmVzb3Vy
Y2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4ocmVnaXN0cmFibGVEb21haW4pOworCiAg
ICAgU1FMaXRlU3RhdGVtZW50IGRvbWFpbnNUb1VwZGF0ZVN0YXRlbWVudChtX2RhdGFiYXNlLCBt
YWtlU3RyaW5nKCJVUERBVEUgT2JzZXJ2ZWREb21haW5zIFNFVCBncmFuZGZhdGhlcmVkID0gMSBX
SEVSRSByZWdpc3RyYWJsZURvbWFpbiBJTiAoIiwgZG9tYWluc1RvU3RyaW5nKGRvbWFpbnMpLCAi
KSIpKTsKICAgICBpZiAoZG9tYWluc1RvVXBkYXRlU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJ
VEVfT0sKICAgICAgICAgfHwgZG9tYWluc1RvVXBkYXRlU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJ
VEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbmRmYXRoZXJEYXRhRm9yRG9tYWlu
cyBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxh
c3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nl
c3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW5k
ZmF0aGVyRGF0YUZvckRvbWFpbnMgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwg
dGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIH0KIH0KQEAgLTg5NCw3ICs5MjEsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgUmVnaXN0cmFi
bGVEbwogICAgIGlmICghaXNNYWluRnJhbWUgJiYgIShhcmVUYXJnZXRBbmRUb3BGcmFtZURvbWFp
bnNTYW1lU2l0ZSB8fCBhcmVUYXJnZXRBbmRTb3VyY2VEb21haW5zU2FtZVNpdGUpKSB7CiAgICAg
ICAgIGF1dG8gdGFyZ2V0UmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0
cmFibGVEb21haW4odGFyZ2V0RG9tYWluKTsKICAgICAgICAgdXBkYXRlTGFzdFNlZW4odGFyZ2V0
RG9tYWluLCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpyZWR1Y2VUaW1lUmVzb2x1dGlvbihXYWxs
VGltZTo6bm93KCkpKTsKLQorICAgICAgICBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdp
c3RyYWJsZURvbWFpbih0b3BGcmFtZURvbWFpbik7CiAgICAgICAgIGlmICghcmVsYXRpb25zaGlw
RXhpc3RzKG1fc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluRXhpc3RzLCB0YXJnZXRSZXN1bHQu
c2Vjb25kLCB0b3BGcmFtZURvbWFpbikpIHsKICAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0
aW9uc2hpcChtX3N1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMsIHRhcmdldFJlc3VsdC5zZWNv
bmQsIHRvcEZyYW1lRG9tYWluKTsKICAgICAgICAgICAgIHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9
IHRydWU7CkBAIC05MDQsMjQgKzkzMSwyNSBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgUmVnaXN0cmFibGVEbwogICAg
IGlmIChpc1JlZGlyZWN0ICYmICFhcmVUYXJnZXRBbmRTb3VyY2VEb21haW5zU2FtZVNpdGUpIHsK
ICAgICAgICAgaWYgKGlzTWFpbkZyYW1lKSB7CiAgICAgICAgICAgICBhdXRvIHJlZGlyZWN0aW5n
RG9tYWluUmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21h
aW4oc291cmNlRG9tYWluKTsKKyAgICAgICAgICAgIGF1dG8gdGFyZ2V0UmVzdWx0ID0gZW5zdXJl
UmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4odGFyZ2V0RG9tYWluKTsKKwog
ICAgICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV90b3BGcmFtZVVuaXF1ZVJlZGly
ZWN0c1RvRXhpc3RzLCByZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQsIHRhcmdldERvbWFp
bikpIHsKICAgICAgICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV90b3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0c1RvLCByZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQsIHRhcmdl
dERvbWFpbik7CiAgICAgICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsK
ICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgYXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVS
ZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0YXJnZXREb21haW4pOwogICAg
ICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXBFeGlzdHMobV90b3BGcmFtZVVuaXF1ZVJlZGlyZWN0
c0Zyb21FeGlzdHMsIHRhcmdldFJlc3VsdC5zZWNvbmQsIHNvdXJjZURvbWFpbikpIHsKICAgICAg
ICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV90b3BGcmFtZVVuaXF1ZVJlZGly
ZWN0c0Zyb20sIHRhcmdldFJlc3VsdC5zZWNvbmQsIHNvdXJjZURvbWFpbik7CiAgICAgICAgICAg
ICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIGF1dG8gcmVkaXJlY3RpbmdEb21haW5SZXN1bHQgPSBl
bnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihzb3VyY2VEb21haW4p
OworICAgICAgICAgICAgYXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3Rp
Y3NGb3JSZWdpc3RyYWJsZURvbWFpbih0YXJnZXREb21haW4pOwogICAgICAgICAgICAgaWYgKCFy
ZWxhdGlvbnNoaXBFeGlzdHMobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvRXhpc3RzLCBy
ZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQsIHRhcmdldERvbWFpbikpIHsKICAgICAgICAg
ICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGly
ZWN0c1RvLCByZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQsIHRhcmdldERvbWFpbik7CiAg
ICAgICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKICAgICAgICAgICAg
IH0KIAotICAgICAgICAgICAgYXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRp
c3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0YXJnZXREb21haW4pOwogICAgICAgICAgICAgaWYg
KCFyZWxhdGlvbnNoaXBFeGlzdHMobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb21FeGlz
dHMsIHRhcmdldFJlc3VsdC5zZWNvbmQsIHNvdXJjZURvbWFpbikpIHsKICAgICAgICAgICAgICAg
ICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXAobV9zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zy
b20sIHRhcmdldFJlc3VsdC5zZWNvbmQsIHNvdXJjZURvbWFpbik7CiAgICAgICAgICAgICAgICAg
c3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKQEAgLTk1MCwxMSArOTc4LDExIEBAIHZvaWQg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFVzZXJJbnRlcmFjdGlvbihj
b25zdCBSZWdpc3RyYWJsZURvCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAK
LSAgICBpZiAobV9tb3N0UmVjZW50VXNlckludGVyYWN0aW9uU3RhdGVtZW50LmJpbmRJbnQoMSwg
aGFkVXNlckludGVyYWN0aW9uKQorICAgIGlmIChtX21vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25T
dGF0ZW1lbnQuYmluZEludCgxLCBoYWRVc2VySW50ZXJhY3Rpb24pICE9IFNRTElURV9PSwogICAg
ICAgICB8fCBtX21vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuYmluZERvdWJsZSgy
LCBtb3N0UmVjZW50SW50ZXJhY3Rpb24uc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKSAhPSBT
UUxJVEVfT0sKICAgICAgICAgfHwgbV9tb3N0UmVjZW50VXNlckludGVyYWN0aW9uU3RhdGVtZW50
LmJpbmRUZXh0KDMsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1f
bW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUp
IHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFVzZXJJbnRlcmFjdGlvbiwgZXJyb3IgbWVzc2Fn
ZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0VXNlckludGVyYWN0aW9uLCBlcnJvciBt
ZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAt
OTc4LDEwICsxMDA2LDExIEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OmNsZWFyVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlCiAgICAgYXV0byB0YXJn
ZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihk
b21haW4pOwogICAgIHNldFVzZXJJbnRlcmFjdGlvbihkb21haW4sIGZhbHNlLCB7IH0pOwogCi0g
ICAgU1FMaXRlU3RhdGVtZW50IHJlbW92ZVN0b3JhZ2VBY2Nlc3MobV9kYXRhYmFzZSwgbWFrZVN0
cmluZygiREVMRVRFIEZST00gU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJF
IGRvbWFpbklEID0gIiwgU3RyaW5nOjpudW1iZXIodGFyZ2V0UmVzdWx0LnNlY29uZCkpKTsKKyAg
ICBTUUxpdGVTdGF0ZW1lbnQgcmVtb3ZlU3RvcmFnZUFjY2VzcyhtX2RhdGFiYXNlLCAiREVMRVRF
IEZST00gU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJFIGRvbWFpbklEID0g
PyIpOwogICAgIGlmIChyZW1vdmVTdG9yYWdlQWNjZXNzLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sK
KyAgICAgICAgfHwgcmVtb3ZlU3RvcmFnZUFjY2Vzcy5iaW5kSW50KDEsIHRhcmdldFJlc3VsdC5z
ZWNvbmQpICE9IFNRTElURV9PSwogICAgICAgICB8fCByZW1vdmVTdG9yYWdlQWNjZXNzLnN0ZXAo
KSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAi
JXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nVXNlckludGVyYWN0
aW9uIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9k
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FM
TE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpsb2dVc2VySW50ZXJhY3Rpb24gZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7
cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogfQpAQCAtOTkxLDE1ICsxMDIwLDIwIEBAIGJvb2wg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc0hhZFVzZXJJbnRlcmFjdGlv
bihjb25zdCBSZWdpc3RyYWJsCiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAg
ICBpZiAobV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuYmluZFRleHQoMSwgZG9tYWluLnN0
cmluZygpKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgfHwgbV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0
ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptX3Vw
ZGF0ZVByZXZhbGVudFJlc291cmNlU3RhdGVtZW50IGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtw
dWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwotICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfHwgbV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1l
bnQuc3RlcCgpICE9IFNRTElURV9ST1cpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZf
QUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6Om1faGFkVXNlckludGVyYWN0aW9uU3RhdGVtZW50IGZhaWxlZCwgZXJyb3IgbWVzc2Fn
ZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworCisgICAg
ICAgIGludCByZXNldFJlc3VsdCA9IG1faGFkVXNlckludGVyYWN0aW9uU3RhdGVtZW50LnJlc2V0
KCk7CisgICAgICAgIEFTU0VSVF9VTlVTRUQocmVzZXRSZXN1bHQsIHJlc2V0UmVzdWx0ID09IFNR
TElURV9PSyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBib29sIGhhZFVz
ZXJJbnRlcmFjdGlvbiA9ICEhbV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuZ2V0Q29sdW1u
SW50KDApOwotICAgIGlmICghaGFkVXNlckludGVyYWN0aW9uKQorICAgIGlmICghaGFkVXNlcklu
dGVyYWN0aW9uKSB7CisgICAgICAgIGludCByZXNldFJlc3VsdCA9IG1faGFkVXNlckludGVyYWN0
aW9uU3RhdGVtZW50LnJlc2V0KCk7CisgICAgICAgIEFTU0VSVF9VTlVTRUQocmVzZXRSZXN1bHQs
IHJlc2V0UmVzdWx0ID09IFNRTElURV9PSyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CiAgICAgCiAgICAgV2FsbFRpbWUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUgPSBXYWxs
VGltZTo6ZnJvbVJhd1NlY29uZHMobV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuZ2V0Q29s
dW1uRG91YmxlKDEpKTsKIApAQCAtMTAxMSw2ICsxMDQ1LDkgQEAgYm9vbCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lz
dHJhYmwKICAgICAgICAgaGFkVXNlckludGVyYWN0aW9uID0gZmFsc2U7CiAgICAgfQogICAgIAor
ICAgIGludCByZXNldFJlc3VsdCA9IG1faGFkVXNlckludGVyYWN0aW9uU3RhdGVtZW50LnJlc2V0
KCk7CisgICAgQVNTRVJUX1VOVVNFRChyZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQgPT0gU1FMSVRF
X09LKTsKKwogICAgIHJldHVybiBoYWRVc2VySW50ZXJhY3Rpb247CiB9CiAKQEAgLTEwMjMsNyAr
MTA2MCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFBy
ZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxlCiAgICAgaWYgKG1fdXBkYXRlUHJldmFs
ZW50UmVzb3VyY2VTdGF0ZW1lbnQuYmluZEludCgxLCAxKSAhPSBTUUxJVEVfT0sKICAgICAgICAg
fHwgbV91cGRhdGVQcmV2YWxlbnRSZXNvdXJjZVN0YXRlbWVudC5iaW5kVGV4dCgyLCBkb21haW4u
c3RyaW5nKCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX3VwZGF0ZVByZXZhbGVudFJlc291
cmNlU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6bV91cGRhdGVQcmV2YWxlbnRSZXNvdXJjZVN0YXRlbWVudCBmYWlsZWQsIGVycm9yIG1lc3Nh
Z2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1fdXBkYXRlUHJldmFsZW50UmVzb3VyY2VT
dGF0ZW1lbnQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRh
YmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtMTAzNSw3ICsxMDcyLDcgQEAgdm9pZCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0UHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVn
aXN0cmFibGUKICAgICAgICAgaWYgKG1fdXBkYXRlVmVyeVByZXZhbGVudFJlc291cmNlU3RhdGVt
ZW50LmJpbmRJbnQoMSwgMSkgIT0gU1FMSVRFX09LCiAgICAgICAgICAgICB8fCBtX3VwZGF0ZVZl
cnlQcmV2YWxlbnRSZXNvdXJjZVN0YXRlbWVudC5iaW5kVGV4dCgyLCBkb21haW4uc3RyaW5nKCkp
ICE9IFNRTElURV9PSwogICAgICAgICAgICAgfHwgbV91cGRhdGVWZXJ5UHJldmFsZW50UmVzb3Vy
Y2VTdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6bV91cGRhdGVWZXJ5UHJldmFsZW50UmVzb3VyY2VTdGF0ZW1lbnQgZmFpbGVkLCBlcnJv
ciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7
CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAi
JXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV91cGRhdGVWZXJ5UHJl
dmFsZW50UmVzb3VyY2VTdGF0ZW1lbnQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31z
IiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTA0NSw3
ICsxMDgyLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0
UHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGUKICAgICB9CiAKICAgICBTdGRTZXQ8
dW5zaWduZWQ+IG5vblByZXZhbGVudFJlZGlyZWN0aW9uU291cmNlczsKLSAgICByZWN1cnNpdmVs
eUZpbmROb25QcmV2YWxlbnREb21haW5zVGhhdFJlZGlyZWN0ZWRUb1RoaXNEb21haW4oZG9tYWlu
SUQoZG9tYWluKSwgbm9uUHJldmFsZW50UmVkaXJlY3Rpb25Tb3VyY2VzLCAwKTsKKyAgICByZWN1
cnNpdmVseUZpbmROb25QcmV2YWxlbnREb21haW5zVGhhdFJlZGlyZWN0ZWRUb1RoaXNEb21haW4o
ZG9tYWluSUQoZG9tYWluKS52YWx1ZSgpLCBub25QcmV2YWxlbnRSZWRpcmVjdGlvblNvdXJjZXMs
IDApOwogICAgIHNldERvbWFpbnNBc1ByZXZhbGVudChXVEZNb3ZlKG5vblByZXZhbGVudFJlZGly
ZWN0aW9uU291cmNlcykpOwogfQogCkBAIC0xMDU2LDcgKzEwOTMsNyBAQCB2b2lkIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXREb21haW5zQXNQcmV2YWxlbnQoU3RkU2V0
PHVuc2lnbmVkPgogICAgIFNRTGl0ZVN0YXRlbWVudCBkb21haW5zVG9VcGRhdGVTdGF0ZW1lbnQo
bV9kYXRhYmFzZSwgbWFrZVN0cmluZygiVVBEQVRFIE9ic2VydmVkRG9tYWlucyBTRVQgaXNQcmV2
YWxlbnQgPSAxIFdIRVJFIGRvbWFpbklEIElOICgiLCBidWlsZExpc3QoV1RGOjpJdGVyYXRvclJh
bmdlPFN0ZFNldDx1bnNpZ25lZD46Oml0ZXJhdG9yPihkb21haW5zLmJlZ2luKCksIGRvbWFpbnMu
ZW5kKCkpKSwgIikiKSk7CiAgICAgaWYgKGRvbWFpbnNUb1VwZGF0ZVN0YXRlbWVudC5wcmVwYXJl
KCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IGRvbWFpbnNUb1VwZGF0ZVN0YXRlbWVudC5zdGVw
KCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywg
IiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldERvbWFpbnNBc1By
ZXZhbGVudCBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFi
YXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dF
RChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OnNldERvbWFpbnNBc1ByZXZhbGVudCBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMi
LCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMDc2LDkgKzExMTMsMTIgQEAg
Ym9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlZGljYXRlVmFsdWVG
b3JEb21haW4oV2ViQ29yZTo6U1FMaXQKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsK
ICAgICAKICAgICBpZiAocHJlZGljYXRlU3RhdGVtZW50LmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJp
bmcoKSkgIT0gU1FMSVRFX09LCi0gICAgICAgIHx8IHByZWRpY2F0ZVN0YXRlbWVudC5zdGVwKCkg
IT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVw
IC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZWRpY2F0ZVZhbHVlRm9y
RG9tYWluIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICB8fCBwcmVkaWNhdGVTdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ST1cpIHsK
KworICAgICAgICBpbnQgcmVzZXRSZXN1bHQgPSBwcmVkaWNhdGVTdGF0ZW1lbnQucmVzZXQoKTsK
KyAgICAgICAgQVNTRVJUX1VOVVNFRChyZXNldFJlc3VsdCwgcmVzZXRSZXN1bHQgPT0gU1FMSVRF
X09LKTsKKworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklE
LCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlZGljYXRlVmFs
dWVGb3JEb21haW4gZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0
aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIApAQCAtMTEzNyw3ICsxMTc3LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6Y2xlYXJQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWIKICAg
ICAKICAgICBpZiAobV9jbGVhclByZXZhbGVudFJlc291cmNlU3RhdGVtZW50LmJpbmRUZXh0KDEs
IGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fY2xlYXJQcmV2YWxl
bnRSZXNvdXJjZVN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OmNsZWFyUHJldmFsZW50UmVzb3VyY2UsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGlj
fXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyUHJldmFsZW50UmVzb3VyY2UsIGVycm9yIG1lc3NhZ2U6
ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMTU1LDcg
KzExOTUsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRH
cmFuZGZhdGhlcmVkKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYQogICAgIGlmIChtX3VwZGF0ZUdyYW5k
ZmF0aGVyZWRTdGF0ZW1lbnQuYmluZEludCgxLCB2YWx1ZSkgIT0gU1FMSVRFX09LCiAgICAgICAg
IHx8IG1fdXBkYXRlR3JhbmRmYXRoZXJlZFN0YXRlbWVudC5iaW5kVGV4dCgxLCBkb21haW4uc3Ry
aW5nKCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBtX3VwZGF0ZUdyYW5kZmF0aGVyZWRTdGF0
ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRH
cmFuZGZhdGhlcmVkIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwg
dGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpzZXRHcmFuZGZhdGhlcmVkIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNz
YWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTI0
OCw3ICsxMjg4LDcgQEAgc3RkOjpwYWlyPFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpBZGRlZFJlY29yZCwgdW5zaWduZWQ+IFJlc291cmNlTG8KICAgICBBU1NFUlQoIVJ1bkxv
b3A6OmlzTWFpbigpKTsKIAogICAgIGlmIChtX2RvbWFpbklERnJvbVN0cmluZ1N0YXRlbWVudC5i
aW5kVGV4dCgxLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSykgewotICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6Y3JlYXRlU2NoZW1hIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIs
IHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6ZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21h
aW4gZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5s
YXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBy
ZXR1cm4geyBBZGRlZFJlY29yZDo6Tm8sIDAgfTsKICAgICB9CkBAIC0xMjY3LDEzICsxMzA3LDI1
IEBAIHN0ZDo6cGFpcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6QWRkZWRS
ZWNvcmQsIHVuc2lnbmVkPiBSZXNvdXJjZUxvCiAgICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBu
ZXdPYnNlcnZhdGlvbihkb21haW4pOwogICAgIGluc2VydE9ic2VydmVkRG9tYWluKG5ld09ic2Vy
dmF0aW9uKTsKIAotICAgIHJldHVybiB7IEFkZGVkUmVjb3JkOjpZZXMsIGRvbWFpbklEKGRvbWFp
bikgfTsKKyAgICByZXR1cm4geyBBZGRlZFJlY29yZDo6WWVzLCBkb21haW5JRChkb21haW4pLnZh
bHVlKCkgfTsKK30KKwordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
Y2xlYXJEYXRhYmFzZUNvbnRlbnRzKCkKK3sKKyAgICBtX2RhdGFiYXNlLmNsZWFyQWxsVGFibGVz
KCk7CisKKyAgICBpZiAoIWNyZWF0ZVNjaGVtYSgpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpj
bGVhckRhdGFiYXNlQ29udGVudHMgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zLCBk
YXRhYmFzZSBwYXRoOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2co
KSwgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aC51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiB9CiAKIHZvaWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFp
bigpKTsKIAorICAgIGNsZWFyRGF0YWJhc2VDb250ZW50cygpOwogICAgIGNsZWFyT3BlcmF0aW5n
RGF0ZXMoKTsKIAogICAgIGF1dG8gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdh
dG9yOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwpAQCAtMTI4OSwxMiArMTM0
MSwxNiBAQCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Q29va2llVHJlYXRt
ZW50UmVzdWx0IFJlc291cmNlTG9hZFN0YXRpc3RpYwogewogICAgIEFTU0VSVCghUnVuTG9vcDo6
aXNNYWluKCkpOwogCi0gICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudChtX2RhdGFiYXNlLCBt
YWtlU3RyaW5nKCJTRUxFQ1QgaXNQcmV2YWxlbnQsIGhhZFVzZXJJbnRlcmFjdGlvbiBGUk9NIE9i
c2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ICIsIGRvbWFpbi5zdHJpbmco
KSkpOworICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQobV9kYXRhYmFzZSwgIlNFTEVDVCBp
c1ByZXZhbGVudCwgaGFkVXNlckludGVyYWN0aW9uIEZST00gT2JzZXJ2ZWREb21haW5zIFdIRVJF
IHJlZ2lzdHJhYmxlRG9tYWluID0gPyIpOwogICAgIGlmIChzdGF0ZW1lbnQucHJlcGFyZSgpICE9
IFNRTElURV9PSwotICAgICAgICB8fCBzdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ST1cpIHsK
LSAgICAgICAgcmV0dXJuIENvb2tpZVRyZWF0bWVudFJlc3VsdDo6QWxsb3c7CisgICAgICAgIHx8
IHN0YXRlbWVudC5iaW5kVGV4dCgxLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSykgewor
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y29va2llVHJlYXRtZW50Rm9yT3Jp
Z2luIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9k
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgIH0KICAgICAKKyAgICBpZiAoc3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfUk9XKQorICAg
ICAgICByZXR1cm4gQ29va2llVHJlYXRtZW50UmVzdWx0OjpBbGxvdzsKKyAgICAKICAgICBib29s
IGlzUHJldmFsZW50ID0gISFzdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDApOwogICAgIGlmICghaXNQ
cmV2YWxlbnQpCiAgICAgICAgIHJldHVybiBDb29raWVUcmVhdG1lbnRSZXN1bHQ6OkFsbG93OwpA
QCAtMTMwNywxMCArMTM2MywxMiBAQCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc1VzZXJHcmFudGVkUwogewogICAgIEFT
U0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgYXV0byBmaXJzdFBhcnR5UHJpbWFyeURv
bWFpbklEID0gZG9tYWluSUQoZmlyc3RQYXJ0eURvbWFpbik7CisgICAgYXV0byBmaXJzdFBhcnR5
UHJpbWFyeURvbWFpbklEID0gZG9tYWluSUQoZmlyc3RQYXJ0eURvbWFpbikudmFsdWUoKTsKIAot
ICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VM
RUNUIENPVU5UKCopIEZST00gU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJF
IGRvbWFpbklEID0gIiwgU3RyaW5nOjpudW1iZXIocmVxdWVzdGluZ0RvbWFpbklEKSwgIiBBTkQg
dG9wTGV2ZWxEb21haW5JRCA9ICIsIFN0cmluZzo6bnVtYmVyKGZpcnN0UGFydHlQcmltYXJ5RG9t
YWluSUQpKSk7CisgICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudChtX2RhdGFiYXNlLCAiU0VM
RUNUIENPVU5UKCopIEZST00gU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJF
IGRvbWFpbklEID0gPyBBTkQgdG9wTGV2ZWxEb21haW5JRCA9ID8iKTsKICAgICBpZiAoc3RhdGVt
ZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgc3RhdGVtZW50LmJpbmRJbnQo
MSwgcmVxdWVzdGluZ0RvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgc3RhdGVtZW50
LmJpbmRJbnQoMiwgZmlyc3RQYXJ0eVByaW1hcnlEb21haW5JRCkgIT0gU1FMSVRFX09LCiAgICAg
ICAgIHx8IHN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX1JPVykKICAgICAgICAgcmV0dXJuIFN0
b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjo6Tm87CiAKQEAgLTE0MzgsNyArMTQ5Niw3IEBAIHZv
aWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyRXhwaXJlZFVzZXJJ
bnRlcmFjdGlvbnMoKQogCiAgICAgaWYgKGNsZWFyRXhwaXJlZEludGVyYWN0aW9uLnN0ZXAoKSAh
PSBTUUxJVEVfRE9ORQogICAgICAgICB8fCByZW1vdmVTdG9yYWdlQWNjZXNzLnN0ZXAoKSAhPSBT
UUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nVXNlckludGVyYWN0aW9uIGZh
aWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFz
ZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIl
cCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhckV4cGlyZWRVc2Vy
SW50ZXJhY3Rpb25zIHN0YXRlbWVudChzKSBmYWlsZWQgdG8gc3RlcCwgZXJyb3IgbWVzc2FnZTog
JXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiB9CkBAIC0xNDU3LDE0ICsxNTE1LDI0IEBAIHZv
aWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyR3JhbmRmYXRoZXJp
bmcoVmVjdG9yPHVuc2lnbmVkPiYmCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBpZiAoY2xl
YXJHcmFuZGZhdGhlcmluZ1N0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OmNsZWFyR3JhbmRmYXRoZXJpbmcgZmFpbGVkIHRvIGJpbmQsIGVycm9y
IG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsK
KyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0g
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyR3JhbmRmYXRoZXJpbmcg
ZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFi
YXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
fQogfQogCi1ib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzaG91bGRS
ZW1vdmVBbGxXZWJzaXRlRGF0YUZvcihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiByZXNvdXJj
ZVN0YXRpc3RpYywgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSBjb25zdAorYm9v
bCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzSGFkVW5leHBpcmVkUmVj
ZW50VXNlckludGVyYWN0aW9uKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmIHJlc291cmNlU3Rh
dGlzdGljLCBPcGVyYXRpbmdEYXRlc1dpbmRvdyBvcGVyYXRpbmdEYXRlc1dpbmRvdykKIHsKLSAg
ICByZXR1cm4gIXJlc291cmNlU3RhdGlzdGljLmhhZFVzZXJJbnRlcmFjdGlvbiAmJiAoIXNob3Vs
ZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcgfHwgIXJlc291cmNlU3RhdGlzdGljLmdyYW5kZmF0aGVy
ZWQpOworICAgIGlmIChyZXNvdXJjZVN0YXRpc3RpYy5oYWRVc2VySW50ZXJhY3Rpb24gJiYgaGFz
U3RhdGlzdGljc0V4cGlyZWQocmVzb3VyY2VTdGF0aXN0aWMubW9zdFJlY2VudFVzZXJJbnRlcmFj
dGlvblRpbWUsIG9wZXJhdGluZ0RhdGVzV2luZG93KSkgeworICAgICAgICBjbGVhclVzZXJJbnRl
cmFjdGlvbihyZXNvdXJjZVN0YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbik7CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzb3VyY2VTdGF0aXN0aWMuaGFkVXNl
ckludGVyYWN0aW9uOworfQorCitib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvcihjb25zdCBQcmV2YWxlbnREb21haW5E
YXRhJiByZXNvdXJjZVN0YXRpc3RpYywgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5n
KQoreworICAgIHJldHVybiAhaGFzSGFkVW5leHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9uKHJl
c291cmNlU3RhdGlzdGljLCBPcGVyYXRpbmdEYXRlc1dpbmRvdzo6TG9uZykgJiYgKCFzaG91bGRD
aGVja0ZvckdyYW5kZmF0aGVyaW5nIHx8ICFyZXNvdXJjZVN0YXRpc3RpYy5ncmFuZGZhdGhlcmVk
KTsKIH0KIAogYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2hvdWxk
UmVtb3ZlQWxsQnV0Q29va2llc0Zvcihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiByZXNvdXJj
ZVN0YXRpc3RpYywgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSBjb25zdApAQCAt
MTQ5Miw5ICsxNTYwLDkgQEAgVmVjdG9yPHN0ZDo6cGFpcjxSZWdpc3RyYWJsZURvbWFpbiwgV2Vi
c2l0ZURhdGFUb1JlbW92ZT4+IFJlc291cmNlTG9hZFN0YXRpc3RpY3MKICAgICBWZWN0b3I8dW5z
aWduZWQ+IGRvbWFpbklEc1RvQ2xlYXJHcmFuZGZhdGhlcmluZzsKICAgICBmb3IgKGF1dG8mIHN0
YXRpc3RpYyA6IHByZXZhbGVudERvbWFpbnMpIHsKICAgICAgICAgaWYgKHNob3VsZFJlbW92ZUFs
bFdlYnNpdGVEYXRhRm9yKHN0YXRpc3RpYywgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZykp
Ci0gICAgICAgICAgICBkb21haW5zVG9SZW1vdmVXZWJzaXRlRGF0YUZvci5hcHBlbmQoc3RkOjpt
YWtlX3BhaXIoc3RhdGlzdGljLnJlZ2lzdGVyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92
ZTo6QWxsKSk7CisgICAgICAgICAgICBkb21haW5zVG9SZW1vdmVXZWJzaXRlRGF0YUZvci5hcHBl
bmQoc3RkOjptYWtlX3BhaXIoc3RhdGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0
YVRvUmVtb3ZlOjpBbGwpKTsKICAgICAgICAgZWxzZSBpZiAoc2hvdWxkUmVtb3ZlQWxsQnV0Q29v
a2llc0ZvcihzdGF0aXN0aWMsIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpKQotICAgICAg
ICAgICAgZG9tYWluc1RvUmVtb3ZlV2Vic2l0ZURhdGFGb3IuYXBwZW5kKHN0ZDo6bWFrZV9wYWly
KHN0YXRpc3RpYy5yZWdpc3RlcmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU6OkFsbEJ1
dENvb2tpZXMpKTsKKyAgICAgICAgICAgIGRvbWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yLmFw
cGVuZChzdGQ6Om1ha2VfcGFpcihzdGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVE
YXRhVG9SZW1vdmU6OkFsbEJ1dENvb2tpZXMpKTsKIAogICAgICAgICBpZiAoc2hvdWxkQ2xlYXJH
cmFuZGZhdGhlcmluZyAmJiBzdGF0aXN0aWMuZ3JhbmRmYXRoZXJlZCkKICAgICAgICAgICAgIGRv
bWFpbklEc1RvQ2xlYXJHcmFuZGZhdGhlcmluZy5hcHBlbmQoc3RhdGlzdGljLmRvbWFpbklEKTsK
QEAgLTE1MjQsOCArMTU5Miw5IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OnBydW5lU3RhdGlzdGljc0lmTmVlZGVkKCkKICAgICBzaXplX3QgY291bnRMZWZ0VG9Q
cnVuZSA9IGNvdW50IC0gcGFyYW1ldGVycygpLnBydW5lRW50cmllc0Rvd25UbzsKICAgICBBU1NF
UlQoY291bnRMZWZ0VG9QcnVuZSk7CiAKLSAgICBTUUxpdGVTdGF0ZW1lbnQgcmVjb3Jkc1RvUHJ1
bmUobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIGRvbWFpbklEIEZST00gT2JzZXJ2ZWRE
b21haW5zIE9SREVSIEJZIGhhZFVzZXJJbnRlcmFjdGlvbiwgaXNQcmV2YWxlbnQsIGxhc3RTZWVu
IERFU0MgTElNSVQgIiwgU3RyaW5nOjpudW1iZXIoY291bnRMZWZ0VG9QcnVuZSkpKTsKLSAgICBp
ZiAocmVjb3Jkc1RvUHJ1bmUucHJlcGFyZSgpICE9IFNRTElURV9PSykgeworICAgIFNRTGl0ZVN0
YXRlbWVudCByZWNvcmRzVG9QcnVuZShtX2RhdGFiYXNlLCAiU0VMRUNUIGRvbWFpbklEIEZST00g
T2JzZXJ2ZWREb21haW5zIE9SREVSIEJZIGhhZFVzZXJJbnRlcmFjdGlvbiwgaXNQcmV2YWxlbnQs
IGxhc3RTZWVuIExJTUlUID8iKTsKKyAgICBpZiAocmVjb3Jkc1RvUHJ1bmUucHJlcGFyZSgpICE9
IFNRTElURV9PSworICAgICAgICB8fCByZWNvcmRzVG9QcnVuZS5iaW5kSW50KDEsIGNvdW50TGVm
dFRvUHJ1bmUpICE9IFNRTElURV9PSykgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3
b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJ1bmVTdGF0
aXN0aWNzSWZOZWVkZWQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm47CkBAIC0xNTQwLDcgKzE2MDksNyBAQCB2b2lkIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcnVuZVN0YXRpc3RpY3NJZk5lZWRlZCgpCiAgICAg
U1FMaXRlU3RhdGVtZW50IHBydW5lQ29tbWFuZChtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJERUxF
VEUgZnJvbSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgZG9tYWluSUQgSU4gKCIsIGxpc3RUb1BydW5l
LCAiKSIpKTsKICAgICBpZiAocHJ1bmVDb21tYW5kLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAg
ICAgICAgfHwgcHJ1bmVDb21tYW5kLnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6cHJ1bmVTdGF0aXN0aWNzSWZOZWVkZWQgZmFpbGVkLCBlcnJvciBtZXNzYWdl
OiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcnVuZVN0YXRpc3RpY3NJZk5lZWRlZCBmYWls
ZWQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJv
ck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CkBAIC0xNTUzLDcgKzE2MjIsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjp1cGRhdGVMYXN0U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbgogICAg
IGlmIChtX3VwZGF0ZUxhc3RTZWVuU3RhdGVtZW50LmJpbmREb3VibGUoMSwgbGFzdFNlZW4uc2Vj
b25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV91cGRh
dGVMYXN0U2VlblN0YXRlbWVudC5iaW5kVGV4dCgyLCBkb21haW4uc3RyaW5nKCkpICE9IFNRTElU
RV9PSwogICAgICAgICB8fCBtX3VwZGF0ZUxhc3RTZWVuU3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJ
VEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6dXBkYXRlTGFzdFNlZW4gZmFpbGVkIHRv
IGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RF
cnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Np
b25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnVwZGF0ZUxh
c3RTZWVuIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAppbmRleCAwZmIyNGFkMDY3MDQ1YzlhZDMxNGYyM2Nm
YjQ0NDBkOGFmODQ1ZmVjLi5mMWQ1NjU1ZGVlYmNkYjA0N2NkZDk2ZDJlOTM1NjM0Y2VhYzAxZDNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmUuaApAQCAtNTEsNyArNTEsNyBAQCBjbGFzcyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5
U3RvcmU7CiAvLyBUaGlzIGlzIGFsd2F5cyBjb25zdHJ1Y3RlZCAvIHVzZWQgLyBkZXN0cm95ZWQg
b24gdGhlIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSdzIHN0YXRpc3RpY3MgcXVldWUu
CiBjbGFzcyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZSBmaW5hbCA6IHB1Ymxp
YyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgewogcHVibGljOgotICAgIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlKFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSYs
IFdvcmtRdWV1ZSYsIFNob3VsZEluY2x1ZGVMb2NhbGhvc3QsIGNvbnN0IFN0cmluZyYgc3RvcmFn
ZURpcmVjdG9yeVBhdGgpOworICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
KFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSYsIFdvcmtRdWV1ZSYsIFNob3VsZEluY2x1
ZGVMb2NhbGhvc3QsIGNvbnN0IFN0cmluZyYgc3RvcmFnZURpcmVjdG9yeVBhdGgsIFBBTDo6U2Vz
c2lvbklEKTsKIAogICAgIHZvaWQgcG9wdWxhdGVGcm9tTWVtb3J5U3RvcmUoY29uc3QgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlJik7CiAKQEAgLTEwNSwxMSArMTA1LDEyIEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgU2Vj
b25kcykgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CisgICAgdm9pZCBjbGVhckRhdGFiYXNlQ29udGVu
dHMoKTsKICAgICBib29sIGluc2VydE9ic2VydmVkRG9tYWluKGNvbnN0IFJlc291cmNlTG9hZFN0
YXRpc3RpY3MmKTsKICAgICB2b2lkIGluc2VydERvbWFpblJlbGF0aW9uc2hpcHMoY29uc3QgUmVz
b3VyY2VMb2FkU3RhdGlzdGljcyYpOwogICAgIGJvb2wgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlw
KFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCYsIHVuc2lnbmVkIGRvbWFpbklELCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4pOwotICAgIGJvb2wgcmVsYXRpb25zaGlwRXhp
c3RzKFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCYsIHVuc2lnbmVkIGZpcnN0RG9tYWluSUQsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzZWNvbmREb21haW4pIGNvbnN0OwotICAgIHVuc2lnbmVk
IGRvbWFpbklEKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJikgY29uc3Q7CisgICAgYm9vbCByZWxh
dGlvbnNoaXBFeGlzdHMoV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50JiwgT3B0aW9uYWw8dW5zaWdu
ZWQ+IGZpcnN0RG9tYWluSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzZWNvbmREb21haW4p
IGNvbnN0OworICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBkb21haW5JRChjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYpIGNvbnN0OwogI2lmbmRlZiBOREVCVUcKICAgICBib29sIGNvbmZpcm1Eb21haW5E
b2VzTm90RXhpc3QoY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBjb25zdDsKICNlbmRpZgpAQCAt
MTIwLDEyICsxMjEsMTMgQEAgcHJpdmF0ZToKIAogICAgIHN0cnVjdCBQcmV2YWxlbnREb21haW5E
YXRhIHsKICAgICAgICAgdW5zaWduZWQgZG9tYWluSUQ7Ci0gICAgICAgIFJlZ2lzdHJhYmxlRG9t
YWluIHJlZ2lzdGVyYWJsZURvbWFpbjsKKyAgICAgICAgUmVnaXN0cmFibGVEb21haW4gcmVnaXN0
cmFibGVEb21haW47CiAgICAgICAgIFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25U
aW1lOwogICAgICAgICBib29sIGhhZFVzZXJJbnRlcmFjdGlvbjsKICAgICAgICAgYm9vbCBncmFu
ZGZhdGhlcmVkOwogICAgIH07CiAgICAgVmVjdG9yPFByZXZhbGVudERvbWFpbkRhdGE+IHByZXZh
bGVudERvbWFpbnMoKSBjb25zdDsKKyAgICBib29sIGhhc0hhZFVuZXhwaXJlZFJlY2VudFVzZXJJ
bnRlcmFjdGlvbihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiwgT3BlcmF0aW5nRGF0ZXNXaW5k
b3cpOwogICAgIFZlY3Rvcjx1bnNpZ25lZD4gZmluZEV4cGlyZWRVc2VySW50ZXJhY3Rpb25zKCkg
Y29uc3Q7CiAgICAgdm9pZCBjbGVhckV4cGlyZWRVc2VySW50ZXJhY3Rpb25zKCk7CiAgICAgdm9p
ZCBjbGVhckdyYW5kZmF0aGVyaW5nKFZlY3Rvcjx1bnNpZ25lZD4mJik7CkBAIC0xMzQsNyArMTM2
LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVjbGFzc2lmeVJlc291cmNlcygpOwogICAgIHN0
cnVjdCBOb3RWZXJ5UHJldmFsZW50UmVzb3VyY2VzIHsKLSAgICAgICAgUmVnaXN0cmFibGVEb21h
aW4gcmVnaXN0ZXJhYmxlRG9tYWluOworICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWdpc3Ry
YWJsZURvbWFpbjsKICAgICAgICAgUmVzb3VyY2VMb2FkUHJldmFsZW5jZSBwcmV2YWxlbmNlOwog
ICAgICAgICB1bnNpZ25lZCBzdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zQ291bnQ7CiAg
ICAgICAgIHVuc2lnbmVkIHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9Db3VudDsKQEAgLTE1
OCw3ICsxNjAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJ1bmVTdGF0aXN0aWNzSWZOZWVkZWQo
KSBvdmVycmlkZTsKICAgICBlbnVtIGNsYXNzIEFkZGVkUmVjb3JkIHsgTm8sIFllcyB9OwogICAg
IHN0ZDo6cGFpcjxBZGRlZFJlY29yZCwgdW5zaWduZWQ+IGVuc3VyZVJlc291cmNlU3RhdGlzdGlj
c0ZvclJlZ2lzdHJhYmxlRG9tYWluKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7Ci0gICAgYm9v
bCBzaG91bGRSZW1vdmVBbGxXZWJzaXRlRGF0YUZvcihjb25zdCBQcmV2YWxlbnREb21haW5EYXRh
JiwgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSBjb25zdDsKKyAgICBib29sIHNo
b3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9yKGNvbnN0IFByZXZhbGVudERvbWFpbkRhdGEmLCBi
b29sIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpOwogICAgIGJvb2wgc2hvdWxkUmVtb3Zl
QWxsQnV0Q29va2llc0Zvcihjb25zdCBQcmV2YWxlbnREb21haW5EYXRhJiwgYm9vbCBzaG91bGRD
aGVja0ZvckdyYW5kZmF0aGVyaW5nKSBjb25zdDsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZ2lz
dHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlPj4gcmVnaXN0cmFibGVEb21haW5zVG9S
ZW1vdmVXZWJzaXRlRGF0YUZvcigpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNEYXRhYmFzZVN0b3Jl
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtMTk4LDYgKzIwMCw3IEBAIHByaXZh
dGU6CiAgICAgV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50IG1fdXBkYXRlR3JhbmRmYXRoZXJlZFN0
YXRlbWVudDsKICAgICBtdXRhYmxlIFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBtX2lzR3JhbmRm
YXRoZXJlZFN0YXRlbWVudDsKICAgICBtdXRhYmxlIFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBt
X2ZpbmRFeHBpcmVkVXNlckludGVyYWN0aW9uU3RhdGVtZW50OworICAgIFBBTDo6U2Vzc2lvbklE
IG1fc2Vzc2lvbklEOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IDRhYjM0NTczZGEzNDJm
Y2Y3YzY4ODc3MDNiNTNkMGVlNjMzNDAzYjEuLjJiYmVkY2I5NjM3ZmUzNjFmYzMwOGVjZTQ2OTY5
OTc0NDE5ZmI2OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuY3BwCkBAIC0xNTYsMTAgKzE1NiwxMCBAQCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShOZXR3b3JrU2Vzc2lvbiYgbgog
ICAgICwgbV9kYWlseVRhc2tzVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlOjpwZXJmb3JtRGFpbHlUYXNrcykKIHsKICAgICBSRUxFQVNF
X0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgCi0gICAgcG9zdFRhc2soW3RoaXMsIHJl
c291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGly
ZWN0b3J5Lmlzb2xhdGVkQ29weSgpLCBzaG91bGRJbmNsdWRlTG9jYWxob3N0XSB7Ci0gICAgICAg
IGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlzSVRQRGF0YWJh
c2VFbmFibGVkKCkpIHsKLSAgICAgICAgICAgIG1fc3RhdGlzdGljc1N0b3JlID0gbWFrZVVuaXF1
ZTxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZT4oKnRoaXMsIG1fc3RhdGlzdGlj
c1F1ZXVlLCBzaG91bGRJbmNsdWRlTG9jYWxob3N0LCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGly
ZWN0b3J5KTsKKworICAgIHBvc3RUYXNrKFt0aGlzLCBkYXRhYmFzZUVuYWJsZWQgPSBuZXR3b3Jr
U2Vzc2lvbi5uZXR3b3JrUHJvY2VzcygpLmlzSVRQRGF0YWJhc2VFbmFibGVkKCksIHJlc291cmNl
TG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5
Lmlzb2xhdGVkQ29weSgpLCBzaG91bGRJbmNsdWRlTG9jYWxob3N0LCBzZXNzaW9uSUQgPSBuZXR3
b3JrU2Vzc2lvbi5zZXNzaW9uSUQoKV0geworICAgICAgICBpZiAoZGF0YWJhc2VFbmFibGVkKSB7
CisgICAgICAgICAgICBtX3N0YXRpc3RpY3NTdG9yZSA9IG1ha2VVbmlxdWU8UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU+KCp0aGlzLCBtX3N0YXRpc3RpY3NRdWV1ZSwgc2hvdWxk
SW5jbHVkZUxvY2FsaG9zdCwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgc2Vzc2lv
bklEKTsKIAogICAgICAgICAgICAgYXV0byBtZW1vcnlTdG9yZSA9IG1ha2VVbmlxdWU8UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlPigqdGhpcywgbV9zdGF0aXN0aWNzUXVldWUsIHNo
b3VsZEluY2x1ZGVMb2NhbGhvc3QpOwogICAgICAgICAgICAgYXV0byBwZXJzaXN0ZW50U3RvcmUg
PSBtYWtlVW5pcXVlPFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZT4oKm1l
bW9yeVN0b3JlLCBtX3N0YXRpc3RpY3NRdWV1ZSwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVj
dG9yeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwCmluZGV4IDA5YzgwYmNjZGI4MWYzYjliNjM2ZWQ3NTUwZmEzMTk3NmFmMDgyNGMuLmUyMTg3
MzdmMDk0N2Q1ZDFiNWFjNjViODIwMDJmZTI5MTY4YWRhMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0zMTQsNyArMzE0LDkgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYKICAgICAgICAgbV9kZWZhdWx0TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uID0gbmV3VGVzdGluZ1Nlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9u
SUQoKSk7CiAgICAgfQogCi0gICAgV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
cmVkRmVhdHVyZXMoKS5zZXRJc0lUUERhdGFiYXNlRW5hYmxlZChwYXJhbWV0ZXJzLnNob3VsZEVu
YWJsZUlUUERhdGFiYXNlKTsKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQor
ICAgIG1faXNJVFBEYXRhYmFzZUVuYWJsZWQgPSBwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZUlUUERh
dGFiYXNlOworI2VuZGlmCiAKICAgICBXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQocGFy
YW1ldGVycy5lbmFibGVBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUpOwogCkBAIC02ODQsNiAr
Njg2LDE3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsCiAgICAgfQogfQogCit2b2lkIE5ldHdv
cmtQcm9jZXNzOjpzZXRVc2VJVFBEYXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJv
b2wgdmFsdWUpCit7CisgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29y
a1Nlc3Npb24oc2Vzc2lvbklEKSkgeworICAgICAgICBpZiAobV9pc0lUUERhdGFiYXNlRW5hYmxl
ZCAhPSB2YWx1ZSkgeworICAgICAgICAgICAgbV9pc0lUUERhdGFiYXNlRW5hYmxlZCA9IHZhbHVl
OworICAgICAgICAgICAgbmV0d29ya1Nlc3Npb24tPnJlY3JlYXRlUmVzb3VyY2VMb2FkU3RhdGlz
dGljU3RvcmUoKTsKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UHJldmFsZW50UmVzb3VyY2Uo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWlu
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
aWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklE
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmlu
ZGV4IDNkOTEzNjUwMmIwNjIzNWExYTkzODZiZmVmMTY2MDJhZTQ3NWJjMzkuLmJmNWRiN2ZmYjNm
YTFmYTM5NjdhZTY0NTNmMTZiN2ZjNGFiZDUxZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTIyMyw2ICsyMjMsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBpc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0
IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIGlzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRl
cihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3ViUmVzb3VyY2VEb21haW4mLCBjb25zdCBUb3BGcmFt
ZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgc2V0
R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBi
b29sIGlzR3JhbmRmYXRoZXJlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2
b2lkIHNldFVzZUlUUERhdGFiYXNlKFBBTDo6U2Vzc2lvbklELCBib29sIHZhbHVlKTsKICAgICB2
b2lkIHNldE1heFN0YXRpc3RpY3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBtYXhp
bXVtRW50cnlDb3VudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNl
dFByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRS
ZXNvdXJjZUZvckRlYnVnTW9kZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtMjYzLDYgKzI2NCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0
aW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZnJvbURvbWFpbiwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgcmVzZXRDcm9zc1NpdGVMb2Fkc1dpdGhMaW5rRGVjb3JhdGlvbkZv
clRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCBoYXNJc29sYXRlZFNlc3Npb24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgY29u
c3Q7CisgICAgYm9vbCBpc0lUUERhdGFiYXNlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNJ
VFBEYXRhYmFzZUVuYWJsZWQ7IH0KICNlbmRpZgogCiAgICAgdXNpbmcgQ2FjaGVTdG9yYWdlUm9v
dFBhdGhDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPjsKQEAgLTUz
Niw2ICs1MzgsMTAgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0hUVFBT
VXBncmFkZUNoZWNrZXI+IG1fbmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXI7CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgYm9vbCBtX2lzSVRQRGF0
YWJhc2VFbmFibGVkIHsgZmFsc2UgfTsKKyNlbmRpZgorICAgIAogICAgIGNsYXNzIFN0b3JhZ2VR
dW90YU1hbmFnZXJzIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHVpbnQ2NF90IGRlZmF1bHRRdW90
YShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbikgY29uc3QgeyByZXR1cm4gb3Jp
Z2luLnRvcE9yaWdpbiA9PSBvcmlnaW4uY2xpZW50T3JpZ2luID8gbV9kZWZhdWx0UXVvdGEgOiBt
X2RlZmF1bHRUaGlyZFBhcnR5UXVvdGE7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGUwMTM2ZGFkNWI3
MGE4NzRmNDk3ZDUzYWIzODk2OTdjYmEwNWNhYjUuLmM5ZTFhZWFiYzY5NWY1ZmFmYWY3YjdiNDQ0
YmEyNjU1MGNjNmRiOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTEzLDYgKzExMyw3IEBAIG1lc3Nh
Z2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTdWJtaXRUZWxlbWV0
cnkoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwogICAgIFNldENhY2hlTWF4
QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2Vj
b25kcyBzZWNvbmRzKSAtPiAoKSBBc3luYwogICAgIFNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFp
biwgYm9vbCBpc0dyYW5kZmF0aGVyZWQpIC0+ICgpIEFzeW5jCisgICAgU2V0VXNlSVRQRGF0YWJh
c2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlKQogICAgIFNldEdyYW5kZmF0
aGVyaW5nVGltZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25kcykgLT4g
KCkgQXN5bmMKICAgICBTZXRNYXhTdGF0aXN0aWNzRW50cmllcyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIHVpbnQ2NF90IG1heGltdW1FbnRyeUNvdW50KSAtPiAoKSBBc3luYwogICAgIFNldE1p
bmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFNlY29uZHMgc2Vjb25kcykgLT4gKCkgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXggMDc1NTI4MDQwMTMxNWY5MjMzZThh
NTZiMDY3ODNjNTgyYWEzMjczOS4uZTVmZGFmNDdiOWE5OTE1Mjg4NzUzOGZiMjgwODE4MTU2ODZl
OWZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lv
bi5jcHAKQEAgLTk3LDggKzk3LDEyIEBAIE5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbihO
ZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIGNvbnN0IE5ldHdvcmtTZXNzCiAjZW5kaWYK
IAogICAgICAgICBtX2NhY2hlID0gTmV0d29ya0NhY2hlOjpDYWNoZTo6b3BlbihuZXR3b3JrUHJv
Y2VzcywgbmV0d29ya0NhY2hlRGlyZWN0b3J5LCBjYWNoZU9wdGlvbnMsIG1fc2Vzc2lvbklEKTsK
KwogICAgICAgICBpZiAoIW1fY2FjaGUpCiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihO
ZXR3b3JrQ2FjaGUsICJGYWlsZWQgdG8gaW5pdGlhbGl6ZSB0aGUgV2ViS2l0IG5ldHdvcmsgZGlz
ayBjYWNoZSIpOworICAgICAgICAKKyAgICAgICAgaWYgKCFwYXJhbWV0ZXJzLnJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEaXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICAgICAgU2FuZGJveEV4dGVu
c2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAgICAgfQogCiAgICAgbV9hZENsaWNrQXR0cmli
dXRpb24tPnNldFBpbmdMb2FkRnVuY3Rpb24oW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIo
dGhpcyldKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYgbG9hZFBhcmFtZXRlcnMsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgewpAQCAt
MTY1LDYgKzE2OSwxMiBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uOjpzZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZChib29sIGVuYWJsZSkKICAgICAgICAgbV9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLT5zZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShtX3Jlc291cmNlTG9hZFN0YXRp
c3RpY3NNYW51YWxQcmV2YWxlbnRSZXNvdXJjZSwgW10geyB9KTsKIH0KIAordm9pZCBOZXR3b3Jr
U2Vzc2lvbjo6cmVjcmVhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNTdG9yZSgpCit7CisgICAgZGVz
dHJveVJlc291cmNlTG9hZFN0YXRpc3RpY3MoKTsKKyAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MgPSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNyZWF0ZSgqdGhpcywgbV9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBtX3Nob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJl
c291cmNlTG9hZFN0YXRpc3RpY3MpOworfQorCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjpub3RpZnlS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzUHJvY2Vzc2VkKCkKIHsKICAgICBtX25ldHdvcmtQcm9jZXNz
LT5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpOb3RpZnlSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUHJvY2Vzc2VkKCksIDApOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IDMxOGVj
ZTRhNDRiMjRjNDVmMWQ3MDY5ZDk4NmEzMzIyYTlhNTAyOWIuLjUzZTlmZjdkY2Y1OGY2Y2NiZjIx
ZjQzMjg0Mzg2Mzk3MWUyZDIwYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uLmgKQEAgLTg0LDYgKzg0LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzLmdldCgpOyB9CiAgICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RW5hYmxlZChib29sKTsKKyAgICB2b2lkIHJlY3JlYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljU3Rv
cmUoKTsKICAgICB2b2lkIG5vdGlmeVJlc291cmNlTG9hZFN0YXRpc3RpY3NQcm9jZXNzZWQoKTsK
ICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21haW5zKE9wdGlvblNl
dDxXZWJzaXRlRGF0YVR5cGU+LCBWZWN0b3I8c3RkOjpwYWlyPFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlPj4mJiwgYm9vbCBzaG91bGROb3RpZnlQYWdlLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4+Jik+JiYpOwogICAgIHZvaWQgcmVnaXN0cmFibGVEb21haW5zV2l0aFdlYnNpdGVEYXRh
KE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mJik+
JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRl
RGF0YVN0b3JlUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0
ZURhdGFTdG9yZVJlZi5jcHAKaW5kZXggNThjZDQzZjE4ZWI3YzFkZWFkMGUxYzc2NjUyOTNkNWQ5
MzUwYTQzMi4uZjI5NmI2YjJkOGMxM2NhOTNlNWMzOWY2ZmVhMzA3ZGZiOTcxZGVkZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVm
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3Rv
cmVSZWYuY3BwCkBAIC0yNjgsNiArMjY4LDEzIEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNT
dGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlCiAj
ZW5kaWYKIH0KIAordm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRVc2VJVFBEYXRhYmFzZShXS1dl
YnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBib29sIHZhbHVlKQoreworI2lmIEVOQUJM
RShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3Jl
UmVmKS0+c2V0VXNlSVRQRGF0YWJhc2UodmFsdWUpOworI2VuZGlmCit9CisKIHZvaWQgV0tXZWJz
aXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihXS1dl
YnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmlu
Z1JlZiB0b3BGcmFtZUhvc3QpCiB7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURh
dGFTdG9yZVJlZi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0
YVN0b3JlUmVmLmgKaW5kZXggN2EzZGE0NTUwMGIyMDE5YjJjZTU5MThjNGE4MDIxMThhMTQzZGQ3
Yi4uYjgzNTdjYzI3MDRmZWRlYmQ1NTk1ZDAzMmMwZTkzZTRhNTcwZTFiZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgK
QEAgLTcxLDYgKzcxLDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKFdLV2Vic2l0ZURhdGEKIFdLX0VYUE9SVCB2b2lk
IFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLV2Vic2l0ZURh
dGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIGJvb2wgdmFsdWUpOwog
dHlwZWRlZiB2b2lkICgqV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJl
ZEZ1bmN0aW9uKShib29sIGlzR3JhbmRmYXRoZXJlZCwgdm9pZCogZnVuY3Rpb25Db250ZXh0KTsK
IFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVy
ZWQoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwg
dm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJl
ZEZ1bmN0aW9uIGNhbGxiYWNrKTsKK1dLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNl
dFVzZUlUUERhdGFiYXNlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGJvb2wg
dmFsdWUpOwogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1
YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3Jl
UmVmLCBXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3QpOwogV0tfRVhQ
T1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJU
b3BGcmFtZU9yaWdpbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmlu
Z1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3QpOwogV0tfRVhQT1JUIHZvaWQgV0tX
ZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhX
S1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBXS1N0
cmluZ1JlZiBob3N0UmVkaXJlY3RlZFRvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGRjNTQ4OGM0NzM2
OGI4MGRlZGVlZWVjODhmZGQzY2FlMjg0MTUyMmQuLmI1ZjY5YWZmZjFiYTAyNzdhYjI3YTlkYmY2
ZDUxYTg0NmFhYTM1ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtNzc0LDYgKzc3NCwxNCBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBSZWdpcwogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3M6OlNldEdyYW5kZmF0aGVyZWQoc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiwg
aXNHcmFuZGZhdGhlcmVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCit2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFVzZUlUUERhdGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgYm9vbCB2YWx1ZSkKK3sKKyAgICBpZiAoIWNhblNlbmRNZXNzYWdlKCkpCisgICAg
ICAgIHJldHVybjsKKyAgICAKKyAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0
VXNlSVRQRGF0YWJhc2Uoc2Vzc2lvbklELCB2YWx1ZSksIDApOworfQorCiB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJQYWdlUHJveHlJZGVu
dGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1l
RG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIGF1dG8qIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmgKaW5kZXggYmIwZTJiZjIzZDhmYjVhMDJjNWM0NDk5NmE5Y2Q4NWE0N2FjNGY1Yy4u
NWVlZGI3MDc1OTk4NmMyZjVkYmM2Njg5MjQxZWFmNzRiYTA4ZWE4ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAg
LTExNiw2ICsxMTYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBZ2VDYXBGb3JDbGllbnRTaWRl
Q29va2llcyhQQUw6OlNlc3Npb25JRCwgT3B0aW9uYWw8U2Vjb25kcz4sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRDYWNoZU1heEFnZUNhcChQQUw6OlNlc3Npb25J
RCwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldEdy
YW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgYm9v
bCBpc0dyYW5kZmF0aGVyZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9p
ZCBzZXRVc2VJVFBEYXRhYmFzZShQQUw6OlNlc3Npb25JRCwgYm9vbCB2YWx1ZSk7CiAgICAgdm9p
ZCBzZXROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKFBBTDo6U2Vzc2lvbklE
LCBib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0SXNSdW5u
aW5nUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Rlc3QoUEFMOjpTZXNzaW9uSUQsIGJvb2wsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXROb3RpZnlQYWdlc1doZW5UZWxl
bWV0cnlXYXNDYXB0dXJlZChQQUw6OlNlc3Npb25JRCwgYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggZDUwOWE2ZjczODlmY2I0ZDZiZDI3MzNl
YjgwNzVmM2MzNjdkMmM4NC4uMDMyZWJjYjZiZTk0MzAzZTI0OGYxMmNjMGY4NGNmYzg1ODE1MjMw
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTE2NDcsNiArMTY0NywxNCBAQCB2b2lkIFdlYnNpdGVE
YXRhU3RvcmU6OnNldEdyYW5kZmF0aGVyZWQoY29uc3QgVVJMJiB1cmwsIGJvb2wgaXNHcmFuZGZh
dGhlcmVkLCBDbwogICAgIH0KIH0KIAordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRVc2VJVFBE
YXRhYmFzZShib29sIHZhbHVlKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisK
KyAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29sIDogcHJvY2Vzc1Bvb2xzKCkpCisgICAgICAgIHBy
b2Nlc3NQb29sLT5lbnN1cmVOZXR3b3JrUHJvY2VzcygpLnNldFVzZUlUUERhdGFiYXNlKG1fc2Vz
c2lvbklELCB2YWx1ZSk7Cit9CisKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0Q3Jvc3NTaXRl
TG9hZFdpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoY29uc3QgVVJMJiBmcm9tVVJMLCBjb25z
dCBVUkwmIHRvVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCAw
YWJmMGMzZjNkODQ1YmFlODExYmUyMzUxYTg4ZWIyNDZiOGRkNTQ5Li5mYzEyOTFmMWZmZjQ5ZTBh
MjQ0MWM0OWYxM2NjNWJkYzI3YmI3NDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC0xNTksNiArMTU5LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9j
ZXNzaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzdWJtaXRUZWxl
bWV0cnkoKTsKICAgICB2b2lkIHNldEdyYW5kZmF0aGVyZWQoY29uc3QgVVJMJiwgYm9vbCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFVzZUlUUERhdGFiYXNlKGJv
b2wpOwogICAgIHZvaWQgc2V0R3JhbmRmYXRoZXJpbmdUaW1lKFNlY29uZHMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBVUkwmLCBTZWNv
bmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Tm90aWZ5UGFn
ZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IGVjODZkYjk5NGQ3Njk2MmI4NTA2YjYzMWM1YTQ4MzYwZDIwNTViNGYuLmRmOTk4ZWNiMTRj
NWFlNjhkYmU2YTA2ZmNkMjNkMGU1YjJmNDNkZjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxOS0wOS0yNiAgS2F0
ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUg
TGF5b3V0VGVzdHMgdXNpbmcgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBTUUxpdGUgYmFja2VuZCAo
MTk1NDIwKSAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5NTQyMCAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81NDIxMzU1MT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCisKKyAgICAgICAgQWRkZWQgaW4gbG9naWMgdG8g
c2VuZCBhIG1lc3NhZ2UgZnJvbSB0aGUgVUlQcm9jZXNzIHRvIHRoZSBOZXR3b3JrICAgICAgCisg
ICAgICAgIFByb2Nlc3Mgd2hpY2ggd2lsbCBpbml0YWxpemUgdGhlIElUUCBEYXRhYmFzZSBiYWNr
ZW5kIHRvIGFsbG93IGZvciAgICAgIAorICAgICAgICBsYXlvdXQgdGVzdGluZy4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRs
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldFVzZUlUUERhdGFiYXNlKToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OnNldFVzZUlUUERhdGFiYXNlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0
SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZl
U3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAxOS0wOS0yNiAgSmll
d2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFRlc3RXZWJLaXRBUEku
U09BdXRob3JpemF0aW9uU3ViRnJhbWUuQXV0aG9yaXphdGlvbk9wdGlvbnMgaXMgZmFpbGluZyBj
b25zaXN0ZW50bHkgb24gaU9TIEFQSSB0ZXN0cyBFV1MKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRs
CmluZGV4IDNjZDk0YmVkYTQ3MDYwNDlhZTA5YmI4YjMxMjNlMTlhNjNjOWZlNjYuLjk2NzZmMmVh
NjVmNDUyNGUxOTQxNTkwMjRhNmVkNjI4MjQwNWIwZDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVy
LmlkbApAQCAtMzA5LDYgKzMwOSw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICBib29s
ZWFuIGlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihET01TdHJpbmcgaG9zdE5hbWUp
OwogICAgIHZvaWQgc2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoRE9NU3RyaW5nIGhvc3ROYW1l
LCBib29sZWFuIHZhbHVlKTsKICAgICBib29sZWFuIGlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQo
RE9NU3RyaW5nIGhvc3ROYW1lKTsKKyAgICB2b2lkIHNldFVzZUlUUERhdGFiYXNlKGJvb2xlYW4g
dmFsdWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdp
bihET01TdHJpbmcgaG9zdE5hbWUsIERPTVN0cmluZyB0b3BGcmFtZUhvc3ROYW1lKTsKICAgICB2
b2lkIHNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oRE9NU3RyaW5n
IGhvc3ROYW1lLCBET01TdHJpbmcgdG9wRnJhbWVIb3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0
aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKERPTVN0cmluZyBob3N0TmFtZSwgRE9N
U3RyaW5nIGhvc3ROYW1lUmVkaXJlY3RlZFRvKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGI0OTVjZmEwZDQyZTky
NmVlNTE2MjE1ZmUzYzAzMGI5MTMwZmUzYTcuLmY4MTYyNDJmMmRiNGJmMTA5ZmUwYjQ4NmMwYmM5
ZWE0NWU0NTk0OTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMTY5NCw3ICsxNjk0LDE1IEBAIHZvaWQgVGVzdFJ1
bm5lcjo6c2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoSlNTdHJpbmdSZWYgaG9zdE5hbWUsIGJv
b2wgdmFsdWUpCiAgICAgCiAgICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVj
dGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3Nh
Z2VCb2R5LmdldCgpLCBudWxscHRyKTsKIH0KKwordm9pZCBUZXN0UnVubmVyOjpzZXRVc2VJVFBE
YXRhYmFzZShib29sIHZhbHVlKQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNz
YWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlNldFVzZUlU
UERhdGFiYXNlIikpOworICAgIFdLUmV0YWluUHRyPFdLQm9vbGVhblJlZj4gbWVzc2FnZUJvZHkg
PSBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZSh2YWx1ZSkpOwogICAgIAorICAgIFdLQnVuZGxlUG9z
dFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxlKCks
IG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSwgbnVsbHB0cik7Cit9CisKIGJv
b2wgVGVzdFJ1bm5lcjo6aXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChKU1N0cmluZ1JlZiBob3N0
TmFtZSkKIHsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9w
dFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJJc1N0YXRpc3RpY3NHcmFuZGZhdGhl
cmVkIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuaAppbmRleCAyZGEyOGJiZGQ2MjY2YjZiN2JiOTI2NDQ5N2ZhY2RlZjY0NDEzNzc5
Li5mNGFkM2E2MGUyZTU3NTBiM2MxNjU2MjY0ODQyNTU5YTVkYzMyNjNiIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtNDEw
LDYgKzQxMCw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbihKU1N0cmluZ1JlZiBob3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzR3Jh
bmRmYXRoZXJlZChKU1N0cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSk7CiAgICAgYm9vbCBp
c1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKEpTU3RyaW5nUmVmIGhvc3ROYW1lKTsKKyAgICB2b2lk
IHNldFVzZUlUUERhdGFiYXNlKGJvb2wgdmFsdWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1
YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihKU1N0cmluZ1JlZiBob3N0TmFtZSwgSlNTdHJpbmdS
ZWYgdG9wRnJhbWVIb3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VV
bmRlclRvcEZyYW1lT3JpZ2luKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBKU1N0cmluZ1JlZiB0b3BG
cmFtZUhvc3ROYW1lKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJl
ZGlyZWN0VG8oSlNTdHJpbmdSZWYgaG9zdE5hbWUsIEpTU3RyaW5nUmVmIGhvc3ROYW1lUmVkaXJl
Y3RlZFRvKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXgg
ZDJhMTBjYTY0YjRhYmFiZTFmZGM3ODRiNTM4NzMzZWExYjlkMGJmMy4uMmY1YmQ5OTI5NjdkNzNh
ZjMyYTBiN2Y0YWI1NmNlNDZiMTQ1Zjk2MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKQEAgLTMzNTEsNiArMzM1MSwxMSBAQCBib29sIFRlc3RDb250cm9sbGVy
Ojppc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLU3RyaW5nUmVmIGhvc3QpCiAgICAgcmV0dXJu
IGNvbnRleHQucmVzdWx0OwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRVc2VJVFBEYXRh
YmFzZShib29sIHZhbHVlKQoreworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFVzZUlUUERhdGFi
YXNlKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIHZhbHVlKTsKK30KKwogdm9p
ZCBUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdp
bihXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3QpCiB7CiAgICAgV0tX
ZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihU
ZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCBob3N0LCB0b3BGcmFtZUhvc3QpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IGFmNWU1OTk1NjJkNzZi
ZTg3YWM1NzJjNDRiYzQyNzkzZTdlZTI1NDIuLjcyZWRhYmU4ZmYyYTljZTRmMjZmOTUzNDc2ODRi
ZDg0YTZiYzYxNmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAg
LTIyMiw2ICsyMjIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1N0YXRpc3RpY3NIYXNIYWRVc2Vy
SW50ZXJhY3Rpb24oV0tTdHJpbmdSZWYgaG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGlj
c0dyYW5kZmF0aGVyZWQoV0tTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUpOwogICAgIGJv
b2wgaXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1N0cmluZ1JlZiBob3N0TmFtZSk7CisgICAg
dm9pZCBzZXRVc2VJVFBEYXRhYmFzZShib29sIHZhbHVlKTsKICAgICB2b2lkIHNldFN0YXRpc3Rp
Y3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oV0tTdHJpbmdSZWYgaG9zdE5hbWUsIFdLU3Ry
aW5nUmVmIHRvcEZyYW1lSG9zdE5hbWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1N1YnJlc291
cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihXS1N0cmluZ1JlZiBob3N0TmFtZSwgV0tTdHJpbmdSZWYg
dG9wRnJhbWVIb3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdFRvKFdLU3RyaW5nUmVmIGhvc3ROYW1lLCBXS1N0cmluZ1JlZiBob3N0TmFtZVJl
ZGlyZWN0ZWRUbyk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmlu
ZGV4IGZkMjUyMDBkNDAyZjBjZmQzMjJjYmViYTE4ZjA1YjA5ZjRmY2QxZmUuLjMwNjUwYzQ5OTEx
MzkzYWRkZjA4MWM3YTEwZjBjNDhlMWQzODk0NDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uY3BwCkBAIC0xMjQxLDYgKzEyNDEsMTQgQEAgV0tSZXRhaW5QdHI8V0tU
eXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21J
bmplY3RlZEIKICAgICAgICAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiByZXN1bHQgPSBhZG9wdFdL
KFdLQm9vbGVhbkNyZWF0ZShpc0dyYW5kZmF0aGVyZWQpKTsKICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICB9CisKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdl
TmFtZSwgIlNldFVzZUlUUERhdGFiYXNlIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlE
KG1lc3NhZ2VCb2R5KSA9PSBXS0Jvb2xlYW5HZXRUeXBlSUQoKSk7CisKKyAgICAgICAgV0tCb29s
ZWFuUmVmIHZhbHVlID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihtZXNzYWdlQm9keSk7Cisg
ICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRVc2VJVFBEYXRhYmFzZShXS0Jv
b2xlYW5HZXRWYWx1ZSh2YWx1ZSkpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CiAg
ICAgCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJT
ZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luIikpIHsKICAgICAgICAgQVNT
RVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25hcnlHZXRUeXBlSUQoKSk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggZmE2OWFlNmE1ZWE4YTdiYzg3NmQ4YTExM2Y3NTEwNzMwOTEzMjk5Yi4uMmNkYzNl
ZmRlNjI1OWFkOWYxMzA0ZjllY2M3ZjY0OGYzNjlkNTg1ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1OCBA
QAorMjAxOS0wOS0yNiAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4K
KworICAgICAgICBFbmFibGUgTGF5b3V0VGVzdHMgdXNpbmcgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyBTUUxpdGUgYmFja2VuZCAoMTk1NDIwKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk1NDIwIAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQyMTM1
NTE+CisKKyAgICAgICAgQWRkZWQgYSBmbGFnIHRvIGFsbCBJVFAgdGVzdHMgdG8gZW5hYmxlIHRo
ZSBJVFAgZGF0YWJhc2UgYmFja2VuZCB0byAKKyAgICAgICAgYWxsb3cgZm9yIHRlc3RpbmcgZnVu
Y3Rpb25hbGl0eSBhZ2FpbnN0IHRoZSBtZW1vcnkgc3RvcmUuIFRlc3RzIHdlcmUgCisgICAgICAg
IG5vdCBjcmVhdGVkIGZvciB0ZWxlbWV0cnktZ2VuZXJhdGlvbi5odG1sLCAKKyAgICAgICAgbG9n
LWNyb3NzLXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sLCBvciAKKyAgICAgICAg
d2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUtbmF2aWdhdGVkLXRvLXdpdGgtbGluay1kZWNv
cmF0aW9uLmh0bWwsIAorICAgICAgICBiZWNhdXNlIHRoZXNlIHJlbHkgb24gZnVuY3Rpb25zIG5v
dCB5ZXQgaW1wbGVtZW50ZWQgaW4gdGhlIElUUCBkYXRhYmFzZS4KKyAgICAgICAgQWRkaXRpb25h
bGx5LCBhZGRlZCBmbGFncyB0byBzb21lIG1lbW9yeSBzdG9yZSB0ZXN0cyB0byBlbnN1cmUgdGhl
eQorICAgICAgICBhcmUgdXNpbmcgdGhlIG1lbW9yeSBzdG9yZSBiZWZvcmUgY2FsbGluZyBmdW5j
dGlvbnMgbm90IGltcGxlbWVudGVkIGluCisgICAgICAgIHRoZSBkYXRhYmFzZSBzdG9yZSB5ZXQu
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ibG9ja2lu
Zy1pbi13ZWItd29ya2VyLXNjcmlwdC1pbXBvcnQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmct
aW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXAtY2FjaGUtbWF4LWFnZS1m
b3ItcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdl
LWZvci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29v
a2llLXNldC1pbi1qcy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tp
ZS1zZXQtaW4tanMtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1q
cy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVk
LWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUt
c2l0ZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgt
bGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
YXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZy
b20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tp
ZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1y
ZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQt
aW4tanMtd2l0aC1saW5rLXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJj
ZS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGlu
ay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQt
bGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFs
ZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4t
anMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGhvdXQt
bGluay1kZWNvcmF0aW9uLWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNz
LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11
bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24t
cHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRh
YmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRl
ci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJl
dmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFi
YXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1
ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVu
dC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRh
YmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3At
ZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFz
ZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJj
ZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNl
ZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC10by1wcmV2YWxlbnQtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXBy
ZXZhbGVudC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291
cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1k
YXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1
ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJh
c2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVk
aXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24t
dG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lm
eS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1k
YXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUt
cmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNl
ZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
dmVyeS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRh
dGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVh
ci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXItZGF0YWJhc2UtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jb29raWUtZGVsZXRpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9uLWRhdGFi
YXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jb29raWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jb29raWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFz
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNvb2tpZXMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVs
ZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNvb2tpZXMtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3At
bGV2ZWwtbmF2aWdhdGlvbi1yZWRpcmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2st
dG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1jYXB0dXJlLXN0
YXRpc3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2aWdhdGlvbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8t
bm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFz
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9k
by1ub3QtcmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNo
LXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1k
YXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9kby1ub3Qtc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1w
cmV2YWxlbnQtd2l0aG91dC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJl
ci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2Ut
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRo
LWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1
Zy1tb2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFu
ZGZhdGhlcmluZy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy1kYXRhYmFzZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbG9n
LWNyb3NzLXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sOgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdp
dGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291
cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJj
ZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVu
dC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxl
bnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQt
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29r
aWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJh
bWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9z
dC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhv
c3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZy
YW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRv
LWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1u
b24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJh
c2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJv
eGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1s
b2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlm
cmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlw
LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJl
ZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJl
dmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291
cmNlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3By
ZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2
YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNv
dXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJl
c291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNl
LXdpdGgtdXNlci1pbnRlcmFjdGlvbi10aW1lb3V0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVu
dC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC1kYXRhYmFzZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFs
ZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9w
cmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVu
ZS1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BydW5lLXN0YXRpc3RpY3MtZGF0YWJhc2Uu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlw
LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1s
b2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2Nh
bGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJh
bWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8t
aXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNh
bmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
YW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVj
dC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hl
ZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2Fs
aG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFt
ZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1p
ZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQt
bmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10
by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZy
YW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9j
YWxob3N0LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1kZWJ1Zy1t
b2RlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NldC1jdXN0b20tcHJldmFsZW50LXJlc291cmNlLWluLWRl
YnVnLW1vZGUtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50
LXN1YnJlc291cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10
by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0
cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3Rz
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50
LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0
aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRj
aC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0
YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3RlbGVtZXRyeS1nZW5lcmF0aW9uLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1
Yi1mcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdp
bi1zdWItZnJhbWUtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNl
LXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVy
YWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUtZGF0
YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92
YWwtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13ZWJz
aXRlLWRhdGEtcmVtb3ZhbC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUt
bmF2aWdhdGVkLXRvLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0bWw6CisgICAgICAgICogcGxhdGZv
cm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgIEFkZGVkIHRlc3QgZXhwZWN0YXRpb25z
IHRvIHNraXAgZGF0YWJhc2UgdGVzdHMgd2hpY2ggZG8gbm90IHdvcmsgaW4gCisgICAgICAgIGlv
cyBiZWNhdXNlIG9mIHJlbGlhbmNlIG9uIEV2ZW50U2VuZGVyLmtleWRvd24oKSB3aGljaCBpcyBu
b3QKKyAgICAgICAgc3VwcG9ydGVkIG9uIGlPUyBhbmQgYWxzbyB0aG9zZSB3aGljaCB1c2UgVUlI
ZWxwZXIuYWN0aXZhdGVBdCgpIHdoaWNoCisgICAgICAgIGRvZXMgbm90IHByb2R1Y2UgYSB1c2Vy
IGdlc3R1cmUgY2FwdHVyZWQgYnkgSVRQIGluIGlPUy4KKwogMjAxOS0wOS0yNSAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCB2ZXJ5IGJhc2ljIFBhZ2VDYWNo
ZSBzdXBwb3J0IGZvciBSVENQZWVyQ29ubmVjdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVj
dC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvYWRkLWJsb2NraW5nLXRvLXJlZGlyZWN0LWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hZmVmOWNkMjZlODYxYjBmZGIxNGY1ZGMwYjBhMTYwMGY0ZThkYWQ0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw2MyBAQAorVGVzdHMgdGhhdCBibG9ja2luZyBpcyBhZGRlZCBtaWQtZmxpZ2h0
IGluIHJlZGlyZWN0cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAKKworLS0tLS0tLS0K
K0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBmaXJzdC1w
YXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgor
RGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9uZWRDb29raWUnLgorQ2xpZW50
LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCisKKy0tLS0tLS0t
CitGcmFtZTogJzwhLS1mcmFtZTItLT4nCistLS0tLS0tLQorUmVkaXJlY3QgY2FzZSAxLCBzaG91
bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2Zp
cnN0UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9u
ZWRDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2ll
PXZhbHVlCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTMtLT4nCistLS0tLS0tLQorU2hv
dWxkIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2Zp
cnN0UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9u
ZWRDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJh
bWU6ICc8IS0tZnJhbWU0LS0+JworLS0tLS0tLS0KK1JlZGlyZWN0IGNhc2UgMiwgc2hvdWxkIHJl
Y2VpdmUgbm8gY29va2llLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0
eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tp
ZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwh
LS1mcmFtZTUtLT4nCistLS0tLS0tLQorVHJ5IHRvIHNldCB0aGlyZC1wYXJ0eSBjb29raWUgaW4g
YmxvY2tlZCBtb2RlLgorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTYtLT4nCistLS0t
LS0tLQorQWZ0ZXIgYXR0ZW1wdGVkIGNvb2tpZSBjcmVhdGlvbiwgc2hvdWxkIHJlY2VpdmUgbm8g
Y29va2llLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScu
CitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitDbGll
bnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTct
LT4nCistLS0tLS0tLQorUmVkaXJlY3QgY2FzZSAzLCBhZnRlciBhdHRlbXB0ZWQgY29va2llIGNy
ZWF0aW9uLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWUuCitEaWQgbm90IHJlY2VpdmUgY29va2ll
IG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQg
J3BhcnRpdGlvbmVkQ29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQt
YmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVkaXJlY3QtZGF0YWJh
c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wMWQ2M2E1MTY4NzhhMDgzOGQyOThlNzYzZTAzZDJlYjg0NmEw
OTlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2FkZC1ibG9ja2luZy10by1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsMTA0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgor
ICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3Jp
cHRpb24oIlRlc3RzIHRoYXQgYmxvY2tpbmcgaXMgYWRkZWQgbWlkLWZsaWdodCBpbiByZWRpcmVj
dHMuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBwYXJ0aXRpb25I
b3N0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgcmVzb3VyY2VQYXRoID0gIi9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwg
PSB0aGlyZFBhcnR5T3JpZ2luICsgcmVzb3VyY2VQYXRoOworICAgIGNvbnN0IGZpcnN0UGFydHlD
b29raWVOYW1lID0gImZpcnN0UGFydHlDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldEZp
cnN0UGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIGZpcnN0UGFydHlDb29r
aWVOYW1lICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgY29uc3QgcGFydGl0aW9uZWRDb29raWVOYW1l
ID0gInBhcnRpdGlvbmVkQ29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRQYXJ0aXRpb25l
ZENvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsgcGFydGl0aW9uZWRDb29raWVOYW1l
ICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgY29uc3QgcmV0dXJuVXJsID0gImh0dHA6Ly8iICsgcGFy
dGl0aW9uSG9zdCArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZGQtYmxvY2tpbmctdG8tcmVk
aXJlY3QuaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0LWNvb2tp
ZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImbmFtZTI9IiArIHBhcnRp
dGlvbmVkQ29va2llTmFtZTsKKyAgICBjb25zdCByZWRpcmVjdENoYWluVXJsID0gImh0dHA6Ly8i
ICsgcGFydGl0aW9uSG9zdCArIHJlc291cmNlUGF0aCArICIvcmVkaXJlY3QucGhwP3JlZGlyZWN0
VG89IiArIHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llczsKKworICAgIGZ1
bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVu
dC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBl
bGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5U
ZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAg
ICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgLy8gU2V0IGZpcnN0LXBhcnR5
IGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9u
LmhyZWYgPSB0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUg
KyAiIyIgKyByZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0
aGUgY29va2llIGdldHMgc2VudCBmb3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMSBzaW5jZSBs
b2NhbGhvc3QgaXMgbm90IHByZXZhbGVudC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2Nh
dGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFy
dHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2
ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2ggPSAic3RlcDQiOworICAgICAgICAgICAgICAgIC8vIExvYWQgYW4gaWZyYW1l
IGluIGEgcmVkaXJlY3QgY2hhaW4gdGhhdCBzdGFydHMgd2l0aCAxMjcuMC4wLjEgYW5kIGVuZHMg
d2l0aCBsb2NhbGhvc3QuIEV4cGVjdCBhIGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAg
ICAgICAgIG9wZW5JZnJhbWUocmVkaXJlY3RDaGFpblVybCArICImbWVzc2FnZT1SZWRpcmVjdCBj
YXNlIDEsIHNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAg
ICAgICAgICAgLy8gU2V0IGxvY2FsaG9zdCBhcyBwcmV2YWxlbnQgdG8gcHV0IGl0IGluIHRoZSBi
bG9ja2luZyBjYXRlZ29yeS4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNo
ID0gInN0ZXA1IjsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhy
dW5UZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgIiNzdGVwNSI6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBu
byBjb29raWUgZ2V0cyBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxv
Y2FsaG9zdCdzIGNvb2tpZXMgYXJlIGJsb2NrZWQuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQu
bG9jYXRpb24uaGFzaCA9ICJzdGVwNiI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGly
ZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAgIiZtZXNzYWdlPVNob3VsZCBy
ZWNlaXZlIG5vIGNvb2tpZXMuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlICIjc3RlcDYiOgorICAgICAgICAgICAgICAgIC8vIExvYWQgYW4gaWZy
YW1lIGluIGEgcmVkaXJlY3QgY2hhaW4gdGhhdCBzdGFydHMgd2l0aCAxMjcuMC4wLjEgYW5kIGVu
ZHMgd2l0aCBsb2NhbGhvc3QuIEV4cGVjdCBubyBjb29raWUgZm9yIGxvY2FsaG9zdC4KKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA3IjsKKyAgICAgICAgICAg
ICAgICBvcGVuSWZyYW1lKHJlZGlyZWN0Q2hhaW5VcmwgKyAiJm1lc3NhZ2U9UmVkaXJlY3QgY2Fz
ZSAyLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDciOgorICAgICAgICAgICAgICAgIC8v
IFRyeSB0byBzZXQgY29va2llIGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xLgorICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDgiOworICAgICAgICAgICAg
ICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRQYXJ0aXRpb25l
ZENvb2tpZSArICImbWVzc2FnZT1UcnkgdG8gc2V0IHRoaXJkLXBhcnR5IGNvb2tpZSBpbiBibG9j
a2VkIG1vZGUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlICIjc3RlcDgiOgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgbm8gY29va2ll
IGdldHMgc2VudCBmb3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMSBzaW5jZSBsb2NhbGhvc3Qn
cyBjb29raWVzIGFyZSBibG9ja2VkLgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9u
Lmhhc2ggPSAic3RlcDkiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJh
c2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgICImbWVzc2FnZT1BZnRlciBhdHRlbXB0ZWQg
Y29va2llIGNyZWF0aW9uLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWUuIiwgcnVuVGVzdCk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDkiOgorICAgICAg
ICAgICAgICAgIC8vIExvYWQgYW4gaWZyYW1lIGluIGEgcmVkaXJlY3QgY2hhaW4gdGhhdCBzdGFy
dHMgd2l0aCAxMjcuMC4wLjEgYW5kIGVuZHMgd2l0aCBsb2NhbGhvc3QuIEV4cGVjdCBubyBjb29r
aWUgZm9yIGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNo
ID0gInN0ZXAxMCI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZShyZWRpcmVjdENoYWluVXJs
ICsgIiZtZXNzYWdlPVJlZGlyZWN0IGNhc2UgMywgYWZ0ZXIgYXR0ZW1wdGVkIGNvb2tpZSBjcmVh
dGlvbiwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llLiIsIHJ1blRlc3QpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxMCI6CisgICAgICAgICAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNo
ID09PSAiIikgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOwor
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
IGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlP
cmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3YXMgY2xhc3Np
ZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0cy4iKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAg
ICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgIHJ1blRlc3Qo
KTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcnVuVGVzdCgpOworICAgIH0K
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Jsb2NraW5nLWluLXdlYi13b3JrZXItc2Ny
aXB0LWltcG9ydC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1w
b3J0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Y2I3OTk0M2VkOGI0OWE4NDFi
ZDEyOWIzZjVhY2E2ZTJhM2IyMWJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Jsb2NraW5nLWluLXdlYi13b3JrZXItc2Ny
aXB0LWltcG9ydC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorVGVzdCBm
b3IgY29va2llIGJsb2NraW5nIHdoZW4gd2ViIHdvcmtlcnMgaW1wb3J0IGNyb3NzLXNpdGUgc2Ny
aXB0cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgRGlkIHJlY2VpdmUg
Zmlyc3RQYXJ0eUNvb2tpZSA9PSB2YWx1ZQorUEFTUyBEaWQgbm90IHJlY2VpdmUgY29va2llIG5h
bWVkIGZpcnN0UGFydHlDb29raWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0t
LS0tLQorU2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLgorUmVjZWl2ZWQgY29va2ll
IG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTog
Zmlyc3RQYXJ0eUNvb2tpZT12YWx1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Jsb2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0LWlt
cG9ydC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2Jsb2NraW5nLWluLXdlYi13b3JrZXItc2NyaXB0LWltcG9ydC1kYXRhYmFzZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmNjMjAxMDg1MTA2NWFjYTg0YTJhMmY4ZTk5NzkwNzgxODU3ZmIxOWIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvYmxvY2tpbmctaW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0LWRhdGFiYXNlLmh0
bWwKQEAgLTAsMCArMSw4OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8
aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgZm9yIGNvb2tp
ZSBibG9ja2luZyB3aGVuIHdlYiB3b3JrZXJzIGltcG9ydCBjcm9zcy1zaXRlIHNjcmlwdHMuIik7
CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBwYXJ0aXRpb25Ib3N0ID0g
IjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5
T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3Qg
Zmlyc3RQYXJ0eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3Qgc3Vi
UGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsgZmly
c3RQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCByZXR1cm5Vcmwg
PSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYmxvY2tpbmct
aW4td2ViLXdvcmtlci1zY3JpcHQtaW1wb3J0Lmh0bWwiOworICAgIGNvbnN0IHN1YlBhdGhUb0dl
dENvb2tpZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5h
bWU7CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAg
ICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Cisg
ICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgewor
ICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9Cisg
ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAg
bGV0IHJlY2VpdmVkTWVzc2FnZXMgPSAwOworICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2
ZW50KSB7CisgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgi
UEFTUyAiLCAiIikpOworCisgICAgICAgICsrcmVjZWl2ZWRNZXNzYWdlczsKKyAgICAgICAgaWYg
KHJlY2VpdmVkTWVzc2FnZXMgPj0gMikgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBydW5UZXN0
KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChk
b2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFzZVVybCAr
IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyByZXR1cm5VcmwgKyAiI3N0ZXAy
IjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6Cisg
ICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAg
ICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tp
ZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLiIsIHJ1blRl
c3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAzIjoK
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA0IjsKKyAgICAg
ICAgICAgICAgICBsZXQgdzEgPSBuZXcgV29ya2VyKCJyZXNvdXJjZXMvd29ya2VyLWltcG9ydGlu
Zy1sb2NhbGhvc3Qtc2NyaXB0LmpzIik7CisgICAgICAgICAgICAgICAgdzEub25tZXNzYWdlID0g
cmVjZWl2ZU1lc3NhZ2U7CisgICAgICAgICAgICAgICAgdzEucG9zdE1lc3NhZ2UoInNob3VsZFJl
Y2VpdmVDb29raWVzPXRydWUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9
ICJzdGVwNSI7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ikhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcocnVu
VGVzdCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlICIjc3RlcDUiOgorICAgICAgICAgICAgICAgIGxldCB3MiA9IG5ldyBXb3Jr
ZXIoInJlc291cmNlcy93b3JrZXItaW1wb3J0aW5nLWxvY2FsaG9zdC1zY3JpcHQuanMiKTsKKyAg
ICAgICAgICAgICAgICB3Mi5vbm1lc3NhZ2UgPSByZWNlaXZlTWVzc2FnZTsKKyAgICAgICAgICAg
ICAgICB3Mi5wb3N0TWVzc2FnZSgic2hvdWxkTm90UmVjZWl2ZUNvb2tpZXMiKTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2Nh
dGlvbi5ob3N0ID09PSBwYXJ0aXRpb25Ib3N0ICYmIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09
ICIiICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPSAic3RlcDEiOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1Rl
eHQoKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxv
Y2FsaG9zdCB3YXMgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0
ZXN0IHN0YXJ0cy4iKTsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgfSk7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgcnVuVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjY2U1YWExYzM2YTk0ZDU1MGJkZTIyOWFkZTQ0NmZm
ODM1NWMxY2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2FwLWNhY2hlLW1heC1hZ2UtZm9yLXByZXZhbGVudC1yZXNvdXJj
ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMgdGhhdCBjYWNo
ZSBtYXgtYWdlIGlzIGNhcHBlZCBmb3IgcHJldmFsZW50IHJlc291cmNlcy4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgbG9hZGVkVXJsIGlzICJodHRwOi8vbG9jYWxob3N0
OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFs
dWU9MTIzNCIKK1BBU1MgbG9hZGVkVXJsIGlzICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9NDMyMSIKK1BB
U1MgbG9hZGVkVXJsIGlzICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9yZXNvdXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9IgorUEFTUyBsb2FkZWRVcmwgaXMg
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9l
Y2hvLXF1ZXJ5LnBocD92YWx1ZT0iCitQQVNTIGxvYWRlZFVybCBpcyAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcXVlcnkucGhwP3Zh
bHVlPSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2FwLWNhY2hlLW1heC1hZ2UtZm9yLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1jYWNo
ZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yNjRhNDUxOGE4MzM5NDYwOTA3MzMzNzNmMWY2MDIxNjNhYWI5MzJhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1j
YWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDExMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQg
c3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8dGl0bGU+VGVzdHMgZm9y
IENhcHBlZCBDYWNoZSBNYXgtQWdlPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4K
KyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBjYWNoZSBtYXgtYWdlIGlzIGNhcHBlZCBmb3Ig
cHJldmFsZW50IHJlc291cmNlcy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAg
IHZhciBsb2FkZWRVcmw7CisgICAgZnVuY3Rpb24gZmlyc3RGZXRjaCgpIHsKKyAgICAgICAgLy8g
VGhpcyBzaG91bGQgY3JlYXRlIGEgY2FwcGVkIGNhY2hlIGVudHJ5LgorICAgICAgICBmZXRjaCgi
aHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2Nh
Y2hlZC1wZXJtYW5lbnQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICBjYWNoZTogInJlbG9hZCIsCisgICAgICAgICAgICAgICAgaGVhZGVyczogeworICAgICAg
ICAgICAgICAgICAgICAiWC1XZWJLaXQiOiAiMTIzNCIsCisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorICAgICAgICApLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAg
ICAgIGxvYWRlZFVybCA9IHJlc3BvbnNlLnVybDsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygibG9hZGVkVXJsIiwgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXF1ZXJ5LnBocD92YWx1ZT0xMjM0Iik7CisgICAgICAg
ICAgICBzZWNvbmRGZXRjaCgpOworICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgewor
ICAgICAgICAgICAgdGVzdEZhaWxlZChlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHNlY29uZEZldGNoKCkgeworICAgICAgICAvLyBUaGlzIHNob3VsZCBub3Qg
dHJpZ2dlciBhIHN1Y2Nlc3NmdWwgY2FjaGUgaGl0IGFuZCBpbnN0ZWFkIGNyZWF0ZSBhbm90aGVy
IGNhcHBlZCBjYWNoZSBlbnRyeS4KKyAgICAgICAgZmV0Y2goImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9jYWNoZWQtcGVybWFuZW50LXJlZGly
ZWN0LnBocCIsCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY2FjaGU6ICJmb3JjZS1j
YWNoZSIsCisgICAgICAgICAgICAgICAgaGVhZGVyczogeworICAgICAgICAgICAgICAgICAgICAi
WC1XZWJLaXQiOiAiNDMyMSIsCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAg
ICAgICApLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGxvYWRlZFVybCA9
IHJlc3BvbnNlLnVybDsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibG9hZGVk
VXJsIiwgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291
cmNlcy9lY2hvLXF1ZXJ5LnBocD92YWx1ZT00MzIxIik7CisgICAgICAgICAgICB0aGlyZEZldGNo
KCk7CisgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgICAgICB0ZXN0
RmFpbGVkKGVycm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGhp
cmRGZXRjaCgpIHsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgbm90IHRyaWdnZXIgYSBzdWNjZXNz
ZnVsIGNhY2hlIGhpdCBhbmQgaW5zdGVhZCBjcmVhdGUgYW5vdGhlciBjYXBwZWQgY2FjaGUgZW50
cnkuCisgICAgICAgIGZldGNoKCJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9yZXNvdXJjZXMvY2FjaGVkLXBlcm1hbmVudC1yZWRpcmVjdC5waHAiLAorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIGNhY2hlOiAiZm9yY2UtY2FjaGUiLAorICAgICAgICAg
ICAgfQorICAgICAgICApLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGxv
YWRlZFVybCA9IHJlc3BvbnNlLnVybDsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygibG9hZGVkVXJsIiwgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3Jlc291cmNlcy9lY2hvLXF1ZXJ5LnBocD92YWx1ZT0iKTsKKyAgICAgICAgICAgIGZvdXJ0
aEZldGNoKCk7CisgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgICAg
ICB0ZXN0RmFpbGVkKGVycm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gZm91cnRoRmV0Y2goKSB7CisgICAgICAgIC8vIFRoaXMgc2hvdWxkIG5vdCB0cmlnZ2VyIGEg
c3VjY2Vzc2Z1bCBjYWNoZSBoaXQgYnV0IGNsZWFyIGNhcHBpbmcuCisgICAgICAgIGZldGNoKCJo
dHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvY2Fj
aGVkLXBlcm1hbmVudC1yZWRpcmVjdC5waHAiLAorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIGNhY2hlOiAiZm9yY2UtY2FjaGUiLAorICAgICAgICAgICAgfQorICAgICAgICApLnRoZW4o
ZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGxvYWRlZFVybCA9IHJlc3BvbnNlLnVy
bDsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibG9hZGVkVXJsIiwgImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9lY2hvLXF1
ZXJ5LnBocD92YWx1ZT0iKTsKKyAgICAgICAgICAgIGZpZnRoRmV0Y2goKTsKKyAgICAgICAgfSku
Y2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoZXJyb3IubWVz
c2FnZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaWZ0aEZldGNoKCkgeworICAg
ICAgICAvLyBUaGlzIHNob3VsZCB0cmlnZ2VyIGEgcmVndWxhciwgc3VjY2Vzc2Z1bCBjYWNoZSBo
aXQuCisgICAgICAgIGZldGNoKCJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9yZXNvdXJjZXMvY2FjaGVkLXBlcm1hbmVudC1yZWRpcmVjdC5waHAiLAorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAg
IlgtV2ViS2l0IjogIjEyMzQiLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAg
ICAgICAgKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICBsb2FkZWRVcmwg
PSByZXNwb25zZS51cmw7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxvYWRl
ZFVybCIsICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNv
dXJjZXMvZWNoby1xdWVyeS5waHA/dmFsdWU9Iik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJv
cikgeworICAgICAgICAgICAgdGVzdEZhaWxlZChlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0pOworICAg
IH0KKyAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgIHNldEVuYWJs
ZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IikpCisgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2FzIGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291
cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydGVkLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc0NhY2hlTWF4QWdlQ2FwKDApOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIsIHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tp
bmcoZmlyc3RGZXRjaCk7CisgICAgICAgIH0pOworICAgIH0pOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ4NDYyMGQ2ZDMzMTIxMTY0NTFhOGE1OWM4NGJlNjE3NjRjNDZl
MzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRl
ZCBieSBKYXZhU2NyaXB0IHdpdGggbWF4LWFnZSBvciBleHBpcnkgbG9uZ2VyIHRoYW4gYSB3ZWVr
IGdldCBjYXBwZWQgdG8gYSB3ZWVrLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUg
dGhhbiAxNzI4MzAgc2Vjb25kcy4KK1BBU1MgVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9u
J3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA2MDQ4MzAgc2Vjb25kcy4KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZv
ci1jb29raWUtc2V0LWluLWpzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWlu
LWpzLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTJmZmQwNDFhZTMyZGUyODYwM2I4MTkxMDMw
Y2U4YTMwNWQyNjI2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4t
anMtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDgzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2Nvb2tpZXMvcmVzb3VyY2VzL2Nvb2tpZS11
dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRl
c2NyaXB0aW9uKCJDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IHdpdGgg
bWF4LWFnZSBvciBleHBpcnkgbG9uZ2VyIHRoYW4gYSB3ZWVrIGdldCBjYXBwZWQgdG8gYSB3ZWVr
LiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQ
RGF0YWJhc2UodHJ1ZSk7CisKKyAgICBpZiAoaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMu
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisKKyAgICBsZXQgcGFzc2Vk
VGVzdHMgPSAwOworICAgIGZ1bmN0aW9uIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRl
cihjb29raWVEYXRhLCBtYXhBZ2VJblNlY29uZHMpIHsKKyAgICAgICAgbGV0IG5vdyA9IG5ldyBE
YXRlKCk7CisgICAgICAgIGxldCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPSBub3cuZ2V0
VGltZSgpICsgKG1heEFnZUluU2Vjb25kcyAqIDEwMDApOworCisgICAgICAgIGlmIChtYXhFeHBp
cnlEYXRlSW5NaWxsaXNlY29uZHMgPiBjb29raWVEYXRhWyJleHBpcmVzIl0pCisgICAgICAgICAg
ICArK3Bhc3NlZFRlc3RzOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJD
b29raWUgbmFtZWQgIiArIGNvb2tpZURhdGFbIm5hbWUiXSArICIgZXhwaXJlcyBpbiBtb3JlIHRo
YW4gIiArIG1heEFnZUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICB9CisKKyAgICBjb25z
dCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIDI0ICogNjAgKiA2MDsKKyAgICBjb25zdCBzaG9ydExp
dmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogInNob3J0TGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZl
dGltZSA6ICJNYXgtQWdlPSIgKyB0d29EYXlzSW5TZWNvbmRzICsgIjsiIH07CisgICAgZG9jdW1l
bnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBz
aG9ydExpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgY29uc3Qg
dHdvRGF5c0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdvRGF5
c0luU2Vjb25kcyk7CisgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUg
OiAic2hvcnRMaXZlZENvb2tpZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d29E
YXlzQXNFeHBpcmVzRGF0ZSArICI7IiB9OworICAgIGRvY3VtZW50LmNvb2tpZSA9IHNob3J0TGl2
ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVFeHBp
cmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgY29uc3Qgb25lV2Vla0luU2Vjb25kcyA9
IDcgKiAyNCAqIDYwICogNjA7CisgICAgY29uc3QgdHdvV2Vla3NJblNlY29uZHMgPSAyICogb25l
V2Vla0luU2Vjb25kczsKKyAgICBjb25zdCBsb25nTGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUg
OiAibG9uZ0xpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdvV2Vl
a3NJblNlY29uZHMgKyAiOyIgfTsKKyAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29r
aWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llTWF4QWdlLmxpZmV0
aW1lICsgIiBwYXRoPS8iOworCisgICAgY29uc3QgdHdvV2Vla3NBc0V4cGlyZXNEYXRlID0gY3Jl
YXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3b1dlZWtzSW5TZWNvbmRzKTsKKyAgICBjb25zdCBs
b25nTGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZUV4cGlyZXMi
LCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d29XZWVrc0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsK
KyAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAiPWZv
b2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisK
KyAgICBjb25zdCBvdmVyVHdvRGF5c0luU2Vjb25kcyA9IHR3b0RheXNJblNlY29uZHMgKyAzMDsK
KyAgICBjb25zdCBvdmVyT25lV2Vla0luU2Vjb25kcyA9IG9uZVdlZWtJblNlY29uZHMgKyAzMDsK
KyAgICBpZiAoaW50ZXJuYWxzKSB7CisgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdl
dENvb2tpZXMoKTsKKyAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoIk5vIGNvb2tpZXMgZm91bmQuIik7CisgICAgICAgIGZvciAobGV0IGNvb2tpZSBv
ZiBjb29raWVzKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAgICAg
ICAgICAgICAgY2FzZSBzaG9ydExpdmVkQ29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAg
ICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJUd29E
YXlzSW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgY2FzZSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAgICAg
ICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdvRGF5c0lu
U2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNh
c2UgbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgIGNoZWNr
VGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVXZWVrSW5TZWNvbmRz
KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBsb25n
TGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENv
b2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVXZWVrSW5TZWNvbmRzKTsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAgaWYgKHBhc3Nl
ZFRlc3RzID09PSA0KSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIHNob3J0LWxp
dmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3ZlclR3b0RheXNJ
blNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdv
IGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBvdmVy
T25lV2Vla0luU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJpYnV0ZSB3
YXMgYmV5b25kIHRoZSB0ZXN0IHRocmVzaG9sZHMuIik7CisgICAgfSBlbHNlCisgICAgICAgIHRl
c3RGYWlsZWQoIk5vIGludGVybmFscyBvYmplY3QuIik7CisKKyAgICBpZiAoaW50ZXJuYWxzKQor
ICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2Up
OworCisgICAgZmluaXNoSlNUZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
YXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24t
c2FtZS1zaXRlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4t
anMtd2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hNDk1NDVhMDM0ZDNhZjI1OTBjOTkzMzdkMjMwNWE5YmVmZGJhNDEwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3Jh
dGlvbi1zYW1lLXNpdGUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0No
ZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBzYW1lLXNpdGUg
bmF2aWdhdGlvbiB3aXRoIGxpbmsgZGVjb3JhdGlvbiBkb24ndCBnZXQgY2FwcGVkIHRvIDI0IGhv
dXJzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgdHdvIGxvbmct
bGl2ZWQgY29va2llcyBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDg2NDMwIHNlY29uZHMuCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1s
aWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1lLXNp
dGUtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRl
Y29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWQwOTk5MWIzZmE4
YWNkNDgxOTlhODUzMjM0ZDI1YWIyODkxNWRjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9y
LWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1zaXRlLWRhdGFiYXNl
Lmh0bWwKQEAgLTAsMCArMSw4NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKSI+Cis8
c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBK
YXZhU2NyaXB0IGFmdGVyIGEgc2FtZS1zaXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIGRlY29yYXRp
b24gZG9uJ3QgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKworICAgIGZ1bmN0aW9uIHRlc3RDb29raWVzKCkgeworICAgICAgICBsZXQgcGFzc2Vk
VGVzdHMgPSAwOworCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrVGhhdENvb2tpZURvZXNFeHBpcmVB
ZnRlcihjb29raWVEYXRhLCBtYXhBZ2VJblNlY29uZHMpIHsKKyAgICAgICAgICAgIGxldCBub3cg
PSBuZXcgRGF0ZSgpOworICAgICAgICAgICAgbGV0IG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25k
cyA9IG5vdy5nZXRUaW1lKCkgKyAobWF4QWdlSW5TZWNvbmRzICogMTAwMCk7CisKKyAgICAgICAg
ICAgIGlmIChtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPCBjb29raWVEYXRhWyJleHBpcmVz
Il0pCisgICAgICAgICAgICAgICAgKytwYXNzZWRUZXN0czsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgbmFtZWQgIiArIGNvb2tpZURhdGFbIm5h
bWUiXSArICIgZXhwaXJlcyBpbiBsZXNzIHRoYW4gIiArIG1heEFnZUluU2Vjb25kcyArICIgc2Vj
b25kcy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IG9uZURheUluU2Vjb25kcyA9IDI0
ICogNjAgKiA2MDsKKyAgICAgICAgY29uc3QgdHdvRGF5c0luU2Vjb25kcyA9IDIgKiBvbmVEYXlJ
blNlY29uZHM7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6
ICJsb25nTGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d29EYXlz
SW5TZWNvbmRzICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENv
b2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVNYXhBZ2UubGlm
ZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdvRGF5c0FzRXhwaXJlc0RhdGUg
PSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdvRGF5c0luU2Vjb25kcyk7CisgICAgICAg
IGNvbnN0IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2ll
RXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3b0RheXNBc0V4cGlyZXNEYXRlICsg
IjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMu
bmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSArICIg
cGF0aD0vIjsKKworICAgICAgICBjb25zdCBvdmVyT25lRGF5SW5TZWNvbmRzID0gb25lRGF5SW5T
ZWNvbmRzICsgMzA7CisgICAgICAgIGlmIChpbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGxldCBj
b29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKTsKKyAgICAgICAgICAgIGlmICghY29va2ll
cy5sZW5ndGgpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gY29va2llcyBmb3VuZC4i
KTsKKyAgICAgICAgICAgIGZvciAobGV0IGNvb2tpZSBvZiBjb29raWVzKSB7CisgICAgICAgICAg
ICAgICAgc3dpdGNoIChjb29raWUubmFtZSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIGxv
bmdMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tU
aGF0Q29va2llRG9lc0V4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBs
b25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVj
a1RoYXRDb29raWVEb2VzRXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgcmVzZXRDb29raWVzRm9yQ3VycmVudE9yaWdpbigpOwor
CisgICAgICAgICAgICBpZiAocGFzc2VkVGVzdHMgPT09IDIpIHsKKyAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBleHBpcmUgYWZ0ZXIgbW9yZSB0
aGFuICIgKyBvdmVyT25lRGF5SW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQXQgbGVhc3Qgb25lIGNvb2tpZSdz
IGV4cGlyeSBhdHRyaWJ1dGUgd2FzIGJlbG93IHRoZSB0ZXN0IHRocmVzaG9sZHMuIik7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gaW50ZXJuYWxzIG9iamVjdC4i
KTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIG5hdmlnYXRlQ3Jvc3NPcmlnaW4oKSB7CisgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhyZWYgPSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiArICIvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1s
aW5rLWRlY29yYXRpb24tc2FtZS1zaXRlLmh0bWw/bGluaz1kZWNvcmF0aW9uI2ZyYWdtZW50IjsK
KyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5hdGlvbk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0
OjgwMDAiOworICAgIGNvbnN0IHByZXZhbGVudFJlc291cmNlT3JpZ2luID0gImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3Vt
ZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gJiYgZG9jdW1l
bnQubG9jYXRpb24uaGFzaCAhPT0gIiNmcmFnbWVudCIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c1VwZGF0ZUNvb2tpZUJsb2NraW5nKG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAg
ICAgIH0pOworCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IHRlc3RDb29raWVzKCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZy
YWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRp
bWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50
LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mN2JhZDAzMmM2ZjIy
NDU3M2EzMzVkM2Y3MDQxOWRjYjRiZTQzYTE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3It
Y29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3Vy
Y2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0NoZWNrIHRoYXQgY29v
a2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24g
d2l0aCBsaW5rIGZyYWdtZW50IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBkb24n
dCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDQzMjMwIHNlY29uZHMuCitQQVNTIFRoZSB0d28gbG9u
Zy1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gODY0MzAgc2Vjb25k
cy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1m
cm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNl
dC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJh
c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41Yzg0ZmI4OTRmOTliMzI3YzE3NzNlMjAwN2RjMTBkOTFjMmE4
Nzk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxp
bmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDEwMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQg
c3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKSI+Cis8c2NyaXB0PgorICAg
IGRlc2NyaXB0aW9uKCJDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFm
dGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBmcmFnbWVudCBnZXQgY2FwcGVk
IHRvIDI0IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rp
b24gdGVzdENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7CisgICAgICAg
IGZ1bmN0aW9uIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWVEYXRhLCBt
YXhBZ2VJblNlY29uZHMpIHsKKyAgICAgICAgICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpOworICAg
ICAgICAgICAgbGV0IG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA9IG5vdy5nZXRUaW1lKCkg
KyAobWF4QWdlSW5TZWNvbmRzICogMTAwMCk7CisKKyAgICAgICAgICAgIGlmIChtYXhFeHBpcnlE
YXRlSW5NaWxsaXNlY29uZHMgPiBjb29raWVEYXRhWyJleHBpcmVzIl0pCisgICAgICAgICAgICAg
ICAgKytwYXNzZWRUZXN0czsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJDb29raWUgbmFtZWQgIiArIGNvb2tpZURhdGFbIm5hbWUiXSArICIgZXhwaXJlcyBp
biBtb3JlIHRoYW4gIiArIG1heEFnZUluU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAg
fQorCisgICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzID0gMTIgKiA2MCAqIDYwOwor
ICAgICAgICBjb25zdCBzaG9ydExpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogInNob3J0TGl2
ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d2VsdmVIb3Vyc0luU2Vj
b25kcyArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29va2ll
TWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubGlmZXRp
bWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdlbHZlSG91cnNBc0V4cGlyZXNEYXRl
ID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAg
ICAgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAic2hvcnRMaXZl
ZENvb2tpZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d2VsdmVIb3Vyc0FzRXhw
aXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENv
b2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMu
bGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0g
MiAqIHR3ZWx2ZUhvdXJzSW5TZWNvbmRzOworICAgICAgICBjb25zdCB0d29EYXlzSW5TZWNvbmRz
ID0gMiAqIG9uZURheUluU2Vjb25kczsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4
QWdlID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1B
Z2U9IiArIHR3b0RheXNJblNlY29uZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2ll
ID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENv
b2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCB0d29EYXlz
QXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNv
bmRzKTsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJs
b25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0Fz
RXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVk
Q29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVz
LmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG92ZXJUd2VsdmVIb3Vyc0lu
U2Vjb25kcyA9IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgMzA7CisgICAgICAgIGNvbnN0IG92ZXJP
bmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMgKyAzMDsKKyAgICAgICAgaWYgKGludGVy
bmFscykgeworICAgICAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygp
OworICAgICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAgICAgICAgZm9yIChsZXQgY29va2ll
IG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvb2tpZS5uYW1lKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAg
ICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNv
b2tpZSwgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRDb29raWVFeHBpcmVz
Lm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhw
aXJlQWZ0ZXIoY29va2llLCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29v
a2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVE
b2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZl
ZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENv
b2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAg
ICAgICAgICAgIGlmIChwYXNzZWRUZXN0cyA9PT0gNCkgeworICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIlRoZSB0d28gc2hvcnQtbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9y
ZSB0aGFuICIgKyBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAg
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9uJ3Qg
ZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3Zlck9uZURheUluU2Vjb25kcyArICIgc2Vjb25k
cy4iKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkF0
IGxlYXN0IG9uZSBjb29raWUncyBleHBpcnkgYXR0cmlidXRlIHdhcyBiZXlvbmQgdGhlIHRlc3Qg
dGhyZXNob2xkcy4iKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJO
byBpbnRlcm5hbHMgb2JqZWN0LiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2Us
IGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdp
bigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2lu
ICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNl
dC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbCNs
aW5rPWZyYWdtZW50IjsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5hdGlvbk9yaWdpbiA9ICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHByZXZhbGVudFJlc291cmNlT3JpZ2lu
ID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAg
ICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJldmFsZW50UmVzb3VyY2VP
cmlnaW4pIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7
CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2
YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxl
bnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKG5hdmln
YXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RDb29raWVzKCk7CisgICAgICAgIH0K
KyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9y
LWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWFuZC1mcmFnbWVudC1mcm9tLXByZXZh
bGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0
LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3Vy
Y2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlOThkYzhmOTBlMmRhMWIxOTgz
YjQ4ZGMxODZlYWQ3YTY5NjVkN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUt
c2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVz
b3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0NoZWNrIHRoYXQg
Y29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRp
b24gd2l0aCBsaW5rIHF1ZXJ5IGFuZCBmcmFnbWVudCBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgdHdvIHNob3J0LWxpdmVk
IGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA0MzIzMCBzZWNvbmRzLgorUEFT
UyBUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFu
IDg2NDMwIHNlY29uZHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxp
bmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVk
LWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21l
bnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNTkx
ZWI0ZTk1OGZiMWI1MGRiN2Y4MjJhMjAwZWNjYzY3MzgyNDE2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZy
b20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMDEgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvY29va2ll
cy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
c2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigi
Q2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBhZnRlciBhIGNyb3NzLXNp
dGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVlcnkgYW5kIGZyYWdtZW50IGdldCBjYXBwZWQgdG8g
MjQgaG91cnMuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBmdW5jdGlvbiB0
ZXN0Q29va2llcygpIHsKKyAgICAgICAgbGV0IHBhc3NlZFRlc3RzID0gMDsKKyAgICAgICAgZnVu
Y3Rpb24gY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZURhdGEsIG1heEFn
ZUluU2Vjb25kcykgeworICAgICAgICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7CisgICAgICAg
ICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93LmdldFRpbWUoKSArICht
YXhBZ2VJblNlY29uZHMgKiAxMDAwKTsKKworICAgICAgICAgICAgaWYgKG1heEV4cGlyeURhdGVJ
bk1pbGxpc2Vjb25kcyA+IGNvb2tpZURhdGFbImV4cGlyZXMiXSkKKyAgICAgICAgICAgICAgICAr
K3Bhc3NlZFRlc3RzOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkNvb2tpZSBuYW1lZCAiICsgY29va2llRGF0YVsibmFtZSJdICsgIiBleHBpcmVzIGluIG1v
cmUgdGhhbiAiICsgbWF4QWdlSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICB9CisK
KyAgICAgICAgY29uc3QgdHdlbHZlSG91cnNJblNlY29uZHMgPSAxMiAqIDYwICogNjA7CisgICAg
ICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUgOiAic2hvcnRMaXZlZENv
b2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3ZWx2ZUhvdXJzSW5TZWNvbmRz
ICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29raWVNYXhB
Z2UubmFtZSArICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSAr
ICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCB0d2VsdmVIb3Vyc0FzRXhwaXJlc0RhdGUgPSBj
cmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdlbHZlSG91cnNJblNlY29uZHMpOworICAgICAg
ICBjb25zdCBzaG9ydExpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJzaG9ydExpdmVkQ29v
a2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3ZWx2ZUhvdXJzQXNFeHBpcmVz
RGF0ZSArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzaG9ydExpdmVkQ29va2ll
RXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5saWZl
dGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCBvbmVEYXlJblNlY29uZHMgPSAyICog
dHdlbHZlSG91cnNJblNlY29uZHM7CisgICAgICAgIGNvbnN0IHR3b0RheXNJblNlY29uZHMgPSAy
ICogb25lRGF5SW5TZWNvbmRzOworICAgICAgICBjb25zdCBsb25nTGl2ZWRDb29raWVNYXhBZ2Ug
PSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0i
ICsgdHdvRGF5c0luU2Vjb25kcyArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBs
b25nTGl2ZWRDb29raWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2ll
TWF4QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3b0RheXNBc0V4
cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4QWdlKHR3b0RheXNJblNlY29uZHMp
OworICAgICAgICBjb25zdCBsb25nTGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogImxvbmdM
aXZlZENvb2tpZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBpcmVzPSIgKyB0d29EYXlzQXNFeHBp
cmVzRGF0ZSArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29r
aWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubGlm
ZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3Qgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNv
bmRzID0gdHdlbHZlSG91cnNJblNlY29uZHMgKyAzMDsKKyAgICAgICAgY29uc3Qgb3Zlck9uZURh
eUluU2Vjb25kcyA9IG9uZURheUluU2Vjb25kcyArIDMwOworICAgICAgICBpZiAoaW50ZXJuYWxz
KSB7CisgICAgICAgICAgICBsZXQgY29va2llcyA9IGludGVybmFscy5nZXRDb29raWVzKCk7Cisg
ICAgICAgICAgICBpZiAoIWNvb2tpZXMubGVuZ3RoKQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIk5vIGNvb2tpZXMgZm91bmQuIik7CisgICAgICAgICAgICBmb3IgKGxldCBjb29raWUgb2Yg
Y29va2llcykgeworICAgICAgICAgICAgICAgIHN3aXRjaCAoY29va2llLm5hbWUpIHsKKyAgICAg
ICAgICAgICAgICAgICAgY2FzZSBzaG9ydExpdmVkQ29va2llTWF4QWdlLm5hbWU6CisgICAgICAg
ICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2ll
LCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2Ugc2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubmFt
ZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVB
ZnRlcihjb29raWUsIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRDb29raWVN
YXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNO
b3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29v
a2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2ll
RG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIHJlc2V0Q29va2llc0ZvckN1cnJlbnRPcmlnaW4oKTsKKworICAgICAg
ICAgICAgaWYgKHBhc3NlZFRlc3RzID09PSA0KSB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3Nl
ZCgiVGhlIHR3byBzaG9ydC1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRo
YW4gIiArIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAg
ICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBleHBp
cmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBvdmVyT25lRGF5SW5TZWNvbmRzICsgIiBzZWNvbmRzLiIp
OworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQXQgbGVh
c3Qgb25lIGNvb2tpZSdzIGV4cGlyeSBhdHRyaWJ1dGUgd2FzIGJleW9uZCB0aGUgdGVzdCB0aHJl
c2hvbGRzLiIpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGlu
dGVybmFscyBvYmplY3QuIik7CisKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBuYXZpZ2F0ZUNyb3NzT3JpZ2luKCkg
eworICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gZGVzdGluYXRpb25PcmlnaW4gKyAi
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWlu
LWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2Uu
aHRtbD9saW5rPXF1ZXJ5I2xpbms9ZnJhZ21lbnQiOworICAgIH0KKworICAgIGNvbnN0IGRlc3Rp
bmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgcHJldmFs
ZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBmdW5jdGlv
biBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luID09PSBw
cmV2YWxlbnRSZXNvdXJjZU9yaWdpbikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJ
VFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVu
Y3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJj
ZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29v
a2llQmxvY2tpbmcobmF2aWdhdGVDcm9zc09yaWdpbik7CisgICAgICAgICAgICAgICAgfSk7CisK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdENvb2tp
ZXMoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nh
cHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1w
cmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2ll
LXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0NWRkMTZjMmVlMDEwODBlM2MxZjFiNDAyMDZi
NjZhODAyZTBhYzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMSBAQAorQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2
YVNjcmlwdCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVlcnkgZ2V0
IGNhcHBlZCB0byAyNCBob3Vycy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgVGhlIHR3byBzaG9ydC1saXZlZCBjb29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRo
YW4gNDMyMzAgc2Vjb25kcy4KK1BBU1MgVGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZG9uJ3Qg
ZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA4NjQzMCBzZWNvbmRzLgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNv
b2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRh
dGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1m
cm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1ZjA5NzZi
MjQ4NjY2Njg5YzE4MWFhNTk1ZjBjMThmZjZhZjA1MGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1l
LWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNv
dXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMTAxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2Nvb2tpZXMvcmVzb3VyY2VzL2Nvb2tp
ZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRp
bC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1blRl
c3QoKScsIDApIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkNoZWNrIHRoYXQgY29va2ll
cyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0
aCBsaW5rIHF1ZXJ5IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuIik7CisgICAganNUZXN0SXNBc3lu
YyA9IHRydWU7CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29va2llcygpIHsKKyAgICAgICAgbGV0IHBh
c3NlZFRlc3RzID0gMDsKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tUaGF0Q29va2llRG9lc05vdEV4
cGlyZUFmdGVyKGNvb2tpZURhdGEsIG1heEFnZUluU2Vjb25kcykgeworICAgICAgICAgICAgbGV0
IG5vdyA9IG5ldyBEYXRlKCk7CisgICAgICAgICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlz
ZWNvbmRzID0gbm93LmdldFRpbWUoKSArIChtYXhBZ2VJblNlY29uZHMgKiAxMDAwKTsKKworICAg
ICAgICAgICAgaWYgKG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA+IGNvb2tpZURhdGFbImV4
cGlyZXMiXSkKKyAgICAgICAgICAgICAgICArK3Bhc3NlZFRlc3RzOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBuYW1lZCAiICsgY29va2llRGF0
YVsibmFtZSJdICsgIiBleHBpcmVzIGluIG1vcmUgdGhhbiAiICsgbWF4QWdlSW5TZWNvbmRzICsg
IiBzZWNvbmRzLiIpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgdHdlbHZlSG91cnNJblNl
Y29uZHMgPSAxMiAqIDYwICogNjA7CisgICAgICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVNYXhB
Z2UgPSB7IG5hbWUgOiAic2hvcnRMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1B
Z2U9IiArIHR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNv
b2tpZSA9IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsgc2hvcnRM
aXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCB0
d2VsdmVIb3Vyc0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdl
bHZlSG91cnNJblNlY29uZHMpOworICAgICAgICBjb25zdCBzaG9ydExpdmVkQ29va2llRXhwaXJl
cyA9IHsgbmFtZSA6ICJzaG9ydExpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGly
ZXM9IiArIHR3ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0ZSArICI7IiB9OworICAgICAgICBkb2N1bWVu
dC5jb29raWUgPSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBz
aG9ydExpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBj
b25zdCBvbmVEYXlJblNlY29uZHMgPSAyICogdHdlbHZlSG91cnNJblNlY29uZHM7CisgICAgICAg
IGNvbnN0IHR3b0RheXNJblNlY29uZHMgPSAyICogb25lRGF5SW5TZWNvbmRzOworICAgICAgICBj
b25zdCBsb25nTGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llTWF4
QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdvRGF5c0luU2Vjb25kcyArICI7IiB9Owor
ICAgICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVNYXhBZ2UubmFtZSArICI9
Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8iOwor
CisgICAgICAgIGNvbnN0IHR3b0RheXNBc0V4cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJlc0RhdGVG
cm9tTWF4QWdlKHR3b0RheXNJblNlY29uZHMpOworICAgICAgICBjb25zdCBsb25nTGl2ZWRDb29r
aWVFeHBpcmVzID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZUV4cGlyZXMiLCBsaWZldGltZSA6
ICJFeHBpcmVzPSIgKyB0d29EYXlzQXNFeHBpcmVzRGF0ZSArICI7IiB9OworICAgICAgICBkb2N1
bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiAr
IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAg
Y29uc3Qgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzID0gdHdlbHZlSG91cnNJblNlY29uZHMgKyAz
MDsKKyAgICAgICAgY29uc3Qgb3Zlck9uZURheUluU2Vjb25kcyA9IG9uZURheUluU2Vjb25kcyAr
IDMwOworICAgICAgICBpZiAoaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBsZXQgY29va2llcyA9
IGludGVybmFscy5nZXRDb29raWVzKCk7CisgICAgICAgICAgICBpZiAoIWNvb2tpZXMubGVuZ3Ro
KQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGNvb2tpZXMgZm91bmQuIik7CisgICAg
ICAgICAgICBmb3IgKGxldCBjb29raWUgb2YgY29va2llcykgeworICAgICAgICAgICAgICAgIHN3
aXRjaCAoY29va2llLm5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBzaG9ydExpdmVk
Q29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29r
aWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2Ug
c2hvcnRMaXZlZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNo
ZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJUd2VsdmVIb3Vyc0lu
U2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgY2FzZSBsb25nTGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVE
YXlJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAg
ICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3Zl
ck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJlc2V0Q29va2llc0Zv
ckN1cnJlbnRPcmlnaW4oKTsKKworICAgICAgICAgICAgaWYgKHBhc3NlZFRlc3RzID09PSA0KSB7
CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBzaG9ydC1saXZlZCBjb29raWVz
IGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25k
cyArICIgc2Vjb25kcy4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIGxv
bmctbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBvdmVyT25l
RGF5SW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiQXQgbGVhc3Qgb25lIGNvb2tpZSdzIGV4cGlyeSBhdHRyaWJ1
dGUgd2FzIGJleW9uZCB0aGUgdGVzdCB0aHJlc2hvbGRzLiIpOworICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGludGVybmFscyBvYmplY3QuIik7CisgICAgICAgIAor
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIG5hdmlnYXRlQ3Jvc3NPcmlnaW4oKSB7CisgICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbk9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZy
b20tcHJldmFsZW50LXJlc291cmNlLmh0bWw/bGluaz1xdWVyeSI7CisgICAgfQorCisgICAgY29u
c3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25z
dCBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAg
IGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmln
aW4gPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0
cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4sIHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4pKQorICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NV
cGRhdGVDb29raWVCbG9ja2luZyhuYXZpZ2F0ZUNyb3NzT3JpZ2luKTsKKyAgICAgICAgICAgICAg
ICB9KTsKKworICAgICAgICAgICAgfSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0
ZXN0Q29va2llcygpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGhvdXQtbGluay1k
ZWNvcmF0aW9uLWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlm
ZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1w
cmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiZjY0
OWE1N2UxMzY0YzA2MDY0NTY5NDEzMDQ1NDExMzc0NTgzMDEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0
aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGhvdXQtbGluay1kZWNvcmF0aW9uLWZyb20tcHJl
dmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitD
aGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0
ZSBuYXZpZ2F0aW9uIHdpdGhvdXQgbGluayBkZWNvcmF0aW9uIGRvbid0IGdldCBjYXBwZWQgdG8g
MjQgaG91cnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSB0d28g
bG9uZy1saXZlZCBjb29raWVzIGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gODY0MzAgc2Vjb25kcy4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2Fw
cGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGhvdXQtbGluay1kZWNvcmF0aW9u
LWZyb20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUt
c2V0LWluLWpzLXdpdGhvdXQtbGluay1kZWNvcmF0aW9uLWZyb20tcHJldmFsZW50LXJlc291cmNl
LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWU0N2I0OTQ4N2U4OTY3MjlkMGE0Yjc3NzBiNTFk
NzgzZjRlOGNmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMt
d2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2Uu
aHRtbApAQCAtMCwwICsxLDg2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iL2Nvb2tpZXMvcmVzb3VyY2VzL2Nvb2tpZS11dGlsaXRpZXMuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1blRlc3QoKScsIDApIj4KKzxz
Y3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkNoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEph
dmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aG91dCBsaW5rIGRlY29y
YXRpb24gZG9uJ3QgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKworICAgIGZ1bmN0aW9uIHRlc3RDb29raWVzKCkgeworICAgICAgICBsZXQgcGFz
c2VkVGVzdHMgPSAwOworCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrVGhhdENvb2tpZURvZXNFeHBp
cmVBZnRlcihjb29raWVEYXRhLCBtYXhBZ2VJblNlY29uZHMpIHsKKyAgICAgICAgICAgIGxldCBu
b3cgPSBuZXcgRGF0ZSgpOworICAgICAgICAgICAgbGV0IG1heEV4cGlyeURhdGVJbk1pbGxpc2Vj
b25kcyA9IG5vdy5nZXRUaW1lKCkgKyAobWF4QWdlSW5TZWNvbmRzICogMTAwMCk7CisKKyAgICAg
ICAgICAgIGlmIChtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPCBjb29raWVEYXRhWyJleHBp
cmVzIl0pCisgICAgICAgICAgICAgICAgKytwYXNzZWRUZXN0czsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb29raWUgbmFtZWQgIiArIGNvb2tpZURhdGFb
Im5hbWUiXSArICIgZXhwaXJlcyBpbiBsZXNzIHRoYW4gIiArIG1heEFnZUluU2Vjb25kcyArICIg
c2Vjb25kcy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IG9uZURheUluU2Vjb25kcyA9
IDI0ICogNjAgKiA2MDsKKyAgICAgICAgY29uc3QgdHdvRGF5c0luU2Vjb25kcyA9IDIgKiBvbmVE
YXlJblNlY29uZHM7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFt
ZSA6ICJsb25nTGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdlPSIgKyB0d29E
YXlzSW5TZWNvbmRzICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZl
ZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVNYXhBZ2Uu
bGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdvRGF5c0FzRXhwaXJlc0Rh
dGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdvRGF5c0luU2Vjb25kcyk7CisgICAg
ICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29v
a2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3b0RheXNBc0V4cGlyZXNEYXRl
ICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZUV4cGly
ZXMubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSAr
ICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCBvdmVyT25lRGF5SW5TZWNvbmRzID0gb25lRGF5
SW5TZWNvbmRzICsgMzA7CisgICAgICAgIGlmIChpbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGxl
dCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKTsKKyAgICAgICAgICAgIGlmICghY29v
a2llcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gY29va2llcyBmb3Vu
ZC4iKTsKKyAgICAgICAgICAgIGZvciAobGV0IGNvb2tpZSBvZiBjb29raWVzKSB7CisgICAgICAg
ICAgICAgICAgc3dpdGNoIChjb29raWUubmFtZSkgeworICAgICAgICAgICAgICAgICAgICBjYXNl
IGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hl
Y2tUaGF0Q29va2llRG9lc0V4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7
CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBj
aGVja1RoYXRDb29raWVEb2VzRXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRz
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVzZXRDb29raWVzRm9yQ3VycmVudE9yaWdpbigp
OworCisgICAgICAgICAgICBpZiAocGFzc2VkVGVzdHMgPT09IDIpIHsKKyAgICAgICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBleHBpcmUgYWZ0ZXIgbW9y
ZSB0aGFuICIgKyBvdmVyT25lRGF5SW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQXQgbGVhc3Qgb25lIGNvb2tp
ZSdzIGV4cGlyeSBhdHRyaWJ1dGUgd2FzIGJlbG93IHRoZSB0ZXN0IHRocmVzaG9sZHMuIik7Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gaW50ZXJuYWxzIG9iamVj
dC4iKTsKKyAgICAgICAgICAgIAorICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5p
c2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG5hdmlnYXRlQ3Jvc3NPcmlnaW4oKSB7
CisgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbk9yaWdpbiArICIv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4t
anMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbCI7
CisgICAgfQorCisgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIjsKKyAgICBjb25zdCBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiA9ICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1
bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VP
cmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmln
aW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdl
dCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhuYXZpZ2F0ZUNyb3NzT3JpZ2lu
KTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgfSk7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICB0ZXN0Q29va2llcygpOworICAgICAgICB9CisgICAgfQorPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1v
bi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50
LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIwYzI1OGI4ZTAwNWQzNTU0MTgyYWYwNmQ0ODI1ODNhZTc3ZTVhMTMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQg
YXMgcHJldmFsZW50IHJlc291cmNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNl
ZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNl
ZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGUwM2ZkODcx
MmVmOWVkYzliMTg2MmY2MzZkMWU3NGVhNjg4ZDg0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24t
cHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAg
IDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIENsYXNzaWZpY2F0
aW9uIEJhc2VkIG9uIE1peGVkIFN0YXRpc3RpY3M8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIv
anMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7Cisg
ICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3Rl
bXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAv
dGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAw
MC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4
MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAo
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgZGlk
IG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAg
dGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVl
KTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFs
ZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NT
dWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4x
KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJU
b3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0
YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
aW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3Qp
OworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0Fu
ZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5s
b2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdp
bmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0
cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcnVu
VGVzdFJ1bm5lclRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJh
bWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1v
bi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjIwYzI1OGI4ZTAwNWQzNTU0MTgyYWYwNmQ0ODI1ODNhZTc3ZTVhMTMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXIt
dG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIEhv
c3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUt
b3JpZ2lucy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1l
LXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjg1NDA5
MDhlZDgwZDEzNGU3MzgwNDk2YTI3NTA1YWQwMDVjOTdiYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1u
b24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1k
YXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFu
Zz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5U
ZXN0cyBmb3IgQ2xhc3NpZmljYXRpb24gQmFzZWQgb24gU3ViIEZyYW1lIFVuZGVyIFRvcCBGcmFt
ZSBPcmlnaW5zPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0
IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NV
cmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0b3BG
cmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRv
cEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3Qg
dG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKworICAgIGZ1
bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQg
YXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVu
VGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlm
eVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2Us
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1l
T3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGlj
c1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9y
aWdpbjMpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2Nh
bkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRl
VGVzdCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0
aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3Vt
ZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIg
JiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFi
YXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAg
aW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAg
ICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXIt
dG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQt
YmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwYzI1OGI4ZTAwNWQzNTU0MTgyYWYwNmQ0ODI1ODNhZTc3
ZTVhMTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNv
dXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKK1BBU1MgSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJj
ZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5k
ZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2Vk
LW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTYxMTIwYTg1OTMxMjExNDA3MmQ0NzI5YjM2YmEwYTE3N2YzZGM0MQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRv
cC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYt
OCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBDbGFzc2lmaWNhdGlvbiBCYXNlZCBvbiBTdWJyZXNv
dXJjZSBVbmRlciBUb3AgRnJhbWUgT3JpZ2luczwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9q
cy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdD4KKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAg
ICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVt
cCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90
ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAw
L3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAodGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgZGlkIG5v
dCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgdGVz
dFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsK
KyAKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3Rh
dGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3Vi
cmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2lu
MSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVy
VG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxi
YWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1By
b2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisg
ICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93
LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNl
dFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRy
dWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVz
b3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXBy
ZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMGMyNThiOGUwMDVkMzU1NDE4MmFmMDZkNDgyNTgz
YWU3N2U1YTEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3Vi
cmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKK1BBU1MgSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJj
ZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5p
cXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24t
c3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjFhNWE1ZDRiZGE0ZTRmZGVlZDE4NmEzZjA4ODEyZmI4ZTI4NmQ1OTAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3Rz
LXRvLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRp
dGxlPlRlc3RzIGZvciBDbGFzc2lmaWNhdGlvbiBCYXNlZCBvbiBTdWJyZXNvdXJjZSBVbmlxdWUg
UmVkaXJlY3RzIFRvPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNv
bnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3Rp
Y3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0
b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0
IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisKKyAgICBm
dW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZh
aWxlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVk
IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NO
b3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworIAorICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBm
YWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIp
OworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1
ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0
aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLmlu
c3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY29tcGxldGVUZXN0KTsK
KworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmRE
YXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9j
YXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5k
b3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1
ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5h
bHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHJ1blRl
c3RSdW5uZXJUZXN0KCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UoZmFs
c2UpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXBy
ZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1h
cy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzJkZDY5Zjk0MTlmNTE5ODk1N2YwOTA4ZGQ2NzRkNjg0MzZjYjljNwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1k
YXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHBy
ZXZhbGVudCByZXNvdXJjZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhl
ZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0
YXRpc3RpY3MtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODk3MzE5YWIwZmIxMDAwNTVhOTM1
ZDRhOTUyYjJhYjk5NDQ4MzM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1v
bi1taXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2MiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJV
VEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBDbGFzc2lmaWNhdGlvbiBCYXNlZCBvbiBNaXhl
ZCBTdGF0aXN0aWNzPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGNv
bnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3Rp
Y3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCB0
b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0
IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29u
c3QgdG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBj
b25zdCB0b3BGcmFtZU9yaWdpbjQgPSAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiOworCisg
ICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291
cmNlLiIpOworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50
UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGdv
dCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJl
c291cmNlLiIpOworCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RW5hYmxlZChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25z
aXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdFJ1bm5lclRl
c3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRh
dGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlk
IG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0
aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZy
YW1lT3JpZ2luNCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJl
c291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRv
cEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4o
c3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW40KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmws
IHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NT
dWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4x
KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRh
UmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7
CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRl
c3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0
ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NFbmFibGVkKHRydWUpOworICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgIH0KKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1v
bi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMt
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyZGQ2OWY5NDE5ZjUxOTg5NTdmMDkw
OGRkNjc0ZDY4NDM2Y2I5YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9u
LXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1l
LW9yaWdpbnMtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVu
ZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VhNzYyMDBk
YTJmZmIxYTAwNTVhOGExOThhZTI3ODNlMmViM2Y1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2
YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNl
Lmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+
Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZv
ciBDbGFzc2lmaWNhdGlvbiBCYXNlZCBvbiBTdWIgRnJhbWUgVW5kZXIgVG9wIEZyYW1lIE9yaWdp
bnM8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3QgaG9zdFVu
ZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJo
dHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3Jp
Z2luMSA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVP
cmlnaW4yID0gImh0dHA6Ly8xMjcuMC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFt
ZU9yaWdpbjMgPSAiaHR0cDovLzEyNy4wLjAuNDo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZy
YW1lT3JpZ2luNCA9ICJodHRwOi8vMTI3LjAuMC41OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlv
biBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ikhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7Cisg
ICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZ290IGNsYXNzaWZp
ZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZh
bHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0
ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAg
ICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNX
ZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNl
dCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwg
dG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1
YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZy
YW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlz
dGljc1VybCwgdG9wRnJhbWVPcmlnaW40KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0
YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0
YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0
aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93
LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUp
OworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxz
LnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICBydW5UZXN0
UnVubmVyVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1yZWRpcmVjdC1jb2xsdXNpb24t
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS1y
ZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0ZGRj
ZTViMzE0Y2Q3ZDJkMGRlYzQ4YjZmOWY5ZTBlY2NhYjgzMDkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9u
IGJhc2VkIG9uIHN1YnJlc291cmNlIHJlZGlyZWN0IGNvbGx1c2lvbi4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgQ29sbHVkaW5nIGhvc3QgMSBnb3Qgc2V0IGFzIHByZXZh
bGVudCByZXNvdXJjZS4KK1BBU1MgQ29sbHVkaW5nIGhvc3QgMiBnb3Qgc2V0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4KK1BBU1MgQ29sbHVkaW5nIGhvc3QgMyBnb3Qgc2V0IGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4KK1BBU1MgQ29sbHVkaW5nIGhvc3QgNCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNv
dXJjZS4KK1BBU1MgQ29sbHVkaW5nIGxvY2FsaG9zdCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNv
dXJjZSBhZnRlciBhY3R1YWwgc3ViIGZyYW1lIHJlZGlyZWN0LgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQt
YmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFz
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmU0YmZiMmYyNTc3Y2JjYmRmM2MxZjRjMTRhNDZhOWFhZDYxNmY3
YWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJl
ZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNzEgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRG
LTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgZm9yIGNsYXNz
aWZpY2F0aW9uIGJhc2VkIG9uIHN1YnJlc291cmNlIHJlZGlyZWN0IGNvbGx1c2lvbi4iKTsKKyAg
ICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3
LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0
VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25zdCBzdWJyZXNvdXJjZU9yaWdpbjEgPSAiaHR0
cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworICAgIGNvbnN0IHN1YnJlc291cmNlT3JpZ2luMiA9
ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAvdGVtcCI7CisgICAgY29uc3Qgc3VicmVzb3VyY2VPcmln
aW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAwMC90ZW1wIjsKKyAgICBjb25zdCBzdWJyZXNvdXJj
ZU9yaWdpbjQgPSAiaHR0cDovLzEyNy4wLjAuNTo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIo
KTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJl
ZGlyZWN0RnJvbShzdGF0aXN0aWNzVXJsLCBzdWJyZXNvdXJjZU9yaWdpbjEpOworICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShzdWJy
ZXNvdXJjZU9yaWdpbjEsIHN1YnJlc291cmNlT3JpZ2luMik7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKHN1YnJlc291cmNlT3Jp
Z2luMiwgc3VicmVzb3VyY2VPcmlnaW4zKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oc3VicmVzb3VyY2VPcmlnaW4zLCBzdWJy
ZXNvdXJjZU9yaWdpbjQpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3Rp
Y3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZXhwbGljaXR5IHNldCBk
aWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmln
aW4xKSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCAxIGdvdCBz
ZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luMSkpCisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGhvc3QgMSBnb3QgY2xhc3NpZmll
ZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luMikpCisg
ICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5nIGhvc3QgMiBnb3Qgc2V0IGFzIHBy
ZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjIpKQorICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDIgZ290IGNsYXNzaWZpZWQgYXMgdmVy
eSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdWJyZXNvdXJjZU9yaWdpbjMpKQorICAgICAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDMgZ290IHNldCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5
UHJldmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW4zKSkKKyAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCAzIGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFs
ZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2Uoc3VicmVzb3VyY2VPcmlnaW40KSkKKyAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCA0IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVu
dFJlc291cmNlKHN1YnJlc291cmNlT3JpZ2luNCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiQ29sbHVkaW5nIGhvc3QgNCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNv
dXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSkKKyAgICAgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJDb2xsdWRpbmcgbG9jYWxob3N0IGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
IGFmdGVyIGFjdHVhbCBzdWIgZnJhbWUgcmVkaXJlY3QuIik7CisgICAgICAgICAgICBpZiAodGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCIpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBsb2NhbGhv
c3QgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09
PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwg
ZnVuY3Rpb24oKcKgeworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5vbmxvYWQg
PSBydW5UZXN0OworICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5w
aHA/cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9vbmNsaWNrLmh0bWwiOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVu
dC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjhmY2JkOGQ4ZjZkMDVmYzQ5NGQ0
ZWVkZGNkOWNiNWViZGRlMGMzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tc3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24gc3Vi
cmVzb3VyY2UgcmVkaXJlY3QgdG8gb3RoZXIgcHJldmFsZW50LgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNl
LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtcmVkaXJlY3QtdG8tcHJl
dmFsZW50LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJl
ZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1ODBhNTlmNjlh
ZTBlNzA5ZTUwNDBlYmYzNTA3NzJhNmRmOGJmNGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFs
ZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS5o
dG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgor
PGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJl
c291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAg
ICBkZXNjcmlwdGlvbigiVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHN1YnJlc291
cmNlIHJlZGlyZWN0IHRvIG90aGVyIHByZXZhbGVudC4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKworICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAg
IGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1w
IjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3Rl
bXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFs
ZW50IHJlc291cmNlLiIpOworICAgICAgICBlbHNlIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkhvc3QgZ290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAKKyAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5U
ZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSh0b3BGcmFtZU9yaWdpbjEsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NV
cmwsIHRvcEZyYW1lT3JpZ2luMSk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0
YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3Jk
cygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9z
dCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJu
YWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVk
KHRydWUpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQg
c2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgcnVuVGVz
dCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJj
ZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFs
ZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmRkNjlmOTQxOWY1MTk4OTU3ZjA5MDhkZDY3NGQ2
ODQzNmNiOWM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNv
dXJjZS11bmRlci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRlci10b3AtZnJhbWUtb3Jp
Z2lucy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRl
ci10b3AtZnJhbWUtb3JpZ2lucy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkMDFlYTZiYzI0
OTM3NTkyZjBlODk2NzYxNWM5OWM1YzhkYzNmYTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFs
ZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLWRhdGFiYXNl
Lmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+
Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZv
ciBDbGFzc2lmaWNhdGlvbiBCYXNlZCBvbiBTdWJyZXNvdXJjZSBVbmRlciBUb3AgRnJhbWUgT3Jp
Z2luczwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBob3N0
VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0g
Imh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVP
cmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFt
ZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZy
YW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9w
RnJhbWVPcmlnaW40ID0gImh0dHA6Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0
aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNl
KHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBnb3QgY2xhc3Np
ZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQo
ZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0
YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cisg
ICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgewor
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jk
c1dlcmVTY2FubmVkKHRydWUpOworIAorICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0
IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGlj
c1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbjIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3Vy
Y2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMyk7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJh
bWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW40KTsKKworICAgICAgICAgICAg
dGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNv
bXBsZXRlVGVzdCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NT
dGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYg
KGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RS
dW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwor
ICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlx
dWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tc3VicmVzb3VyY2UtdW5pcXVlLXJlZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzJkZDY5Zjk0MTlmNTE5ODk1N2YwOTA4ZGQ2NzRkNjg0MzZjYjljNwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5pcXVlLXJl
ZGlyZWN0cy10by1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgSG9zdCBjbGFz
c2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1i
YXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJh
c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43OGY3ZjEzOTFjNjIxZGU4NjZlMWJkMjNiMDFiZGEzMzJkMGQ5
ZjM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11
bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJV
VEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBDbGFzc2lmaWNhdGlvbiBCYXNlZCBvbiBTdWJy
ZXNvdXJjZSBVbmlxdWUgUmVkaXJlY3RzIFRvPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAg
IGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1w
IjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3Rl
bXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vMTI3LjAuMC4zOjgwMDAv
dGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly8xMjcuMC4wLjQ6ODAw
MC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjQgPSAiaHR0cDovLzEyNy4wLjAuNTo4
MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAo
IXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkp
CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMg
cHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGdvdCBjbGFzc2lmaWVkIGFzIHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGNsYXNzaWZpZWQg
YXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
cnVuVGVzdFJ1bm5lclRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05v
dGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgCisgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZh
bHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVl
UmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRp
c3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJh
bWVPcmlnaW4zKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjQpOworCisg
ICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRz
Q2FsbGJhY2soY29tcGxldGVUZXN0KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9
CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3
aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJs
ZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1m
cmFtZS1yZWRpcmVjdC1jb2xsdXNpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mZDM5MzhiNzZjOTc0NGMzYWZhN2IyNTUwNWVhZWI0OWQ4NjZiNTIw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJl
Y3QtY29sbHVzaW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0
cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24gdG9wIGZyYW1lIHJlZGlyZWN0IGNvbGx1c2lv
bi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgQ29sbHVkaW5nIGhvc3Qg
MSBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1MgQ29sbHVkaW5nIGhvc3QgMiBn
b3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1MgQ29sbHVkaW5nIGhvc3QgMyBnb3Qg
c2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1MgQ29sbHVkaW5nIGhvc3QgNCBnb3Qgc2V0
IGFzIHByZXZhbGVudCByZXNvdXJjZS4KK1BBU1MgQ29sbHVkaW5nIGxvY2FsaG9zdCBnb3Qgc2V0
IGFzIHByZXZhbGVudCByZXNvdXJjZSBhZnRlciBhY3R1YWwgbmF2aWdhdGlvbmFsIHJlZGlyZWN0
LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
bGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lv
bi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3Qt
Y29sbHVzaW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGE5ODNiYzA2ZDM1MGVkNTY1NTI0
MDJkZmNmZDMzNDU5YzYwNWNlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tdG9wLWZyYW1lLXJlZGlyZWN0LWNvbGx1c2lvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEs
NzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1l
dGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigi
VGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHRvcCBmcmFtZSByZWRpcmVjdCBjb2xs
dXNpb24uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBob3N0VW5k
ZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0
dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmln
aW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9y
aWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1l
T3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJh
bWVPcmlnaW40ID0gImh0dHA6Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BG
cmFtZU9yaWdpbjUgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwLyI7CisKKyAgICBmdW5jdGlvbiBy
dW5UZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1
ZVJlZGlyZWN0RnJvbShzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSh0b3BGcmFt
ZU9yaWdpbjEsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKHRvcEZyYW1lT3JpZ2luMiwgdG9wRnJhbWVP
cmlnaW4zKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVS
ZWRpcmVjdEZyb20odG9wRnJhbWVPcmlnaW4zLCB0b3BGcmFtZU9yaWdpbjQpOworCisgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmws
IHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkhvc3QgZXhwbGljaXR5IHNldCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4xKSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJDb2xsdWRpbmcgaG9zdCAxIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOwor
ICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291
cmNlKHRvcEZyYW1lT3JpZ2luMSkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVk
aW5nIGhvc3QgMSBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KHRvcEZyYW1lT3JpZ2luMikpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29sbHVkaW5n
IGhvc3QgMiBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlm
ICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9y
aWdpbjIpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbGx1ZGluZyBob3N0IDIgZ290
IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBp
ZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0b3BGcmFtZU9yaWdp
bjMpKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvbGx1ZGluZyBob3N0IDMgZ290IHNl
dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW4zKSkKKyAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb2xsdWRpbmcgaG9zdCAzIGdvdCBjbGFzc2lmaWVkIGFz
IHZlcnkgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodG9wRnJhbWVPcmlnaW40KSkKKyAgICAgICAg
ICAgICAgICB0ZXN0UGFzc2VkKCJDb2xsdWRpbmcgaG9zdCA0IGdvdCBzZXQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVy
eVByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luNCkpCisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiQ29sbHVkaW5nIGhvc3QgNCBnb3QgY2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2luNSkpCisgICAgICAgICAgICAgICAgdGVzdFBh
c3NlZCgiQ29sbHVkaW5nIGxvY2FsaG9zdCBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZSBh
ZnRlciBhY3R1YWwgbmF2aWdhdGlvbmFsIHJlZGlyZWN0LiIpOworICAgICAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2lu
NSkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29sbHVkaW5nIGxvY2FsaG9zdCBnb3Qg
Y2xhc3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgIAor
ICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAg
ICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiICYm
IHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0
cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQg
bm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0b3BGcmFtZU9yaWdpbjUgKyAicmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89aHR0cDovLzEy
Ny4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50
LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC1jb2xsdXNpb24uaHRtbCNjb250aW51ZSI7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdFJ1
bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgcnVuVGVzdCgpOworICAg
IH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1i
YXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVu
dC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTlmOTk1MzM4MjgwZjMxNWIyMjAw
M2YwMDgyZDA4MTQ4NDdlOWFiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQt
b24tdG9wLWZyYW1lLXJlZGlyZWN0LXRvLXByZXZhbGVudC1kYXRhYmFzZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMCBAQAorVGVzdHMgZm9yIGNsYXNzaWZpY2F0aW9uIGJhc2VkIG9uIHRvcCBm
cmFtZSByZWRpcmVjdCB0byBvdGhlciBwcmV2YWxlbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNz
aWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50
LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS1yZWRpcmVjdC10
by1wcmV2YWxlbnQtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTJjNzUxNjg4OTcxNTk1MzU0
ZTYyMDY0ZTk4MzgzMzBlZmNhZTk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNl
ZC1vbi10b3AtZnJhbWUtcmVkaXJlY3QtdG8tcHJldmFsZW50LWRhdGFiYXNlLmh0bWwKQEAgLTAs
MCArMSw1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAg
ICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0
aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0
aW9uKCJUZXN0cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24gdG9wIGZyYW1lIHJlZGlyZWN0
IHRvIG90aGVyIHByZXZhbGVudC4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAg
IGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRp
c3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICBjb25z
dCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAiOworCisgICAg
ZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICBlbHNlIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ZlcnlQcmV2YWxl
bnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
Z290IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisgICAgICAgIAorICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBm
aW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRvcEZyYW1lT3JpZ2lu
MSwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4x
KTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRh
UmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgIH0pOwor
ICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0
ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRv
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tdG9wLWZyYW1lLXVu
aXF1ZS1yZWRpcmVjdHMtdG8tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0OTFi
Zjk2MDMzNTcwOWM5OTFkZjFmZmQzMjQyOGJkYmFlODA2ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyBmb3IgY2xhc3NpZmljYXRpb24g
YmFzZWQgb24gdG9wIGZyYW1lIHVuaXF1ZSByZWRpcmVjdHMgdG8uCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVlLXJlZGlyZWN0
cy10by1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi10b3AtZnJhbWUtdW5pcXVl
LXJlZGlyZWN0cy10by1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjNGM3ZWU1ZjZjM2ZlYTY1
NjEzZjg1ODM2MjdhNGM5ODUwMzE1ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJh
c2VkLW9uLXRvcC1mcmFtZS11bmlxdWUtcmVkaXJlY3RzLXRvLWRhdGFiYXNlLmh0bWwKQEAgLTAs
MCArMSw1NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAg
ICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0
aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0
aW9uKCJUZXN0cyBmb3IgY2xhc3NpZmljYXRpb24gYmFzZWQgb24gdG9wIGZyYW1lIHVuaXF1ZSBy
ZWRpcmVjdHMgdG8uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBo
b3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBzdGF0aXN0aWNzVXJs
ID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgY29uc3QgdG9wRnJh
bWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BG
cmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4MDAwL3RlbXAiOworICAgIGNvbnN0IHRv
cEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40OjgwMDAvdGVtcCI7CisgICAgY29uc3Qg
dG9wRnJhbWVPcmlnaW40ID0gImh0dHA6Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIjsKKworICAgIGZ1
bmN0aW9uIGNvbXBsZXRlVGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZh
aWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291
cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBnb3QgY2xh
c3NpZmllZCBhcyB2ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJj
ZS4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFt
ZU9yaWdpbjEpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1
ZVJlZGlyZWN0VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NV
cmwsIHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Rv
cEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjQpOwor
CisgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHND
YWxsYmFjayhjb21wbGV0ZVRlc3QpOworCisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1By
b2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1l
bnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAm
JiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJh
c2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVj
b3Jkc1dlcmVTY2FubmVkKHRydWUpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1wcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
ICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0K
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnktcHJldmFsZW50
LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXZlcnkt
cHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmIwZjAzMWRjYTVkMGM5NjA4ZjRkOGY1YWY4OTlhMTZlOWVmNTFjNTgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGlj
cy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCBmb3IgY2xhc3Np
ZmljYXRpb24gYXMgdmVyeSBwcmV2YWxlbnQgYmFzZWQgb24gbWl4ZWQgc3RhdGlzdGljcy4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgSG9zdCBjbGFzc2lmaWVkIGFzIHZl
cnkgcHJldmFsZW50IHJlc291cmNlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy12ZXJ5LXByZXZhbGVudC1iYXNlZC1vbi1t
aXhlZC1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2YWxlbnQtYmFzZWQtb24t
bWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiMDZmYTIwOWVkYmI2
ZjExODhhZmY3ZDE2MDYzMDQwMjdhYmIxN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtdmVyeS1wcmV2
YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEs
NjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1l
dGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigi
VGVzdCBmb3IgY2xhc3NpZmljYXRpb24gYXMgdmVyeSBwcmV2YWxlbnQgYmFzZWQgb24gbWl4ZWQg
c3RhdGlzdGljcy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGhv
c3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwg
PSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICB2YXIgdG9wRnJhbWVP
cmlnaW5zID0gW107CisgICAgY29uc3Qgc3RhcnROdW0gPSAyOworICAgIGNvbnN0IG51bWJlck9m
U3VicmVzb3VyY2VEb21haW5zID0gMzA7CisgICAgZm9yICh2YXIgaSA9IHN0YXJ0TnVtOyBpIDwg
bnVtYmVyT2ZTdWJyZXNvdXJjZURvbWFpbnMgKyBzdGFydE51bTsgKytpKQorICAgICAgICB0b3BG
cmFtZU9yaWdpbnMucHVzaCgiaHR0cDovLzEyNy4wLjAuIiArIGkgKyAiOjgwMDAvdGVtcCIpCisK
KyAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NWZXJ5UHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0
IGRpZCBub3QgZ2V0IGNsYXNzaWZpZWQgYXMgdmVyeSBwcmV2YWxlbnQgcmVzb3VyY2UuIik7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xhc3NpZmllZCBhcyB2
ZXJ5IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJU
ZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5E
YXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworIAorICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IHN0
YXJ0ZWQgb3V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdmFyIGkg
PSAwOworICAgICAgICAgICAgd2hpbGUgKGkgPCBudW1iZXJPZlN1YnJlc291cmNlRG9tYWlucykg
eworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJU
b3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaV0pOworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFt
ZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaV0pOworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhz
dGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbnNbaV0pOworCisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3Rp
Y3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpKzFdKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1Vy
bCwgdG9wRnJhbWVPcmlnaW5zW2krMV0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNzVXJsLCB0b3BG
cmFtZU9yaWdpbnNbaSsxXSk7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVP
cmlnaW5zW2krMl0pOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1
YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdp
bnNbaSsyXSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVz
b3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1lT3JpZ2luc1tpKzJd
KTsKKyAgICAgICAgICAgICAgICBpICs9IDM7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhj
b21wbGV0ZVRlc3QpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0
YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAo
ZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1
bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQ
RGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgcnVuVGVzdFJ1
bm5lclRlc3QpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWlu
LW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5
LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
YWUwMDMzZmZjY2FlYzI2M2E5NmYyYjNkNzgzZWRjZjcwNDA4M2QzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWlu
LW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMSBAQAorVGVzdHMgY2xlYXJpbmcgb2Ygd2Vic2l0ZSBkYXRhIHN0b3JlLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBIb3N0IGNsYXNzaWZpZWQgYXMgcHJldmFs
ZW50IHJlc291cmNlLgorUEFTUyBIb3N0IGlzIG5vIGxvbmdlciBhIHByZXZhbGVudCByZXNvdXJj
ZSBhZnRlciB0aGUgc3RvcmUgd2FzIGNsZWFyZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVu
dC1zdG9yZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1kYXRhYmFz
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIxN2ViYWJhZDkxN2FhZDQ5OTAzMzgxZWEzNTIzZTIwNjJiYWVi
MGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLWRhdGFiYXNl
Lmh0bWwKQEAgLTAsMCArMSw2NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+
Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3QgQ2xl
YXJlZCBTdG9yZTwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJU
ZXN0cyBjbGVhcmluZyBvZiB3ZWJzaXRlIGRhdGEgc3RvcmUuIik7CisgICAganNUZXN0SXNBc3lu
YyA9IHRydWU7CisKKyAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gIjEyNy4wLjAuMTo4MDAwIjsK
KyAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIv
dGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAw
MC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovLzEyNy4wLjAuMzo4
MDAwL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vMTI3LjAuMC40
OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiB0ZXN0U3RlcDIoKSB7CisgICAgICAgIGlmICh0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQor
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiSG9zdCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNv
dXJjZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQg
bm90IGdldCBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICB0
ZXN0UnVubmVyLnN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlKGNvbXBs
ZXRlVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAgICAg
ICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgaXMgc3RpbGwgYSBwcmV2YWxlbnQg
cmVzb3VyY2UgYWZ0ZXIgdGhlIHN0b3JlIHdhcyBjbGVhcmVkLiIpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGlzIG5vIGxvbmdlciBhIHByZXZhbGVudCByZXNv
dXJjZSBhZnRlciB0aGUgc3RvcmUgd2FzIGNsZWFyZWQuIik7CisKKyAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5U
ZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5
UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKworICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCBmYWxzZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFsZW50IHJlc291cmNlLiIpOworCisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVP
cmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdGF0aXN0aWNz
VXJsLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmwsIHRvcEZyYW1l
T3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJj
ZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9y
aWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NV
cmwsIHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVP
cmlnaW4zKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNj
YW5EYXRhUmVjb3Jkc0NhbGxiYWNrKHRlc3RTdGVwMik7CisKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICAgICAg
fSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRl
clRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAg
ICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJ1blRlc3RSdW5uZXJUZXN0
KCk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
ZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUtaG91ci1kYXRhYmFzZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wN2Y5OTljNmZlYjMyNjVkZWZmMzk1MWFjMmY4MTQwYWMx
YTZlZWUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS1vbmUt
aG91ci1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdHMgY2xlYXJp
bmcgb2Ygd2Vic2l0ZSBkYXRhIHN0b3JlIChvbmUgaG91cikuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIEhvc3QgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
CitQQVNTIEhvc3QgaXMgbm8gbG9uZ2VyIGEgcHJldmFsZW50IHJlc291cmNlIGFmdGVyIHRoZSBz
dG9yZSB3YXMgY2xlYXJlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1o
b3VyLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50LXN0b3JlLW9uZS1ob3VyLWRh
dGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTZiYjA2NWUzN2JkYTI0NDgwNDMzNzIzNDU1ZmU4Zjdk
ODY5NjhjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25l
LWhvdXItZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8
dGl0bGU+PC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3Rz
IGNsZWFyaW5nIG9mIHdlYnNpdGUgZGF0YSBzdG9yZSAob25lIGhvdXIpLiIpOworICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6
ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRl
c3QgKyAiL3RlbXAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vMTI3LjAu
MC4yOjgwMDAvdGVtcCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly8xMjcu
MC4wLjM6ODAwMC90ZW1wIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0cDovLzEy
Ny4wLjAuNDo4MDAwL3RlbXAiOworCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkgeworICAg
ICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgaXMgc3RpbGwgYSBwcmV2YWxl
bnQgcmVzb3VyY2UgYWZ0ZXIgdGhlIHN0b3JlIHdhcyBjbGVhcmVkLiIpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJIb3N0IGlzIG5vIGxvbmdlciBhIHByZXZhbGVudCBy
ZXNvdXJjZSBhZnRlciB0aGUgc3RvcmUgd2FzIGNsZWFyZWQuIik7CisgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVz
dFN0ZXAyKCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkhvc3QgY2xh
c3NpZmllZCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xhc3NpZmllZCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzQ2xlYXJJbk1lbW9y
eUFuZFBlcnNpc3RlbnRTdG9yZU1vZGlmaWVkU2luY2VIb3VycygxLCBjb21wbGV0ZVRlc3QpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVk
KHRydWUpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHt9KTsKKyAgICAgICAgaWYgKHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBub24tcHJldmFs
ZW50IHJlc291cmNlLiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZy
YW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjEpOwor
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0
VG8oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHN0YXRpc3RpY3NVcmws
IHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJl
c291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjIp
OworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVP
cmlnaW4oc3RhdGlzdGljc1VybCwgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN0YXRpc3RpY3NVcmws
IHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJl
c291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdGF0aXN0aWNzVXJsLCB0b3BGcmFtZU9yaWdpbjMp
OworCisgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29y
ZHNDYWxsYmFjayh0ZXN0U3RlcDIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1By
b2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1l
bnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAm
JiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJh
c2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgcnVuVGVzdFJ1bm5lclRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9uLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
b29raWUtZGVsZXRpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiM2ZjZmEw
NDkzODM3OTk2MmRjZDdhN2JkYTQzOTU1MDIyZWMyZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9u
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU1IEBACitUZXN0IGZvciBwYXJ0aXRp
b25lZCBhbmQgdW5wYXJ0aXRpb25lZCBjb29raWUgZGVsZXRpb24uCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKyAgCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0t
LQorU2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLgorUmVjZWl2ZWQgY29va2llIG5h
bWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3Ro
aXJkUGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5
Q29va2llPXZhbHVlCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTItLT4nCistLS0tLS0t
LQorU2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFt
ZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhp
cmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0t
CitGcmFtZTogJzwhLS1mcmFtZTMtLT4nCistLS0tLS0tLQorVHJ5IHRvIHNldCB0aGlyZCBwYXJ0
eSBjb29raWUuCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lNC0tPicKKy0tLS0tLS0t
CitTaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1l
ZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGly
ZFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0K
K0ZyYW1lOiAnPCEtLWZyYW1lNS0tPicKKy0tLS0tLS0tCitBZnRlciByZW1vdmFsLCBzaG91bGQg
cmVjZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQ
YXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICd0aGlyZFBhcnR5Q29v
a2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAn
PCEtLWZyYW1lNi0tPicKKy0tLS0tLS0tCitBZnRlciBkZWNsYXNzaWZpZWQsIHNob3VsZCByZWNl
aXZlIG5vIGNvb2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5
Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUn
LgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi1kYXRhYmFz
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nv
b2tpZS1kZWxldGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4MzRlODczMDhhMDM4ZDQy
NDYyYjEyMTEyZTRlYmMxNDU1OWRlZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0aW9uLWRhdGFiYXNl
Lmh0bWwKQEAgLTAsMCArMSwxMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4i
PgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIv
anMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4K
KyAgICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgcGFydGl0aW9uZWQgYW5kIHVucGFydGl0aW9uZWQg
Y29va2llIGRlbGV0aW9uLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29u
c3QgcGFydGl0aW9uSG9zdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0
eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlC
YXNlVXJsID0gdGhpcmRQYXJ0eU9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNv
dXJjZXMiOworICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVOYW1lID0gImZpcnN0UGFydHlDb29r
aWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgPSAiL3NldC1jb29r
aWUucGhwP25hbWU9IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT12YWx1ZSI7Cisg
ICAgY29uc3QgdGhpcmRQYXJ0eUNvb2tpZU5hbWUgPSAidGhpcmRQYXJ0eUNvb2tpZSI7CisgICAg
Y29uc3Qgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFt
ZT0iICsgdGhpcmRQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCBm
cmFnbWVudFdpdGhSZXR1cm5VcmwgPSAiaHR0cDovLyIgKyBwYXJ0aXRpb25Ib3N0ICsgIi9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZS1kZWxldGlvbi5odG1sIjsKKyAgICBjb25zdCBzdWJQ
YXRoVG9HZXRDb29raWVzID0gIi9nZXQtY29va2llcy5waHA/bmFtZTE9IiArIGZpcnN0UGFydHlD
b29raWVOYW1lICsgIiZuYW1lMj0iICsgdGhpcmRQYXJ0eUNvb2tpZU5hbWU7CisKKyAgICBmdW5j
dGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5p
c2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxvYWRI
YW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbkxv
YWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7
CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsK
KyAgICB9CisKKworICAgIGZ1bmN0aW9uIGZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlckFuZENv
bnRpbnVlKCkgeworICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRh
dGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KHJ1
blRlc3QsIDUwMCk7CisgICAgICAgIH0pOworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQ
cm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
c2V0QXNOb25QcmV2YWxlbnRBbmRDb250aW51ZSgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgZmFsc2UsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBzdGlsbCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcocnVuVGVzdCk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAo
ZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAg
ICAgICAgICAgICAgICAvLyBTZXQgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3QuCisg
ICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNlVXJs
ICsgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIGZyYWdtZW50V2l0aFJldHVy
blVybCArICIjc3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSB0aGlyZC1wYXJ0
eSBoYXMgYWNjZXNzIHRvIGl0cyBmaXJzdC1wYXJ0eSBjb29raWVzLgorICAgICAgICAgICAgICAg
IGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAgICAgICAgICAgIG9wZW5J
ZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdl
PVNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAg
ICAgLy8gQ2xhc3NpZnkgbG9jYWxob3N0IGFzIHByZXZhbGVudC4KKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA0IjsKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luLCB0cnVl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NV
cGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAg
ICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgdGhpcmQtcGFydHkgbm8gbG9uZ2VyIGhhcyBhY2Nlc3Mg
dG8gaXRzIGZpcnN0LXBhcnR5IGNvb2tpZXMuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaGFzaCA9ICJzdGVwNSI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBh
cnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2Vp
dmUgbm8gY29va2llcy4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgIiNzdGVwNSI6CisgICAgICAgICAgICAgICAgLy8gVHJ5IHNldHRpbmcgYSBj
b29raWUgYXMgdGhpcmQtcGFydHkuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aGFzaCA9ICJzdGVwNiI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFz
ZVVybCArIHN1YlBhdGhUb1NldFRoaXJkUGFydHlDb29raWUgKyAiJm1lc3NhZ2U9VHJ5IHRvIHNl
dCB0aGlyZCBwYXJ0eSBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlICIjc3RlcDYiOgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRo
YXQgdGhlIHRoaXJkLXBhcnR5IHN0aWxsIGhhcyBubyBhY2Nlc3MgdG8gY29va2llcyBhbmQgdGhl
biBmaXJlIGRhdGEgcmVjb3JkIHJlbW92YWwuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaGFzaCA9ICJzdGVwNyI7CisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBh
cnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2Vp
dmUgbm8gY29va2llcy4iLCBmaXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXJBbmRDb250aW51ZSk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDciOgorICAg
ICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIHRoaXJkLXBhcnR5IHN0aWxsIGhhcyBubyBh
Y2Nlc3MgdG8gY29va2llcyBhbmQgdGhlbiBkZWNsYXNzaWZ5IGxvY2FsaG9zdC4KKyAgICAgICAg
ICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA4IjsKKyAgICAgICAgICAgICAg
ICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICIm
bWVzc2FnZT1BZnRlciByZW1vdmFsLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLiIsIHNldEFz
Tm9uUHJldmFsZW50QW5kQ29udGludWUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSAiI3N0ZXA4IjoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSB0
aGlyZC1wYXJ0eSBzdGlsbCBoYXMgbm8gYWNjZXNzIHRvIGNvb2tpZXMuCisgICAgICAgICAgICAg
ICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAi
Jm1lc3NhZ2U9QWZ0ZXIgZGVjbGFzc2lmaWVkLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLiIs
IGZpbmlzaFRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQor
CisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IHBhcnRpdGlvbkhvc3QgJiYgZG9j
dW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93
LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUp
OworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVE
YXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisKKyAgICAgICAgICAgIHJ1blRlc3QoKTsK
KyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcnVuVGVzdCgpOworICAgIH0KKwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llcy13aXRoLWFuZC13aXRob3V0LXVz
ZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2Vy
LWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZDEwOTJlZmRl
ZWU0NmZhYzZlMzZhYzA3NmQ4MTRkMmJiZTVjN2I5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQt
d2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDI1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KyAgCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorU2hvdWxk
IHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLgorUmVjZWl2ZWQgY29va2llIG5hbWVkICdmaXJz
dFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQYXJ0eUNv
b2tpZT12YWx1ZQorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUyLS0+JworLS0tLS0tLS0K
K1Nob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVk
ICdmaXJzdFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0t
LS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMy0tPicKKy0tLS0tLS0tCitBZnRlciB1c2VyIGludGVy
YWN0aW9uLCBzaG91bGQgc3RpbGwgcmVjZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZl
IGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5j
b29raWU6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJh
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
b29raWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjljN2EzOWM3M2U5ZjE1YzY2NTBhMTc2YjNlYzkxOGMxYjVmZjY1YmEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRt
bApAQCAtMCwwICsxLDg0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxo
ZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdCBmb3IgUGFy
dGl0aW9uZWQgQ29va2llcyBXaXRoIGFuZCBXaXRob3V0IFVzZXIgSW50ZXJhY3Rpb248L3RpdGxl
PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBjb25zdCBwYXJ0aXRpb25Ib3N0ID0gIjEyNy4wLjAu
MTo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsg
Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3QgZmlyc3RQYXJ0
eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0
Rmlyc3RQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsgZmlyc3RQYXJ0eUNv
b2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCBmcmFnbWVudFdpdGhSZXR1cm5V
cmwgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2ll
cy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbCI7CisgICAgY29uc3Qgc3Vi
UGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5
Q29va2llTmFtZTsKKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9wZW5JZnJh
bWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7Cisg
ICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9
IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZXRVc2VySW50ZXJhY3Rpb25B
bmRDb250aW51ZSgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0
aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJUaGlyZCBwYXJ0
eSBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAgICAg
ICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAg
ICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVm
ID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llICsgIiMi
ICsgZnJhZ21lbnRXaXRoUmV0dXJuVXJsICsgIiNzdGVwMiI7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUodGhp
cmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCBy
ZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNv
dXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRl
Q29va2llQmxvY2tpbmcocnVuVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAg
IGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAgICAgICAgICAgIG9wZW5J
ZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdl
PVNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwgc2V0VXNlckludGVyYWN0aW9uQW5kQ29udGlu
dWUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA1IjoK
KyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRv
R2V0Q29va2llcyArICImbWVzc2FnZT1BZnRlciB1c2VyIGludGVyYWN0aW9uLCBzaG91bGQgc3Rp
bGwgcmVjZWl2ZSBubyBjb29raWVzLiIsIGZpbmlzaFRlc3QpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3Qg
PT09IHBhcnRpdGlvbkhvc3QgJiYgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PSAiIiAmJiB3aW5k
b3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAg
ICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgIGlmICh0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkxvY2FsaG9zdCB3YXMgY2xhc3NpZmllZCBhcyBw
cmV2YWxlbnQgcmVzb3VyY2UgYmVmb3JlIHRoZSB0ZXN0IHN0YXJ0cy4iKTsKKyAgICAgICAgICAg
IHJ1blRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcnVuVGVzdCgp
OworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RlbGV0ZS1zY3JpcHQtYWNj
ZXNzaWJsZS1jb29raWVzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUtY29v
a2llcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjM0MDdkY2YzZWRlZWI2MGVj
OTY0OTI4NTAxNDUxYTA1MTkyODQ3OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUt
Y29va2llcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorQ2hlY2sgdGhh
dCBvbmx5IEh0dHBPbmx5IGNvb2tpZXMgcmVtYWluIGlmIGFsbCBzY3JpcHQtYWNjZXNzaWJsZSBj
b29raWVzIGFyZSBkZWxldGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBCZWZvcmUgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246IENsaWVudC1zaWRlIGNvb2tpZSBl
eGlzdHMuCitQQVNTIEJlZm9yZSBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogSHR0cE9ubHkg
Y29va2llIGV4aXN0cy4KK1BBU1MgQmVmb3JlIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiBS
ZWd1bGFyIHNlcnZlci1zaWRlIGNvb2tpZSBleGlzdHMuCitQQVNTIEFmdGVyIHNjcmlwdC1hY2Nl
c3NpYmxlIGRlbGV0aW9uOiAgSHR0cE9ubHkgY29va2llIGV4aXN0cy4KK1BBU1MgQWZ0ZXIgZnVs
bCBkZWxldGlvbjogICAgICAgICAgICAgICBBbGwgY29va2llcyBhcmUgZ29uZS4KK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlw
dC1hY2Nlc3NpYmxlLWNvb2tpZXMtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kZWxldGUtc2NyaXB0LWFjY2Vzc2libGUtY29va2ll
cy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwZmM1Mzc3ZDdkZWU2MDQyOTkwYmUwYzJkYmZi
NzQ1YWUwNWNkNTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZGVsZXRlLXNjcmlwdC1hY2Nlc3NpYmxlLWNvb2tpZXMtZGF0
YWJhc2UuaHRtbApAQCAtMCwwICsxLDczIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxzY3JpcHQ+CisgICAg
ZGVzY3JpcHRpb24oIkNoZWNrIHRoYXQgb25seSBIdHRwT25seSBjb29raWVzIHJlbWFpbiBpZiBh
bGwgc2NyaXB0LWFjY2Vzc2libGUgY29va2llcyBhcmUgZGVsZXRlZC4iKTsKKyAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGh0dHBPbmx5Q29va2llTmFtZSA9ICJodHRwLW9u
bHktY29va2llIjsKKyAgICBjb25zdCBzZXJ2ZXJTaWRlQ29va2llTmFtZSA9ICJzZXJ2ZXItc2lk
ZS1jb29raWUiOworICAgIGNvbnN0IGNsaWVudFNpZGVDb29raWVOYW1lID0gImNsaWVudC1zaWRl
LWNvb2tpZSI7CisKKyAgICBmdW5jdGlvbiBzb3J0U3RyaW5nQXJyYXkoYSwgYikgeworICAgICAg
ICBhID0gYS50b0xvd2VyQ2FzZSgpOworICAgICAgICBiID0gYi50b0xvd2VyQ2FzZSgpOworCisg
ICAgICAgIHJldHVybiBhID4gYiA/IDEgOiBiID4gYSA/IC0xIDogMDsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBjaGVja0Nvb2tpZXMoaXNBZnRlclNjcmlwdEFjY2Vzc2libGVEZWxldGlvbikgewor
ICAgICAgICBsZXQgdW5zb3J0ZWRUZXN0UGFzc2VkTWVzc2FnZXMgPSBbXTsKKyAgICAgICAgbGV0
IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICBpZiAoIWNvb2tpZXMu
bGVuZ3RoKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgoaXNBZnRlclNjcmlwdEFjY2Vzc2libGVE
ZWxldGlvbiA/ICJBZnRlciIgOiAiQmVmb3JlIikgKyAiIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0
aW9uOiBObyBjb29raWVzIGZvdW5kLiIpOworICAgICAgICBmb3IgKGxldCBjb29raWUgb2YgY29v
a2llcykgeworICAgICAgICAgICAgc3dpdGNoIChjb29raWUubmFtZSkgeworICAgICAgICAgICAg
ICAgIGNhc2UgaHR0cE9ubHlDb29raWVOYW1lOgorICAgICAgICAgICAgICAgICAgICB1bnNvcnRl
ZFRlc3RQYXNzZWRNZXNzYWdlcy5wdXNoKChpc0FmdGVyU2NyaXB0QWNjZXNzaWJsZURlbGV0aW9u
ID8gIkFmdGVyIiA6ICJCZWZvcmUiKSArICIgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246ICIg
KyAoaXNBZnRlclNjcmlwdEFjY2Vzc2libGVEZWxldGlvbiA/ICIgIiA6ICIiKSArICJIdHRwT25s
eSBjb29raWUgZXhpc3RzLiIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICBjYXNlIHNlcnZlclNpZGVDb29raWVOYW1lOgorICAgICAgICAgICAgICAgICAgICBp
ZiAoaXNBZnRlclNjcmlwdEFjY2Vzc2libGVEZWxldGlvbikKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkFmdGVyIHNjcmlwdC1hY2Nlc3NpYmxlIGRlbGV0aW9uOiAgUmVndWxh
ciBzZXJ2ZXItc2lkZSBjb29raWUgZXhpc3RzLiIpOworICAgICAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgICAgICB1bnNvcnRlZFRlc3RQYXNzZWRNZXNzYWdlcy5wdXNo
KCJCZWZvcmUgc2NyaXB0LWFjY2Vzc2libGUgZGVsZXRpb246IFJlZ3VsYXIgc2VydmVyLXNpZGUg
Y29va2llIGV4aXN0cy4iKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgY2FzZSBjbGllbnRTaWRlQ29va2llTmFtZToKKyAgICAgICAgICAgICAgICAgICAgaWYg
KGlzQWZ0ZXJTY3JpcHRBY2Nlc3NpYmxlRGVsZXRpb24pCisgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJBZnRlciBzY3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogIENsaWVudC1z
aWRlIGNvb2tpZSBleGlzdHMuIik7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc29ydGVkVGVzdFBhc3NlZE1lc3NhZ2VzLnB1c2goIkJlZm9yZSBz
Y3JpcHQtYWNjZXNzaWJsZSBkZWxldGlvbjogQ2xpZW50LXNpZGUgY29va2llIGV4aXN0cy4iKTsK
KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICAgICAgbGV0IHNvcnRlZFRlc3RQYXNzZWRNZXNzYWdlcyA9IHVuc29ydGVkVGVzdFBhc3NlZE1l
c3NhZ2VzLnNvcnQoc29ydFN0cmluZ0FycmF5KTsKKyAgICAgICAgZm9yIChsZXQgdGVzdFBhc3Nl
ZE1lc3NhZ2Ugb2Ygc29ydGVkVGVzdFBhc3NlZE1lc3NhZ2VzKQorICAgICAgICAgICAgdGVzdFBh
c3NlZCh0ZXN0UGFzc2VkTWVzc2FnZSk7CisgICAgfQorCisgICAgYXN5bmMgZnVuY3Rpb24gcnVu
VGVzdCgpIHsKKyAgICAgICAgaWYgKCF0ZXN0UnVubmVyIHx8ICFpbnRlcm5hbHMpIHsKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIk5vIHRlc3RSdW5uZXIgb3Igbm8gaW50ZXJuYWxzLiIpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQ
RGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIGF3YWl0IGZldGNoKCIvY29va2llcy9yZXNvdXJjZXMv
c2V0LWh0dHAtb25seS1jb29raWUucGhwP2Nvb2tpZU5hbWU9IiArIGh0dHBPbmx5Q29va2llTmFt
ZSwgeyBjcmVkZW50aWFsczogInNhbWUtb3JpZ2luIiB9KTsKKyAgICAgICAgYXdhaXQgZmV0Y2go
Ii9jb29raWVzL3Jlc291cmNlcy9zZXRDb29raWVzLmNnaSIsIHsgaGVhZGVyczogeyAiU2V0LUNv
b2tpZSI6IHNlcnZlclNpZGVDb29raWVOYW1lICsgIj0xOyBwYXRoPS87IiB9LCBjcmVkZW50aWFs
czogInNhbWUtb3JpZ2luIiB9KTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gY2xpZW50U2lk
ZUNvb2tpZU5hbWUgKyAiPTEiOworICAgICAgICBjaGVja0Nvb2tpZXMoZmFsc2UpOworICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NEZWxldGVDb29raWVzRm9ySG9zdCgiaHR0cDovLzEyNy4w
LjAuMSIsIGZhbHNlKTsKKyAgICAgICAgY2hlY2tDb29raWVzKHRydWUpOworICAgICAgICB0ZXN0
UnVubmVyLnN0YXRpc3RpY3NEZWxldGVDb29raWVzRm9ySG9zdCgiaHR0cDovLzEyNy4wLjAuMSIs
IHRydWUpOworICAgICAgICBsZXQgY29va2llc0xlZnQgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygp
Lmxlbmd0aDsKKyAgICAgICAgaWYgKGNvb2tpZXNMZWZ0ID09PSAwKQorICAgICAgICAgICAgdGVz
dFBhc3NlZCgiQWZ0ZXIgZnVsbCBkZWxldGlvbjogICAgICAgICAgICAgICBBbGwgY29va2llcyBh
cmUgZ29uZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiQWZ0ZXIg
ZnVsbCBkZWxldGlvbjogICAgICAgICAgICAgICIgKyBjb29raWVzTGVmdCArICIgY29va2llKHMp
IGxlZnQuIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRpcmVj
dC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNzQzMDYxZmYxMTlmYWQzZjU5N2Rj
MTVhZTA0YjRiOGM2OTM3OTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdh
dGlvbi1yZWRpcmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorUEFTU0VE
OiBDb29raWUgc3VjY2Vzc2Z1bGx5IHNldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdh
dGlvbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1ibG9jay10b3AtbGV2ZWwtbmF2aWdhdGlvbi1yZWRp
cmVjdC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyMTllM2Q2ODkzMmJmZjE4YzVhMDFjNTY4
NGM0NGYzNzE2ZmRlODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9u
LXJlZGlyZWN0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
KyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBibG9ja2luZyBpcyBub3QgYXBwbGllZCB0byB0
b3AtbGV2ZWwgbmF2aWdhdGlvbiByZWRpcmVjdHMuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1
ZSk7CisKKyAgICBmdW5jdGlvbiBkb1JlZGlyZWN0KCkKKyAgICB7CisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1
ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlLCBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKCJodHRwOi8vbG9jYWxob3N0IikpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAg
ICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlv
bi5ocmVmID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jl
c291cmNlcy9zZXQtY29va2llLW9uLXJlZGlyZWN0LnBocD9zdGVwPTEiOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJzZXRUaW1lb3V0KCdkb1JlZGlyZWN0KCknLCAwKSI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8t
bm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZG8tbm90LWNhcHR1cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9u
cy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDY5YzkxY2FlNmVhYTNiZGNjODQ2
MGM2MzM3YjAyZjdkNjRmMjRmZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtY2FwdHVyZS1zdGF0aXN0aWNzLWZv
ci1zaW1wbGUtdG9wLW5hdmlnYXRpb25zLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDExIEBACitUZXN0IHRoYXQgYSBub24tcmVkaXJlY3RlZCB0b3AgZnJhbWUgbmF2aWdhdGlvbiBk
b2Vzbid0IGdldCBjYXB0dXJlZCBpbiBzdGF0aXN0aWNzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZy
YW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIGZhbHNl
CitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigi
aHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgZmFsc2UKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LWNhcHR1
cmUtc3RhdGlzdGljcy1mb3Itc2ltcGxlLXRvcC1uYXZpZ2F0aW9ucy1kYXRhYmFzZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1jYXB0
dXJlLXN0YXRpc3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2aWdhdGlvbnMtZGF0YWJhc2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iODA5MzVhMjM3MGVkYmQ3NjkyNTEzMTliYWM5NDRmNzI4YmM3NmU2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2RvLW5vdC1jYXB0dXJlLXN0YXRpc3RpY3MtZm9yLXNpbXBsZS10b3AtbmF2aWdhdGlvbnMt
ZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDQ5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxh
bmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBhIG5vbi1yZWRpcmVjdGVkIHRvcCBm
cmFtZSBuYXZpZ2F0aW9uIGRvZXNuJ3QgZ2V0IGNhcHR1cmVkIGluIHN0YXRpc3RpY3MuIik7Cisg
ICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFz
ZSh0cnVlKTsKKyAgICBsZXQgdGltZXJIYW5kbGUgPSAwOworCisgICAgZnVuY3Rpb24gZmluaXNo
VGVzdCgpIHsKKyAgICAgICAgaWYgKHRpbWVySGFuZGxlKQorICAgICAgICAgIGNsZWFyVGltZW91
dCh0aW1lckhhbmRsZSk7CisKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgndGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0
dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICBzaG91bGRCZUZhbHNlKCd0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly8xMjcuMC4wLjEiLCAi
aHR0cDovL2xvY2FsaG9zdCIpJyk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAg
c3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0KSB7CisgICAgICAgICAgICBjYXNlICIxMjcu
MC4wLjE6ODAwMCI6CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IHdhcyBjbGFzc2lmaWVkIGFzIHByZXZh
bGVudCByZXNvdXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAgICAgICAgICAg
ICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1jYXB0dXJlLXN0YXRpc3RpY3MtZm9yLXNpbXBsZS10
b3AtbmF2aWdhdGlvbnMuaHRtbCI7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICJsb2NhbGhvc3Q6ODAwMCI6CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNX
ZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0
aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soZmluaXNoVGVzdCk7CisgICAgICAgICAg
ICAgICAgaWYgKCF0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpKQorICAgICAg
ICAgICAgICAgICAgICB0aW1lckhhbmRsZSA9IHNldFRpbWVvdXQoZmluaXNoVGVzdCwgMTAwKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiVW5rbm93biBob3N0OiAiICsgZG9jdW1lbnQubG9jYXRpb24uaG9z
dCk7CisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisgICAgfQorCisg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHJ1
blRlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxv
Y2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxvY2tpbmctaW4t
cmVkaXJlY3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhZDdkOWU1MDA3NmI2
ZDE2YmJjMjZhNTA0NmU5OTY5NmQ2ZTA3NjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2lu
Zy1pbi1yZWRpcmVjdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1MSBAQAorVGVz
dHMgdGhhdCBibG9ja2luZyBpcyBub3QgcmVtb3ZlZCBtaWQtZmxpZ2h0IGluIHJlZGlyZWN0cy4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZy
YW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUgZm9y
IGxvY2FsaG9zdC4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29r
aWVJUCcuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWVMb2NhbGhvc3Qn
LgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGll
bnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWVMb2NhbGhvc3Q9bG9jYWxo
b3N0CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTItLT4nCistLS0tLS0tLQorUmVkaXJl
Y3QgY2FzZSAxLCBzaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIDEyNy4wLjAu
MS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZUlQJy4KK0RpZCBub3Qg
cmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWVMb2NhbGhvc3QnLgorRGlkIG5v
dCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBk
b2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29raWVJUD0xMjcuMC4wLjEKKworLS0tLS0tLS0K
K0ZyYW1lOiAnPCEtLWZyYW1lMy0tPicKKy0tLS0tLS0tCitUcnkgdG8gc2V0IHRoaXJkLXBhcnR5
IGNvb2tpZSBmb3IgbG9jYWxob3N0IGluIGJsb2NrZWQgbW9kZS4KKworCistLS0tLS0tLQorRnJh
bWU6ICc8IS0tZnJhbWU0LS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIG5vIGNvb2tpZS4K
K0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWVJUCcuCitEaWQg
bm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llTG9jYWxob3N0Jy4KK0Rp
ZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3RoaXJkUGFydHlDb29raWUnLgorQ2xpZW50LXNp
ZGUgZG9jdW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWU1LS0+Jwor
LS0tLS0tLS0KK1JlZGlyZWN0IGNhc2UgMiwgc2hvdWxkIG5vdCByZWNlaXZlIGZpcnN0LXBhcnR5
IGNvb2tpZSBmb3IgMTI3LjAuMC4xLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmly
c3RQYXJ0eUNvb2tpZUlQJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFy
dHlDb29raWVMb2NhbGhvc3QnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAndGhpcmRQ
YXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFydHlDb29r
aWVJUD0xMjcuMC4wLjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9kby1ub3QtcmVtb3ZlLWJsb2NraW5nLWluLXJlZGlyZWN0LWRhdGFi
YXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
ZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjM2ZDMwYWFkZWY0NTc3Yjg1MjQyM2M2YTIzNmYzYWEzNzE5ZjEwMmQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8t
bm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEs
MTAwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxt
ZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24o
IlRlc3RzIHRoYXQgYmxvY2tpbmcgaXMgbm90IHJlbW92ZWQgbWlkLWZsaWdodCBpbiByZWRpcmVj
dHMuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBwYXJ0aXRpb25I
b3N0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgcmVzb3VyY2VQYXRoID0gIi9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwg
PSB0aGlyZFBhcnR5T3JpZ2luICsgcmVzb3VyY2VQYXRoOworICAgIGNvbnN0IGZpcnN0UGFydHlD
b29raWVOYW1lUHJlZml4ID0gImZpcnN0UGFydHlDb29raWUiOworICAgIGNvbnN0IGZpcnN0UGFy
dHlDb29raWVOYW1lSVAgPSBmaXJzdFBhcnR5Q29va2llTmFtZVByZWZpeCArICJJUCI7CisgICAg
Y29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWVMb2NhbGhvc3QgPSBmaXJzdFBhcnR5Q29va2llTmFt
ZVByZWZpeCArICJMb2NhbGhvc3QiOworICAgIGNvbnN0IHRoaXJkUGFydHlDb29raWVOYW1lID0g
InRoaXJkUGFydHlDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldFRoaXJkUGFydHlDb29r
aWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIHRoaXJkUGFydHlDb29raWVOYW1lICsgIiZ2
YWx1ZT12YWx1ZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0LWNvb2tp
ZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZUlQICsgIiZuYW1lMj0iICsgZmly
c3RQYXJ0eUNvb2tpZU5hbWVMb2NhbGhvc3QgKyAiJm5hbWUzPSIgKyB0aGlyZFBhcnR5Q29va2ll
TmFtZTsKKyAgICBjb25zdCByZWRpcmVjdENoYWluVXJsID0gdGhpcmRQYXJ0eU9yaWdpbiArIHJl
c291cmNlUGF0aCArICIvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89aHR0cDovLyIgKyBwYXJ0aXRp
b25Ib3N0ICsgcmVzb3VyY2VQYXRoICsgc3ViUGF0aFRvR2V0Q29va2llczsKKworICAgIGZ1bmN0
aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5z
cmMgPSB1cmw7CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVt
ZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0
KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAg
ICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgLy8gU2V0IGZpcnN0LXBhcnR5IGNv
b2tpZXMgZm9yIDEyNy4wLjAuMSBhbmQgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGlmIChk
b2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHRoaXJkUGFydHlPcmlnaW4pIHsKKyAgICAgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gZmlyc3RQYXJ0eUNvb2tpZU5hbWVMb2NhbGhv
c3QgKyAiPWxvY2FsaG9zdDtwYXRoPScvJyI7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZG8tbm90LXJlbW92ZS1ibG9ja2luZy1pbi1yZWRpcmVjdC1kYXRhYmFzZS5odG1sI3N0
ZXAyIjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBkb2N1
bWVudC5jb29raWUgPSBmaXJzdFBhcnR5Q29va2llTmFtZUlQICsgIj0xMjcuMC4wLjE7cGF0aD0n
LyciOworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1yZW1vdmUtYmxv
Y2tpbmctaW4tcmVkaXJlY3QtZGF0YWJhc2UuaHRtbCNzdGVwMSI7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAg
ICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBjb29raWUgZ2V0cyBzZW50IGZvciBsb2Nh
bGhvc3QgdW5kZXIgMTI3LjAuMC4xIHNpbmNlIGxvY2FsaG9zdCBpcyBub3QgcHJldmFsZW50Lgor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAg
ICAgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29r
aWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9j
YWxob3N0LiIsIHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSAiI3N0ZXAzIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0g
InN0ZXA0IjsKKyAgICAgICAgICAgICAgICAvLyBMb2FkIGFuIGlmcmFtZSBpbiBhIHJlZGlyZWN0
IGNoYWluIHRoYXQgc3RhcnRzIHdpdGggbG9jYWxob3N0IGFuZCBlbmRzIHdpdGggMTI3LjAuMC4x
LiBFeHBlY3QgYSBjb29raWUgZm9yIDEyNy4wLjAuMS4KKyAgICAgICAgICAgICAgICBvcGVuSWZy
YW1lKHJlZGlyZWN0Q2hhaW5VcmwgKyAiJm1lc3NhZ2U9UmVkaXJlY3QgY2FzZSAxLCBzaG91bGQg
cmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIDEyNy4wLjAuMS4iLCBydW5UZXN0KTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAg
ICAgICAgICAgLy8gU2V0IGxvY2FsaG9zdCBhcyBwcmV2YWxlbnQgdG8gcHV0IGl0IGluIHRoZSBi
bG9ja2luZyBjYXRlZ29yeS4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNo
ID0gInN0ZXA1IjsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhy
dW5UZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgIiNzdGVwNSI6CisgICAgICAgICAgICAgICAgLy8gVHJ5IHRvIHNldCBw
YXJ0aXRpb25lZCBjb29raWUgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEuCisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNiI7CisgICAgICAgICAgICAg
ICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldFRoaXJkUGFydHlD
b29raWUgKyAiJm1lc3NhZ2U9VHJ5IHRvIHNldCB0aGlyZC1wYXJ0eSBjb29raWUgZm9yIGxvY2Fs
aG9zdCBpbiBibG9ja2VkIG1vZGUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlICIjc3RlcDYiOgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRo
YXQgbm8gY29va2llIGdldHMgc2VudCBmb3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMSBzaW5j
ZSBsb2NhbGhvc3QncyBjb29raWVzIGFyZSBibG9ja2VkLgorICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDciOworICAgICAgICAgICAgICAgIG9wZW5JZnJhbWUo
dGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgICImbWVzc2FnZT1TaG91
bGQgcmVjZWl2ZSBubyBjb29raWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlICIjc3RlcDciOgorICAgICAgICAgICAgICAgIC8vIExvYWQgYW4g
aWZyYW1lIGluIGEgcmVkaXJlY3QgY2hhaW4gdGhhdCBzdGFydHMgd2l0aCBsb2NhbGhvc3QgYW5k
IGVuZHMgd2l0aCAxMjcuMC4wLjEuIEV4cGVjdCBhIGNvb2tpZSBmb3IgMTI3LjAuMC4xLgorICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDgiOworICAgICAgICAg
ICAgICAgIG9wZW5JZnJhbWUocmVkaXJlY3RDaGFpblVybCArICImbWVzc2FnZT1SZWRpcmVjdCBj
YXNlIDIsIHNob3VsZCBub3QgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIDEyNy4wLjAu
MS4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
IiNzdGVwOCI6CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNo
SlNUZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAg
IGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIikgeworICAgICAgICB0ZXN0UnVubmVy
LnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiTG9jYWxob3N0IHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZSBiZWZv
cmUgdGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRG
cmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3Rl
cDEiOworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBydW5UZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
ZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGhvdXQt
aW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0
aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kMDVkYzA5YjY5NjM5ZjFkOTBjNmMzN2MyMmVkMWI5NmY4NjFjNDQ5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2RvLW5vdC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13
aXRob3V0LWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBA
CitUZXN0cyB0aGF0IHRoZSBzZXNzaW9uIGlzIG5vdCBzd2l0Y2hlZCB1cG9uIHRvcCBmcmFtZSBu
YXZpZ2F0aW9uIHRvIGEgcHJldmFsZW50IHJlc291cmNlIHdpdGhvdXQgdXNlciBpbnRlcmFjdGlv
bi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgU2hvdWxkIGhhdmUgYW5k
IGhhcyB0aGUgc2Vzc2lvbiBjb29raWUuCitQQVNTIFNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHBl
cnNpc3RlbnQgY29va2llLgorUEFTUyBPcmlnaW4gaGFzIG5vIGlzb2xhdGVkIHNlc3Npb24uCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5v
dC1zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWludGVy
YWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFs
ZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YWJmZGI5
YzQyYmUyMGE3Mzk2NjIyNDRlZWQ0ZDczNjQ4ZjVjMGQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0Y2gt
c2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9uLWRh
dGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFu
Zz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQg
c3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdGhl
IHNlc3Npb24gaXMgbm90IHN3aXRjaGVkIHVwb24gdG9wIGZyYW1lIG5hdmlnYXRpb24gdG8gYSBw
cmV2YWxlbnQgcmVzb3VyY2Ugd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLiIpOworICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgcHJldmFsZW50T3JpZ2luID0gImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgbm9uUHJldmFsZW50T3JpZ2luID0gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3Qgc2Vzc2lvbkNvb2tpZU5hbWUgPSAic2Vzc2lvbkNv
b2tpZSI7CisgICAgY29uc3QgcGVyc2lzdGVudENvb2tpZU5hbWUgPSAicGVyc2lzdGVudENvb2tp
ZSI7CisgICAgY29uc3QgdHdvTWludXRlc0luU2Vjb25kcyA9IDEyMDsKKworICAgIGZ1bmN0aW9u
IHNldFNlc3Npb25Db29raWUoKSB7CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNlc3Npb25D
b29raWVOYW1lICsgIj0xOyBwYXRoPS8iOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNldFBlcnNp
c3RlbnRDb29raWUoKSB7CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHBlcnNpc3RlbnRDb29r
aWVOYW1lICsgIj0xOyBwYXRoPS87IE1heC1BZ2U9IiArIHR3b01pbnV0ZXNJblNlY29uZHMgKyAi
OyI7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2hlY2tDb29raWVzKHNob3VsZEhhdmVTZXNzaW9u
Q29va2llLCBzaG91bGRIYXZlUGVyc2lzdGVudENvb2tpZSkgeworICAgICAgICBsZXQgaGFzU2Vz
c2lvbkNvb2tpZSA9IChkb2N1bWVudC5jb29raWUgKyAiIikuaW5jbHVkZXMoc2Vzc2lvbkNvb2tp
ZU5hbWUpLAorICAgICAgICAgICAgaGFzUGVyc2lzdGVudENvb2tpZSA9IChkb2N1bWVudC5jb29r
aWUgKyAiIikuaW5jbHVkZXMocGVyc2lzdGVudENvb2tpZU5hbWUpOworCisgICAgICAgIGlmIChz
aG91bGRIYXZlU2Vzc2lvbkNvb2tpZSAmJiBoYXNTZXNzaW9uQ29va2llKQorICAgICAgICAgICAg
dGVzdFBhc3NlZCgiU2hvdWxkIGhhdmUgYW5kIGhhcyB0aGUgc2Vzc2lvbiBjb29raWUuIik7Cisg
ICAgICAgIGVsc2UgaWYgKHNob3VsZEhhdmVTZXNzaW9uQ29va2llICYmICFoYXNTZXNzaW9uQ29v
a2llKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTaG91bGQgaGF2ZSBidXQgZG9lc24ndCBo
YXZlIHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0gZWxzZSBpZiAoIXNob3VsZEhhdmVTZXNz
aW9uQ29va2llICYmIGhhc1Nlc3Npb25Db29raWUpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
IlNob3VsZG4ndCBoYXZlIGJ1dCBoYXMgdGhlIHNlc3Npb24gY29va2llLiIpOworICAgICAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91bGRuJ3QgaGF2ZSBhbmQgZG9lc24ndCBoYXZl
IHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKKworCisgICAgICAgIGlmIChzaG91bGRIYXZlUGVyc2lz
dGVudENvb2tpZSAmJiBoYXNQZXJzaXN0ZW50Q29va2llKQorICAgICAgICAgICAgdGVzdFBhc3Nl
ZCgiU2hvdWxkIGhhdmUgYW5kIGhhcyB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgICAg
IGVsc2UgaWYgKHNob3VsZEhhdmVQZXJzaXN0ZW50Q29va2llICYmICFoYXNQZXJzaXN0ZW50Q29v
a2llKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJTaG91bGQgaGF2ZSBidXQgZG9lc24ndCBo
YXZlIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0gZWxzZSBpZiAoIXNob3VsZEhhdmVQ
ZXJzaXN0ZW50Q29va2llICYmIGhhc1BlcnNpc3RlbnRDb29raWUpIHsKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoIlNob3VsZG4ndCBoYXZlIGJ1dCBoYXMgdGhlIHBlcnNpc3RlbnQgY29va2llLiIp
OworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTaG91bGRuJ3QgaGF2ZSBhbmQg
ZG9lc24ndCBoYXZlIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gp
IHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgc2V0U2Vzc2lv
bkNvb2tpZSgpOworICAgICAgICAgICAgICAgIHNldFBlcnNpc3RlbnRDb29raWUoKTsKKyAgICAg
ICAgICAgICAgICBjaGVja0Nvb2tpZXModHJ1ZSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaGFzU3RhdGlzdGljc0lzb2xhdGVkU2Vzc2lvbihwcmV2YWxlbnRPcmlnaW4p
KSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk9yaWdpbiBoYXMgaXNvbGF0ZWQg
c2Vzc2lvbi4iKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiT3JpZ2luIGhhcyBubyBpc29sYXRlZCBzZXNzaW9uLiIpOworICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBub25QcmV2YWxlbnRPcmlnaW4gKyAi
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG8tbm90LXN3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRp
b24tdG8tcHJldmFsZW50LXdpdGhvdXQtaW50ZXJhY3Rpb24uaHRtbCNzdGVwMiI7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAgICAgICAgICAgIGlm
IChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gIT09IG5vblByZXZhbGVudE9yaWdpbikKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiU3RlcCAyIGlzIG5vdCBvbiAiICsgbm9uUHJldmFs
ZW50T3JpZ2luICsgIi4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2UocHJldmFsZW50T3JpZ2luKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZChwcmV2YWxlbnRPcmlnaW4gKyAiIGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3Qp
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSAiI3N0ZXAzIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVm
ID0gcHJldmFsZW50T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvLW5vdC1zd2l0
Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRob3V0LWludGVyYWN0aW9u
Lmh0bWwjc3RlcDQiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAi
I3N0ZXA0IjoKKyAgICAgICAgICAgICAgICBjaGVja0Nvb2tpZXModHJ1ZSwgdHJ1ZSk7CisgICAg
ICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaGFzU3RhdGlzdGljc0lzb2xhdGVkU2Vzc2lvbihw
cmV2YWxlbnRPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPcmlnaW4g
aGFzIGlzb2xhdGVkIHNlc3Npb24uIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJPcmlnaW4gaGFzIG5vIGlzb2xhdGVkIHNlc3Npb24uIik7
CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiVW5rbm93biBoYXNoLiIpOworICAgICAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIpIHsKKyAgICAgICAgaWYgKGRvY3Vt
ZW50LmxvY2F0aW9uLm9yaWdpbiAhPT0gcHJldmFsZW50T3JpZ2luKQorICAgICAgICAgICAgdGVz
dEZhaWxlZCgiVGVzdCBpcyBub3Qgc3RhcnRpbmcgb3V0IG9uICIgKyBwcmV2YWxlbnRPcmlnaW4g
KyAiLiIpOworICAgICAgICAgICAgCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERh
dGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHByZXZhbGVudE9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChwcmV2YWxl
bnRPcmlnaW4gKyAiIHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZSBiZWZvcmUg
dGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9
ICJzdGVwMSI7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZy
b20tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZv
ci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRh
YmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGZiYTgxMDM1ZTJmZWNiYTEzOTRkMDFkZjJl
OWJlMjA2OTVlODVhNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9u
LXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMCBAQAorQ2hlY2sgdGhhdCBkb2N1bWVudC5yZWZlcnJlciBpcyBk
b3duZ3JhZGVkIHRvIHRoZSBlVExEKzEgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0
aCBsaW5rIHF1ZXJ5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUg
cmVmZXJyZXIgaXMgZG93bmdyYWRlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13
aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJl
ZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNv
dXJjZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhZWJkZTk1YmU4YTA1MmFmZjM2NzljMDY4
ODVhZTE3MDJlMWQ3NTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlv
bi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZGF0YWJhc2UuaHRtbApA
QCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iL2Nvb2tpZXMvcmVzb3VyY2VzL2Nvb2tpZS11dGlsaXRpZXMuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1blRlc3QoKScsIDApIj4KKzxzY3JpcHQ+
CisgICAgZGVzY3JpcHRpb24oIkNoZWNrIHRoYXQgZG9jdW1lbnQucmVmZXJyZXIgaXMgZG93bmdy
YWRlZCB0byB0aGUgZVRMRCsxIGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGlu
ayBxdWVyeS4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGxldCBudW1iZXJP
ZlRyaWVzID0gMDsKKyAgICBmdW5jdGlvbiB0ZXN0UmVmZXJyZXIoKSB7CisgICAgICAgIGlmIChk
b2N1bWVudC5yZWZlcnJlciA9PT0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gKyAiLyIpIHsKKyAg
ICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSByZWZlcnJlciBpcyBkb3duZ3JhZGVkLiIpOworICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAg
fSBlbHNlIGlmICgrK251bWJlck9mVHJpZXMgPD0gNSkKKyAgICAgICAgICAgIHNldFRpbWVvdXQo
dGVzdFJlZmVycmVyLCAyMDApOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoIlRoZSByZWZlcnJlciBpcyBub3QgZG93bmdyYWRlZDogIiArIGRvY3VtZW50LnJlZmVycmVy
KTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBuYXZpZ2F0ZVNhbWVPcmlnaW5Ub0FkZFF1
ZXJ5KCkgeworICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gcHJldmFsZW50UmVzb3Vy
Y2VPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1m
b3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRt
bD9saW5rPXF1ZXJ5IjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBuYXZpZ2F0ZUNyb3NzT3JpZ2lu
KCkgeworICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gZGVzdGluYXRpb25PcmlnaW4g
KyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdh
dGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbCI7CisgICAg
fQorCisgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
IjsKKyAgICBjb25zdCBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5s
b2NhdGlvbi5vcmlnaW4gPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luICYmIGRvY3VtZW50Lmxv
Y2F0aW9uLnNlYXJjaCA9PT0gIiIpIHsKKyAgICAgICAgICAgIG5hdmlnYXRlU2FtZU9yaWdpblRv
QWRkUXVlcnkoKTsKKyAgICAgICAgfSBlbHNlIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4g
PT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVl
LCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4sIHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4pKQorICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJl
c291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRh
dGVDb29raWVCbG9ja2luZyhuYXZpZ2F0ZUNyb3NzT3JpZ2luKTsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdFJl
ZmVycmVyKCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9lbmFibGUtZGVidWctbW9kZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5hYmxlLWRlYnVnLW1vZGUtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1MjE5ZGQzYjExZjJhMzRjNDU3NTM0MGU3Mzhk
YWRjZmEwY2NmY2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZW5hYmxlLWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgZm9yIGVuYWJsaW5nIGRlYnVnIG1vZGUgYW5kIHRo
YXQgaXQgcGVybWFuZW50bHkgdHJlYXRzIDNyZHBhcnR5dGVzdHdlYmtpdC5vcmcgYXMgYSBwcmV2
YWxlbnQgcmVzb3VyY2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGh0
dHA6Ly8zcmRwYXJ0eXRlc3R3ZWJraXQub3JnIGdvdCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
IGluIGRlYnVnIG1vZGUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZW5hYmxlLWRlYnVnLW1vZGUtZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzdmZjkyMjU2N2Y5YTQ3MjgyNzNkZmE0NzMyNjM3YTQ4
NWNiOWY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2VuYWJsZS1kZWJ1Zy1tb2RlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCAr
MSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8
bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9u
KCJUZXN0IGZvciBlbmFibGluZyBkZWJ1ZyBtb2RlIGFuZCB0aGF0IGl0IHBlcm1hbmVudGx5IHRy
ZWF0cyAzcmRwYXJ0eXRlc3R3ZWJraXQub3JnIGFzIGEgcHJldmFsZW50IHJlc291cmNlLiIpOwor
ICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9
ICJodHRwOi8vM3JkcGFydHl0ZXN0d2Via2l0Lm9yZyI7CisKKyAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCh0aGly
ZFBhcnR5T3JpZ2luICsgIiBhbHJlYWR5IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0RlYnVnTW9kZSh0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQodGhpcmRQYXJ0eU9yaWdpbiArICIgZGlkbid0IGdldCBzZXQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
dGVzdFBhc3NlZCh0aGlyZFBhcnR5T3JpZ2luICsgIiBnb3Qgc2V0IGFzIHByZXZhbGVudCByZXNv
dXJjZSBpbiBkZWJ1ZyBtb2RlLiIpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc0RlYnVnTW9kZShmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5n
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTgwM2JmY2I1M2IxNDA0OWQ1ZTFk
YWFlNWIyNWI2MjdmYWNlNWE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorUEFTUyBHcmFuZGZhdGhlcmVkIGNvb2tpZSB3YXMgbm90IHB1cmdl
ZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmctZGF0YWJhc2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hYWYwYjg1N2YyZThjMDc0MWE1YTVjYzg0YTc4OTg3ZDNjNWM4NWY0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2dyYW5kZmF0aGVyaW5nLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMTYgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0i
VVRGLTgiPgorICAgIDx0aXRsZT5UZXN0IGZvciBHcmFuZGZhdGhlcmluZzwvdGl0bGU+CisgICAg
PHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGZpcnN0UGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5QmFzZVVybCA9IGZpcnN0UGFydHlPcmln
aW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCBmaXJz
dFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBjb25zdCB0aGlyZFBh
cnR5Q29va2llTmFtZSA9ICJ0aGlyZFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBjb29raWVWYWx1
ZSA9ICJ2YWx1ZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSA9ICIv
c2V0LWNvb2tpZS5waHA/bmFtZT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPSIg
KyBjb29raWVWYWx1ZTsKKyAgICBjb25zdCByZXR1cm5VcmwgPSBmaXJzdFBhcnR5T3JpZ2luICsg
Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLmh0bWwiOworICAgIGNvbnN0
IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCB0
aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRUaGlyZFBhcnR5Q29va2ll
ID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyB0aGlyZFBhcnR5Q29va2llTmFtZSArICImdmFs
dWU9IiArIGNvb2tpZVZhbHVlOworCisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZShmYWxzZSk7CisgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGZpcmVEYXRhTW9k
aWZpY2F0aW9uSGFuZGxlckFuZENvbnRpbnVlKCkgeworICAgICAgICB0ZXN0UnVubmVyLmluc3Rh
bGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gY2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZUFuZENvbnRpbnVlKCkgeworICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3Jl
KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAg
ICAgLy8gU2V0IGEgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3QuCisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGZpcnN0UGFydHlCYXNlVXJsICsgc3ViUGF0
aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIHJldHVyblVybCArICIjc3RlcDIiOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAg
ICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAg
ICAvLyBDaGVjayB0aGF0IGxvY2FsaG9zdCdzIGNvb2tpZSBpcyB0aGVyZS4KKyAgICAgICAgICAg
ICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSBmaXJzdFBhcnR5Q29va2llTmFtZSArICI9IiAr
IGNvb2tpZVZhbHVlKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJGaXJzdC1wYXJ0
eSBjb29raWUgbm90IHNldC4iKTsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDQiOworICAgICAgICAgICAgICAgIC8v
IENsZWFyIHN0b3JlIHRvIHRyaWdnZXIgZ3JhbmRmYXRoZXJpbmcuCisgICAgICAgICAgICAgICAg
Y2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZUFuZENvbnRpbnVlKCk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAg
IGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAgICAgICAgICAgIC8vIFNl
dCBsb2NhbGhvc3QgYXMgcHJldmFsZW50IHJlc291cmNlLgorICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0Iiwg
dHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IGRpZCBub3QgZ2V0IHNldCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwNSI6CisgICAgICAgICAgICAgICAgLy8gU2V0IGEgZmlyc3QtcGFydHkgY29v
a2llIGZvciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJl
ZiA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0VGhpcmRQYXJ0eUNvb2tpZSArICIj
IiArIHJldHVyblVybCArICIjc3RlcDYiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSAiI3N0ZXA2IjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5o
YXNoID0gInN0ZXA3IjsKKyAgICAgICAgICAgICAgICAvLyBTZXQgMTI3LjAuMC4xIGFzIHByZXZh
bGVudCByZXNvdXJjZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKCJodHRwOi8vMTI3LjAuMC4xIiwgdHJ1ZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZSgiaHR0cDovLzEyNy4wLjAuMSIpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiMTI3LjAuMC4xIGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2Uu
Iik7CisgICAgICAgICAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNyI6CisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwOCI7CisgICAgICAgICAg
ICAgICAgLy8gVHJpZ2dlciBhIHB1cmdlLgorICAgICAgICAgICAgICAgIGZpcmVEYXRhTW9kaWZp
Y2F0aW9uSGFuZGxlckFuZENvbnRpbnVlKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlICIjc3RlcDgiOgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgbG9j
YWxob3N0J3MgY29va2llIGlzIHN0aWxsIHRoZXJlLgorICAgICAgICAgICAgICAgIGlmIChkb2N1
bWVudC5jb29raWUgIT09IGZpcnN0UGFydHlDb29raWVOYW1lICsgIj0iICsgY29va2llVmFsdWUp
CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkZpcnN0LXBhcnR5IGNvb2tpZSBwdXJn
ZWQuIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJHcmFuZGZhdGhlcmVkIGNvb2tpZSB3YXMgbm90IHB1cmdlZC4iKTsKKyAgICAgICAgICAg
ICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNob3VsZCBub3QgYmUgcmVhY2hl
ZC4iKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIgJiYgd2luZG93LnRlc3RSdW5u
ZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERh
dGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNv
dXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDAp
OworCisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAg
ICAgfSk7CisgICAgfSBlbHNlCisgICAgICAgIHJ1blRlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2xvZy1jcm9zcy1zaXRlLWxvYWQtd2l0aC1saW5rLWRlY29yYXRpb24uaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9sb2ctY3Jv
c3Mtc2l0ZS1sb2FkLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0bWwKaW5kZXggYzZjYjBkYmEwNTZj
MTkxYWI5NGVhYjM3YjNkZjEzZTJjYjllOGYxOS4uZmNjODJjNTY1NjgyOGRmMDVhY2JjMjNhYjgw
ZWUwNjRiYTBhNzhmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2xvZy1jcm9zcy1zaXRlLWxvYWQtd2l0aC1saW5rLWRlY29yYXRpb24u
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bG9nLWNyb3NzLXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sCkBAIC04LDYgKzgs
NyBAQAogPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KIDxzY3JpcHQ+CiAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UoZmFsc2Up
OwogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2Vy
LWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNl
ci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg5Zjg1NWE3
ODljZjEwYmYzMzBmNGM5MmVhMTJiOTQxYWJlZmMwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJl
c291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKK1BBU1MgQ29va2llIG5vdCBkZWxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13
aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNl
ci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5N2U4MGZkNjY0ZWUxZWE4
MDM4ZDllODcyYzczOTU3MjkwZjUxMWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13
aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY1IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9
IlVURi04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIE5vbi1QcmV2YWxlbnQgUmVzb3VyY2UgV2l0
aCBVc2VyIEludGVyYWN0aW9uPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgY29uc3Qg
aG9zdFVuZGVyVGVzdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1Vy
bCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IG90aGVy
UHJldmFsZW50VXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC90ZW1wIjsKKworICAgIGZ1bmN0
aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9
PSAiIikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBub3QgZW1wdHku
Iik7CisgICAgICAgIGNvbnN0IGNvb2tpZSA9ICJ0ZXN0Q29va2llPXRlc3RWYWx1ZSI7CisgICAg
ICAgIGRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZSArICI7IG1heC1hZ2U9MTAwOyI7CisgICAgICAg
IGlmIChkb2N1bWVudC5jb29raWUgIT09IGNvb2tpZSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
ImRvY3VtZW50LmNvb2tpZSBkaWQgbm90IGdldCBzZXQuIik7CisKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBkaWQgbm90IGdldCBzZXQgYXMgbm9uLXByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAg
ICAgICAgICAgLy8gVGhpcyBpcyBkb25lIHRvIG5vdCBoYXZlIGFuIGVtcHR5IHNldCBvZiBwcmV2
YWxlbnQgcmVzb3VyY2VzLgorICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIGRhdGEgcmVjb3JkcyBh
cmUgbmV2ZXIgc2Nhbm5lZC4KKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uob3RoZXJQcmV2YWxlbnRVcmwpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJP
dGhlciBob3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rp
b24oc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlz
dGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKworICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJh
Y2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuY29v
a2llID09PSBjb29raWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgi
Q29va2llIG5vdCBkZWxldGVkLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBkZWxldGVkIG9yIGRv
Y3VtZW50LmNvb2tpZSBjb250YWlucyBvdGhlciBjb29raWVzOiAiICsgZG9jdW1lbnQuY29va2ll
KTsKKworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENs
YXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0
YVJlY29yZHNSZW1vdmFsKDApOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3Vt
ZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIg
JiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFi
YXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1
ZSk7CisgICAgICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdp
dGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJj
ZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmM4OWY4NTVhNzg5Y2YxMGJmMzMwZjRjOTJlYTEyYjk0MWFiZWZjMDcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCitQQVNTIENvb2tpZSBub3QgZGVsZXRlZC4KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2
YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVu
dC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42YmNlOTkwNDVmMGEzZWNjZGJhZDE4Nzg3ZWVkOGZmZjY2NTdmZjY1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
bi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0
bWwKQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8
aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBO
b24tUHJldmFsZW50IFJlc291cmNlIFdpdGhvdXQgVXNlciBJbnRlcmFjdGlvbjwvdGl0bGU+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgw
MDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0
ICsgIi90ZW1wIjsKKyAgICBjb25zdCBvdGhlclByZXZhbGVudFVybCA9ICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAvdGVtcCI7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAg
ICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJkb2N1bWVudC5jb29raWUgbm90IGVtcHR5LiIpOworICAgICAgICBjb25zdCBjb29raWUgPSAi
dGVzdENvb2tpZT10ZXN0VmFsdWUiOworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBjb29raWUg
KyAiOyBtYXgtYWdlPTEwMDsiOworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSBjb29r
aWUpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgZGlkIG5vdCBnZXQg
c2V0LiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIG5vbi1w
cmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgZG9uZSB0byBu
b3QgaGF2ZSBhbiBlbXB0eSBzZXQgb2YgcHJldmFsZW50IHJlc291cmNlcy4KKyAgICAgICAgICAg
IC8vIE90aGVyd2lzZSBkYXRhIHJlY29yZHMgYXJlIG5ldmVyIHNjYW5uZWQuCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShvdGhlclByZXZhbGVu
dFVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKG90aGVyUHJldmFsZW50VXJsKSkKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiT3RoZXIgaG9zdCBkaWQgbm90IGdldCBzZXQgYXMg
cHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
SGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGVhcmVkIG9mIHVzZXIgaW50ZXJh
Y3Rpb24uIik7CisKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlz
dGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSA9PT0gY29va2llKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkNvb2tpZSBub3QgZGVsZXRlZC4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJDb29raWUgZGVsZXRlZCBvciBkb2N1bWVudC5jb29raWUgY29udGFpbnMgb3RoZXIg
Y29va2llczogIiArIGRvY3VtZW50LmNvb2tpZSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNv
cmRzUmVtb3ZhbChmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRh
UmVjb3JkcygpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5k
ZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1do
ZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAgICAgICAgcnVuVGVzdFJ1bm5l
clRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQt
cGFydHktY29udGV4dC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFj
Y2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHktY29udGV4dC1kYXRhYmFzZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGZiOTdmOTFmY2QzM2NjOTc4OTc5Y2Q0OGE1NWE0OTQ3NGQyNzcxMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlcy1jYW4tYWNjZXNzLWNvb2tpZXMtaW4tYS10
aGlyZC1wYXJ0eS1jb250ZXh0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBA
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCist
LS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZl
IG9uZSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgor
Q2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXByZXZhbGVudC1yZXNvdXJjZXMtY2FuLWFjY2Vzcy1jb29raWVzLWluLWEtdGhpcmQtcGFydHkt
Y29udGV4dC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1p
bi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjRjZmNi
MWYzZTM3MjBmY2EyMjNjNDJkODc4YzI1YTk2NjIyOWJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQt
cmVzb3VyY2VzLWNhbi1hY2Nlc3MtY29va2llcy1pbi1hLXRoaXJkLXBhcnR5LWNvbnRleHQtZGF0
YWJhc2UuaHRtbApAQCAtMCwwICsxLDY0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9
ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8dGl0bGU+VGVz
dCB0byBlbnN1cmUgbm9uLXByZXZhbGVudCByZXNvdXJjZXMgY2FuIGFjY2VzcyB0aGVpciBjb29r
aWVzIGluIGEgdGhpcmQgcGFydHkgY29udGV4dDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9q
cy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgor
ICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRo
aXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCB0aGly
ZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBh
cnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9z
ZXQtY29va2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9dmFs
dWUiOworICAgIGNvbnN0IGZyYWdtZW50V2l0aFJldHVyblVybCA9ICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlcy1jYW4t
YWNjZXNzLWNvb2tpZXMtaW4tYS10aGlyZC1wYXJ0eS1jb250ZXh0Lmh0bWwiOworICAgIGNvbnN0
IHN1YlBhdGhUb0dldENvb2tpZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQ
YXJ0eUNvb2tpZU5hbWU7CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvcGVu
SWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJs
OworICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxv
YWQgPSBvbkxvYWRIYW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAg
ICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNl
ICIjc3RlcDEiOgorICAgICAgICAgICAgICAgIC8vIFNldCBhIGZpcnN0LXBhcnR5IGNvb2tpZSBm
b3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0
aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyBm
cmFnbWVudFdpdGhSZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgLy8gTG9hZCBsb2Nh
bGhvc3QgdW5kZXIgMTI3LjAuMC4xIGFuZCBjaGVjayB0aGF0IGl0IGdldHMgaXRzIGNvb2tpZS4K
KyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRv
R2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBvbmUgY29va2llLiIsIGZpbmlz
aFRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAg
aWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IHBhcnRpdGlvbkhvc3QgJiYgZG9jdW1lbnQu
bG9jYXRpb24uaGFzaCA9PSAiIiAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJu
YWxzKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBD
aGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBh
cnR5T3JpZ2luLCBmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEiOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAg
ICAgICBydW5UZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAt
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2M2M3MjAyYjAzZTc3MGQ2ZTQ0NmZi
NmYzNDAwZmIzOGM1OWY1MzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3Qt
aXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEy
IEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQg
Y291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8v
bG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIs
ICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xv
Y2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxo
b3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxo
b3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjViZGE2ZjlmMWJjZWJmNDg5NDU1
YmVjZTQ4NWY1Y2VjZDFmNjA5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVj
dC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU0IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9u
KCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291
bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAg
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNl
KTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIHZh
ciBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IGZhbHNlOworICAgICAgICB2YXIgc3Rh
dHNDaGVja2VkID0gZmFsc2U7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZl
bnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIp
ID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxh
Y2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAi
ICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5M
b2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAg
ICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAg
IGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2Fs
aG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgn
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8v
bG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVU
cnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0
dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0
YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hh
aW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisKKyAg
ICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQ
RGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRT
Y2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVkaXJl
Y3QucGhwP3JlZGlyZWN0VG89aHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAuMC4x
OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvaWZyYW1lLXJlcG9ydC1iYWNr
LWxvYWRlZC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94
ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2Nh
bGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2M2M3MjAyYjAzZTc3MGQ2
ZTQ0NmZiNmYzNDAwZmIzOGM1OWY1MzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVk
aXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hl
ZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVV
bmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFT
UyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6
Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4x
IiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0
LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNGI1ZWU5OTM3MDQxMDUyZGMyNmU4ZjZhNTg2OWEyMjEzMjAwM2EzMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9u
b24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMg
Zm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuIik7CisgICAg
ICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24g
ZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlz
aEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hh
aW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisg
ICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAo
ZXZlbnQub3JpZ2luID09PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikgeworICAgICAgICAgICAg
ICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAg
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1l
c3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAg
ICAgICAgICAgIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAg
ICAgIGlmIChzdGF0c0NoZWNrZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc05vdGlm
eU9ic2VydmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja1N0YXRzKCkg
eworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lz
dGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAu
MSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3
LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3LjAuMC4xIiwgImh0dHA6
Ly9sb2NhbGhvc3QiKScpOworCisgICAgICAgICAgICBzdGF0c0NoZWNrZWQgPSB0cnVlOworICAg
ICAgICAgICAgaWYgKGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkKQorICAgICAgICAgICAg
ICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVT
Y2FubmVkKHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3Rp
Y3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3Jj
PSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMv
cmVkaXJlY3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHAvP3JlZGlyZWN0VG89aHR0cDovL2xv
Y2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2lmcmFtZS1yZXBv
cnQtYmFjay1sb2FkZWQuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24t
c2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3Rp
bmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxo
b3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjUxNmYxMzJmOWZi
MTAxMzY4MjI2M2M2ZjJjODEwYjdmYWY5ZDhmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGlu
Zy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhv
c3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRo
YXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1z
YW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1
YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRy
dWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1Rv
KCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEy
Ny4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3Rpbmct
aWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0
LXRvLWlwLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94
ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjJkOWNhNTkwMWRiODBlMGRkMDJjMjA1MjAzM2MxNTdkZGQzNmUzMWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEs
NTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVz
Y3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1l
IG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIp
OworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1
bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRp
cmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxz
ZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAg
ICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIpIHsKKyAgICAg
ICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikp
OworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2
ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4p
OworCisgICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7Cisg
ICAgICAgICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3Qo
KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3Rp
Y3NOb3RpZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tT
dGF0cygpIHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8x
MjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0
cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIs
ICJodHRwOi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1
ZTsKKyAgICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAg
ICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1
bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsK
KyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29y
ZHNXZXJlU2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxT
dGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZy
YW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVz
b3VyY2VzL3BhZ2Utd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2Nh
bGhvc3QtdG8taXAuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2Fu
ZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3Qt
bG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1u
ZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9z
dC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjli
NTE2ZjEzMmY5ZmIxMDEzNjgyMjYzYzZmMmM4MTBiN2ZhZjlkOGYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRi
b3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxv
Y2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTIgQEAKK1Rlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1l
IG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5Lgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDov
LzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3Rl
cmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEi
KSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJl
Y3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24t
c2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGlu
Zy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8t
aXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFlMzNmNjY3ZGEzNTlm
M2E4MmJmM2MwYzMxMGQzNGVjMzc1YjM0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3Rpbmct
aWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlw
LXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRo
YXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1z
YW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2Ui
LCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3Qo
KSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOwor
ICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0g
ZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5j
dGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdp
biA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZl
bnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20g
YW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAgICAgICBs
YXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3Rh
dHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigp
OworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAgICAg
ICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJG
cmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7
CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0
IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlm
IChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hU
ZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVl
KTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRh
dGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3BhZ2Utd2l0aC1u
b24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0
Lmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0
aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0
LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQxNmU2MWZkMDE1ZmQ3YWUzY2I4
NjZiNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hl
ZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94
ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHBy
b3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3Qi
LCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8x
MjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJl
ZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0Iikg
aXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9ub24tc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1y
ZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tc2FuZGJveGVkLW5lc3Rpbmct
aWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8t
aXAtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzM4ZWEzYjU5YTBhNzA3NDNkMzQ1ZGYwNTJl
YTYyOWQyZjZiOTNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5o
dG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRi
b3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQg
cHJvcGVybHkuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisK
KyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFz
dFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hl
Y2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7
CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAibnVsbCIpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAg
ICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBt
ZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisg
ICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAg
ICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3Rp
ZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygp
IHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdp
c3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4w
LjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEy
Ny4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRw
Oi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAg
ICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAg
ICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGVzdFJ1bm5lcikg
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJl
U2Nhbm5lZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0
aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soY2hlY2tTdGF0cyk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNy
Yz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2Vz
L3BhZ2Utd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1p
cC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVz
dGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1p
cC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUt
d2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhv
c3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNWM4NWViNDdlMGYwODQxNmU2
MWZkMDE1ZmQ3YWUzY2I4NjZiNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFt
ZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2Fs
aG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCBy
ZWRpcmVjdHMgZm9yIGEgc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJveGVk
IGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVu
ZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNT
IHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDov
L2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEi
LCAiaHR0cDovL2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXNhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13
aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9z
dC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41N2ZhZjAwYThmZDcyZjE0NGVhYWVlZTRhN2QyZDBjYjQ5YjhkOTk1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L25vbi1zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGly
ZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsx
LDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRl
c2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94ZWQgaWZyYW1lIG5l
c3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOwor
ICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0
aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBm
aW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVj
dENoYWluTG9hZGVkID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsK
KworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAg
aWYgKGV2ZW50Lm9yaWdpbiA9PT0gIm51bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50
LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFu
IHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFz
dFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRz
Q2hlY2tlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsK
KyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAg
ICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJh
bWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNS
ZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOwor
ICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVy
ZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIp
Jyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAo
bGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVz
dCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRh
UmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0K
KyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9wYWdlLXdpdGgtc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0Lmh0bWwi
PgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGluZy10by1wcmV2YWxlbnQtcmVzb3Vy
Y2UtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41NDliZmI5MGNjMWFjNWY5MzE1ZGRmMDljZDRiOTMxYzk4Yjc0
N2VmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDI0IEBACitUZXN0cyB0aGF0IGNvb2tpZSBibG9ja2luZyBpcyBhcHBs
aWVkIHRvIHBpbmcgbG9hZHMuCisgICAKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0t
PicKKy0tLS0tLS0tCitTaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitSZWNlaXZl
ZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQu
Y29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1m
cmFtZTItLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3Qg
cmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9j
dW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUzLS0+JworLS0tLS0t
LS0KK1BpbmcgcmVjZWl2ZWQuCitIVFRQX0hPU1Q6IGxvY2FsaG9zdDo4MDAwCitSRVFVRVNUX1VS
STogL2NvbnRlbnRleHRlbnNpb25zL3Jlc291cmNlcy9zYXZlLXBpbmcucGhwP3Rlc3Q9cGluZy10
by1wcmV2YWxlbnQtcmVzb3VyY2UKK05vIGNvb2tpZXMgaW4gcGluZy4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9waW5nLXRvLXByZXZh
bGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3BpbmctdG8tcHJldmFsZW50LXJlc291cmNlLWRhdGFiYXNlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTYyMTI4MTE1OGZkMzdlYWVkZDBjNTRlYWIxZTQ3MzhlOTBhNjVkYgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9waW5nLXRvLXByZXZhbGVudC1yZXNvdXJjZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAg
KzEsMTAwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAg
IDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24i
PlRlc3RzIHRoYXQgY29va2llIGJsb2NraW5nIGlzIGFwcGxpZWQgdG8gcGluZyBsb2Fkcy48L2Rp
dj4KKzxhIGlkPSJ0YXJnZXRMaW5rIiBocmVmPSIjIiBwaW5nPSJodHRwOi8vbG9jYWxob3N0Ojgw
MDAvY29udGVudGV4dGVuc2lvbnMvcmVzb3VyY2VzL3NhdmUtcGluZy5waHA/dGVzdD1waW5nLXRv
LXByZXZhbGVudC1yZXNvdXJjZSI+VGhlIGxpbms8L2E+Cis8c2NyaXB0PgorICAgIGlmICh0ZXN0
UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgIGNvbnN0
IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHRoaXJkUGFydHlP
cmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCByZXNvdXJjZVBhdGgg
PSAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCB0aGlyZFBh
cnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyByZXNvdXJjZVBhdGg7CisgICAgY29uc3Qg
Zmlyc3RQYXJ0eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3Qgc3Vi
UGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsgZmly
c3RQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCByZXR1cm5Vcmwg
PSAiaHR0cDovLyIgKyBwYXJ0aXRpb25Ib3N0ICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Bp
bmctdG8tcHJldmFsZW50LXJlc291cmNlLmh0bWwiOworICAgIGNvbnN0IHN1YlBhdGhUb0dldENv
b2tpZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWU7
CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElELCBjYWxsYmFjaykgewor
ICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7
CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZz
ZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBl
bGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2Vu
dGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgICAgICBjYWxsYmFjaygpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwg
b25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBp
ZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRI
YW5kbGVyOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxl
bWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNo
IChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgor
ICAgICAgICAgICAgICAgIC8vIFNldCBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdC4K
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eUJhc2VV
cmwgKyBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llICsgIiMiICsgcmV0dXJuVXJsICsgIiNz
dGVwMiI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIi
OgorICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIGNvb2tpZSBnZXRzIHNlbnQgZm9y
IGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEgc2luY2UgbG9jYWxob3N0IGlzIG5vdCBwcmV2YWxl
bnQuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMyI7Cisg
ICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dl
dENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLiIs
IHJ1blRlc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0
ZXAzIjoKKyAgICAgICAgICAgICAgICAvLyBTZXQgbG9jYWxob3N0IGFzIHByZXZhbGVudCB0byBw
dXQgaXQgaW4gdGhlIGJsb2NraW5nIGNhdGVnb3J5LgorICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4sIHRydWUs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NV
cGRhdGVDb29raWVCbG9ja2luZyhydW5UZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAgICAg
ICAgIC8vIENoZWNrIHRoYXQgbm8gY29va2llIGdldHMgc2VudCBmb3IgbG9jYWxob3N0IHVuZGVy
IDEyNy4wLjAuMSBzaW5jZSBsb2NhbGhvc3QncyBjb29raWVzIGFyZSBibG9ja2VkLgorICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDUiOworICAgICAgICAgICAg
ICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsg
ICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLiIsIHJ1blRlc3QpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXA1IjoKKyAgICAgICAgICAg
ICAgICAvLyBDbGljayB0aGUgbGluayB0byB0cmlnZ2VyIHRoZSBwaW5nLgorICAgICAgICAgICAg
ICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlPcmlnaW4gKyAiL2NvbnRlbnRleHRlbnNp
b25zL3Jlc291cmNlcy9nZXQtcGluZy1kYXRhLnBocD90ZXN0PXBpbmctdG8tcHJldmFsZW50LXJl
c291cmNlIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5i
b2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgIGZldGNoKCIvY29udGVudGV4dGVuc2lvbnMvcmVzb3Vy
Y2VzL2RlbGV0ZS1waW5nLnBocD90ZXN0PXBpbmctdG8tcHJldmFsZW50LXJlc291cmNlIikudGhl
bigoKT0+eworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9PT0gIiIpIHsKKyAgICAgICAg
aWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJh
c2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOwor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEiOworICAgICAg
ICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfSBl
bHNlIHsKKyAgICAgICAgcnVuVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3By
ZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU0ZTMyYzU5M2RlMTBkNTc3MzcxMDEzNTcxZGQzNDhmNTM4NTE5NmQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcHJldmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCB3ZSBncmFudCBVc2VyIEludGVyYWN0aW9u
IGNyZWRpdCBmb3IgaGFuZGxlZCBrZXlwcmVzc2VzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworU2ltdWxhdGUgdXNlciB0eXBpbmcgbGV0dGVyICdhJyBpbnRvIHRoZSBmaWVsZC4K
K1BBU1MgdGVzdElucHV0LnZhbHVlIGlzICJhIgorUEFTUyBPcmlnaW4gd2FzIGdyYW50ZWQgdXNl
ciBpbnRlcmFjdGlvbi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVkLWtleWRvd24tZGF0YWJhc2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2
YWxlbnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
N2U1NmE1MGNjYzg0ZjgwYTE3NWRmNDY3ZmY3ODg5NGNlN2I1MTlmYwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxl
bnQtcmVzb3VyY2UtaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2MiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigi
VGVzdHMgdGhhdCB3ZSBncmFudCBVc2VyIEludGVyYWN0aW9uIGNyZWRpdCBmb3IgaGFuZGxlZCBr
ZXlwcmVzc2VzLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2NvbnN0IHN0YXRpc3RpY3NV
cmwgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3RlbXAiOworCitvbmxvYWQgPSBmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB0ZXN0RnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdEZy
YW1lIik7CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykg
eworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBp
bnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNj
YW5uZWQodHJ1ZSk7CisgICAgfQorCisgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgIGlm
ICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJs
KSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZh
bGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNI
YWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5v
dCBnZXQgY2xlYXJlZCBvZiB1c2VyIGludGVyYWN0aW9uLiIpOworCisgICAgICAgICAgICB0ZXN0
SW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdElucHV0Iik7CisKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxi
YWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
dGVzdElucHV0LnZhbHVlIiwgImEiKTsKKworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk9yaWdpbiBkaWQgbm90IGdldCB1c2VyIGludGVy
YWN0aW9uIGNyZWRpdC4iKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIk9yaWdpbiB3YXMgZ3JhbnRlZCB1c2VyIGludGVyYWN0aW9uLiIpOwor
CisgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdEZyYW1lLnNyYyA9ICJhYm91dDpibGFuayI7CisgICAgICAgICAgICAgICAgICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0sIDApOworICAgICAgICAgICAgICAgIH0s
IDApOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5E
YXRhUmVjb3Jkc1JlbW92YWwoMCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQ
cm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisKKyAgICAgICAgICAgIGRlYnVnKCJT
aW11bGF0ZSB1c2VyIHR5cGluZyBsZXR0ZXIgJ2EnIGludG8gdGhlIGZpZWxkLiIpOworICAgICAg
ICAgICAgdGVzdElucHV0LmZvY3VzKCk7CisgICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2Vu
ZGVyKQorICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImEiKTsKKyAgICAgICAg
fSk7CisgICAgfSk7Cit9Cis8L3NjcmlwdD4KKzxpZnJhbWUgaWQ9InRlc3RGcmFtZSIgc3JjPSJy
ZXNvdXJjZXMvb25jbGljay5odG1sIj48L2lmcmFtZT4KKzxpbnB1dCBpZD0idGVzdElucHV0IiB0
eXBlPSJ0ZXh0Ij4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5k
bGVkLWtleWRvd24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5
ZG93bi1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzZlNTU5YmZhMmRkMjQ2MTY3
OTg5YjI1YWI4MjM5YzQ1NmIxNjRiMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5k
bGVkLWtleWRvd24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3Rz
IHRoYXQgd2UgZG8gbm90IGdyYW50IFVzZXIgSW50ZXJhY3Rpb24gY3JlZGl0IGZvciB1bmhhbmRs
ZWQga2V5cHJlc3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTaW11bGF0ZSBh
biB1bmhhbmRsZWQgdXNlciBrZXkgcHJlc3MuCitQQVNTIE9yaWdpbiBkaWQgbm90IGdldCB1c2Vy
IGludGVyYWN0aW9uIGNyZWRpdC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRh
dGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFuZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNWFjZGViMjhlNGNjYjcxMjgyNTMyMTdiYTg4MTllYTdlYTZmYjJmZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9wcmV2YWxlbnQtcmVzb3VyY2UtdW5oYW5kbGVkLWtleWRvd24tZGF0YWJhc2UuaHRtbApAQCAt
MCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCJUZXN0cyB0aGF0IHdlIGRvIG5vdCBncmFudCBVc2VyIEludGVyYWN0aW9uIGNy
ZWRpdCBmb3IgdW5oYW5kbGVkIGtleXByZXNzLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisK
K2NvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3RlbXAiOworCitv
bmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBjb25zdCB0ZXN0RnJhbWUgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGVzdEZyYW1lIik7CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYg
d2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNl
KHRydWUpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJs
ZWQodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hl
bkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgfQorCisgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5v
dCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwgZmFsc2Us
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgY2xlYXJlZCBvZiB1c2VyIGludGVyYWN0aW9uLiIpOwor
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkTW9kaWZ5RGF0YVJl
Y29yZHNDYWxsYmFjayhmdW5jdGlvbigpIHsKKworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisg
ICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIk9yaWdpbiBkaWQgbm90IGdldCB1c2VyIGlu
dGVyYWN0aW9uIGNyZWRpdC4iKTsKKworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGcmFtZS5zcmMgPSAiYWJvdXQ6Ymxhbmsi
OworICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0
ZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9LCAw
KTsKKyAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRh
UmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOwor
CisgICAgICAgICAgICBkZWJ1ZygiU2ltdWxhdGUgYW4gdW5oYW5kbGVkIHVzZXIga2V5IHByZXNz
LiIpOworICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAgICAg
ICBldmVudFNlbmRlci5rZXlEb3duKCJhIiwgWyJtZXRhS2V5Il0pOworICAgICAgICB9KTsKKyAg
ICB9KTsKK30KKzwvc2NyaXB0PgorPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBzcmM9InJlc291cmNl
cy9vbmNsaWNrLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1y
ZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNv
dXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmM4OWY4NTVhNzg5Y2YxMGJmMzMwZjRjOTJlYTEyYjk0MWFiZWZjMDcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJl
dmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKK1BBU1MgQ29va2llIG5vdCBkZWxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291
cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVz
ZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYzEzYTUwMjc0YzZkZDk0
YmZlOGExNjQ1OWM0Y2JhYjhhOTBlOTBjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRo
LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY5IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVU
Ri04Ij4KKyAgICA8dGl0bGU+VGVzdHMgZm9yIFByZXZhbGVudCBSZXNvdXJjZSBXaXRoIFVzZXIg
SW50ZXJhY3Rpb248L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgnc2V0VXBBbmRS
dW4oKScsIDApIj4KKzxzY3JpcHQ+CisgICAgaWYgKHRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICIxMjcu
MC4wLjE6ODAwMCI7CisgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RV
bmRlclRlc3QgKyAiL3RlbXAiOworICAgIGNvbnN0IG90aGVyUHJldmFsZW50VXJsID0gImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC90ZW1wIjsKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgp
IHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJkb2N1bWVudC5jb29raWUgbm90IGVtcHR5LiIpOworICAgICAgICBjb25zdCBjb29r
aWUgPSAidGVzdENvb2tpZT10ZXN0VmFsdWUiOworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBj
b29raWUgKyAiOyBtYXgtYWdlPTEwMDsiOworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9
PSBjb29raWUpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgZGlkIG5v
dCBnZXQgc2V0LiIpOworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
aWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwpKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFz
IHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgLy8gVGhpcyBpcyBkb25lIHRv
IG5vdCBoYXZlIGFuIGVtcHR5IHNldCBvZiBwcmV2YWxlbnQgcmVzb3VyY2VzLgorICAgICAgICAg
ICAgLy8gT3RoZXJ3aXNlIGRhdGEgcmVjb3JkcyBhcmUgbmV2ZXIgc2Nhbm5lZC4KKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKG90aGVyUHJldmFs
ZW50VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uob3RoZXJQcmV2YWxlbnRVcmwpKQorICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJPdGhlciBob3N0IGRpZCBub3QgZ2V0IHNldCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRl
cmFjdGlvbi4iKTsKKworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0
aXN0aWNzRGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgPT09IGNvb2tpZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb29raWUgbm90IGRlbGV0ZWQuIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiQ29va2llIGRlbGV0ZWQgb3IgZG9jdW1lbnQuY29va2llIGNvbnRhaW5zIG90
aGVyIGNvb2tpZXM6ICIgKyBkb2N1bWVudC5jb29raWUpOworICAgICAgICAgICAgICAgICAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJl
Y29yZHNSZW1vdmFsKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOworICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERh
dGFSZWNvcmRzKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2V0VXBBbmRSdW4oKSB7CisgICAgICAgIGlm
IChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0
UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUs
IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBydW5UZXN0UnVubmVyVGVzdCgpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJX
cm9uZyBob3N0LCBubyB0ZXN0UnVubmVyLCBvciBubyBpbnRlcm5hbHMuIik7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rp
b24tdGltZW91dC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRl
cmFjdGlvbi10aW1lb3V0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzgwOWU5
MWMyM2MyM2EyMzY5Y2QwODU0ZWIxODE2NDdkZmFlYjQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNv
dXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC1kYXRhYmFzZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw1IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKK1BBU1MgQ29va2llIGRlbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0
aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11
c2VyLWludGVyYWN0aW9uLXRpbWVvdXQtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMjA4OTcw
NWQyNzhlYWEyMjEyNjg1NmQxZDZkMDk5YTU5YTBhN2I3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNv
dXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC1kYXRhYmFzZS5odG1sCkBAIC0wLDAg
KzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAg
PG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDx0aXRsZT5UZXN0cyBmb3IgUHJldmFsZW50IFJl
c291cmNlIFdpdGggVXNlciBJbnRlcmFjdGlvbiBUaW1lb3V0PC90aXRsZT4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgw
MDAiOworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0
ICsgIi90ZW1wIjsKKyAgICBmdW5jdGlvbiBydW5UZXN0UnVubmVyVGVzdCgpIHsKKyAgICAgICAg
aWYgKGRvY3VtZW50LmNvb2tpZSAhPT0gIiIpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1
bWVudC5jb29raWUgbm90IGVtcHR5LiIpOworICAgICAgICBjb25zdCBjb29raWUgPSAidGVzdENv
b2tpZT10ZXN0VmFsdWUiOworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBjb29raWUgKyAiOyBt
YXgtYWdlPTEwMDsiOworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9PSBjb29raWUpCisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5jb29raWUgZGlkIG5vdCBnZXQgc2V0LiIp
OworCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKCF0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCBy
ZXNvdXJjZS4iKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rp
b24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
ZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworCisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2Fs
bGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5jb29r
aWUgIT09ICIiKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5v
dCBkZWxldGVkOiAiICsgZG9jdW1lbnQuY29va2llKTsKKyAgICAgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiQ29va2llIGRlbGV0ZWQuIik7
CisgICAgICAgICAgICAgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RW5hYmxlZChmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGlj
c1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2Up
OworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0
d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKDApOworCisgICAgICAgICAgICAg
ICAgLy8gVGhpcyBpcyB0byBlbnN1cmUgdGhlIHRpbWVvdXQgd2UncmUgdGVzdGluZy4KKyAgICAg
ICAgICAgICAgICBzZXRUaW1lb3V0KCJ0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlz
dGljc0FuZERhdGFSZWNvcmRzKCkiLCAxMDAwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
KTsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVy
VGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAg
IHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlm
eVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgIHJ1blRlc3RS
dW5uZXJUZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFs
ZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFs
ZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjc4MDllOTFjMjNjMjNhMjM2OWNkMDg1NGViMTgxNjQ3ZGZhZWI0Mwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBDb29raWUgZGVsZXRlZC4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZh
bGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVz
b3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjdiMGIyYWFlMzA4NGQ0YzQ3ZDllYzlmN2NlMzJmZTRkNDBiOWM0YQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxl
bnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKQEAgLTAs
MCArMSw1OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAg
ICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHRpdGxlPlRlc3RzIGZvciBQcmV2YWxlbnQg
UmVzb3VyY2UgV2l0aG91dCBVc2VyIEludGVyYWN0aW9uPC90aXRsZT4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0PgorICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAiMTI3LjAuMC4xOjgwMDAi
OworICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsg
Ii90ZW1wIjsKKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QgKCkgeworICAgICAgICBpZiAoZG9j
dW1lbnQuY29va2llICE9PSAiIikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBub3Qg
ZGVsZXRlZDogIiArIGRvY3VtZW50LmNvb2tpZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQoIkNvb2tpZSBkZWxldGVkLiIpOworICAgICAgICBpbnRlcm5hbHMuc2V0UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0
aW9uIHJ1blRlc3RSdW5uZXJUZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQuY29va2llICE9
PSAiIikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImRvY3VtZW50LmNvb2tpZSBub3QgZW1wdHku
Iik7CisgICAgICAgIGNvbnN0IGNvb2tpZSA9ICJ0ZXN0Q29va2llPXRlc3RWYWx1ZSI7CisgICAg
ICAgIGRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZSArICI7IG1heC1hZ2U9MTAwOyI7CisgICAgICAg
IGlmIChkb2N1bWVudC5jb29raWUgIT09IGNvb2tpZSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
ImRvY3VtZW50LmNvb2tpZSBkaWQgbm90IGdldCBzZXQuIik7CisKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlz
dGljc1VybCwgZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBjbGVhcmVkIG9m
IHVzZXIgaW50ZXJhY3Rpb24uIik7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3Rh
bGxTdGF0aXN0aWNzRGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgiZmluaXNoVGVzdCgpIiwgMTAwMCk7CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2Vl
bkRhdGFSZWNvcmRzUmVtb3ZhbCgwKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09
IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykg
eworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaW50ZXJuYWxz
LnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICB0ZXN0UnVu
bmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAgICAg
ICBydW5UZXN0UnVubmVyVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3BydW5lLXN0YXRpc3RpY3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BydW5lLXN0YXRpc3RpY3MtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3NDc1N2JjNTI1NjAwNTIxZDQ2MTU0NWQwMzY3
YzBmMDUwMWJlZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcHJ1bmUtc3RhdGlzdGljcy1kYXRhYmFzZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNyBAQAorVGVzdHMgdGhhdCBzdGF0aXN0aWNzIGFyZSBwcnVuZWQgaW4g
dGhlIHJpZ2h0IG9yZGVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBU
ZXN0IGl0ZXJhdGlvbiAxIHBhc3NlZC4KK1BBU1MgVGVzdCBpdGVyYXRpb24gMiBwYXNzZWQuCitQ
QVNTIFRlc3QgaXRlcmF0aW9uIDMgcGFzc2VkLgorUEFTUyBUZXN0IGl0ZXJhdGlvbiA0IHBhc3Nl
ZC4KK1BBU1MgVGVzdCBpdGVyYXRpb24gNSBwYXNzZWQuCitQQVNTIFRlc3QgaXRlcmF0aW9uIDYg
cGFzc2VkLgorUEFTUyBUZXN0IGl0ZXJhdGlvbiA3IHBhc3NlZC4KK1BBU1MgVGVzdCBpdGVyYXRp
b24gOCBwYXNzZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3BydW5lLXN0YXRpc3RpY3MtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMGNhYjdkMzkxNzFkMDNmNDdiNDE5ZDJhZGIwY2ExMzhhZGY3OGVi
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9wcnVuZS1zdGF0aXN0aWNzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxNjMg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJV
VEYtOCI+CisgICAgPHRpdGxlPlRlc3QgZm9yIFJlc291cmNlIExvYWQgU3RhdGlzdGljcyBQcnVu
aW5nPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9u
KCJUZXN0cyB0aGF0IHN0YXRpc3RpY3MgYXJlIHBydW5lZCBpbiB0aGUgcmlnaHQgb3JkZXIuIik7
CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBvbGRlclRpbWVzdGFtcCA9
IE1hdGgucm91bmQoKG5ldyBEYXRlKCkpLmdldFRpbWUoKSAvIDEwMDApOworICAgIGNvbnN0IG5l
d2VyVGltZXN0YW1wID0gb2xkZXJUaW1lc3RhbXAgKyAxMDsKKyAgICBjb25zdCBuZXdlc3RUaW1l
c3RhbXAgPSBuZXdlclRpbWVzdGFtcCArIDEwOworCisgICAgY29uc3QgdXJsc1RvQmVQcnVuZWQg
PSBbCisgICAgICAgIHsgdXJsOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3RlbXAiLCBwcmV2YWxl
bnQ6IGZhbHNlIH0sCisgICAgICAgIHsgdXJsOiAiaHR0cDovLzEyNy4wLjAuMjo4MDAwL3RlbXAi
LCBwcmV2YWxlbnQ6IGZhbHNlIH0sCisgICAgICAgIHsgdXJsOiAiaHR0cDovLzEyNy4wLjAuMzo4
MDAwL3RlbXAiLCBwcmV2YWxlbnQ6IHRydWUgfSwKKyAgICAgICAgeyB1cmw6ICJodHRwOi8vMTI3
LjAuMC40OjgwMDAvdGVtcCIsIHByZXZhbGVudDogdHJ1ZSB9LAorICAgICAgICB7IHVybDogImh0
dHA6Ly8xMjcuMC4wLjU6ODAwMC90ZW1wIiwgcHJldmFsZW50OiBmYWxzZSB9LAorICAgICAgICB7
IHVybDogImh0dHA6Ly8xMjcuMC4wLjY6ODAwMC90ZW1wIiwgcHJldmFsZW50OiBmYWxzZSB9LAor
ICAgICAgICB7IHVybDogImh0dHA6Ly8xMjcuMC4wLjc6ODAwMC90ZW1wIiwgcHJldmFsZW50OiB0
cnVlIH0sCisgICAgICAgIHsgdXJsOiAiaHR0cDovLzEyNy4wLjAuODo4MDAwL3RlbXAiLCBwcmV2
YWxlbnQ6IHRydWUgfQorICAgIF07CisKKyAgICBmdW5jdGlvbiBjaGVja0lmUHJldmFsZW50QWNj
b3JkaW5nVG9Jbml0aWFsRXhwZWN0YXRpb24oYmVnaW4sIGVuZCkgeworICAgICAgICB2YXIgZmFp
bGVkID0gZmFsc2U7CisgICAgICAgIGZvciAodmFyIGkgPSBiZWdpbjsgaSA8IGVuZDsgKytpKSB7
CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZSh1cmxzVG9CZVBydW5lZFtpXS51cmwpICE9PSB1cmxzVG9CZVBydW5lZFtpXS5wcmV2YWxlbnQp
IHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJjaGVja0lmUHJldmFsZW50QWNjb3JkaW5n
VG9Jbml0aWFsRXhwZWN0YXRpb246IFRlc3QgaXRlcmF0aW9uICIgKyBjdXJyZW50VGVzdCArICIg
ZmFpbGVkLiAiICsgdXJsc1RvQmVQcnVuZWRbaV0udXJsICsgKHVybHNUb0JlUHJ1bmVkW2ldLnBy
ZXZhbGVudCA/ICIgd2Fzbid0ICIgOiAiIHdhcyAiKSArICJwcmV2YWxlbnQiKTsKKyAgICAgICAg
ICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAg
IGlmIChmYWlsZWQpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9D
b25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIGNo
ZWNrSWZQcmV2YWxlbnQoYmVnaW4sIGVuZCwgZXhwZWN0ZWQpIHsKKyAgICAgICAgdmFyIGZhaWxl
ZCA9IGZhbHNlOworICAgICAgICBmb3IgKHZhciBpID0gYmVnaW47IGkgPCBlbmQ7ICsraSkgewor
ICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
dXJsc1RvQmVQcnVuZWRbaV0udXJsKSAhPT0gZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJjaGVja0lmUHJldmFsZW50OiBUZXN0IGl0ZXJhdGlvbiAiICsgY3VycmVudFRl
c3QgKyAiIGZhaWxlZC4gIiArIHVybHNUb0JlUHJ1bmVkW2ldLnVybCArIChleHBlY3RlZCA/ICIg
d2Fzbid0ICIgOiAiIHdhcyAiKSArICJwcmV2YWxlbnQiKTsKKyAgICAgICAgICAgICAgICBmYWls
ZWQgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChmYWlsZWQp
IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3Rh
dGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIGluaXRpYWxpemVTdGF0
aXN0aWNzQW5kUnVuVGVzdHMoc3RlcCkgeworICAgICAgICBzd2l0Y2ggKHN0ZXApIHsKKyAgICAg
ICAgICAgIC8vIE5vbi1wcmV2YWxlbnQgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uIHRvIGJlIHBy
dW5lZCBmaXJzdC4KKyAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFswXS51cmwsIG9sZGVyVGlt
ZXN0YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygyKTsg
fSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDI6CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTGFzdFNlZW4odXJsc1RvQmVQcnVuZWRb
MV0udXJsLCBuZXdlclRpbWVzdGFtcCwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNz
QW5kUnVuVGVzdHMoMyk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Ly8gUHJldmFsZW50IHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbiB0byBiZSBwcnVuZWQgc2Vjb25k
LgorICAgICAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHVybHNUb0JlUHJ1bmVkWzJdLnVybCwgdHJ1ZSwgZnVu
Y3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoNCk7IH0pOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVkWzJdLnVybCwgb2xk
ZXJUaW1lc3RhbXAsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3Rz
KDUpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgNToKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh1
cmxzVG9CZVBydW5lZFszXS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlz
dGljc0FuZFJ1blRlc3RzKDYpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgNjoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0
U2Vlbih1cmxzVG9CZVBydW5lZFszXS51cmwsIG5ld2VyVGltZXN0YW1wLCBmdW5jdGlvbigpIHsg
aW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cyg3KTsgfSk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAvLyBOb24tcHJldmFsZW50IHdpdGggdXNlciBpbnRlcmFjdGlv
biB0byBiZSBwcnVuZWQgdGhpcmQuCisgICAgICAgICAgICBjYXNlIDc6CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHVybHNUb0Jl
UHJ1bmVkWzRdLnVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7IGluaXRpYWxpemVTdGF0aXN0aWNzQW5k
UnVuVGVzdHMoOCk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSA4OgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVuKHVy
bHNUb0JlUHJ1bmVkWzRdLnVybCwgb2xkZXJUaW1lc3RhbXAsIGZ1bmN0aW9uKCkgeyBpbml0aWFs
aXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDkpOyB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgOToKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odXJsc1RvQmVQcnVuZWRbNV0udXJsLCB0cnVlLCBm
dW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxMCk7IH0pOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxMDoKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5lZFs1XS51cmws
IG5ld2VyVGltZXN0YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5U
ZXN0cygxMSk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgLy8gUHJl
dmFsZW50IHdpdGggdXNlciBpbnRlcmFjdGlvbiB0byBiZSBwcnVuZWQgbGFzdC4KKyAgICAgICAg
ICAgIGNhc2UgMTE6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UodXJsc1RvQmVQcnVuZWRbNl0udXJsLCB0cnVlLCBmdW5jdGlvbigpIHsg
aW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxMik7IH0pOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSAxMjoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odXJsc1RvQmVQcnVuZWRbNl0udXJs
LCB0cnVlLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxMyk7
IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxMzoKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NMYXN0U2Vlbih1cmxzVG9CZVBydW5l
ZFs2XS51cmwsIG9sZGVyVGltZXN0YW1wLCBmdW5jdGlvbigpIHsgaW5pdGlhbGl6ZVN0YXRpc3Rp
Y3NBbmRSdW5UZXN0cygxNCk7IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSAxNDoKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZSh1cmxzVG9CZVBydW5lZFs3XS51cmwsIHRydWUsIGZ1bmN0aW9uKCkgeyBp
bml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDE1KTsgfSk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIDE1OgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih1cmxzVG9CZVBydW5lZFs3XS51cmws
IHRydWUsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGljc0FuZFJ1blRlc3RzKDE2KTsg
fSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDE2OgorICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVuKHVybHNUb0JlUHJ1bmVk
WzddLnVybCwgbmV3ZXJUaW1lc3RhbXAsIGZ1bmN0aW9uKCkgeyBpbml0aWFsaXplU3RhdGlzdGlj
c0FuZFJ1blRlc3RzKDE3KTsgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIDE3OgorICAgICAgICAgICAgICAgIGNoZWNrSWZQcmV2YWxlbnRBY2NvcmRpbmdUb0lu
aXRpYWxFeHBlY3RhdGlvbigwLCB1cmxzVG9CZVBydW5lZC5sZW5ndGgpOworICAgICAgICAgICAg
ICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0K
KworICAgIHZhciBjdXJyZW50VGVzdDsKKyAgICBmdW5jdGlvbiBjaGVja1N0YXRpc3RpY3NBZnRl
clBydW5pbmcoKSB7CisgICAgICAgIC8vIFBydW5lZCBlbnRyaWVzIHNob3VsZCBub3QgYmUgcHJl
dmFsZW50LgorICAgICAgICBjaGVja0lmUHJldmFsZW50KDAsIGN1cnJlbnRUZXN0LCBmYWxzZSk7
CisgICAgICAgIC8vIE5vbi1wcnVuZWQgZW50cmllcyBzaG91bGQga2VlcCB0aGVpciBleHBlY3Rl
ZCBzdGF0dXMuCisgICAgICAgIGNoZWNrSWZQcmV2YWxlbnRBY2NvcmRpbmdUb0luaXRpYWxFeHBl
Y3RhdGlvbihjdXJyZW50VGVzdCwgdXJsc1RvQmVQcnVuZWQubGVuZ3RoKTsKKyAgICAgICAgdGVz
dFBhc3NlZCgiVGVzdCBpdGVyYXRpb24gIiArIGN1cnJlbnRUZXN0ICsgIiBwYXNzZWQuIik7Cisg
ICAgICAgIGlmIChjdXJyZW50VGVzdCA8IHVybHNUb0JlUHJ1bmVkLmxlbmd0aCkgeworICAgICAg
ICAgICAgKytjdXJyZW50VGVzdDsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRp
c3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRpc3RpY3NBZnRlclBydW5p
bmcpOworICAgICAgICAgICAgaW5pdGlhbGl6ZVN0YXRpc3RpY3NBbmRSdW5UZXN0cygxKTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Jlc2V0VG9D
b25zaXN0ZW50U3RhdGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCBmaWxsZXJV
cmw7CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgZmlsbGVyVXJsID0gImh0dHA6
Ly8xMjcuMC4iICsgY3VycmVudFRlc3QgKyAiLjE6ODAwMC90ZW1wIjsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoZmlsbGVyVXJsLCB0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbihmaWxsZXJVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0xhc3RTZWVuKGZpbGxlclVybCwgbmV3ZXN0VGltZXN0
YW1wLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOworICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0
cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNv
dXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7Cisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRz
V2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01heFN0
YXRpc3RpY3NFbnRyaWVzKHVybHNUb0JlUHJ1bmVkLmxlbmd0aCk7CisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1BydW5lRW50cmllc0Rvd25Ubyh1cmxzVG9CZVBydW5lZC5sZW5ndGgp
OworCisgICAgICAgIGN1cnJlbnRUZXN0ID0gMTsKKyAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxs
U3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdGlzdGljc0FmdGVy
UHJ1bmluZyk7CisgICAgICAgIGluaXRpYWxpemVTdGF0aXN0aWNzQW5kUnVuVGVzdHMoMSk7Cisg
ICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRp
cmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUt
cmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iN2MxNDM4YjE4NjQwNjQyYWExNmZjMDZiNjlkODQxZmRmM2JmMTZlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3Ig
c2FuZGJveGVkIGlmcmFtZXMgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFz
U3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMg
dHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5n
VG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1Mg
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8v
MTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVk
aXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVj
dC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NjcxMTIw
NTA2ODE4MzkxY2E5NjdmZjI0ZmZmYzA1OGM5MjE5ZjQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJh
bWUtcmVkaXJlY3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCAr
MSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBk
ZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIHNhbmRib3hlZCBpZnJhbWVzIGdl
dCBjb3VudGVkIHByb3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAg
ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwg
ZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAg
ICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0
YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2Vz
V2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3Rh
dHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJ
blJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9
IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAg
ICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAibnVsbCIpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdl
IGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAg
ICAgICBsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBp
ZiAoc3RhdHNDaGVja2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNl
cnZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAg
ICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVk
QXNTdWJGcmFtZVVuZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScp
OworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lz
dGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAu
MSIpJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9j
YWxob3N0IiknKTsKKworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAg
ICAgIGlmIChsYXN0UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBm
aW5pc2hUZXN0KCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PGlmcmFtZSBzYW5kYm94PSJhbGxvdy1zY3JpcHRzIiBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHAvP3JlZGlyZWN0
VG89aHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2Vz
L3JlZGlyZWN0LnBocC8/cmVkaXJlY3RUbz1odHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvaWZyYW1lLXJlcG9ydC1iYWNrLWxvYWRlZC5odG1sIj4K
KzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3Qt
bG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLWlmcmFt
ZS1yZWRpcmVjdC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iN2MxNDM4YjE4NjQwNjQyYWExNmZjMDZiNjlkODQxZmRmM2JmMTZl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxv
Y2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhh
dCByZWRpcmVjdHMgZm9yIHNhbmRib3hlZCBpZnJhbWVzIGdldCBjb3VudGVkIHByb3Blcmx5Lgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDov
LzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3Rl
cmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEi
KSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJl
Y3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IikgaXMgdHJ1ZQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5k
Ym94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJh
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
YW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDI2YmQ5YzBjMjEyYjdlNWYxNjQ5YjU5M2I5Nzg4M2Nm
MzE0OGZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlw
LXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRo
YXQgcmVkaXJlY3RzIGZvciBzYW5kYm94ZWQgaWZyYW1lcyBnZXQgY291bnRlZCBwcm9wZXJseS4i
KTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBm
dW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVT
Y2FubmVkKHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3Rp
Y3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVk
ID0gZmFsc2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBm
dW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9y
aWdpbiA9PT0gIm51bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhP
ZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5k
YXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQg
b3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGly
ZWN0Q2hhaW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAg
ICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQor
CisgICAgICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRy
dWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0
cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1Rv
KCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAg
c2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0
aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAg
ICAgICAgIHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJl
ZGlyZWN0Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAg
ICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2FuZGJveD0iYWxs
b3ctc2NyaXB0cyIgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9yZXNvdXJjZXMvcmVkaXJlY3QucGhwLz9yZWRpcmVjdFRvPWh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZWRpcmVjdC5waHAvP3JlZGly
ZWN0VG89aHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3Vy
Y2VzL2lmcmFtZS1yZXBvcnQtYmFjay1sb2FkZWQuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hl
ZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRv
LWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM2NThj
ZDM0M2Y1NTZlMGMzNDQ3NWVmOWVmNDVjNjIwZDRkNDI3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVz
dGluZy1pZnJhbWUtd2l0aC1ub24tc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2Nh
bGhvc3QtdG8taXAtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3Rz
IHRoYXQgcmVkaXJlY3RzIGZvciBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIHNh
bmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3Vi
RnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1
ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8o
Imh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1MgdGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vMTI3
LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFt
ZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1p
cC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjA5MmQ1OTk5NjRlN2U2MmZkMDVmYjBkNzhhZTVlMjk2NjA1N2EwNjYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJv
eGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtaXAt
dG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVz
dHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEg
c2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAgICAgICAganNUZXN0
SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdl
IiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0
KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsK
KyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHRydWUpOworICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29y
ZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAg
ICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFsc2U7CisgICAgICAg
IHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVz
c2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gIm51bGwiKSB7
CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkK
KyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwg
IiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
IlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQu
b3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSB0
cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAgICAgICAgICBmaW5p
c2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
dGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9u
IGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJo
dHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgndGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8vbG9jYWxob3N0
IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcu
MC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAgIHN0YXRzQ2hlY2tl
ZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQp
CisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc2NyaXB0cyIgc3JjPSJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcGFn
ZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1p
cC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5n
LWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1p
cC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRo
LW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhv
c3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzNjU4Y2QzNDNmNTU2ZTBjMzQ0
NzVlZjllZjQ1YzYyMGQ0ZDQyN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdp
dGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2Fs
aG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCBy
ZWRpcmVjdHMgZm9yIGEgbm9uLXNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgc2FuZGJveGVk
IGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVu
ZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNT
IHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDov
L2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEi
LCAiaHR0cDovL2xvY2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgt
bm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9z
dC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1l
LXJlZGlyZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kZjg2ZmU4YzMyOTRlMjUzOTIyYzI1ZWEzNzkyN2ZkNWM5NDM2ZmY4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLW5vbi1zYW5kYm94ZWQtaWZyYW1lLXJlZGly
ZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsx
LDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRl
c2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBub24tc2FuZGJveGVkIGlmcmFt
ZSBuZXN0ZWQgaW4gYSBzYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHByb3Blcmx5LiIpOwor
ICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0
aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBm
aW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5u
ZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0Rp
ZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hhaW5Mb2FkZWQgPSBm
YWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgIGZ1bmN0
aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2lu
ID09PSAibnVsbCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQ
QVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEu
cmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmln
aW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAgICAgICBsYXN0UGFnZUluUmVkaXJlY3RD
aGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVja2VkKQorICAgICAg
ICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAgICAgICB9CisKKyAg
ICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgn
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8v
bG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxkQmVU
cnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0
dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAgICAgICAgICBzaG91
bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdU
bygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsKKworICAgICAgICAg
ICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0UGFnZUluUmVkaXJl
Y3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0K
KyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzYW5kYm94PSJhbGxvdy1z
Y3JpcHRzIiBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3Jlc291cmNlcy9wYWdlLXdpdGgtbm9uLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxo
b3N0LXRvLWlwLXRvLWxvY2FsaG9zdC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJl
Y3QtaXAtdG8tbG9jYWxob3N0LXRvLWlwLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1p
ZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1p
cC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE1Yzg1ZWI0N2UwZjA4NDE2ZTYx
ZmQwMTVmZDdhZTNjYjg2NmI2OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0
aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10by1pcC1kYXRhYmFz
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9y
IGEgc2FuZGJveGVkIGlmcmFtZSBuZXN0ZWQgaW4gYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQg
Y291bnRlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKCJodHRwOi8v
bG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbygiaHR0cDovL2xvY2FsaG9zdCIs
ICJodHRwOi8vMTI3LjAuMC4xIikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oImh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xv
Y2FsaG9zdCIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlm
cmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVzdGlu
Zy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWlwLXRvLWxvY2FsaG9zdC10
by1pcC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2ZTk0YTQ1OTY5ODU0ZDNlMzg4ZDEwYWFk
Y2FmMGExZDJhNGRhYWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2Fu
ZGJveGVkLWlmcmFtZS1yZWRpcmVjdC1pcC10by1sb2NhbGhvc3QtdG8taXAtZGF0YWJhc2UuaHRt
bApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAg
PHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+
CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHJlZGlyZWN0cyBmb3IgYSBzYW5kYm94
ZWQgaWZyYW1lIG5lc3RlZCBpbiBhIG5vbi1zYW5kYm94ZWQgaWZyYW1lIGdldCBjb3VudGVkIHBy
b3Blcmx5LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisg
ICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRlc3RS
dW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7
CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNv
cmRzV2VyZVNjYW5uZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxs
U3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNoZWNrU3RhdHMpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgbGFzdFBhZ2VJblJlZGlyZWN0Q2hh
aW5Mb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHN0YXRzQ2hlY2tlZCA9IGZhbHNlOworCisg
ICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAo
ZXZlbnQub3JpZ2luID09PSAibnVsbCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0
YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5l
eHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworCisgICAgICAgICAgICBsYXN0UGFn
ZUluUmVkaXJlY3RDaGFpbkxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAoc3RhdHNDaGVj
a2VkKQorICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlcigpOworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0cygpIHsKKyAgICAgICAgICAgIHNo
b3VsZEJlVHJ1ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVu
ZGVyKCJodHRwOi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAg
ICAgc2hvdWxkQmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGly
ZWN0aW5nVG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpJyk7CisgICAg
ICAgICAgICBzaG91bGRCZVRydWUoJ3Rlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFz
UmVkaXJlY3RpbmdUbygiaHR0cDovLzEyNy4wLjAuMSIsICJodHRwOi8vbG9jYWxob3N0IiknKTsK
KworICAgICAgICAgICAgc3RhdHNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChsYXN0
UGFnZUluUmVkaXJlY3RDaGFpbkxvYWRlZCkKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7
CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzYW5k
Ym94PSJhbGxvdy1zY3JpcHRzIiBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3Jlc291cmNlcy9wYWdlLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVj
dC1pcC10by1sb2NhbGhvc3QtdG8taXAuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zYW5kYm94ZWQtbmVzdGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGly
ZWN0LWxvY2FsaG9zdC10by1pcC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1u
ZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRv
LWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE1Yzg1
ZWI0N2UwZjA4NDE2ZTYxZmQwMTVmZDdhZTNjYjg2NmI2OQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zYW5kYm94ZWQtbmVz
dGluZy1pZnJhbWUtd2l0aC1zYW5kYm94ZWQtaWZyYW1lLXJlZGlyZWN0LWxvY2FsaG9zdC10by1p
cC10by1sb2NhbGhvc3QtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rl
c3RzIHRoYXQgcmVkaXJlY3RzIGZvciBhIHNhbmRib3hlZCBpZnJhbWUgbmVzdGVkIGluIGEgbm9u
LXNhbmRib3hlZCBpZnJhbWUgZ2V0IGNvdW50ZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFz
U3ViRnJhbWVVbmRlcigiaHR0cDovL2xvY2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIikgaXMg
dHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5n
VG8oImh0dHA6Ly9sb2NhbGhvc3QiLCAiaHR0cDovLzEyNy4wLjAuMSIpIGlzIHRydWUKK1BBU1Mg
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRwOi8v
MTI3LjAuMC4xIiwgImh0dHA6Ly9sb2NhbGhvc3QiKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlm
cmFtZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxv
Y2FsaG9zdC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3NhbmRib3hlZC1uZXN0aW5nLWlmcmFtZS13aXRoLXNhbmRib3hlZC1pZnJh
bWUtcmVkaXJlY3QtbG9jYWxob3N0LXRvLWlwLXRvLWxvY2FsaG9zdC1kYXRhYmFzZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjVlMTlkZDEwMDIxMTVkOGExOTRmYzIyNDFkNThmNGY4MmUwMDJiZDgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvc2FuZGJveGVkLW5lc3RpbmctaWZyYW1lLXdpdGgtc2FuZGJveGVkLWlmcmFtZS1yZWRpcmVj
dC1sb2NhbGhvc3QtdG8taXAtdG8tbG9jYWxob3N0LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1
NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIv
anMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNj
cmlwdGlvbigiVGVzdHMgdGhhdCByZWRpcmVjdHMgZm9yIGEgc2FuZGJveGVkIGlmcmFtZSBuZXN0
ZWQgaW4gYSBub24tc2FuZGJveGVkIGlmcmFtZSBnZXQgY291bnRlZCBwcm9wZXJseS4iKTsKKyAg
ICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlv
biBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVk
KHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRT
Y2FuRGF0YVJlY29yZHNDYWxsYmFjayhjaGVja1N0YXRzKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9CisKKyAgICAgICAgdmFyIGxhc3RQYWdlSW5SZWRpcmVjdENoYWluTG9hZGVkID0gZmFs
c2U7CisgICAgICAgIHZhciBzdGF0c0NoZWNrZWQgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlv
biByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9
PT0gIm51bGwiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFT
UyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJl
cGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2lu
OiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAgbGFzdFBhZ2VJblJlZGlyZWN0Q2hh
aW5Mb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXRzQ2hlY2tlZCkKKyAgICAgICAg
ICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIGNoZWNrU3RhdHMoKSB7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3Rl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcigiaHR0cDovL2xv
Y2FsaG9zdCIsICJodHRwOi8vMTI3LjAuMC4xIiknKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1
ZSgndGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKCJodHRw
Oi8vbG9jYWxob3N0IiwgImh0dHA6Ly8xMjcuMC4wLjEiKScpOworICAgICAgICAgICAgc2hvdWxk
QmVUcnVlKCd0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8o
Imh0dHA6Ly8xMjcuMC4wLjEiLCAiaHR0cDovL2xvY2FsaG9zdCIpJyk7CisKKyAgICAgICAgICAg
IHN0YXRzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICBpZiAobGFzdFBhZ2VJblJlZGlyZWN0
Q2hhaW5Mb2FkZWQpCisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9Cisg
ICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc2Ny
aXB0cyIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9y
ZXNvdXJjZXMvcGFnZS13aXRoLXNhbmRib3hlZC1pZnJhbWUtcmVkaXJlY3QtbG9jYWxob3N0LXRv
LWlwLXRvLWxvY2FsaG9zdC5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Nl
dC1jdXN0b20tcHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Nl
dC1jdXN0b20tcHJldmFsZW50LXJlc291cmNlLWluLWRlYnVnLW1vZGUtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjJkYzA3M2RhNDdjYmE0ODYwNzcyM2Q0ZmRiNjNjYmExNTZkODdl
NjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4tZGVidWctbW9kZS1k
YXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCBmb3IgZW5hYmxpbmcg
ZGVidWcgbW9kZSBhbmQgdGhhdCBpdCBhbGxvd3Mgc2V0dGluZyBhIGN1c3RvbSBkb21haW4gYXMg
YSBwcmV2YWxlbnQgcmVzb3VyY2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCBnb3Qgc2V0IGFzIGEgY3VzdG9tIHByZXZhbGVudCBy
ZXNvdXJjZSBpbiBkZWJ1ZyBtb2RlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9zZXQtY3VzdG9tLXByZXZhbGVudC1yZXNvdXJjZS1pbi1kZWJ1
Zy1tb2RlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4tZGVidWctbW9kZS1k
YXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmZGE4MTIwMTlhOWU3M2ZmOTU1ODkxNWUwZjg4OTI2
YThkOTA0OWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc2V0LWN1c3RvbS1wcmV2YWxlbnQtcmVzb3VyY2UtaW4tZGVidWct
bW9kZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxz
Y3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgZW5hYmxpbmcgZGVidWcgbW9k
ZSBhbmQgdGhhdCBpdCBhbGxvd3Mgc2V0dGluZyBhIGN1c3RvbSBkb21haW4gYXMgYSBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCB0
aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisKKyAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB0ZXN0UnVubmVy
LnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJl
dmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCh0aGlyZFBhcnR5T3JpZ2luICsgIiBhbHJlYWR5IHNldCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlRm9yRGVidWdNb2RlKHRoaXJkUGFydHlPcmlnaW4sIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0RlYnVnTW9kZSh0cnVlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCh0aGlyZFBhcnR5T3JpZ2luICsgIiBkaWRuJ3QgZ2V0IHNldCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RQYXNzZWQodGhpcmRQYXJ0eU9yaWdpbiArICIgZ290IHNldCBhcyBh
IGN1c3RvbSBwcmV2YWxlbnQgcmVzb3VyY2UgaW4gZGVidWcgbW9kZS4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzRGVidWdNb2RlKGZhbHNlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJl
c291cmNlLXJlZGlyZWN0cy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZv
ci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43YmQ1NDNlYzlhZjMyNGJkNTBkYzFkNGM4NmNkYjA5ZTljNGQ1YjI4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJl
ZGlyZWN0cy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdHMgdGhh
dCBvbmx5IHRoZSBvcmlnaW4gaXMgc2VudCBhcyByZWZlcnJlciBpbiByZWRpcmVjdHMgdG8gcHJl
dmFsZW50IHJlc291cmNlcyB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24uCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlZmVycmVyIGlzICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXBy
ZXZhbGVudC1zdWJyZXNvdXJjZS1yZWRpcmVjdHMtZGF0YWJhc2UuaHRtbCIKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKKy0tLS0tLS0tCitGcmFt
ZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQoraHR0cDovLzEyNy4wLjAuMTo4MDAwLwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0
cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlZGlyZWN0
cy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNl
LXJlZGlyZWN0cy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwZjhhMmY0MjBiNWFhNjJjMzdh
MjVkNGJkZGZlZDMzYTMzYmZhNWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZv
ci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVkaXJlY3RzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCAr
MSw1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBvbmx5IHRoZSBvcmlnaW4gaXMgc2VudCBh
cyByZWZlcnJlciBpbiByZWRpcmVjdHMgdG8gcHJldmFsZW50IHJlc291cmNlcyB3aXRob3V0IHVz
ZXIgaW50ZXJhY3Rpb24uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgdGVzdFJ1
bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKworICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUo
dXJsLCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAg
ICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9u
TG9hZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChlbGVtZW50KTsKKyAgICB9CisKKyAgICB2YXIgcmVmZXJyZXI7CisgICAgdGVzdFJ1bm5lci5z
ZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxo
b3N0IHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZSBiZWZvcmUgdGhlIHRlc3Qg
c3RhcnRlZC4iKTsKKworICAgICAgICBmZXRjaCgicmVzb3VyY2VzL2VjaG8tcmVmZXJyZXIucGhw
IikudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNl
LnRleHQoKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbihkYXRhKSB7CisgICAgICAgICAgICBy
ZWZlcnJlciA9IGRhdGE7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVy
cmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlw
LXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlZGlyZWN0cy1k
YXRhYmFzZS5odG1sIik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKCJodHRwOi8vbG9jYWxob3N0IiwgdHJ1ZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKCJodHRwOi8vbG9jYWxob3N0IikpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ikhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKCJyZXNvdXJjZXMvcmVkaXJl
Y3QucGhwP3JlZGlyZWN0VG89aHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcmVzb3VyY2VzL2VjaG8tcmVmZXJyZXIucGhwIiwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOwor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAgY29u
c29sZS5sb2coZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9KTsKKyAgICB9KTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1
YnJlc291cmNlLXJlcXVlc3RzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4t
Zm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODljY2I5YzIxZmYwMDcxYTk4MDIzOWI3Yjc5M2Y1NTE4N2ViZWU1ZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJjZS1y
ZXF1ZXN0cy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorVGVzdHMgdGhh
dCBvbmx5IHRoZSBvcmlnaW4gaXMgc2VudCBhcyByZWZlcnJlciBmb3IgcHJldmFsZW50IHJlc291
cmNlcyB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHJlZmVycmVyIGlzICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJy
ZXNvdXJjZS1yZXF1ZXN0cy1kYXRhYmFzZS5odG1sIgorUEFTUyByZWZlcnJlciBpcyAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwLyIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0t
LQoraHR0cDovLzEyNy4wLjAuMTo4MDAwLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3It
cHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVlc3RzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RyaXAtcmVmZXJyZXItdG8tb3Jp
Z2luLWZvci1wcmV2YWxlbnQtc3VicmVzb3VyY2UtcmVxdWVzdHMtZGF0YWJhc2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xNWQ0ZjAzNjZmOTdjZmNlOTQyOGE2YTg2ZTUxNTQ4MzYwZTMyMTc3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJlcXVl
c3RzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhh
dCBvbmx5IHRoZSBvcmlnaW4gaXMgc2VudCBhcyByZWZlcnJlciBmb3IgcHJldmFsZW50IHJlc291
cmNlcyB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAganNUZXN0SXNBc3luYyA9IHRy
dWU7CisgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKworICAgIGZ1bmN0
aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5z
cmMgPSB1cmw7CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVt
ZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAgICB2YXIgcmVmZXJyZXI7Cisg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICBzZXRFbmFibGVGZWF0
dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZSgiaHR0cDovL2xvY2FsaG9zdCIpKQorICAgICAgICAgICAgdGVz
dEZhaWxlZCgiTG9jYWxob3N0IHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVudCByZXNvdXJjZSBi
ZWZvcmUgdGhlIHRlc3Qgc3RhcnRlZC4iKTsKKworICAgICAgICBmZXRjaCgicmVzb3VyY2VzL2Vj
aG8tcmVmZXJyZXIucGhwIikudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAg
cmV0dXJuIHJlc3BvbnNlLnRleHQoKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbihkYXRhKSB7
CisgICAgICAgICAgICByZWZlcnJlciA9IGRhdGE7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291
cmNlLXJlcXVlc3RzLWRhdGFiYXNlLmh0bWwiKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiLCB0cnVlLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UoImh0dHA6Ly9sb2NhbGhvc3QiKSkKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2ll
QmxvY2tpbmcoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGZldGNoKCJodHRwOi8v
bG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvZWNoby1yZWZl
cnJlci5waHAiKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpOworICAgICAgICAgICAgICAgICAgICB9KS50aGVu
KGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVycmVyID0gZGF0
YTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJy
ZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwLyIpOworCisgICAgICAgICAgICAgICAgICAgICAg
ICBvcGVuSWZyYW1lKCJyZXNvdXJjZXMvcmVkaXJlY3QucGhwP3JlZGlyZWN0VG89aHR0cDovL2xv
Y2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL2VjaG8tcmVmZXJy
ZXIucGhwIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0pOworCisgICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgICAgICBj
b25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0pOworICAgIH0pOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlvbi10by1wcmV2YWxl
bnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdh
dGlvbi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzQzOTIyZmQ5M2YxYTU0NDRmMmNiMDY4ODRlZmMzMjkwYmFlNTFmNAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zd2l0Y2gtc2Vzc2lvbi1vbi1uYXZpZ2F0aW9uLXRvLXByZXZhbGVudC13aXRoLWludGVy
YWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0
IHRoZSBzZXNzaW9uIGlzIHN3aXRjaGVkIHVwb24gdG9wIGZyYW1lIG5hdmlnYXRpb24gdG8gYSBw
cmV2YWxlbnQgcmVzb3VyY2Ugd2l0aCB1c2VyIGludGVyYWN0aW9uLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBTaG91bGQgaGF2ZSBhbmQgaGFzIHRoZSBzZXNzaW9uIGNv
b2tpZS4KK1BBU1MgU2hvdWxkIGhhdmUgYW5kIGhhcyB0aGUgcGVyc2lzdGVudCBjb29raWUuCitQ
QVNTIE9yaWdpbiBoYXMgaXNvbGF0ZWQgc2Vzc2lvbi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3dpdGNoLXNlc3Npb24tb24tbmF2aWdhdGlv
bi10by1wcmV2YWxlbnQtd2l0aC1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5h
dmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42MjcwYzAwYjA0ODE2NjYwYmM4MWQwZDZlZTg5Y2FhNzBlMWY3NGJjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rp
b24tZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDExMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhh
dCB0aGUgc2Vzc2lvbiBpcyBzd2l0Y2hlZCB1cG9uIHRvcCBmcmFtZSBuYXZpZ2F0aW9uIHRvIGEg
cHJldmFsZW50IHJlc291cmNlIHdpdGggdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IHByZXZhbGVudE9yaWdpbiA9ICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IG5vblByZXZhbGVudE9yaWdpbiA9ICJodHRwOi8vbG9j
YWxob3N0OjgwMDAiOworICAgIGNvbnN0IHNlc3Npb25Db29raWVOYW1lID0gInNlc3Npb25Db29r
aWUiOworICAgIGNvbnN0IHBlcnNpc3RlbnRDb29raWVOYW1lID0gInBlcnNpc3RlbnRDb29raWUi
OworICAgIGNvbnN0IHR3b01pbnV0ZXNJblNlY29uZHMgPSAxMjA7CisKKyAgICBmdW5jdGlvbiBz
ZXRTZXNzaW9uQ29va2llKCkgeworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBzZXNzaW9uQ29v
a2llTmFtZSArICI9MTsgcGF0aD0vIjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZXRQZXJzaXN0
ZW50Q29va2llKCkgeworICAgICAgICBkb2N1bWVudC5jb29raWUgPSBwZXJzaXN0ZW50Q29va2ll
TmFtZSArICI9MTsgcGF0aD0vOyBNYXgtQWdlPSIgKyB0d29NaW51dGVzSW5TZWNvbmRzICsgIjsi
OworICAgIH0KKworICAgIGZ1bmN0aW9uIGNoZWNrQ29va2llcyhzaG91bGRIYXZlU2Vzc2lvbkNv
b2tpZSwgc2hvdWxkSGF2ZVBlcnNpc3RlbnRDb29raWUpIHsKKyAgICAgICAgbGV0IGhhc1Nlc3Np
b25Db29raWUgPSAoZG9jdW1lbnQuY29va2llICsgIiIpLmluY2x1ZGVzKHNlc3Npb25Db29raWVO
YW1lKSwKKyAgICAgICAgICAgIGhhc1BlcnNpc3RlbnRDb29raWUgPSAoZG9jdW1lbnQuY29va2ll
ICsgIiIpLmluY2x1ZGVzKHBlcnNpc3RlbnRDb29raWVOYW1lKTsKKworICAgICAgICBpZiAoc2hv
dWxkSGF2ZVNlc3Npb25Db29raWUgJiYgaGFzU2Vzc2lvbkNvb2tpZSkKKyAgICAgICAgICAgIHRl
c3RQYXNzZWQoIlNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHNlc3Npb24gY29va2llLiIpOworICAg
ICAgICBlbHNlIGlmIChzaG91bGRIYXZlU2Vzc2lvbkNvb2tpZSAmJiAhaGFzU2Vzc2lvbkNvb2tp
ZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkIGhhdmUgYnV0IGRvZXNuJ3QgaGF2
ZSB0aGUgc2Vzc2lvbiBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UgaWYgKCFzaG91bGRIYXZlU2Vzc2lv
bkNvb2tpZSAmJiBoYXNTZXNzaW9uQ29va2llKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJT
aG91bGRuJ3QgaGF2ZSBidXQgaGFzIHRoZSBzZXNzaW9uIGNvb2tpZS4iKTsKKyAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxkbid0IGhhdmUgYW5kIGRvZXNuJ3QgaGF2ZSB0
aGUgc2Vzc2lvbiBjb29raWUuIik7CisKKworICAgICAgICBpZiAoc2hvdWxkSGF2ZVBlcnNpc3Rl
bnRDb29raWUgJiYgaGFzUGVyc2lzdGVudENvb2tpZSkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQo
IlNob3VsZCBoYXZlIGFuZCBoYXMgdGhlIHBlcnNpc3RlbnQgY29va2llLiIpOworICAgICAgICBl
bHNlIGlmIChzaG91bGRIYXZlUGVyc2lzdGVudENvb2tpZSAmJiAhaGFzUGVyc2lzdGVudENvb2tp
ZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2hvdWxkIGhhdmUgYnV0IGRvZXNuJ3QgaGF2
ZSB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9IGVsc2UgaWYgKCFzaG91bGRIYXZlUGVy
c2lzdGVudENvb2tpZSAmJiBoYXNQZXJzaXN0ZW50Q29va2llKSB7CisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJTaG91bGRuJ3QgaGF2ZSBidXQgaGFzIHRoZSBwZXJzaXN0ZW50IGNvb2tpZS4iKTsK
KyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiU2hvdWxkbid0IGhhdmUgYW5kIGRv
ZXNuJ3QgaGF2ZSB0aGUgcGVyc2lzdGVudCBjb29raWUuIik7CisgICAgfQorCisgICAgZnVuY3Rp
b24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7
CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihwcmV2YWxlbnRPcmlnaW4sIHRydWUs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBzZXRTZXNzaW9uQ29va2llKCk7Cisg
ICAgICAgICAgICAgICAgICAgIHNldFBlcnNpc3RlbnRDb29raWUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgY2hlY2tDb29raWVzKHRydWUsIHRydWUpOworICAgICAgICAgICAgICAgICAgICBpZiAo
dGVzdFJ1bm5lci5oYXNTdGF0aXN0aWNzSXNvbGF0ZWRTZXNzaW9uKHByZXZhbGVudE9yaWdpbikp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk9yaWdpbiBoYXMgaXNvbGF0
ZWQgc2Vzc2lvbi4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiT3JpZ2luIGhhcyBubyBpc29sYXRlZCBzZXNz
aW9uLiIpOworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gbm9u
UHJldmFsZW50T3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9u
LW9uLW5hdmlnYXRpb24tdG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRt
bCNzdGVwMiI7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0
aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlv
bi5vcmlnaW4gIT09IG5vblByZXZhbGVudE9yaWdpbikKKyAgICAgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiU3RlcCAyIGlzIG5vdCBvbiAiICsgbm9uUHJldmFsZW50T3JpZ2luICsgIi4iKTsK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShwcmV2YWxlbnRPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50
T3JpZ2luKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChwcmV2YWxlbnRP
cmlnaW4gKyAiIGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHJ1blRlc3QpOworICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAzIjoK
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gcHJldmFsZW50T3JpZ2lu
ICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N3aXRjaC1zZXNzaW9uLW9uLW5hdmlnYXRpb24t
dG8tcHJldmFsZW50LXdpdGgtaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCNzdGVwNCI7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAg
ICAgICAgIGNoZWNrQ29va2llcyh0cnVlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBpZiAodGVz
dFJ1bm5lci5oYXNTdGF0aXN0aWNzSXNvbGF0ZWRTZXNzaW9uKHByZXZhbGVudE9yaWdpbikpCisg
ICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIk9yaWdpbiBoYXMgaXNvbGF0ZWQgc2Vzc2lv
bi4iKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIk9yaWdpbiBoYXMgbm8gaXNvbGF0ZWQgc2Vzc2lvbi4iKTsKKyAgICAgICAgICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJV
bmtub3duIGhhc2guIik7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1bWVudC5sb2Nh
dGlvbi5oYXNoID09PSAiIikgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2lu
ICE9PSBwcmV2YWxlbnRPcmlnaW4pCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJUZXN0IGlzIG5v
dCBzdGFydGluZyBvdXQgb24gIiArIHByZXZhbGVudE9yaWdpbiArICIuIik7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50T3JpZ2luKSkKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKHByZXZhbGVudE9yaWdpbiArICIgd2FzIGNsYXNzaWZpZWQgYXMgcHJldmFs
ZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydHMuIik7CisgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdGVsZW1ldHJ5LWdlbmVyYXRpb24uaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy90ZWxlbWV0cnktZ2VuZXJh
dGlvbi5odG1sCmluZGV4IDg0MTk1NjIwNzBiMjg3ODQ4NmUwOTQxYjJlMmUxY2IyNWU4NjE3MmMu
LjY0N2RiMzAwZWY4YTI1ODE0NDA5ZDhlMTVlNmJiYjkzNjU1YjU5ZGMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy90ZWxlbWV0cnktZ2Vu
ZXJhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy90ZWxlbWV0cnktZ2VuZXJhdGlvbi5odG1sCkBAIC04LDYgKzgsNyBAQAogPC9oZWFk
PgogPGJvZHk+CiA8c2NyaXB0PgorICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UoZmFs
c2UpOwogICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRlbGVtZXRyeSBmb3IgcHJldmFsZW50
IHJlc291cmNlcyBpcyBjYWxjdWxhdGVkIGNvcnJlY3RseS4iKTsKICAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1k
YXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1pbi1jcm9zcy1vcmlnaW4tc3ViLWZyYW1lLWRh
dGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODQyNzMwYTQ1ZGFkZTZlYTZmMTVkZWNj
MzlhN2U1YTlhMGUzMTJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24taW4tY3Jvc3Mtb3JpZ2lu
LXN1Yi1mcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMg
dGhhdCB1c2VyIGludGVyYWN0aW9uIGlzIGFsd2F5cyBsb2dnZWQgZm9yIHRoZSB0b3AgZG9jdW1l
bnQvZnJhbWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50
LmxvY2F0aW9uLm9yaWdpbiBpcyB0b3BGcmFtZU9yaWdpbgorUEFTUyB0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BB
U1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVP
cmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWlu
dGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9u
LWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjc0
ZDA5MDk3MGM1NjNiZmJhNGQ5M2NmYTY0NWNhYjE1YTU5NGUwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJh
Y3Rpb24taW4tY3Jvc3Mtb3JpZ2luLXN1Yi1mcmFtZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEs
NDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0
IHVzZXIgaW50ZXJhY3Rpb24gaXMgYWx3YXlzIGxvZ2dlZCBmb3IgdGhlIHRvcCBkb2N1bWVudC9m
cmFtZS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOwordGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRh
YmFzZSh0cnVlKTsKKworY29uc3QgdG9wRnJhbWVPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4
MDAwIjsKK2NvbnN0IHN1YkZyYW1lT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisK
K2Z1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SWQpIHsKKyAgICB2YXIgZWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgdmFyIGNlbnRlclggPSBl
bGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICB2YXIgY2Vu
dGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAg
IFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSk7Cit9CisKK2Z1bmN0aW9uIGZp
bmlzaFRlc3QoKSB7CisgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICBzaG91bGRCZUZhbHNl
KCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9y
aWdpbikiKTsKKyAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworfQor
CitvbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh0cnVl
KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJl
Y29yZHNDYWxsYmFjayhmaW5pc2hUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIHNob3VsZEJl
KCJkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4iLCAidG9wRnJhbWVPcmlnaW4iKTsKKworICAgICAg
ICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIik7Cisg
ICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKworICAgICAgICAgICAgYWN0aXZhdGVF
bGVtZW50KCJ0ZXN0RnJhbWUiKTsKKyAgICAgICAgfQorICAgIH0pOworfTsKKzwvc2NyaXB0Pgor
PGlmcmFtZSBpZD0idGVzdEZyYW1lIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9kdW1teS5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hv
cnQtcGVyaW9kLW9mLXRpbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBv
cnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTQzMmJjOGVkNzM4MWZiYzQ5OGRiMzRjMGZiM2JlN2E1N2JkOTFkMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQt
cGVyaW9kLW9mLXRpbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rl
c3RzIHRoYXQgdXNlciBpbnRlcmFjdGlvbiBpcyBub3QgcmVwb3J0ZWQgcmVwZWF0ZWRseSB3aXRo
aW4gYSBzaG9ydCBwZXJpb2Qgb2YgdGltZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luIGlzIHRvcEZyYW1lT3JpZ2luCitQQVNT
IHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3Jp
Z2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbihzdWJGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIGlzIHRydWUKK1BBU1Mg
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmln
aW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1Mg
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmln
aW4pIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKK1RoaXMgaXMgdGhlIHRlc3QgZWxlbWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1y
ZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRhYmFzZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJh
Y3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS1kYXRh
YmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwOTUyNDJjYWQ2NzQwNDE3YWE5OTcyNDYxODk4MTQ0ZGMy
Y2U5M2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGlu
LXNob3J0LXBlcmlvZC1vZi10aW1lLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJj
ZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHVzZXIg
aW50ZXJhY3Rpb24gaXMgbm90IHJlcG9ydGVkIHJlcGVhdGVkbHkgd2l0aGluIGEgc2hvcnQgcGVy
aW9kIG9mIHRpbWUuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCB0
b3BGcmFtZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN1YkZy
YW1lT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisKKyAgICBmdW5jdGlvbiBhY3Rp
dmF0ZUVsZW1lbnQoZWxlbWVudElkLCBjYWxsYmFjaykgeworICAgICAgICB2YXIgZWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgIHZhciBjZW50ZXJY
ID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAg
IHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAv
IDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigK
KyAgICAgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7Cisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiUHJvbWlzZSByZWplY3RlZC4iKTsKKyAgICAgICAgICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgfQorICAgICAgICAp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIGZpcnN0SW50ZXJhY3Rpb24oKSB7CisgICAgICAgIHNo
b3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKyAgICAg
ICAgYWN0aXZhdGVFbGVtZW50KCJ0ZXN0RWxlbWVudCIsIHNlY29uZEludGVyYWN0aW9uKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBzZWNvbmRJbnRlcmFjdGlvbigpIHsKKyAgICAgICAgc2hvdWxk
QmVUcnVlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BG
cmFtZU9yaWdpbikiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7CisKKyAgICAgICAg
aWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbiwgZmFsc2UsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworCisgICAgICAgICAgICAgICAg
YWN0aXZhdGVFbGVtZW50KCJ0ZXN0RWxlbWVudCIsIGZpbmlzaFRlc3QpOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAg
ICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7
CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQor
CisgICAgb25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQ
RGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICBzaG91bGRCZSgiZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luIiwgInRv
cEZyYW1lT3JpZ2luIik7CisKKyAgICAgICAgICAgIGZpcnN0SW50ZXJhY3Rpb24oKTsKKyAgICAg
ICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorPGRpdiBpZD0idGVzdEVsZW1lbnQiPlRoaXMgaXMg
dGhlIHRlc3QgZWxlbWVudDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rp
b24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXIt
aW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmMjhjOTliMzAyNDQ0NTYwYjUxYjM0OGI5NjAyMWIw
NTg1NmVhM2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13ZWJzaXRl
LWRhdGEtcmVtb3ZhbC1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGVz
dHMgdGhhdCB1c2VyIGludGVyYWN0aW9uIGlzIHJlcG9ydGVkIGFmdGVyIGhpc3RvcnkgcmVtb3Zh
bCBzaW5jZSB0aGF0IG1lYW5zIGFsbCBzdGF0aXN0aWNzIGhhdmUgYmVlbiByZXNldC4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQubG9jYXRpb24ub3JpZ2lu
IGlzIHRvcEZyYW1lT3JpZ2luCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikgaXMgZmFsc2UK
K1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJh
bWVPcmlnaW4pIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2Vy
SW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyBmYWxzZQor
UEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFt
ZU9yaWdpbikgaXMgdHJ1ZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorVGhpcyBpcyB0aGUgdGVzdCBlbGVtZW50CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
dXNlci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1kYXRh
YmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwtZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYmViNDJmOTQyZjFiNjhmZmFjZmUwZWZiMWZlOTIzOTYy
ZjIyNjhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1k
YXRhLXJlbW92YWwtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxw
ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdXNlciBpbnRlcmFjdGlv
biBpcyByZXBvcnRlZCBhZnRlciBoaXN0b3J5IHJlbW92YWwgc2luY2UgdGhhdCBtZWFucyBhbGwg
c3RhdGlzdGljcyBoYXZlIGJlZW4gcmVzZXQuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7
CisKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOwor
ICAgIGNvbnN0IHN1YkZyYW1lT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisKKyAg
ICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElkLCBjYWxsYmFjaykgeworICAgICAg
ICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAg
ICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0
aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50
Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwg
Y2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
IGNhbGxiYWNrKCk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlzZSByZWplY3RlZC4iKTsKKyAgICAgICAg
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAg
ICAgfQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIGZpcnN0SW50ZXJhY3Rpb24o
KSB7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFk
VXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAgICBzaG91bGRCZUZhbHNl
KCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9y
aWdpbikiKTsKKyAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0ZXN0RWxlbWVudCIsIGNsZWFyV2Vi
c2l0ZURhdGEpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNsZWFyV2Vic2l0ZURhdGEoKSB7Cisg
ICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoInRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSIp
OworCisgICAgICAgIGlmICh0ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0
aXN0aWNzQ2xlYXJUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKHNlY29uZEludGVyYWN0aW9uKTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBzZWNvbmRJbnRlcmFjdGlvbigpIHsKKyAgICAgICAgc2hv
dWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24o
dG9wRnJhbWVPcmlnaW4pIik7CisgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGVzdEVsZW1lbnQi
LCBmaW5pc2hUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAg
ICAgICBzaG91bGRCZVRydWUoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsK
KworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0K
KworICAgIG9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiIsICJ0
b3BGcmFtZU9yaWdpbiIpOworCisgICAgICAgICAgICBmaXJzdEludGVyYWN0aW9uKCk7CisgICAg
ICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KKzxkaXYgaWQ9InRlc3RFbGVtZW50Ij5UaGlzIGlz
IHRoZSB0ZXN0IGVsZW1lbnQ8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy93ZWJzaXRlLWRhdGEt
cmVtb3ZhbC1mb3Itc2l0ZS1uYXZpZ2F0ZWQtdG8td2l0aC1saW5rLWRlY29yYXRpb24uaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy93ZWJzaXRlLWRh
dGEtcmVtb3ZhbC1mb3Itc2l0ZS1uYXZpZ2F0ZWQtdG8td2l0aC1saW5rLWRlY29yYXRpb24uaHRt
bAppbmRleCBiZDNmNjYzYWI3M2Q5ZGQwZjE4NjExNjQwNWFhOWJhMzdmM2UwNWQ5Li42ZWI2MTlh
Yzc1MjE2ZGRjNTU5YzVhN2ZmZDFhYzJmYTVkMTgwNmVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwt
Zm9yLXNpdGUtbmF2aWdhdGVkLXRvLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1y
ZW1vdmFsLWZvci1zaXRlLW5hdmlnYXRlZC10by13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sCkBA
IC0xMCw2ICsxMCw3IEBACiA8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgogPGJyPgogPHNjcmlwdD4K
KyAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKGZhbHNlKTsKICAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBiMTU2ZDUxYjAxOGI4MTA5
YmYzYTEwMTE2ZjVmNGQ4NWQzYWQxMTVkLi5jMzc4ODYyNDhiYjY2ODNhYWZkMDdlYTMyMWNkMDVi
ZTk0ZTI3NzY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtOTg5LDYgKzk4OSw4IEBAIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9rZXlib2FyZC1ldmVudHMt
ZHVyaW5nLXByb3Zpc2lvbmFsLW5hdmlnYXRpb24uaHRtbCBbIFNraXAKIGh0dHAvdGVzdHMvbmF2
aWdhdGlvbi9rZXlib2FyZC1ldmVudHMtZHVyaW5nLXByb3Zpc2lvbmFsLXN1YmZyYW1lLW5hdmln
YXRpb24uaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3By
ZXZhbGVudC1yZXNvdXJjZS1oYW5kbGVkLWtleWRvd24uaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS11bmhhbmRsZWQta2V5
ZG93bi5odG1sIFsgU2tpcCBdCitodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJl
dmFsZW50LXJlc291cmNlLWhhbmRsZWQta2V5ZG93bi1kYXRhYmFzZS5odG1sIFsgU2tpcCBdCito
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXVuaGFu
ZGxlZC1rZXlkb3duLWRhdGFiYXNlLmh0bWwgWyBTa2lwIF0KIG1lZGlhL2F1ZGlvLXBsYXliYWNr
LXZvbHVtZS1jaGFuZ2VzLXdpdGgtcmVzdHJpY3Rpb25zLWFuZC11c2VyLWdlc3R1cmVzLmh0bWwg
WyBTa2lwIF0KIG1lZGlhL2F1ZGlvLXBsYXliYWNrLXZvbHVtZS1jaGFuZ2VzLXdpdGgtcmVzdHJp
Y3Rpb25zLmh0bWwgWyBTa2lwIF0KIG1lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS1pbnRlcnJ1cHRp
b24uaHRtbCBbIFNraXAgXQpAQCAtMjc3OSw2ICsyNzgxLDkgQEAgZmFzdC9jYW52YXMvd2ViZ2wv
cmVhZFBpeGVscy1mbG9hdC5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTc0MTIwIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9y
aWdpbi1zdWItZnJhbWUuaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1w
ZXJpb2Qtb2YtdGltZS5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvdXNlci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3Zh
bC5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTc0MTIwIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUt
ZGF0YWJhc2UuaHRtbCBbIFNraXAgXQoraHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3VzZXItaW50ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qt
b2YtdGltZS1kYXRhYmFzZS5odG1sIFsgU2tpcCBdCitodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVt
b3ZhbC1kYXRhYmFzZS5odG1sIFsgU2tpcCBdCiAjIFNraXBwZWQgaW4gV0syIGV4cGVjdGF0aW9u
cyBiZWNhdXNlIGNvb2tpZSBwYXJ0aXRpb25pbmcgaXMgb25seSBhdmFpbGFibGUgaW4gbWFjT1Mg
SGlnaCBTaWVycmEgYW5kIGlPUyAxMS4KIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jb29raWUtZGVsZXRpb24uaHRtbCBbIFBhc3MgXQogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2Nvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLmh0bWwg
WyBQYXNzIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>