<?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>222897</bug_id>
          
          <creation_ts>2021-03-07 22:54:10 -0800</creation_ts>
          <short_desc>[perf dashboard] Add commit revision label support</short_desc>
          <delta_ts>2021-03-31 17:50:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>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>221982</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zhifei Fang">zhifei_fang</reporter>
          <assigned_to name="Zhifei Fang">zhifei_fang</assigned_to>
          <cc>ap</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>jbedard</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zhifei_fang</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1736980</commentid>
    <comment_count>0</comment_count>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-07 22:54:10 -0800</bug_when>
    <thetext>Add commit identifier support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736981</commentid>
    <comment_count>1</comment_count>
      <attachid>422544</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-07 22:56:28 -0800</bug_when>
    <thetext>Created attachment 422544
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736990</commentid>
    <comment_count>2</comment_count>
      <attachid>422544</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-03-08 00:22:27 -0800</bug_when>
    <thetext>Comment on attachment 422544
Patch

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

I believe we also need some changes to report-processor.php around line 163.

&gt; Websites/perf.webkit.org/ChangeLog:10
&gt; +        Reviewed by NOBODY (OOPS!).

`Reviewed by` should be the line before the detailed commit description.

&gt; Websites/perf.webkit.org/ChangeLog:15
&gt; +        * init-database.sql:
&gt; +        * migrate-database.sql:

Maybe a brief description for the change here would be since

&gt; Websites/perf.webkit.org/init-database.sql:105
&gt; +    commit_identifier varchar(64) DEFAULT NULL,

Let&apos;s also add a constraint for commit_identifier as well 
CONSTRAINT commit_identifier_in_repository_must_be_unique UNIQUE(commit_repository, commit_identifier));
Also add a unit test for that.

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:56
&gt; +        let revision_format = revision;

Do you mean `formatted_revision` here?

&gt; Websites/perf.webkit.org/server-tests/resources/test-server.conf:20
&gt; +LoadModule php7_module /usr/local/Cellar/php@7.4/7.4.16/lib/httpd/modules/libphp7.so

Let&apos;s remove this line for now until we finalized way to setup an instance on recent macOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737279</commentid>
    <comment_count>3</comment_count>
      <attachid>422615</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-08 13:54:02 -0800</bug_when>
    <thetext>Created attachment 422615
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737281</commentid>
    <comment_count>4</comment_count>
      <attachid>422615</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-03-08 13:59:24 -0800</bug_when>
    <thetext>Comment on attachment 422615
Patch

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

&gt; Websites/perf.webkit.org/server-tests/resources/test-server.conf:20
&gt; +LoadModule php7_module /usr/local/Cellar/php@7.4/7.4.16/lib/httpd/modules/libphp7.so

Let&apos;s remove this for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737296</commentid>
    <comment_count>5</comment_count>
      <attachid>422619</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-08 14:27:41 -0800</bug_when>
    <thetext>Created attachment 422619
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737388</commentid>
    <comment_count>6</comment_count>
      <attachid>422619</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-03-08 17:21:13 -0800</bug_when>
    <thetext>Comment on attachment 422619
Patch

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

&gt; Websites/perf.webkit.org/ChangeLog:10
&gt; +        Add new column commit identifier
&gt; +        Make all commit api also can work with commit identifier
&gt; +        Change the commit label display with commit identiier

Those sentences should end with &apos;.&apos;.
Typo in `identiier` -&gt; `identifier`.
`Change the commit label display with commit identiier` -&gt; `Change commit label to display commit *with* identifier.`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737392</commentid>
    <comment_count>7</comment_count>
      <attachid>422619</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-08 17:38:03 -0800</bug_when>
    <thetext>Comment on attachment 422619
Patch

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

&gt; Websites/perf.webkit.org/browser-tests/commit-log-viewer-tests.js:137
&gt; +            expect(viewer.content(&apos;spinner-container&apos;).offsetHeight).to.not.be(0);
&gt; +            await waitForComponentsToRender(context);

What is this test change about? It should be explained in the change log.

&gt; Websites/perf.webkit.org/browser-tests/commit-log-viewer-tests.js:142
&gt; -            expect(viewer.content(&apos;commits-list&apos;).textContent).to.contain(&apos;r210950&apos;);
&gt; +            expect(viewer.content(&apos;commits-list&apos;).textContent).to.contain(&apos;184278@main (r210950)&apos;);

Please add a new test instead of mutating an existing test case.

&gt; Websites/perf.webkit.org/init-database.sql:105
&gt; +    commit_identifier varchar(64) DEFAULT NULL,

Calling this &quot;identifier&quot; is a bit confusing because we also have commit_id.
Maybe commit_revision_identifier?

&gt; Websites/perf.webkit.org/migrate-database.sql:19
&gt; +    ALTER TABLE commits ADD COLUMN IF NOT EXISTS commit_identifier;
&gt; +    ALTER TABLE commits DROP CONSTRAINT commit_identifier_in_repository_must_be_unique;
&gt; +    ALTER TABLE commits ADD CONSTRAINT commit_identifier_in_repository_must_be_unique UNIQUE(commit_repository, commit_identifier);

r-. This can&apos;t be right. This migration is nothing to do with having build_number.

&gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:9
&gt;      static function find_commit_id_by_revision($db, $repository_id, $revision)

Huh, I think this function is really a duplicate of fetch_revision.
Not sure how we ended up with two functions here.
We should probably clean this up in a separate patch.

&gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:13
&gt; +        $column_name = &apos;revision&apos;;
&gt; +        if ($this-&gt;is_commit_identifier($revision))
&gt; +            $column_name = &apos;identifier&apos;;

Please put the whole column name into the variable.

&gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:201
&gt; +    private function is_commit_identifier($commit_revision_or_identifier) {
&gt; +        return preg_match(&apos;/\d+@\S+/&apos;, $commit_revision_or_identifier);

I don&apos;t think \S+ is right. We want 1234@ is match 1234@main.
Or are we doing that transformation in the frontend?

&gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:208
&gt; -        $commit_info = array(&apos;repository&apos; =&gt; $repository_id, &apos;revision&apos; =&gt; $revision);
&gt; +        if (!$this-&gt;is_commit_identifier($revision))
&gt; +            $commit_info = array(&apos;repository&apos; =&gt; $repository_id, &apos;revision&apos; =&gt; $revision);
&gt; +        else 
&gt; +            $commit_info = array(&apos;repository&apos; =&gt; $repository_id, &apos;identifier&apos; =&gt; $revision);

Looks like this can just be:
$commit_info = array(&apos;repository&apos; =&gt; $repository_id);
$commit_info[$this-&gt;is_commit_identifier($revision) ? &apos;identifier&apos; : &apos;revision&apos;] = $revision;

&gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:218
&gt; +        $column_name = &apos;revision&apos;;
&gt; +        if ($this-&gt;is_commit_identifier($revision_prefix))
&gt; +            $column_name = &apos;identifier&apos;;

Please use a ternary expression here as well.

&gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:220
&gt; +        $rows = $this-&gt;db-&gt;query_and_fetch_all(&apos;SELECT * FROM commits WHERE commit_repository = $1 AND commit_&apos;.$column_name.&apos; LIKE $2 ORDER BY commit_&apos;.$column_name.&apos; LIMIT 2&apos;, array($repository_id, Database::escape_for_like($revision_prefix) . &apos;%&apos;));

Nit: Need spaces around each &quot;.&quot;.

&gt; Websites/perf.webkit.org/public/include/commit-updater.php:89
&gt; +                $commit_identifiers[$commit_info[&apos;identifier&apos;]] = true;
&gt; +            }

We should also verify the format of identifier.
r- due to the lack of the check here and the lack of tests for that check.

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:39
&gt;      testability() { return this._rawData[&apos;testability&apos;]; }

We also need to update CommitLog.prototype.updateSingleton
so that we can either assert that commit identifiers don&apos;t change or update it dynamically.
r- due to this missing code and the lack of tests thereof.

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:42
&gt; +    identifier() { return this._rawData[&apos;identifier&apos;]}

Same issue here. It&apos;s confusing to have id() and identifier().
Probably we should call it revisionIdentifier().
Also nit: missing ; and a space at the end.

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:56
&gt; +        let formatted_revision = revision;

Nit: Use camelCase.

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:66
&gt;  

We also need to update diff(previousCommit).
r- due to the lack of change there and test cases thereof.

&gt; Websites/perf.webkit.org/server-tests/api-commits-tests.js:533
&gt; +        it(&quot;should return commit with commit identifier&quot;, () =&gt; {
&gt; +            return addSlaveForReport(subversionCommits).then(() =&gt; {

Use async &amp; await.

&gt; Websites/perf.webkit.org/server-tests/api-commits-tests.js:756
&gt; +            ]).then(() =&gt; {
&gt; +                return TestServer.remoteAPI().getJSON(&apos;/api/commits/WebKit/?precedingRevision=184276@main&amp;lastRevision=184278@main&apos;);

Ditto.

&gt; Websites/perf.webkit.org/server-tests/api-commits-tests.js:806
&gt; +            return Promise.all([
&gt; +                db.insert(&apos;repositories&apos;, {&apos;id&apos;: 1, &apos;name&apos;: &apos;WebKit&apos;}),

Ditto.

&gt; Websites/perf.webkit.org/server-tests/api-commits-tests.js:825
&gt;      });

We need tests for when querying with a partial match.
Also, we need to check that, latest, oldest, etc... all support the commit identifiers.
r- due to the lack of these test cases.

&gt; Websites/perf.webkit.org/server-tests/api-report-commits-tests.js:172
&gt; +    it(&quot;should reject with duplicated commit identifier&quot;, () =&gt; {
&gt; +        return addSlaveForReport(subversionCommit).then(() =&gt; {

Use async &amp; await.

&gt; Websites/perf.webkit.org/server-tests/api-report-commits-tests.js:181
&gt; +

We also need tests for updating commit identifiers on an existing commit,
both an existing commit doesn&apos;t have any commit identifier and when it already has some other commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737393</commentid>
    <comment_count>8</comment_count>
      <attachid>422619</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-03-08 17:41:53 -0800</bug_when>
    <thetext>Comment on attachment 422619
Patch

I should have done the check more carefully in the first patch.
By searching the reference of `commit_revision` in our codebase, It looks like we may also want to expose the identifier info in `api/measurement-set.php: line 169 &amp; line 263`, `include/build-requests-fetcher.php: line 159`, otherwise, the UI may not be able to show commit with identifiers for CommitSet from BuildRequests and MeasurementSet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737397</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-08 17:49:56 -0800</bug_when>
    <thetext>(In reply to dewei_zhu from comment #8)
&gt; Comment on attachment 422619 [details]
&gt; Patch
&gt; 
&gt; I should have done the check more carefully in the first patch.
&gt; By searching the reference of `commit_revision` in our codebase, It looks
&gt; like we may also want to expose the identifier info in
&gt; `api/measurement-set.php: line 169 &amp; line 263`,
&gt; `include/build-requests-fetcher.php: line 159`, otherwise, the UI may not be
&gt; able to show commit with identifiers for CommitSet from BuildRequests and
&gt; MeasurementSet.

Also MeasurementCommitSet.

We need to make sure CommitSetRangeBisector._orderCommitSetsByTimeAndOrderThenDeduplicate works when commits have identifiers as well.

We probably want to do sometime about commits with identifiers in CommitLogViewer.

CustomAnalysisTaskConfigurator._computeCommitSet also has some funky logic with regards to revisions although it may not matter much if we&apos;re rewriting that whole thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737400</commentid>
    <comment_count>10</comment_count>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-08 17:51:25 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #7)
&gt; Comment on attachment 422619 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=422619&amp;action=review
&gt; 
&gt; &gt; Websites/perf.webkit.org/browser-tests/commit-log-viewer-tests.js:137
&gt; &gt; +            expect(viewer.content(&apos;spinner-container&apos;).offsetHeight).to.not.be(0);
&gt; &gt; +            await waitForComponentsToRender(context);
&gt; 
&gt; What is this test change about? It should be explained in the change log.

Yeah, this is a kind of strange, since we request the remote, it should firstly prompt the spinner, then hide the spinner to display the resolved list, not sure why this is passing at the very beginning.
&gt; 
&gt; &gt; Websites/perf.webkit.org/browser-tests/commit-log-viewer-tests.js:142
&gt; &gt; -            expect(viewer.content(&apos;commits-list&apos;).textContent).to.contain(&apos;r210950&apos;);
&gt; &gt; +            expect(viewer.content(&apos;commits-list&apos;).textContent).to.contain(&apos;184278@main (r210950)&apos;);
&gt; 
&gt; Please add a new test instead of mutating an existing test case.

Got it
&gt; 
&gt; &gt; Websites/perf.webkit.org/init-database.sql:105
&gt; &gt; +    commit_identifier varchar(64) DEFAULT NULL,
&gt; 
&gt; Calling this &quot;identifier&quot; is a bit confusing because we also have commit_id.
&gt; Maybe commit_revision_identifier?

I used this name because that&apos;s the &quot;official name&quot; somehow.
&gt; 
&gt; &gt; Websites/perf.webkit.org/migrate-database.sql:19
&gt; &gt; +    ALTER TABLE commits ADD COLUMN IF NOT EXISTS commit_identifier;
&gt; &gt; +    ALTER TABLE commits DROP CONSTRAINT commit_identifier_in_repository_must_be_unique;
&gt; &gt; +    ALTER TABLE commits ADD CONSTRAINT commit_identifier_in_repository_must_be_unique UNIQUE(commit_repository, commit_identifier);
&gt; 
&gt; r-. This can&apos;t be right. This migration is nothing to do with having
&gt; build_number.

good point
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:9
&gt; &gt;      static function find_commit_id_by_revision($db, $repository_id, $revision)
&gt; 
&gt; Huh, I think this function is really a duplicate of fetch_revision.
&gt; Not sure how we ended up with two functions here.
&gt; We should probably clean this up in a separate patch.
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:13
&gt; &gt; +        $column_name = &apos;revision&apos;;
&gt; &gt; +        if ($this-&gt;is_commit_identifier($revision))
&gt; &gt; +            $column_name = &apos;identifier&apos;;
&gt; 
&gt; Please put the whole column name into the variable.
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:201
&gt; &gt; +    private function is_commit_identifier($commit_revision_or_identifier) {
&gt; &gt; +        return preg_match(&apos;/\d+@\S+/&apos;, $commit_revision_or_identifier);
&gt; 
&gt; I don&apos;t think \S+ is right. We want 1234@ is match 1234@main.
&gt; Or are we doing that transformation in the frontend?
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:208
&gt; &gt; -        $commit_info = array(&apos;repository&apos; =&gt; $repository_id, &apos;revision&apos; =&gt; $revision);
&gt; &gt; +        if (!$this-&gt;is_commit_identifier($revision))
&gt; &gt; +            $commit_info = array(&apos;repository&apos; =&gt; $repository_id, &apos;revision&apos; =&gt; $revision);
&gt; &gt; +        else 
&gt; &gt; +            $commit_info = array(&apos;repository&apos; =&gt; $repository_id, &apos;identifier&apos; =&gt; $revision);
&gt; 
&gt; Looks like this can just be:
&gt; $commit_info = array(&apos;repository&apos; =&gt; $repository_id);
&gt; $commit_info[$this-&gt;is_commit_identifier($revision) ? &apos;identifier&apos; :
&gt; &apos;revision&apos;] = $revision;
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:218
&gt; &gt; +        $column_name = &apos;revision&apos;;
&gt; &gt; +        if ($this-&gt;is_commit_identifier($revision_prefix))
&gt; &gt; +            $column_name = &apos;identifier&apos;;
&gt; 
&gt; Please use a ternary expression here as well.
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:220
&gt; &gt; +        $rows = $this-&gt;db-&gt;query_and_fetch_all(&apos;SELECT * FROM commits WHERE commit_repository = $1 AND commit_&apos;.$column_name.&apos; LIKE $2 ORDER BY commit_&apos;.$column_name.&apos; LIMIT 2&apos;, array($repository_id, Database::escape_for_like($revision_prefix) . &apos;%&apos;));
&gt; 
&gt; Nit: Need spaces around each &quot;.&quot;.
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/include/commit-updater.php:89
&gt; &gt; +                $commit_identifiers[$commit_info[&apos;identifier&apos;]] = true;
&gt; &gt; +            }
&gt; 
&gt; We should also verify the format of identifier.
&gt; r- due to the lack of the check here and the lack of tests for that check.
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:39
&gt; &gt;      testability() { return this._rawData[&apos;testability&apos;]; }
&gt; 
&gt; We also need to update CommitLog.prototype.updateSingleton
&gt; so that we can either assert that commit identifiers don&apos;t change or update
&gt; it dynamically.
&gt; r- due to this missing code and the lack of tests thereof.
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:42
&gt; &gt; +    identifier() { return this._rawData[&apos;identifier&apos;]}
&gt; 
&gt; Same issue here. It&apos;s confusing to have id() and identifier().
&gt; Probably we should call it revisionIdentifier().
&gt; Also nit: missing ; and a space at the end.
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:56
&gt; &gt; +        let formatted_revision = revision;
&gt; 
&gt; Nit: Use camelCase.
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:66
&gt; &gt;  
&gt; 
&gt; We also need to update diff(previousCommit).
&gt; r- due to the lack of change there and test cases thereof.

Got it.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-commits-tests.js:533
&gt; &gt; +        it(&quot;should return commit with commit identifier&quot;, () =&gt; {
&gt; &gt; +            return addSlaveForReport(subversionCommits).then(() =&gt; {
&gt; 
&gt; Use async &amp; await.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-commits-tests.js:756
&gt; &gt; +            ]).then(() =&gt; {
&gt; &gt; +                return TestServer.remoteAPI().getJSON(&apos;/api/commits/WebKit/?precedingRevision=184276@main&amp;lastRevision=184278@main&apos;);
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-commits-tests.js:806
&gt; &gt; +            return Promise.all([
&gt; &gt; +                db.insert(&apos;repositories&apos;, {&apos;id&apos;: 1, &apos;name&apos;: &apos;WebKit&apos;}),
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-commits-tests.js:825
&gt; &gt;      });
&gt; 
&gt; We need tests for when querying with a partial match.
&gt; Also, we need to check that, latest, oldest, etc... all support the commit
&gt; identifiers.
&gt; r- due to the lack of these test cases.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-report-commits-tests.js:172
&gt; &gt; +    it(&quot;should reject with duplicated commit identifier&quot;, () =&gt; {
&gt; &gt; +        return addSlaveForReport(subversionCommit).then(() =&gt; {
&gt; 
&gt; Use async &amp; await.
&gt; 
&gt; &gt; Websites/perf.webkit.org/server-tests/api-report-commits-tests.js:181
&gt; &gt; +
&gt; 
&gt; We also need tests for updating commit identifiers on an existing commit,
&gt; both an existing commit doesn&apos;t have any commit identifier and when it
&gt; already has some other commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737401</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-08 17:51:56 -0800</bug_when>
    <thetext>Having said that, it&apos;s okay to add the basic support for the backend code first.

By the way, the most critical API: /api/report should probably get a support for this as well. It would be annoying if we didn&apos;t even see commit identifiers just because commit syncing script had gone down for one reason or another so we should be reporting commit identifiers along with subversion revision / Git hash there as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737402</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-08 17:56:17 -0800</bug_when>
    <thetext>(In reply to Zhifei Fang from comment #10)
&gt; (In reply to Ryosuke Niwa from comment #7)
&gt; &gt; Comment on attachment 422619 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; &gt; Websites/perf.webkit.org/init-database.sql:105
&gt; &gt; &gt; +    commit_identifier varchar(64) DEFAULT NULL,
&gt; &gt; 
&gt; &gt; Calling this &quot;identifier&quot; is a bit confusing because we also have commit_id.
&gt; &gt; Maybe commit_revision_identifier?
&gt; 
&gt; I used this name because that&apos;s the &quot;official name&quot; somehow.

I get that. But it&apos;s simply too confusing to have two columns named commit_id and commit_identifier. Maybe we could use something like commit_preferred_revision or commit_revision_label or something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737404</commentid>
    <comment_count>13</comment_count>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-08 18:01:58 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #12)
&gt; (In reply to Zhifei Fang from comment #10)
&gt; &gt; (In reply to Ryosuke Niwa from comment #7)
&gt; &gt; &gt; Comment on attachment 422619 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Websites/perf.webkit.org/init-database.sql:105
&gt; &gt; &gt; &gt; +    commit_identifier varchar(64) DEFAULT NULL,
&gt; &gt; &gt; 
&gt; &gt; &gt; Calling this &quot;identifier&quot; is a bit confusing because we also have commit_id.
&gt; &gt; &gt; Maybe commit_revision_identifier?
&gt; &gt; 
&gt; &gt; I used this name because that&apos;s the &quot;official name&quot; somehow.
&gt; 
&gt; I get that. But it&apos;s simply too confusing to have two columns named
&gt; commit_id and commit_identifier. Maybe we could use something like
&gt; commit_preferred_revision or commit_revision_label or something.

How about commit_tag ? This also give us some abilities to extend this field to more staffs, commit identifier will only apply to webkit GitHub for now. the OS commit won&apos;t have such staff, same as other normal git repo, but with this name, it may be reused for git tag or some other customized label for OS commit as well...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737405</commentid>
    <comment_count>14</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-08 18:02:56 -0800</bug_when>
    <thetext>(In reply to Zhifei Fang from comment #13)
&gt; (In reply to Ryosuke Niwa from comment #12)
&gt; &gt; (In reply to Zhifei Fang from comment #10)
&gt; &gt; &gt; (In reply to Ryosuke Niwa from comment #7)
&gt; &gt; &gt; &gt; Comment on attachment 422619 [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Websites/perf.webkit.org/init-database.sql:105
&gt; &gt; &gt; &gt; &gt; +    commit_identifier varchar(64) DEFAULT NULL,
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Calling this &quot;identifier&quot; is a bit confusing because we also have commit_id.
&gt; &gt; &gt; &gt; Maybe commit_revision_identifier?
&gt; &gt; &gt; 
&gt; &gt; &gt; I used this name because that&apos;s the &quot;official name&quot; somehow.
&gt; &gt; 
&gt; &gt; I get that. But it&apos;s simply too confusing to have two columns named
&gt; &gt; commit_id and commit_identifier. Maybe we could use something like
&gt; &gt; commit_preferred_revision or commit_revision_label or something.
&gt; 
&gt; How about commit_tag ? This also give us some abilities to extend this field
&gt; to more staffs, commit identifier will only apply to webkit GitHub for now.
&gt; the OS commit won&apos;t have such staff, same as other normal git repo, but with
&gt; this name, it may be reused for git tag or some other customized label for
&gt; OS commit as well...

Hm... wouldn&apos;t that be confusing with Git&apos;s tag? Like I could imagine we&apos;d be eventually adding a support for branch/tag information in this class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737407</commentid>
    <comment_count>15</comment_count>
      <attachid>422619</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-03-08 18:06:28 -0800</bug_when>
    <thetext>Comment on attachment 422619
Patch

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

&gt;&gt;&gt;&gt;&gt;&gt; Websites/perf.webkit.org/init-database.sql:105
&gt;&gt;&gt;&gt;&gt;&gt; +    commit_identifier varchar(64) DEFAULT NULL,
&gt;&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt;&gt; Calling this &quot;identifier&quot; is a bit confusing because we also have commit_id.
&gt;&gt;&gt;&gt;&gt; Maybe commit_revision_identifier?
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; I used this name because that&apos;s the &quot;official name&quot; somehow.
&gt;&gt;&gt; 
&gt;&gt;&gt; I get that. But it&apos;s simply too confusing to have two columns named commit_id and commit_identifier. Maybe we could use something like commit_preferred_revision or commit_revision_label or something.
&gt;&gt; 
&gt;&gt; How about commit_tag ? This also give us some abilities to extend this field to more staffs, commit identifier will only apply to webkit GitHub for now. the OS commit won&apos;t have such staff, same as other normal git repo, but with this name, it may be reused for git tag or some other customized label for OS commit as well...
&gt; 
&gt; Hm... wouldn&apos;t that be confusing with Git&apos;s tag? Like I could imagine we&apos;d be eventually adding a support for branch/tag information in this class.

How about `commit_serial` or `commit_serial_label` serial implies it has some ordering?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737411</commentid>
    <comment_count>16</comment_count>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-08 18:12:45 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #14)
&gt; (In reply to Zhifei Fang from comment #13)
&gt; &gt; (In reply to Ryosuke Niwa from comment #12)
&gt; &gt; &gt; (In reply to Zhifei Fang from comment #10)
&gt; &gt; &gt; &gt; (In reply to Ryosuke Niwa from comment #7)
&gt; &gt; &gt; &gt; &gt; Comment on attachment 422619 [details]
&gt; &gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; Websites/perf.webkit.org/init-database.sql:105
&gt; &gt; &gt; &gt; &gt; &gt; +    commit_identifier varchar(64) DEFAULT NULL,
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Calling this &quot;identifier&quot; is a bit confusing because we also have commit_id.
&gt; &gt; &gt; &gt; &gt; Maybe commit_revision_identifier?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I used this name because that&apos;s the &quot;official name&quot; somehow.
&gt; &gt; &gt; 
&gt; &gt; &gt; I get that. But it&apos;s simply too confusing to have two columns named
&gt; &gt; &gt; commit_id and commit_identifier. Maybe we could use something like
&gt; &gt; &gt; commit_preferred_revision or commit_revision_label or something.
&gt; &gt; 
&gt; &gt; How about commit_tag ? This also give us some abilities to extend this field
&gt; &gt; to more staffs, commit identifier will only apply to webkit GitHub for now.
&gt; &gt; the OS commit won&apos;t have such staff, same as other normal git repo, but with
&gt; &gt; this name, it may be reused for git tag or some other customized label for
&gt; &gt; OS commit as well...
&gt; 
&gt; Hm... wouldn&apos;t that be confusing with Git&apos;s tag? Like I could imagine we&apos;d
&gt; be eventually adding a support for branch/tag information in this class.


I&apos;d prefere commit_revision_label then, we can reused this for something in the future with this more general name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737415</commentid>
    <comment_count>17</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-08 18:17:11 -0800</bug_when>
    <thetext>(In reply to dewei_zhu from comment #15)
&gt; Comment on attachment 422619 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=422619&amp;action=review
&gt; 
&gt; &gt;&gt;&gt;&gt;&gt;&gt; Websites/perf.webkit.org/init-database.sql:105
&gt; &gt;&gt;&gt;&gt;&gt;&gt; +    commit_identifier varchar(64) DEFAULT NULL,
&gt; &gt;&gt;&gt;&gt;&gt; 
&gt; &gt;&gt;&gt;&gt;&gt; Calling this &quot;identifier&quot; is a bit confusing because we also have commit_id.
&gt; &gt;&gt;&gt;&gt;&gt; Maybe commit_revision_identifier?
&gt; &gt;&gt;&gt;&gt; 
&gt; &gt;&gt;&gt;&gt; I used this name because that&apos;s the &quot;official name&quot; somehow.
&gt; &gt;&gt;&gt; 
&gt; &gt;&gt;&gt; I get that. But it&apos;s simply too confusing to have two columns named commit_id and commit_identifier. Maybe we could use something like commit_preferred_revision or commit_revision_label or something.
&gt; &gt;&gt; 
&gt; &gt;&gt; How about commit_tag ? This also give us some abilities to extend this field to more staffs, commit identifier will only apply to webkit GitHub for now. the OS commit won&apos;t have such staff, same as other normal git repo, but with this name, it may be reused for git tag or some other customized label for OS commit as well...
&gt; &gt; 
&gt; &gt; Hm... wouldn&apos;t that be confusing with Git&apos;s tag? Like I could imagine we&apos;d be eventually adding a support for branch/tag information in this class.
&gt; 
&gt; How about `commit_serial` or `commit_serial_label` serial implies it has
&gt; some ordering?

I&apos;ve considered that but then what&apos;s serial / monotonic is the leading numerical part, not the whole thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738328</commentid>
    <comment_count>18</comment_count>
      <attachid>422891</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-10 17:58:29 -0800</bug_when>
    <thetext>Created attachment 422891
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738330</commentid>
    <comment_count>19</comment_count>
      <attachid>422619</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-10 18:03:12 -0800</bug_when>
    <thetext>Comment on attachment 422619
Patch

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

&gt;&gt; Websites/perf.webkit.org/server-tests/api-commits-tests.js:825
&gt;&gt;      });
&gt; 
&gt; We need tests for when querying with a partial match.
&gt; Also, we need to check that, latest, oldest, etc... all support the commit identifiers.
&gt; r- due to the lack of these test cases.

Added the partial match tests.

For latest, oldest, etc, by adding the revisionLabel in the &quot;subversionCommits&quot;, the existing tests will automatically check this field as well, since we use something like &quot;assertCommitIsSameAsOneSubmitted(result[&apos;commits&apos;][0], subversionCommits[&apos;commits&apos;][0]);&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738332</commentid>
    <comment_count>20</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-10 18:08:15 -0800</bug_when>
    <thetext>(In reply to Zhifei Fang from comment #19)
&gt; Comment on attachment 422619 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=422619&amp;action=review
&gt; 
&gt; &gt;&gt; Websites/perf.webkit.org/server-tests/api-commits-tests.js:825
&gt; &gt;&gt;      });
&gt; &gt; 
&gt; &gt; We need tests for when querying with a partial match.
&gt; &gt; Also, we need to check that, latest, oldest, etc... all support the commit identifiers.
&gt; &gt; r- due to the lack of these test cases.
&gt; 
&gt; Added the partial match tests.
&gt; 
&gt; For latest, oldest, etc, by adding the revisionLabel in the
&gt; &quot;subversionCommits&quot;, the existing tests will automatically check this field
&gt; as well, since we use something like
&gt; &quot;assertCommitIsSameAsOneSubmitted(result[&apos;commits&apos;][0],
&gt; subversionCommits[&apos;commits&apos;][0]);&quot;

What I mean is that we need to add tests cases for accessing those APIs with commit identifiers, not necessarily verifying that the results contain them, which we obviously should check as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738334</commentid>
    <comment_count>21</comment_count>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-10 18:12:16 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #20)
&gt; (In reply to Zhifei Fang from comment #19)
&gt; &gt; Comment on attachment 422619 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=422619&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Websites/perf.webkit.org/server-tests/api-commits-tests.js:825
&gt; &gt; &gt;&gt;      });
&gt; &gt; &gt; 
&gt; &gt; &gt; We need tests for when querying with a partial match.
&gt; &gt; &gt; Also, we need to check that, latest, oldest, etc... all support the commit identifiers.
&gt; &gt; &gt; r- due to the lack of these test cases.
&gt; &gt; 
&gt; &gt; Added the partial match tests.
&gt; &gt; 
&gt; &gt; For latest, oldest, etc, by adding the revisionLabel in the
&gt; &gt; &quot;subversionCommits&quot;, the existing tests will automatically check this field
&gt; &gt; as well, since we use something like
&gt; &gt; &quot;assertCommitIsSameAsOneSubmitted(result[&apos;commits&apos;][0],
&gt; &gt; subversionCommits[&apos;commits&apos;][0]);&quot;
&gt; 
&gt; What I mean is that we need to add tests cases for accessing those APIs with
&gt; commit identifiers, not necessarily verifying that the results contain them,
&gt; which we obviously should check as well.

Wont be those API taking repository and order only ?

/api/commits/&lt;repository&gt;/oldest
/api/commits/&lt;repository&gt;/latest
/api/commits/&lt;repository&gt;/last-reported
/api/commits/&lt;repository&gt;/last-reported?from=&lt;start_order&gt;&amp;to=&lt;end_order&gt;

Please let me know if I miss something</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738335</commentid>
    <comment_count>22</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-10 18:31:46 -0800</bug_when>
    <thetext>(In reply to Zhifei Fang from comment #21)
&gt; (In reply to Ryosuke Niwa from comment #20)
&gt; &gt; (In reply to Zhifei Fang from comment #19)
&gt; &gt; What I mean is that we need to add tests cases for accessing those APIs with
&gt; &gt; commit identifiers, not necessarily verifying that the results contain them,
&gt; &gt; which we obviously should check as well.
&gt; 
&gt; Wont be those API taking repository and order only ?
&gt; 
&gt; /api/commits/&lt;repository&gt;/oldest
&gt; /api/commits/&lt;repository&gt;/latest
&gt; /api/commits/&lt;repository&gt;/last-reported
&gt; /api/commits/&lt;repository&gt;/last-reported?from=&lt;start_order&gt;&amp;to=&lt;end_order&gt;

Oh, that&apos;s a good point. FWIW, we should also add a test case for owned-commits to make sure the API rejects a request with commit identifier instead of revision.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738339</commentid>
    <comment_count>23</comment_count>
      <attachid>422891</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-03-10 18:51:45 -0800</bug_when>
    <thetext>Comment on attachment 422891
Patch

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

&gt; Websites/perf.webkit.org/browser-tests/commit-log-viewer-tests.js:160
&gt; +    it(&apos;should show revision label&apos;, () =&gt; {

Let&apos;s use async with await here so that we can get rid of Promise.then

&gt; Websites/perf.webkit.org/init-database.sql:114
&gt; +    CONSTRAINT commit_revision_label_in_repository_must_be_unique UNIQUE(commit_repository, commit_revision_label));

Maybe we should do
`CREATE UNIQUE INDEX commit_revision_label_in_repository_must_be_unique_if_not_null ON commits (commit_repository, commit_revision_label)
WHERE commit_revision_label IS NOT NULL;`

&gt; Websites/perf.webkit.org/public/include/commit-updater.php:86
&gt; +                    $this-&gt;exit_with_error(&apos;DuplicatedCommitIdentifier&apos;, array(&apos;commit&apos; =&gt; $commit_info));

Maybe the error name should be `DuplicatedRevisionLabel`?

&gt; Websites/perf.webkit.org/public/include/report-processor.php:167
&gt; +            $commit_data = array(&apos;repository&apos; =&gt; $repository_id, &apos;revision&apos; =&gt; $revision_data[&apos;revision&apos;], &apos;time&apos; =&gt; array_get($revision_data, &apos;timestamp&apos;), &apos;revision_label&apos; =&gt; array_get($revision_data, &apos;revisionLabel&apos;, null));

We should not set

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:81
&gt; +        const to_revision = this.revision();
&gt; +        const from_revison = previousCommit.revision();
&gt; +        const to_revision_label = this.revisionLabel();
&gt; +        const from_revision_label = previousCommit.revisionLabel();
&gt; +        let label = `${previousCommit.label()} - ${this.label()}`;

use camelCase?

&gt; Websites/perf.webkit.org/server-tests/api-commits-tests.js:13
&gt; +    const subversionCommits =  {

Nit: extra space

&gt; Websites/perf.webkit.org/server-tests/api-report-commits-tests.js:200
&gt; +    it(&quot;should reject an ivalid revision label&quot;, async () =&gt; {

`invalid`

&gt; Websites/perf.webkit.org/server-tests/api-report-commits-tests.js:208
&gt; +    it(&quot;should reject with duplicated commit revision labels&quot;, async () =&gt; {

Maybe `should reject with &apos;DuplicatedRevisionLabel&apos; when same commit revision labels from different commits are reported`?

&gt; Websites/perf.webkit.org/unit-tests/commit-log-tests.js:183
&gt; +        it(&apos;should prefix commit identifier with svn r + revision&apos;, () =&gt; {

Do you mean `should prefix with commit revision label followed by &apos;r&apos; prefixed svn revision`?
Also, we should avoid calling it identifier any more since we decided to call it commit revision label.

&gt; Websites/perf.webkit.org/unit-tests/commit-log-tests.js:191
&gt; +        it(&apos;should prefix commit identifier with git hash truncated&apos;, () =&gt; {

-&gt; `should prefix with commit revision label followed by truncated git hash`? or maybe even say:
&quot;should follow `{commit revision label} ({12 character truncated git hash})` format&quot;

&gt; Websites/perf.webkit.org/unit-tests/commit-log-tests.js:205
&gt; +        it(&apos;should prefix commit identifier&apos;, () =&gt; {

`should prefix SVN revision with commit revision label`

&gt; Websites/perf.webkit.org/unit-tests/commit-log-tests.js:209
&gt;          it(&apos;should truncate a Git hash at 8th character&apos;, function () {

this should be updated from &apos;8th&apos; -&gt; &apos;12th&apos;

&gt; Websites/perf.webkit.org/unit-tests/commit-log-tests.js:213
&gt; +        it(&apos;should prefix commit identifier with git hash truncated&apos;,  () =&gt; {

-&gt; `should prefix Git hash with commit revision label followed by truncated git hash`?

&gt; Websites/perf.webkit.org/unit-tests/commit-log-tests.js:276
&gt; +        it(&apos;should prefix with commit revision label and use &quot;-&quot;, if both have revision label&apos;, () =&gt; {

should follow `{A commit revision label} (r{A svn revision}) - {B commit revision label} (r{B svn revision})` or other more descriptive way.

&gt; Websites/perf.webkit.org/unit-tests/commit-log-tests.js:284
&gt; +        it(&apos;should only contains revison, if one of the commit doesn`t have the revision label&apos;, () =&gt; {

I think this behavior may need more discussion. To me,  it would be still useful if we have commit revision label on one side. What do you think? Even though in reality this may not happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738341</commentid>
    <comment_count>24</comment_count>
      <attachid>422891</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-03-10 19:43:27 -0800</bug_when>
    <thetext>Comment on attachment 422891
Patch

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

&gt;&gt; Websites/perf.webkit.org/public/include/report-processor.php:167
&gt;&gt; +            $commit_data = array(&apos;repository&apos; =&gt; $repository_id, &apos;revision&apos; =&gt; $revision_data[&apos;revision&apos;], &apos;time&apos; =&gt; array_get($revision_data, &apos;timestamp&apos;), &apos;revision_label&apos; =&gt; array_get($revision_data, &apos;revisionLabel&apos;, null));
&gt; 
&gt; We should not set

NVM. If we allow it to be null, it should be OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738641</commentid>
    <comment_count>25</comment_count>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-11 14:46:51 -0800</bug_when>
    <thetext>(In reply to dewei_zhu from comment #23)
&gt; Comment on attachment 422891 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=422891&amp;action=review
&gt; 
&gt; &gt; Websites/perf.webkit.org/browser-tests/commit-log-viewer-tests.js:160
&gt; &gt; +    it(&apos;should show revision label&apos;, () =&gt; {
&gt; 
&gt; Let&apos;s use async with await here so that we can get rid of Promise.then
&gt; 
&gt; &gt; Websites/perf.webkit.org/init-database.sql:114
&gt; &gt; +    CONSTRAINT commit_revision_label_in_repository_must_be_unique UNIQUE(commit_repository, commit_revision_label));
&gt; 
&gt; Maybe we should do
&gt; `CREATE UNIQUE INDEX
&gt; commit_revision_label_in_repository_must_be_unique_if_not_null ON commits
&gt; (commit_repository, commit_revision_label)
&gt; WHERE commit_revision_label IS NOT NULL;`
&gt; 
Discussed with Dewei, since suggest this change for letting the unique constraint allow NULL value, in fact we do allow multiple NULL in the column that has a unique constraint.

https://www.postgresql.org/docs/9.6/ddl-constraints.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738650</commentid>
    <comment_count>26</comment_count>
      <attachid>422891</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-03-11 15:04:23 -0800</bug_when>
    <thetext>Comment on attachment 422891
Patch

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

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:80
&gt; +        const to_revision = this.revision();
&gt; +        const from_revison = previousCommit.revision();
&gt; +        const to_revision_label = this.revisionLabel();
&gt; +        const from_revision_label = previousCommit.revisionLabel();

use camelCase?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738696</commentid>
    <comment_count>27</comment_count>
      <attachid>422988</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-11 16:20:13 -0800</bug_when>
    <thetext>Created attachment 422988
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738712</commentid>
    <comment_count>28</comment_count>
      <attachid>422992</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-11 16:55:23 -0800</bug_when>
    <thetext>Created attachment 422992
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738722</commentid>
    <comment_count>29</comment_count>
      <attachid>422997</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-11 17:13:05 -0800</bug_when>
    <thetext>Created attachment 422997
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738730</commentid>
    <comment_count>30</comment_count>
      <attachid>422997</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-03-11 18:00:21 -0800</bug_when>
    <thetext>Comment on attachment 422997
Patch

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

&gt; Websites/perf.webkit.org/browser-tests/commit-log-viewer-tests.js:148
&gt; +            expect(viewer.content(&apos;spinner-container&apos;).offsetHeight).not.to.be(0);
&gt; +            await waitForComponentsToRender(context);

This doesn&apos;t seem to help with the flakiness of this test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738983</commentid>
    <comment_count>31</comment_count>
      <attachid>423073</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-12 12:06:50 -0800</bug_when>
    <thetext>Created attachment 423073
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739070</commentid>
    <comment_count>32</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2021-03-12 17:12:13 -0800</bug_when>
    <thetext>So far, looks good to me.

You may want to mention the browser test fix we did in this patch in the change log. Also, maybe we should apply same fix for other the browser tests those are flaky.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739312</commentid>
    <comment_count>33</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-14 23:55:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/75419827&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741234</commentid>
    <comment_count>34</comment_count>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-18 09:49:44 -0700</bug_when>
    <thetext>Any more comments for this one ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741566</commentid>
    <comment_count>35</comment_count>
      <attachid>423073</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-18 20:18:48 -0700</bug_when>
    <thetext>Comment on attachment 423073
Patch

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

&gt; Websites/perf.webkit.org/ChangeLog:12
&gt; +        * browser-tests/commit-log-viewer-tests.js: Fix a failed test case, while requesting the remote api, we should wait for those promises resolved and then wait for commponent to render.

Can we hard-wrap this really long line? Maybe after &quot;the remote api,&quot;.

&gt; Websites/perf.webkit.org/init-database.sql:114
&gt; +    CONSTRAINT commit_revision_label_in_repository_must_be_unique UNIQUE(commit_repository, commit_revision_label));

Hm... it&apos;s counter-intuitive that label needs to be unique.
Maybe we should call this commit_revision_identifier instead.
Or maybe commit_string_identifier?

&gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:13
&gt; +        $commit_rows = $db-&gt;query_and_fetch_all(&apos;SELECT commit_id FROM commits WHERE commit_repository = $1 AND &apos; . $column_name . &apos; = $2&apos;, array($repository_id, $revision));

Can we just do this: &quot;SELECT commit_id FROM commits WHERE commit_repository = \$1 AND $column_name = \$2&quot;

&gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:20
&gt; +        $commit_rows = $db-&gt;query_and_fetch_all(&apos;SELECT commit_id FROM commits WHERE commit_repository = $1 AND &apos; . $column_name . &apos; LIKE $2 LIMIT 2&apos;, array($repository_id, Database::escape_for_like($revision) . &apos;%&apos;));

Ditto.

&gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:198
&gt; +    private static function is_commit_revision_label($commit_revision_or_revision_label) {

Nit: { should appear on the next line.
I know a lot of existing code doesn&apos;t follow this style guideline but we should do that in the new code.

&gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:199
&gt; +        return preg_match(&apos;/^\d+@\S*$/&apos;, $commit_revision_or_revision_label);

I don&apos;t think \S is right. We don&apos;t wanna allow random symbols here including @.
So I&apos;d suggest we explicitly list character types: [A-Za-z0-9\.\-_]
We also need a test for this (at least for @ and random other symbols like $ and /)

&gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:213
&gt; +        $rows = $this-&gt;db-&gt;query_and_fetch_all(&apos;SELECT * FROM commits WHERE commit_repository = $1 AND commit_&apos; . $column_name . &apos; LIKE $2 ORDER BY commit_&apos;.$column_name.&apos; LIMIT 2&apos;, array($repository_id, Database::escape_for_like($revision_prefix) . &apos;%&apos;));

Ditto about using double quotes.

&gt; Websites/perf.webkit.org/public/include/commit-updater.php:161
&gt; +    private static function validate_own_commits(&amp;$commit_info)

This seems like a subset of validate_commits.
Please share the share code.

&gt; Websites/perf.webkit.org/public/include/commit-updater.php:163
&gt; +        require_format(&apos;OwnCommitRevision&apos;, $commit_info[&apos;revision&apos;], &apos;/^[A-Za-z0-9 \.]+$/&apos;);

I don&apos;t think we need to differentiate ownCommitRevision vs. revision since we&apos;re reporting the revision.

&gt; Websites/perf.webkit.org/public/include/report-processor.php:167
&gt; +            $commit_data = array(&apos;repository&apos; =&gt; $repository_id, &apos;revision&apos; =&gt; $revision_data[&apos;revision&apos;], &apos;time&apos; =&gt; array_get($revision_data, &apos;timestamp&apos;), &apos;revision_label&apos; =&gt; array_get($revision_data, &apos;revisionLabel&apos;, null));

Please wrap the line after &quot;&apos;time&apos; =&gt; array_get($revision_data, &apos;timestamp&apos;),&quot;,
and start the next line 4 spaces to the right of $commit_data. i.e.
$commit_data = array(&apos;rep...,
     &apos;revision_label&apos; =&gt;

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:61
&gt; +        let formattedRevision = revision;
&gt;          if (parseInt(revision) == revision) // e.g. r12345
&gt; -            return &apos;r&apos; + revision;
&gt; +            formattedRevision = &apos;r&apos; + revision;
&gt;          if (revision.length == 40) // e.g. git hash
&gt; -            return revision.substring(0, 12);
&gt; -        return revision;
&gt; +            formattedRevision = revision.substring(0, 12);

Let&apos;s extract this logic as a helper function:
_formattedRevision()
{
    const revision = this.revision();
    if (parseInt(revision) == revision) // e.g. r12345
        return &apos;r&apos; + revision;
    if (revision.length == 40) // e.g. git hash
        return revision.substring(0, 12);
    return revision;
}

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:81
&gt; +        let label = `${previousCommit.label()} - ${this.label()}`;

This is going to be very ugly for commit identifiers because we&apos;re gonna have to different numbers split by -.
Let&apos;s do something better. Something like this:
const toRevision = this._formattedRevision();
const fromRevision = previousCommit._formattedRevision();
const toRevisionLabel = this.revisionLabel();
const fromRevisionLabel = previousCommit.revisionLabel();
console.assert(!!toRevisionLabel == !!fromRevisionLabel);

const withRevisionLabel (label) =&gt; {
    if (!toRevisionLabel || !fromRevisionLabel)
        return label;

    const branchName = (revisionLabel) =&gt; (revisionLabel.match(/\@.+/) || [&apos;&apos;])[0].substring(1);
    const toBranch = branchName(toRevisionLabel);
    const fromBranch = branchName(fromRevisionLabel);
    if (toBranch &amp;&amp; toBranch == fromBranch)
        fromRevisionLabel = fromRevisionLabel.substring(0, fromRevisionLabel.search(toBranch))
    return `${fromRevisionLabel}-${toRevisionLabel} (${label})`;
}
if (parseInt(fromRevision) == fromRevision &amp;&amp; parseInt(toRevision) == toRevision)
    return withRevisionLabel(`{fromRevision}-${toRevision}`);
if (fromRevision.length == 40 &amp;&amp; toRevision.length == 40)
    return withRevisionLabel(`{fromRevision}:${toRevision}`);
return `{fromRevision} - ${toRevision}`;

Note that we need to keep a space around for things like OS versions.

&gt; Websites/perf.webkit.org/unit-tests/commit-log-tests.js:278
&gt; +                label: &apos;175605@main (r200574) - 184276@main (r200805)&apos;,

With the suggested change above, this should become:
&apos;175605-184276@main (r200574-r200805)&apos;

&gt; Websites/perf.webkit.org/unit-tests/commit-log-tests.js:290
&gt; +        });

Please add a test for Git hashes with commit identifiers &amp; rebaseline existing test cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741567</commentid>
    <comment_count>36</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-18 20:18:58 -0700</bug_when>
    <thetext>Sorry for the delay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741570</commentid>
    <comment_count>37</comment_count>
      <attachid>423073</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-18 20:40:58 -0700</bug_when>
    <thetext>Comment on attachment 423073
Patch

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

&gt;&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:81
&gt;&gt; +        let label = `${previousCommit.label()} - ${this.label()}`;
&gt; 
&gt; This is going to be very ugly for commit identifiers because we&apos;re gonna have to different numbers split by -.
&gt; Let&apos;s do something better. Something like this:
&gt; const toRevision = this._formattedRevision();
&gt; const fromRevision = previousCommit._formattedRevision();
&gt; const toRevisionLabel = this.revisionLabel();
&gt; const fromRevisionLabel = previousCommit.revisionLabel();
&gt; console.assert(!!toRevisionLabel == !!fromRevisionLabel);
&gt; 
&gt; const withRevisionLabel (label) =&gt; {
&gt;     if (!toRevisionLabel || !fromRevisionLabel)
&gt;         return label;
&gt; 
&gt;     const branchName = (revisionLabel) =&gt; (revisionLabel.match(/\@.+/) || [&apos;&apos;])[0].substring(1);
&gt;     const toBranch = branchName(toRevisionLabel);
&gt;     const fromBranch = branchName(fromRevisionLabel);
&gt;     if (toBranch &amp;&amp; toBranch == fromBranch)
&gt;         fromRevisionLabel = fromRevisionLabel.substring(0, fromRevisionLabel.search(toBranch))
&gt;     return `${fromRevisionLabel}-${toRevisionLabel} (${label})`;
&gt; }
&gt; if (parseInt(fromRevision) == fromRevision &amp;&amp; parseInt(toRevision) == toRevision)
&gt;     return withRevisionLabel(`{fromRevision}-${toRevision}`);
&gt; if (fromRevision.length == 40 &amp;&amp; toRevision.length == 40)
&gt;     return withRevisionLabel(`{fromRevision}:${toRevision}`);
&gt; return `{fromRevision} - ${toRevision}`;
&gt; 
&gt; Note that we need to keep a space around for things like OS versions.

actually, (revisionLabel.match(/\@.+/) || [&apos;&apos;])[0].substring(1) can be:
(revisionLabel.match(/\@(.+)/) || [])[1] or revisionLabel.match(/\d+\@(.+)|()/)[1]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741574</commentid>
    <comment_count>38</comment_count>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-18 20:55:21 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #35)
&gt; Comment on attachment 423073 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=423073&amp;action=review
&gt; 
&gt; &gt; Websites/perf.webkit.org/ChangeLog:12
&gt; &gt; +        * browser-tests/commit-log-viewer-tests.js: Fix a failed test case, while requesting the remote api, we should wait for those promises resolved and then wait for commponent to render.
&gt; 
&gt; Can we hard-wrap this really long line? Maybe after &quot;the remote api,&quot;.

OK

&gt; 
&gt; &gt; Websites/perf.webkit.org/init-database.sql:114
&gt; &gt; +    CONSTRAINT commit_revision_label_in_repository_must_be_unique UNIQUE(commit_repository, commit_revision_label));
&gt; 
&gt; Hm... it&apos;s counter-intuitive that label needs to be unique.
&gt; Maybe we should call this commit_revision_identifier instead.
&gt; Or maybe commit_string_identifier?
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:13
&gt; &gt; +        $commit_rows = $db-&gt;query_and_fetch_all(&apos;SELECT commit_id FROM commits WHERE commit_repository = $1 AND &apos; . $column_name . &apos; = $2&apos;, array($repository_id, $revision));
&gt; 
&gt; Can we just do this: &quot;SELECT commit_id FROM commits WHERE commit_repository
&gt; = \$1 AND $column_name = \$2&quot;
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:20
&gt; &gt; +        $commit_rows = $db-&gt;query_and_fetch_all(&apos;SELECT commit_id FROM commits WHERE commit_repository = $1 AND &apos; . $column_name . &apos; LIKE $2 LIMIT 2&apos;, array($repository_id, Database::escape_for_like($revision) . &apos;%&apos;));
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:198
&gt; &gt; +    private static function is_commit_revision_label($commit_revision_or_revision_label) {
&gt; 
&gt; Nit: { should appear on the next line.
&gt; I know a lot of existing code doesn&apos;t follow this style guideline but we
&gt; should do that in the new code.
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:199
&gt; &gt; +        return preg_match(&apos;/^\d+@\S*$/&apos;, $commit_revision_or_revision_label);
&gt; 
&gt; I don&apos;t think \S is right. We don&apos;t wanna allow random symbols here
&gt; including @.
&gt; So I&apos;d suggest we explicitly list character types: [A-Za-z0-9\.\-_]
&gt; We also need a test for this (at least for @ and random other symbols like $
&gt; and /)

OK, I am doing this because the git branch name are actually allow &apos;@&apos;, it just won&apos;t allow &apos;@&apos; alone. I can make it fully worked as git ref name format describes.
see details with man git-check-ref-format

&gt; 
&gt; &gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:213
&gt; &gt; +        $rows = $this-&gt;db-&gt;query_and_fetch_all(&apos;SELECT * FROM commits WHERE commit_repository = $1 AND commit_&apos; . $column_name . &apos; LIKE $2 ORDER BY commit_&apos;.$column_name.&apos; LIMIT 2&apos;, array($repository_id, Database::escape_for_like($revision_prefix) . &apos;%&apos;));
&gt; 
&gt; Ditto about using double quotes.
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/include/commit-updater.php:161
&gt; &gt; +    private static function validate_own_commits(&amp;$commit_info)
&gt; 
&gt; This seems like a subset of validate_commits.
&gt; Please share the share code.
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/include/commit-updater.php:163
&gt; &gt; +        require_format(&apos;OwnCommitRevision&apos;, $commit_info[&apos;revision&apos;], &apos;/^[A-Za-z0-9 \.]+$/&apos;);
&gt; 
&gt; I don&apos;t think we need to differentiate ownCommitRevision vs. revision since
&gt; we&apos;re reporting the revision.

OK, I am doing this for better error message for developer to debug. So that we can know which part of the data is wrong.

&gt; 
&gt; &gt; Websites/perf.webkit.org/public/include/report-processor.php:167
&gt; &gt; +            $commit_data = array(&apos;repository&apos; =&gt; $repository_id, &apos;revision&apos; =&gt; $revision_data[&apos;revision&apos;], &apos;time&apos; =&gt; array_get($revision_data, &apos;timestamp&apos;), &apos;revision_label&apos; =&gt; array_get($revision_data, &apos;revisionLabel&apos;, null));
&gt; 
&gt; Please wrap the line after &quot;&apos;time&apos; =&gt; array_get($revision_data,
&gt; &apos;timestamp&apos;),&quot;,
&gt; and start the next line 4 spaces to the right of $commit_data. i.e.
&gt; $commit_data = array(&apos;rep...,
&gt;      &apos;revision_label&apos; =&gt;
&gt; 
OK
&gt; &gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:61
&gt; &gt; +        let formattedRevision = revision;
&gt; &gt;          if (parseInt(revision) == revision) // e.g. r12345
&gt; &gt; -            return &apos;r&apos; + revision;
&gt; &gt; +            formattedRevision = &apos;r&apos; + revision;
&gt; &gt;          if (revision.length == 40) // e.g. git hash
&gt; &gt; -            return revision.substring(0, 12);
&gt; &gt; -        return revision;
&gt; &gt; +            formattedRevision = revision.substring(0, 12);
&gt; 
&gt; Let&apos;s extract this logic as a helper function:
&gt; _formattedRevision()
&gt; {
&gt;     const revision = this.revision();
&gt;     if (parseInt(revision) == revision) // e.g. r12345
&gt;         return &apos;r&apos; + revision;
&gt;     if (revision.length == 40) // e.g. git hash
&gt;         return revision.substring(0, 12);
&gt;     return revision;
&gt; }
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:81
&gt; &gt; +        let label = `${previousCommit.label()} - ${this.label()}`;
&gt; 
&gt; This is going to be very ugly for commit identifiers because we&apos;re gonna
&gt; have to different numbers split by -.
&gt; Let&apos;s do something better. Something like this:
&gt; const toRevision = this._formattedRevision();
&gt; const fromRevision = previousCommit._formattedRevision();
&gt; const toRevisionLabel = this.revisionLabel();
&gt; const fromRevisionLabel = previousCommit.revisionLabel();
&gt; console.assert(!!toRevisionLabel == !!fromRevisionLabel);
&gt; 
&gt; const withRevisionLabel (label) =&gt; {
&gt;     if (!toRevisionLabel || !fromRevisionLabel)
&gt;         return label;
&gt; 
&gt;     const branchName = (revisionLabel) =&gt; (revisionLabel.match(/\@.+/) ||
&gt; [&apos;&apos;])[0].substring(1);
&gt;     const toBranch = branchName(toRevisionLabel);
&gt;     const fromBranch = branchName(fromRevisionLabel);
&gt;     if (toBranch &amp;&amp; toBranch == fromBranch)
&gt;         fromRevisionLabel = fromRevisionLabel.substring(0,
&gt; fromRevisionLabel.search(toBranch))
&gt;     return `${fromRevisionLabel}-${toRevisionLabel} (${label})`;
&gt; }
&gt; if (parseInt(fromRevision) == fromRevision &amp;&amp; parseInt(toRevision) ==
&gt; toRevision)
&gt;     return withRevisionLabel(`{fromRevision}-${toRevision}`);
&gt; if (fromRevision.length == 40 &amp;&amp; toRevision.length == 40)
&gt;     return withRevisionLabel(`{fromRevision}:${toRevision}`);
&gt; return `{fromRevision} - ${toRevision}`;
&gt; 
&gt; Note that we need to keep a space around for things like OS versions.
&gt; 
&gt; &gt; Websites/perf.webkit.org/unit-tests/commit-log-tests.js:278
&gt; &gt; +                label: &apos;175605@main (r200574) - 184276@main (r200805)&apos;,
&gt; 
&gt; With the suggested change above, this should become:
&gt; &apos;175605-184276@main (r200574-r200805)&apos;
&gt; 
&gt; &gt; Websites/perf.webkit.org/unit-tests/commit-log-tests.js:290
&gt; &gt; +        });
&gt; 
&gt; Please add a test for Git hashes with commit identifiers &amp; rebaseline
&gt; existing test cases.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741576</commentid>
    <comment_count>39</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-18 21:02:43 -0700</bug_when>
    <thetext>(In reply to Zhifei Fang from comment #38)
&gt; &gt; &gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:199
&gt; &gt; &gt; +        return preg_match(&apos;/^\d+@\S*$/&apos;, $commit_revision_or_revision_label);
&gt; &gt; 
&gt; &gt; I don&apos;t think \S is right. We don&apos;t wanna allow random symbols here
&gt; &gt; including @.
&gt; &gt; So I&apos;d suggest we explicitly list character types: [A-Za-z0-9\.\-_]
&gt; &gt; We also need a test for this (at least for @ and random other symbols like $
&gt; &gt; and /)
&gt; 
&gt; OK, I am doing this because the git branch name are actually allow &apos;@&apos;, it
&gt; just won&apos;t allow &apos;@&apos; alone. I can make it fully worked as git ref name
&gt; format describes.
&gt; see details with man git-check-ref-format

Are we planning to do that in our commit identifiers? Since commit identifier is our own format, we can put more restrictions on it.
Since we&apos;ve had a number of regressions in the past where we started submitting erroneous revision numbers in the past, I&apos;d rather enforce the strictest format we can enforce. It&apos;s easy to loosen it up when a new character is introduced but it&apos;s harder to fix the database entries once bad data creeps in.

&gt; &gt; &gt; Websites/perf.webkit.org/public/include/commit-updater.php:163
&gt; &gt; &gt; +        require_format(&apos;OwnCommitRevision&apos;, $commit_info[&apos;revision&apos;], &apos;/^[A-Za-z0-9 \.]+$/&apos;);
&gt; &gt; 
&gt; &gt; I don&apos;t think we need to differentiate ownCommitRevision vs. revision since
&gt; &gt; we&apos;re reporting the revision.
&gt; 
&gt; OK, I am doing this for better error message for developer to debug. So that
&gt; we can know which part of the data is wrong.

I don&apos;t think that&apos;s necessary. Definitely not worth duplicating all this code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741579</commentid>
    <comment_count>40</comment_count>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-18 21:07:29 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #39)
&gt; (In reply to Zhifei Fang from comment #38)
&gt; &gt; &gt; &gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:199
&gt; &gt; &gt; &gt; +        return preg_match(&apos;/^\d+@\S*$/&apos;, $commit_revision_or_revision_label);
&gt; &gt; &gt; 
&gt; &gt; &gt; I don&apos;t think \S is right. We don&apos;t wanna allow random symbols here
&gt; &gt; &gt; including @.
&gt; &gt; &gt; So I&apos;d suggest we explicitly list character types: [A-Za-z0-9\.\-_]
&gt; &gt; &gt; We also need a test for this (at least for @ and random other symbols like $
&gt; &gt; &gt; and /)
&gt; &gt; 
&gt; &gt; OK, I am doing this because the git branch name are actually allow &apos;@&apos;, it
&gt; &gt; just won&apos;t allow &apos;@&apos; alone. I can make it fully worked as git ref name
&gt; &gt; format describes.
&gt; &gt; see details with man git-check-ref-format
&gt; 
&gt; Are we planning to do that in our commit identifiers? Since commit
&gt; identifier is our own format, we can put more restrictions on it.
&gt; Since we&apos;ve had a number of regressions in the past where we started
&gt; submitting erroneous revision numbers in the past, I&apos;d rather enforce the
&gt; strictest format we can enforce. It&apos;s easy to loosen it up when a new
&gt; character is introduced but it&apos;s harder to fix the database entries once bad
&gt; data creeps in.

Right, I agreed that for now we only have those in our branch names, I mention this because currently we defined commit identifier as &lt;number&gt;@&lt;branch name&gt;, I am OK with that we put more restriction first and then make it lose when we have something special.
&gt; 
&gt; &gt; &gt; &gt; Websites/perf.webkit.org/public/include/commit-updater.php:163
&gt; &gt; &gt; &gt; +        require_format(&apos;OwnCommitRevision&apos;, $commit_info[&apos;revision&apos;], &apos;/^[A-Za-z0-9 \.]+$/&apos;);
&gt; &gt; &gt; 
&gt; &gt; &gt; I don&apos;t think we need to differentiate ownCommitRevision vs. revision since
&gt; &gt; &gt; we&apos;re reporting the revision.
&gt; &gt; 
&gt; &gt; OK, I am doing this for better error message for developer to debug. So that
&gt; &gt; we can know which part of the data is wrong.
&gt; 
&gt; I don&apos;t think that&apos;s necessary. Definitely not worth duplicating all this
&gt; code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743153</commentid>
    <comment_count>41</comment_count>
      <attachid>424098</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-23 22:39:52 -0700</bug_when>
    <thetext>Created attachment 424098
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744241</commentid>
    <comment_count>42</comment_count>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-26 11:11:29 -0700</bug_when>
    <thetext>Any more review comments ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744349</commentid>
    <comment_count>43</comment_count>
      <attachid>424098</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-26 15:24:44 -0700</bug_when>
    <thetext>Comment on attachment 424098
Patch

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

r=me assuming the changes suggested below are made.

&gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:13
&gt; +        $commit_rows = $db-&gt;query_and_fetch_all(&quot;SELECT commit_id FROM commits WHERE commit_repository = $1 AND $column_name  = $2&quot;, array($repository_id, $revision));

Nit: two spaces between $column_name and =.

&gt; Websites/perf.webkit.org/public/include/commit-updater.php:112
&gt; +                self::validate_commits($owned_commit_info, true);

Nice! This is way better than the old patch with code duplication.

&gt; Websites/perf.webkit.org/public/include/commit-updater.php:161
&gt; +    private static function validate_commits(&amp;$commit_info, $is_own_commit=false)

Nit: spaces around =. Since this is not python, we follow the usual WebKit coding style.

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:55
&gt; +    static getRevisionType(revision)

This should be _repositoryType.
We don&apos;t use &quot;get&quot; prefix unless it has an out argument:
https://webkit.org/code-style-guidelines/#names-setter-getter

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:63
&gt; +    static getformatttedRevision(revision, revisionIdentifier=null) 

Nit: Always use camelCase. Also need spaces around =.
But in this case, this should be called _formattedRevision instead.

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:65
&gt; +        let formattedRevision = revision;

I don&apos;t think we need this variable.

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:68
&gt; +            formattedRevision = &apos;r&apos; + revision;

Use return.

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:70
&gt; +            formattedRevision = revision.substring(0, 12);

Use return.

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:76
&gt; +    revisionIdentifierParts() { 

Nit: { should be on the next line.
Also, this should be probably called _revisionIdentifier.
But this shouldn&apos;t really be a separate method since there is no utility outside diff at least for now.
So this should really be a lambda function inside diff.
But defining a method for this is really an overkill.

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:77
&gt; +        const revisionIdentifier =  this.revisionIdentifier();

Nit: two spaces between after =.

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:80
&gt; +        const identifierRe = /(?&lt;number&gt;\d+)@(?&lt;branch&gt;[\w\.\-]+)/;

There is no need to have this local variable.
Just do: /~/.exec

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:100
&gt; +        const toRevisionIdentifierParts = this.revisionIdentifierParts();
&gt; +        const fromRevisionIdentifierParts = previousCommit.revisionIdentifierParts();

These are really long names! How about toIdentifier &amp; fromIdentifier or toMatch &amp; fromMatch

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:116
&gt; +        let connector = &apos; - &apos;;
&gt; +        if (revisionType == &apos;git&apos;)
&gt; +            connector = &apos;..&apos;;
&gt; +        if (revisionType == &apos;svn&apos;)
&gt; +            connector = &apos;-&apos;;
&gt; +        let label = `${previousCommit.label()}${connector}${this.label()}`;
&gt; +        if (fromRevisionIdentifierParts || toRevisionIdentifierParts) {
&gt; +            if (fromRevisionIdentifierParts &amp;&amp; toRevisionIdentifierParts) {
&gt; +                console.assert(fromRevisionIdentifierParts.branch == toRevisionIdentifierParts.branch);
&gt; +                label = `${fromRevisionIdentifierParts.number} - ${toRevisionIdentifierParts.number}@${fromRevisionIdentifierParts.branch} (${CommitLog.getformatttedRevision(fromRevision)}${connector}${CommitLog.getformatttedRevision(toRevision)})`
&gt; +            } else {
&gt; +                connector = &apos; - &apos;;
&gt; +                label = `${previousCommit.label()}${connector}${this.label()}`;
&gt; +            }
&gt; +        }

This should really be a lambda.
Also, if we&apos;re gonna just assert that branches are same, we should just use early return,
which is WebKit&apos;s preferred style.

const identifierPattern = /^(?&lt;number&gt;\d+)\@(?&lt;branch&gt;.+)$/;
const label = ((fromMatch, toMatch) =&gt; {
    const separator = repositoryType == &apos;git&apos; ? &apos;..&apos; : (repositoryType == &apos;svn&apos; ? &apos;-&apos; : &apos; - &apos;);
    if (fromMatch &amp;&amp; toMatch) {
        console.assert(fromRevisionIdentifierParts.branch == toRevisionIdentifierParts.branch);
        return `${fromRevisionIdentifierParts.number}-${toRevisionIdentifierParts.number}@${fromRevisionIdentifierParts.branch} (${CommitLog.getformatttedRevision(fromRevision)}${connector}${CommitLog.getformatttedRevision(toRevision)})`;
    }
    if (fromMatch || toMatch)
        return `${previousCommit.label()}$ - ${this.label()}`;
    return `${previousCommit.label()}${connector}${this.label()}`;
})(identifierPattern.exec(previousCommit.revisionIdentifier()), identifierPattern.exec(this.revisionIdentifier()));

&gt; Websites/perf.webkit.org/unit-tests/commit-log-tests.js:289
&gt; +                label: &apos;175605 - 184276@main (r200574-r200805)&apos;,

This looks wrong. It should be: 175605-184276@main (r200574-r200805)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744427</commentid>
    <comment_count>44</comment_count>
      <attachid>424429</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-26 19:00:19 -0700</bug_when>
    <thetext>Created attachment 424429
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744428</commentid>
    <comment_count>45</comment_count>
      <attachid>424430</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-26 19:11:15 -0700</bug_when>
    <thetext>Created attachment 424430
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744429</commentid>
    <comment_count>46</comment_count>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-26 19:11:30 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #43)

I have upload a new one with some explanation for some comments I don&apos;t take
&gt; Comment on attachment 424098 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=424098&amp;action=review
&gt; 
&gt; r=me assuming the changes suggested below are made.
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:13
&gt; &gt; +        $commit_rows = $db-&gt;query_and_fetch_all(&quot;SELECT commit_id FROM commits WHERE commit_repository = $1 AND $column_name  = $2&quot;, array($repository_id, $revision));
&gt; 
&gt; Nit: two spaces between $column_name and =.

Got it.
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/include/commit-updater.php:112
&gt; &gt; +                self::validate_commits($owned_commit_info, true);
&gt; 
&gt; Nice! This is way better than the old patch with code duplication.
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/include/commit-updater.php:161
&gt; &gt; +    private static function validate_commits(&amp;$commit_info, $is_own_commit=false)
&gt; 
&gt; Nit: spaces around =. Since this is not python, we follow the usual WebKit
&gt; coding style.
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:55
&gt; &gt; +    static getRevisionType(revision)
&gt; 
&gt; This should be _repositoryType.
&gt; We don&apos;t use &quot;get&quot; prefix unless it has an out argument:
&gt; https://webkit.org/code-style-guidelines/#names-setter-getter
&gt; 
Got it 
&gt; &gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:63
&gt; &gt; +    static getformatttedRevision(revision, revisionIdentifier=null) 
&gt; 
&gt; Nit: Always use camelCase. Also need spaces around =.
&gt; But in this case, this should be called _formattedRevision instead.
&gt; 
Got it
&gt; &gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:65
&gt; &gt; +        let formattedRevision = revision;
&gt; 
&gt; I don&apos;t think we need this variable.
&gt; 

The reason here we do have an extra variable is to share this function with label and diff. For label, we want to it to display something like 1234@main (r1234), how ever for the diff, we want to it to display 1234-1235@main (r1234-r1235), note the following parts in the bracket r1234-r1235 we don&apos;t want the revision identifier prefix, so we can simply don&apos;t pass revision identifier to the _formatttedRevision, it will only gives the r1234 part back. For label, we pass with the revision identifier, so this function will add the revision identifier prefix, directly return will be wrong. 

&gt; &gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:68
&gt; &gt; +            formattedRevision = &apos;r&apos; + revision;
&gt; 
&gt; Use return.
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:70
&gt; &gt; +            formattedRevision = revision.substring(0, 12);
&gt; 
&gt; Use return.
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:76
&gt; &gt; +    revisionIdentifierParts() { 
&gt; 
&gt; Nit: { should be on the next line.
&gt; Also, this should be probably called _revisionIdentifier.
&gt; But this shouldn&apos;t really be a separate method since there is no utility
&gt; outside diff at least for now.
&gt; So this should really be a lambda function inside diff.
&gt; But defining a method for this is really an overkill.

Yeah, I agree for this patch to make a function seems an overkill, but I have feeling that we will use the first part of revision identifier a lot soon, for example perform bi-selection when the svn revision becomes git hashes. So that&apos;s why I make it a function.
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:77
&gt; &gt; +        const revisionIdentifier =  this.revisionIdentifier();
&gt; 
&gt; Nit: two spaces between after =.

Got it
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:80
&gt; &gt; +        const identifierRe = /(?&lt;number&gt;\d+)@(?&lt;branch&gt;[\w\.\-]+)/;
&gt; 
&gt; There is no need to have this local variable.
&gt; Just do: /~/.exec
&gt; 
got it
&gt; &gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:100
&gt; &gt; +        const toRevisionIdentifierParts = this.revisionIdentifierParts();
&gt; &gt; +        const fromRevisionIdentifierParts = previousCommit.revisionIdentifierParts();
&gt; 
&gt; These are really long names! How about toIdentifier &amp; fromIdentifier or
&gt; toMatch &amp; fromMatch

got it
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:116
&gt; &gt; +        let connector = &apos; - &apos;;
&gt; &gt; +        if (revisionType == &apos;git&apos;)
&gt; &gt; +            connector = &apos;..&apos;;
&gt; &gt; +        if (revisionType == &apos;svn&apos;)
&gt; &gt; +            connector = &apos;-&apos;;
&gt; &gt; +        let label = `${previousCommit.label()}${connector}${this.label()}`;
&gt; &gt; +        if (fromRevisionIdentifierParts || toRevisionIdentifierParts) {
&gt; &gt; +            if (fromRevisionIdentifierParts &amp;&amp; toRevisionIdentifierParts) {
&gt; &gt; +                console.assert(fromRevisionIdentifierParts.branch == toRevisionIdentifierParts.branch);
&gt; &gt; +                label = `${fromRevisionIdentifierParts.number} - ${toRevisionIdentifierParts.number}@${fromRevisionIdentifierParts.branch} (${CommitLog.getformatttedRevision(fromRevision)}${connector}${CommitLog.getformatttedRevision(toRevision)})`
&gt; &gt; +            } else {
&gt; &gt; +                connector = &apos; - &apos;;
&gt; &gt; +                label = `${previousCommit.label()}${connector}${this.label()}`;
&gt; &gt; +            }
&gt; &gt; +        }
&gt; 
&gt; This should really be a lambda.
&gt; Also, if we&apos;re gonna just assert that branches are same, we should just use
&gt; early return,
&gt; which is WebKit&apos;s preferred style.
&gt; 
&gt; const identifierPattern = /^(?&lt;number&gt;\d+)\@(?&lt;branch&gt;.+)$/;
&gt; const label = ((fromMatch, toMatch) =&gt; {
&gt;     const separator = repositoryType == &apos;git&apos; ? &apos;..&apos; : (repositoryType ==
&gt; &apos;svn&apos; ? &apos;-&apos; : &apos; - &apos;);
&gt;     if (fromMatch &amp;&amp; toMatch) {
&gt;         console.assert(fromRevisionIdentifierParts.branch ==
&gt; toRevisionIdentifierParts.branch);
&gt;         return
&gt; `${fromRevisionIdentifierParts.number}-${toRevisionIdentifierParts.
&gt; number}@${fromRevisionIdentifierParts.branch}
&gt; (${CommitLog.getformatttedRevision(fromRevision)}${connector}${CommitLog.
&gt; getformatttedRevision(toRevision)})`;
&gt;     }
&gt;     if (fromMatch || toMatch)
&gt;         return `${previousCommit.label()}$ - ${this.label()}`;
&gt;     return `${previousCommit.label()}${connector}${this.label()}`;
&gt; })(identifierPattern.exec(previousCommit.revisionIdentifier()),
&gt; identifierPattern.exec(this.revisionIdentifier()));
&gt; 
&gt; &gt; Websites/perf.webkit.org/unit-tests/commit-log-tests.js:289
&gt; &gt; +                label: &apos;175605 - 184276@main (r200574-r200805)&apos;,
&gt; 
&gt; This looks wrong. It should be: 175605-184276@main (r200574-r200805)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744431</commentid>
    <comment_count>47</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-26 19:20:53 -0700</bug_when>
    <thetext>(In reply to Zhifei Fang from comment #46)
&gt; &gt; &gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:76
&gt; &gt; &gt; +    revisionIdentifierParts() { 
&gt; &gt; 
&gt; &gt; Nit: { should be on the next line.
&gt; &gt; Also, this should be probably called _revisionIdentifier.
&gt; &gt; But this shouldn&apos;t really be a separate method since there is no utility
&gt; &gt; outside diff at least for now.
&gt; &gt; So this should really be a lambda function inside diff.
&gt; &gt; But defining a method for this is really an overkill.
&gt; 
&gt; Yeah, I agree for this patch to make a function seems an overkill, but I
&gt; have feeling that we will use the first part of revision identifier a lot
&gt; soon, for example perform bi-selection when the svn revision becomes git
&gt; hashes. So that&apos;s why I make it a function.

If that&apos;s the case, let&apos;s add such a function when another use case like that comes up. In my experience, structuring code in the anticipation for something that may happen in the future often backfires.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744434</commentid>
    <comment_count>48</comment_count>
      <attachid>424433</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-26 19:28:07 -0700</bug_when>
    <thetext>Created attachment 424433
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744435</commentid>
    <comment_count>49</comment_count>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-26 19:30:05 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #47)
&gt; (In reply to Zhifei Fang from comment #46)
&gt; &gt; &gt; &gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:76
&gt; &gt; &gt; &gt; +    revisionIdentifierParts() { 
&gt; &gt; &gt; 
&gt; &gt; &gt; Nit: { should be on the next line.
&gt; &gt; &gt; Also, this should be probably called _revisionIdentifier.
&gt; &gt; &gt; But this shouldn&apos;t really be a separate method since there is no utility
&gt; &gt; &gt; outside diff at least for now.
&gt; &gt; &gt; So this should really be a lambda function inside diff.
&gt; &gt; &gt; But defining a method for this is really an overkill.
&gt; &gt; 
&gt; &gt; Yeah, I agree for this patch to make a function seems an overkill, but I
&gt; &gt; have feeling that we will use the first part of revision identifier a lot
&gt; &gt; soon, for example perform bi-selection when the svn revision becomes git
&gt; &gt; hashes. So that&apos;s why I make it a function.
&gt; 
&gt; If that&apos;s the case, let&apos;s add such a function when another use case like
&gt; that comes up. In my experience, structuring code in the anticipation for
&gt; something that may happen in the future often backfires.

Ok, I removed that function, but out of curiosity, why such a function that is doing the right staff and only get called in one function will create a backfire?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744437</commentid>
    <comment_count>50</comment_count>
      <attachid>424430</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-26 19:43:32 -0700</bug_when>
    <thetext>Comment on attachment 424430
Patch

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

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:55
&gt; +    static repositoryType(revision)

Since this function doesn&apos;t have any external use, we should call this _repositoryType

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:61
&gt; +    }

We should probably explicitly return null here.

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:63
&gt; +    static _formatttedRevision(revision, revisionIdentifier=null) 

Nit: Spaces around =.

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:70
&gt; +        let formattedRevision = revision;
&gt; +        let repositoryType = CommitLog.repositoryType(revision);
&gt; +        if (repositoryType == &apos;svn&apos;) // e.g. r12345
&gt; +            formattedRevision =  &apos;r&apos; + revision;
&gt; +        if (repositoryType == &apos;git&apos;) // e.g. git hash
&gt; +            formattedRevision = revision.substring(0, 12);

In general, having a variable that gets updated later makes the code harder to follow
because we&apos;d be creating an implicit dependency between different control statements.

Here, we should probably define a nested lambda like this:
const formattedRevision = (() =&gt; {
    if (repositoryType == &apos;svn&apos;) // e.g. r12345
        return &apos;r&apos; + revision;
    if (repositoryType == &apos;git&apos;)
        return revision.substring(0, 12);
    return revision;
})();

Or better yet, we should just use a switch statement now that we have _repositoryType:
const formattedRevision = (() =&gt; {
    switch (this._repositoryType(revision)) {
    case &apos;svn&apos;:
        return &apos;r&apos; + revision; // e.g. r12345
    case &apos;git&apos;:
        return revision.substring(0, 12);
    }
    return revision;
})();

I really wish we had switch expression like Rust or C#.

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:72
&gt; +            formattedRevision = `${revisionIdentifier} (${formattedRevision})`;

This should be an early return:
if (revisionIdentifier)
    return `${revisionIdentifier} (${formattedRevision})`;

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:76
&gt; +    revisionIdentifierParts() 

Let&apos;s not add this function prematurely.
If we later find that the numerical part of a revision identifier is used often, then we should add a function to get that.
We should structure code based on real world use cases, not based on our anticipation.

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:103
&gt; +        let label = (() =&gt; {

const.

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:107
&gt; +                return `${fromMatch.number}-${toMatch.number}@${fromMatch.branch} (${CommitLog._formatttedRevision(fromRevision)}${separator}${CommitLog._formatttedRevision(toRevision)})`

This is a really long statement.
Maybe we should format revisions in a separate lines like this:
const formattedFrom = CommitLog._formatttedRevision(fromRevision);
const formattedTo = CommitLog._formatttedRevision(toRevision);

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:114
&gt; +        return {repository: repository, label: label, url: repository.urlForRevisionRange(fromRevision, toRevision)};

Use shorthand: return {repository, label, url: repository.urlForRevisionRange(fromRevision, toRevision)};</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744439</commentid>
    <comment_count>51</comment_count>
      <attachid>424433</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-26 19:49:28 -0700</bug_when>
    <thetext>Comment on attachment 424433
Patch

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

&gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:11
&gt; -        $commit_rows = $db-&gt;query_and_fetch_all(&apos;SELECT commit_id FROM commits WHERE commit_repository = $1 AND commit_revision = $2&apos;, array($repository_id, $revision));
&gt; +        $column_name = CommitLogFetcher::is_commit_revision_identifier($revision) ? &apos;commit_revision_identifier&apos; : &apos;commit_revision&apos;;

I&apos;m actually having second thoughts that maybe we shouldn&apos;t detect revision identifier like this in the backend.
But we can address that sometime in the future.

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:63
&gt; +    static _formatttedRevision(revision, revisionIdentifier=null) 

Please address the review comment I just posted.

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:95
&gt; +                console.assert(fromMatch.groups.branch == toMatch.groups.branch);

Ditto.

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:103
&gt; +        return {repository: repository, label: label, url: repository.urlForRevisionRange(fromRevision, toRevision)};

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744447</commentid>
    <comment_count>52</comment_count>
      <attachid>424437</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-26 20:21:44 -0700</bug_when>
    <thetext>Created attachment 424437
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744458</commentid>
    <comment_count>53</comment_count>
      <attachid>424437</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-26 21:42:14 -0700</bug_when>
    <thetext>Comment on attachment 424437
Patch

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

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:61
&gt;      }

Like I pointed out earlier, we should return null explicitly here.

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:65
&gt; +        let formattedRevision =  (() =&gt; {

Nit: use const. Two spaces after =

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:105
&gt; +            return `${previousCommit.label()}${separator}${this.label()}`;

Actually, this is basically same as ${formattedFrom}${separator}${formattedTo} above.
So maybe it&apos;s better to do something like this:
        const label = ((fromMatch, toMatch) =&gt; {
            const separator = repositoryType == &apos;git&apos; ? &apos;..&apos; : (repositoryType == &apos;svn&apos; ? &apos;-&apos; : &apos; - &apos;);
            const revisionRange = `${CommitLog._formatttedRevision(fromRevision)}${separator}${CommitLog._formatttedRevision(toRevision);}`;
            if (fromMatch &amp;&amp; toMatch) {
                console.assert(fromMatch.groups.branch == toMatch.groups.branch);
                return `${fromMatch.groups.number}-${toMatch.groups.number}@${fromMatch.groups.branch} (${revisionRange})`;
            }
            if (fromMatch || toMatch)
                return `${previousCommit.label()} - ${this.label()}`;
            return revisionRange;
        })(identifierPattern.exec(previousCommit.revisionIdentifier()), identifierPattern.exec(this.revisionIdentifier()));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744461</commentid>
    <comment_count>54</comment_count>
      <attachid>424442</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-26 21:50:46 -0700</bug_when>
    <thetext>Created attachment 424442
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744478</commentid>
    <comment_count>55</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-27 03:43:50 -0700</bug_when>
    <thetext>(In reply to Zhifei Fang from comment #49)
&gt;
&gt; &gt; If that&apos;s the case, let&apos;s add such a function when another use case like
&gt; &gt; that comes up. In my experience, structuring code in the anticipation for
&gt; &gt; something that may happen in the future often backfires.
&gt; 
&gt; Ok, I removed that function, but out of curiosity, why such a function that
&gt; is doing the right staff and only get called in one function will create a
&gt; backfire?

Because it adds more code and indirection. Adding any unnecessary abstraction will make the code harder to maintain by separating different pieces of code that are related / dependent.

In this particular case, it&apos;s not immediately obvious what &quot;parts&quot; are in &quot;revisionIdentifierParts&quot;. This is not a concept readily defined anywhere. If we&apos;re having a hard time coming up with a self-explanatory function name, it usually means we have a bad abstraction / interface. If, on the other hand, we&apos;re only interested in the leading digits, then we should be just calling parseInt instead of running a full regular expression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744479</commentid>
    <comment_count>56</comment_count>
      <attachid>424442</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-27 03:48:48 -0700</bug_when>
    <thetext>Comment on attachment 424442
Patch

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

r=me but it seems like this patch needs be updated for ToT revision?

&gt; Websites/perf.webkit.org/public/v3/models/commit-log.js:61
&gt; +            return &apos;git&apos;;
&gt;      }

Again, we should return null here.

&gt; Websites/perf.webkit.org/server-tests/api-report-tests.js:394
&gt; +        for (let repository of repositories)

Nit: const.

&gt; Websites/perf.webkit.org/server-tests/api-report-tests.js:398
&gt; +        for (let commit of commits)

Nit: const.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744843</commentid>
    <comment_count>57</comment_count>
      <attachid>424566</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-29 12:58:12 -0700</bug_when>
    <thetext>Created attachment 424566
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745714</commentid>
    <comment_count>58</comment_count>
      <attachid>424796</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-31 11:56:36 -0700</bug_when>
    <thetext>Created attachment 424796
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745760</commentid>
    <comment_count>59</comment_count>
      <attachid>424813</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-31 13:42:42 -0700</bug_when>
    <thetext>Created attachment 424813
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745762</commentid>
    <comment_count>60</comment_count>
      <attachid>424815</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-31 13:44:55 -0700</bug_when>
    <thetext>Created attachment 424815
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745814</commentid>
    <comment_count>61</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-31 15:25:36 -0700</bug_when>
    <thetext>Found 1 new test failure: media/media-fragments/TC0051.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745878</commentid>
    <comment_count>62</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-31 17:50:16 -0700</bug_when>
    <thetext>Committed r275329: &lt;https://commits.webkit.org/r275329&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 424815.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422544</attachid>
            <date>2021-03-07 22:56:28 -0800</date>
            <delta_ts>2021-03-08 13:54:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222897-20210307225627.patch</filename>
            <type>text/plain</type>
            <size>22432</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MDYxCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1YTg1MWZkODI1NTA1YjQzMGFkNzg3ODZhNTQ1NzI0MzUwNTg0Zjc1Li5lOGU5MzJhNGFm
MTVjZTY5MzY4Zjc2M2E5ZDkzZmI5ZmY5MTY2M2IxIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAyMS0wMy0wNyAgWmhpZmVpIEZhbmcgIDx6aGlmZWlf
ZmFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGNvbW1pdCBpZGVudGlmaWVyIHN1cHBvcnQK
KworICAgICAgICBBZGQgbmV3IGNvbHVtbiBjb21taXQgaWRlbnRpZmllcgorICAgICAgICBNYWtl
IGFsbCBjb21taXQgYXBpIGFsc28gY2FuIHdvcmsgd2l0aCBjb21taXQgaWRlbnRpZmllcgorICAg
ICAgICBDaGFuZ2UgdGhlIGNvbW1pdCBsYWJlbCBkaXNwbGF5IHdpdGggY29tbWl0IGlkZW50aWll
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyODk3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBicm93
c2VyLXRlc3RzL2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzOgorICAgICAgICAocmV0dXJuLmlt
cG9ydENvbW1pdExvZ1ZpZXdlci5jb250ZXh0LnRoZW4uYXN5bmMgQ29tbWl0TG9nVmlld2VyKToK
KyAgICAgICAgKiBpbml0LWRhdGFiYXNlLnNxbDoKKyAgICAgICAgKiBtaWdyYXRlLWRhdGFiYXNl
LnNxbDoKKyAgICAgICAgKiBwdWJsaWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwOgor
ICAgICAgICAqIHB1YmxpYy9pbmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocDoKKyAgICAgICAgKiBw
dWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1sb2cuanM6CisgICAgICAgIChDb21taXRMb2cucHJvdG90
eXBlLmlkZW50aWZpZXIpOgorICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS5sYWJlbCk6Cisg
ICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzOgorICAgICAgICAqIHNl
cnZlci10ZXN0cy9yZXNvdXJjZXMvdGVzdC1zZXJ2ZXIuY29uZjoKKyAgICAgICAgKiB1bml0LXRl
c3RzL2NvbW1pdC1sb2ctdGVzdHMuanM6CisKIDIwMjEtMDMtMDYgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW3BlcmYgZGFzaGJvYXJkXSBNb2Rlcm5pemUgVGlt
ZVNlcmllcyBhbmQgVGltZVNlcmllc1ZpZXcKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9icm93c2VyLXRlc3RzL2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvY29tbWl0LWxvZy12aWV3ZXItdGVzdHMu
anMKaW5kZXggZGJjNGNmY2Q5YmMyMTRiNzA4ZWUxOThmMWVhNjY1ZjIyNDIyODU2MC4uZjhkNDMw
MmE2OTM1ZTEyMjI0MDRiY2NhZDU3OTY2YmFiMjczNDA3YSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvY29tbWl0LWxvZy12aWV3ZXItdGVzdHMuanMK
KysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvY29tbWl0LWxvZy12
aWV3ZXItdGVzdHMuanMKQEAgLTIyLDYgKzIyLDcgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZ1ZpZXdl
cicsICgpID0+IHsKICAgICBjb25zdCB3ZWJraXRDb21taXQyMTA5NDggPSB7CiAgICAgICAgICJp
ZCI6ICIxODUzMjYiLAogICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQ4IiwKKyAgICAgICAgImlk
ZW50aWZpZXIiOiAiMTg0Mjc2QG1haW4iLAogICAgICAgICAicmVwb3NpdG9yeSI6IDEsCiAgICAg
ICAgICJwcmV2aW91c0NvbW1pdCI6IG51bGwsCiAgICAgICAgICJvd25zQ29tbWl0cyI6IGZhbHNl
LApAQCAtNDYsNiArNDcsNyBAQCBkZXNjcmliZSgnQ29tbWl0TG9nVmlld2VyJywgKCkgPT4gewog
ICAgIGNvbnN0IHdlYmtpdENvbW1pdDIxMDk1MCA9IHsKICAgICAgICAgImlkIjogIjE4NTMzOCIs
CiAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NTAiLAorICAgICAgICAiaWRlbnRpZmllciI6ICIx
ODQyNzhAbWFpbiIsCiAgICAgICAgICJyZXBvc2l0b3J5IjogMSwKICAgICAgICAgInByZXZpb3Vz
Q29tbWl0IjogbnVsbCwKICAgICAgICAgIm93bnNDb21taXRzIjogZmFsc2UsCkBAIC0xMzEsMTIg
KzEzMywxMyBAQCBkZXNjcmliZSgnQ29tbWl0TG9nVmlld2VyJywgKCkgPT4gewogICAgICAgICAg
ICAgfSk7CiAKICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JDb21wb25lbnRzVG9SZW5kZXIoY29u
dGV4dCk7Ci0KKyAgICAgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnc3Bpbm5lci1jb250
YWluZXInKS5vZmZzZXRIZWlnaHQpLnRvLm5vdC5iZSgwKTsKKyAgICAgICAgICAgIGF3YWl0IHdh
aXRGb3JDb21wb25lbnRzVG9SZW5kZXIoY29udGV4dCk7CiAgICAgICAgICAgICBleHBlY3Qodmll
d2VyLmNvbnRlbnQoJ3NwaW5uZXItY29udGFpbmVyJykub2Zmc2V0SGVpZ2h0KS50by5iZSgwKTsK
ICAgICAgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnY29tbWl0cy1saXN0JykubWF0Y2hl
cygnOmVtcHR5JykpLnRvLmJlKGZhbHNlKTsKICAgICAgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29u
dGVudCgnY29tbWl0cy1saXN0JykudGV4dENvbnRlbnQpLnRvLmNvbnRhaW4oJ3IyMTA5NDknKTsK
ICAgICAgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnY29tbWl0cy1saXN0JykudGV4dENv
bnRlbnQpLnRvLmNvbnRhaW4oJ0NocmlzIER1bWV6Jyk7Ci0gICAgICAgICAgICBleHBlY3Qodmll
d2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLnRleHRDb250ZW50KS50by5jb250YWluKCdyMjEw
OTUwJyk7CisgICAgICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcp
LnRleHRDb250ZW50KS50by5jb250YWluKCcxODQyNzhAbWFpbiAocjIxMDk1MCknKTsKICAgICAg
ICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnY29tbWl0cy1saXN0JykudGV4dENvbnRlbnQp
LnRvLmNvbnRhaW4oJ0NvbW1pdCBRdWV1ZScpOwogICAgICAgICAgICAgZXhwZWN0KHZpZXdlci5j
b250ZW50KCdyZXBvc2l0b3J5LW5hbWUnKS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUoZmFsc2Up
OwogICAgICAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdyZXBvc2l0b3J5LW5hbWUnKS50
ZXh0Q29udGVudCkudG8uY29udGFpbignV2ViS2l0Jyk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvaW5pdC1kYXRhYmFzZS5zcWwKaW5kZXggN2ZmYzg5YWQ4MmM3NjEwNDFkMWE1NTZlODNmN2M5
Njc4YTMyZmFjMS4uNzg0NjIwNzkxOTU3YmM1MWJlYTg1YWI2NWU1ODQ4Y2I0NmNiM2ZmNCAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCisrKyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbApAQCAtMTAyLDYgKzEw
Miw3IEBAIENSRUFURSBUQUJMRSBjb21taXRzICgKICAgICBjb21taXRfaWQgc2VyaWFsIFBSSU1B
UlkgS0VZLAogICAgIGNvbW1pdF9yZXBvc2l0b3J5IGludGVnZXIgTk9UIE5VTEwgUkVGRVJFTkNF
UyByZXBvc2l0b3JpZXMgT04gREVMRVRFIENBU0NBREUsCiAgICAgY29tbWl0X3JldmlzaW9uIHZh
cmNoYXIoNjQpIE5PVCBOVUxMLAorICAgIGNvbW1pdF9pZGVudGlmaWVyIHZhcmNoYXIoNjQpIERF
RkFVTFQgTlVMTCwKICAgICBjb21taXRfcHJldmlvdXNfY29tbWl0IGludGVnZXIgUkVGRVJFTkNF
UyBjb21taXRzIE9OIERFTEVURSBDQVNDQURFLAogICAgIGNvbW1pdF90aW1lIHRpbWVzdGFtcCwK
ICAgICBjb21taXRfb3JkZXIgaW50ZWdlciwKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9t
aWdyYXRlLWRhdGFiYXNlLnNxbAppbmRleCA0OWJkMjQ5ZDJhNjg1Nzc2NDQ5ZDM2ZTgwNTI2OGZj
YzRiODc3YWNhLi5kZTE3MmY2NDYwOGM1YTA4ZGIzMDRjZGQzOGE2ZTk0ZmE0MTIxZDc4IDEwMDY0
NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWlncmF0ZS1kYXRhYmFzZS5zcWwKKysr
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL21pZ3JhdGUtZGF0YWJhc2Uuc3FsCkBAIC0xNCw2
ICsxNCw3IEBAIElGIEVYSVNUUyAoU0VMRUNUIE5VTEwgRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEu
Y29sdW1ucyBXSEVSRSBUQUJMRV9OQU1FID0gJ2J1aWxkCiAgICAgQUxURVIgVEFCTEUgYnVpbGRz
IFJFTkFNRSBidWlsZF9udW1iZXIgVE8gYnVpbGRfdGFnOwogICAgIEFMVEVSIFRBQkxFIGJ1aWxk
cyBEUk9QIENPTlNUUkFJTlQgIGJ1aWxkZXJfYnVpbGRfdGltZV90dXBsZV9tdXN0X2JlX3VuaXF1
ZTsKICAgICBBTFRFUiBUQUJMRSBidWlsZHMgQUREIENPTlNUUkFJTlQgYnVpbGRlcl9idWlsZF90
aW1lX3R1cGxlX211c3RfYmVfdW5pcXVlIFVOSVFVRShidWlsZF9idWlsZGVyLCBidWlsZF90YWcs
IGJ1aWxkX3RpbWUpOworICAgIEFMVEVSIFRBQkxFIGNvbW1pdHMgQUREIENPTFVNTiBJRiBOT1Qg
RVhJU1RTIGNvbW1pdF9pZGVudGlmaWVyOwogRU5EIElGOwogCiBFTkQkJDsKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL2luY2x1ZGUvY29tbWl0LWxvZy1mZXRjaGVyLnBocCBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwCmluZGV4IDZlMGJlY2Qw
YmM4MTY0YzA0MmZkM2ZiMmYzOTk4YzQxNTRmZWIwZTEuLjg3NjRjZTQ5OWY4MzY5MGNiMTdmNjRm
NDE0NGNhZWU0NTcyY2RlYTMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwCkBAIC04LDE0
ICs4LDE4IEBAIGNsYXNzIENvbW1pdExvZ0ZldGNoZXIgewogCiAgICAgc3RhdGljIGZ1bmN0aW9u
IGZpbmRfY29tbWl0X2lkX2J5X3JldmlzaW9uKCRkYiwgJHJlcG9zaXRvcnlfaWQsICRyZXZpc2lv
bikKICAgICB7Ci0gICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNoX2Fs
bCgnU0VMRUNUIGNvbW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkg
PSAkMSBBTkQgY29tbWl0X3JldmlzaW9uID0gJDInLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgJHJl
dmlzaW9uKSk7CisgICAgICAgICRjb2x1bW5fbmFtZSA9ICdyZXZpc2lvbic7CisgICAgICAgIGlm
ICgkdGhpcy0+aXNfY29tbWl0X2lkZW50aWZpZXIoJHJldmlzaW9uKSkKKyAgICAgICAgICAgICRj
b2x1bW5fbmFtZSA9ICdpZGVudGlmaWVyJzsKKyAgICAgICAgCisgICAgICAgICRjb21taXRfcm93
cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUIGNvbW1pdF9pZCBGUk9NIGNvbW1p
dHMgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkgPSAkMSBBTkQgY29tbWl0XycgLiAkY29sdW1uX25h
bWUgLiAnID0gJDInLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uKSk7CiAgICAgICAg
IGlmICgkY29tbWl0X3Jvd3MpCiAgICAgICAgICAgICByZXR1cm4gJGNvbW1pdF9yb3dzWzBdWydj
b21taXRfaWQnXTsKIAogICAgICAgICBpZiAoIWN0eXBlX2FsbnVtKCRyZXZpc2lvbikpCiAgICAg
ICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgICAgICAkY29tbWl0X3Jvd3MgPSAkZGItPnF1ZXJ5
X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCBjb21taXRfaWQgRlJPTSBjb21taXRzIFdIRVJFIGNvbW1p
dF9yZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF9yZXZpc2lvbiBMSUtFICQyIExJTUlUIDInLCBh
cnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb24p
IC4gJyUnKSk7CisgICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNoX2Fs
bCgnU0VMRUNUIGNvbW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkg
PSAkMSBBTkQgY29tbWl0XycgLiAkY29sdW1uX25hbWUgLiAnIExJS0UgJDIgTElNSVQgMicsIGFy
cmF5KCRyZXBvc2l0b3J5X2lkLCBEYXRhYmFzZTo6ZXNjYXBlX2Zvcl9saWtlKCRyZXZpc2lvbikg
LiAnJScpKTsKICAgICAgICAgaWYgKCEkY29tbWl0X3Jvd3MpCiAgICAgICAgICAgICByZXR1cm4g
TlVMTDsKICAgICAgICAgaWYgKGNvdW50KCRjb21taXRfcm93cykgPiAxKQpAQCAtNTUsNiArNTks
NyBAQCBjbGFzcyBDb21taXRMb2dGZXRjaGVyIHsKICAgICB7CiAgICAgICAgICRzdGF0ZW1lbnRz
ID0gJ1NFTEVDVCBjb21taXRfaWQgYXMgImlkIiwKICAgICAgICAgICAgIGNvbW1pdF9yZXZpc2lv
biBhcyAicmV2aXNpb24iLAorICAgICAgICAgICAgY29tbWl0X2lkZW50aWZpZXIgYXMgImlkZW50
aWZpZXIiLAogICAgICAgICAgICAgY29tbWl0X3ByZXZpb3VzX2NvbW1pdCBhcyAicHJldmlvdXND
b21taXQiLAogICAgICAgICAgICAgY29tbWl0X3RpbWUgYXMgInRpbWUiLAogICAgICAgICAgICAg
Y29tbWl0dGVyX25hbWUgYXMgImF1dGhvck5hbWUiLApAQCAtMTkyLDggKzE5NywxNSBAQCBjbGFz
cyBDb21taXRMb2dGZXRjaGVyIHsKICAgICAgICAgcmV0dXJuICR0aGlzLT5mb3JtYXRfc2luZ2xl
X2NvbW1pdCgkY29tbWl0KTsKICAgICB9CiAKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGlzX2NvbW1p
dF9pZGVudGlmaWVyKCRjb21taXRfcmV2aXNpb25fb3JfaWRlbnRpZmllcikgeworICAgICAgICBy
ZXR1cm4gcHJlZ19tYXRjaCgnL1xkK0BcUysvJywgJGNvbW1pdF9yZXZpc2lvbl9vcl9pZGVudGlm
aWVyKTsKKyAgICB9CisKICAgICBwcml2YXRlIGZ1bmN0aW9uIGNvbW1pdF9mb3JfcmV2aXNpb24o
JHJlcG9zaXRvcnlfaWQsICRyZXZpc2lvbikgewotICAgICAgICAkY29tbWl0X2luZm8gPSBhcnJh
eSgncmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlfaWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9u
KTsKKyAgICAgICAgaWYgKCEkdGhpcy0+aXNfY29tbWl0X2lkZW50aWZpZXIoJHJldmlzaW9uKSkK
KyAgICAgICAgICAgICRjb21taXRfaW5mbyA9IGFycmF5KCdyZXBvc2l0b3J5JyA9PiAkcmVwb3Np
dG9yeV9pZCwgJ3JldmlzaW9uJyA9PiAkcmV2aXNpb24pOworICAgICAgICBlbHNlIAorICAgICAg
ICAgICAgJGNvbW1pdF9pbmZvID0gYXJyYXkoJ3JlcG9zaXRvcnknID0+ICRyZXBvc2l0b3J5X2lk
LCAnaWRlbnRpZmllcicgPT4gJHJldmlzaW9uKTsKICAgICAgICAgJHJvdyA9ICR0aGlzLT5kYi0+
c2VsZWN0X2xhc3Rfcm93KCdjb21taXRzJywgJ2NvbW1pdCcsICRjb21taXRfaW5mbyk7CiAgICAg
ICAgIGlmICghJHJvdykKICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignVW5rbm93bkNvbW1p
dCcsICRjb21taXRfaW5mbyk7CkBAIC0yMDEsNyArMjEzLDExIEBAIGNsYXNzIENvbW1pdExvZ0Zl
dGNoZXIgewogICAgIH0KIAogICAgIHByaXZhdGUgZnVuY3Rpb24gY29tbWl0X2Zvcl9yZXZpc2lv
bl9wcmVmaXgoJHJlcG9zaXRvcnlfaWQsICRyZXZpc2lvbl9wcmVmaXgpIHsKLSAgICAgICAgJHJv
d3MgPSAkdGhpcy0+ZGItPnF1ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCAqIEZST00gY29tbWl0
cyBXSEVSRSBjb21taXRfcmVwb3NpdG9yeSA9ICQxIEFORCBjb21taXRfcmV2aXNpb24gTElLRSAk
MiBPUkRFUiBCWSBjb21taXRfcmV2aXNpb24gTElNSVQgMicsIGFycmF5KCRyZXBvc2l0b3J5X2lk
LCBEYXRhYmFzZTo6ZXNjYXBlX2Zvcl9saWtlKCRyZXZpc2lvbl9wcmVmaXgpIC4gJyUnKSk7Cisg
ICAgICAgICRjb2x1bW5fbmFtZSA9ICdyZXZpc2lvbic7CisgICAgICAgIGlmICgkdGhpcy0+aXNf
Y29tbWl0X2lkZW50aWZpZXIoJHJldmlzaW9uX3ByZWZpeCkpCisgICAgICAgICAgICAkY29sdW1u
X25hbWUgPSAnaWRlbnRpZmllcic7CisgICAgICAgIAorICAgICAgICAkcm93cyA9ICR0aGlzLT5k
Yi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUICogRlJPTSBjb21taXRzIFdIRVJFIGNvbW1p
dF9yZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF8nLiRjb2x1bW5fbmFtZS4nIExJS0UgJDIgT1JE
RVIgQlkgY29tbWl0XycuJGNvbHVtbl9uYW1lLicgTElNSVQgMicsIGFycmF5KCRyZXBvc2l0b3J5
X2lkLCBEYXRhYmFzZTo6ZXNjYXBlX2Zvcl9saWtlKCRyZXZpc2lvbl9wcmVmaXgpIC4gJyUnKSk7
CiAgICAgICAgIGlmIChjb3VudCgkcm93cykgPT0gMCkKICAgICAgICAgICAgIGV4aXRfd2l0aF9l
cnJvcignVW5rbm93bkNvbW1pdCcsIGFycmF5KCdyZXBvc2l0b3J5JyA9PiAkcmVwb3NpdG9yeV9p
ZCwgJ3JldmlzaW9uJyA9PiAkcmV2aXNpb25fcHJlZml4KSk7CiAgICAgICAgIGlmIChjb3VudCgk
cm93cykgPT0gMikgewpAQCAtMjI0LDYgKzI0MCw3IEBAIGNsYXNzIENvbW1pdExvZ0ZldGNoZXIg
ewogICAgICAgICByZXR1cm4gYXJyYXkoCiAgICAgICAgICAgICAnaWQnID0+ICRjb21taXRfcm93
Wydjb21taXRfaWQnXSwKICAgICAgICAgICAgICdyZXZpc2lvbicgPT4gJGNvbW1pdF9yb3dbJ2Nv
bW1pdF9yZXZpc2lvbiddLAorICAgICAgICAgICAgJ2lkZW50aWZpZXInID0+ICRjb21taXRfcm93
Wydjb21taXRfaWRlbnRpZmllciddLAogICAgICAgICAgICAgJ3JlcG9zaXRvcnknID0+ICRjb21t
aXRfcm93Wydjb21taXRfcmVwb3NpdG9yeSddLAogICAgICAgICAgICAgJ3ByZXZpb3VzQ29tbWl0
JyA9PiAkY29tbWl0X3Jvd1snY29tbWl0X3ByZXZpb3VzX2NvbW1pdCddLAogICAgICAgICAgICAg
J3RpbWUnID0+IERhdGFiYXNlOjp0b19qc190aW1lKCRjb21taXRfcm93Wydjb21taXRfdGltZSdd
KSwKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9j
b21taXQtdXBkYXRlci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1
ZGUvY29tbWl0LXVwZGF0ZXIucGhwCmluZGV4IDA4YzY4YmJlNjQxMGFmZjA2ZGI4NzU0OTkyYTQ4
YzkzN2U3MGUzMmYuLjMwNzc3YzIzZDc3YzZmNjIxNTI1OTE2NDkwM2M2MjhkYmE3MTRjZWIgMTAw
NjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQt
dXBkYXRlci5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRl
L2NvbW1pdC11cGRhdGVyLnBocApAQCAtMTQzLDYgKzE0Myw5IEBAIGNsYXNzIENvbW1pdFVwZGF0
ZXIgewogICAgICAgICAgICAgJGNvbW1pdF9kYXRhWyd0aW1lJ10gPSAkY29tbWl0X2luZm9bJ3Rp
bWUnXTsKICAgICAgICAgfQogCisgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCdpZGVudGlm
aWVyJywgJGNvbW1pdF9pbmZvKSkKKyAgICAgICAgICAgICRjb21taXRfZGF0YVsnaWRlbnRpZmll
ciddID0gJGNvbW1pdF9pbmZvWydpZGVudGlmaWVyJ107CisKICAgICAgICAgaWYgKCRzaG91bGRf
aW5zZXJ0KQogICAgICAgICAgICAgJGNvbW1pdF9kYXRhWydyZXBvcnRlZCddID0gdHJ1ZTsKIApk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29t
bWl0LWxvZy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2Nv
bW1pdC1sb2cuanMKaW5kZXggZTZkNGQ0NGFiYjU1NDEzNDZlMmY0YTlkNDQwMDlmNzlhNzgyOTAw
Yi4uMTM2YTY0NmIwODE2Mzg5Yjg0NDU4YzhhYjMwM2QxNmM0ZDA3ZTQ5NSAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9n
LmpzCkBAIC0zOSw2ICszOSw3IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9i
amVjdCB7CiAgICAgdGVzdGFiaWxpdHkoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWyd0ZXN0YWJp
bGl0eSddOyB9CiAgICAgYXV0aG9yKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsnYXV0aG9yTmFt
ZSddOyB9CiAgICAgcmV2aXNpb24oKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydyZXZpc2lvbidd
OyB9CisgICAgaWRlbnRpZmllcigpIHsgcmV0dXJuIHRoaXMuX3Jhd0RhdGFbJ2lkZW50aWZpZXIn
XX0KICAgICBtZXNzYWdlKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsnbWVzc2FnZSddOyB9CiAg
ICAgdXJsKCkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeS51cmxGb3JSZXZpc2lvbih0aGlzLl9y
YXdEYXRhWydyZXZpc2lvbiddKTsgfQogICAgIG93bnNDb21taXRzKCkgeyByZXR1cm4gdGhpcy5f
cmF3RGF0YVsnb3duc0NvbW1pdHMnXTsgfQpAQCAtNTEsMTEgKzUyLDE1IEBAIGNsYXNzIENvbW1p
dExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgbGFiZWwoKQogICAgIHsKICAgICAg
ICAgY29uc3QgcmV2aXNpb24gPSB0aGlzLnJldmlzaW9uKCk7CisgICAgICAgIGNvbnN0IGlkZW50
aWZpZXIgPSB0aGlzLmlkZW50aWZpZXIoKTsKKyAgICAgICAgbGV0IHJldmlzaW9uX2Zvcm1hdCA9
IHJldmlzaW9uOwogICAgICAgICBpZiAocGFyc2VJbnQocmV2aXNpb24pID09IHJldmlzaW9uKSAv
LyBlLmcuIHIxMjM0NQotICAgICAgICAgICAgcmV0dXJuICdyJyArIHJldmlzaW9uOworICAgICAg
ICAgICAgcmV2aXNpb25fZm9ybWF0ID0gJ3InICsgcmV2aXNpb247CiAgICAgICAgIGlmIChyZXZp
c2lvbi5sZW5ndGggPT0gNDApIC8vIGUuZy4gZ2l0IGhhc2gKLSAgICAgICAgICAgIHJldHVybiBy
ZXZpc2lvbi5zdWJzdHJpbmcoMCwgMTIpOwotICAgICAgICByZXR1cm4gcmV2aXNpb247CisgICAg
ICAgICAgICByZXZpc2lvbl9mb3JtYXQgPSByZXZpc2lvbi5zdWJzdHJpbmcoMCwgMTIpOworICAg
ICAgICBpZiAoaWRlbnRpZmllcikKKyAgICAgICAgICAgIHJldHVybiBgJHtpZGVudGlmaWVyfSAo
JHtyZXZpc2lvbl9mb3JtYXR9KWA7CisgICAgICAgIHJldHVybiByZXZpc2lvbl9mb3JtYXQ7CiAg
ICAgfQogICAgIHRpdGxlKCkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeS5uYW1lKCkgKyAnIGF0
ICcgKyB0aGlzLmxhYmVsKCk7IH0KIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMKaW5kZXggMjg1NjlmMDYz
NzMwNGUzYTYyY2Y3NzAwOTIzOTNmN2YwZTczNjU5Ny4uMjkyNWUxNDI5YjUyYTM3OGE3ZmE0YjJm
MWU3YjcxODQyMTAzYzMwNiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzCkBAIC0xNyw2ICsxNyw3IEBA
IGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCiAgICAgICAgICAgICAgICAg
InJldmlzaW9uIjogIjIxMDk0OCIsCisgICAgICAgICAgICAgICAgImlkZW50aWZpZXIiOiAiMTg0
Mjc2QG1haW4iLAogICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6NTI6MzQu
NTc3WiIsCiAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJaYWxhbiBCdWp0YXMi
LCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKICAgICAgICAgICAgICAgICAibWVzc2Fn
ZSI6ICJhIG1lc3NhZ2UiLApAQCAtMjQsNiArMjUsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRz
LyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAicmVwb3Np
dG9yeSI6ICJXZWJLaXQiLAogICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDkiLAor
ICAgICAgICAgICAgICAgICJpZGVudGlmaWVyIjogIjE4NDI3N0BtYWluIiwKICAgICAgICAgICAg
ICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjIzOjUwLjY0NVoiLAogICAgICAgICAgICAgICAg
ICJhdXRob3IiOiB7Im5hbWUiOiAiQ2hyaXMgRHVtZXoiLCAiYWNjb3VudCI6ICJjZHVtZXpAYXBw
bGUuY29tIn0sCiAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAic29tZSBtZXNzYWdlIiwKQEAg
LTMyLDYgKzM0LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKICAgICAgICAgICAgICAgICAi
cHJldmlvdXNDb21taXQiOiAiMjEwOTQ5IiwKICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAi
MjEwOTUwIiwKKyAgICAgICAgICAgICAgICAiaWRlbnRpZmllciI6ICIxODQyNzhAbWFpbiIsCiAg
ICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMzo0OTozNy44ODdaIiwKICAgICAg
ICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50Ijog
ImNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnIn0sCiAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAi
YW5vdGhlciBtZXNzYWdlIiwKQEAgLTQ2LDYgKzQ5LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0
cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgInJlcG9z
aXRvcnkiOiAiV2ViS2l0IiwKICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQiLAor
ICAgICAgICAgICAgICAgICJpZGVudGlmaWVyIjogIjE4NDI3MkBtYWluIiwKICAgICAgICAgICAg
ICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAyOjUyOjM0LjU3N1oiLAogICAgICAgICAgICAgICAg
ICJhdXRob3IiOiB7Im5hbWUiOiAiWmFsYW4gQnVqdGFzIiwgImFjY291bnQiOiAiemFsYW5AYXBw
bGUuY29tIn0sCiAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYSBtZXNzYWdlIiwKQEAgLTUz
LDYgKzU3LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKICAgICAg
ICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQ5IiwKKyAgICAgICAgICAgICAgICAiaWRlbnRp
ZmllciI6ICIxODQyNzdAbWFpbiIsCiAgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0y
MFQwMzoyMzo1MC42NDVaIiwKICAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNo
cmlzIER1bWV6IiwgImFjY291bnQiOiAiY2R1bWV6QGFwcGxlLmNvbSJ9LAogICAgICAgICAgICAg
ICAgICJtZXNzYWdlIjogInNvbWUgbWVzc2FnZSIsCkBAIC01MjQsNiArNTI5LDE5IEBAIGRlc2Ny
aWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0pOwogCisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIGNvbW1pdCB3aXRoIGNvbW1pdCBp
ZGVudGlmaWVyIiwgKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0
KHN1YnZlcnNpb25Db21taXRzKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICByZXR1cm4g
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBz
dWJ2ZXJzaW9uQ29tbWl0cyk7CisgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25z
ZSkgeworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdPSycpOworICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT04oYC9hcGkvY29tbWl0cy9XZWJLaXQvJHtzdWJ2ZXJzaW9uQ29tbWl0cy5jb21taXRz
WzBdLmlkZW50aWZpZXJ9YCk7CisgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQp
IHsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwg
J09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdC5jb21taXRz
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJt
aXR0ZWQocmVzdWx0LmNvbW1pdHNbMF0sIHN1YnZlcnNpb25Db21taXRzLmNvbW1pdHNbMF0pOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCiAgICAgfSk7CiAKICAgICBkZXNjcmliZSgn
L2FwaS9jb21taXRzLzxyZXBvc2l0b3J5Pi9vd25lZC1jb21taXRzP293bmVyLXJldmlzaW9uPTxj
b21taXQ+JywgKCkgPT4gewpAQCAtNzI3LDYgKzc0NSwzNyBAQCBkZXNjcmliZSgiL2FwaS9jb21t
aXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIAorICAg
ICAgICBpdCgic2hvdWxkIHJldHVybiByZXBvcnRlZCBjb21taXRzIGluIHRoZSBzcGVjaWZpZWQg
aWRlbnRpZmllciByYW5nZSIsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNl
cnZlci5kYXRhYmFzZSgpOworICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsKKyAgICAg
ICAgICAgICAgICBkYi5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHsnaWQnOiAxLCAnbmFtZSc6ICdX
ZWJLaXQnfSksCisgICAgICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0
b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk0OCcsICdpZGVudGlmaWVyJzogJzE4NDI3NkBtYWlu
JywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMjo1MjozNC41NzdaJywgJ3JlcG9ydGVkJzogdHJ1ZX0p
LAorICAgICAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEs
ICdyZXZpc2lvbic6ICcyMTA5NDknLCAnaWRlbnRpZmllcic6ICcxODQyNzdAbWFpbicsICd0aW1l
JzogJzIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1WicsICdyZXBvcnRlZCc6IHRydWV9KSwKKyAgICAg
ICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNp
b24nOiAnMjEwOTUwJywgJ2lkZW50aWZpZXInOiAnMTg0Mjc4QG1haW4nLCAndGltZSc6ICcyMDE3
LTAxLTIwVDAzOjQ5OjM3Ljg4N1onLCAncmVwb3J0ZWQnOiB0cnVlfSksCisgICAgICAgICAgICBd
KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRpbmdSZXZpc2lvbj0xODQy
NzZAbWFpbiZsYXN0UmV2aXNpb249MTg0Mjc4QG1haW4nKTsKKyAgICAgICAgICAgIH0pLnRoZW4o
KHJlc3VsdCkgPT4geworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRb
J3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0Q29t
bWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHsKKyAgICAgICAg
ICAgICAgICAgICAgcHJldmlvdXNDb21taXQ6IG51bGwsCisgICAgICAgICAgICAgICAgICAgIHJl
dmlzaW9uOiAnMjEwOTQ5JywKKyAgICAgICAgICAgICAgICAgICAgaWRlbnRpZmllcjogJzE4NDI4
OUBtYWluJywKKyAgICAgICAgICAgICAgICAgICAgdGltZTogJzIwMTctMDEtMjBUMDM6MjM6NTAu
NjQ1WicsCisgICAgICAgICAgICAgICAgICAgIGF1dGhvcjoge25hbWU6IG51bGwsIGFjY291bnQ6
IG51bGx9LAorICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBudWxsLAorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVk
KHJlc3VsdFsnY29tbWl0cyddWzFdLCB7CisgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzQ29t
bWl0OiBudWxsLAorICAgICAgICAgICAgICAgICAgICByZXZpc2lvbjogJzIxMDk1MCcsCisgICAg
ICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6ICcxODQyOTBAbWFpbicsCisgICAgICAgICAgICAg
ICAgICAgIHRpbWU6ICcyMDE3LTAxLTIwVDAzOjQ5OjM3Ljg4N1onLAorICAgICAgICAgICAgICAg
ICAgICBhdXRob3I6IHtuYW1lOiBudWxsLCBhY2NvdW50OiBudWxsfSwKKyAgICAgICAgICAgICAg
ICAgICAgbWVzc2FnZTogbnVsbCwKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9KTsKKwogICAgICAgICBpdCgic2hvdWxkIG5vdCBpbmNsdWRlIGEgcmV2aXNp
b24gbm90IHdpdGhpbiB0aGUgc3BlY2lmaWVkIHJhbmdlIiwgKCkgPT4gewogICAgICAgICAgICAg
Y29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CiAgICAgICAgICAgICBjb25zdCByZW1v
dGUgPSBUZXN0U2VydmVyLnJlbW90ZUFQSSgpOwpAQCAtNzUwLDYgKzc5OSwyOSBAQCBkZXNjcmli
ZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9KTsKIAorICAgICAgICBpdCgic2hvdWxkIG5vdCBpbmNsdWRlIGEgcmV2aXNpb24gbm90IHdp
dGhpbiB0aGUgc3BlY2lmaWVkIGNvbW1pdCBpZGVudGlmaWVyIHJhbmdlIiwgKCkgPT4geworICAg
ICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgICAgICBj
b25zdCByZW1vdGUgPSBUZXN0U2VydmVyLnJlbW90ZUFQSSgpOworICAgICAgICAgICAgcmV0dXJu
IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBkYi5pbnNlcnQoJ3JlcG9zaXRvcmllcycs
IHsnaWQnOiAxLCAnbmFtZSc6ICdXZWJLaXQnfSksCisgICAgICAgICAgICAgICAgZGIuaW5zZXJ0
KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk0NycsICdpZGVu
dGlmaWVyJzogJzE4NDI3NUBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMjozODo0NS40ODVa
JywgJ3JlcG9ydGVkJzogZmFsc2V9KSwKKyAgICAgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1p
dHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTQ4JywgJ2lkZW50aWZpZXIn
OiAnMTg0Mjc2QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIwVDAyOjUyOjM0LjU3N1onLCAncmVw
b3J0ZWQnOiBmYWxzZX0pLAorICAgICAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0cycsIHsn
cmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6ICcyMTA5NDknLCAnaWRlbnRpZmllcic6ICcxODQy
NzdAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1WicsICdyZXBvcnRlZCc6
IGZhbHNlfSksCisgICAgICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0
b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk1MCcsICdpZGVudGlmaWVyJzogJzE4NDI3OEBtYWlu
JywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMzo0OTozNy44ODdaJywgJ3JlcG9ydGVkJzogZmFsc2V9
KSwKKyAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgICAgIHJldHVybiBh
ZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CisgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLnBvc3RKU09OV2l0aFN0YXR1
cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0cyk7CisgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLmdldEpTT04o
Jy9hcGkvY29tbWl0cy9XZWJLaXQvP3ByZWNlZGluZ1JldmlzaW9uPTE4NDI3NUBtYWluJmxhc3RS
ZXZpc2lvbj0xODQyNzdAbWFpbicpOworICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdP
SycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21t
aXRzJ10ubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09u
ZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2NvbW1p
dHMnXVswXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0
ZWQocmVzdWx0Wydjb21taXRzJ11bMV0sIHN1YnZlcnNpb25Db21taXRzWydjb21taXRzJ11bMV0p
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCiAgICAgfSk7CiAKIH0pOwpkaWZmIC0t
Z2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVz
dC1zZXJ2ZXIuY29uZiBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVz
b3VyY2VzL3Rlc3Qtc2VydmVyLmNvbmYKaW5kZXggOTM2YjRmNGJmYWZmMDdlZGIwMzU4MzNjNDYz
ZWUxNjliZmMxNWExMS4uOWZkNzkzOWU5Yjg1MTMwNmM1MTgzYzk0OWI2YTU0NzExY2QxN2VlNSAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJj
ZXMvdGVzdC1zZXJ2ZXIuY29uZgorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL3Jlc291cmNlcy90ZXN0LXNlcnZlci5jb25mCkBAIC0xLDYgKzEsNyBAQAogU2VydmVy
Um9vdCAiL3VzciIKIExpc3RlbiA4MDgwCiAKK2xvYWRNb2R1bGUgbXBtX3ByZWZvcmtfbW9kdWxl
IGxpYmV4ZWMvYXBhY2hlMi9tb2RfbXBtX3ByZWZvcmsuc28KIExvYWRNb2R1bGUgYXV0aG5fY29y
ZV9tb2R1bGUgbGliZXhlYy9hcGFjaGUyL21vZF9hdXRobl9jb3JlLnNvCiBMb2FkTW9kdWxlIGF1
dGh6X2NvcmVfbW9kdWxlIGxpYmV4ZWMvYXBhY2hlMi9tb2RfYXV0aHpfY29yZS5zbwogTG9hZE1v
ZHVsZSBkZWZsYXRlX21vZHVsZSBsaWJleGVjL2FwYWNoZTIvbW9kX2RlZmxhdGUuc28KQEAgLTE2
LDYgKzE3LDggQEAgTG9hZE1vZHVsZSBuZWdvdGlhdGlvbl9tb2R1bGUgbGliZXhlYy9hcGFjaGUy
L21vZF9uZWdvdGlhdGlvbi5zbwogTG9hZE1vZHVsZSBkaXJfbW9kdWxlIGxpYmV4ZWMvYXBhY2hl
Mi9tb2RfZGlyLnNvCiBMb2FkTW9kdWxlIGFsaWFzX21vZHVsZSBsaWJleGVjL2FwYWNoZTIvbW9k
X2FsaWFzLnNvCiBMb2FkTW9kdWxlIHJld3JpdGVfbW9kdWxlIGxpYmV4ZWMvYXBhY2hlMi9tb2Rf
cmV3cml0ZS5zbworTG9hZE1vZHVsZSBwaHA3X21vZHVsZSAvdXNyL2xvY2FsL0NlbGxhci9waHBA
Ny40LzcuNC4xNi9saWIvaHR0cGQvbW9kdWxlcy9saWJwaHA3LnNvCisKIAogPElmRGVmaW5lIFBI
UDU+CiAgICAgTG9hZE1vZHVsZSBwaHA1X21vZHVsZSBsaWJleGVjL2FwYWNoZTIvbGlicGhwNS5z
bwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY29tbWl0
LWxvZy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2NvbW1p
dC1sb2ctdGVzdHMuanMKaW5kZXggNzBhYmRlYmY4MWU4YWI2MGQxZDE4MTYzZTM5OTE4NzljYjQ3
MzhiNi4uNDRjMTY3YjRlZDM3YjBhNDI1YTJlOGY3Y2JjYWE2ZGU3ZTNkNzY3NSAxMDA2NDQKLS0t
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5q
cworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9jb21taXQtbG9nLXRl
c3RzLmpzCkBAIC0xNyw2ICsxNywxNyBAQCBmdW5jdGlvbiB3ZWJraXRDb21taXQoKQogICAgIH0p
OwogfQogCitmdW5jdGlvbiB3ZWJraXRDb21taXRXaXRoSWRlbnRpZmllcigpIAoreworICAgIHJl
dHVybiBuZXcgQ29tbWl0TG9nKDEsIHsKKyAgICAgICAgaWQ6IDEsCisgICAgICAgIHJlcG9zaXRv
cnk6IE1vY2tNb2RlbHMud2Via2l0LAorICAgICAgICByZXZpc2lvbjogJzIwMDgwNScsCisgICAg
ICAgIGlkZW50aWZpZXI6ICcxODQyNzZAbWFpbicsCisgICAgICAgIHRpbWU6ICsobmV3IERhdGUo
JzIwMTYtMDUtMTNUMDA6NTU6NTcuODQxMzQ0WicpKSwKKyAgICB9KTsKK30KKwogZnVuY3Rpb24g
b2xkV2ViS2l0Q29tbWl0KCkKIHsKICAgICByZXR1cm4gbmV3IENvbW1pdExvZygyLCB7CkBAIC0z
Nyw2ICs0OCwxNyBAQCBmdW5jdGlvbiBnaXRXZWJLaXRDb21taXQoKQogICAgIH0pOwogfQogCitm
dW5jdGlvbiBnaXRXZWJLaXRDb21taXRXaXRoSWRlbnRpZmllcigpCit7CisgICAgcmV0dXJuIG5l
dyBDb21taXRMb2coMywgeworICAgICAgICBpZDogMywKKyAgICAgICAgcmVwb3NpdG9yeTogTW9j
a01vZGVscy53ZWJraXQsCisgICAgICAgIHJldmlzaW9uOiAnNmY4YjBkYmJkYTk1YTQ0MDUwM2I4
OGRiMWRkMDNkYWQzYTdiMDdmYicsCisgICAgICAgIGlkZW50aWZpZXI6ICcxODQyNzZAbWFpbics
CisgICAgICAgIHRpbWU6ICsobmV3IERhdGUoJzIwMTYtMDUtMTNUMDA6NTU6NTcuODQxMzQ0Wicp
KSwKKyAgICB9KTsKK30KKwogZnVuY3Rpb24gb2xkR2l0V2ViS2l0Q29tbWl0KCkKIHsKICAgICBy
ZXR1cm4gbmV3IENvbW1pdExvZyg0LCB7CkBAIC0xNDcsMTAgKzE2OSwxOCBAQCBkZXNjcmliZSgn
Q29tbWl0TG9nJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtp
dENvbW1pdCgpLmxhYmVsKCksICdyMjAwODA1Jyk7CiAgICAgICAgIH0pOwogCisgICAgICAgIGl0
KCdzaG91bGQgcHJlZml4IGNvbW1pdCBpZGVudGlmaWVyIHdpdGggc3ZuIHIgKyByZXZpc2lvbics
ICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRDb21taXRXaXRo
SWRlbnRpZmllcigpLmxhYmVsKCksICcxODQyNzZAbWFpbiAocjIwMDgwNSknKQorICAgICAgICB9
KTsKKwogICAgICAgICBpdCgnc2hvdWxkIHRydW5jYXRlIGEgR2l0IGhhc2ggYXQgOHRoIGNoYXJh
Y3RlcicsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChnaXRXZWJLaXRD
b21taXQoKS5sYWJlbCgpLCAnNmY4YjBkYmJkYTk1Jyk7CiAgICAgICAgIH0pOwogCisgICAgICAg
IGl0KCdzaG91bGQgcHJlZml4IGNvbW1pdCBpZGVudGlmaWVyIHdpdGggZ2l0IGhhc2ggdHJ1bmNh
dGVkJywgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdpdFdlYktpdENv
bW1pdFdpdGhJZGVudGlmaWVyKCkubGFiZWwoKSwgJzE4NDI3NkBtYWluICg2ZjhiMGRiYmRhOTUp
JykKKyAgICAgICAgfSk7CisKICAgICAgICAgaXQoJ3Nob3VsZCBub3QgbW9kaWZ5IE9TIFggdmVy
c2lvbicsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQo
KS5sYWJlbCgpLCAnMTAuMTEuNCAxNUU2NScpOwogICAgICAgICB9KTsKQEAgLTE2MSwxMCArMTkx
LDE4IEBAIGRlc2NyaWJlKCdDb21taXRMb2cnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwod2Via2l0Q29tbWl0KCkudGl0bGUoKSwgJ1dlYktpdCBhdCByMjAwODA1Jyk7
CiAgICAgICAgIH0pOwogCisgICAgICAgIGl0KCdzaG91bGQgcHJlZml4IGNvbW1pdCBpZGVudGlm
aWVyJywgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdENvbW1p
dFdpdGhJZGVudGlmaWVyKCkudGl0bGUoKSwgJ1dlYktpdCBhdCAxODQyNzZAbWFpbiAocjIwMDgw
NSknKTsKKyAgICAgICAgfSk7CisKICAgICAgICAgaXQoJ3Nob3VsZCB0cnVuY2F0ZSBhIEdpdCBo
YXNoIGF0IDh0aCBjaGFyYWN0ZXInLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZ2l0V2ViS2l0Q29tbWl0KCkudGl0bGUoKSwgJ1dlYktpdCBhdCA2ZjhiMGRiYmRhOTUn
KTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoJ3Nob3VsZCBwcmVmaXggY29tbWl0IGlkZW50
aWZpZXIgd2l0aCBnaXQgaGFzaCB0cnVuY2F0ZWQnLCAgKCkgPT4geworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGdpdFdlYktpdENvbW1pdFdpdGhJZGVudGlmaWVyKCkudGl0bGUoKSwg
J1dlYktpdCBhdCAxODQyNzZAbWFpbiAoNmY4YjBkYmJkYTk1KScpOworICAgICAgICB9KTsKKwog
ICAgICAgICBpdCgnc2hvdWxkIG5vdCBtb2RpZnkgT1MgWCB2ZXJzaW9uJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdCgpLnRpdGxlKCksICdPUyBYIGF0
IDEwLjExLjQgMTVFNjUnKTsKICAgICAgICAgfSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422615</attachid>
            <date>2021-03-08 13:54:02 -0800</date>
            <delta_ts>2021-03-08 14:27:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222897-20210308135401.patch</filename>
            <type>text/plain</type>
            <size>26868</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MDYxCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1YTg1MWZkODI1NTA1YjQzMGFkNzg3ODZhNTQ1NzI0MzUwNTg0Zjc1Li4wOGFjMzJjZTUx
MWEzMWE0NGI1M2NmMzE5MGJjMDQ1MjVhNjA3ODJlIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAyMS0wMy0wOCAgWmhpZmVpIEZhbmcgIDx6aGlmZWlf
ZmFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGNvbW1pdCBpZGVudGlmaWVyIHN1cHBvcnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjg5Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcg
Y29sdW1uIGNvbW1pdCBpZGVudGlmaWVyCisgICAgICAgIE1ha2UgYWxsIGNvbW1pdCBhcGkgYWxz
byBjYW4gd29yayB3aXRoIGNvbW1pdCBpZGVudGlmaWVyCisgICAgICAgIENoYW5nZSB0aGUgY29t
bWl0IGxhYmVsIGRpc3BsYXkgd2l0aCBjb21taXQgaWRlbnRpaWVyCisKKyAgICAgICAgKiBicm93
c2VyLXRlc3RzL2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzOgorICAgICAgICAocmV0dXJuLmlt
cG9ydENvbW1pdExvZ1ZpZXdlci5jb250ZXh0LnRoZW4uYXN5bmMgQ29tbWl0TG9nVmlld2VyKToK
KyAgICAgICAgKiBpbml0LWRhdGFiYXNlLnNxbDogQWRkIGNvbW1pdCBpZGVudGlmaWVyIGNvbHVt
biwgaXQgc2hvdWxkIGJlIHVuaXF1ZSBwZXIgcmVwbworICAgICAgICAqIG1pZ3JhdGUtZGF0YWJh
c2Uuc3FsOgorICAgICAgICAqIHB1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHA6
IFN1cHBvcnQgdXNpbmcgY29tbWl0IGlkZW50aWZlciBhcyByZXZpc2lvbgorICAgICAgICAqIHB1
YmxpYy9pbmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocDoKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9k
ZWxzL2NvbW1pdC1sb2cuanM6CisgICAgICAgIChDb21taXRMb2cucHJvdG90eXBlLmlkZW50aWZp
ZXIpOgorICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS5sYWJlbCk6IERpc3BsYXkgaWRlbnRp
ZmllciB0b2dldGhlciB3aXRoIHJldmlzaW9uCisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1j
b21taXRzLXRlc3RzLmpzOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1p
dHMtdGVzdHMuanM6CisgICAgICAgIChyZXR1cm4uYWRkU2xhdmVGb3JSZXBvcnQuc3VidmVyc2lv
bkNvbW1pdC50aGVuKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3Rlc3Qtc2Vy
dmVyLmNvbmY6CisgICAgICAgICogdW5pdC10ZXN0cy9jb21taXQtbG9nLXRlc3RzLmpzOgorCiAy
MDIxLTAzLTA2ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtw
ZXJmIGRhc2hib2FyZF0gTW9kZXJuaXplIFRpbWVTZXJpZXMgYW5kIFRpbWVTZXJpZXNWaWV3CmRp
ZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQt
bG9nLXZpZXdlci10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9icm93c2VyLXRl
c3RzL2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzCmluZGV4IGRiYzRjZmNkOWJjMjE0YjcwOGVl
MTk4ZjFlYTY2NWYyMjQyMjg1NjAuLmY4ZDQzMDJhNjkzNWUxMjIyNDA0YmNjYWQ1Nzk2NmJhYjI3
MzQwN2EgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9icm93c2VyLXRlc3Rz
L2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9icm93c2VyLXRlc3RzL2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzCkBAIC0yMiw2ICsyMiw3
IEBAIGRlc2NyaWJlKCdDb21taXRMb2dWaWV3ZXInLCAoKSA9PiB7CiAgICAgY29uc3Qgd2Via2l0
Q29tbWl0MjEwOTQ4ID0gewogICAgICAgICAiaWQiOiAiMTg1MzI2IiwKICAgICAgICAgInJldmlz
aW9uIjogIjIxMDk0OCIsCisgICAgICAgICJpZGVudGlmaWVyIjogIjE4NDI3NkBtYWluIiwKICAg
ICAgICAgInJlcG9zaXRvcnkiOiAxLAogICAgICAgICAicHJldmlvdXNDb21taXQiOiBudWxsLAog
ICAgICAgICAib3duc0NvbW1pdHMiOiBmYWxzZSwKQEAgLTQ2LDYgKzQ3LDcgQEAgZGVzY3JpYmUo
J0NvbW1pdExvZ1ZpZXdlcicsICgpID0+IHsKICAgICBjb25zdCB3ZWJraXRDb21taXQyMTA5NTAg
PSB7CiAgICAgICAgICJpZCI6ICIxODUzMzgiLAogICAgICAgICAicmV2aXNpb24iOiAiMjEwOTUw
IiwKKyAgICAgICAgImlkZW50aWZpZXIiOiAiMTg0Mjc4QG1haW4iLAogICAgICAgICAicmVwb3Np
dG9yeSI6IDEsCiAgICAgICAgICJwcmV2aW91c0NvbW1pdCI6IG51bGwsCiAgICAgICAgICJvd25z
Q29tbWl0cyI6IGZhbHNlLApAQCAtMTMxLDEyICsxMzMsMTMgQEAgZGVzY3JpYmUoJ0NvbW1pdExv
Z1ZpZXdlcicsICgpID0+IHsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgICAgICBhd2FpdCB3
YWl0Rm9yQ29tcG9uZW50c1RvUmVuZGVyKGNvbnRleHQpOwotCisgICAgICAgICAgICBleHBlY3Qo
dmlld2VyLmNvbnRlbnQoJ3NwaW5uZXItY29udGFpbmVyJykub2Zmc2V0SGVpZ2h0KS50by5ub3Qu
YmUoMCk7CisgICAgICAgICAgICBhd2FpdCB3YWl0Rm9yQ29tcG9uZW50c1RvUmVuZGVyKGNvbnRl
eHQpOwogICAgICAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdzcGlubmVyLWNvbnRhaW5l
cicpLm9mZnNldEhlaWdodCkudG8uYmUoMCk7CiAgICAgICAgICAgICBleHBlY3Qodmlld2VyLmNv
bnRlbnQoJ2NvbW1pdHMtbGlzdCcpLm1hdGNoZXMoJzplbXB0eScpKS50by5iZShmYWxzZSk7CiAg
ICAgICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLnRleHRDb250
ZW50KS50by5jb250YWluKCdyMjEwOTQ5Jyk7CiAgICAgICAgICAgICBleHBlY3Qodmlld2VyLmNv
bnRlbnQoJ2NvbW1pdHMtbGlzdCcpLnRleHRDb250ZW50KS50by5jb250YWluKCdDaHJpcyBEdW1l
eicpOwotICAgICAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxpc3QnKS50
ZXh0Q29udGVudCkudG8uY29udGFpbigncjIxMDk1MCcpOworICAgICAgICAgICAgZXhwZWN0KHZp
ZXdlci5jb250ZW50KCdjb21taXRzLWxpc3QnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignMTg0
Mjc4QG1haW4gKHIyMTA5NTApJyk7CiAgICAgICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQo
J2NvbW1pdHMtbGlzdCcpLnRleHRDb250ZW50KS50by5jb250YWluKCdDb21taXQgUXVldWUnKTsK
ICAgICAgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgncmVwb3NpdG9yeS1uYW1lJykubWF0
Y2hlcygnOmVtcHR5JykpLnRvLmJlKGZhbHNlKTsKICAgICAgICAgICAgIGV4cGVjdCh2aWV3ZXIu
Y29udGVudCgncmVwb3NpdG9yeS1uYW1lJykudGV4dENvbnRlbnQpLnRvLmNvbnRhaW4oJ1dlYktp
dCcpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uu
c3FsIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCmluZGV4IDdm
ZmM4OWFkODJjNzYxMDQxZDFhNTU2ZTgzZjdjOTY3OGEzMmZhYzEuLjk3ZWIyNzVmYTIzZjI0MTQ5
MGFkNDFjNGJhY2M5MDIyMmM2ZmY1NjAgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9pbml0LWRhdGFiYXNlLnNxbAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5p
dC1kYXRhYmFzZS5zcWwKQEAgLTEwMiw2ICsxMDIsNyBAQCBDUkVBVEUgVEFCTEUgY29tbWl0cyAo
CiAgICAgY29tbWl0X2lkIHNlcmlhbCBQUklNQVJZIEtFWSwKICAgICBjb21taXRfcmVwb3NpdG9y
eSBpbnRlZ2VyIE5PVCBOVUxMIFJFRkVSRU5DRVMgcmVwb3NpdG9yaWVzIE9OIERFTEVURSBDQVND
QURFLAogICAgIGNvbW1pdF9yZXZpc2lvbiB2YXJjaGFyKDY0KSBOT1QgTlVMTCwKKyAgICBjb21t
aXRfaWRlbnRpZmllciB2YXJjaGFyKDY0KSBERUZBVUxUIE5VTEwsCiAgICAgY29tbWl0X3ByZXZp
b3VzX2NvbW1pdCBpbnRlZ2VyIFJFRkVSRU5DRVMgY29tbWl0cyBPTiBERUxFVEUgQ0FTQ0FERSwK
ICAgICBjb21taXRfdGltZSB0aW1lc3RhbXAsCiAgICAgY29tbWl0X29yZGVyIGludGVnZXIsCkBA
IC0xMTAsNiArMTExLDcgQEAgQ1JFQVRFIFRBQkxFIGNvbW1pdHMgKAogICAgIGNvbW1pdF9yZXBv
cnRlZCBib29sZWFuIE5PVCBOVUxMIERFRkFVTFQgRkFMU0UsCiAgICAgY29tbWl0X3Rlc3RhYmls
aXR5IHZhcmNoYXIoMTI4KSBERUZBVUxUIE5VTEwsCiAgICAgQ09OU1RSQUlOVCBjb21taXRfaW5f
cmVwb3NpdG9yeV9tdXN0X2JlX3VuaXF1ZSBVTklRVUUoY29tbWl0X3JlcG9zaXRvcnksIGNvbW1p
dF9yZXZpc2lvbikpOworICAgIENPTlNUUkFJTlQgY29tbWl0X2lkZW50aWZpZXJfaW5fcmVwb3Np
dG9yeV9tdXN0X2JlX3VuaXF1ZSBVTklRVUUoY29tbWl0X3JlcG9zaXRvcnksIGNvbW1pdF9pZGVu
dGlmaWVyKTsKIENSRUFURSBJTkRFWCBjb21taXRfdGltZV9pbmRleCBPTiBjb21taXRzKGNvbW1p
dF90aW1lKTsKIENSRUFURSBJTkRFWCBjb21taXRfb3JkZXJfaW5kZXggT04gY29tbWl0cyhjb21t
aXRfb3JkZXIpOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWlncmF0
ZS1kYXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWlncmF0ZS1kYXRhYmFz
ZS5zcWwKaW5kZXggNDliZDI0OWQyYTY4NTc3NjQ0OWQzNmU4MDUyNjhmY2M0Yjg3N2FjYS4uMzVk
NmYwYzI3YzAyNTI0NjdhNGE0Y2Y1OTBiZjZhYmY4YjI0MjIxMiAxMDA2NDQKLS0tIGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL21pZ3JhdGUtZGF0YWJhc2Uuc3FsCisrKyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbApAQCAtMTQsNiArMTQsOSBAQCBJRiBF
WElTVFMgKFNFTEVDVCBOVUxMIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbnMgV0hFUkUg
VEFCTEVfTkFNRSA9ICdidWlsZAogICAgIEFMVEVSIFRBQkxFIGJ1aWxkcyBSRU5BTUUgYnVpbGRf
bnVtYmVyIFRPIGJ1aWxkX3RhZzsKICAgICBBTFRFUiBUQUJMRSBidWlsZHMgRFJPUCBDT05TVFJB
SU5UICBidWlsZGVyX2J1aWxkX3RpbWVfdHVwbGVfbXVzdF9iZV91bmlxdWU7CiAgICAgQUxURVIg
VEFCTEUgYnVpbGRzIEFERCBDT05TVFJBSU5UIGJ1aWxkZXJfYnVpbGRfdGltZV90dXBsZV9tdXN0
X2JlX3VuaXF1ZSBVTklRVUUoYnVpbGRfYnVpbGRlciwgYnVpbGRfdGFnLCBidWlsZF90aW1lKTsK
KyAgICBBTFRFUiBUQUJMRSBjb21taXRzIEFERCBDT0xVTU4gSUYgTk9UIEVYSVNUUyBjb21taXRf
aWRlbnRpZmllcjsKKyAgICBBTFRFUiBUQUJMRSBjb21taXRzIERST1AgQ09OU1RSQUlOVCBjb21t
aXRfaWRlbnRpZmllcl9pbl9yZXBvc2l0b3J5X211c3RfYmVfdW5pcXVlOworICAgIEFMVEVSIFRB
QkxFIGNvbW1pdHMgQUREIENPTlNUUkFJTlQgY29tbWl0X2lkZW50aWZpZXJfaW5fcmVwb3NpdG9y
eV9tdXN0X2JlX3VuaXF1ZSBVTklRVUUoY29tbWl0X3JlcG9zaXRvcnksIGNvbW1pdF9pZGVudGlm
aWVyKTsKIEVORCBJRjsKIAogRU5EJCQ7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1s
b2ctZmV0Y2hlci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUv
Y29tbWl0LWxvZy1mZXRjaGVyLnBocAppbmRleCA2ZTBiZWNkMGJjODE2NGMwNDJmZDNmYjJmMzk5
OGM0MTU0ZmViMGUxLi44NzY0Y2U0OTlmODM2OTBjYjE3ZjY0ZjQxNDRjYWVlNDU3MmNkZWEzIDEw
MDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0
LWxvZy1mZXRjaGVyLnBocAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2lu
Y2x1ZGUvY29tbWl0LWxvZy1mZXRjaGVyLnBocApAQCAtOCwxNCArOCwxOCBAQCBjbGFzcyBDb21t
aXRMb2dGZXRjaGVyIHsKIAogICAgIHN0YXRpYyBmdW5jdGlvbiBmaW5kX2NvbW1pdF9pZF9ieV9y
ZXZpc2lvbigkZGIsICRyZXBvc2l0b3J5X2lkLCAkcmV2aXNpb24pCiAgICAgewotICAgICAgICAk
Y29tbWl0X3Jvd3MgPSAkZGItPnF1ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCBjb21taXRfaWQg
RlJPTSBjb21taXRzIFdIRVJFIGNvbW1pdF9yZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF9yZXZp
c2lvbiA9ICQyJywgYXJyYXkoJHJlcG9zaXRvcnlfaWQsICRyZXZpc2lvbikpOworICAgICAgICAk
Y29sdW1uX25hbWUgPSAncmV2aXNpb24nOworICAgICAgICBpZiAoJHRoaXMtPmlzX2NvbW1pdF9p
ZGVudGlmaWVyKCRyZXZpc2lvbikpCisgICAgICAgICAgICAkY29sdW1uX25hbWUgPSAnaWRlbnRp
Zmllcic7CisgICAgICAgIAorICAgICAgICAkY29tbWl0X3Jvd3MgPSAkZGItPnF1ZXJ5X2FuZF9m
ZXRjaF9hbGwoJ1NFTEVDVCBjb21taXRfaWQgRlJPTSBjb21taXRzIFdIRVJFIGNvbW1pdF9yZXBv
c2l0b3J5ID0gJDEgQU5EIGNvbW1pdF8nIC4gJGNvbHVtbl9uYW1lIC4gJyA9ICQyJywgYXJyYXko
JHJlcG9zaXRvcnlfaWQsICRyZXZpc2lvbikpOwogICAgICAgICBpZiAoJGNvbW1pdF9yb3dzKQog
ICAgICAgICAgICAgcmV0dXJuICRjb21taXRfcm93c1swXVsnY29tbWl0X2lkJ107CiAKICAgICAg
ICAgaWYgKCFjdHlwZV9hbG51bSgkcmV2aXNpb24pKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7
CiAKLSAgICAgICAgJGNvbW1pdF9yb3dzID0gJGRiLT5xdWVyeV9hbmRfZmV0Y2hfYWxsKCdTRUxF
Q1QgY29tbWl0X2lkIEZST00gY29tbWl0cyBXSEVSRSBjb21taXRfcmVwb3NpdG9yeSA9ICQxIEFO
RCBjb21taXRfcmV2aXNpb24gTElLRSAkMiBMSU1JVCAyJywgYXJyYXkoJHJlcG9zaXRvcnlfaWQs
IERhdGFiYXNlOjplc2NhcGVfZm9yX2xpa2UoJHJldmlzaW9uKSAuICclJykpOworICAgICAgICAk
Y29tbWl0X3Jvd3MgPSAkZGItPnF1ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCBjb21taXRfaWQg
RlJPTSBjb21taXRzIFdIRVJFIGNvbW1pdF9yZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF8nIC4g
JGNvbHVtbl9uYW1lIC4gJyBMSUtFICQyIExJTUlUIDInLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwg
RGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb24pIC4gJyUnKSk7CiAgICAgICAgIGlm
ICghJGNvbW1pdF9yb3dzKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIGlmIChj
b3VudCgkY29tbWl0X3Jvd3MpID4gMSkKQEAgLTU1LDYgKzU5LDcgQEAgY2xhc3MgQ29tbWl0TG9n
RmV0Y2hlciB7CiAgICAgewogICAgICAgICAkc3RhdGVtZW50cyA9ICdTRUxFQ1QgY29tbWl0X2lk
IGFzICJpZCIsCiAgICAgICAgICAgICBjb21taXRfcmV2aXNpb24gYXMgInJldmlzaW9uIiwKKyAg
ICAgICAgICAgIGNvbW1pdF9pZGVudGlmaWVyIGFzICJpZGVudGlmaWVyIiwKICAgICAgICAgICAg
IGNvbW1pdF9wcmV2aW91c19jb21taXQgYXMgInByZXZpb3VzQ29tbWl0IiwKICAgICAgICAgICAg
IGNvbW1pdF90aW1lIGFzICJ0aW1lIiwKICAgICAgICAgICAgIGNvbW1pdHRlcl9uYW1lIGFzICJh
dXRob3JOYW1lIiwKQEAgLTE5Miw4ICsxOTcsMTUgQEAgY2xhc3MgQ29tbWl0TG9nRmV0Y2hlciB7
CiAgICAgICAgIHJldHVybiAkdGhpcy0+Zm9ybWF0X3NpbmdsZV9jb21taXQoJGNvbW1pdCk7CiAg
ICAgfQogCisgICAgcHJpdmF0ZSBmdW5jdGlvbiBpc19jb21taXRfaWRlbnRpZmllcigkY29tbWl0
X3JldmlzaW9uX29yX2lkZW50aWZpZXIpIHsKKyAgICAgICAgcmV0dXJuIHByZWdfbWF0Y2goJy9c
ZCtAXFMrLycsICRjb21taXRfcmV2aXNpb25fb3JfaWRlbnRpZmllcik7CisgICAgfQorCiAgICAg
cHJpdmF0ZSBmdW5jdGlvbiBjb21taXRfZm9yX3JldmlzaW9uKCRyZXBvc2l0b3J5X2lkLCAkcmV2
aXNpb24pIHsKLSAgICAgICAgJGNvbW1pdF9pbmZvID0gYXJyYXkoJ3JlcG9zaXRvcnknID0+ICRy
ZXBvc2l0b3J5X2lkLCAncmV2aXNpb24nID0+ICRyZXZpc2lvbik7CisgICAgICAgIGlmICghJHRo
aXMtPmlzX2NvbW1pdF9pZGVudGlmaWVyKCRyZXZpc2lvbikpCisgICAgICAgICAgICAkY29tbWl0
X2luZm8gPSBhcnJheSgncmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlfaWQsICdyZXZpc2lvbicg
PT4gJHJldmlzaW9uKTsKKyAgICAgICAgZWxzZSAKKyAgICAgICAgICAgICRjb21taXRfaW5mbyA9
IGFycmF5KCdyZXBvc2l0b3J5JyA9PiAkcmVwb3NpdG9yeV9pZCwgJ2lkZW50aWZpZXInID0+ICRy
ZXZpc2lvbik7CiAgICAgICAgICRyb3cgPSAkdGhpcy0+ZGItPnNlbGVjdF9sYXN0X3JvdygnY29t
bWl0cycsICdjb21taXQnLCAkY29tbWl0X2luZm8pOwogICAgICAgICBpZiAoISRyb3cpCiAgICAg
ICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ1Vua25vd25Db21taXQnLCAkY29tbWl0X2luZm8pOwpA
QCAtMjAxLDcgKzIxMywxMSBAQCBjbGFzcyBDb21taXRMb2dGZXRjaGVyIHsKICAgICB9CiAKICAg
ICBwcml2YXRlIGZ1bmN0aW9uIGNvbW1pdF9mb3JfcmV2aXNpb25fcHJlZml4KCRyZXBvc2l0b3J5
X2lkLCAkcmV2aXNpb25fcHJlZml4KSB7Ci0gICAgICAgICRyb3dzID0gJHRoaXMtPmRiLT5xdWVy
eV9hbmRfZmV0Y2hfYWxsKCdTRUxFQ1QgKiBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9z
aXRvcnkgPSAkMSBBTkQgY29tbWl0X3JldmlzaW9uIExJS0UgJDIgT1JERVIgQlkgY29tbWl0X3Jl
dmlzaW9uIExJTUlUIDInLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9m
b3JfbGlrZSgkcmV2aXNpb25fcHJlZml4KSAuICclJykpOworICAgICAgICAkY29sdW1uX25hbWUg
PSAncmV2aXNpb24nOworICAgICAgICBpZiAoJHRoaXMtPmlzX2NvbW1pdF9pZGVudGlmaWVyKCRy
ZXZpc2lvbl9wcmVmaXgpKQorICAgICAgICAgICAgJGNvbHVtbl9uYW1lID0gJ2lkZW50aWZpZXIn
OworICAgICAgICAKKyAgICAgICAgJHJvd3MgPSAkdGhpcy0+ZGItPnF1ZXJ5X2FuZF9mZXRjaF9h
bGwoJ1NFTEVDVCAqIEZST00gY29tbWl0cyBXSEVSRSBjb21taXRfcmVwb3NpdG9yeSA9ICQxIEFO
RCBjb21taXRfJy4kY29sdW1uX25hbWUuJyBMSUtFICQyIE9SREVSIEJZIGNvbW1pdF8nLiRjb2x1
bW5fbmFtZS4nIExJTUlUIDInLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0YWJhc2U6OmVzY2Fw
ZV9mb3JfbGlrZSgkcmV2aXNpb25fcHJlZml4KSAuICclJykpOwogICAgICAgICBpZiAoY291bnQo
JHJvd3MpID09IDApCiAgICAgICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ1Vua25vd25Db21taXQn
LCBhcnJheSgncmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlfaWQsICdyZXZpc2lvbicgPT4gJHJl
dmlzaW9uX3ByZWZpeCkpOwogICAgICAgICBpZiAoY291bnQoJHJvd3MpID09IDIpIHsKQEAgLTIy
NCw2ICsyNDAsNyBAQCBjbGFzcyBDb21taXRMb2dGZXRjaGVyIHsKICAgICAgICAgcmV0dXJuIGFy
cmF5KAogICAgICAgICAgICAgJ2lkJyA9PiAkY29tbWl0X3Jvd1snY29tbWl0X2lkJ10sCiAgICAg
ICAgICAgICAncmV2aXNpb24nID0+ICRjb21taXRfcm93Wydjb21taXRfcmV2aXNpb24nXSwKKyAg
ICAgICAgICAgICdpZGVudGlmaWVyJyA9PiAkY29tbWl0X3Jvd1snY29tbWl0X2lkZW50aWZpZXIn
XSwKICAgICAgICAgICAgICdyZXBvc2l0b3J5JyA9PiAkY29tbWl0X3Jvd1snY29tbWl0X3JlcG9z
aXRvcnknXSwKICAgICAgICAgICAgICdwcmV2aW91c0NvbW1pdCcgPT4gJGNvbW1pdF9yb3dbJ2Nv
bW1pdF9wcmV2aW91c19jb21taXQnXSwKICAgICAgICAgICAgICd0aW1lJyA9PiBEYXRhYmFzZTo6
dG9fanNfdGltZSgkY29tbWl0X3Jvd1snY29tbWl0X3RpbWUnXSksCmRpZmYgLS1naXQgYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LXVwZGF0ZXIucGhwIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC11cGRhdGVyLnBo
cAppbmRleCAwOGM2OGJiZTY0MTBhZmYwNmRiODc1NDk5MmE0OGM5MzdlNzBlMzJmLi42YWY4ZmQ3
MWIxZmIzODUxNmU1MmI3MGIyZDIyNDBjZjQ4NTE4ZmY1IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LXVwZGF0ZXIucGhwCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtdXBkYXRlci5waHAK
QEAgLTc0LDYgKzc0LDcgQEAgY2xhc3MgQ29tbWl0VXBkYXRlciB7CiAgICAgcHJpdmF0ZSBmdW5j
dGlvbiAmY29uc3RydWN0X3VwZGF0ZV9saXN0KCYkY29tbWl0X2luZm9fbGlzdCwgJHNob3VsZF9p
bnNlcnQpCiAgICAgewogICAgICAgICAkdXBkYXRlX2xpc3QgPSBhcnJheSgpOworICAgICAgICAk
Y29tbWl0X2lkZW50aWZpZXJzID0gYXJyYXkoKTsKIAogICAgICAgICBmb3JlYWNoICgkY29tbWl0
X2luZm9fbGlzdCBhcyAmJGNvbW1pdF9pbmZvKSB7CiAgICAgICAgICAgICBzZWxmOjp2YWxpZGF0
ZV9jb21taXRzKCRjb21taXRfaW5mbyk7CkBAIC04MSw2ICs4MiwxMSBAQCBjbGFzcyBDb21taXRV
cGRhdGVyIHsKICAgICAgICAgICAgICRoYXNfdXBkYXRlID0gY291bnQoJGNvbW1pdF9kYXRhKSA+
IDE7CiAKICAgICAgICAgICAgICR1cGRhdGUgPSBhcnJheSgnY29tbWl0JyA9PiAmJGNvbW1pdF9k
YXRhLCAncmVwb3NpdG9yeScgPT4gJiRjb21taXRfaW5mb1sncmVwb3NpdG9yeSddKTsKKyAgICAg
ICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCdpZGVudGlmaWVyJywgJGNvbW1pdF9pbmZvKSkg
eworICAgICAgICAgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCRjb21taXRfaW5mb1snaWRl
bnRpZmllciddLCAkY29tbWl0X2lkZW50aWZpZXJzKSkKKyAgICAgICAgICAgICAgICAgICAgJHRo
aXMtPmV4aXRfd2l0aF9lcnJvcignRHVwbGljYXRlZENvbW1pdElkZW50aWZpZXInLCBhcnJheSgn
Y29tbWl0JyA9PiAkY29tbWl0X2luZm8pKTsKKyAgICAgICAgICAgICAgICAkY29tbWl0X2lkZW50
aWZpZXJzWyRjb21taXRfaW5mb1snaWRlbnRpZmllciddXSA9IHRydWU7CisgICAgICAgICAgICB9
CiAgICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncHJldmlvdXNDb21taXQnLCAkY29t
bWl0X2luZm8pKSB7CiAgICAgICAgICAgICAgICAgJGhhc191cGRhdGUgPSB0cnVlOwogICAgICAg
ICAgICAgICAgICR1cGRhdGVbJ3ByZXZpb3VzX2NvbW1pdCddID0gJiRjb21taXRfaW5mb1sncHJl
dmlvdXNDb21taXQnXTsKQEAgLTE0Myw2ICsxNDksOSBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsK
ICAgICAgICAgICAgICRjb21taXRfZGF0YVsndGltZSddID0gJGNvbW1pdF9pbmZvWyd0aW1lJ107
CiAgICAgICAgIH0KIAorICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygnaWRlbnRpZmllcics
ICRjb21taXRfaW5mbykpCisgICAgICAgICAgICAkY29tbWl0X2RhdGFbJ2lkZW50aWZpZXInXSA9
ICRjb21taXRfaW5mb1snaWRlbnRpZmllciddOworCiAgICAgICAgIGlmICgkc2hvdWxkX2luc2Vy
dCkKICAgICAgICAgICAgICRjb21taXRfZGF0YVsncmVwb3J0ZWQnXSA9IHRydWU7CiAKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1s
b2cuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQt
bG9nLmpzCmluZGV4IGU2ZDRkNDRhYmI1NTQxMzQ2ZTJmNGE5ZDQ0MDA5Zjc5YTc4MjkwMGIuLjA3
ZjJlMjdiNThiZTg2NWI4YjYwY2RlNjIzYzExYzQ2Y2JjMWM5NDkgMTAwNjQ0Ci0tLSBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1sb2cuanMKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qcwpA
QCAtMzksNiArMzksNyBAQCBjbGFzcyBDb21taXRMb2cgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3Qg
ewogICAgIHRlc3RhYmlsaXR5KCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsndGVzdGFiaWxpdHkn
XTsgfQogICAgIGF1dGhvcigpIHsgcmV0dXJuIHRoaXMuX3Jhd0RhdGFbJ2F1dGhvck5hbWUnXTsg
fQogICAgIHJldmlzaW9uKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsncmV2aXNpb24nXTsgfQor
ICAgIGlkZW50aWZpZXIoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydpZGVudGlmaWVyJ119CiAg
ICAgbWVzc2FnZSgpIHsgcmV0dXJuIHRoaXMuX3Jhd0RhdGFbJ21lc3NhZ2UnXTsgfQogICAgIHVy
bCgpIHsgcmV0dXJuIHRoaXMuX3JlcG9zaXRvcnkudXJsRm9yUmV2aXNpb24odGhpcy5fcmF3RGF0
YVsncmV2aXNpb24nXSk7IH0KICAgICBvd25zQ29tbWl0cygpIHsgcmV0dXJuIHRoaXMuX3Jhd0Rh
dGFbJ293bnNDb21taXRzJ107IH0KQEAgLTUxLDExICs1MiwxNSBAQCBjbGFzcyBDb21taXRMb2cg
ZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogICAgIGxhYmVsKCkKICAgICB7CiAgICAgICAgIGNv
bnN0IHJldmlzaW9uID0gdGhpcy5yZXZpc2lvbigpOworICAgICAgICBjb25zdCBpZGVudGlmaWVy
ID0gdGhpcy5pZGVudGlmaWVyKCk7CisgICAgICAgIGxldCBmb3JtYXR0ZWRfcmV2aXNpb24gPSBy
ZXZpc2lvbjsKICAgICAgICAgaWYgKHBhcnNlSW50KHJldmlzaW9uKSA9PSByZXZpc2lvbikgLy8g
ZS5nLiByMTIzNDUKLSAgICAgICAgICAgIHJldHVybiAncicgKyByZXZpc2lvbjsKKyAgICAgICAg
ICAgIGZvcm1hdHRlZF9yZXZpc2lvbiA9ICdyJyArIHJldmlzaW9uOwogICAgICAgICBpZiAocmV2
aXNpb24ubGVuZ3RoID09IDQwKSAvLyBlLmcuIGdpdCBoYXNoCi0gICAgICAgICAgICByZXR1cm4g
cmV2aXNpb24uc3Vic3RyaW5nKDAsIDEyKTsKLSAgICAgICAgcmV0dXJuIHJldmlzaW9uOworICAg
ICAgICAgICAgZm9ybWF0dGVkX3JldmlzaW9uID0gcmV2aXNpb24uc3Vic3RyaW5nKDAsIDEyKTsK
KyAgICAgICAgaWYgKGlkZW50aWZpZXIpCisgICAgICAgICAgICByZXR1cm4gYCR7aWRlbnRpZmll
cn0gKCR7Zm9ybWF0dGVkX3JldmlzaW9ufSlgOworICAgICAgICByZXR1cm4gZm9ybWF0dGVkX3Jl
dmlzaW9uOwogICAgIH0KICAgICB0aXRsZSgpIHsgcmV0dXJuIHRoaXMuX3JlcG9zaXRvcnkubmFt
ZSgpICsgJyBhdCAnICsgdGhpcy5sYWJlbCgpOyB9CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzCmluZGV4
IDI4NTY5ZjA2MzczMDRlM2E2MmNmNzcwMDkyMzkzZjdmMGU3MzY1OTcuLjI5MjVlMTQyOWI1MmEz
NzhhN2ZhNGIyZjFlN2I3MTg0MjEwM2MzMDYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcwpAQCAtMTcs
NiArMTcsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAogICAgICAg
ICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDgiLAorICAgICAgICAgICAgICAgICJpZGVudGlm
aWVyIjogIjE4NDI3NkBtYWluIiwKICAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIw
VDAyOjUyOjM0LjU3N1oiLAogICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiWmFs
YW4gQnVqdGFzIiwgImFjY291bnQiOiAiemFsYW5AYXBwbGUuY29tIn0sCiAgICAgICAgICAgICAg
ICAgIm1lc3NhZ2UiOiAiYSBtZXNzYWdlIiwKQEAgLTI0LDYgKzI1LDcgQEAgZGVzY3JpYmUoIi9h
cGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAi
MjEwOTQ5IiwKKyAgICAgICAgICAgICAgICAiaWRlbnRpZmllciI6ICIxODQyNzdAbWFpbiIsCiAg
ICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMzoyMzo1MC42NDVaIiwKICAgICAg
ICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNocmlzIER1bWV6IiwgImFjY291bnQiOiAi
Y2R1bWV6QGFwcGxlLmNvbSJ9LAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogInNvbWUgbWVz
c2FnZSIsCkBAIC0zMiw2ICszNCw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCiAgICAgICAg
ICAgICAgICAgInByZXZpb3VzQ29tbWl0IjogIjIxMDk0OSIsCiAgICAgICAgICAgICAgICAgInJl
dmlzaW9uIjogIjIxMDk1MCIsCisgICAgICAgICAgICAgICAgImlkZW50aWZpZXIiOiAiMTg0Mjc4
QG1haW4iLAogICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDM6NDk6MzcuODg3
WiIsCiAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAi
YWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Via2l0Lm9yZyJ9LAogICAgICAgICAgICAgICAgICJt
ZXNzYWdlIjogImFub3RoZXIgbWVzc2FnZSIsCkBAIC00Niw2ICs0OSw3IEBAIGRlc2NyaWJlKCIv
YXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCiAgICAgICAgICAgICAgICAgInJldmlzaW9uIjog
IjIxMDk0IiwKKyAgICAgICAgICAgICAgICAiaWRlbnRpZmllciI6ICIxODQyNzJAbWFpbiIsCiAg
ICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMjo1MjozNC41NzdaIiwKICAgICAg
ICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIlphbGFuIEJ1anRhcyIsICJhY2NvdW50Ijog
InphbGFuQGFwcGxlLmNvbSJ9LAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImEgbWVzc2Fn
ZSIsCkBAIC01Myw2ICs1Nyw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktp
dCIsCiAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OSIsCisgICAgICAgICAgICAg
ICAgImlkZW50aWZpZXIiOiAiMTg0Mjc3QG1haW4iLAogICAgICAgICAgICAgICAgICJ0aW1lIjog
IjIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1WiIsCiAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsi
bmFtZSI6ICJDaHJpcyBEdW1leiIsICJhY2NvdW50IjogImNkdW1lekBhcHBsZS5jb20ifSwKICAg
ICAgICAgICAgICAgICAibWVzc2FnZSI6ICJzb21lIG1lc3NhZ2UiLApAQCAtNTI0LDYgKzUyOSwx
OSBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IH0pOwogICAgICAgICB9KTsKIAorICAgICAgICBpdCgic2hvdWxkIHJldHVybiBjb21taXQgd2l0
aCBjb21taXQgaWRlbnRpZmllciIsICgpID0+IHsKKyAgICAgICAgICAgIHJldHVybiBhZGRTbGF2
ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cykudGhlbigoKSA9PiB7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNv
bW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdHMpOworICAgICAgICAgICAgfSkudGhlbihmdW5jdGlv
biAocmVzcG9uc2UpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OKGAvYXBpL2NvbW1pdHMvV2ViS2l0LyR7c3VidmVyc2lvbkNvbW1p
dHMuY29tbWl0c1swXS5pZGVudGlmaWVyfWApOworICAgICAgICAgICAgfSkudGhlbihmdW5jdGlv
biAocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHQuY29tbWl0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2Ft
ZUFzT25lU3VibWl0dGVkKHJlc3VsdC5jb21taXRzWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0cy5jb21t
aXRzWzBdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKwogICAgIH0pOwogCiAgICAg
ZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88cmVwb3NpdG9yeT4vb3duZWQtY29tbWl0cz9vd25lci1y
ZXZpc2lvbj08Y29tbWl0PicsICgpID0+IHsKQEAgLTcyNyw2ICs3NDUsMzcgQEAgZGVzY3JpYmUo
Ii9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CiAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gcmVwb3J0ZWQgY29tbWl0cyBpbiB0aGUg
c3BlY2lmaWVkIGlkZW50aWZpZXIgcmFuZ2UiLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBk
YiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFs
bChbCisgICAgICAgICAgICAgICAgZGIuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7J2lkJzogMSwg
J25hbWUnOiAnV2ViS2l0J30pLAorICAgICAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0cycs
IHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6ICcyMTA5NDgnLCAnaWRlbnRpZmllcic6ICcx
ODQyNzZAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDI6NTI6MzQuNTc3WicsICdyZXBvcnRl
ZCc6IHRydWV9KSwKKyAgICAgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9z
aXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTQ5JywgJ2lkZW50aWZpZXInOiAnMTg0Mjc3QG1h
aW4nLCAndGltZSc6ICcyMDE3LTAxLTIwVDAzOjIzOjUwLjY0NVonLCAncmVwb3J0ZWQnOiB0cnVl
fSksCisgICAgICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5Jzog
MSwgJ3JldmlzaW9uJzogJzIxMDk1MCcsICdpZGVudGlmaWVyJzogJzE4NDI3OEBtYWluJywgJ3Rp
bWUnOiAnMjAxNy0wMS0yMFQwMzo0OTozNy44ODdaJywgJ3JlcG9ydGVkJzogdHJ1ZX0pLAorICAg
ICAgICAgICAgXSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8/cHJlY2VkaW5nUmV2
aXNpb249MTg0Mjc2QG1haW4mbGFzdFJldmlzaW9uPTE4NDI3OEBtYWluJyk7CisgICAgICAgICAg
ICB9KS50aGVuKChyZXN1bHQpID0+IHsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBT
dHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAg
IGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCB7
CisgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzQ29tbWl0OiBudWxsLAorICAgICAgICAgICAg
ICAgICAgICByZXZpc2lvbjogJzIxMDk0OScsCisgICAgICAgICAgICAgICAgICAgIGlkZW50aWZp
ZXI6ICcxODQyODlAbWFpbicsCisgICAgICAgICAgICAgICAgICAgIHRpbWU6ICcyMDE3LTAxLTIw
VDAzOjIzOjUwLjY0NVonLAorICAgICAgICAgICAgICAgICAgICBhdXRob3I6IHtuYW1lOiBudWxs
LCBhY2NvdW50OiBudWxsfSwKKyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogbnVsbCwKKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09u
ZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVsxXSwgeworICAgICAgICAgICAgICAgICAgICBw
cmV2aW91c0NvbW1pdDogbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgcmV2aXNpb246ICcyMTA5
NTAnLAorICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVyOiAnMTg0MjkwQG1haW4nLAorICAg
ICAgICAgICAgICAgICAgICB0aW1lOiAnMjAxNy0wMS0yMFQwMzo0OTozNy44ODdaJywKKyAgICAg
ICAgICAgICAgICAgICAgYXV0aG9yOiB7bmFtZTogbnVsbCwgYWNjb3VudDogbnVsbH0sCisgICAg
ICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG51bGwsCisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKICAgICAgICAgaXQoInNob3VsZCBub3QgaW5jbHVk
ZSBhIHJldmlzaW9uIG5vdCB3aXRoaW4gdGhlIHNwZWNpZmllZCByYW5nZSIsICgpID0+IHsKICAg
ICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwogICAgICAgICAgICAg
Y29uc3QgcmVtb3RlID0gVGVzdFNlcnZlci5yZW1vdGVBUEkoKTsKQEAgLTc1MCw2ICs3OTksMjkg
QEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoInNob3VsZCBub3QgaW5jbHVkZSBhIHJldmlz
aW9uIG5vdCB3aXRoaW4gdGhlIHNwZWNpZmllZCBjb21taXQgaWRlbnRpZmllciByYW5nZSIsICgp
ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAg
ICAgICAgICAgY29uc3QgcmVtb3RlID0gVGVzdFNlcnZlci5yZW1vdGVBUEkoKTsKKyAgICAgICAg
ICAgIHJldHVybiBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgZGIuaW5zZXJ0KCdyZXBv
c2l0b3JpZXMnLCB7J2lkJzogMSwgJ25hbWUnOiAnV2ViS2l0J30pLAorICAgICAgICAgICAgICAg
IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6ICcyMTA5
NDcnLCAnaWRlbnRpZmllcic6ICcxODQyNzVAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDI6
Mzg6NDUuNDg1WicsICdyZXBvcnRlZCc6IGZhbHNlfSksCisgICAgICAgICAgICAgICAgZGIuaW5z
ZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk0OCcsICdp
ZGVudGlmaWVyJzogJzE4NDI3NkBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMjo1MjozNC41
NzdaJywgJ3JlcG9ydGVkJzogZmFsc2V9KSwKKyAgICAgICAgICAgICAgICBkYi5pbnNlcnQoJ2Nv
bW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTQ5JywgJ2lkZW50aWZp
ZXInOiAnMTg0Mjc3QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIwVDAzOjIzOjUwLjY0NVonLCAn
cmVwb3J0ZWQnOiBmYWxzZX0pLAorICAgICAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0cycs
IHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6ICcyMTA5NTAnLCAnaWRlbnRpZmllcic6ICcx
ODQyNzhAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDM6NDk6MzcuODg3WicsICdyZXBvcnRl
ZCc6IGZhbHNlfSksCisgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpOworICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZS5wb3N0SlNP
TldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdHMpOwor
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90
ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRpbmdSZXZpc2lvbj0xODQyNzVA
bWFpbiZsYXN0UmV2aXNpb249MTg0Mjc3QG1haW4nKTsKKyAgICAgICAgICAgIH0pLnRoZW4oKHJl
c3VsdCkgPT4geworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0
YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJl
c3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0Q29tbWl0
SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1YnZlcnNpb25Db21t
aXRzWydjb21taXRzJ11bMF0pOworICAgICAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFz
T25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzFdLCBzdWJ2ZXJzaW9uQ29tbWl0c1snY29t
bWl0cyddWzFdKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKwogICAgIH0pOwogCiB9
KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LXJlcG9ydC1jb21taXRzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKaW5kZXggYjRlZTcyNmYzNTUzMDJh
YjE4ZDZjNzM2Y2JiNDBjMzBjNGIxODU5Yi4uNzdjNTY3NTQzNmUxZGIyN2E0ZjAzODc2YTU4MTdi
ZjA4ZDQzODM5MSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKQEAgLTc2LDYg
Kzc2LDI5IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVl
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICBdCiAgICAgfQogCisgICAgY29uc3QgZHVwbGljYXRl
ZENvbW1pdElkZW50aWZpZXJDb21taXRzID0geworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVT
bGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAg
ICJjb21taXRzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5
IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OCIsCisgICAg
ICAgICAgICAgICAgImlkZW50aWZpZXIiOiAiMTg0Mjc2QG1haW4iLAorICAgICAgICAgICAgICAg
ICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6NTI6MzQuNTc3WiIsCisgICAgICAgICAgICAgICAgImF1
dGhvciI6IHsibmFtZSI6ICJaYWxhbiBCdWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5j
b20ifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJhIG1lc3NhZ2UiLAorICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJL
aXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDkiLAorICAgICAgICAgICAg
ICAgICJpZGVudGlmaWVyIjogIjE4NDI3NkBtYWluIiwKKyAgICAgICAgICAgICAgICAidGltZSI6
ICIyMDE3LTAxLTIwVDAzOjIzOjUwLjY0NVoiLAorICAgICAgICAgICAgICAgICJhdXRob3IiOiB7
Im5hbWUiOiAiQ2hyaXMgRHVtZXoiLCAiYWNjb3VudCI6ICJjZHVtZXpAYXBwbGUuY29tIn0sCisg
ICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAic29tZSBtZXNzYWdlIiwKKyAgICAgICAgICAgIH0s
CisgICAgICAgIF0KKyAgICB9CisKICAgICBpdCgic2hvdWxkIHJlamVjdCBlcnJvciB3aGVuIHNs
YXZlIG5hbWUgaXMgbWlzc2luZyIsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywge30pLnRoZW4oKHJl
c3BvbnNlKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnTWlzc2luZ1NsYXZlTmFtZScpOwpAQCAtMTQ1LDYgKzE2OCwxNyBAQCBkZXNjcmli
ZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgfSk7CiAgICAgfSk7CiAKKyAgICBpdCgic2hvdWxkIHJlamVjdCB3aXRoIGR1cGxp
Y2F0ZWQgY29tbWl0IGlkZW50aWZpZXIiLCAoKSA9PiB7CisgICAgICAgIHJldHVybiBhZGRTbGF2
ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRz
LycsIGR1cGxpY2F0ZWRDb21taXRJZGVudGlmaWVyQ29tbWl0cyk7CisgICAgICAgIH0pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnRHVwbGljYXRlZENvbW1pdElkZW50aWZpZXInKTsKKyAgICAgICAgICAgIHJl
dHVybiBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdjb21taXRzJyk7CisgICAgICAg
IH0pLnRoZW4oKHJvd3MpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dz
Lmxlbmd0aCwgMCk7CisgICAgICAgIH0pOworICAgIH0pOworCiAgICAgaXQoInNob3VsZCBzdG9y
ZSB0d28gY29tbWl0cyBmcm9tIGEgdmFsaWQgc2xhdmUiLCAoKSA9PiB7CiAgICAgICAgIHJldHVy
biBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uVHdvQ29tbWl0cykudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9y
ZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uVHdvQ29tbWl0cyk7CmRpZmYgLS1naXQgYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy90ZXN0LXNlcnZlci5j
b25mIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVz
dC1zZXJ2ZXIuY29uZgppbmRleCA5MzZiNGY0YmZhZmYwN2VkYjAzNTgzM2M0NjNlZTE2OWJmYzE1
YTExLi45ZmQ3OTM5ZTliODUxMzA2YzUxODNjOTQ5YjZhNTQ3MTFjZDE3ZWU1IDEwMDY0NAotLS0g
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy90ZXN0LXNl
cnZlci5jb25mCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVz
b3VyY2VzL3Rlc3Qtc2VydmVyLmNvbmYKQEAgLTEsNiArMSw3IEBACiBTZXJ2ZXJSb290ICIvdXNy
IgogTGlzdGVuIDgwODAKIAorbG9hZE1vZHVsZSBtcG1fcHJlZm9ya19tb2R1bGUgbGliZXhlYy9h
cGFjaGUyL21vZF9tcG1fcHJlZm9yay5zbwogTG9hZE1vZHVsZSBhdXRobl9jb3JlX21vZHVsZSBs
aWJleGVjL2FwYWNoZTIvbW9kX2F1dGhuX2NvcmUuc28KIExvYWRNb2R1bGUgYXV0aHpfY29yZV9t
b2R1bGUgbGliZXhlYy9hcGFjaGUyL21vZF9hdXRoel9jb3JlLnNvCiBMb2FkTW9kdWxlIGRlZmxh
dGVfbW9kdWxlIGxpYmV4ZWMvYXBhY2hlMi9tb2RfZGVmbGF0ZS5zbwpAQCAtMTYsNiArMTcsOCBA
QCBMb2FkTW9kdWxlIG5lZ290aWF0aW9uX21vZHVsZSBsaWJleGVjL2FwYWNoZTIvbW9kX25lZ290
aWF0aW9uLnNvCiBMb2FkTW9kdWxlIGRpcl9tb2R1bGUgbGliZXhlYy9hcGFjaGUyL21vZF9kaXIu
c28KIExvYWRNb2R1bGUgYWxpYXNfbW9kdWxlIGxpYmV4ZWMvYXBhY2hlMi9tb2RfYWxpYXMuc28K
IExvYWRNb2R1bGUgcmV3cml0ZV9tb2R1bGUgbGliZXhlYy9hcGFjaGUyL21vZF9yZXdyaXRlLnNv
CitMb2FkTW9kdWxlIHBocDdfbW9kdWxlIC91c3IvbG9jYWwvQ2VsbGFyL3BocEA3LjQvNy40LjE2
L2xpYi9odHRwZC9tb2R1bGVzL2xpYnBocDcuc28KKwogCiA8SWZEZWZpbmUgUEhQNT4KICAgICBM
b2FkTW9kdWxlIHBocDVfbW9kdWxlIGxpYmV4ZWMvYXBhY2hlMi9saWJwaHA1LnNvCmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9jb21taXQtbG9nLXRlc3Rz
LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0
cy5qcwppbmRleCA3MGFiZGViZjgxZThhYjYwZDFkMTgxNjNlMzk5MTg3OWNiNDczOGI2Li40NGMx
NjdiNGVkMzdiMGE0MjVhMmU4ZjdjYmNhYTZkZTdlM2Q3Njc1IDEwMDY0NAotLS0gYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9jb21taXQtbG9nLXRlc3RzLmpzCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2NvbW1pdC1sb2ctdGVzdHMuanMKQEAg
LTE3LDYgKzE3LDE3IEBAIGZ1bmN0aW9uIHdlYmtpdENvbW1pdCgpCiAgICAgfSk7CiB9CiAKK2Z1
bmN0aW9uIHdlYmtpdENvbW1pdFdpdGhJZGVudGlmaWVyKCkgCit7CisgICAgcmV0dXJuIG5ldyBD
b21taXRMb2coMSwgeworICAgICAgICBpZDogMSwKKyAgICAgICAgcmVwb3NpdG9yeTogTW9ja01v
ZGVscy53ZWJraXQsCisgICAgICAgIHJldmlzaW9uOiAnMjAwODA1JywKKyAgICAgICAgaWRlbnRp
ZmllcjogJzE4NDI3NkBtYWluJywKKyAgICAgICAgdGltZTogKyhuZXcgRGF0ZSgnMjAxNi0wNS0x
M1QwMDo1NTo1Ny44NDEzNDRaJykpLAorICAgIH0pOworfQorCiBmdW5jdGlvbiBvbGRXZWJLaXRD
b21taXQoKQogewogICAgIHJldHVybiBuZXcgQ29tbWl0TG9nKDIsIHsKQEAgLTM3LDYgKzQ4LDE3
IEBAIGZ1bmN0aW9uIGdpdFdlYktpdENvbW1pdCgpCiAgICAgfSk7CiB9CiAKK2Z1bmN0aW9uIGdp
dFdlYktpdENvbW1pdFdpdGhJZGVudGlmaWVyKCkKK3sKKyAgICByZXR1cm4gbmV3IENvbW1pdExv
ZygzLCB7CisgICAgICAgIGlkOiAzLAorICAgICAgICByZXBvc2l0b3J5OiBNb2NrTW9kZWxzLndl
YmtpdCwKKyAgICAgICAgcmV2aXNpb246ICc2ZjhiMGRiYmRhOTVhNDQwNTAzYjg4ZGIxZGQwM2Rh
ZDNhN2IwN2ZiJywKKyAgICAgICAgaWRlbnRpZmllcjogJzE4NDI3NkBtYWluJywKKyAgICAgICAg
dGltZTogKyhuZXcgRGF0ZSgnMjAxNi0wNS0xM1QwMDo1NTo1Ny44NDEzNDRaJykpLAorICAgIH0p
OworfQorCiBmdW5jdGlvbiBvbGRHaXRXZWJLaXRDb21taXQoKQogewogICAgIHJldHVybiBuZXcg
Q29tbWl0TG9nKDQsIHsKQEAgLTE0NywxMCArMTY5LDE4IEBAIGRlc2NyaWJlKCdDb21taXRMb2cn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Q29tbWl0KCku
bGFiZWwoKSwgJ3IyMDA4MDUnKTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoJ3Nob3VsZCBw
cmVmaXggY29tbWl0IGlkZW50aWZpZXIgd2l0aCBzdm4gciArIHJldmlzaW9uJywgKCkgPT4gewor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdENvbW1pdFdpdGhJZGVudGlmaWVy
KCkubGFiZWwoKSwgJzE4NDI3NkBtYWluIChyMjAwODA1KScpCisgICAgICAgIH0pOworCiAgICAg
ICAgIGl0KCdzaG91bGQgdHJ1bmNhdGUgYSBHaXQgaGFzaCBhdCA4dGggY2hhcmFjdGVyJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdpdFdlYktpdENvbW1pdCgpLmxh
YmVsKCksICc2ZjhiMGRiYmRhOTUnKTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoJ3Nob3Vs
ZCBwcmVmaXggY29tbWl0IGlkZW50aWZpZXIgd2l0aCBnaXQgaGFzaCB0cnVuY2F0ZWQnLCAoKSA9
PiB7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ2l0V2ViS2l0Q29tbWl0V2l0aElk
ZW50aWZpZXIoKS5sYWJlbCgpLCAnMTg0Mjc2QG1haW4gKDZmOGIwZGJiZGE5NSknKQorICAgICAg
ICB9KTsKKwogICAgICAgICBpdCgnc2hvdWxkIG5vdCBtb2RpZnkgT1MgWCB2ZXJzaW9uJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdCgpLmxhYmVsKCks
ICcxMC4xMS40IDE1RTY1Jyk7CiAgICAgICAgIH0pOwpAQCAtMTYxLDEwICsxOTEsMTggQEAgZGVz
Y3JpYmUoJ0NvbW1pdExvZycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh3ZWJraXRDb21taXQoKS50aXRsZSgpLCAnV2ViS2l0IGF0IHIyMDA4MDUnKTsKICAgICAgICAg
fSk7CiAKKyAgICAgICAgaXQoJ3Nob3VsZCBwcmVmaXggY29tbWl0IGlkZW50aWZpZXInLCAoKSA9
PiB7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Q29tbWl0V2l0aElkZW50
aWZpZXIoKS50aXRsZSgpLCAnV2ViS2l0IGF0IDE4NDI3NkBtYWluIChyMjAwODA1KScpOworICAg
ICAgICB9KTsKKwogICAgICAgICBpdCgnc2hvdWxkIHRydW5jYXRlIGEgR2l0IGhhc2ggYXQgOHRo
IGNoYXJhY3RlcicsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChnaXRX
ZWJLaXRDb21taXQoKS50aXRsZSgpLCAnV2ViS2l0IGF0IDZmOGIwZGJiZGE5NScpOwogICAgICAg
ICB9KTsKIAorICAgICAgICBpdCgnc2hvdWxkIHByZWZpeCBjb21taXQgaWRlbnRpZmllciB3aXRo
IGdpdCBoYXNoIHRydW5jYXRlZCcsICAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZ2l0V2ViS2l0Q29tbWl0V2l0aElkZW50aWZpZXIoKS50aXRsZSgpLCAnV2ViS2l0IGF0
IDE4NDI3NkBtYWluICg2ZjhiMGRiYmRhOTUpJyk7CisgICAgICAgIH0pOworCiAgICAgICAgIGl0
KCdzaG91bGQgbm90IG1vZGlmeSBPUyBYIHZlcnNpb24nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0KCkudGl0bGUoKSwgJ09TIFggYXQgMTAuMTEuNCAx
NUU2NScpOwogICAgICAgICB9KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422619</attachid>
            <date>2021-03-08 14:27:41 -0800</date>
            <delta_ts>2021-03-10 17:58:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222897-20210308142740.patch</filename>
            <type>text/plain</type>
            <size>25724</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MDYxCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1YTg1MWZkODI1NTA1YjQzMGFkNzg3ODZhNTQ1NzI0MzUwNTg0Zjc1Li41ZjFjMGI5NjRk
YWZiNGM4Y2E4OTlhYTBiYWEwMzY3MjU3MWY0NDBkIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAyMS0wMy0wOCAgWmhpZmVpIEZhbmcgIDx6aGlmZWlf
ZmFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGNvbW1pdCBpZGVudGlmaWVyIHN1cHBvcnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjg5Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcg
Y29sdW1uIGNvbW1pdCBpZGVudGlmaWVyCisgICAgICAgIE1ha2UgYWxsIGNvbW1pdCBhcGkgYWxz
byBjYW4gd29yayB3aXRoIGNvbW1pdCBpZGVudGlmaWVyCisgICAgICAgIENoYW5nZSB0aGUgY29t
bWl0IGxhYmVsIGRpc3BsYXkgd2l0aCBjb21taXQgaWRlbnRpaWVyCisKKyAgICAgICAgKiBicm93
c2VyLXRlc3RzL2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzOgorICAgICAgICAocmV0dXJuLmlt
cG9ydENvbW1pdExvZ1ZpZXdlci5jb250ZXh0LnRoZW4uYXN5bmMgQ29tbWl0TG9nVmlld2VyKToK
KyAgICAgICAgKiBpbml0LWRhdGFiYXNlLnNxbDogQWRkIGNvbW1pdCBpZGVudGlmaWVyIGNvbHVt
biwgaXQgc2hvdWxkIGJlIHVuaXF1ZSBwZXIgcmVwbworICAgICAgICAqIG1pZ3JhdGUtZGF0YWJh
c2Uuc3FsOgorICAgICAgICAqIHB1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHA6
IFN1cHBvcnQgdXNpbmcgY29tbWl0IGlkZW50aWZlciBhcyByZXZpc2lvbgorICAgICAgICAqIHB1
YmxpYy9pbmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocDoKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9k
ZWxzL2NvbW1pdC1sb2cuanM6CisgICAgICAgIChDb21taXRMb2cucHJvdG90eXBlLmlkZW50aWZp
ZXIpOgorICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS5sYWJlbCk6IERpc3BsYXkgaWRlbnRp
ZmllciB0b2dldGhlciB3aXRoIHJldmlzaW9uCisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1j
b21taXRzLXRlc3RzLmpzOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1p
dHMtdGVzdHMuanM6CisgICAgICAgIChyZXR1cm4uYWRkU2xhdmVGb3JSZXBvcnQuc3VidmVyc2lv
bkNvbW1pdC50aGVuKToKKyAgICAgICAgKiB1bml0LXRlc3RzL2NvbW1pdC1sb2ctdGVzdHMuanM6
CisKIDIwMjEtMDMtMDYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgW3BlcmYgZGFzaGJvYXJkXSBNb2Rlcm5pemUgVGltZVNlcmllcyBhbmQgVGltZVNlcmllc1Zp
ZXcKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9icm93c2VyLXRlc3RzL2Nv
bW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dz
ZXItdGVzdHMvY29tbWl0LWxvZy12aWV3ZXItdGVzdHMuanMKaW5kZXggZGJjNGNmY2Q5YmMyMTRi
NzA4ZWUxOThmMWVhNjY1ZjIyNDIyODU2MC4uZjhkNDMwMmE2OTM1ZTEyMjI0MDRiY2NhZDU3OTY2
YmFiMjczNDA3YSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXIt
dGVzdHMvY29tbWl0LWxvZy12aWV3ZXItdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL2Jyb3dzZXItdGVzdHMvY29tbWl0LWxvZy12aWV3ZXItdGVzdHMuanMKQEAgLTIyLDYg
KzIyLDcgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZ1ZpZXdlcicsICgpID0+IHsKICAgICBjb25zdCB3
ZWJraXRDb21taXQyMTA5NDggPSB7CiAgICAgICAgICJpZCI6ICIxODUzMjYiLAogICAgICAgICAi
cmV2aXNpb24iOiAiMjEwOTQ4IiwKKyAgICAgICAgImlkZW50aWZpZXIiOiAiMTg0Mjc2QG1haW4i
LAogICAgICAgICAicmVwb3NpdG9yeSI6IDEsCiAgICAgICAgICJwcmV2aW91c0NvbW1pdCI6IG51
bGwsCiAgICAgICAgICJvd25zQ29tbWl0cyI6IGZhbHNlLApAQCAtNDYsNiArNDcsNyBAQCBkZXNj
cmliZSgnQ29tbWl0TG9nVmlld2VyJywgKCkgPT4gewogICAgIGNvbnN0IHdlYmtpdENvbW1pdDIx
MDk1MCA9IHsKICAgICAgICAgImlkIjogIjE4NTMzOCIsCiAgICAgICAgICJyZXZpc2lvbiI6ICIy
MTA5NTAiLAorICAgICAgICAiaWRlbnRpZmllciI6ICIxODQyNzhAbWFpbiIsCiAgICAgICAgICJy
ZXBvc2l0b3J5IjogMSwKICAgICAgICAgInByZXZpb3VzQ29tbWl0IjogbnVsbCwKICAgICAgICAg
Im93bnNDb21taXRzIjogZmFsc2UsCkBAIC0xMzEsMTIgKzEzMywxMyBAQCBkZXNjcmliZSgnQ29t
bWl0TG9nVmlld2VyJywgKCkgPT4gewogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgICAgIGF3
YWl0IHdhaXRGb3JDb21wb25lbnRzVG9SZW5kZXIoY29udGV4dCk7Ci0KKyAgICAgICAgICAgIGV4
cGVjdCh2aWV3ZXIuY29udGVudCgnc3Bpbm5lci1jb250YWluZXInKS5vZmZzZXRIZWlnaHQpLnRv
Lm5vdC5iZSgwKTsKKyAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JDb21wb25lbnRzVG9SZW5kZXIo
Y29udGV4dCk7CiAgICAgICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ3NwaW5uZXItY29u
dGFpbmVyJykub2Zmc2V0SGVpZ2h0KS50by5iZSgwKTsKICAgICAgICAgICAgIGV4cGVjdCh2aWV3
ZXIuY29udGVudCgnY29tbWl0cy1saXN0JykubWF0Y2hlcygnOmVtcHR5JykpLnRvLmJlKGZhbHNl
KTsKICAgICAgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnY29tbWl0cy1saXN0JykudGV4
dENvbnRlbnQpLnRvLmNvbnRhaW4oJ3IyMTA5NDknKTsKICAgICAgICAgICAgIGV4cGVjdCh2aWV3
ZXIuY29udGVudCgnY29tbWl0cy1saXN0JykudGV4dENvbnRlbnQpLnRvLmNvbnRhaW4oJ0Nocmlz
IER1bWV6Jyk7Ci0gICAgICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlz
dCcpLnRleHRDb250ZW50KS50by5jb250YWluKCdyMjEwOTUwJyk7CisgICAgICAgICAgICBleHBl
Y3Qodmlld2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLnRleHRDb250ZW50KS50by5jb250YWlu
KCcxODQyNzhAbWFpbiAocjIxMDk1MCknKTsKICAgICAgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29u
dGVudCgnY29tbWl0cy1saXN0JykudGV4dENvbnRlbnQpLnRvLmNvbnRhaW4oJ0NvbW1pdCBRdWV1
ZScpOwogICAgICAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdyZXBvc2l0b3J5LW5hbWUn
KS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUoZmFsc2UpOwogICAgICAgICAgICAgZXhwZWN0KHZp
ZXdlci5jb250ZW50KCdyZXBvc2l0b3J5LW5hbWUnKS50ZXh0Q29udGVudCkudG8uY29udGFpbign
V2ViS2l0Jyk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRh
YmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwKaW5k
ZXggN2ZmYzg5YWQ4MmM3NjEwNDFkMWE1NTZlODNmN2M5Njc4YTMyZmFjMS4uOTdlYjI3NWZhMjNm
MjQxNDkwYWQ0MWM0YmFjYzkwMjIyYzZmZjU2MCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9pbml0LWRhdGFiYXNlLnNxbApAQCAtMTAyLDYgKzEwMiw3IEBAIENSRUFURSBUQUJMRSBjb21t
aXRzICgKICAgICBjb21taXRfaWQgc2VyaWFsIFBSSU1BUlkgS0VZLAogICAgIGNvbW1pdF9yZXBv
c2l0b3J5IGludGVnZXIgTk9UIE5VTEwgUkVGRVJFTkNFUyByZXBvc2l0b3JpZXMgT04gREVMRVRF
IENBU0NBREUsCiAgICAgY29tbWl0X3JldmlzaW9uIHZhcmNoYXIoNjQpIE5PVCBOVUxMLAorICAg
IGNvbW1pdF9pZGVudGlmaWVyIHZhcmNoYXIoNjQpIERFRkFVTFQgTlVMTCwKICAgICBjb21taXRf
cHJldmlvdXNfY29tbWl0IGludGVnZXIgUkVGRVJFTkNFUyBjb21taXRzIE9OIERFTEVURSBDQVND
QURFLAogICAgIGNvbW1pdF90aW1lIHRpbWVzdGFtcCwKICAgICBjb21taXRfb3JkZXIgaW50ZWdl
ciwKQEAgLTExMCw2ICsxMTEsNyBAQCBDUkVBVEUgVEFCTEUgY29tbWl0cyAoCiAgICAgY29tbWl0
X3JlcG9ydGVkIGJvb2xlYW4gTk9UIE5VTEwgREVGQVVMVCBGQUxTRSwKICAgICBjb21taXRfdGVz
dGFiaWxpdHkgdmFyY2hhcigxMjgpIERFRkFVTFQgTlVMTCwKICAgICBDT05TVFJBSU5UIGNvbW1p
dF9pbl9yZXBvc2l0b3J5X211c3RfYmVfdW5pcXVlIFVOSVFVRShjb21taXRfcmVwb3NpdG9yeSwg
Y29tbWl0X3JldmlzaW9uKSk7CisgICAgQ09OU1RSQUlOVCBjb21taXRfaWRlbnRpZmllcl9pbl9y
ZXBvc2l0b3J5X211c3RfYmVfdW5pcXVlIFVOSVFVRShjb21taXRfcmVwb3NpdG9yeSwgY29tbWl0
X2lkZW50aWZpZXIpOwogQ1JFQVRFIElOREVYIGNvbW1pdF90aW1lX2luZGV4IE9OIGNvbW1pdHMo
Y29tbWl0X3RpbWUpOwogQ1JFQVRFIElOREVYIGNvbW1pdF9vcmRlcl9pbmRleCBPTiBjb21taXRz
KGNvbW1pdF9vcmRlcik7CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9t
aWdyYXRlLWRhdGFiYXNlLnNxbCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9taWdyYXRlLWRh
dGFiYXNlLnNxbAppbmRleCA0OWJkMjQ5ZDJhNjg1Nzc2NDQ5ZDM2ZTgwNTI2OGZjYzRiODc3YWNh
Li4zNWQ2ZjBjMjdjMDI1MjQ2N2E0YTRjZjU5MGJmNmFiZjhiMjQyMjEyIDEwMDY0NAotLS0gYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWlncmF0ZS1kYXRhYmFzZS5zcWwKKysrIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL21pZ3JhdGUtZGF0YWJhc2Uuc3FsCkBAIC0xNCw2ICsxNCw5IEBA
IElGIEVYSVNUUyAoU0VMRUNUIE5VTEwgRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1ucyBX
SEVSRSBUQUJMRV9OQU1FID0gJ2J1aWxkCiAgICAgQUxURVIgVEFCTEUgYnVpbGRzIFJFTkFNRSBi
dWlsZF9udW1iZXIgVE8gYnVpbGRfdGFnOwogICAgIEFMVEVSIFRBQkxFIGJ1aWxkcyBEUk9QIENP
TlNUUkFJTlQgIGJ1aWxkZXJfYnVpbGRfdGltZV90dXBsZV9tdXN0X2JlX3VuaXF1ZTsKICAgICBB
TFRFUiBUQUJMRSBidWlsZHMgQUREIENPTlNUUkFJTlQgYnVpbGRlcl9idWlsZF90aW1lX3R1cGxl
X211c3RfYmVfdW5pcXVlIFVOSVFVRShidWlsZF9idWlsZGVyLCBidWlsZF90YWcsIGJ1aWxkX3Rp
bWUpOworICAgIEFMVEVSIFRBQkxFIGNvbW1pdHMgQUREIENPTFVNTiBJRiBOT1QgRVhJU1RTIGNv
bW1pdF9pZGVudGlmaWVyOworICAgIEFMVEVSIFRBQkxFIGNvbW1pdHMgRFJPUCBDT05TVFJBSU5U
IGNvbW1pdF9pZGVudGlmaWVyX2luX3JlcG9zaXRvcnlfbXVzdF9iZV91bmlxdWU7CisgICAgQUxU
RVIgVEFCTEUgY29tbWl0cyBBREQgQ09OU1RSQUlOVCBjb21taXRfaWRlbnRpZmllcl9pbl9yZXBv
c2l0b3J5X211c3RfYmVfdW5pcXVlIFVOSVFVRShjb21taXRfcmVwb3NpdG9yeSwgY29tbWl0X2lk
ZW50aWZpZXIpOwogRU5EIElGOwogCiBFTkQkJDsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvY29t
bWl0LWxvZy1mZXRjaGVyLnBocCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5j
bHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwCmluZGV4IDZlMGJlY2QwYmM4MTY0YzA0MmZkM2Zi
MmYzOTk4YzQxNTRmZWIwZTEuLjg3NjRjZTQ5OWY4MzY5MGNiMTdmNjRmNDE0NGNhZWU0NTcyY2Rl
YTMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9j
b21taXQtbG9nLWZldGNoZXIucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwCkBAIC04LDE0ICs4LDE4IEBAIGNsYXNz
IENvbW1pdExvZ0ZldGNoZXIgewogCiAgICAgc3RhdGljIGZ1bmN0aW9uIGZpbmRfY29tbWl0X2lk
X2J5X3JldmlzaW9uKCRkYiwgJHJlcG9zaXRvcnlfaWQsICRyZXZpc2lvbikKICAgICB7Ci0gICAg
ICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUIGNvbW1p
dF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkgPSAkMSBBTkQgY29tbWl0
X3JldmlzaW9uID0gJDInLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uKSk7CisgICAg
ICAgICRjb2x1bW5fbmFtZSA9ICdyZXZpc2lvbic7CisgICAgICAgIGlmICgkdGhpcy0+aXNfY29t
bWl0X2lkZW50aWZpZXIoJHJldmlzaW9uKSkKKyAgICAgICAgICAgICRjb2x1bW5fbmFtZSA9ICdp
ZGVudGlmaWVyJzsKKyAgICAgICAgCisgICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlf
YW5kX2ZldGNoX2FsbCgnU0VMRUNUIGNvbW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0
X3JlcG9zaXRvcnkgPSAkMSBBTkQgY29tbWl0XycgLiAkY29sdW1uX25hbWUgLiAnID0gJDInLCBh
cnJheSgkcmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uKSk7CiAgICAgICAgIGlmICgkY29tbWl0X3Jv
d3MpCiAgICAgICAgICAgICByZXR1cm4gJGNvbW1pdF9yb3dzWzBdWydjb21taXRfaWQnXTsKIAog
ICAgICAgICBpZiAoIWN0eXBlX2FsbnVtKCRyZXZpc2lvbikpCiAgICAgICAgICAgICByZXR1cm4g
TlVMTDsKIAotICAgICAgICAkY29tbWl0X3Jvd3MgPSAkZGItPnF1ZXJ5X2FuZF9mZXRjaF9hbGwo
J1NFTEVDVCBjb21taXRfaWQgRlJPTSBjb21taXRzIFdIRVJFIGNvbW1pdF9yZXBvc2l0b3J5ID0g
JDEgQU5EIGNvbW1pdF9yZXZpc2lvbiBMSUtFICQyIExJTUlUIDInLCBhcnJheSgkcmVwb3NpdG9y
eV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb24pIC4gJyUnKSk7CisgICAg
ICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUIGNvbW1p
dF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkgPSAkMSBBTkQgY29tbWl0
XycgLiAkY29sdW1uX25hbWUgLiAnIExJS0UgJDIgTElNSVQgMicsIGFycmF5KCRyZXBvc2l0b3J5
X2lkLCBEYXRhYmFzZTo6ZXNjYXBlX2Zvcl9saWtlKCRyZXZpc2lvbikgLiAnJScpKTsKICAgICAg
ICAgaWYgKCEkY29tbWl0X3Jvd3MpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAg
aWYgKGNvdW50KCRjb21taXRfcm93cykgPiAxKQpAQCAtNTUsNiArNTksNyBAQCBjbGFzcyBDb21t
aXRMb2dGZXRjaGVyIHsKICAgICB7CiAgICAgICAgICRzdGF0ZW1lbnRzID0gJ1NFTEVDVCBjb21t
aXRfaWQgYXMgImlkIiwKICAgICAgICAgICAgIGNvbW1pdF9yZXZpc2lvbiBhcyAicmV2aXNpb24i
LAorICAgICAgICAgICAgY29tbWl0X2lkZW50aWZpZXIgYXMgImlkZW50aWZpZXIiLAogICAgICAg
ICAgICAgY29tbWl0X3ByZXZpb3VzX2NvbW1pdCBhcyAicHJldmlvdXNDb21taXQiLAogICAgICAg
ICAgICAgY29tbWl0X3RpbWUgYXMgInRpbWUiLAogICAgICAgICAgICAgY29tbWl0dGVyX25hbWUg
YXMgImF1dGhvck5hbWUiLApAQCAtMTkyLDggKzE5NywxNSBAQCBjbGFzcyBDb21taXRMb2dGZXRj
aGVyIHsKICAgICAgICAgcmV0dXJuICR0aGlzLT5mb3JtYXRfc2luZ2xlX2NvbW1pdCgkY29tbWl0
KTsKICAgICB9CiAKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGlzX2NvbW1pdF9pZGVudGlmaWVyKCRj
b21taXRfcmV2aXNpb25fb3JfaWRlbnRpZmllcikgeworICAgICAgICByZXR1cm4gcHJlZ19tYXRj
aCgnL1xkK0BcUysvJywgJGNvbW1pdF9yZXZpc2lvbl9vcl9pZGVudGlmaWVyKTsKKyAgICB9CisK
ICAgICBwcml2YXRlIGZ1bmN0aW9uIGNvbW1pdF9mb3JfcmV2aXNpb24oJHJlcG9zaXRvcnlfaWQs
ICRyZXZpc2lvbikgewotICAgICAgICAkY29tbWl0X2luZm8gPSBhcnJheSgncmVwb3NpdG9yeScg
PT4gJHJlcG9zaXRvcnlfaWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uKTsKKyAgICAgICAgaWYg
KCEkdGhpcy0+aXNfY29tbWl0X2lkZW50aWZpZXIoJHJldmlzaW9uKSkKKyAgICAgICAgICAgICRj
b21taXRfaW5mbyA9IGFycmF5KCdyZXBvc2l0b3J5JyA9PiAkcmVwb3NpdG9yeV9pZCwgJ3Jldmlz
aW9uJyA9PiAkcmV2aXNpb24pOworICAgICAgICBlbHNlIAorICAgICAgICAgICAgJGNvbW1pdF9p
bmZvID0gYXJyYXkoJ3JlcG9zaXRvcnknID0+ICRyZXBvc2l0b3J5X2lkLCAnaWRlbnRpZmllcicg
PT4gJHJldmlzaW9uKTsKICAgICAgICAgJHJvdyA9ICR0aGlzLT5kYi0+c2VsZWN0X2xhc3Rfcm93
KCdjb21taXRzJywgJ2NvbW1pdCcsICRjb21taXRfaW5mbyk7CiAgICAgICAgIGlmICghJHJvdykK
ICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignVW5rbm93bkNvbW1pdCcsICRjb21taXRfaW5m
byk7CkBAIC0yMDEsNyArMjEzLDExIEBAIGNsYXNzIENvbW1pdExvZ0ZldGNoZXIgewogICAgIH0K
IAogICAgIHByaXZhdGUgZnVuY3Rpb24gY29tbWl0X2Zvcl9yZXZpc2lvbl9wcmVmaXgoJHJlcG9z
aXRvcnlfaWQsICRyZXZpc2lvbl9wcmVmaXgpIHsKLSAgICAgICAgJHJvd3MgPSAkdGhpcy0+ZGIt
PnF1ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCAqIEZST00gY29tbWl0cyBXSEVSRSBjb21taXRf
cmVwb3NpdG9yeSA9ICQxIEFORCBjb21taXRfcmV2aXNpb24gTElLRSAkMiBPUkRFUiBCWSBjb21t
aXRfcmV2aXNpb24gTElNSVQgMicsIGFycmF5KCRyZXBvc2l0b3J5X2lkLCBEYXRhYmFzZTo6ZXNj
YXBlX2Zvcl9saWtlKCRyZXZpc2lvbl9wcmVmaXgpIC4gJyUnKSk7CisgICAgICAgICRjb2x1bW5f
bmFtZSA9ICdyZXZpc2lvbic7CisgICAgICAgIGlmICgkdGhpcy0+aXNfY29tbWl0X2lkZW50aWZp
ZXIoJHJldmlzaW9uX3ByZWZpeCkpCisgICAgICAgICAgICAkY29sdW1uX25hbWUgPSAnaWRlbnRp
Zmllcic7CisgICAgICAgIAorICAgICAgICAkcm93cyA9ICR0aGlzLT5kYi0+cXVlcnlfYW5kX2Zl
dGNoX2FsbCgnU0VMRUNUICogRlJPTSBjb21taXRzIFdIRVJFIGNvbW1pdF9yZXBvc2l0b3J5ID0g
JDEgQU5EIGNvbW1pdF8nLiRjb2x1bW5fbmFtZS4nIExJS0UgJDIgT1JERVIgQlkgY29tbWl0Xycu
JGNvbHVtbl9uYW1lLicgTElNSVQgMicsIGFycmF5KCRyZXBvc2l0b3J5X2lkLCBEYXRhYmFzZTo6
ZXNjYXBlX2Zvcl9saWtlKCRyZXZpc2lvbl9wcmVmaXgpIC4gJyUnKSk7CiAgICAgICAgIGlmIChj
b3VudCgkcm93cykgPT0gMCkKICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignVW5rbm93bkNv
bW1pdCcsIGFycmF5KCdyZXBvc2l0b3J5JyA9PiAkcmVwb3NpdG9yeV9pZCwgJ3JldmlzaW9uJyA9
PiAkcmV2aXNpb25fcHJlZml4KSk7CiAgICAgICAgIGlmIChjb3VudCgkcm93cykgPT0gMikgewpA
QCAtMjI0LDYgKzI0MCw3IEBAIGNsYXNzIENvbW1pdExvZ0ZldGNoZXIgewogICAgICAgICByZXR1
cm4gYXJyYXkoCiAgICAgICAgICAgICAnaWQnID0+ICRjb21taXRfcm93Wydjb21taXRfaWQnXSwK
ICAgICAgICAgICAgICdyZXZpc2lvbicgPT4gJGNvbW1pdF9yb3dbJ2NvbW1pdF9yZXZpc2lvbidd
LAorICAgICAgICAgICAgJ2lkZW50aWZpZXInID0+ICRjb21taXRfcm93Wydjb21taXRfaWRlbnRp
ZmllciddLAogICAgICAgICAgICAgJ3JlcG9zaXRvcnknID0+ICRjb21taXRfcm93Wydjb21taXRf
cmVwb3NpdG9yeSddLAogICAgICAgICAgICAgJ3ByZXZpb3VzQ29tbWl0JyA9PiAkY29tbWl0X3Jv
d1snY29tbWl0X3ByZXZpb3VzX2NvbW1pdCddLAogICAgICAgICAgICAgJ3RpbWUnID0+IERhdGFi
YXNlOjp0b19qc190aW1lKCRjb21taXRfcm93Wydjb21taXRfdGltZSddKSwKZGlmZiAtLWdpdCBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtdXBkYXRlci5w
aHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LXVwZGF0
ZXIucGhwCmluZGV4IDA4YzY4YmJlNjQxMGFmZjA2ZGI4NzU0OTkyYTQ4YzkzN2U3MGUzMmYuLjZh
ZjhmZDcxYjFmYjM4NTE2ZTUyYjcwYjJkMjI0MGNmNDg1MThmZjUgMTAwNjQ0Ci0tLSBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtdXBkYXRlci5waHAKKysr
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC11cGRhdGVy
LnBocApAQCAtNzQsNiArNzQsNyBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsKICAgICBwcml2YXRl
IGZ1bmN0aW9uICZjb25zdHJ1Y3RfdXBkYXRlX2xpc3QoJiRjb21taXRfaW5mb19saXN0LCAkc2hv
dWxkX2luc2VydCkKICAgICB7CiAgICAgICAgICR1cGRhdGVfbGlzdCA9IGFycmF5KCk7CisgICAg
ICAgICRjb21taXRfaWRlbnRpZmllcnMgPSBhcnJheSgpOwogCiAgICAgICAgIGZvcmVhY2ggKCRj
b21taXRfaW5mb19saXN0IGFzICYkY29tbWl0X2luZm8pIHsKICAgICAgICAgICAgIHNlbGY6OnZh
bGlkYXRlX2NvbW1pdHMoJGNvbW1pdF9pbmZvKTsKQEAgLTgxLDYgKzgyLDExIEBAIGNsYXNzIENv
bW1pdFVwZGF0ZXIgewogICAgICAgICAgICAgJGhhc191cGRhdGUgPSBjb3VudCgkY29tbWl0X2Rh
dGEpID4gMTsKIAogICAgICAgICAgICAgJHVwZGF0ZSA9IGFycmF5KCdjb21taXQnID0+ICYkY29t
bWl0X2RhdGEsICdyZXBvc2l0b3J5JyA9PiAmJGNvbW1pdF9pbmZvWydyZXBvc2l0b3J5J10pOwor
ICAgICAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJ2lkZW50aWZpZXInLCAkY29tbWl0X2lu
Zm8pKSB7CisgICAgICAgICAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJGNvbW1pdF9pbmZv
WydpZGVudGlmaWVyJ10sICRjb21taXRfaWRlbnRpZmllcnMpKQorICAgICAgICAgICAgICAgICAg
ICAkdGhpcy0+ZXhpdF93aXRoX2Vycm9yKCdEdXBsaWNhdGVkQ29tbWl0SWRlbnRpZmllcicsIGFy
cmF5KCdjb21taXQnID0+ICRjb21taXRfaW5mbykpOworICAgICAgICAgICAgICAgICRjb21taXRf
aWRlbnRpZmllcnNbJGNvbW1pdF9pbmZvWydpZGVudGlmaWVyJ11dID0gdHJ1ZTsKKyAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCdwcmV2aW91c0NvbW1pdCcs
ICRjb21taXRfaW5mbykpIHsKICAgICAgICAgICAgICAgICAkaGFzX3VwZGF0ZSA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgJHVwZGF0ZVsncHJldmlvdXNfY29tbWl0J10gPSAmJGNvbW1pdF9pbmZv
WydwcmV2aW91c0NvbW1pdCddOwpAQCAtMTQzLDYgKzE0OSw5IEBAIGNsYXNzIENvbW1pdFVwZGF0
ZXIgewogICAgICAgICAgICAgJGNvbW1pdF9kYXRhWyd0aW1lJ10gPSAkY29tbWl0X2luZm9bJ3Rp
bWUnXTsKICAgICAgICAgfQogCisgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCdpZGVudGlm
aWVyJywgJGNvbW1pdF9pbmZvKSkKKyAgICAgICAgICAgICRjb21taXRfZGF0YVsnaWRlbnRpZmll
ciddID0gJGNvbW1pdF9pbmZvWydpZGVudGlmaWVyJ107CisKICAgICAgICAgaWYgKCRzaG91bGRf
aW5zZXJ0KQogICAgICAgICAgICAgJGNvbW1pdF9kYXRhWydyZXBvcnRlZCddID0gdHJ1ZTsKIApk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29t
bWl0LWxvZy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2Nv
bW1pdC1sb2cuanMKaW5kZXggZTZkNGQ0NGFiYjU1NDEzNDZlMmY0YTlkNDQwMDlmNzlhNzgyOTAw
Yi4uMDdmMmUyN2I1OGJlODY1YjhiNjBjZGU2MjNjMTFjNDZjYmMxYzk0OSAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9n
LmpzCkBAIC0zOSw2ICszOSw3IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9i
amVjdCB7CiAgICAgdGVzdGFiaWxpdHkoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWyd0ZXN0YWJp
bGl0eSddOyB9CiAgICAgYXV0aG9yKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsnYXV0aG9yTmFt
ZSddOyB9CiAgICAgcmV2aXNpb24oKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydyZXZpc2lvbidd
OyB9CisgICAgaWRlbnRpZmllcigpIHsgcmV0dXJuIHRoaXMuX3Jhd0RhdGFbJ2lkZW50aWZpZXIn
XX0KICAgICBtZXNzYWdlKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsnbWVzc2FnZSddOyB9CiAg
ICAgdXJsKCkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeS51cmxGb3JSZXZpc2lvbih0aGlzLl9y
YXdEYXRhWydyZXZpc2lvbiddKTsgfQogICAgIG93bnNDb21taXRzKCkgeyByZXR1cm4gdGhpcy5f
cmF3RGF0YVsnb3duc0NvbW1pdHMnXTsgfQpAQCAtNTEsMTEgKzUyLDE1IEBAIGNsYXNzIENvbW1p
dExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgbGFiZWwoKQogICAgIHsKICAgICAg
ICAgY29uc3QgcmV2aXNpb24gPSB0aGlzLnJldmlzaW9uKCk7CisgICAgICAgIGNvbnN0IGlkZW50
aWZpZXIgPSB0aGlzLmlkZW50aWZpZXIoKTsKKyAgICAgICAgbGV0IGZvcm1hdHRlZF9yZXZpc2lv
biA9IHJldmlzaW9uOwogICAgICAgICBpZiAocGFyc2VJbnQocmV2aXNpb24pID09IHJldmlzaW9u
KSAvLyBlLmcuIHIxMjM0NQotICAgICAgICAgICAgcmV0dXJuICdyJyArIHJldmlzaW9uOworICAg
ICAgICAgICAgZm9ybWF0dGVkX3JldmlzaW9uID0gJ3InICsgcmV2aXNpb247CiAgICAgICAgIGlm
IChyZXZpc2lvbi5sZW5ndGggPT0gNDApIC8vIGUuZy4gZ2l0IGhhc2gKLSAgICAgICAgICAgIHJl
dHVybiByZXZpc2lvbi5zdWJzdHJpbmcoMCwgMTIpOwotICAgICAgICByZXR1cm4gcmV2aXNpb247
CisgICAgICAgICAgICBmb3JtYXR0ZWRfcmV2aXNpb24gPSByZXZpc2lvbi5zdWJzdHJpbmcoMCwg
MTIpOworICAgICAgICBpZiAoaWRlbnRpZmllcikKKyAgICAgICAgICAgIHJldHVybiBgJHtpZGVu
dGlmaWVyfSAoJHtmb3JtYXR0ZWRfcmV2aXNpb259KWA7CisgICAgICAgIHJldHVybiBmb3JtYXR0
ZWRfcmV2aXNpb247CiAgICAgfQogICAgIHRpdGxlKCkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9y
eS5uYW1lKCkgKyAnIGF0ICcgKyB0aGlzLmxhYmVsKCk7IH0KIApkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMK
aW5kZXggMjg1NjlmMDYzNzMwNGUzYTYyY2Y3NzAwOTIzOTNmN2YwZTczNjU5Ny4uMjkyNWUxNDI5
YjUyYTM3OGE3ZmE0YjJmMWU3YjcxODQyMTAzYzMwNiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcworKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzCkBA
IC0xNyw2ICsxNyw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCiAg
ICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OCIsCisgICAgICAgICAgICAgICAgImlk
ZW50aWZpZXIiOiAiMTg0Mjc2QG1haW4iLAogICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTct
MDEtMjBUMDI6NTI6MzQuNTc3WiIsCiAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6
ICJaYWxhbiBCdWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKICAgICAgICAg
ICAgICAgICAibWVzc2FnZSI6ICJhIG1lc3NhZ2UiLApAQCAtMjQsNiArMjUsNyBAQCBkZXNjcmli
ZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAogICAgICAgICAgICAgICAgICJyZXZpc2lv
biI6ICIyMTA5NDkiLAorICAgICAgICAgICAgICAgICJpZGVudGlmaWVyIjogIjE4NDI3N0BtYWlu
IiwKICAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjIzOjUwLjY0NVoiLAog
ICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ2hyaXMgRHVtZXoiLCAiYWNjb3Vu
dCI6ICJjZHVtZXpAYXBwbGUuY29tIn0sCiAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAic29t
ZSBtZXNzYWdlIiwKQEAgLTMyLDYgKzM0LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKICAg
ICAgICAgICAgICAgICAicHJldmlvdXNDb21taXQiOiAiMjEwOTQ5IiwKICAgICAgICAgICAgICAg
ICAicmV2aXNpb24iOiAiMjEwOTUwIiwKKyAgICAgICAgICAgICAgICAiaWRlbnRpZmllciI6ICIx
ODQyNzhAbWFpbiIsCiAgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMzo0OToz
Ny44ODdaIiwKICAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNvbW1pdCBRdWV1
ZSIsICJhY2NvdW50IjogImNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnIn0sCiAgICAgICAgICAgICAg
ICAgIm1lc3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdlIiwKQEAgLTQ2LDYgKzQ5LDcgQEAgZGVzY3Jp
YmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKICAgICAgICAgICAgICAgICAicmV2aXNp
b24iOiAiMjEwOTQiLAorICAgICAgICAgICAgICAgICJpZGVudGlmaWVyIjogIjE4NDI3MkBtYWlu
IiwKICAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAyOjUyOjM0LjU3N1oiLAog
ICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiWmFsYW4gQnVqdGFzIiwgImFjY291
bnQiOiAiemFsYW5AYXBwbGUuY29tIn0sCiAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYSBt
ZXNzYWdlIiwKQEAgLTUzLDYgKzU3LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAi
V2ViS2l0IiwKICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQ5IiwKKyAgICAgICAg
ICAgICAgICAiaWRlbnRpZmllciI6ICIxODQyNzdAbWFpbiIsCiAgICAgICAgICAgICAgICAgInRp
bWUiOiAiMjAxNy0wMS0yMFQwMzoyMzo1MC42NDVaIiwKICAgICAgICAgICAgICAgICAiYXV0aG9y
IjogeyJuYW1lIjogIkNocmlzIER1bWV6IiwgImFjY291bnQiOiAiY2R1bWV6QGFwcGxlLmNvbSJ9
LAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogInNvbWUgbWVzc2FnZSIsCkBAIC01MjQsNiAr
NTI5LDE5IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogCisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIGNvbW1p
dCB3aXRoIGNvbW1pdCBpZGVudGlmaWVyIiwgKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIGFk
ZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRzKS50aGVuKCgpID0+IHsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBv
cnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0cyk7CisgICAgICAgICAgICB9KS50aGVuKGZ1
bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT04oYC9hcGkvY29tbWl0cy9XZWJLaXQvJHtzdWJ2ZXJzaW9u
Q29tbWl0cy5jb21taXRzWzBdLmlkZW50aWZpZXJ9YCk7CisgICAgICAgICAgICB9KS50aGVuKGZ1
bmN0aW9uIChyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdC5jb21taXRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0Q29tbWl0
SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0LmNvbW1pdHNbMF0sIHN1YnZlcnNpb25Db21taXRz
LmNvbW1pdHNbMF0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCiAgICAgfSk7CiAK
ICAgICBkZXNjcmliZSgnL2FwaS9jb21taXRzLzxyZXBvc2l0b3J5Pi9vd25lZC1jb21taXRzP293
bmVyLXJldmlzaW9uPTxjb21taXQ+JywgKCkgPT4gewpAQCAtNzI3LDYgKzc0NSwzNyBAQCBkZXNj
cmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICB9KTsKIAorICAgICAgICBpdCgic2hvdWxkIHJldHVybiByZXBvcnRlZCBjb21taXRzIGlu
IHRoZSBzcGVjaWZpZWQgaWRlbnRpZmllciByYW5nZSIsICgpID0+IHsKKyAgICAgICAgICAgIGNv
bnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICAgICAgcmV0dXJuIFByb21p
c2UuYWxsKFsKKyAgICAgICAgICAgICAgICBkYi5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHsnaWQn
OiAxLCAnbmFtZSc6ICdXZWJLaXQnfSksCisgICAgICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21t
aXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk0OCcsICdpZGVudGlmaWVy
JzogJzE4NDI3NkBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMjo1MjozNC41NzdaJywgJ3Jl
cG9ydGVkJzogdHJ1ZX0pLAorICAgICAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0cycsIHsn
cmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6ICcyMTA5NDknLCAnaWRlbnRpZmllcic6ICcxODQy
NzdAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1WicsICdyZXBvcnRlZCc6
IHRydWV9KSwKKyAgICAgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRv
cnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTUwJywgJ2lkZW50aWZpZXInOiAnMTg0Mjc4QG1haW4n
LCAndGltZSc6ICcyMDE3LTAxLTIwVDAzOjQ5OjM3Ljg4N1onLCAncmVwb3J0ZWQnOiB0cnVlfSks
CisgICAgICAgICAgICBdKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRp
bmdSZXZpc2lvbj0xODQyNzZAbWFpbiZsYXN0UmV2aXNpb249MTg0Mjc4QG1haW4nKTsKKyAgICAg
ICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4geworICAgICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZGVlcFN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMik7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11b
MF0sIHsKKyAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDb21taXQ6IG51bGwsCisgICAgICAg
ICAgICAgICAgICAgIHJldmlzaW9uOiAnMjEwOTQ5JywKKyAgICAgICAgICAgICAgICAgICAgaWRl
bnRpZmllcjogJzE4NDI4OUBtYWluJywKKyAgICAgICAgICAgICAgICAgICAgdGltZTogJzIwMTct
MDEtMjBUMDM6MjM6NTAuNjQ1WicsCisgICAgICAgICAgICAgICAgICAgIGF1dGhvcjoge25hbWU6
IG51bGwsIGFjY291bnQ6IG51bGx9LAorICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBudWxs
LAorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2Ft
ZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzFdLCB7CisgICAgICAgICAgICAgICAg
ICAgIHByZXZpb3VzQ29tbWl0OiBudWxsLAorICAgICAgICAgICAgICAgICAgICByZXZpc2lvbjog
JzIxMDk1MCcsCisgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6ICcxODQyOTBAbWFpbics
CisgICAgICAgICAgICAgICAgICAgIHRpbWU6ICcyMDE3LTAxLTIwVDAzOjQ5OjM3Ljg4N1onLAor
ICAgICAgICAgICAgICAgICAgICBhdXRob3I6IHtuYW1lOiBudWxsLCBhY2NvdW50OiBudWxsfSwK
KyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogbnVsbCwKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKwogICAgICAgICBpdCgic2hvdWxkIG5vdCBp
bmNsdWRlIGEgcmV2aXNpb24gbm90IHdpdGhpbiB0aGUgc3BlY2lmaWVkIHJhbmdlIiwgKCkgPT4g
ewogICAgICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CiAgICAgICAg
ICAgICBjb25zdCByZW1vdGUgPSBUZXN0U2VydmVyLnJlbW90ZUFQSSgpOwpAQCAtNzUwLDYgKzc5
OSwyOSBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICB9KTsKIAorICAgICAgICBpdCgic2hvdWxkIG5vdCBpbmNsdWRlIGEg
cmV2aXNpb24gbm90IHdpdGhpbiB0aGUgc3BlY2lmaWVkIGNvbW1pdCBpZGVudGlmaWVyIHJhbmdl
IiwgKCkgPT4geworICAgICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7
CisgICAgICAgICAgICBjb25zdCByZW1vdGUgPSBUZXN0U2VydmVyLnJlbW90ZUFQSSgpOworICAg
ICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBkYi5pbnNlcnQo
J3JlcG9zaXRvcmllcycsIHsnaWQnOiAxLCAnbmFtZSc6ICdXZWJLaXQnfSksCisgICAgICAgICAg
ICAgICAgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzog
JzIxMDk0NycsICdpZGVudGlmaWVyJzogJzE4NDI3NUBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0y
MFQwMjozODo0NS40ODVaJywgJ3JlcG9ydGVkJzogZmFsc2V9KSwKKyAgICAgICAgICAgICAgICBk
Yi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTQ4
JywgJ2lkZW50aWZpZXInOiAnMTg0Mjc2QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIwVDAyOjUy
OjM0LjU3N1onLCAncmVwb3J0ZWQnOiBmYWxzZX0pLAorICAgICAgICAgICAgICAgIGRiLmluc2Vy
dCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6ICcyMTA5NDknLCAnaWRl
bnRpZmllcic6ICcxODQyNzdAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1
WicsICdyZXBvcnRlZCc6IGZhbHNlfSksCisgICAgICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21t
aXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk1MCcsICdpZGVudGlmaWVy
JzogJzE4NDI3OEBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMzo0OTozNy44ODdaJywgJ3Jl
cG9ydGVkJzogZmFsc2V9KSwKKyAgICAgICAgICAgIF0pLnRoZW4oKCkgPT4geworICAgICAgICAg
ICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CisgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3RlLnBv
c3RKU09OV2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0
cyk7CisgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICByZXR1cm4g
cmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvP3ByZWNlZGluZ1JldmlzaW9uPTE4
NDI3NUBtYWluJmxhc3RSZXZpc2lvbj0xODQyNzdAbWFpbicpOworICAgICAgICAgICAgfSkudGhl
bigocmVzdWx0KSA9PiB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRD
b21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lv
bkNvbW1pdHNbJ2NvbW1pdHMnXVswXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNT
YW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMV0sIHN1YnZlcnNpb25Db21taXRz
Wydjb21taXRzJ11bMV0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCiAgICAgfSk7
CiAKIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtY29tbWl0cy10ZXN0cy5qcwppbmRleCBiNGVlNzI2ZjM1
NTMwMmFiMThkNmM3MzZjYmI0MGMzMGM0YjE4NTliLi43N2M1Njc1NDM2ZTFkYjI3YTRmMDM4NzZh
NTgxN2JmMDhkNDM4MzkxIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL2FwaS1yZXBvcnQtY29tbWl0cy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtY29tbWl0cy10ZXN0cy5qcwpAQCAt
NzYsNiArNzYsMjkgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0
PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIF0KICAgICB9CiAKKyAgICBjb25zdCBkdXBs
aWNhdGVkQ29tbWl0SWRlbnRpZmllckNvbW1pdHMgPSB7CisgICAgICAgICJzbGF2ZU5hbWUiOiAi
c29tZVNsYXZlIiwKKyAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAg
ICAgICAgImNvbW1pdHMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9z
aXRvcnkiOiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQ4IiwK
KyAgICAgICAgICAgICAgICAiaWRlbnRpZmllciI6ICIxODQyNzZAbWFpbiIsCisgICAgICAgICAg
ICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMjo1MjozNC41NzdaIiwKKyAgICAgICAgICAgICAg
ICAiYXV0aG9yIjogeyJuYW1lIjogIlphbGFuIEJ1anRhcyIsICJhY2NvdW50IjogInphbGFuQGFw
cGxlLmNvbSJ9LAorICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImEgbWVzc2FnZSIsCisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5Ijog
IldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OSIsCisgICAgICAg
ICAgICAgICAgImlkZW50aWZpZXIiOiAiMTg0Mjc2QG1haW4iLAorICAgICAgICAgICAgICAgICJ0
aW1lIjogIjIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1WiIsCisgICAgICAgICAgICAgICAgImF1dGhv
ciI6IHsibmFtZSI6ICJDaHJpcyBEdW1leiIsICJhY2NvdW50IjogImNkdW1lekBhcHBsZS5jb20i
fSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJzb21lIG1lc3NhZ2UiLAorICAgICAgICAg
ICAgfSwKKyAgICAgICAgXQorICAgIH0KKwogICAgIGl0KCJzaG91bGQgcmVqZWN0IGVycm9yIHdo
ZW4gc2xhdmUgbmFtZSBpcyBtaXNzaW5nIiwgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCB7fSkudGhl
bigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdNaXNzaW5nU2xhdmVOYW1lJyk7CkBAIC0xNDUsNiArMTY4LDE3IEBAIGRl
c2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24g
KCkgewogICAgICAgICB9KTsKICAgICB9KTsKIAorICAgIGl0KCJzaG91bGQgcmVqZWN0IHdpdGgg
ZHVwbGljYXRlZCBjb21taXQgaWRlbnRpZmllciIsICgpID0+IHsKKyAgICAgICAgcmV0dXJuIGFk
ZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXQpLnRoZW4oKCkgPT4geworICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNv
bW1pdHMvJywgZHVwbGljYXRlZENvbW1pdElkZW50aWZpZXJDb21taXRzKTsKKyAgICAgICAgfSku
dGhlbigocmVzcG9uc2UpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdEdXBsaWNhdGVkQ29tbWl0SWRlbnRpZmllcicpOworICAgICAgICAg
ICAgcmV0dXJuIFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsKKyAg
ICAgICAgfSkudGhlbigocm93cykgPT4geworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJvd3MubGVuZ3RoLCAwKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKICAgICBpdCgic2hvdWxk
IHN0b3JlIHR3byBjb21taXRzIGZyb20gYSB2YWxpZCBzbGF2ZSIsICgpID0+IHsKICAgICAgICAg
cmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Ud29Db21taXRzKS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcv
YXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Ud29Db21taXRzKTsKZGlmZiAtLWdpdCBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2NvbW1pdC1sb2ctdGVzdHMuanMg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9jb21taXQtbG9nLXRlc3RzLmpz
CmluZGV4IDcwYWJkZWJmODFlOGFiNjBkMWQxODE2M2UzOTkxODc5Y2I0NzM4YjYuLjQ0YzE2N2I0
ZWQzN2IwYTQyNWEyZThmN2NiY2FhNmRlN2UzZDc2NzUgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2NvbW1pdC1sb2ctdGVzdHMuanMKKysrIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qcwpAQCAtMTcs
NiArMTcsMTcgQEAgZnVuY3Rpb24gd2Via2l0Q29tbWl0KCkKICAgICB9KTsKIH0KIAorZnVuY3Rp
b24gd2Via2l0Q29tbWl0V2l0aElkZW50aWZpZXIoKSAKK3sKKyAgICByZXR1cm4gbmV3IENvbW1p
dExvZygxLCB7CisgICAgICAgIGlkOiAxLAorICAgICAgICByZXBvc2l0b3J5OiBNb2NrTW9kZWxz
LndlYmtpdCwKKyAgICAgICAgcmV2aXNpb246ICcyMDA4MDUnLAorICAgICAgICBpZGVudGlmaWVy
OiAnMTg0Mjc2QG1haW4nLAorICAgICAgICB0aW1lOiArKG5ldyBEYXRlKCcyMDE2LTA1LTEzVDAw
OjU1OjU3Ljg0MTM0NFonKSksCisgICAgfSk7Cit9CisKIGZ1bmN0aW9uIG9sZFdlYktpdENvbW1p
dCgpCiB7CiAgICAgcmV0dXJuIG5ldyBDb21taXRMb2coMiwgewpAQCAtMzcsNiArNDgsMTcgQEAg
ZnVuY3Rpb24gZ2l0V2ViS2l0Q29tbWl0KCkKICAgICB9KTsKIH0KIAorZnVuY3Rpb24gZ2l0V2Vi
S2l0Q29tbWl0V2l0aElkZW50aWZpZXIoKQoreworICAgIHJldHVybiBuZXcgQ29tbWl0TG9nKDMs
IHsKKyAgICAgICAgaWQ6IDMsCisgICAgICAgIHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMud2Via2l0
LAorICAgICAgICByZXZpc2lvbjogJzZmOGIwZGJiZGE5NWE0NDA1MDNiODhkYjFkZDAzZGFkM2E3
YjA3ZmInLAorICAgICAgICBpZGVudGlmaWVyOiAnMTg0Mjc2QG1haW4nLAorICAgICAgICB0aW1l
OiArKG5ldyBEYXRlKCcyMDE2LTA1LTEzVDAwOjU1OjU3Ljg0MTM0NFonKSksCisgICAgfSk7Cit9
CisKIGZ1bmN0aW9uIG9sZEdpdFdlYktpdENvbW1pdCgpCiB7CiAgICAgcmV0dXJuIG5ldyBDb21t
aXRMb2coNCwgewpAQCAtMTQ3LDEwICsxNjksMTggQEAgZGVzY3JpYmUoJ0NvbW1pdExvZycsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRDb21taXQoKS5sYWJl
bCgpLCAncjIwMDgwNScpOwogICAgICAgICB9KTsKIAorICAgICAgICBpdCgnc2hvdWxkIHByZWZp
eCBjb21taXQgaWRlbnRpZmllciB3aXRoIHN2biByICsgcmV2aXNpb24nLCAoKSA9PiB7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Q29tbWl0V2l0aElkZW50aWZpZXIoKS5s
YWJlbCgpLCAnMTg0Mjc2QG1haW4gKHIyMDA4MDUpJykKKyAgICAgICAgfSk7CisKICAgICAgICAg
aXQoJ3Nob3VsZCB0cnVuY2F0ZSBhIEdpdCBoYXNoIGF0IDh0aCBjaGFyYWN0ZXInLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ2l0V2ViS2l0Q29tbWl0KCkubGFiZWwo
KSwgJzZmOGIwZGJiZGE5NScpOwogICAgICAgICB9KTsKIAorICAgICAgICBpdCgnc2hvdWxkIHBy
ZWZpeCBjb21taXQgaWRlbnRpZmllciB3aXRoIGdpdCBoYXNoIHRydW5jYXRlZCcsICgpID0+IHsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChnaXRXZWJLaXRDb21taXRXaXRoSWRlbnRp
ZmllcigpLmxhYmVsKCksICcxODQyNzZAbWFpbiAoNmY4YjBkYmJkYTk1KScpCisgICAgICAgIH0p
OworCiAgICAgICAgIGl0KCdzaG91bGQgbm90IG1vZGlmeSBPUyBYIHZlcnNpb24nLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0KCkubGFiZWwoKSwgJzEw
LjExLjQgMTVFNjUnKTsKICAgICAgICAgfSk7CkBAIC0xNjEsMTAgKzE5MSwxOCBAQCBkZXNjcmli
ZSgnQ29tbWl0TG9nJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdl
YmtpdENvbW1pdCgpLnRpdGxlKCksICdXZWJLaXQgYXQgcjIwMDgwNScpOwogICAgICAgICB9KTsK
IAorICAgICAgICBpdCgnc2hvdWxkIHByZWZpeCBjb21taXQgaWRlbnRpZmllcicsICgpID0+IHsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRDb21taXRXaXRoSWRlbnRpZmll
cigpLnRpdGxlKCksICdXZWJLaXQgYXQgMTg0Mjc2QG1haW4gKHIyMDA4MDUpJyk7CisgICAgICAg
IH0pOworCiAgICAgICAgIGl0KCdzaG91bGQgdHJ1bmNhdGUgYSBHaXQgaGFzaCBhdCA4dGggY2hh
cmFjdGVyJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdpdFdlYktp
dENvbW1pdCgpLnRpdGxlKCksICdXZWJLaXQgYXQgNmY4YjBkYmJkYTk1Jyk7CiAgICAgICAgIH0p
OwogCisgICAgICAgIGl0KCdzaG91bGQgcHJlZml4IGNvbW1pdCBpZGVudGlmaWVyIHdpdGggZ2l0
IGhhc2ggdHJ1bmNhdGVkJywgICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChnaXRXZWJLaXRDb21taXRXaXRoSWRlbnRpZmllcigpLnRpdGxlKCksICdXZWJLaXQgYXQgMTg0
Mjc2QG1haW4gKDZmOGIwZGJiZGE5NSknKTsKKyAgICAgICAgfSk7CisKICAgICAgICAgaXQoJ3No
b3VsZCBub3QgbW9kaWZ5IE9TIFggdmVyc2lvbicsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvc3hDb21taXQoKS50aXRsZSgpLCAnT1MgWCBhdCAxMC4xMS40IDE1RTY1
Jyk7CiAgICAgICAgIH0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422891</attachid>
            <date>2021-03-10 17:58:29 -0800</date>
            <delta_ts>2021-03-11 16:20:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222897-20210310175828.patch</filename>
            <type>text/plain</type>
            <size>44282</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MDYxCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1YTg1MWZkODI1NTA1YjQzMGFkNzg3ODZhNTQ1NzI0MzUwNTg0Zjc1Li43Nzg5OTgxMTll
NjE1NzYxYjRjM2NhMjRiOTQ0YWI3OTM3MTg2YmQ5IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMS0wMy0xMCAgWmhpZmVpIEZhbmcgIDx6aGlmZWlf
ZmFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGNvbW1pdCByZXZpc2lvbiBsYWJlbCBzdXBw
b3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI4
OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
bmV3IGNvbHVtbiByZXZpc2lvbiBsYWJlbAorICAgICAgICBNYWtlIGFsbCBjb21taXQgYXBpIGFs
c28gY2FuIHdvcmsgd2l0aCByZXZpc2lvbiBsYWJlbAorICAgICAgICBDaGFuZ2UgdGhlIGNvbW1p
dCBsYWJlbCBkaXNwbGF5IHdpdGggY29tbWl0IHJldmlzaW9uIGxhYmVsCisKKyAgICAgICAgKiBi
cm93c2VyLXRlc3RzL2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzOiBGaXggYSBmYWlsZWQgdGVz
dCBjYXNlLCBXaGVuIHJlcXVlc3QgdGhlIHJlbW90ZSBhcGksIHRoZSBjb21wb25lbnQgd2lsbCBz
aG93IHRoZSBzcGlubmVyCisgICAgICAgICogaW5pdC1kYXRhYmFzZS5zcWw6IEFkZCBuZXcgY29s
dW1uIHJldmlzaW9uX2xhYmVsCisgICAgICAgICogbWlncmF0ZS1kYXRhYmFzZS5zcWw6IEFkZCBu
ZXcgY29sdW1uIHJldmlzaW9uX2xhYmVsCisgICAgICAgICogcHVibGljL2luY2x1ZGUvY29tbWl0
LWxvZy1mZXRjaGVyLnBocDogTWFrZSBhcGkgdGhhdCB3b3JrcyB3aXRoIHJldmlzaW9uIHNob3Vs
ZCB3b3JrIHdpdGggcmV2aXNpb24gbGFiZWwKKyAgICAgICAgKiBwdWJsaWMvaW5jbHVkZS9jb21t
aXQtdXBkYXRlci5waHA6IERpdHRvLgorICAgICAgICAqIHB1YmxpYy9pbmNsdWRlL3JlcG9ydC1w
cm9jZXNzb3IucGhwOiBNYWtlIHRoZSBwcm9jZXNzb3IgY2FuIGFsc28gaW5zZXJ0IHJldmlzaW9u
X2xhYmVsCisgICAgICAgICogcHVibGljL3YzL21vZGVscy9jb21taXQtbG9nLmpzOgorICAgICAg
ICAoQ29tbWl0TG9nLnByb3RvdHlwZS51cGRhdGVTaW5nbGV0b24pOgorICAgICAgICAoQ29tbWl0
TG9nLnByb3RvdHlwZS5yZXZpc2lvbkxhYmVsKToKKyAgICAgICAgKENvbW1pdExvZy5wcm90b3R5
cGUubGFiZWwpOiBNYWtlIHRoZSBsYWJlbCBpbmNsdWRlIHJldmlzaW9uIGxhYmVsIGFuZCByZXZp
c2lvbgorICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS5kaWZmKTogTWFrZSB0aGUgZGlmZiBs
YWJlbCBpbmNsdWRlIHJldmlzaW9uIGxhYmVsIGFuZCByZXZpc2lvbgorICAgICAgICAqIHNlcnZl
ci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qczoKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBp
LXJlcG9ydC1jb21taXRzLXRlc3RzLmpzOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktcmVw
b3J0LXRlc3RzLmpzOgorICAgICAgICAocmVwb3J0V2l0aFJldmlzaW9uTGFiZWxDb21taXQpOgor
ICAgICAgICAqIHVuaXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qczoKKwogMjAyMS0wMy0wNiAg
Unlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBbcGVyZiBkYXNoYm9h
cmRdIE1vZGVybml6ZSBUaW1lU2VyaWVzIGFuZCBUaW1lU2VyaWVzVmlldwpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvY29tbWl0LWxvZy12aWV3ZXIt
dGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQt
bG9nLXZpZXdlci10ZXN0cy5qcwppbmRleCBkYmM0Y2ZjZDliYzIxNGI3MDhlZTE5OGYxZWE2NjVm
MjI0MjI4NTYwLi5lMWRjOWZlNDkwM2QzMzAyZGYxZDAyMmI0MWU2MDk1YTMzNzFjMDE5IDEwMDY0
NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9n
LXZpZXdlci10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10
ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcwpAQCAtNTUsNiArNTUsMTkgQEAgZGVzY3Jp
YmUoJ0NvbW1pdExvZ1ZpZXdlcicsICgpID0+IHsKICAgICAgICAgIm1lc3NhZ2UiOiAiYW5vdGhl
ciBtZXNzYWdlIiwKICAgICB9OwogCisgICAgY29uc3Qgd2Via2l0Q29tbWl0MjEwOTUwV2l0aFJl
dmlzaW9uTGFiZWwgPSB7CisgICAgICAgICJpZCI6ICIxODUzMzgiLAorICAgICAgICAicmV2aXNp
b24iOiAiMjEwOTUwIiwKKyAgICAgICAgInJldmlzaW9uTGFiZWwiOiAiMTg0Mjc4QG1haW4iLAor
ICAgICAgICAicmVwb3NpdG9yeSI6IDEsCisgICAgICAgICJwcmV2aW91c0NvbW1pdCI6IG51bGws
CisgICAgICAgICJvd25zQ29tbWl0cyI6IGZhbHNlLAorICAgICAgICAidGltZSI6ICtuZXcgRGF0
ZSgiMjAxNy0wMS0yMFQwMzo0OTozNy44ODdaIiksCisgICAgICAgICJhdXRob3JOYW1lIjogIkNv
bW1pdCBRdWV1ZSIsCisgICAgICAgICJhdXRob3JFbWFpbCI6ICJjb21taXQtcXVldWVAd2Via2l0
Lm9yZyIsCisgICAgICAgICJtZXNzYWdlIjogImFub3RoZXIgbWVzc2FnZSIsCisgICAgfTsKKwog
ICAgIGl0KCdzaG91bGQgaW5pdGlhbGx5IGJlIGVtcHR5IHdpdGggbm8gc3Bpbm5lcicsICgpID0+
IHsKICAgICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBCcm93c2luZ0NvbnRleHQoKTsKICAgICAg
ICAgcmV0dXJuIGltcG9ydENvbW1pdExvZ1ZpZXdlcihjb250ZXh0KS50aGVuKChDb21taXRMb2dW
aWV3ZXIpID0+IHsKQEAgLTEzMSw4ICsxNDQsOCBAQCBkZXNjcmliZSgnQ29tbWl0TG9nVmlld2Vy
JywgKCkgPT4gewogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JD
b21wb25lbnRzVG9SZW5kZXIoY29udGV4dCk7Ci0KLSAgICAgICAgICAgIGV4cGVjdCh2aWV3ZXIu
Y29udGVudCgnc3Bpbm5lci1jb250YWluZXInKS5vZmZzZXRIZWlnaHQpLnRvLmJlKDApOworICAg
ICAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdzcGlubmVyLWNvbnRhaW5lcicpLm9mZnNl
dEhlaWdodCkubm90LnRvLmJlKDApOworICAgICAgICAgICAgYXdhaXQgd2FpdEZvckNvbXBvbmVu
dHNUb1JlbmRlcihjb250ZXh0KTsKICAgICAgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgn
Y29tbWl0cy1saXN0JykubWF0Y2hlcygnOmVtcHR5JykpLnRvLmJlKGZhbHNlKTsKICAgICAgICAg
ICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnY29tbWl0cy1saXN0JykudGV4dENvbnRlbnQpLnRv
LmNvbnRhaW4oJ3IyMTA5NDknKTsKICAgICAgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgn
Y29tbWl0cy1saXN0JykudGV4dENvbnRlbnQpLnRvLmNvbnRhaW4oJ0NocmlzIER1bWV6Jyk7CkBA
IC0xNDQsNCArMTU3LDQ4IEBAIGRlc2NyaWJlKCdDb21taXRMb2dWaWV3ZXInLCAoKSA9PiB7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCisgICAgaXQoJ3Nob3VsZCBzaG93IHJldmlzaW9uIGxhYmVs
JywgKCkgPT4geworICAgICAgICBjb25zdCBjb250ZXh0ID0gbmV3IEJyb3dzaW5nQ29udGV4dCgp
OworICAgICAgICByZXR1cm4gaW1wb3J0Q29tbWl0TG9nVmlld2VyKGNvbnRleHQpLnRoZW4oYXN5
bmMgKENvbW1pdExvZ1ZpZXdlcikgPT4geworICAgICAgICAgICAgY29uc3QgUmVwb3NpdG9yeSA9
IGNvbnRleHQuc3ltYm9scy5SZXBvc2l0b3J5OworICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMg
PSBjb250ZXh0LnN5bWJvbHMuUmVtb3RlQVBJLnJlcXVlc3RzOworICAgICAgICAgICAgY29uc3Qg
dmlld2VyID0gbmV3IENvbW1pdExvZ1ZpZXdlcjsKKyAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9
IG5ldyBSZXBvc2l0b3J5KDEsIHtuYW1lOiAnV2ViS2l0J30pOworICAgICAgICAgICAgY29udGV4
dC5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZXdlci5lbGVtZW50KCkpOworCisgICAgICAg
ICAgICB2aWV3ZXIuZW5xdWV1ZVRvUmVuZGVyKCk7CisgICAgICAgICAgICBhd2FpdCB3YWl0Rm9y
Q29tcG9uZW50c1RvUmVuZGVyKGNvbnRleHQpOworCisgICAgICAgICAgICB2aWV3ZXIudmlldyh3
ZWJraXQsICcyMTA5NDgnLCAnMjEwOTUwJyk7CisgICAgICAgICAgICBhd2FpdCB3YWl0Rm9yQ29t
cG9uZW50c1RvUmVuZGVyKGNvbnRleHQpOworICAgICAgICAgICAgZXhwZWN0KHZpZXdlci5jb250
ZW50KCdzcGlubmVyLWNvbnRhaW5lcicpLm9mZnNldEhlaWdodCkudG8ubm90LmJlKDApOworICAg
ICAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxpc3QnKS5tYXRjaGVzKCc6
ZW1wdHknKSkudG8uYmUodHJ1ZSk7CisgICAgICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQo
J3JlcG9zaXRvcnktbmFtZScpLm1hdGNoZXMoJzplbXB0eScpKS50by5iZShmYWxzZSk7CisgICAg
ICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ3JlcG9zaXRvcnktbmFtZScpLnRleHRDb250
ZW50KS50by5jb250YWluKCdXZWJLaXQnKTsKKyAgICAgICAgICAgIGV4cGVjdChyZXF1ZXN0cy5s
ZW5ndGgpLnRvLmJlKDIpOworICAgICAgICAgICAgZXhwZWN0KHJlcXVlc3RzWzBdLnVybCkudG8u
YmUoJy9hcGkvY29tbWl0cy8xLz9wcmVjZWRpbmdSZXZpc2lvbj0yMTA5NDgmbGFzdFJldmlzaW9u
PTIxMDk1MCcpOworICAgICAgICAgICAgZXhwZWN0KHJlcXVlc3RzWzFdLnVybCkudG8uYmUoJy9h
cGkvY29tbWl0cy8xLzIxMDk0OCcpOworICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZSh7
CisgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyIsCisgICAgICAgICAgICAgICAgImNvbW1p
dHMiOiBbd2Via2l0Q29tbWl0MjEwOTQ5LCB3ZWJraXRDb21taXQyMTA5NTBXaXRoUmV2aXNpb25M
YWJlbF0sCisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2
ZSh7CisgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyIsCisgICAgICAgICAgICAgICAgImNv
bW1pdHMiOiBbd2Via2l0Q29tbWl0MjEwOTQ4XSwKKyAgICAgICAgICAgIH0pOworCisgICAgICAg
ICAgICBhd2FpdCB3YWl0Rm9yQ29tcG9uZW50c1RvUmVuZGVyKGNvbnRleHQpOworICAgICAgICAg
ICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdzcGlubmVyLWNvbnRhaW5lcicpLm9mZnNldEhlaWdo
dCkudG8ubm90LmJlKDApOworICAgICAgICAgICAgYXdhaXQgd2FpdEZvckNvbXBvbmVudHNUb1Jl
bmRlcihjb250ZXh0KTsKKyAgICAgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnc3Bpbm5l
ci1jb250YWluZXInKS5vZmZzZXRIZWlnaHQpLnRvLmJlKDApOworICAgICAgICAgICAgZXhwZWN0
KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxpc3QnKS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUo
ZmFsc2UpOworICAgICAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxpc3Qn
KS50ZXh0Q29udGVudCkudG8uY29udGFpbignMTg0Mjc4QG1haW4gKHIyMTA5NTApJyk7CisgICAg
ICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLnRleHRDb250ZW50
KS50by5jb250YWluKCdDb21taXQgUXVldWUnKTsKKyAgICAgICAgICAgIGV4cGVjdCh2aWV3ZXIu
Y29udGVudCgncmVwb3NpdG9yeS1uYW1lJykubWF0Y2hlcygnOmVtcHR5JykpLnRvLmJlKGZhbHNl
KTsKKyAgICAgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgncmVwb3NpdG9yeS1uYW1lJyku
dGV4dENvbnRlbnQpLnRvLmNvbnRhaW4oJ1dlYktpdCcpOworICAgICAgICAgICAgZXhwZWN0KHZp
ZXdlci5jb250ZW50KCdjb21taXRzLWxpc3QnKS5xdWVyeVNlbGVjdG9yKCdhJykpLnRvLmJlKG51
bGwpOworICAgICAgICB9KTsKKyAgICB9KTsKKwogfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvaW5pdC1kYXRhYmFzZS5zcWwKaW5kZXggN2ZmYzg5YWQ4MmM3NjEwNDFkMWE1NTZlODNmN2M5
Njc4YTMyZmFjMS4uZDc1NDcxMjZjZmVkZTAwMzc5NjFkY2JjZjg2NzU1Yjc3YTNkNzliMSAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCisrKyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbApAQCAtMTAyLDYgKzEw
Miw3IEBAIENSRUFURSBUQUJMRSBjb21taXRzICgKICAgICBjb21taXRfaWQgc2VyaWFsIFBSSU1B
UlkgS0VZLAogICAgIGNvbW1pdF9yZXBvc2l0b3J5IGludGVnZXIgTk9UIE5VTEwgUkVGRVJFTkNF
UyByZXBvc2l0b3JpZXMgT04gREVMRVRFIENBU0NBREUsCiAgICAgY29tbWl0X3JldmlzaW9uIHZh
cmNoYXIoNjQpIE5PVCBOVUxMLAorICAgIGNvbW1pdF9yZXZpc2lvbl9sYWJlbCB2YXJjaGFyKDY0
KSBERUZBVUxUIE5VTEwsCiAgICAgY29tbWl0X3ByZXZpb3VzX2NvbW1pdCBpbnRlZ2VyIFJFRkVS
RU5DRVMgY29tbWl0cyBPTiBERUxFVEUgQ0FTQ0FERSwKICAgICBjb21taXRfdGltZSB0aW1lc3Rh
bXAsCiAgICAgY29tbWl0X29yZGVyIGludGVnZXIsCkBAIC0xMDksNyArMTEwLDggQEAgQ1JFQVRF
IFRBQkxFIGNvbW1pdHMgKAogICAgIGNvbW1pdF9tZXNzYWdlIHRleHQsCiAgICAgY29tbWl0X3Jl
cG9ydGVkIGJvb2xlYW4gTk9UIE5VTEwgREVGQVVMVCBGQUxTRSwKICAgICBjb21taXRfdGVzdGFi
aWxpdHkgdmFyY2hhcigxMjgpIERFRkFVTFQgTlVMTCwKLSAgICBDT05TVFJBSU5UIGNvbW1pdF9p
bl9yZXBvc2l0b3J5X211c3RfYmVfdW5pcXVlIFVOSVFVRShjb21taXRfcmVwb3NpdG9yeSwgY29t
bWl0X3JldmlzaW9uKSk7CisgICAgQ09OU1RSQUlOVCBjb21taXRfaW5fcmVwb3NpdG9yeV9tdXN0
X2JlX3VuaXF1ZSBVTklRVUUoY29tbWl0X3JlcG9zaXRvcnksIGNvbW1pdF9yZXZpc2lvbiksCisg
ICAgQ09OU1RSQUlOVCBjb21taXRfcmV2aXNpb25fbGFiZWxfaW5fcmVwb3NpdG9yeV9tdXN0X2Jl
X3VuaXF1ZSBVTklRVUUoY29tbWl0X3JlcG9zaXRvcnksIGNvbW1pdF9yZXZpc2lvbl9sYWJlbCkp
OwogQ1JFQVRFIElOREVYIGNvbW1pdF90aW1lX2luZGV4IE9OIGNvbW1pdHMoY29tbWl0X3RpbWUp
OwogQ1JFQVRFIElOREVYIGNvbW1pdF9vcmRlcl9pbmRleCBPTiBjb21taXRzKGNvbW1pdF9vcmRl
cik7CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9taWdyYXRlLWRhdGFi
YXNlLnNxbCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbApp
bmRleCA0OWJkMjQ5ZDJhNjg1Nzc2NDQ5ZDM2ZTgwNTI2OGZjYzRiODc3YWNhLi5hZGJhNDA2Y2Zk
NGJmNWRkZGUxM2I4YTEzOGY5YTk3NDc2N2VhZTUyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvbWlncmF0ZS1kYXRhYmFzZS5zcWwKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL21pZ3JhdGUtZGF0YWJhc2Uuc3FsCkBAIC0zLDYgKzMsOSBAQCBETyAkJAogQkVHSU4K
IEFMVEVSIFRBQkxFIGJ1aWxkX3JlcXVlc3RzIEFERCBDT0xVTU4gSUYgTk9UIEVYSVNUUyByZXF1
ZXN0X3N0YXR1c19kZXNjcmlwdGlvbiB2YXJjaGFyKDEwMjQpIERFRkFVTFQgTlVMTDsKIEFMVEVS
IFRBQkxFIHBsYXRmb3JtcyBBREQgQ09MVU1OICBJRiBOT1QgRVhJU1RTIHBsYXRmb3JtX2dyb3Vw
IGludGVnZXIgUkVGRVJFTkNFUyBwbGF0Zm9ybV9ncm91cHMgREVGQVVMVCBOVUxMOworQUxURVIg
VEFCTEUgY29tbWl0cyBBREQgQ09MVU1OIElGIE5PVCBFWElTVFMgY29tbWl0X3JldmlzaW9uX2xh
YmVsIHZhcmNoYXIoNjQpIERFRkFVTFQgTlVMTDsKK0FMVEVSIFRBQkxFIGNvbW1pdHMgRFJPUCBD
T05TVFJBSU5UIGNvbW1pdF9yZXZpc2lvbl9sYWJlbF9pbl9yZXBvc2l0b3J5X211c3RfYmVfdW5p
cXVlOworQUxURVIgVEFCTEUgY29tbWl0cyBBREQgQ09OU1RSQUlOVCBjb21taXRfcmV2aXNpb25f
bGFiZWxfaW5fcmVwb3NpdG9yeV9tdXN0X2JlX3VuaXF1ZSBVTklRVUUoY29tbWl0X3JlcG9zaXRv
cnksIGNvbW1pdF9yZXZpc2lvbl9sYWJlbCk7CiAKIENSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RT
IHBsYXRmb3JtX2dyb3VwcyAoCiAgICAgcGxhdGZvcm1ncm91cF9pZCBzZXJpYWwgUFJJTUFSWSBL
RVksCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUv
Y29tbWl0LWxvZy1mZXRjaGVyLnBocCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
aW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwCmluZGV4IDZlMGJlY2QwYmM4MTY0YzA0MmZk
M2ZiMmYzOTk4YzQxNTRmZWIwZTEuLmQ5OGYxYzM3NjRmNzBjYzE1Yjc5MTk3MjdhYWQxMThlMDc4
ZDA0YjggMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVk
ZS9jb21taXQtbG9nLWZldGNoZXIucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwCkBAIC04LDE0ICs4LDE2IEBAIGNs
YXNzIENvbW1pdExvZ0ZldGNoZXIgewogCiAgICAgc3RhdGljIGZ1bmN0aW9uIGZpbmRfY29tbWl0
X2lkX2J5X3JldmlzaW9uKCRkYiwgJHJlcG9zaXRvcnlfaWQsICRyZXZpc2lvbikKICAgICB7Ci0g
ICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUIGNv
bW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkgPSAkMSBBTkQgY29t
bWl0X3JldmlzaW9uID0gJDInLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uKSk7Cisg
ICAgICAgICRjb2x1bW5fbmFtZSA9IENvbW1pdExvZ0ZldGNoZXI6OmlzX2NvbW1pdF9yZXZpc2lv
bl9sYWJlbCgkcmV2aXNpb24pID8gJ2NvbW1pdF9yZXZpc2lvbl9sYWJlbCcgOiAnY29tbWl0X3Jl
dmlzaW9uJzsKKyAgICAgICAgCisgICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5k
X2ZldGNoX2FsbCgnU0VMRUNUIGNvbW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3Jl
cG9zaXRvcnkgPSAkMSBBTkQgJyAuICRjb2x1bW5fbmFtZSAuICcgPSAkMicsIGFycmF5KCRyZXBv
c2l0b3J5X2lkLCAkcmV2aXNpb24pKTsKICAgICAgICAgaWYgKCRjb21taXRfcm93cykKICAgICAg
ICAgICAgIHJldHVybiAkY29tbWl0X3Jvd3NbMF1bJ2NvbW1pdF9pZCddOwogCiAgICAgICAgIGlm
ICghY3R5cGVfYWxudW0oJHJldmlzaW9uKSkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogCi0g
ICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUIGNv
bW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkgPSAkMSBBTkQgY29t
bWl0X3JldmlzaW9uIExJS0UgJDIgTElNSVQgMicsIGFycmF5KCRyZXBvc2l0b3J5X2lkLCBEYXRh
YmFzZTo6ZXNjYXBlX2Zvcl9saWtlKCRyZXZpc2lvbikgLiAnJScpKTsKKyAgICAgICAgJGNvbW1p
dF9yb3dzID0gJGRiLT5xdWVyeV9hbmRfZmV0Y2hfYWxsKCdTRUxFQ1QgY29tbWl0X2lkIEZST00g
Y29tbWl0cyBXSEVSRSBjb21taXRfcmVwb3NpdG9yeSA9ICQxIEFORCAnIC4gJGNvbHVtbl9uYW1l
IC4gJyBMSUtFICQyIExJTUlUIDInLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0YWJhc2U6OmVz
Y2FwZV9mb3JfbGlrZSgkcmV2aXNpb24pIC4gJyUnKSk7CiAgICAgICAgIGlmICghJGNvbW1pdF9y
b3dzKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIGlmIChjb3VudCgkY29tbWl0
X3Jvd3MpID4gMSkKQEAgLTU1LDYgKzU3LDcgQEAgY2xhc3MgQ29tbWl0TG9nRmV0Y2hlciB7CiAg
ICAgewogICAgICAgICAkc3RhdGVtZW50cyA9ICdTRUxFQ1QgY29tbWl0X2lkIGFzICJpZCIsCiAg
ICAgICAgICAgICBjb21taXRfcmV2aXNpb24gYXMgInJldmlzaW9uIiwKKyAgICAgICAgICAgIGNv
bW1pdF9yZXZpc2lvbl9sYWJlbCBhcyAicmV2aXNpb25MYWJlbCIsCiAgICAgICAgICAgICBjb21t
aXRfcHJldmlvdXNfY29tbWl0IGFzICJwcmV2aW91c0NvbW1pdCIsCiAgICAgICAgICAgICBjb21t
aXRfdGltZSBhcyAidGltZSIsCiAgICAgICAgICAgICBjb21taXR0ZXJfbmFtZSBhcyAiYXV0aG9y
TmFtZSIsCkBAIC0xOTIsOCArMTk1LDEzIEBAIGNsYXNzIENvbW1pdExvZ0ZldGNoZXIgewogICAg
ICAgICByZXR1cm4gJHRoaXMtPmZvcm1hdF9zaW5nbGVfY29tbWl0KCRjb21taXQpOwogICAgIH0K
IAorICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGlzX2NvbW1pdF9yZXZpc2lvbl9sYWJlbCgk
Y29tbWl0X3JldmlzaW9uX29yX3JldmlzaW9uX2xhYmVsKSB7CisgICAgICAgIHJldHVybiBwcmVn
X21hdGNoKCcvXlxkK0BcUyokLycsICRjb21taXRfcmV2aXNpb25fb3JfcmV2aXNpb25fbGFiZWwp
OworICAgIH0KKwogICAgIHByaXZhdGUgZnVuY3Rpb24gY29tbWl0X2Zvcl9yZXZpc2lvbigkcmVw
b3NpdG9yeV9pZCwgJHJldmlzaW9uKSB7Ci0gICAgICAgICRjb21taXRfaW5mbyA9IGFycmF5KCdy
ZXBvc2l0b3J5JyA9PiAkcmVwb3NpdG9yeV9pZCwgJ3JldmlzaW9uJyA9PiAkcmV2aXNpb24pOwor
ICAgICAgICAkY29tbWl0X2luZm8gPSBhcnJheSgncmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlf
aWQpOyAKKyAgICAgICAgJGNvbW1pdF9pbmZvWyR0aGlzLT5pc19jb21taXRfcmV2aXNpb25fbGFi
ZWwoJHJldmlzaW9uKSA/ICdyZXZpc2lvbl9sYWJlbCcgOiAncmV2aXNpb24nXSA9ICRyZXZpc2lv
bjsKICAgICAgICAgJHJvdyA9ICR0aGlzLT5kYi0+c2VsZWN0X2xhc3Rfcm93KCdjb21taXRzJywg
J2NvbW1pdCcsICRjb21taXRfaW5mbyk7CiAgICAgICAgIGlmICghJHJvdykKICAgICAgICAgICAg
IGV4aXRfd2l0aF9lcnJvcignVW5rbm93bkNvbW1pdCcsICRjb21taXRfaW5mbyk7CkBAIC0yMDEs
NyArMjA5LDggQEAgY2xhc3MgQ29tbWl0TG9nRmV0Y2hlciB7CiAgICAgfQogCiAgICAgcHJpdmF0
ZSBmdW5jdGlvbiBjb21taXRfZm9yX3JldmlzaW9uX3ByZWZpeCgkcmVwb3NpdG9yeV9pZCwgJHJl
dmlzaW9uX3ByZWZpeCkgewotICAgICAgICAkcm93cyA9ICR0aGlzLT5kYi0+cXVlcnlfYW5kX2Zl
dGNoX2FsbCgnU0VMRUNUICogRlJPTSBjb21taXRzIFdIRVJFIGNvbW1pdF9yZXBvc2l0b3J5ID0g
JDEgQU5EIGNvbW1pdF9yZXZpc2lvbiBMSUtFICQyIE9SREVSIEJZIGNvbW1pdF9yZXZpc2lvbiBM
SU1JVCAyJywgYXJyYXkoJHJlcG9zaXRvcnlfaWQsIERhdGFiYXNlOjplc2NhcGVfZm9yX2xpa2Uo
JHJldmlzaW9uX3ByZWZpeCkgLiAnJScpKTsKKyAgICAgICAgJGNvbHVtbl9uYW1lID0gJHRoaXMt
PmlzX2NvbW1pdF9yZXZpc2lvbl9sYWJlbCgkcmV2aXNpb25fcHJlZml4KSA/ICdyZXZpc2lvbl9s
YWJlbCcgOiAncmV2aXNpb24nOworICAgICAgICAkcm93cyA9ICR0aGlzLT5kYi0+cXVlcnlfYW5k
X2ZldGNoX2FsbCgnU0VMRUNUICogRlJPTSBjb21taXRzIFdIRVJFIGNvbW1pdF9yZXBvc2l0b3J5
ID0gJDEgQU5EIGNvbW1pdF8nIC4gJGNvbHVtbl9uYW1lIC4gJyBMSUtFICQyIE9SREVSIEJZIGNv
bW1pdF8nLiRjb2x1bW5fbmFtZS4nIExJTUlUIDInLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0
YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb25fcHJlZml4KSAuICclJykpOwogICAgICAg
ICBpZiAoY291bnQoJHJvd3MpID09IDApCiAgICAgICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ1Vu
a25vd25Db21taXQnLCBhcnJheSgncmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlfaWQsICdyZXZp
c2lvbicgPT4gJHJldmlzaW9uX3ByZWZpeCkpOwogICAgICAgICBpZiAoY291bnQoJHJvd3MpID09
IDIpIHsKQEAgLTIyNCw2ICsyMzMsNyBAQCBjbGFzcyBDb21taXRMb2dGZXRjaGVyIHsKICAgICAg
ICAgcmV0dXJuIGFycmF5KAogICAgICAgICAgICAgJ2lkJyA9PiAkY29tbWl0X3Jvd1snY29tbWl0
X2lkJ10sCiAgICAgICAgICAgICAncmV2aXNpb24nID0+ICRjb21taXRfcm93Wydjb21taXRfcmV2
aXNpb24nXSwKKyAgICAgICAgICAgICdyZXZpc2lvbkxhYmVsJyA9PiAkY29tbWl0X3Jvd1snY29t
bWl0X3JldmlzaW9uX2xhYmVsJ10sCiAgICAgICAgICAgICAncmVwb3NpdG9yeScgPT4gJGNvbW1p
dF9yb3dbJ2NvbW1pdF9yZXBvc2l0b3J5J10sCiAgICAgICAgICAgICAncHJldmlvdXNDb21taXQn
ID0+ICRjb21taXRfcm93Wydjb21taXRfcHJldmlvdXNfY29tbWl0J10sCiAgICAgICAgICAgICAn
dGltZScgPT4gRGF0YWJhc2U6OnRvX2pzX3RpbWUoJGNvbW1pdF9yb3dbJ2NvbW1pdF90aW1lJ10p
LApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2Nv
bW1pdC11cGRhdGVyLnBocCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVk
ZS9jb21taXQtdXBkYXRlci5waHAKaW5kZXggMDhjNjhiYmU2NDEwYWZmMDZkYjg3NTQ5OTJhNDhj
OTM3ZTcwZTMyZi4uM2U1MzYxODFkNTk0ZjYyNjRiMzE0MjVjZTk5ZmU4OWI1OGNkMWY0MCAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC11
cGRhdGVyLnBocAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUv
Y29tbWl0LXVwZGF0ZXIucGhwCkBAIC0zMCw3ICszMCw2IEBAIGNsYXNzIENvbW1pdFVwZGF0ZXIg
ewogICAgIHByaXZhdGUgZnVuY3Rpb24gdXBkYXRlX2NvbW1pdCgmJHVwZGF0ZSwgJG93bmVyX2Nv
bW1pdF9pZCwgJG93bmVyX3JlcG9zaXRvcnlfaWQsICRzaG91bGRfaW5zZXJ0KQogICAgIHsKICAg
ICAgICAgJGNvbW1pdF9kYXRhID0gJiR0aGlzLT5yZXNvbHZlX2ZpZWxkc19mcm9tX2RhdGFiYXNl
KCR1cGRhdGUsICRvd25lcl9yZXBvc2l0b3J5X2lkLCAkc2hvdWxkX2luc2VydCk7Ci0KICAgICAg
ICAgJGNvbW1pdF9zZWxlY3RfcXVlcnkgPSBhcnJheSgncmVwb3NpdG9yeScgPT4gJGNvbW1pdF9k
YXRhWydyZXBvc2l0b3J5J10sICdyZXZpc2lvbicgPT4gJGNvbW1pdF9kYXRhWydyZXZpc2lvbidd
KTsKICAgICAgICAgaWYgKCRzaG91bGRfaW5zZXJ0KSB7CiAgICAgICAgICAgICAkY29tbWl0X2lk
ID0gJHRoaXMtPmRiLT51cGRhdGVfb3JfaW5zZXJ0X3JvdygnY29tbWl0cycsICdjb21taXQnLCAk
Y29tbWl0X3NlbGVjdF9xdWVyeSwgJGNvbW1pdF9kYXRhKTsKQEAgLTc0LDYgKzczLDcgQEAgY2xh
c3MgQ29tbWl0VXBkYXRlciB7CiAgICAgcHJpdmF0ZSBmdW5jdGlvbiAmY29uc3RydWN0X3VwZGF0
ZV9saXN0KCYkY29tbWl0X2luZm9fbGlzdCwgJHNob3VsZF9pbnNlcnQpCiAgICAgewogICAgICAg
ICAkdXBkYXRlX2xpc3QgPSBhcnJheSgpOworICAgICAgICAkY29tbWl0X3JldmlzaW9uX2xhYmVs
cyA9IGFycmF5KCk7CiAKICAgICAgICAgZm9yZWFjaCAoJGNvbW1pdF9pbmZvX2xpc3QgYXMgJiRj
b21taXRfaW5mbykgewogICAgICAgICAgICAgc2VsZjo6dmFsaWRhdGVfY29tbWl0cygkY29tbWl0
X2luZm8pOwpAQCAtODEsNiArODEsMTEgQEAgY2xhc3MgQ29tbWl0VXBkYXRlciB7CiAgICAgICAg
ICAgICAkaGFzX3VwZGF0ZSA9IGNvdW50KCRjb21taXRfZGF0YSkgPiAxOwogCiAgICAgICAgICAg
ICAkdXBkYXRlID0gYXJyYXkoJ2NvbW1pdCcgPT4gJiRjb21taXRfZGF0YSwgJ3JlcG9zaXRvcnkn
ID0+ICYkY29tbWl0X2luZm9bJ3JlcG9zaXRvcnknXSk7CisgICAgICAgICAgICBpZiAoYXJyYXlf
a2V5X2V4aXN0cygncmV2aXNpb25MYWJlbCcsICRjb21taXRfaW5mbykpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygkY29tbWl0X2luZm9bJ3JldmlzaW9uTGFiZWwnXSwg
JGNvbW1pdF9yZXZpc2lvbl9sYWJlbHMpKQorICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZXhp
dF93aXRoX2Vycm9yKCdEdXBsaWNhdGVkQ29tbWl0SWRlbnRpZmllcicsIGFycmF5KCdjb21taXQn
ID0+ICRjb21taXRfaW5mbykpOworICAgICAgICAgICAgICAgICRjb21taXRfcmV2aXNpb25fbGFi
ZWxzWyRjb21taXRfaW5mb1sncmV2aXNpb25MYWJlbCddXSA9IHRydWU7CisgICAgICAgICAgICB9
CiAgICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncHJldmlvdXNDb21taXQnLCAkY29t
bWl0X2luZm8pKSB7CiAgICAgICAgICAgICAgICAgJGhhc191cGRhdGUgPSB0cnVlOwogICAgICAg
ICAgICAgICAgICR1cGRhdGVbJ3ByZXZpb3VzX2NvbW1pdCddID0gJiRjb21taXRfaW5mb1sncHJl
dmlvdXNDb21taXQnXTsKQEAgLTE0Myw2ICsxNDgsOSBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsK
ICAgICAgICAgICAgICRjb21taXRfZGF0YVsndGltZSddID0gJGNvbW1pdF9pbmZvWyd0aW1lJ107
CiAgICAgICAgIH0KIAorICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncmV2aXNpb25MYWJl
bCcsICRjb21taXRfaW5mbykpCisgICAgICAgICAgICAkY29tbWl0X2RhdGFbJ3JldmlzaW9uX2xh
YmVsJ10gPSAkY29tbWl0X2luZm9bJ3JldmlzaW9uTGFiZWwnXTsKKwogICAgICAgICBpZiAoJHNo
b3VsZF9pbnNlcnQpCiAgICAgICAgICAgICAkY29tbWl0X2RhdGFbJ3JlcG9ydGVkJ10gPSB0cnVl
OwogCkBAIC0xNjAsNiArMTY4LDggQEAgY2xhc3MgQ29tbWl0VXBkYXRlciB7CiAgICAgICAgICAg
ICBleGl0X3dpdGhfZXJyb3IoJ0ludmFsaWRBdXRob3JGb3JtYXQnLCBhcnJheSgnY29tbWl0JyA9
PiAkY29tbWl0X2luZm8pKTsKICAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJ3ByZXZpb3Vz
Q29tbWl0JywgJGNvbW1pdF9pbmZvKSkKICAgICAgICAgICAgIHJlcXVpcmVfZm9ybWF0KCdSZXZp
c2lvbicsICRjb21taXRfaW5mb1sncHJldmlvdXNDb21taXQnXSwgJy9eW0EtWmEtejAtOSBcLl0r
JC8nKTsKKyAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJ3JldmlzaW9uTGFiZWwnLCAkY29t
bWl0X2luZm8pKQorICAgICAgICAgICAgcmVxdWlyZV9mb3JtYXQoJ1JldmlzaW9uTGFiZWwnLCAk
Y29tbWl0X2luZm9bJ3JldmlzaW9uTGFiZWwnXSwgJy9eXGQrQFxTKyQvJyk7CiAgICAgfQogCiAg
ICAgcHJpdmF0ZSBmdW5jdGlvbiByZXNvbHZlX3JlcG9zaXRvcnkoJHJlcG9zaXRvcnlfbmFtZSwg
JG93bmVyX3JlcG9zaXRvcnlfaWQsICRzaG91bGRfaW5zZXJ0KQpkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL3JlcG9ydC1wcm9jZXNzb3IucGhwIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL3JlcG9ydC1wcm9jZXNzb3Iu
cGhwCmluZGV4IDFiYzFkYjY0MmRiZWZlZjhlY2IwNzJlMThiNTdlOWM5MWJjMDcyM2MuLjFlZjlh
NmQ1ZGQ0Mzk4NmYwZDY5NzE0NDM1OTY3NDk3M2Y5ODFjMWQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9yZXBvcnQtcHJvY2Vzc29yLnBocAorKysg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3J0LXByb2Nlc3Nv
ci5waHAKQEAgLTE1OSwxNCArMTU5LDEyIEBAIGNsYXNzIFJlcG9ydFByb2Nlc3NvciB7CiAgICAg
ICAgICAgICAgICAgJHRoaXMtPnJvbGxiYWNrX3dpdGhfZXJyb3IoJ0ZhaWxlZFRvVXBkYXRlQnVp
bGRSZXF1ZXN0JywgYXJyYXkoJ2J1aWxkUmVxdWVzdCcgPT4gJGJ1aWxkX3JlcXVlc3RfaWQsICdi
dWlsZCcgPT4gJGJ1aWxkX2lkKSk7CiAgICAgICAgIH0KIAotCiAgICAgICAgIGZvcmVhY2ggKCRy
ZXZpc2lvbnMgYXMgJHJlcG9zaXRvcnlfbmFtZSA9PiAkcmV2aXNpb25fZGF0YSkgewogICAgICAg
ICAgICAgJHJlcG9zaXRvcnlfaWQgPSAkdGhpcy0+ZGItPnNlbGVjdF9vcl9pbnNlcnRfcm93KCdy
ZXBvc2l0b3JpZXMnLCAncmVwb3NpdG9yeScsIGFycmF5KCduYW1lJyA9PiAkcmVwb3NpdG9yeV9u
YW1lLCAnb3duZXInID0+IE5VTEwpKTsKICAgICAgICAgICAgIGlmICghJHJlcG9zaXRvcnlfaWQp
CiAgICAgICAgICAgICAgICAgJHRoaXMtPnJvbGxiYWNrX3dpdGhfZXJyb3IoJ0ZhaWxlZFRvSW5z
ZXJ0UmVwb3NpdG9yeScsIGFycmF5KCduYW1lJyA9PiAkcmVwb3NpdG9yeV9uYW1lKSk7CiAKLSAg
ICAgICAgICAgICRjb21taXRfZGF0YSA9IGFycmF5KCdyZXBvc2l0b3J5JyA9PiAkcmVwb3NpdG9y
eV9pZCwgJ3JldmlzaW9uJyA9PiAkcmV2aXNpb25fZGF0YVsncmV2aXNpb24nXSwgJ3RpbWUnID0+
IGFycmF5X2dldCgkcmV2aXNpb25fZGF0YSwgJ3RpbWVzdGFtcCcpKTsKLQorICAgICAgICAgICAg
JGNvbW1pdF9kYXRhID0gYXJyYXkoJ3JlcG9zaXRvcnknID0+ICRyZXBvc2l0b3J5X2lkLCAncmV2
aXNpb24nID0+ICRyZXZpc2lvbl9kYXRhWydyZXZpc2lvbiddLCAndGltZScgPT4gYXJyYXlfZ2V0
KCRyZXZpc2lvbl9kYXRhLCAndGltZXN0YW1wJyksICdyZXZpc2lvbl9sYWJlbCcgPT4gYXJyYXlf
Z2V0KCRyZXZpc2lvbl9kYXRhLCAncmV2aXNpb25MYWJlbCcsIG51bGwpKTsKICAgICAgICAgICAg
ICRtaXNtYXRjaGluZ19jb21taXQgPSAkdGhpcy0+ZGItPnF1ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NF
TEVDVCAqIEZST00gYnVpbGRfY29tbWl0cywgY29tbWl0cwogICAgICAgICAgICAgICAgIFdIRVJF
IGJ1aWxkX2NvbW1pdCA9IGNvbW1pdF9pZCBBTkQgY29tbWl0X2J1aWxkID0gJDEgQU5EIGNvbW1p
dF9yZXBvc2l0b3J5ID0gJDIgQU5EIGNvbW1pdF9yZXZpc2lvbiAhPSAkMyBMSU1JVCAxJywKICAg
ICAgICAgICAgICAgICBhcnJheSgkYnVpbGRfaWQsICRyZXBvc2l0b3J5X2lkLCAkcmV2aXNpb25f
ZGF0YVsncmV2aXNpb24nXSkpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1sb2cuanMKaW5kZXggZTZkNGQ0NGFiYjU1NDEzNDZl
MmY0YTlkNDQwMDlmNzlhNzgyOTAwYi4uMWM1NmEwZTE2M2Q0MTgxMTRhYzU4YzM3MzIxNzlhMzQx
ZjQ2NmI2MCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9t
b2RlbHMvY29tbWl0LWxvZy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L3YzL21vZGVscy9jb21taXQtbG9nLmpzCkBAIC0yMCw2ICsyMCw3IEBAIGNsYXNzIENvbW1pdExv
ZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAKICAgICAgICAgY29uc29sZS5hc3NlcnQoK3Ro
aXMuX3Jhd0RhdGFbJ3RpbWUnXSA9PSArcmF3RGF0YVsndGltZSddKTsKICAgICAgICAgY29uc29s
ZS5hc3NlcnQodGhpcy5fcmF3RGF0YVsncmV2aXNpb24nXSA9PSByYXdEYXRhWydyZXZpc2lvbidd
KTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fcmF3RGF0YVsncmV2aXNpb25MYWJlbCdd
ID09IHJhd0RhdGFbJ3JldmlzaW9uTGFiZWwnXSk7CiAKICAgICAgICAgaWYgKHJhd0RhdGEuYXV0
aG9yTmFtZSkKICAgICAgICAgICAgIHRoaXMuX3Jhd0RhdGEuYXV0aG9yTmFtZSA9IHJhd0RhdGEu
YXV0aG9yTmFtZTsKQEAgLTM5LDYgKzQwLDcgQEAgY2xhc3MgQ29tbWl0TG9nIGV4dGVuZHMgRGF0
YU1vZGVsT2JqZWN0IHsKICAgICB0ZXN0YWJpbGl0eSgpIHsgcmV0dXJuIHRoaXMuX3Jhd0RhdGFb
J3Rlc3RhYmlsaXR5J107IH0KICAgICBhdXRob3IoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydh
dXRob3JOYW1lJ107IH0KICAgICByZXZpc2lvbigpIHsgcmV0dXJuIHRoaXMuX3Jhd0RhdGFbJ3Jl
dmlzaW9uJ107IH0KKyAgICByZXZpc2lvbkxhYmVsKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsn
cmV2aXNpb25MYWJlbCddOyB9CiAgICAgbWVzc2FnZSgpIHsgcmV0dXJuIHRoaXMuX3Jhd0RhdGFb
J21lc3NhZ2UnXTsgfQogICAgIHVybCgpIHsgcmV0dXJuIHRoaXMuX3JlcG9zaXRvcnkudXJsRm9y
UmV2aXNpb24odGhpcy5fcmF3RGF0YVsncmV2aXNpb24nXSk7IH0KICAgICBvd25zQ29tbWl0cygp
IHsgcmV0dXJuIHRoaXMuX3Jhd0RhdGFbJ293bnNDb21taXRzJ107IH0KQEAgLTUxLDExICs1Mywx
NSBAQCBjbGFzcyBDb21taXRMb2cgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogICAgIGxhYmVs
KCkKICAgICB7CiAgICAgICAgIGNvbnN0IHJldmlzaW9uID0gdGhpcy5yZXZpc2lvbigpOworICAg
ICAgICBjb25zdCByZXZpc2lvbkxhYmVsID0gdGhpcy5yZXZpc2lvbkxhYmVsKCk7CisgICAgICAg
IGxldCBmb3JtYXR0ZWRSZXZpc2lvbiA9IHJldmlzaW9uOwogICAgICAgICBpZiAocGFyc2VJbnQo
cmV2aXNpb24pID09IHJldmlzaW9uKSAvLyBlLmcuIHIxMjM0NQotICAgICAgICAgICAgcmV0dXJu
ICdyJyArIHJldmlzaW9uOworICAgICAgICAgICAgZm9ybWF0dGVkUmV2aXNpb24gPSAncicgKyBy
ZXZpc2lvbjsKICAgICAgICAgaWYgKHJldmlzaW9uLmxlbmd0aCA9PSA0MCkgLy8gZS5nLiBnaXQg
aGFzaAotICAgICAgICAgICAgcmV0dXJuIHJldmlzaW9uLnN1YnN0cmluZygwLCAxMik7Ci0gICAg
ICAgIHJldHVybiByZXZpc2lvbjsKKyAgICAgICAgICAgIGZvcm1hdHRlZFJldmlzaW9uID0gcmV2
aXNpb24uc3Vic3RyaW5nKDAsIDEyKTsKKyAgICAgICAgaWYgKHJldmlzaW9uTGFiZWwpCisgICAg
ICAgICAgICByZXR1cm4gYCR7cmV2aXNpb25MYWJlbH0gKCR7Zm9ybWF0dGVkUmV2aXNpb259KWA7
CisgICAgICAgIHJldHVybiBmb3JtYXR0ZWRSZXZpc2lvbjsKICAgICB9CiAgICAgdGl0bGUoKSB7
IHJldHVybiB0aGlzLl9yZXBvc2l0b3J5Lm5hbWUoKSArICcgYXQgJyArIHRoaXMubGFiZWwoKTsg
fQogCkBAIC02OCwxNyArNzQsMTkgQEAgY2xhc3MgQ29tbWl0TG9nIGV4dGVuZHMgRGF0YU1vZGVs
T2JqZWN0IHsKICAgICAgICAgaWYgKCFwcmV2aW91c0NvbW1pdCkKICAgICAgICAgICAgIHJldHVy
biB7cmVwb3NpdG9yeTogcmVwb3NpdG9yeSwgbGFiZWw6IHRoaXMubGFiZWwoKSwgdXJsOiB0aGlz
LnVybCgpfTsKIAotICAgICAgICBjb25zdCB0byA9IHRoaXMucmV2aXNpb24oKTsKLSAgICAgICAg
Y29uc3QgZnJvbSA9IHByZXZpb3VzQ29tbWl0LnJldmlzaW9uKCk7Ci0gICAgICAgIGxldCBsYWJl
bCA9IG51bGw7Ci0gICAgICAgIGlmIChwYXJzZUludChmcm9tKSA9PSBmcm9tKS8vIGUuZy4gcjEy
MzQ1LgotICAgICAgICAgICAgbGFiZWwgPSBgciR7ZnJvbX0tciR7dGhpcy5yZXZpc2lvbigpfWA7
Ci0gICAgICAgIGVsc2UgaWYgKHRvLmxlbmd0aCA9PSA0MCkgLy8gZS5nLiBnaXQgaGFzaAotICAg
ICAgICAgICAgbGFiZWwgPSBgJHtmcm9tLnN1YnN0cmluZygwLCAxMil9Li4ke3RvLnN1YnN0cmlu
ZygwLCAxMil9YDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbGFiZWwgPSBgJHtmcm9tfSAt
ICR7dG99YDsKLQotICAgICAgICByZXR1cm4ge3JlcG9zaXRvcnk6IHJlcG9zaXRvcnksIGxhYmVs
OiBsYWJlbCwgdXJsOiByZXBvc2l0b3J5LnVybEZvclJldmlzaW9uUmFuZ2UoZnJvbSwgdG8pfTsK
KyAgICAgICAgY29uc3QgdG9fcmV2aXNpb24gPSB0aGlzLnJldmlzaW9uKCk7CisgICAgICAgIGNv
bnN0IGZyb21fcmV2aXNvbiA9IHByZXZpb3VzQ29tbWl0LnJldmlzaW9uKCk7CisgICAgICAgIGNv
bnN0IHRvX3JldmlzaW9uX2xhYmVsID0gdGhpcy5yZXZpc2lvbkxhYmVsKCk7CisgICAgICAgIGNv
bnN0IGZyb21fcmV2aXNpb25fbGFiZWwgPSBwcmV2aW91c0NvbW1pdC5yZXZpc2lvbkxhYmVsKCk7
CisgICAgICAgIGxldCBsYWJlbCA9IGAke3ByZXZpb3VzQ29tbWl0LmxhYmVsKCl9IC0gJHt0aGlz
LmxhYmVsKCl9YDsKKyAgICAgICAgaWYgKCF0b19yZXZpc2lvbl9sYWJlbCB8fCAhZnJvbV9yZXZp
c2lvbl9sYWJlbCkgeworICAgICAgICAgICAgaWYgKHBhcnNlSW50KGZyb21fcmV2aXNvbikgPT0g
ZnJvbV9yZXZpc29uKS8vIGUuZy4gcjEyMzQ1LgorICAgICAgICAgICAgICAgIGxhYmVsID0gYHIk
e2Zyb21fcmV2aXNvbn0tciR7dGhpcy5yZXZpc2lvbigpfWA7CisgICAgICAgICAgICBlbHNlIGlm
ICh0b19yZXZpc2lvbi5sZW5ndGggPT0gNDApIC8vIGUuZy4gZ2l0IGhhc2gKKyAgICAgICAgICAg
ICAgICBsYWJlbCA9IGAke2Zyb21fcmV2aXNvbi5zdWJzdHJpbmcoMCwgMTIpfS4uJHt0b19yZXZp
c2lvbi5zdWJzdHJpbmcoMCwgMTIpfWA7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4ge3Jl
cG9zaXRvcnk6IHJlcG9zaXRvcnksIGxhYmVsOiBsYWJlbCwgdXJsOiByZXBvc2l0b3J5LnVybEZv
clJldmlzaW9uUmFuZ2UoZnJvbV9yZXZpc29uLCB0b19yZXZpc2lvbil9OwogICAgIH0KIAogICAg
IHN0YXRpYyBmZXRjaExhdGVzdENvbW1pdEZvclBsYXRmb3JtKHJlcG9zaXRvcnksIHBsYXRmb3Jt
KQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
Y29tbWl0cy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
YXBpLWNvbW1pdHMtdGVzdHMuanMKaW5kZXggMjg1NjlmMDYzNzMwNGUzYTYyY2Y3NzAwOTIzOTNm
N2YwZTczNjU5Ny4uYTQzZWEzYTkyZGQ3YTE5YWQ5MTUyYWY0Y2E5MDdmNTAyMzA4OWI5ZiAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0
cy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2Fw
aS1jb21taXRzLXRlc3RzLmpzCkBAIC0xMCwxMyArMTAsMTQgQEAgY29uc3Qgc3VibWl0UmVwb3J0
ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMnKS5zdWJtaXRSZXBv
cnQ7CiBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICBwcmVwYXJl
U2VydmVyVGVzdCh0aGlzKTsKIAotICAgIGNvbnN0IHN1YnZlcnNpb25Db21taXRzID0geworICAg
IGNvbnN0IHN1YnZlcnNpb25Db21taXRzID0gIHsKICAgICAgICAgInNsYXZlTmFtZSI6ICJzb21l
U2xhdmUiLAogICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAogICAgICAg
ICAiY29tbWl0cyI6IFsKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAicmVwb3NpdG9y
eSI6ICJXZWJLaXQiLAogICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDgiLAorICAg
ICAgICAgICAgICAgICJyZXZpc2lvbkxhYmVsIjogIjE4NDI3NkBtYWluIiwKICAgICAgICAgICAg
ICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAyOjUyOjM0LjU3N1oiLAogICAgICAgICAgICAgICAg
ICJhdXRob3IiOiB7Im5hbWUiOiAiWmFsYW4gQnVqdGFzIiwgImFjY291bnQiOiAiemFsYW5AYXBw
bGUuY29tIn0sCiAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYSBtZXNzYWdlIiwKQEAgLTI0
LDYgKzI1LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKICAgICAg
ICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQ5IiwKKyAgICAgICAgICAgICAgICAicmV2aXNp
b25MYWJlbCI6ICIxODQyNzdAbWFpbiIsCiAgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0w
MS0yMFQwMzoyMzo1MC42NDVaIiwKICAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjog
IkNocmlzIER1bWV6IiwgImFjY291bnQiOiAiY2R1bWV6QGFwcGxlLmNvbSJ9LAogICAgICAgICAg
ICAgICAgICJtZXNzYWdlIjogInNvbWUgbWVzc2FnZSIsCkBAIC0zMiwxMiArMzQsNTMgQEAgZGVz
Y3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgInJl
cG9zaXRvcnkiOiAiV2ViS2l0IiwKICAgICAgICAgICAgICAgICAicHJldmlvdXNDb21taXQiOiAi
MjEwOTQ5IiwKICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTUwIiwKKyAgICAgICAg
ICAgICAgICAicmV2aXNpb25MYWJlbCI6ICIxODQyNzhAbWFpbiIsCiAgICAgICAgICAgICAgICAg
InRpbWUiOiAiMjAxNy0wMS0yMFQwMzo0OTozNy44ODdaIiwKICAgICAgICAgICAgICAgICAiYXV0
aG9yIjogeyJuYW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50IjogImNvbW1pdC1xdWV1ZUB3
ZWJraXQub3JnIn0sCiAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdl
IiwKKyAgICAgICAgICAgIH0sCisgICAgICAgIF0KKyAgICB9OworCisgICAgY29uc3Qgc3ViY2Vy
c2lvbkNvbW1pdHNXaXRoRmFrZVJldmlzaW9uTGFiZWwgPSB7CisgICAgICAgICJzbGF2ZU5hbWUi
OiAic29tZVNsYXZlIiwKKyAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwK
KyAgICAgICAgImNvbW1pdHMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJl
cG9zaXRvcnkiOiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQ4
IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25MYWJlbCI6ICIxODQyNzZAbWFpbiIsCisgICAg
ICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMjo1MjozNC41NzdaIiwKKyAgICAgICAg
ICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIlphbGFuIEJ1anRhcyIsICJhY2NvdW50IjogInph
bGFuQGFwcGxlLmNvbSJ9LAorICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImEgbWVzc2FnZSIs
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0
b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OSIsCisg
ICAgICAgICAgICAgICAgInJldmlzaW9uTGFiZWwiOiAiMTg0Mjc3QG1haW4iLAorICAgICAgICAg
ICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1WiIsCisgICAgICAgICAgICAg
ICAgImF1dGhvciI6IHsibmFtZSI6ICJDaHJpcyBEdW1leiIsICJhY2NvdW50IjogImNkdW1lekBh
cHBsZS5jb20ifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJzb21lIG1lc3NhZ2UiLAor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9y
eSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJwcmV2aW91c0NvbW1pdCI6ICIyMTA5NDki
LAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NTAiLAorICAgICAgICAgICAgICAg
ICJyZXZpc2lvbkxhYmVsIjogIjE4NDI3OEBtYWluIiwKKyAgICAgICAgICAgICAgICAidGltZSI6
ICIyMDE3LTAxLTIwVDAzOjQ5OjM3Ljg4N1oiLAorICAgICAgICAgICAgICAgICJhdXRob3IiOiB7
Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5v
cmcifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJhbm90aGVyIG1lc3NhZ2UiLAorICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6
ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NTEiLAorICAgICAg
ICAgICAgICAgICJyZXZpc2lvbkxhYmVsIjogIjE4NDI3OEBzb21ldGhpbmciLAorICAgICAgICAg
ICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDM6NDk6NDAuODg3WiIsCisgICAgICAgICAgICAg
ICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQt
cXVldWVAd2Via2l0Lm9yZyJ9LAorICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImFub3RoZXIg
bWVzc2FnZSIsCiAgICAgICAgICAgICB9CiAgICAgICAgIF0KLSAgICB9CisgICAgfTsKIAogICAg
IGNvbnN0IGNvbW1pdHNPbmVQcmVmaXhPZlRoZU90aGVyID0gewogICAgICAgICAic2xhdmVOYW1l
IjogInNvbWVTbGF2ZSIsCkBAIC00Niw2ICs4OSw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMv
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJyZXBvc2l0
b3J5IjogIldlYktpdCIsCiAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0IiwKKyAg
ICAgICAgICAgICAgICAicmV2aXNpb25MYWJlbCI6ICIxODQyNzJAbWFpbiIsCiAgICAgICAgICAg
ICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMjo1MjozNC41NzdaIiwKICAgICAgICAgICAgICAg
ICAiYXV0aG9yIjogeyJuYW1lIjogIlphbGFuIEJ1anRhcyIsICJhY2NvdW50IjogInphbGFuQGFw
cGxlLmNvbSJ9LAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImEgbWVzc2FnZSIsCkBAIC01
Myw2ICs5Nyw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCiAgICAg
ICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OSIsCisgICAgICAgICAgICAgICAgInJldmlz
aW9uTGFiZWwiOiAiMTg0Mjc3QG1haW4iLAogICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTct
MDEtMjBUMDM6MjM6NTAuNjQ1WiIsCiAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6
ICJDaHJpcyBEdW1leiIsICJhY2NvdW50IjogImNkdW1lekBhcHBsZS5jb20ifSwKICAgICAgICAg
ICAgICAgICAibWVzc2FnZSI6ICJzb21lIG1lc3NhZ2UiLApAQCAtNTI0LDYgKzU2OSw0MiBAQCBk
ZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pOwog
ICAgICAgICB9KTsKIAorICAgICAgICBpdCgic2hvdWxkIHJldHVybiBjb21taXQgd2l0aCBjb21t
aXQgcmV2aXNpb24gbGFiZWwiLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBhd2FpdCBhZGRT
bGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CisgICAgICAgICAgICBjb25zdCByZXNw
b25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0
LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdHMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBjb25zdCByZXN1
bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oYC9hcGkvY29tbWl0cy9X
ZWJLaXQvJHtzdWJ2ZXJzaW9uQ29tbWl0cy5jb21taXRzWzBdLnJldmlzaW9uTGFiZWx9YCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0LmNvbW1pdHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdC5jb21t
aXRzWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0cy5jb21taXRzWzBdKTsKKyAgICAgICAgfSk7CisKKyAg
ICAgICAgaXQoInNob3VsZCByZXR1cm4gJ0FtYmlndW91c1JldmlzaW9uUHJlZml4JyB3aGVuIG1v
cmUgdGhhbiBvbmUgY29tbWl0cyBhcmUgZm91bmQgZm9yIGEgcmV2aXNpb24gbGFiZWwgcHJlZml4
IiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29uc3QgcmVtb3RlID0gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKTsKKyAgICAgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YmNlcnNp
b25Db21taXRzV2l0aEZha2VSZXZpc2lvbkxhYmVsKTsKKyAgICAgICAgICAgIGF3YWl0IHJlbW90
ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3ViY2Vyc2lvbkNv
bW1pdHNXaXRoRmFrZVJldmlzaW9uTGFiZWwpOworICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0g
YXdhaXQgcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMTg0Mjc4QD9wcmVmaXgt
bWF0Y2g9dHJ1ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3Rh
dHVzJ10sICdBbWJpZ3VvdXNSZXZpc2lvblByZWZpeCcpOworICAgICAgICB9KTsKKworICAgICAg
ICBpdCgic2hvdWxkIG5vdCByZXR1cm4gJ0FtYmlndW91c1JldmlzaW9uUHJlZml4JyB3aGVuIHRo
ZXJlIGlzIGEgY29tbWl0IHJldmlzaW9uIGxhYmVsIGV4dHJhY3QgbWF0Y2hlcyBzcGVjaWZpZWQg
cmV2aXNpb24gcHJlZml4IiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29uc3QgcmVtb3Rl
ID0gVGVzdFNlcnZlci5yZW1vdGVBUEkoKTsKKyAgICAgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9y
UmVwb3J0KHN1YmNlcnNpb25Db21taXRzV2l0aEZha2VSZXZpc2lvbkxhYmVsKTsKKyAgICAgICAg
ICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMv
Jywgc3ViY2Vyc2lvbkNvbW1pdHNXaXRoRmFrZVJldmlzaW9uTGFiZWwpOworICAgICAgICAgICAg
Y29uc3QgcmVzdWx0ID0gYXdhaXQgcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQv
MTg0Mjc4QG1haW4/cHJlZml4LW1hdGNoPXRydWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJj
ZXJzaW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25MYWJlbFsnY29tbWl0cyddWzJdKTsKKyAgICAg
ICAgfSk7CisKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gJ1Vua25vd25Db21taXQnIHdoZW4g
bm8gY29tbWl0IGlzIGZvdW5kIGZvciBhIHJldmlzaW9uIGxhYmVsIHByZWZpeCIsIGFzeW5jICgp
ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7
CisgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJjZXJzaW9uQ29tbWl0c1dp
dGhGYWtlUmV2aXNpb25MYWJlbCk7CisgICAgICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT05X
aXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YmNlcnNpb25Db21taXRzV2l0aEZh
a2VSZXZpc2lvbkxhYmVsKTsKKyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90
ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzE4NDI3OEB4P3ByZWZpeC1tYXRjaD10cnVl
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ1Vu
a25vd25Db21taXQnKTsKKyAgICAgICAgfSk7CisKICAgICB9KTsKIAogICAgIGRlc2NyaWJlKCcv
YXBpL2NvbW1pdHMvPHJlcG9zaXRvcnk+L293bmVkLWNvbW1pdHM/b3duZXItcmV2aXNpb249PGNv
bW1pdD4nLCAoKSA9PiB7CkBAIC03MjcsNiArODA4LDMzIEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1p
dHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCisgICAg
ICAgIGl0KCJzaG91bGQgcmV0dXJuIHJlcG9ydGVkIGNvbW1pdHMgaW4gdGhlIHNwZWNpZmllZCBy
ZXZpc2lvbiBsYWJlbCByYW5nZSIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGRi
ID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdy
ZXBvc2l0b3JpZXMnLCB7J2lkJzogMSwgJ25hbWUnOiAnV2ViS2l0J30pOworICAgICAgICAgICAg
YXdhaXQgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzog
JzIxMDk0OCcsICdyZXZpc2lvbl9sYWJlbCc6ICcxODQyNzZAbWFpbicsICd0aW1lJzogJzIwMTct
MDEtMjBUMDI6NTI6MzQuNTc3WicsICdyZXBvcnRlZCc6IHRydWV9KTsKKyAgICAgICAgICAgIGF3
YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6ICcy
MTA5NDknLCAncmV2aXNpb25fbGFiZWwnOiAnMTg0Mjc3QG1haW4nLCAndGltZSc6ICcyMDE3LTAx
LTIwVDAzOjIzOjUwLjY0NVonLCAncmVwb3J0ZWQnOiB0cnVlfSk7CisgICAgICAgICAgICBhd2Fp
dCBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEw
OTUwJywgJ3JldmlzaW9uX2xhYmVsJzogJzE4NDI3OEBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0y
MFQwMzo0OTozNy44ODdaJywgJ3JlcG9ydGVkJzogdHJ1ZX0pOworICAgICAgICAgICAgY29uc3Qg
cmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1p
dHMvV2ViS2l0Lz9wcmVjZWRpbmdSZXZpc2lvbj0xODQyNzZAbWFpbiZsYXN0UmV2aXNpb249MTg0
Mjc4QG1haW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1
cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25l
U3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCB7CisgICAgICAgICAgICAgICAgcHJldmlv
dXNDb21taXQ6IG51bGwsCisgICAgICAgICAgICAgICAgcmV2aXNpb246ICcyMTA5NDknLAorICAg
ICAgICAgICAgICAgIHJldmlzaW9uTGFiZWw6ICcxODQyODlAbWFpbicsCisgICAgICAgICAgICAg
ICAgdGltZTogJzIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1WicsCisgICAgICAgICAgICAgICAgYXV0
aG9yOiB7bmFtZTogbnVsbCwgYWNjb3VudDogbnVsbH0sCisgICAgICAgICAgICAgICAgbWVzc2Fn
ZTogbnVsbCwKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1l
QXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMV0sIHsKKyAgICAgICAgICAgICAgICBw
cmV2aW91c0NvbW1pdDogbnVsbCwKKyAgICAgICAgICAgICAgICByZXZpc2lvbjogJzIxMDk1MCcs
CisgICAgICAgICAgICAgICAgcmV2aXNpb25MYWJlbDogJzE4NDI5MEBtYWluJywKKyAgICAgICAg
ICAgICAgICB0aW1lOiAnMjAxNy0wMS0yMFQwMzo0OTozNy44ODdaJywKKyAgICAgICAgICAgICAg
ICBhdXRob3I6IHtuYW1lOiBudWxsLCBhY2NvdW50OiBudWxsfSwKKyAgICAgICAgICAgICAgICBt
ZXNzYWdlOiBudWxsLAorICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCiAgICAgICAgIGl0
KCJzaG91bGQgbm90IGluY2x1ZGUgYSByZXZpc2lvbiBub3Qgd2l0aGluIHRoZSBzcGVjaWZpZWQg
cmFuZ2UiLCAoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKTsKICAgICAgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7
CkBAIC03NTAsNiArODU4LDIzIEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCisgICAgICAgIGl0KCJzaG91bGQg
bm90IGluY2x1ZGUgYSByZXZpc2lvbiBub3Qgd2l0aGluIHRoZSBzcGVjaWZpZWQgY29tbWl0IHJl
dmlzaW9uIGxhYmVsIHJhbmdlIiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29uc3QgZGIg
PSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgICAgICBjb25zdCByZW1vdGUgPSBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpOworICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdyZXBvc2l0
b3JpZXMnLCB7J2lkJzogMSwgJ25hbWUnOiAnV2ViS2l0J30pLAorICAgICAgICAgICAgYXdhaXQg
ZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk0
NycsICdyZXZpc2lvbl9sYWJlbCc6ICcxODQyNzVAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBU
MDI6Mzg6NDUuNDg1WicsICdyZXBvcnRlZCc6IGZhbHNlfSk7CisgICAgICAgICAgICBhd2FpdCBk
Yi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTQ4
JywgJ3JldmlzaW9uX2xhYmVsJzogJzE4NDI3NkBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQw
Mjo1MjozNC41NzdaJywgJ3JlcG9ydGVkJzogZmFsc2V9KTsKKyAgICAgICAgICAgIGF3YWl0IGRi
Lmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6ICcyMTA5NDkn
LCAncmV2aXNpb25fbGFiZWwnOiAnMTg0Mjc3QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIwVDAz
OjIzOjUwLjY0NVonLCAncmVwb3J0ZWQnOiBmYWxzZX0pOworICAgICAgICAgICAgYXdhaXQgZGIu
aW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk1MCcs
ICdyZXZpc2lvbl9sYWJlbCc6ICcxODQyNzhAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDM6
NDk6MzcuODg3WicsICdyZXBvcnRlZCc6IGZhbHNlfSk7CisgICAgICAgICAgICBhd2FpdCBhZGRT
bGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CisgICAgICAgICAgICBhd2FpdCByZW1v
dGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25D
b21taXRzKTsKKyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09O
KCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRpbmdSZXZpc2lvbj0xODQyNzVAbWFpbiZsYXN0
UmV2aXNpb249MTg0Mjc3QG1haW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1
YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydENvbW1p
dElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29t
bWl0c1snY29tbWl0cyddWzBdKTsKKyAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25l
U3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzFdLCBzdWJ2ZXJzaW9uQ29tbWl0c1snY29tbWl0
cyddWzFdKTsKKyAgICAgICAgfSk7CisKICAgICB9KTsKIAogfSk7CmRpZmYgLS1naXQgYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtY29tbWl0cy10ZXN0
cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1j
b21taXRzLXRlc3RzLmpzCmluZGV4IGI0ZWU3MjZmMzU1MzAyYWIxOGQ2YzczNmNiYjQwYzMwYzRi
MTg1OWIuLjBhNTQ2ZmMyYmM1M2FkYjFiNTEzMzIxMzEyNjAwNWE4MWI3MDY5YzEgMTAwNjQ0Ci0t
LSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21t
aXRzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
YXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCkBAIC0yNiw2ICsyNiwyMCBAQCBkZXNjcmliZSgi
L2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIH0KICAgICAgICAgXSwKICAgICB9OworICAgIGNvbnN0IHN1YnZlcnNpb25Db21t
aXRXaXRoUmV2aXNpb25MYWJlbCA9IHsKKyAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUi
LAorICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAiY29t
bWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJX
ZWJLaXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNDE5NzciLAorICAgICAgICAg
ICAgICAgICJyZXZpc2lvbkxhYmVsIjogIjEyNzIzMUBtYWluIiwKKyAgICAgICAgICAgICAgICAi
dGltZSI6ICIyMDEzLTAyLTA2VDA4OjU1OjIwLjlaIiwKKyAgICAgICAgICAgICAgICAiYXV0aG9y
IjogeyJuYW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50IjogImNvbW1pdC1xdWV1ZUB3ZWJr
aXQub3JnIn0sCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAic29tZSBtZXNzYWdlIiwKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgXSwKKyAgICB9OwogICAgIGNvbnN0IHN1YnZlcnNpb25JbnZh
bGlkQ29tbWl0ID0gewogICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCiAgICAgICAg
ICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCkBAIC03Niw2ICs5MCw0NCBAQCBkZXNj
cmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgXQogICAgIH0KIAorICAgIGNvbnN0IGR1cGxpY2F0ZWRDb21taXRSZXZpc2lv
bkxhYmVsQ29tbWl0cyA9IHsKKyAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAorICAg
ICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAiY29tbWl0cyI6
IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQi
LAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDgiLAorICAgICAgICAgICAgICAg
ICJyZXZpc2lvbkxhYmVsIjogIjE4NDI3NkBtYWluIiwKKyAgICAgICAgICAgICAgICAidGltZSI6
ICIyMDE3LTAxLTIwVDAyOjUyOjM0LjU3N1oiLAorICAgICAgICAgICAgICAgICJhdXRob3IiOiB7
Im5hbWUiOiAiWmFsYW4gQnVqdGFzIiwgImFjY291bnQiOiAiemFsYW5AYXBwbGUuY29tIn0sCisg
ICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYSBtZXNzYWdlIiwKKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKKyAg
ICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQ5IiwKKyAgICAgICAgICAgICAgICAicmV2
aXNpb25MYWJlbCI6ICIxODQyNzZAbWFpbiIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAx
Ny0wMS0yMFQwMzoyMzo1MC42NDVaIiwKKyAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1l
IjogIkNocmlzIER1bWV6IiwgImFjY291bnQiOiAiY2R1bWV6QGFwcGxlLmNvbSJ9LAorICAgICAg
ICAgICAgICAgICJtZXNzYWdlIjogInNvbWUgbWVzc2FnZSIsCisgICAgICAgICAgICB9LAorICAg
ICAgICBdCisgICAgfQorCisgICAgY29uc3QgaW52YWxpZENvbW1pdFJldmlzaW9uTGFiZWxDb21t
aXRzID0geworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2
ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAg
ICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9u
TGFiZWwiOiAiMTg0Mjc2IiwKKyAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAy
OjUyOjM0LjU3N1oiLAorICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiWmFsYW4g
QnVqdGFzIiwgImFjY291bnQiOiAiemFsYW5AYXBwbGUuY29tIn0sCisgICAgICAgICAgICAgICAg
Im1lc3NhZ2UiOiAiYSBtZXNzYWdlIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgIF0KKyAgICB9
CisKICAgICBpdCgic2hvdWxkIHJlamVjdCBlcnJvciB3aGVuIHNsYXZlIG5hbWUgaXMgbWlzc2lu
ZyIsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywge30pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ1Ns
YXZlTmFtZScpOwpAQCAtMTQ1LDYgKzE5NywyMiBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29t
bWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKKyAgICBpdCgic2hvdWxkIHJlamVjdCBhbiBpdmFsaWQgcmV2aXNpb24gbGFiZWwiLCBh
c3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25D
b21taXQpOworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgaW52YWxpZENvbW1pdFJldmlz
aW9uTGFiZWxDb21taXRzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ0ludmFsaWRSZXZpc2lvbkxhYmVsJyk7CisgICAgICAgIGNvbnN0IHJvd3MgPSBh
d2FpdCBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdjb21taXRzJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMCk7CisgICAgfSk7CisKKyAgICBpdCgi
c2hvdWxkIHJlamVjdCB3aXRoIGR1cGxpY2F0ZWQgY29tbWl0IHJldmlzaW9uIGxhYmVscyIsIGFz
eW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNv
bW1pdCk7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBkdXBsaWNhdGVkQ29tbWl0UmV2
aXNpb25MYWJlbENvbW1pdHMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnRHVwbGljYXRlZENvbW1pdElkZW50aWZpZXInKTsKKyAgICAgICAgY29uc3Qg
cm93cyA9IGF3YWl0IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKKyAgICB9KTsKKwog
ICAgIGl0KCJzaG91bGQgc3RvcmUgdHdvIGNvbW1pdHMgZnJvbSBhIHZhbGlkIHNsYXZlIiwgKCkg
PT4gewogICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvblR3b0NvbW1p
dHMpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvblR3b0NvbW1pdHMp
OwpAQCAtMjE1LDYgKzI4MywyNSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0
aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKKyAg
ICBpdCgic2hvdWxkIHVwZGF0ZSBhbiBleGlzdGluZyBjb21taXQgd2l0aCBjb21taXQgbGFiZWwg
aWYgdGhlcmUgaXMgb25lIiwgYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCBkYiA9IFRlc3RT
ZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgY29uc3QgcmVwb3J0ZWREYXRhID0gc3VidmVyc2lv
bkNvbW1pdFdpdGhSZXZpc2lvbkxhYmVsLmNvbW1pdHNbMF07CisgICAgICAgIGF3YWl0IGFkZFNs
YXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRXaXRoUmV2aXNpb25MYWJlbCk7CisgICAgICAg
IGF3YWl0IGRiLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEsICduYW1lJzogJ1dlYktp
dCd9KSwKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5Jzog
MSwgJ3JldmlzaW9uJzogcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddLCAndGltZSc6IHJlcG9ydGVk
RGF0YVsndGltZSddfSkKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25D
b21taXRXaXRoUmV2aXNpb25MYWJlbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBjb25zdCBjb21taXRzID0gYXdhaXQgZGIu
c2VsZWN0QWxsKCdjb21taXRzJyk7CisgICAgICAgIGNvbnN0IGNvbW1pdHRlcnMgPSBhd2FpdCBk
Yi5zZWxlY3RBbGwoJ2NvbW1pdHRlcnMnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ21lc3Nh
Z2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0c1swXVsncmV2aXNpb25fbGFiZWwnXSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbkxh
YmVsJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVy
J10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0dGVyc1swXVsnbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRl
ZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOworICAgIH0pOworCiAgICAgaXQoInNob3VsZCBu
b3QgdXBkYXRlIGFuIHVucmVsYXRlZCBjb21taXQiLCAoKSA9PiB7CiAgICAgICAgIGNvbnN0IGRi
ID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwogICAgICAgICBjb25zdCBmaXJzdERhdGEgPSBzdWJ2
ZXJzaW9uVHdvQ29tbWl0cy5jb21taXRzWzBdOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzCmluZGV4IDVjNDQ1
ZmVmYzBkNzIwNGMwYmI1YTE2ZTAyY2Y2MTM3MmZmM2ZiNjkuLmIwZWM4NzRlYTZhZDM3MmE4Y2Y0
ODdkY2U5OWQzMmIyZjNlYTM0OGUgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtdGVzdHMuanMKQEAgLTc3LDYgKzc3LDI5
IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfTsKICAg
ICB9CiAKKyAgICBmdW5jdGlvbiByZXBvcnRXaXRoUmV2aXNpb25MYWJlbENvbW1pdCgpCisgICAg
eworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgImJ1aWxkVGFnIjogIjEyMyIsCisgICAg
ICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMTA6MTI6MDMuMzg4MzA0IiwKKyAgICAg
ICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCisgICAgICAgICAgICAic2xhdmVO
YW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICAgICAiYnVpbGRlclBhc3N3b3JkIjogInNvbWVQ
YXNzd29yZCIsCisgICAgICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4gTGlvbiIsCisgICAg
ICAgICAgICAidGVzdHMiOiB7fSwKKyAgICAgICAgICAgICJyZXZpc2lvbnMiOiB7CisgICAgICAg
ICAgICAgICAgIm1hY09TIjogeworICAgICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTAu
OC4yIDEyQzYwIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIldlYktpdCI6
IHsKKyAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3NyIsCisgICAgICAgICAg
ICAgICAgICAgICJyZXZpc2lvbkxhYmVsIjogIjEyNzIzMUBtYWluIiwKKyAgICAgICAgICAgICAg
ICAgICAgInRpbWVzdGFtcCI6ICIyMDEzLTAyLTA2VDA4OjU1OjIwLjlaIgorICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKICAgICBmdW5jdGlvbiBl
bXB0eVNsYXZlUmVwb3J0KCkKICAgICB7CiAgICAgICAgIHJldHVybiB7CkBAIC0zNTEsNiArMzc0
LDM3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAKKyAgICBpdCgic2hvdWxkIGFkZCByZXZpc2lvbiBsYWJlbCIsIGFzeW5jICgp
ID0+IHsKKyAgICAgICAgYXdhaXQgYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNp
b25MYWJlbENvbW1pdCgpKTsKKyAgICAgICAgYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5w
b3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9ydFdpdGhSZXZpc2lvbkxhYmVsQ29tbWl0KCld
KTsKKyAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIGNv
bnN0IHJlcG9zaXRvcmllcyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgncmVwb3NpdG9yaWVzJyk7Cisg
ICAgICAgIGNvbnN0IGNvbW1pdHMgPSAgYXdhaXQgZGIuc2VsZWN0QWxsKCdjb21taXRzJyk7Cisg
ICAgICAgIGNvbnN0IGJ1aWxkQ29tbWl0c1JlbGF0aW9ucyA9IGF3YWl0ICBkYi5zZWxlY3RBbGwo
J2J1aWxkX2NvbW1pdHMnLCAnYnVpbGRfY29tbWl0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RF
cXVhbChyZXBvc2l0b3JpZXMubWFwKChyb3cpID0+IHJvd1snbmFtZSddKS5zb3J0KCksIFsnV2Vi
S2l0JywgJ21hY09TJ10pOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxl
bmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1pdHNSZWxhdGlv
bnMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkQ29tbWl0c1Jl
bGF0aW9uc1swXVsnYnVpbGRfY29tbWl0J10sIGNvbW1pdHNbMF1bJ2lkJ10pOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRzUmVsYXRpb25zWzFdWydidWlsZF9jb21taXQn
XSwgY29tbWl0c1sxXVsnaWQnXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZENv
bW1pdHNSZWxhdGlvbnNbMF1bJ2NvbW1pdF9idWlsZCddLCBidWlsZENvbW1pdHNSZWxhdGlvbnNb
MV1bJ2NvbW1pdF9idWlsZCddKTsKKworICAgICAgICBsZXQgcmVwb3NpdG9yeUlkVG9OYW1lID0g
e307CisgICAgICAgIGZvciAobGV0IHJlcG9zaXRvcnkgb2YgcmVwb3NpdG9yaWVzKQorICAgICAg
ICAgICAgcmVwb3NpdG9yeUlkVG9OYW1lW3JlcG9zaXRvcnlbJ2lkJ11dID0gcmVwb3NpdG9yeVsn
bmFtZSddOworCisgICAgICAgIGxldCByZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3cgPSB7fTsK
KyAgICAgICAgZm9yIChsZXQgY29tbWl0IG9mIGNvbW1pdHMpCisgICAgICAgICAgICByZXBvc2l0
b3J5TmFtZVRvUmV2aXNpb25Sb3dbcmVwb3NpdG9yeUlkVG9OYW1lW2NvbW1pdFsncmVwb3NpdG9y
eSddXV0gPSBjb21taXQ7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlO
YW1lVG9SZXZpc2lvblJvd1snbWFjT1MnXVsncmV2aXNpb24nXSwgJzEwLjguMiAxMkM2MCcpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydX
ZWJLaXQnXVsncmV2aXNpb24nXSwgJzE0MTk3NycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydXZWJLaXQnXVsncmV2aXNpb25fbGFiZWwn
XSwgJzEyNzIzMUBtYWluJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5
TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktpdCddWyd0aW1lJ10udG9TdHJpbmcoKSwKKyAgICAgICAg
ICAgIG5ldyBEYXRlKCcyMDEzLTAyLTA2IDA4OjU1OjIwLjknKS50b1N0cmluZygpKTsKKyAgICB9
KTsKKwogICAgIGl0KCJzaG91bGQgbm90IGNyZWF0ZSBhIGR1cGxpY2F0ZSBidWlsZCBmb3IgdGhl
IHNhbWUgYnVpbGQgbnVtYmVyIGlmIGJ1aWxkIHRpbWVzIGFyZSBjbG9zZSIsICgpID0+IHsKICAg
ICAgICAgY29uc3QgZmlyc3RSZXBvcnQgPSBlbXB0eVJlcG9ydCgpOwogICAgICAgICBmaXJzdFJl
cG9ydFsnYnVpbGRUaW1lJ10gPSAnMjAxMy0wMi0yOFQxMDoxMjowNCc7CmRpZmYgLS1naXQgYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9jb21taXQtbG9nLXRlc3RzLmpzIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qcwpp
bmRleCA3MGFiZGViZjgxZThhYjYwZDFkMTgxNjNlMzk5MTg3OWNiNDczOGI2Li42ZDczYTUxNjky
YmEyMTg1ZmUyMTY0NGEwM2ViOTQwODk5M2I5MjYwIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdW5pdC10ZXN0cy9jb21taXQtbG9nLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2NvbW1pdC1sb2ctdGVzdHMuanMKQEAgLTE3LDYg
KzE3LDE3IEBAIGZ1bmN0aW9uIHdlYmtpdENvbW1pdCgpCiAgICAgfSk7CiB9CiAKK2Z1bmN0aW9u
IHdlYmtpdENvbW1pdFdpdGhSZXZpc2lvbkxhYmVsKCkgCit7CisgICAgcmV0dXJuIG5ldyBDb21t
aXRMb2coMSwgeworICAgICAgICBpZDogMSwKKyAgICAgICAgcmVwb3NpdG9yeTogTW9ja01vZGVs
cy53ZWJraXQsCisgICAgICAgIHJldmlzaW9uOiAnMjAwODA1JywKKyAgICAgICAgcmV2aXNpb25M
YWJlbDogJzE4NDI3NkBtYWluJywKKyAgICAgICAgdGltZTogKyhuZXcgRGF0ZSgnMjAxNi0wNS0x
M1QwMDo1NTo1Ny44NDEzNDRaJykpLAorICAgIH0pOworfQorCiBmdW5jdGlvbiBvbGRXZWJLaXRD
b21taXQoKQogewogICAgIHJldHVybiBuZXcgQ29tbWl0TG9nKDIsIHsKQEAgLTI3LDYgKzM4LDE3
IEBAIGZ1bmN0aW9uIG9sZFdlYktpdENvbW1pdCgpCiAgICAgfSk7CiB9CiAKK2Z1bmN0aW9uIG9s
ZFdlYktpdENvbW1pdFdpdGhSZXZpc2lvbkxhYmVsKCkKK3sKKyAgICByZXR1cm4gbmV3IENvbW1p
dExvZygyLCB7CisgICAgICAgIGlkOiAyLAorICAgICAgICByZXBvc2l0b3J5OiBNb2NrTW9kZWxz
LndlYmtpdCwKKyAgICAgICAgcmV2aXNpb246ICcyMDA1NzQnLAorICAgICAgICByZXZpc2lvbkxh
YmVsOiAnMTc1NjA1QG1haW4nLAorICAgICAgICB0aW1lOiArKG5ldyBEYXRlKCcyMDE2LTA1LTA5
VDE0OjU5OjIzLjU1Mzc2N1onKSksCisgICAgfSk7Cit9CisKIGZ1bmN0aW9uIGdpdFdlYktpdENv
bW1pdCgpCiB7CiAgICAgcmV0dXJuIG5ldyBDb21taXRMb2coMywgewpAQCAtMzcsNiArNTksMTcg
QEAgZnVuY3Rpb24gZ2l0V2ViS2l0Q29tbWl0KCkKICAgICB9KTsKIH0KIAorZnVuY3Rpb24gZ2l0
V2ViS2l0Q29tbWl0V2l0aFJldmlzaW9uTGFiZWwoKQoreworICAgIHJldHVybiBuZXcgQ29tbWl0
TG9nKDMsIHsKKyAgICAgICAgaWQ6IDMsCisgICAgICAgIHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMu
d2Via2l0LAorICAgICAgICByZXZpc2lvbjogJzZmOGIwZGJiZGE5NWE0NDA1MDNiODhkYjFkZDAz
ZGFkM2E3YjA3ZmInLAorICAgICAgICByZXZpc2lvbkxhYmVsOiAnMTg0Mjc2QG1haW4nLAorICAg
ICAgICB0aW1lOiArKG5ldyBEYXRlKCcyMDE2LTA1LTEzVDAwOjU1OjU3Ljg0MTM0NFonKSksCisg
ICAgfSk7Cit9CisKIGZ1bmN0aW9uIG9sZEdpdFdlYktpdENvbW1pdCgpCiB7CiAgICAgcmV0dXJu
IG5ldyBDb21taXRMb2coNCwgewpAQCAtMTQ3LDEwICsxODAsMTggQEAgZGVzY3JpYmUoJ0NvbW1p
dExvZycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRDb21t
aXQoKS5sYWJlbCgpLCAncjIwMDgwNScpOwogICAgICAgICB9KTsKIAorICAgICAgICBpdCgnc2hv
dWxkIHByZWZpeCBjb21taXQgaWRlbnRpZmllciB3aXRoIHN2biByICsgcmV2aXNpb24nLCAoKSA9
PiB7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Q29tbWl0V2l0aFJldmlz
aW9uTGFiZWwoKS5sYWJlbCgpLCAnMTg0Mjc2QG1haW4gKHIyMDA4MDUpJykKKyAgICAgICAgfSk7
CisKICAgICAgICAgaXQoJ3Nob3VsZCB0cnVuY2F0ZSBhIEdpdCBoYXNoIGF0IDh0aCBjaGFyYWN0
ZXInLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ2l0V2ViS2l0Q29t
bWl0KCkubGFiZWwoKSwgJzZmOGIwZGJiZGE5NScpOwogICAgICAgICB9KTsKIAorICAgICAgICBp
dCgnc2hvdWxkIHByZWZpeCBjb21taXQgaWRlbnRpZmllciB3aXRoIGdpdCBoYXNoIHRydW5jYXRl
ZCcsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChnaXRXZWJLaXRDb21t
aXRXaXRoUmV2aXNpb25MYWJlbCgpLmxhYmVsKCksICcxODQyNzZAbWFpbiAoNmY4YjBkYmJkYTk1
KScpCisgICAgICAgIH0pOworCiAgICAgICAgIGl0KCdzaG91bGQgbm90IG1vZGlmeSBPUyBYIHZl
cnNpb24nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0
KCkubGFiZWwoKSwgJzEwLjExLjQgMTVFNjUnKTsKICAgICAgICAgfSk7CkBAIC0xNjEsMTAgKzIw
MiwxOCBAQCBkZXNjcmliZSgnQ29tbWl0TG9nJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHdlYmtpdENvbW1pdCgpLnRpdGxlKCksICdXZWJLaXQgYXQgcjIwMDgwNScp
OwogICAgICAgICB9KTsKIAorICAgICAgICBpdCgnc2hvdWxkIHByZWZpeCBjb21taXQgaWRlbnRp
ZmllcicsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRDb21t
aXRXaXRoUmV2aXNpb25MYWJlbCgpLnRpdGxlKCksICdXZWJLaXQgYXQgMTg0Mjc2QG1haW4gKHIy
MDA4MDUpJyk7CisgICAgICAgIH0pOworCiAgICAgICAgIGl0KCdzaG91bGQgdHJ1bmNhdGUgYSBH
aXQgaGFzaCBhdCA4dGggY2hhcmFjdGVyJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGdpdFdlYktpdENvbW1pdCgpLnRpdGxlKCksICdXZWJLaXQgYXQgNmY4YjBkYmJk
YTk1Jyk7CiAgICAgICAgIH0pOwogCisgICAgICAgIGl0KCdzaG91bGQgcHJlZml4IGNvbW1pdCBp
ZGVudGlmaWVyIHdpdGggZ2l0IGhhc2ggdHJ1bmNhdGVkJywgICgpID0+IHsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChnaXRXZWJLaXRDb21taXRXaXRoUmV2aXNpb25MYWJlbCgpLnRp
dGxlKCksICdXZWJLaXQgYXQgMTg0Mjc2QG1haW4gKDZmOGIwZGJiZGE5NSknKTsKKyAgICAgICAg
fSk7CisKICAgICAgICAgaXQoJ3Nob3VsZCBub3QgbW9kaWZ5IE9TIFggdmVyc2lvbicsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQoKS50aXRsZSgpLCAn
T1MgWCBhdCAxMC4xMS40IDE1RTY1Jyk7CiAgICAgICAgIH0pOwpAQCAtMjIzLDYgKzI3MiwyMyBA
QCBkZXNjcmliZSgnQ29tbWl0TG9nJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIHJl
cG9zaXRvcnk6IE1vY2tNb2RlbHMub3N4CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CisK
KyAgICAgICAgaXQoJ3Nob3VsZCBwcmVmaXggd2l0aCBjb21taXQgcmV2aXNpb24gbGFiZWwgYW5k
IHVzZSAiLSIsIGlmIGJvdGggaGF2ZSByZXZpc2lvbiBsYWJlbCcsICgpID0+IHsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwod2Via2l0Q29tbWl0V2l0aFJldmlzaW9uTGFiZWwo
KS5kaWZmKG9sZFdlYktpdENvbW1pdFdpdGhSZXZpc2lvbkxhYmVsKCkpLCB7CisgICAgICAgICAg
ICAgICAgbGFiZWw6ICcxNzU2MDVAbWFpbiAocjIwMDU3NCkgLSAxODQyNzZAbWFpbiAocjIwMDgw
NSknLAorICAgICAgICAgICAgICAgIHVybDogJycsCisgICAgICAgICAgICAgICAgcmVwb3NpdG9y
eTogTW9ja01vZGVscy53ZWJraXQKKyAgICAgICAgICAgIH0pCisgICAgICAgIH0pOworCisgICAg
ICAgIGl0KCdzaG91bGQgb25seSBjb250YWlucyByZXZpc29uLCBpZiBvbmUgb2YgdGhlIGNvbW1p
dCBkb2VzbmB0IGhhdmUgdGhlIHJldmlzaW9uIGxhYmVsJywgKCkgPT4geworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh3ZWJraXRDb21taXRXaXRoUmV2aXNpb25MYWJlbCgpLmRp
ZmYob2xkV2ViS2l0Q29tbWl0KCkpLCB7CisgICAgICAgICAgICAgICAgbGFiZWw6ICdyMjAwNTc0
LXIyMDA4MDUnLAorICAgICAgICAgICAgICAgIHVybDogJycsCisgICAgICAgICAgICAgICAgcmVw
b3NpdG9yeTogTW9ja01vZGVscy53ZWJraXQKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsK
KwogICAgIH0pOwogCiAgICAgZGVzY3JpYmUoJ2hhc09yZGVyaW5nJywgKCkgPT4gewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422988</attachid>
            <date>2021-03-11 16:20:13 -0800</date>
            <delta_ts>2021-03-11 16:55:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222897-20210311162013.patch</filename>
            <type>text/plain</type>
            <size>49893</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MDYxCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1YTg1MWZkODI1NTA1YjQzMGFkNzg3ODZhNTQ1NzI0MzUwNTg0Zjc1Li43Nzg5OTgxMTll
NjE1NzYxYjRjM2NhMjRiOTQ0YWI3OTM3MTg2YmQ5IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMS0wMy0xMCAgWmhpZmVpIEZhbmcgIDx6aGlmZWlf
ZmFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGNvbW1pdCByZXZpc2lvbiBsYWJlbCBzdXBw
b3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI4
OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
bmV3IGNvbHVtbiByZXZpc2lvbiBsYWJlbAorICAgICAgICBNYWtlIGFsbCBjb21taXQgYXBpIGFs
c28gY2FuIHdvcmsgd2l0aCByZXZpc2lvbiBsYWJlbAorICAgICAgICBDaGFuZ2UgdGhlIGNvbW1p
dCBsYWJlbCBkaXNwbGF5IHdpdGggY29tbWl0IHJldmlzaW9uIGxhYmVsCisKKyAgICAgICAgKiBi
cm93c2VyLXRlc3RzL2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzOiBGaXggYSBmYWlsZWQgdGVz
dCBjYXNlLCBXaGVuIHJlcXVlc3QgdGhlIHJlbW90ZSBhcGksIHRoZSBjb21wb25lbnQgd2lsbCBz
aG93IHRoZSBzcGlubmVyCisgICAgICAgICogaW5pdC1kYXRhYmFzZS5zcWw6IEFkZCBuZXcgY29s
dW1uIHJldmlzaW9uX2xhYmVsCisgICAgICAgICogbWlncmF0ZS1kYXRhYmFzZS5zcWw6IEFkZCBu
ZXcgY29sdW1uIHJldmlzaW9uX2xhYmVsCisgICAgICAgICogcHVibGljL2luY2x1ZGUvY29tbWl0
LWxvZy1mZXRjaGVyLnBocDogTWFrZSBhcGkgdGhhdCB3b3JrcyB3aXRoIHJldmlzaW9uIHNob3Vs
ZCB3b3JrIHdpdGggcmV2aXNpb24gbGFiZWwKKyAgICAgICAgKiBwdWJsaWMvaW5jbHVkZS9jb21t
aXQtdXBkYXRlci5waHA6IERpdHRvLgorICAgICAgICAqIHB1YmxpYy9pbmNsdWRlL3JlcG9ydC1w
cm9jZXNzb3IucGhwOiBNYWtlIHRoZSBwcm9jZXNzb3IgY2FuIGFsc28gaW5zZXJ0IHJldmlzaW9u
X2xhYmVsCisgICAgICAgICogcHVibGljL3YzL21vZGVscy9jb21taXQtbG9nLmpzOgorICAgICAg
ICAoQ29tbWl0TG9nLnByb3RvdHlwZS51cGRhdGVTaW5nbGV0b24pOgorICAgICAgICAoQ29tbWl0
TG9nLnByb3RvdHlwZS5yZXZpc2lvbkxhYmVsKToKKyAgICAgICAgKENvbW1pdExvZy5wcm90b3R5
cGUubGFiZWwpOiBNYWtlIHRoZSBsYWJlbCBpbmNsdWRlIHJldmlzaW9uIGxhYmVsIGFuZCByZXZp
c2lvbgorICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS5kaWZmKTogTWFrZSB0aGUgZGlmZiBs
YWJlbCBpbmNsdWRlIHJldmlzaW9uIGxhYmVsIGFuZCByZXZpc2lvbgorICAgICAgICAqIHNlcnZl
ci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qczoKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBp
LXJlcG9ydC1jb21taXRzLXRlc3RzLmpzOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktcmVw
b3J0LXRlc3RzLmpzOgorICAgICAgICAocmVwb3J0V2l0aFJldmlzaW9uTGFiZWxDb21taXQpOgor
ICAgICAgICAqIHVuaXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qczoKKwogMjAyMS0wMy0wNiAg
Unlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBbcGVyZiBkYXNoYm9h
cmRdIE1vZGVybml6ZSBUaW1lU2VyaWVzIGFuZCBUaW1lU2VyaWVzVmlldwpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvY29tbWl0LWxvZy12aWV3ZXIt
dGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQt
bG9nLXZpZXdlci10ZXN0cy5qcwppbmRleCBkYmM0Y2ZjZDliYzIxNGI3MDhlZTE5OGYxZWE2NjVm
MjI0MjI4NTYwLi42OWMxMWNkZjQ0YmMxOGEzMGJiNTJhMmUxMjEwMjJiM2M2MjQ4ZDU0IDEwMDY0
NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9n
LXZpZXdlci10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10
ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcwpAQCAtNTUsNiArNTUsMTkgQEAgZGVzY3Jp
YmUoJ0NvbW1pdExvZ1ZpZXdlcicsICgpID0+IHsKICAgICAgICAgIm1lc3NhZ2UiOiAiYW5vdGhl
ciBtZXNzYWdlIiwKICAgICB9OwogCisgICAgY29uc3Qgd2Via2l0Q29tbWl0MjEwOTUwV2l0aFJl
dmlzaW9uTGFiZWwgPSB7CisgICAgICAgICJpZCI6ICIxODUzMzgiLAorICAgICAgICAicmV2aXNp
b24iOiAiMjEwOTUwIiwKKyAgICAgICAgInJldmlzaW9uTGFiZWwiOiAiMTg0Mjc4QG1haW4iLAor
ICAgICAgICAicmVwb3NpdG9yeSI6IDEsCisgICAgICAgICJwcmV2aW91c0NvbW1pdCI6IG51bGws
CisgICAgICAgICJvd25zQ29tbWl0cyI6IGZhbHNlLAorICAgICAgICAidGltZSI6ICtuZXcgRGF0
ZSgiMjAxNy0wMS0yMFQwMzo0OTozNy44ODdaIiksCisgICAgICAgICJhdXRob3JOYW1lIjogIkNv
bW1pdCBRdWV1ZSIsCisgICAgICAgICJhdXRob3JFbWFpbCI6ICJjb21taXQtcXVldWVAd2Via2l0
Lm9yZyIsCisgICAgICAgICJtZXNzYWdlIjogImFub3RoZXIgbWVzc2FnZSIsCisgICAgfTsKKwog
ICAgIGl0KCdzaG91bGQgaW5pdGlhbGx5IGJlIGVtcHR5IHdpdGggbm8gc3Bpbm5lcicsICgpID0+
IHsKICAgICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBCcm93c2luZ0NvbnRleHQoKTsKICAgICAg
ICAgcmV0dXJuIGltcG9ydENvbW1pdExvZ1ZpZXdlcihjb250ZXh0KS50aGVuKChDb21taXRMb2dW
aWV3ZXIpID0+IHsKQEAgLTEzMSw4ICsxNDQsOCBAQCBkZXNjcmliZSgnQ29tbWl0TG9nVmlld2Vy
JywgKCkgPT4gewogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JD
b21wb25lbnRzVG9SZW5kZXIoY29udGV4dCk7Ci0KLSAgICAgICAgICAgIGV4cGVjdCh2aWV3ZXIu
Y29udGVudCgnc3Bpbm5lci1jb250YWluZXInKS5vZmZzZXRIZWlnaHQpLnRvLmJlKDApOworICAg
ICAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdzcGlubmVyLWNvbnRhaW5lcicpLm9mZnNl
dEhlaWdodCkubm90LnRvLmJlKDApOworICAgICAgICAgICAgYXdhaXQgd2FpdEZvckNvbXBvbmVu
dHNUb1JlbmRlcihjb250ZXh0KTsKICAgICAgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgn
Y29tbWl0cy1saXN0JykubWF0Y2hlcygnOmVtcHR5JykpLnRvLmJlKGZhbHNlKTsKICAgICAgICAg
ICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnY29tbWl0cy1saXN0JykudGV4dENvbnRlbnQpLnRv
LmNvbnRhaW4oJ3IyMTA5NDknKTsKICAgICAgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgn
Y29tbWl0cy1saXN0JykudGV4dENvbnRlbnQpLnRvLmNvbnRhaW4oJ0NocmlzIER1bWV6Jyk7CkBA
IC0xNDQsNCArMTU3LDQ3IEBAIGRlc2NyaWJlKCdDb21taXRMb2dWaWV3ZXInLCAoKSA9PiB7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCisgICAgaXQoJ3Nob3VsZCBzaG93IHJldmlzaW9uIGxhYmVs
JywgYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCBjb250ZXh0ID0gbmV3IEJyb3dzaW5nQ29u
dGV4dCgpOworICAgICAgICBjb25zdCBDb21taXRMb2dWaWV3ZXIgPSBhd2FpdCBpbXBvcnRDb21t
aXRMb2dWaWV3ZXIoY29udGV4dCk7CisgICAgICAgIGNvbnN0IFJlcG9zaXRvcnkgPSBjb250ZXh0
LnN5bWJvbHMuUmVwb3NpdG9yeTsKKyAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBjb250ZXh0LnN5
bWJvbHMuUmVtb3RlQVBJLnJlcXVlc3RzOworICAgICAgICBjb25zdCB2aWV3ZXIgPSBuZXcgQ29t
bWl0TG9nVmlld2VyOworICAgICAgICBjb25zdCB3ZWJraXQgPSBuZXcgUmVwb3NpdG9yeSgxLCB7
bmFtZTogJ1dlYktpdCd9KTsKKyAgICAgICAgY29udGV4dC5kb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKHZpZXdlci5lbGVtZW50KCkpOworCisgICAgICAgIHZpZXdlci5lbnF1ZXVlVG9SZW5kZXIo
KTsKKyAgICAgICAgYXdhaXQgd2FpdEZvckNvbXBvbmVudHNUb1JlbmRlcihjb250ZXh0KTsKKwor
ICAgICAgICB2aWV3ZXIudmlldyh3ZWJraXQsICcyMTA5NDgnLCAnMjEwOTUwJyk7CisgICAgICAg
IGF3YWl0IHdhaXRGb3JDb21wb25lbnRzVG9SZW5kZXIoY29udGV4dCk7CisgICAgICAgIGV4cGVj
dCh2aWV3ZXIuY29udGVudCgnc3Bpbm5lci1jb250YWluZXInKS5vZmZzZXRIZWlnaHQpLnRvLm5v
dC5iZSgwKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxpc3QnKS5t
YXRjaGVzKCc6ZW1wdHknKSkudG8uYmUodHJ1ZSk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29u
dGVudCgncmVwb3NpdG9yeS1uYW1lJykubWF0Y2hlcygnOmVtcHR5JykpLnRvLmJlKGZhbHNlKTsK
KyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdyZXBvc2l0b3J5LW5hbWUnKS50ZXh0Q29u
dGVudCkudG8uY29udGFpbignV2ViS2l0Jyk7CisgICAgICAgIGV4cGVjdChyZXF1ZXN0cy5sZW5n
dGgpLnRvLmJlKDIpOworICAgICAgICBleHBlY3QocmVxdWVzdHNbMF0udXJsKS50by5iZSgnL2Fw
aS9jb21taXRzLzEvP3ByZWNlZGluZ1JldmlzaW9uPTIxMDk0OCZsYXN0UmV2aXNpb249MjEwOTUw
Jyk7CisgICAgICAgIGV4cGVjdChyZXF1ZXN0c1sxXS51cmwpLnRvLmJlKCcvYXBpL2NvbW1pdHMv
MS8yMTA5NDgnKTsKKyAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZSh7CisgICAgICAgICAgICAi
c3RhdHVzIjogIk9LIiwKKyAgICAgICAgICAgICJjb21taXRzIjogW3dlYmtpdENvbW1pdDIxMDk0
OSwgd2Via2l0Q29tbWl0MjEwOTUwV2l0aFJldmlzaW9uTGFiZWxdLAorICAgICAgICB9KTsKKwor
ICAgICAgICByZXF1ZXN0c1sxXS5yZXNvbHZlKHsKKyAgICAgICAgICAgICJzdGF0dXMiOiAiT0si
LAorICAgICAgICAgICAgImNvbW1pdHMiOiBbd2Via2l0Q29tbWl0MjEwOTQ4XSwKKyAgICAgICAg
fSk7CisKKyAgICAgICAgYXdhaXQgd2FpdEZvckNvbXBvbmVudHNUb1JlbmRlcihjb250ZXh0KTsK
KyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdzcGlubmVyLWNvbnRhaW5lcicpLm9mZnNl
dEhlaWdodCkudG8ubm90LmJlKDApOworICAgICAgICBhd2FpdCB3YWl0Rm9yQ29tcG9uZW50c1Rv
UmVuZGVyKGNvbnRleHQpOworICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ3NwaW5uZXIt
Y29udGFpbmVyJykub2Zmc2V0SGVpZ2h0KS50by5iZSgwKTsKKyAgICAgICAgZXhwZWN0KHZpZXdl
ci5jb250ZW50KCdjb21taXRzLWxpc3QnKS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUoZmFsc2Up
OworICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLnRleHRDb250
ZW50KS50by5jb250YWluKCcxODQyNzhAbWFpbiAocjIxMDk1MCknKTsKKyAgICAgICAgZXhwZWN0
KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxpc3QnKS50ZXh0Q29udGVudCkudG8uY29udGFpbign
Q29tbWl0IFF1ZXVlJyk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgncmVwb3NpdG9y
eS1uYW1lJykubWF0Y2hlcygnOmVtcHR5JykpLnRvLmJlKGZhbHNlKTsKKyAgICAgICAgZXhwZWN0
KHZpZXdlci5jb250ZW50KCdyZXBvc2l0b3J5LW5hbWUnKS50ZXh0Q29udGVudCkudG8uY29udGFp
bignV2ViS2l0Jyk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnY29tbWl0cy1saXN0
JykucXVlcnlTZWxlY3RvcignYScpKS50by5iZShudWxsKTsKKyAgICB9KTsKKwogfSk7CmRpZmYg
LS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwKaW5kZXggN2ZmYzg5YWQ4MmM3
NjEwNDFkMWE1NTZlODNmN2M5Njc4YTMyZmFjMS4uZDc1NDcxMjZjZmVkZTAwMzc5NjFkY2JjZjg2
NzU1Yjc3YTNkNzliMSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQt
ZGF0YWJhc2Uuc3FsCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNl
LnNxbApAQCAtMTAyLDYgKzEwMiw3IEBAIENSRUFURSBUQUJMRSBjb21taXRzICgKICAgICBjb21t
aXRfaWQgc2VyaWFsIFBSSU1BUlkgS0VZLAogICAgIGNvbW1pdF9yZXBvc2l0b3J5IGludGVnZXIg
Tk9UIE5VTEwgUkVGRVJFTkNFUyByZXBvc2l0b3JpZXMgT04gREVMRVRFIENBU0NBREUsCiAgICAg
Y29tbWl0X3JldmlzaW9uIHZhcmNoYXIoNjQpIE5PVCBOVUxMLAorICAgIGNvbW1pdF9yZXZpc2lv
bl9sYWJlbCB2YXJjaGFyKDY0KSBERUZBVUxUIE5VTEwsCiAgICAgY29tbWl0X3ByZXZpb3VzX2Nv
bW1pdCBpbnRlZ2VyIFJFRkVSRU5DRVMgY29tbWl0cyBPTiBERUxFVEUgQ0FTQ0FERSwKICAgICBj
b21taXRfdGltZSB0aW1lc3RhbXAsCiAgICAgY29tbWl0X29yZGVyIGludGVnZXIsCkBAIC0xMDks
NyArMTEwLDggQEAgQ1JFQVRFIFRBQkxFIGNvbW1pdHMgKAogICAgIGNvbW1pdF9tZXNzYWdlIHRl
eHQsCiAgICAgY29tbWl0X3JlcG9ydGVkIGJvb2xlYW4gTk9UIE5VTEwgREVGQVVMVCBGQUxTRSwK
ICAgICBjb21taXRfdGVzdGFiaWxpdHkgdmFyY2hhcigxMjgpIERFRkFVTFQgTlVMTCwKLSAgICBD
T05TVFJBSU5UIGNvbW1pdF9pbl9yZXBvc2l0b3J5X211c3RfYmVfdW5pcXVlIFVOSVFVRShjb21t
aXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uKSk7CisgICAgQ09OU1RSQUlOVCBjb21taXRf
aW5fcmVwb3NpdG9yeV9tdXN0X2JlX3VuaXF1ZSBVTklRVUUoY29tbWl0X3JlcG9zaXRvcnksIGNv
bW1pdF9yZXZpc2lvbiksCisgICAgQ09OU1RSQUlOVCBjb21taXRfcmV2aXNpb25fbGFiZWxfaW5f
cmVwb3NpdG9yeV9tdXN0X2JlX3VuaXF1ZSBVTklRVUUoY29tbWl0X3JlcG9zaXRvcnksIGNvbW1p
dF9yZXZpc2lvbl9sYWJlbCkpOwogQ1JFQVRFIElOREVYIGNvbW1pdF90aW1lX2luZGV4IE9OIGNv
bW1pdHMoY29tbWl0X3RpbWUpOwogQ1JFQVRFIElOREVYIGNvbW1pdF9vcmRlcl9pbmRleCBPTiBj
b21taXRzKGNvbW1pdF9vcmRlcik7CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9taWdy
YXRlLWRhdGFiYXNlLnNxbAppbmRleCA0OWJkMjQ5ZDJhNjg1Nzc2NDQ5ZDM2ZTgwNTI2OGZjYzRi
ODc3YWNhLi5hZGJhNDA2Y2ZkNGJmNWRkZGUxM2I4YTEzOGY5YTk3NDc2N2VhZTUyIDEwMDY0NAot
LS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWlncmF0ZS1kYXRhYmFzZS5zcWwKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL21pZ3JhdGUtZGF0YWJhc2Uuc3FsCkBAIC0zLDYgKzMs
OSBAQCBETyAkJAogQkVHSU4KIEFMVEVSIFRBQkxFIGJ1aWxkX3JlcXVlc3RzIEFERCBDT0xVTU4g
SUYgTk9UIEVYSVNUUyByZXF1ZXN0X3N0YXR1c19kZXNjcmlwdGlvbiB2YXJjaGFyKDEwMjQpIERF
RkFVTFQgTlVMTDsKIEFMVEVSIFRBQkxFIHBsYXRmb3JtcyBBREQgQ09MVU1OICBJRiBOT1QgRVhJ
U1RTIHBsYXRmb3JtX2dyb3VwIGludGVnZXIgUkVGRVJFTkNFUyBwbGF0Zm9ybV9ncm91cHMgREVG
QVVMVCBOVUxMOworQUxURVIgVEFCTEUgY29tbWl0cyBBREQgQ09MVU1OIElGIE5PVCBFWElTVFMg
Y29tbWl0X3JldmlzaW9uX2xhYmVsIHZhcmNoYXIoNjQpIERFRkFVTFQgTlVMTDsKK0FMVEVSIFRB
QkxFIGNvbW1pdHMgRFJPUCBDT05TVFJBSU5UIGNvbW1pdF9yZXZpc2lvbl9sYWJlbF9pbl9yZXBv
c2l0b3J5X211c3RfYmVfdW5pcXVlOworQUxURVIgVEFCTEUgY29tbWl0cyBBREQgQ09OU1RSQUlO
VCBjb21taXRfcmV2aXNpb25fbGFiZWxfaW5fcmVwb3NpdG9yeV9tdXN0X2JlX3VuaXF1ZSBVTklR
VUUoY29tbWl0X3JlcG9zaXRvcnksIGNvbW1pdF9yZXZpc2lvbl9sYWJlbCk7CiAKIENSRUFURSBU
QUJMRSBJRiBOT1QgRVhJU1RTIHBsYXRmb3JtX2dyb3VwcyAoCiAgICAgcGxhdGZvcm1ncm91cF9p
ZCBzZXJpYWwgUFJJTUFSWSBLRVksCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL2luY2x1ZGUvY29tbWl0LWxvZy1mZXRjaGVyLnBocCBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwCmluZGV4IDZl
MGJlY2QwYmM4MTY0YzA0MmZkM2ZiMmYzOTk4YzQxNTRmZWIwZTEuLmQ5OGYxYzM3NjRmNzBjYzE1
Yjc5MTk3MjdhYWQxMThlMDc4ZDA0YjggMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwCkBA
IC04LDE0ICs4LDE2IEBAIGNsYXNzIENvbW1pdExvZ0ZldGNoZXIgewogCiAgICAgc3RhdGljIGZ1
bmN0aW9uIGZpbmRfY29tbWl0X2lkX2J5X3JldmlzaW9uKCRkYiwgJHJlcG9zaXRvcnlfaWQsICRy
ZXZpc2lvbikKICAgICB7Ci0gICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2Zl
dGNoX2FsbCgnU0VMRUNUIGNvbW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9z
aXRvcnkgPSAkMSBBTkQgY29tbWl0X3JldmlzaW9uID0gJDInLCBhcnJheSgkcmVwb3NpdG9yeV9p
ZCwgJHJldmlzaW9uKSk7CisgICAgICAgICRjb2x1bW5fbmFtZSA9IENvbW1pdExvZ0ZldGNoZXI6
OmlzX2NvbW1pdF9yZXZpc2lvbl9sYWJlbCgkcmV2aXNpb24pID8gJ2NvbW1pdF9yZXZpc2lvbl9s
YWJlbCcgOiAnY29tbWl0X3JldmlzaW9uJzsKKyAgICAgICAgCisgICAgICAgICRjb21taXRfcm93
cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUIGNvbW1pdF9pZCBGUk9NIGNvbW1p
dHMgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkgPSAkMSBBTkQgJyAuICRjb2x1bW5fbmFtZSAuICcg
PSAkMicsIGFycmF5KCRyZXBvc2l0b3J5X2lkLCAkcmV2aXNpb24pKTsKICAgICAgICAgaWYgKCRj
b21taXRfcm93cykKICAgICAgICAgICAgIHJldHVybiAkY29tbWl0X3Jvd3NbMF1bJ2NvbW1pdF9p
ZCddOwogCiAgICAgICAgIGlmICghY3R5cGVfYWxudW0oJHJldmlzaW9uKSkKICAgICAgICAgICAg
IHJldHVybiBOVUxMOwogCi0gICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2Zl
dGNoX2FsbCgnU0VMRUNUIGNvbW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9z
aXRvcnkgPSAkMSBBTkQgY29tbWl0X3JldmlzaW9uIExJS0UgJDIgTElNSVQgMicsIGFycmF5KCRy
ZXBvc2l0b3J5X2lkLCBEYXRhYmFzZTo6ZXNjYXBlX2Zvcl9saWtlKCRyZXZpc2lvbikgLiAnJScp
KTsKKyAgICAgICAgJGNvbW1pdF9yb3dzID0gJGRiLT5xdWVyeV9hbmRfZmV0Y2hfYWxsKCdTRUxF
Q1QgY29tbWl0X2lkIEZST00gY29tbWl0cyBXSEVSRSBjb21taXRfcmVwb3NpdG9yeSA9ICQxIEFO
RCAnIC4gJGNvbHVtbl9uYW1lIC4gJyBMSUtFICQyIExJTUlUIDInLCBhcnJheSgkcmVwb3NpdG9y
eV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb24pIC4gJyUnKSk7CiAgICAg
ICAgIGlmICghJGNvbW1pdF9yb3dzKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAg
IGlmIChjb3VudCgkY29tbWl0X3Jvd3MpID4gMSkKQEAgLTU1LDYgKzU3LDcgQEAgY2xhc3MgQ29t
bWl0TG9nRmV0Y2hlciB7CiAgICAgewogICAgICAgICAkc3RhdGVtZW50cyA9ICdTRUxFQ1QgY29t
bWl0X2lkIGFzICJpZCIsCiAgICAgICAgICAgICBjb21taXRfcmV2aXNpb24gYXMgInJldmlzaW9u
IiwKKyAgICAgICAgICAgIGNvbW1pdF9yZXZpc2lvbl9sYWJlbCBhcyAicmV2aXNpb25MYWJlbCIs
CiAgICAgICAgICAgICBjb21taXRfcHJldmlvdXNfY29tbWl0IGFzICJwcmV2aW91c0NvbW1pdCIs
CiAgICAgICAgICAgICBjb21taXRfdGltZSBhcyAidGltZSIsCiAgICAgICAgICAgICBjb21taXR0
ZXJfbmFtZSBhcyAiYXV0aG9yTmFtZSIsCkBAIC0xOTIsOCArMTk1LDEzIEBAIGNsYXNzIENvbW1p
dExvZ0ZldGNoZXIgewogICAgICAgICByZXR1cm4gJHRoaXMtPmZvcm1hdF9zaW5nbGVfY29tbWl0
KCRjb21taXQpOwogICAgIH0KIAorICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGlzX2NvbW1p
dF9yZXZpc2lvbl9sYWJlbCgkY29tbWl0X3JldmlzaW9uX29yX3JldmlzaW9uX2xhYmVsKSB7Cisg
ICAgICAgIHJldHVybiBwcmVnX21hdGNoKCcvXlxkK0BcUyokLycsICRjb21taXRfcmV2aXNpb25f
b3JfcmV2aXNpb25fbGFiZWwpOworICAgIH0KKwogICAgIHByaXZhdGUgZnVuY3Rpb24gY29tbWl0
X2Zvcl9yZXZpc2lvbigkcmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uKSB7Ci0gICAgICAgICRjb21t
aXRfaW5mbyA9IGFycmF5KCdyZXBvc2l0b3J5JyA9PiAkcmVwb3NpdG9yeV9pZCwgJ3JldmlzaW9u
JyA9PiAkcmV2aXNpb24pOworICAgICAgICAkY29tbWl0X2luZm8gPSBhcnJheSgncmVwb3NpdG9y
eScgPT4gJHJlcG9zaXRvcnlfaWQpOyAKKyAgICAgICAgJGNvbW1pdF9pbmZvWyR0aGlzLT5pc19j
b21taXRfcmV2aXNpb25fbGFiZWwoJHJldmlzaW9uKSA/ICdyZXZpc2lvbl9sYWJlbCcgOiAncmV2
aXNpb24nXSA9ICRyZXZpc2lvbjsKICAgICAgICAgJHJvdyA9ICR0aGlzLT5kYi0+c2VsZWN0X2xh
c3Rfcm93KCdjb21taXRzJywgJ2NvbW1pdCcsICRjb21taXRfaW5mbyk7CiAgICAgICAgIGlmICgh
JHJvdykKICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignVW5rbm93bkNvbW1pdCcsICRjb21t
aXRfaW5mbyk7CkBAIC0yMDEsNyArMjA5LDggQEAgY2xhc3MgQ29tbWl0TG9nRmV0Y2hlciB7CiAg
ICAgfQogCiAgICAgcHJpdmF0ZSBmdW5jdGlvbiBjb21taXRfZm9yX3JldmlzaW9uX3ByZWZpeCgk
cmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uX3ByZWZpeCkgewotICAgICAgICAkcm93cyA9ICR0aGlz
LT5kYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUICogRlJPTSBjb21taXRzIFdIRVJFIGNv
bW1pdF9yZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF9yZXZpc2lvbiBMSUtFICQyIE9SREVSIEJZ
IGNvbW1pdF9yZXZpc2lvbiBMSU1JVCAyJywgYXJyYXkoJHJlcG9zaXRvcnlfaWQsIERhdGFiYXNl
Ojplc2NhcGVfZm9yX2xpa2UoJHJldmlzaW9uX3ByZWZpeCkgLiAnJScpKTsKKyAgICAgICAgJGNv
bHVtbl9uYW1lID0gJHRoaXMtPmlzX2NvbW1pdF9yZXZpc2lvbl9sYWJlbCgkcmV2aXNpb25fcHJl
Zml4KSA/ICdyZXZpc2lvbl9sYWJlbCcgOiAncmV2aXNpb24nOworICAgICAgICAkcm93cyA9ICR0
aGlzLT5kYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUICogRlJPTSBjb21taXRzIFdIRVJF
IGNvbW1pdF9yZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF8nIC4gJGNvbHVtbl9uYW1lIC4gJyBM
SUtFICQyIE9SREVSIEJZIGNvbW1pdF8nLiRjb2x1bW5fbmFtZS4nIExJTUlUIDInLCBhcnJheSgk
cmVwb3NpdG9yeV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb25fcHJlZml4
KSAuICclJykpOwogICAgICAgICBpZiAoY291bnQoJHJvd3MpID09IDApCiAgICAgICAgICAgICBl
eGl0X3dpdGhfZXJyb3IoJ1Vua25vd25Db21taXQnLCBhcnJheSgncmVwb3NpdG9yeScgPT4gJHJl
cG9zaXRvcnlfaWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uX3ByZWZpeCkpOwogICAgICAgICBp
ZiAoY291bnQoJHJvd3MpID09IDIpIHsKQEAgLTIyNCw2ICsyMzMsNyBAQCBjbGFzcyBDb21taXRM
b2dGZXRjaGVyIHsKICAgICAgICAgcmV0dXJuIGFycmF5KAogICAgICAgICAgICAgJ2lkJyA9PiAk
Y29tbWl0X3Jvd1snY29tbWl0X2lkJ10sCiAgICAgICAgICAgICAncmV2aXNpb24nID0+ICRjb21t
aXRfcm93Wydjb21taXRfcmV2aXNpb24nXSwKKyAgICAgICAgICAgICdyZXZpc2lvbkxhYmVsJyA9
PiAkY29tbWl0X3Jvd1snY29tbWl0X3JldmlzaW9uX2xhYmVsJ10sCiAgICAgICAgICAgICAncmVw
b3NpdG9yeScgPT4gJGNvbW1pdF9yb3dbJ2NvbW1pdF9yZXBvc2l0b3J5J10sCiAgICAgICAgICAg
ICAncHJldmlvdXNDb21taXQnID0+ICRjb21taXRfcm93Wydjb21taXRfcHJldmlvdXNfY29tbWl0
J10sCiAgICAgICAgICAgICAndGltZScgPT4gRGF0YWJhc2U6OnRvX2pzX3RpbWUoJGNvbW1pdF9y
b3dbJ2NvbW1pdF90aW1lJ10pLApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy9pbmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocCBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtdXBkYXRlci5waHAKaW5kZXggMDhjNjhiYmU2NDEw
YWZmMDZkYjg3NTQ5OTJhNDhjOTM3ZTcwZTMyZi4uOTUxMTFiZGI4OTE3MjVlMDVlOTlkMTMyYjIz
ZDlkYWMyY2ZiZGRhOSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy9pbmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL2luY2x1ZGUvY29tbWl0LXVwZGF0ZXIucGhwCkBAIC0zMCw3ICszMCw2IEBAIGNs
YXNzIENvbW1pdFVwZGF0ZXIgewogICAgIHByaXZhdGUgZnVuY3Rpb24gdXBkYXRlX2NvbW1pdCgm
JHVwZGF0ZSwgJG93bmVyX2NvbW1pdF9pZCwgJG93bmVyX3JlcG9zaXRvcnlfaWQsICRzaG91bGRf
aW5zZXJ0KQogICAgIHsKICAgICAgICAgJGNvbW1pdF9kYXRhID0gJiR0aGlzLT5yZXNvbHZlX2Zp
ZWxkc19mcm9tX2RhdGFiYXNlKCR1cGRhdGUsICRvd25lcl9yZXBvc2l0b3J5X2lkLCAkc2hvdWxk
X2luc2VydCk7Ci0KICAgICAgICAgJGNvbW1pdF9zZWxlY3RfcXVlcnkgPSBhcnJheSgncmVwb3Np
dG9yeScgPT4gJGNvbW1pdF9kYXRhWydyZXBvc2l0b3J5J10sICdyZXZpc2lvbicgPT4gJGNvbW1p
dF9kYXRhWydyZXZpc2lvbiddKTsKICAgICAgICAgaWYgKCRzaG91bGRfaW5zZXJ0KSB7CiAgICAg
ICAgICAgICAkY29tbWl0X2lkID0gJHRoaXMtPmRiLT51cGRhdGVfb3JfaW5zZXJ0X3JvdygnY29t
bWl0cycsICdjb21taXQnLCAkY29tbWl0X3NlbGVjdF9xdWVyeSwgJGNvbW1pdF9kYXRhKTsKQEAg
LTc0LDYgKzczLDcgQEAgY2xhc3MgQ29tbWl0VXBkYXRlciB7CiAgICAgcHJpdmF0ZSBmdW5jdGlv
biAmY29uc3RydWN0X3VwZGF0ZV9saXN0KCYkY29tbWl0X2luZm9fbGlzdCwgJHNob3VsZF9pbnNl
cnQpCiAgICAgewogICAgICAgICAkdXBkYXRlX2xpc3QgPSBhcnJheSgpOworICAgICAgICAkY29t
bWl0X3JldmlzaW9uX2xhYmVscyA9IGFycmF5KCk7CiAKICAgICAgICAgZm9yZWFjaCAoJGNvbW1p
dF9pbmZvX2xpc3QgYXMgJiRjb21taXRfaW5mbykgewogICAgICAgICAgICAgc2VsZjo6dmFsaWRh
dGVfY29tbWl0cygkY29tbWl0X2luZm8pOwpAQCAtODEsNiArODEsMTEgQEAgY2xhc3MgQ29tbWl0
VXBkYXRlciB7CiAgICAgICAgICAgICAkaGFzX3VwZGF0ZSA9IGNvdW50KCRjb21taXRfZGF0YSkg
PiAxOwogCiAgICAgICAgICAgICAkdXBkYXRlID0gYXJyYXkoJ2NvbW1pdCcgPT4gJiRjb21taXRf
ZGF0YSwgJ3JlcG9zaXRvcnknID0+ICYkY29tbWl0X2luZm9bJ3JlcG9zaXRvcnknXSk7CisgICAg
ICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncmV2aXNpb25MYWJlbCcsICRjb21taXRfaW5m
bykpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygkY29tbWl0X2luZm9b
J3JldmlzaW9uTGFiZWwnXSwgJGNvbW1pdF9yZXZpc2lvbl9sYWJlbHMpKQorICAgICAgICAgICAg
ICAgICAgICAkdGhpcy0+ZXhpdF93aXRoX2Vycm9yKCdEdXBsaWNhdGVkUmV2aXNpb25MYWJlbCcs
IGFycmF5KCdjb21taXQnID0+ICRjb21taXRfaW5mbykpOworICAgICAgICAgICAgICAgICRjb21t
aXRfcmV2aXNpb25fbGFiZWxzWyRjb21taXRfaW5mb1sncmV2aXNpb25MYWJlbCddXSA9IHRydWU7
CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncHJldmlv
dXNDb21taXQnLCAkY29tbWl0X2luZm8pKSB7CiAgICAgICAgICAgICAgICAgJGhhc191cGRhdGUg
PSB0cnVlOwogICAgICAgICAgICAgICAgICR1cGRhdGVbJ3ByZXZpb3VzX2NvbW1pdCddID0gJiRj
b21taXRfaW5mb1sncHJldmlvdXNDb21taXQnXTsKQEAgLTEwNCw2ICsxMDksNyBAQCBjbGFzcyBD
b21taXRVcGRhdGVyIHsKIAogICAgICAgICAgICAgJG93bmVkX2NvbW1pdF91cGRhdGVfbGlzdCA9
IGFycmF5KCk7CiAgICAgICAgICAgICBmb3JlYWNoKCRjb21taXRfaW5mb1snb3duZWRDb21taXRz
J10gYXMgJG93bmVkX3JlcG9zaXRvcnlfbmFtZSA9PiAmJG93bmVkX2NvbW1pdF9pbmZvKSB7Cisg
ICAgICAgICAgICAgICAgc2VsZjo6dmFsaWRhdGVfb3duX2NvbW1pdHMoJG93bmVkX2NvbW1pdF9p
bmZvKTsKICAgICAgICAgICAgICAgICAkb3duZWRfY29tbWl0ID0gJnNlbGY6OmNvbnN0cnVjdF9j
b21taXRfZGF0YSgkb3duZWRfY29tbWl0X2luZm8sICRvd25lZF9yZXBvc2l0b3J5X25hbWUsICRz
aG91bGRfaW5zZXJ0KTsKICAgICAgICAgICAgICAgICAkb3duZWRfY29tbWl0X3VwZGF0ZSA9IGFy
cmF5KCdjb21taXQnID0+ICYkb3duZWRfY29tbWl0LCAncmVwb3NpdG9yeScgPT4gJG93bmVkX3Jl
cG9zaXRvcnlfbmFtZSk7CiAKQEAgLTE0MywxMiArMTQ5LDI2IEBAIGNsYXNzIENvbW1pdFVwZGF0
ZXIgewogICAgICAgICAgICAgJGNvbW1pdF9kYXRhWyd0aW1lJ10gPSAkY29tbWl0X2luZm9bJ3Rp
bWUnXTsKICAgICAgICAgfQogCisgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCdyZXZpc2lv
bkxhYmVsJywgJGNvbW1pdF9pbmZvKSkKKyAgICAgICAgICAgICRjb21taXRfZGF0YVsncmV2aXNp
b25fbGFiZWwnXSA9ICRjb21taXRfaW5mb1sncmV2aXNpb25MYWJlbCddOworCiAgICAgICAgIGlm
ICgkc2hvdWxkX2luc2VydCkKICAgICAgICAgICAgICRjb21taXRfZGF0YVsncmVwb3J0ZWQnXSA9
IHRydWU7CiAKICAgICAgICAgcmV0dXJuICRjb21taXRfZGF0YTsKICAgICB9CiAKKyAgICBwcml2
YXRlIHN0YXRpYyBmdW5jdGlvbiB2YWxpZGF0ZV9vd25fY29tbWl0cygmJGNvbW1pdF9pbmZvKQor
ICAgIHsKKyAgICAgICAgcmVxdWlyZV9mb3JtYXQoJ093bkNvbW1pdFJldmlzaW9uJywgJGNvbW1p
dF9pbmZvWydyZXZpc2lvbiddLCAnL15bQS1aYS16MC05IFwuXSskLycpOworICAgICAgICBpZiAo
YXJyYXlfa2V5X2V4aXN0cygncmV2aXNpb25MYWJlbCcsICRjb21taXRfaW5mbykpCisgICAgICAg
ICAgICByZXF1aXJlX2Zvcm1hdCgnT3duQ29tbWl0UmV2aXNpb25MYWJlbCcsICRjb21taXRfaW5m
b1sncmV2aXNpb25MYWJlbCddLCAnL15cZCtAXFMrJC8nKTsKKyAgICAgICAgaWYgKGFycmF5X2tl
eV9leGlzdHMoJ3ByZXZpb3VzQ29tbWl0JywgJGNvbW1pdF9pbmZvKSkKKyAgICAgICAgICAgIHJl
cXVpcmVfZm9ybWF0KCdPd25Db21taXRSZXZpc2lvbicsICRjb21taXRfaW5mb1sncHJldmlvdXND
b21taXQnXSwgJy9eW0EtWmEtejAtOSBcLl0rJC8nKTsKKyAgICAgICAgaWYgKGFycmF5X2tleV9l
eGlzdHMoJ2F1dGhvcicsICRjb21taXRfaW5mbykgJiYgIWlzX2FycmF5KCRjb21taXRfaW5mb1sn
YXV0aG9yJ10pKQorICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdJbnZhbGlkT3duQ29tbWl0
QXV0aG9yRm9ybWF0JywgYXJyYXkoJ2NvbW1pdCcgPT4gJGNvbW1pdF9pbmZvKSk7CisgICAgfQor
CiAgICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gdmFsaWRhdGVfY29tbWl0cygmJGNvbW1pdF9p
bmZvKQogICAgIHsKICAgICAgICAgaWYgKCFhcnJheV9rZXlfZXhpc3RzKCdyZXBvc2l0b3J5Jywg
JGNvbW1pdF9pbmZvKSkKQEAgLTE2MCw2ICsxODAsOCBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsK
ICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignSW52YWxpZEF1dGhvckZvcm1hdCcsIGFycmF5
KCdjb21taXQnID0+ICRjb21taXRfaW5mbykpOwogICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0
cygncHJldmlvdXNDb21taXQnLCAkY29tbWl0X2luZm8pKQogICAgICAgICAgICAgcmVxdWlyZV9m
b3JtYXQoJ1JldmlzaW9uJywgJGNvbW1pdF9pbmZvWydwcmV2aW91c0NvbW1pdCddLCAnL15bQS1a
YS16MC05IFwuXSskLycpOworICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncmV2aXNpb25M
YWJlbCcsICRjb21taXRfaW5mbykpCisgICAgICAgICAgICByZXF1aXJlX2Zvcm1hdCgnUmV2aXNp
b25MYWJlbCcsICRjb21taXRfaW5mb1sncmV2aXNpb25MYWJlbCddLCAnL15cZCtAXFMrJC8nKTsK
ICAgICB9CiAKICAgICBwcml2YXRlIGZ1bmN0aW9uIHJlc29sdmVfcmVwb3NpdG9yeSgkcmVwb3Np
dG9yeV9uYW1lLCAkb3duZXJfcmVwb3NpdG9yeV9pZCwgJHNob3VsZF9pbnNlcnQpCmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3J0LXByb2Nl
c3Nvci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3J0
LXByb2Nlc3Nvci5waHAKaW5kZXggMWJjMWRiNjQyZGJlZmVmOGVjYjA3MmUxOGI1N2U5YzkxYmMw
NzIzYy4uMWVmOWE2ZDVkZDQzOTg2ZjBkNjk3MTQ0MzU5Njc0OTczZjk4MWMxZCAxMDA2NDQKLS0t
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL3JlcG9ydC1wcm9jZXNz
b3IucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9yZXBv
cnQtcHJvY2Vzc29yLnBocApAQCAtMTU5LDE0ICsxNTksMTIgQEAgY2xhc3MgUmVwb3J0UHJvY2Vz
c29yIHsKICAgICAgICAgICAgICAgICAkdGhpcy0+cm9sbGJhY2tfd2l0aF9lcnJvcignRmFpbGVk
VG9VcGRhdGVCdWlsZFJlcXVlc3QnLCBhcnJheSgnYnVpbGRSZXF1ZXN0JyA9PiAkYnVpbGRfcmVx
dWVzdF9pZCwgJ2J1aWxkJyA9PiAkYnVpbGRfaWQpKTsKICAgICAgICAgfQogCi0KICAgICAgICAg
Zm9yZWFjaCAoJHJldmlzaW9ucyBhcyAkcmVwb3NpdG9yeV9uYW1lID0+ICRyZXZpc2lvbl9kYXRh
KSB7CiAgICAgICAgICAgICAkcmVwb3NpdG9yeV9pZCA9ICR0aGlzLT5kYi0+c2VsZWN0X29yX2lu
c2VydF9yb3coJ3JlcG9zaXRvcmllcycsICdyZXBvc2l0b3J5JywgYXJyYXkoJ25hbWUnID0+ICRy
ZXBvc2l0b3J5X25hbWUsICdvd25lcicgPT4gTlVMTCkpOwogICAgICAgICAgICAgaWYgKCEkcmVw
b3NpdG9yeV9pZCkKICAgICAgICAgICAgICAgICAkdGhpcy0+cm9sbGJhY2tfd2l0aF9lcnJvcign
RmFpbGVkVG9JbnNlcnRSZXBvc2l0b3J5JywgYXJyYXkoJ25hbWUnID0+ICRyZXBvc2l0b3J5X25h
bWUpKTsKIAotICAgICAgICAgICAgJGNvbW1pdF9kYXRhID0gYXJyYXkoJ3JlcG9zaXRvcnknID0+
ICRyZXBvc2l0b3J5X2lkLCAncmV2aXNpb24nID0+ICRyZXZpc2lvbl9kYXRhWydyZXZpc2lvbidd
LCAndGltZScgPT4gYXJyYXlfZ2V0KCRyZXZpc2lvbl9kYXRhLCAndGltZXN0YW1wJykpOwotCisg
ICAgICAgICAgICAkY29tbWl0X2RhdGEgPSBhcnJheSgncmVwb3NpdG9yeScgPT4gJHJlcG9zaXRv
cnlfaWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uX2RhdGFbJ3JldmlzaW9uJ10sICd0aW1lJyA9
PiBhcnJheV9nZXQoJHJldmlzaW9uX2RhdGEsICd0aW1lc3RhbXAnKSwgJ3JldmlzaW9uX2xhYmVs
JyA9PiBhcnJheV9nZXQoJHJldmlzaW9uX2RhdGEsICdyZXZpc2lvbkxhYmVsJywgbnVsbCkpOwog
ICAgICAgICAgICAgJG1pc21hdGNoaW5nX2NvbW1pdCA9ICR0aGlzLT5kYi0+cXVlcnlfYW5kX2Zl
dGNoX2FsbCgnU0VMRUNUICogRlJPTSBidWlsZF9jb21taXRzLCBjb21taXRzCiAgICAgICAgICAg
ICAgICAgV0hFUkUgYnVpbGRfY29tbWl0ID0gY29tbWl0X2lkIEFORCBjb21taXRfYnVpbGQgPSAk
MSBBTkQgY29tbWl0X3JlcG9zaXRvcnkgPSAkMiBBTkQgY29tbWl0X3JldmlzaW9uICE9ICQzIExJ
TUlUIDEnLAogICAgICAgICAgICAgICAgIGFycmF5KCRidWlsZF9pZCwgJHJlcG9zaXRvcnlfaWQs
ICRyZXZpc2lvbl9kYXRhWydyZXZpc2lvbiddKSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9nLmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qcwppbmRleCBlNmQ0ZDQ0
YWJiNTU0MTM0NmUyZjRhOWQ0NDAwOWY3OWE3ODI5MDBiLi44MDQxODQyN2UyMjRjYmI4ODIyMTU1
MWM4NWU3YTFkMDYxMmVkZGFmIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL3YzL21vZGVscy9jb21taXQtbG9nLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1sb2cuanMKQEAgLTIwLDYgKzIwLDcgQEAgY2xh
c3MgQ29tbWl0TG9nIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKIAogICAgICAgICBjb25zb2xl
LmFzc2VydCgrdGhpcy5fcmF3RGF0YVsndGltZSddID09ICtyYXdEYXRhWyd0aW1lJ10pOwogICAg
ICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9yYXdEYXRhWydyZXZpc2lvbiddID09IHJhd0RhdGFb
J3JldmlzaW9uJ10pOworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9yYXdEYXRhWydyZXZp
c2lvbkxhYmVsJ10gPT0gcmF3RGF0YVsncmV2aXNpb25MYWJlbCddKTsKIAogICAgICAgICBpZiAo
cmF3RGF0YS5hdXRob3JOYW1lKQogICAgICAgICAgICAgdGhpcy5fcmF3RGF0YS5hdXRob3JOYW1l
ID0gcmF3RGF0YS5hdXRob3JOYW1lOwpAQCAtMzksNiArNDAsNyBAQCBjbGFzcyBDb21taXRMb2cg
ZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogICAgIHRlc3RhYmlsaXR5KCkgeyByZXR1cm4gdGhp
cy5fcmF3RGF0YVsndGVzdGFiaWxpdHknXTsgfQogICAgIGF1dGhvcigpIHsgcmV0dXJuIHRoaXMu
X3Jhd0RhdGFbJ2F1dGhvck5hbWUnXTsgfQogICAgIHJldmlzaW9uKCkgeyByZXR1cm4gdGhpcy5f
cmF3RGF0YVsncmV2aXNpb24nXTsgfQorICAgIHJldmlzaW9uTGFiZWwoKSB7IHJldHVybiB0aGlz
Ll9yYXdEYXRhWydyZXZpc2lvbkxhYmVsJ107IH0KICAgICBtZXNzYWdlKCkgeyByZXR1cm4gdGhp
cy5fcmF3RGF0YVsnbWVzc2FnZSddOyB9CiAgICAgdXJsKCkgeyByZXR1cm4gdGhpcy5fcmVwb3Np
dG9yeS51cmxGb3JSZXZpc2lvbih0aGlzLl9yYXdEYXRhWydyZXZpc2lvbiddKTsgfQogICAgIG93
bnNDb21taXRzKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsnb3duc0NvbW1pdHMnXTsgfQpAQCAt
NTEsMTEgKzUzLDE1IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7
CiAgICAgbGFiZWwoKQogICAgIHsKICAgICAgICAgY29uc3QgcmV2aXNpb24gPSB0aGlzLnJldmlz
aW9uKCk7CisgICAgICAgIGNvbnN0IHJldmlzaW9uTGFiZWwgPSB0aGlzLnJldmlzaW9uTGFiZWwo
KTsKKyAgICAgICAgbGV0IGZvcm1hdHRlZFJldmlzaW9uID0gcmV2aXNpb247CiAgICAgICAgIGlm
IChwYXJzZUludChyZXZpc2lvbikgPT0gcmV2aXNpb24pIC8vIGUuZy4gcjEyMzQ1Ci0gICAgICAg
ICAgICByZXR1cm4gJ3InICsgcmV2aXNpb247CisgICAgICAgICAgICBmb3JtYXR0ZWRSZXZpc2lv
biA9ICdyJyArIHJldmlzaW9uOwogICAgICAgICBpZiAocmV2aXNpb24ubGVuZ3RoID09IDQwKSAv
LyBlLmcuIGdpdCBoYXNoCi0gICAgICAgICAgICByZXR1cm4gcmV2aXNpb24uc3Vic3RyaW5nKDAs
IDEyKTsKLSAgICAgICAgcmV0dXJuIHJldmlzaW9uOworICAgICAgICAgICAgZm9ybWF0dGVkUmV2
aXNpb24gPSByZXZpc2lvbi5zdWJzdHJpbmcoMCwgMTIpOworICAgICAgICBpZiAocmV2aXNpb25M
YWJlbCkKKyAgICAgICAgICAgIHJldHVybiBgJHtyZXZpc2lvbkxhYmVsfSAoJHtmb3JtYXR0ZWRS
ZXZpc2lvbn0pYDsKKyAgICAgICAgcmV0dXJuIGZvcm1hdHRlZFJldmlzaW9uOwogICAgIH0KICAg
ICB0aXRsZSgpIHsgcmV0dXJuIHRoaXMuX3JlcG9zaXRvcnkubmFtZSgpICsgJyBhdCAnICsgdGhp
cy5sYWJlbCgpOyB9CiAKQEAgLTY4LDE3ICs3NCwxOSBAQCBjbGFzcyBDb21taXRMb2cgZXh0ZW5k
cyBEYXRhTW9kZWxPYmplY3QgewogICAgICAgICBpZiAoIXByZXZpb3VzQ29tbWl0KQogICAgICAg
ICAgICAgcmV0dXJuIHtyZXBvc2l0b3J5OiByZXBvc2l0b3J5LCBsYWJlbDogdGhpcy5sYWJlbCgp
LCB1cmw6IHRoaXMudXJsKCl9OwogCi0gICAgICAgIGNvbnN0IHRvID0gdGhpcy5yZXZpc2lvbigp
OwotICAgICAgICBjb25zdCBmcm9tID0gcHJldmlvdXNDb21taXQucmV2aXNpb24oKTsKLSAgICAg
ICAgbGV0IGxhYmVsID0gbnVsbDsKLSAgICAgICAgaWYgKHBhcnNlSW50KGZyb20pID09IGZyb20p
Ly8gZS5nLiByMTIzNDUuCi0gICAgICAgICAgICBsYWJlbCA9IGByJHtmcm9tfS1yJHt0aGlzLnJl
dmlzaW9uKCl9YDsKLSAgICAgICAgZWxzZSBpZiAodG8ubGVuZ3RoID09IDQwKSAvLyBlLmcuIGdp
dCBoYXNoCi0gICAgICAgICAgICBsYWJlbCA9IGAke2Zyb20uc3Vic3RyaW5nKDAsIDEyKX0uLiR7
dG8uc3Vic3RyaW5nKDAsIDEyKX1gOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBsYWJlbCA9
IGAke2Zyb219IC0gJHt0b31gOwotCi0gICAgICAgIHJldHVybiB7cmVwb3NpdG9yeTogcmVwb3Np
dG9yeSwgbGFiZWw6IGxhYmVsLCB1cmw6IHJlcG9zaXRvcnkudXJsRm9yUmV2aXNpb25SYW5nZShm
cm9tLCB0byl9OworICAgICAgICBjb25zdCB0b1JldmlzaW9uID0gdGhpcy5yZXZpc2lvbigpOwor
ICAgICAgICBjb25zdCBmcm9tUmV2aXNvbiA9IHByZXZpb3VzQ29tbWl0LnJldmlzaW9uKCk7Cisg
ICAgICAgIGNvbnN0IHRvUmV2aXNpb25MYWJlbCA9IHRoaXMucmV2aXNpb25MYWJlbCgpOworICAg
ICAgICBjb25zdCBmcm9tUmV2aXNpb25MYWJlbCA9IHByZXZpb3VzQ29tbWl0LnJldmlzaW9uTGFi
ZWwoKTsKKyAgICAgICAgbGV0IGxhYmVsID0gYCR7cHJldmlvdXNDb21taXQubGFiZWwoKX0gLSAk
e3RoaXMubGFiZWwoKX1gOworICAgICAgICBpZiAoIXRvUmV2aXNpb25MYWJlbCAmJiAhZnJvbVJl
dmlzaW9uTGFiZWwpIHsKKyAgICAgICAgICAgIGlmIChwYXJzZUludChmcm9tUmV2aXNvbikgPT0g
ZnJvbVJldmlzb24pLy8gZS5nLiByMTIzNDUuCisgICAgICAgICAgICAgICAgbGFiZWwgPSBgciR7
ZnJvbVJldmlzb259LXIke3RoaXMucmV2aXNpb24oKX1gOworICAgICAgICAgICAgZWxzZSBpZiAo
dG9SZXZpc2lvbi5sZW5ndGggPT0gNDApIC8vIGUuZy4gZ2l0IGhhc2gKKyAgICAgICAgICAgICAg
ICBsYWJlbCA9IGAke2Zyb21SZXZpc29uLnN1YnN0cmluZygwLCAxMil9Li4ke3RvUmV2aXNpb24u
c3Vic3RyaW5nKDAsIDEyKX1gOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHtyZXBvc2l0
b3J5OiByZXBvc2l0b3J5LCBsYWJlbDogbGFiZWwsIHVybDogcmVwb3NpdG9yeS51cmxGb3JSZXZp
c2lvblJhbmdlKGZyb21SZXZpc29uLCB0b1JldmlzaW9uKX07CiAgICAgfQogCiAgICAgc3RhdGlj
IGZldGNoTGF0ZXN0Q29tbWl0Rm9yUGxhdGZvcm0ocmVwb3NpdG9yeSwgcGxhdGZvcm0pCmRpZmYg
LS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRz
LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29t
bWl0cy10ZXN0cy5qcwppbmRleCAyODU2OWYwNjM3MzA0ZTNhNjJjZjc3MDA5MjM5M2Y3ZjBlNzM2
NTk3Li4xYzAwMjY4NjIzZTIyNWU3NTE0ODhjOWVmN2U0YjdmZTQ4NTM0ODkwIDEwMDY0NAotLS0g
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3Rz
LmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1p
dHMtdGVzdHMuanMKQEAgLTE3LDYgKzE3LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgInJlcG9zaXRvcnki
OiAiV2ViS2l0IiwKICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQ4IiwKKyAgICAg
ICAgICAgICAgICAicmV2aXNpb25MYWJlbCI6ICIxODQyNzZAbWFpbiIsCiAgICAgICAgICAgICAg
ICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMjo1MjozNC41NzdaIiwKICAgICAgICAgICAgICAgICAi
YXV0aG9yIjogeyJuYW1lIjogIlphbGFuIEJ1anRhcyIsICJhY2NvdW50IjogInphbGFuQGFwcGxl
LmNvbSJ9LAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImEgbWVzc2FnZSIsCkBAIC0yNCw2
ICsyNSw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCiAgICAgICAg
ICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OSIsCisgICAgICAgICAgICAgICAgInJldmlzaW9u
TGFiZWwiOiAiMTg0Mjc3QG1haW4iLAogICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEt
MjBUMDM6MjM6NTAuNjQ1WiIsCiAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJD
aHJpcyBEdW1leiIsICJhY2NvdW50IjogImNkdW1lekBhcHBsZS5jb20ifSwKICAgICAgICAgICAg
ICAgICAibWVzc2FnZSI6ICJzb21lIG1lc3NhZ2UiLApAQCAtMzIsMTIgKzM0LDUzIEBAIGRlc2Ny
aWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICJyZXBv
c2l0b3J5IjogIldlYktpdCIsCiAgICAgICAgICAgICAgICAgInByZXZpb3VzQ29tbWl0IjogIjIx
MDk0OSIsCiAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk1MCIsCisgICAgICAgICAg
ICAgICAgInJldmlzaW9uTGFiZWwiOiAiMTg0Mjc4QG1haW4iLAogICAgICAgICAgICAgICAgICJ0
aW1lIjogIjIwMTctMDEtMjBUMDM6NDk6MzcuODg3WiIsCiAgICAgICAgICAgICAgICAgImF1dGhv
ciI6IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Vi
a2l0Lm9yZyJ9LAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImFub3RoZXIgbWVzc2FnZSIs
CisgICAgICAgICAgICB9LAorICAgICAgICBdCisgICAgfTsKKworICAgIGNvbnN0IHN1YmNlcnNp
b25Db21taXRzV2l0aEZha2VSZXZpc2lvbkxhYmVsID0geworICAgICAgICAic2xhdmVOYW1lIjog
InNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisg
ICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBv
c2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OCIs
CisgICAgICAgICAgICAgICAgInJldmlzaW9uTGFiZWwiOiAiMTg0Mjc2QG1haW4iLAorICAgICAg
ICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6NTI6MzQuNTc3WiIsCisgICAgICAgICAg
ICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJaYWxhbiBCdWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxh
bkBhcHBsZS5jb20ifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJhIG1lc3NhZ2UiLAor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9y
eSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDkiLAorICAg
ICAgICAgICAgICAgICJyZXZpc2lvbkxhYmVsIjogIjE4NDI3N0BtYWluIiwKKyAgICAgICAgICAg
ICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjIzOjUwLjY0NVoiLAorICAgICAgICAgICAgICAg
ICJhdXRob3IiOiB7Im5hbWUiOiAiQ2hyaXMgRHVtZXoiLCAiYWNjb3VudCI6ICJjZHVtZXpAYXBw
bGUuY29tIn0sCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAic29tZSBtZXNzYWdlIiwKKyAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9zaXRvcnki
OiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAicHJldmlvdXNDb21taXQiOiAiMjEwOTQ5IiwK
KyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTUwIiwKKyAgICAgICAgICAgICAgICAi
cmV2aXNpb25MYWJlbCI6ICIxODQyNzhAbWFpbiIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAi
MjAxNy0wMS0yMFQwMzo0OTozNy44ODdaIiwKKyAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJu
YW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50IjogImNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
In0sCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdlIiwKKyAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAi
V2ViS2l0IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTUxIiwKKyAgICAgICAg
ICAgICAgICAicmV2aXNpb25MYWJlbCI6ICIxODQyNzhAc29tZXRoaW5nIiwKKyAgICAgICAgICAg
ICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjQ5OjQwLjg4N1oiLAorICAgICAgICAgICAgICAg
ICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0LXF1
ZXVlQHdlYmtpdC5vcmcifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJhbm90aGVyIG1l
c3NhZ2UiLAogICAgICAgICAgICAgfQogICAgICAgICBdCi0gICAgfQorICAgIH07CiAKICAgICBj
b25zdCBjb21taXRzT25lUHJlZml4T2ZUaGVPdGhlciA9IHsKICAgICAgICAgInNsYXZlTmFtZSI6
ICJzb21lU2xhdmUiLApAQCAtNDYsNiArODksNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAicmVwb3NpdG9y
eSI6ICJXZWJLaXQiLAogICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NCIsCisgICAg
ICAgICAgICAgICAgInJldmlzaW9uTGFiZWwiOiAiMTg0MjcyQG1haW4iLAogICAgICAgICAgICAg
ICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6NTI6MzQuNTc3WiIsCiAgICAgICAgICAgICAgICAg
ImF1dGhvciI6IHsibmFtZSI6ICJaYWxhbiBCdWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBs
ZS5jb20ifSwKICAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJhIG1lc3NhZ2UiLApAQCAtNTMs
NiArOTcsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAogICAgICAg
ICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDkiLAorICAgICAgICAgICAgICAgICJyZXZpc2lv
bkxhYmVsIjogIjE4NDI3N0BtYWluIiwKICAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAx
LTIwVDAzOjIzOjUwLjY0NVoiLAogICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAi
Q2hyaXMgRHVtZXoiLCAiYWNjb3VudCI6ICJjZHVtZXpAYXBwbGUuY29tIn0sCiAgICAgICAgICAg
ICAgICAgIm1lc3NhZ2UiOiAic29tZSBtZXNzYWdlIiwKQEAgLTUyNCw2ICs1NjksNDEgQEAgZGVz
Y3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KTsKICAg
ICAgICAgfSk7CiAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gY29tbWl0IHdpdGggY29tbWl0
IHJldmlzaW9uIGxhYmVsIiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgYXdhaXQgYWRkU2xh
dmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpOworICAgICAgICAgICAgY29uc3QgcmVzcG9u
c2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1j
b21taXRzLycsIHN1YnZlcnNpb25Db21taXRzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgY29uc3QgcmVzdWx0
ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKGAvYXBpL2NvbW1pdHMvV2Vi
S2l0LyR7c3VidmVyc2lvbkNvbW1pdHMuY29tbWl0c1swXS5yZXZpc2lvbkxhYmVsfWApOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdC5jb21taXRzLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHQuY29tbWl0
c1swXSwgc3VidmVyc2lvbkNvbW1pdHMuY29tbWl0c1swXSk7CisgICAgICAgIH0pOworCisgICAg
ICAgIGl0KCJzaG91bGQgcmV0dXJuICdBbWJpZ3VvdXNSZXZpc2lvblByZWZpeCcgd2hlbiBtb3Jl
IHRoYW4gb25lIGNvbW1pdHMgYXJlIGZvdW5kIGZvciBhIHJldmlzaW9uIGxhYmVsIHByZWZpeCIs
IGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCk7CisgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJjZXJzaW9u
Q29tbWl0c1dpdGhGYWtlUmV2aXNpb25MYWJlbCk7CisgICAgICAgICAgICBhd2FpdCByZW1vdGUu
cG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YmNlcnNpb25Db21t
aXRzV2l0aEZha2VSZXZpc2lvbkxhYmVsKTsKKyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3
YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzE4NDI3OEA/cHJlZml4LW1h
dGNoPXRydWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1
cyddLCAnQW1iaWd1b3VzUmV2aXNpb25QcmVmaXgnKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAg
aXQoInNob3VsZCBub3QgcmV0dXJuICdBbWJpZ3VvdXNSZXZpc2lvblByZWZpeCcgd2hlbiB0aGVy
ZSBpcyBhIGNvbW1pdCByZXZpc2lvbiBsYWJlbCBleHRyYWN0IG1hdGNoZXMgc3BlY2lmaWVkIHJl
dmlzaW9uIHByZWZpeCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHJlbW90ZSA9
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7CisgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJl
cG9ydChzdWJjZXJzaW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25MYWJlbCk7CisgICAgICAgICAg
ICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycs
IHN1YmNlcnNpb25Db21taXRzV2l0aEZha2VSZXZpc2lvbkxhYmVsKTsKKyAgICAgICAgICAgIGNv
bnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzE4
NDI3OEBtYWluP3ByZWZpeC1tYXRjaD10cnVlJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0
cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3Nl
cnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3ViY2Vy
c2lvbkNvbW1pdHNXaXRoRmFrZVJldmlzaW9uTGFiZWxbJ2NvbW1pdHMnXVsyXSk7CisgICAgICAg
IH0pOworCisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuICdVbmtub3duQ29tbWl0JyB3aGVuIG5v
IGNvbW1pdCBpcyBmb3VuZCBmb3IgYSByZXZpc2lvbiBsYWJlbCBwcmVmaXgiLCBhc3luYyAoKSA9
PiB7CisgICAgICAgICAgICBjb25zdCByZW1vdGUgPSBUZXN0U2VydmVyLnJlbW90ZUFQSSgpOwor
ICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3ViY2Vyc2lvbkNvbW1pdHNXaXRo
RmFrZVJldmlzaW9uTGFiZWwpOworICAgICAgICAgICAgYXdhaXQgcmVtb3RlLnBvc3RKU09OV2l0
aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJjZXJzaW9uQ29tbWl0c1dpdGhGYWtl
UmV2aXNpb25MYWJlbCk7CisgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUu
Z2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8xODQyNzhAeD9wcmVmaXgtbWF0Y2g9dHJ1ZScp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdVbmtu
b3duQ29tbWl0Jyk7CisgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgZGVzY3JpYmUoJy9hcGkv
Y29tbWl0cy88cmVwb3NpdG9yeT4vb3duZWQtY29tbWl0cz9vd25lci1yZXZpc2lvbj08Y29tbWl0
PicsICgpID0+IHsKQEAgLTcyNyw2ICs4MDcsMzMgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8i
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKKyAgICAgICAg
aXQoInNob3VsZCByZXR1cm4gcmVwb3J0ZWQgY29tbWl0cyBpbiB0aGUgc3BlY2lmaWVkIHJldmlz
aW9uIGxhYmVsIHJhbmdlIiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29uc3QgZGIgPSBU
ZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3JlcG9z
aXRvcmllcycsIHsnaWQnOiAxLCAnbmFtZSc6ICdXZWJLaXQnfSk7CisgICAgICAgICAgICBhd2Fp
dCBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEw
OTQ4JywgJ3JldmlzaW9uX2xhYmVsJzogJzE4NDI3NkBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0y
MFQwMjo1MjozNC41NzdaJywgJ3JlcG9ydGVkJzogdHJ1ZX0pOworICAgICAgICAgICAgYXdhaXQg
ZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk0
OScsICdyZXZpc2lvbl9sYWJlbCc6ICcxODQyNzdAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBU
MDM6MjM6NTAuNjQ1WicsICdyZXBvcnRlZCc6IHRydWV9KTsKKyAgICAgICAgICAgIGF3YWl0IGRi
Lmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6ICcyMTA5NTAn
LCAncmV2aXNpb25fbGFiZWwnOiAnMTg0Mjc4QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIwVDAz
OjQ5OjM3Ljg4N1onLCAncmVwb3J0ZWQnOiB0cnVlfSk7CisgICAgICAgICAgICBjb25zdCByZXN1
bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9X
ZWJLaXQvP3ByZWNlZGluZ1JldmlzaW9uPTE4NDI3NkBtYWluJmxhc3RSZXZpc2lvbj0xODQyNzhA
bWFpbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10s
ICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJt
aXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHsKKyAgICAgICAgICAgICAgICBwcmV2aW91c0Nv
bW1pdDogbnVsbCwKKyAgICAgICAgICAgICAgICByZXZpc2lvbjogJzIxMDk0OScsCisgICAgICAg
ICAgICAgICAgcmV2aXNpb25MYWJlbDogJzE4NDI4OUBtYWluJywKKyAgICAgICAgICAgICAgICB0
aW1lOiAnMjAxNy0wMS0yMFQwMzoyMzo1MC42NDVaJywKKyAgICAgICAgICAgICAgICBhdXRob3I6
IHtuYW1lOiBudWxsLCBhY2NvdW50OiBudWxsfSwKKyAgICAgICAgICAgICAgICBtZXNzYWdlOiBu
dWxsLAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09u
ZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVsxXSwgeworICAgICAgICAgICAgICAgIHByZXZp
b3VzQ29tbWl0OiBudWxsLAorICAgICAgICAgICAgICAgIHJldmlzaW9uOiAnMjEwOTUwJywKKyAg
ICAgICAgICAgICAgICByZXZpc2lvbkxhYmVsOiAnMTg0MjkwQG1haW4nLAorICAgICAgICAgICAg
ICAgIHRpbWU6ICcyMDE3LTAxLTIwVDAzOjQ5OjM3Ljg4N1onLAorICAgICAgICAgICAgICAgIGF1
dGhvcjoge25hbWU6IG51bGwsIGFjY291bnQ6IG51bGx9LAorICAgICAgICAgICAgICAgIG1lc3Nh
Z2U6IG51bGwsCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKICAgICAgICAgaXQoInNo
b3VsZCBub3QgaW5jbHVkZSBhIHJldmlzaW9uIG5vdCB3aXRoaW4gdGhlIHNwZWNpZmllZCByYW5n
ZSIsICgpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgp
OwogICAgICAgICAgICAgY29uc3QgcmVtb3RlID0gVGVzdFNlcnZlci5yZW1vdGVBUEkoKTsKQEAg
LTc1MCw2ICs4NTcsMjMgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoInNob3VsZCBub3Qg
aW5jbHVkZSBhIHJldmlzaW9uIG5vdCB3aXRoaW4gdGhlIHNwZWNpZmllZCBjb21taXQgcmV2aXNp
b24gbGFiZWwgcmFuZ2UiLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBkYiA9IFRl
c3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCk7CisgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3JlcG9zaXRvcmll
cycsIHsnaWQnOiAxLCAnbmFtZSc6ICdXZWJLaXQnfSksCisgICAgICAgICAgICBhd2FpdCBkYi5p
bnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTQ3Jywg
J3JldmlzaW9uX2xhYmVsJzogJzE4NDI3NUBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMjoz
ODo0NS40ODVaJywgJ3JlcG9ydGVkJzogZmFsc2V9KTsKKyAgICAgICAgICAgIGF3YWl0IGRiLmlu
c2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6ICcyMTA5NDgnLCAn
cmV2aXNpb25fbGFiZWwnOiAnMTg0Mjc2QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIwVDAyOjUy
OjM0LjU3N1onLCAncmVwb3J0ZWQnOiBmYWxzZX0pOworICAgICAgICAgICAgYXdhaXQgZGIuaW5z
ZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk0OScsICdy
ZXZpc2lvbl9sYWJlbCc6ICcxODQyNzdAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDM6MjM6
NTAuNjQ1WicsICdyZXBvcnRlZCc6IGZhbHNlfSk7CisgICAgICAgICAgICBhd2FpdCBkYi5pbnNl
cnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTUwJywgJ3Jl
dmlzaW9uX2xhYmVsJzogJzE4NDI3OEBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMzo0OToz
Ny44ODdaJywgJ3JlcG9ydGVkJzogZmFsc2V9KTsKKyAgICAgICAgICAgIGF3YWl0IGFkZFNsYXZl
Rm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRzKTsKKyAgICAgICAgICAgIGF3YWl0IHJlbW90ZS5w
b3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1p
dHMpOworICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVtb3RlLmdldEpTT04oJy9h
cGkvY29tbWl0cy9XZWJLaXQvP3ByZWNlZGluZ1JldmlzaW9uPTE4NDI3NUBtYWluJmxhc3RSZXZp
c2lvbj0xODQyNzdAbWFpbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNT
YW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1YnZlcnNpb25Db21taXRz
Wydjb21taXRzJ11bMF0pOworICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJt
aXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMV0sIHN1YnZlcnNpb25Db21taXRzWydjb21taXRzJ11b
MV0pOworICAgICAgICB9KTsKKwogICAgIH0pOwogCiB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpz
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1p
dHMtdGVzdHMuanMKaW5kZXggYjRlZTcyNmYzNTUzMDJhYjE4ZDZjNzM2Y2JiNDBjMzBjNGIxODU5
Yi4uOThhMDc0OTJlMjYxOTJhYjI4YjQ5MGU3ZDRjYTE1Y2VlOGY1NDBhMSAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMt
dGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
cmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKQEAgLTI2LDYgKzI2LDIwIEBAIGRlc2NyaWJlKCIvYXBp
L3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgfQogICAgICAgICBdLAogICAgIH07CisgICAgY29uc3Qgc3VidmVyc2lvbkNvbW1pdFdp
dGhSZXZpc2lvbkxhYmVsID0geworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisg
ICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRz
IjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktp
dCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3NyIsCisgICAgICAgICAgICAg
ICAgInJldmlzaW9uTGFiZWwiOiAiMTI3MjMxQG1haW4iLAorICAgICAgICAgICAgICAgICJ0aW1l
IjogIjIwMTMtMDItMDZUMDg6NTU6MjAuOVoiLAorICAgICAgICAgICAgICAgICJhdXRob3IiOiB7
Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5v
cmcifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJzb21lIG1lc3NhZ2UiLAorICAgICAg
ICAgICAgfQorICAgICAgICBdLAorICAgIH07CiAgICAgY29uc3Qgc3VidmVyc2lvbkludmFsaWRD
b21taXQgPSB7CiAgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKICAgICAgICAgInNs
YXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKQEAgLTc2LDYgKzkwLDQ0IEBAIGRlc2NyaWJl
KCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewog
ICAgICAgICBdCiAgICAgfQogCisgICAgY29uc3QgZHVwbGljYXRlZENvbW1pdFJldmlzaW9uTGFi
ZWxDb21taXRzID0geworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAg
ICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWwor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisg
ICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OCIsCisgICAgICAgICAgICAgICAgInJl
dmlzaW9uTGFiZWwiOiAiMTg0Mjc2QG1haW4iLAorICAgICAgICAgICAgICAgICJ0aW1lIjogIjIw
MTctMDEtMjBUMDI6NTI6MzQuNTc3WiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFt
ZSI6ICJaYWxhbiBCdWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKKyAgICAg
ICAgICAgICAgICAibWVzc2FnZSI6ICJhIG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAorICAgICAg
ICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDkiLAorICAgICAgICAgICAgICAgICJyZXZpc2lv
bkxhYmVsIjogIjE4NDI3NkBtYWluIiwKKyAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAx
LTIwVDAzOjIzOjUwLjY0NVoiLAorICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAi
Q2hyaXMgRHVtZXoiLCAiYWNjb3VudCI6ICJjZHVtZXpAYXBwbGUuY29tIn0sCisgICAgICAgICAg
ICAgICAgIm1lc3NhZ2UiOiAic29tZSBtZXNzYWdlIiwKKyAgICAgICAgICAgIH0sCisgICAgICAg
IF0KKyAgICB9CisKKyAgICBjb25zdCBpbnZhbGlkQ29tbWl0UmV2aXNpb25MYWJlbENvbW1pdHMg
PSB7CisgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAgICAgICAgInNsYXZlUGFz
c3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgImNvbW1pdHMiOiBbCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKKyAgICAgICAgICAg
ICAgICAicmV2aXNpb24iOiAiMjEwOTQ4IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25MYWJl
bCI6ICIxODQyNzYiLAorICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6NTI6
MzQuNTc3WiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJaYWxhbiBCdWp0
YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKKyAgICAgICAgICAgICAgICAibWVz
c2FnZSI6ICJhIG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgXQorICAgIH0KKwog
ICAgIGl0KCJzaG91bGQgcmVqZWN0IGVycm9yIHdoZW4gc2xhdmUgbmFtZSBpcyBtaXNzaW5nIiwg
KCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTign
L2FwaS9yZXBvcnQtY29tbWl0cy8nLCB7fSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNzaW5nU2xhdmVO
YW1lJyk7CkBAIC0xNDUsNiArMTk3LDIyIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRz
LyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KTsKICAgICB9KTsK
IAorICAgIGl0KCJzaG91bGQgcmVqZWN0IGFuIGludmFsaWQgcmV2aXNpb24gbGFiZWwiLCBhc3lu
YyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21t
aXQpOworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgaW52YWxpZENvbW1pdFJldmlzaW9u
TGFiZWxDb21taXRzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ0ludmFsaWRSZXZpc2lvbkxhYmVsJyk7CisgICAgICAgIGNvbnN0IHJvd3MgPSBhd2Fp
dCBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdjb21taXRzJyk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMCk7CisgICAgfSk7CisKKyAgICBpdCgic2hv
dWxkIHJlamVjdCB3aXRoIGR1cGxpY2F0ZWQgY29tbWl0IHJldmlzaW9uIGxhYmVscyIsIGFzeW5j
ICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1p
dCk7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBkdXBsaWNhdGVkQ29tbWl0UmV2aXNp
b25MYWJlbENvbW1pdHMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0
YXR1cyddLCAnRHVwbGljYXRlZFJldmlzaW9uTGFiZWwnKTsKKyAgICAgICAgY29uc3Qgcm93cyA9
IGF3YWl0IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKKyAgICB9KTsKKwogICAgIGl0
KCJzaG91bGQgc3RvcmUgdHdvIGNvbW1pdHMgZnJvbSBhIHZhbGlkIHNsYXZlIiwgKCkgPT4gewog
ICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvblR3b0NvbW1pdHMpLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvblR3b0NvbW1pdHMpOwpAQCAt
MjE1LDYgKzI4MywyNSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNl
cnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKKyAgICBpdCgi
c2hvdWxkIHVwZGF0ZSBhbiBleGlzdGluZyBjb21taXQgd2l0aCBjb21taXQgbGFiZWwgaWYgdGhl
cmUgaXMgb25lIiwgYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIu
ZGF0YWJhc2UoKTsKKyAgICAgICAgY29uc3QgcmVwb3J0ZWREYXRhID0gc3VidmVyc2lvbkNvbW1p
dFdpdGhSZXZpc2lvbkxhYmVsLmNvbW1pdHNbMF07CisgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9y
UmVwb3J0KHN1YnZlcnNpb25Db21taXRXaXRoUmV2aXNpb25MYWJlbCk7CisgICAgICAgIGF3YWl0
IGRiLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEsICduYW1lJzogJ1dlYktpdCd9KSwK
KyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3Jl
dmlzaW9uJzogcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddLCAndGltZSc6IHJlcG9ydGVkRGF0YVsn
dGltZSddfSkKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXRX
aXRoUmV2aXNpb25MYWJlbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdPSycpOworICAgICAgICBjb25zdCBjb21taXRzID0gYXdhaXQgZGIuc2VsZWN0
QWxsKCdjb21taXRzJyk7CisgICAgICAgIGNvbnN0IGNvbW1pdHRlcnMgPSBhd2FpdCBkYi5zZWxl
Y3RBbGwoJ2NvbW1pdHRlcnMnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ21lc3NhZ2UnXSwg
cmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0c1swXVsncmV2aXNpb25fbGFiZWwnXSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbkxhYmVsJ10p
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNv
bW1pdHRlcnNbMF1bJ2lkJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVy
c1swXVsnbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFb
J2F1dGhvciddWydhY2NvdW50J10pOworICAgIH0pOworCiAgICAgaXQoInNob3VsZCBub3QgdXBk
YXRlIGFuIHVucmVsYXRlZCBjb21taXQiLCAoKSA9PiB7CiAgICAgICAgIGNvbnN0IGRiID0gVGVz
dFNlcnZlci5kYXRhYmFzZSgpOwogICAgICAgICBjb25zdCBmaXJzdERhdGEgPSBzdWJ2ZXJzaW9u
VHdvQ29tbWl0cy5jb21taXRzWzBdOwpAQCAtNTkwLDYgKzY3NywxMTEgQEAgZGVzY3JpYmUoIi9h
cGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT3duZWRDb21t
aXRTaG91bGROb3RDb250YWluVGltZXN0YW1wJyk7CiAgICAgICAgIH0pOwogICAgIH0pOworCisg
ICAgY29uc3QgaW52YWxpZE93bmVkQ29tbWl0VXNlUmV2aXNpb25MYWJlbEFzUmV2aXNvbiA9IHsK
KyAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAorICAgICAgICAic2xhdmVQYXNzd29y
ZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAiY29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJPU1giLAorICAgICAgICAgICAgICAgICJy
ZXZpc2lvbiI6ICJTaWVycmExNkQzMiIsCisgICAgICAgICAgICAgICAgIm9yZGVyIjogMSwKKyAg
ICAgICAgICAgICAgICAib3duZWRDb21taXRzIjogeworICAgICAgICAgICAgICAgICAgICAiV2Vi
S2l0IjogeworICAgICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjEyNzIzMkBtYWlu
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1
ZXVlIiwgImFjY291bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmcifSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICJtZXNzYWdlIjogIldlYktpdCBDb21taXQiLAorICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICBdCisgICAg
fTsKKworICAgIGl0KCJzaG91bGQgcmVqZWN0IGluc2VydGluZyBvbmUgY29tbWl0IHdpdGggb3du
ZWQgY29tbWl0cyB0aGF0IHVzZSByZXZpc2lvbiBsYWJlbCBhcyByZXZpc2lvbiIsIGFzeW5jICgp
ID0+IHsKKyAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoaW52YWxpZE93bmVkQ29tbWl0
VXNlUmV2aXNpb25MYWJlbEFzUmV2aXNvbik7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdh
aXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8n
LCBpbnZhbGlkT3duZWRDb21taXRVc2VSZXZpc2lvbkxhYmVsQXNSZXZpc29uKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRPd25Db21taXRS
ZXZpc2lvbicpOworICAgIH0pOworCisgICAgY29uc3QgaW52YWxpZFJldmlzaW9uTGFiZWxPd25l
ZENvbW1pdCA9IHsKKyAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAorICAgICAgICAi
c2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAiY29tbWl0cyI6IFsKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJPU1giLAorICAgICAg
ICAgICAgICAgICJyZXZpc2lvbiI6ICJTaWVycmExNkQzMiIsCisgICAgICAgICAgICAgICAgIm9y
ZGVyIjogMSwKKyAgICAgICAgICAgICAgICAib3duZWRDb21taXRzIjogeworICAgICAgICAgICAg
ICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjog
IjE0MTk3OCIsCisgICAgICAgICAgICAgICAgICAgICAgICAicmV2aXNpb25MYWJlbCI6ICIxMjcy
MzIiLAorICAgICAgICAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQg
UXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Via2l0Lm9yZyJ9LAorICAgICAgICAg
ICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiV2ViS2l0IENvbW1pdCIsCisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIF0KKyAg
ICB9OworCisgICAgaXQoInNob3VsZCByZWplY3QgaW5zZXJ0aW5nIG9uZSBjb21taXQgd2l0aCBv
d25lZCBjb21taXRzIHRoYXQgaGF2ZSBpbnZhbGlkIHJldmlzaW9uIGxhYmVsIiwgYXN5bmMgKCkg
PT4geworICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChpbnZhbGlkUmV2aXNpb25MYWJl
bE93bmVkQ29tbWl0KTsKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGludmFsaWRSZXZp
c2lvbkxhYmVsT3duZWRDb21taXQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnSW52YWxpZE93bkNvbW1pdFJldmlzaW9uTGFiZWwnKTsKKyAgICB9KTsK
KworICAgIGNvbnN0IGludmFsaWRBdXRob3JPd25lZENvbW1pdCA9IHsKKyAgICAgICAgInNsYXZl
TmFtZSI6ICJzb21lU2xhdmUiLAorICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dv
cmQiLAorICAgICAgICAiY29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAicmVwb3NpdG9yeSI6ICJPU1giLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICJTaWVy
cmExNkQzMiIsCisgICAgICAgICAgICAgICAgIm9yZGVyIjogMSwKKyAgICAgICAgICAgICAgICAi
b3duZWRDb21taXRzIjogeworICAgICAgICAgICAgICAgICAgICAiV2ViS2l0IjogeworICAgICAg
ICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3OCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAicmV2aXNpb25MYWJlbCI6ICIxMjcyMzJAbWFpbiIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAiYXV0aG9yIjogbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJtZXNzYWdl
IjogIldlYktpdCBDb21taXQiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgfQorICAgICAgICBdCisgICAgfTsKKyAgICBpdCgic2hvdWxkIHJl
amVjdCBpbnNlcnRpbmcgb25lIGNvbW1pdCB3aXRoIG93bmVkIGNvbW1pdHMgdGhhdCBoYXZlIGlu
dmFsaWQgYXV0aG9yIiwgYXN5bmMgKCkgPT4geworICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJl
cG9ydChpbnZhbGlkQXV0aG9yT3duZWRDb21taXQpOworICAgICAgICBjb25zdCByZXNwb25zZSA9
IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1p
dHMvJywgaW52YWxpZEF1dGhvck93bmVkQ29tbWl0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRPd25Db21taXRBdXRob3JGb3JtYXQnKTsK
KyAgICB9KTsKKworICAgIGNvbnN0IG93bmVkQ29tbWl0V2l0aFJldmlzaW9uTGFiZWwgPSB7Cisg
ICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAgICAgICAgInNsYXZlUGFzc3dvcmQi
OiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgImNvbW1pdHMiOiBbCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiT1NYIiwKKyAgICAgICAgICAgICAgICAicmV2
aXNpb24iOiAiU2llcnJhMTZEMzIiLAorICAgICAgICAgICAgICAgICJvcmRlciI6IDEsCisgICAg
ICAgICAgICAgICAgIm93bmVkQ29tbWl0cyI6IHsKKyAgICAgICAgICAgICAgICAgICAgIldlYktp
dCI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNDE5NzgiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uTGFiZWwiOiAiMTI3MjMyQG1haW4iLAorICAg
ICAgICAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAi
YWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Via2l0Lm9yZyJ9LAorICAgICAgICAgICAgICAgICAg
ICAgICAgIm1lc3NhZ2UiOiAiV2ViS2l0IENvbW1pdCIsCisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIF0KKyAgICB9OworCisg
ICAgaXQoInNob3VsZCBpbnNlcnQgb25lIGNvbW1pdCB3aXRoIGNvbW1pdCByZXZpc2lvbiBsYWJl
bCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQob3duZWRD
b21taXRXaXRoUmV2aXNpb25MYWJlbCk7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQg
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBv
d25lZENvbW1pdFdpdGhSZXZpc2lvbkxhYmVsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZl
ci5kYXRhYmFzZSgpOworICAgICAgICBjb25zdCBjb21taXQgPSBhd2FpdCBkYi5zZWxlY3RSb3dz
KCdjb21taXRzJywgeydyZXZpc2lvbic6ICcxNDE5NzgnfSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChjb21taXRbMF0ucmV2aXNpb25fbGFiZWwsIG93bmVkQ29tbWl0V2l0aFJldmlzaW9u
TGFiZWwuY29tbWl0c1swXS5vd25lZENvbW1pdHNbJ1dlYktpdCddLnJldmlzaW9uTGFiZWwpOwor
ICAgIH0pOwogfSk7CiAKIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2Vy
dD1mYWxzZSIsIGZ1bmN0aW9uICgpIHsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qcwppbmRleCA1YzQ0NWZlZmMw
ZDcyMDRjMGJiNWExNmUwMmNmNjEzNzJmZjNmYjY5Li5iMGVjODc0ZWE2YWQzNzJhOGNmNDg3ZGNl
OTlkMzJiMmYzZWEzNDhlIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL2FwaS1yZXBvcnQtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzCkBAIC03Nyw2ICs3NywyOSBAQCBk
ZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH07CiAgICAgfQog
CisgICAgZnVuY3Rpb24gcmVwb3J0V2l0aFJldmlzaW9uTGFiZWxDb21taXQoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICJidWlsZFRhZyI6ICIxMjMiLAorICAgICAgICAg
ICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzLjM4ODMwNCIsCisgICAgICAgICAg
ICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAorICAgICAgICAgICAgInNsYXZlTmFtZSI6
ICJzb21lU2xhdmUiLAorICAgICAgICAgICAgImJ1aWxkZXJQYXNzd29yZCI6ICJzb21lUGFzc3dv
cmQiLAorICAgICAgICAgICAgInBsYXRmb3JtIjogIk1vdW50YWluIExpb24iLAorICAgICAgICAg
ICAgInRlc3RzIjoge30sCisgICAgICAgICAgICAicmV2aXNpb25zIjogeworICAgICAgICAgICAg
ICAgICJtYWNPUyI6IHsKKyAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjEwLjguMiAx
MkM2MCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICJXZWJLaXQiOiB7Cisg
ICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNDE5NzciLAorICAgICAgICAgICAgICAg
ICAgICAicmV2aXNpb25MYWJlbCI6ICIxMjcyMzFAbWFpbiIsCisgICAgICAgICAgICAgICAgICAg
ICJ0aW1lc3RhbXAiOiAiMjAxMy0wMi0wNlQwODo1NToyMC45WiIKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorCiAgICAgZnVuY3Rpb24gZW1wdHlT
bGF2ZVJlcG9ydCgpCiAgICAgewogICAgICAgICByZXR1cm4gewpAQCAtMzUxLDYgKzM3NCwzNyBA
QCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCisgICAgaXQoInNob3VsZCBhZGQgcmV2aXNpb24gbGFiZWwiLCBhc3luYyAoKSA9PiB7
CisgICAgICAgIGF3YWl0IGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uTGFi
ZWxDb21taXQoKSk7CisgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRXaXRoUmV2aXNpb25MYWJlbENvbW1pdCgpXSk7Cisg
ICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBjb25zdCBy
ZXBvc2l0b3JpZXMgPSBhd2FpdCBkYi5zZWxlY3RBbGwoJ3JlcG9zaXRvcmllcycpOworICAgICAg
ICBjb25zdCBjb21taXRzID0gIGF3YWl0IGRiLnNlbGVjdEFsbCgnY29tbWl0cycpOworICAgICAg
ICBjb25zdCBidWlsZENvbW1pdHNSZWxhdGlvbnMgPSBhd2FpdCAgZGIuc2VsZWN0QWxsKCdidWls
ZF9jb21taXRzJywgJ2J1aWxkX2NvbW1pdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVwb3NpdG9yaWVzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
cmVwb3NpdG9yaWVzLm1hcCgocm93KSA9PiByb3dbJ25hbWUnXSkuc29ydCgpLCBbJ1dlYktpdCcs
ICdtYWNPUyddKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgs
IDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRzUmVsYXRpb25zLmxl
bmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1pdHNSZWxhdGlv
bnNbMF1bJ2J1aWxkX2NvbW1pdCddLCBjb21taXRzWzBdWydpZCddKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1sxXVsnYnVpbGRfY29tbWl0J10sIGNv
bW1pdHNbMV1bJ2lkJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRz
UmVsYXRpb25zWzBdWydjb21taXRfYnVpbGQnXSwgYnVpbGRDb21taXRzUmVsYXRpb25zWzFdWydj
b21taXRfYnVpbGQnXSk7CisKKyAgICAgICAgbGV0IHJlcG9zaXRvcnlJZFRvTmFtZSA9IHt9Owor
ICAgICAgICBmb3IgKGxldCByZXBvc2l0b3J5IG9mIHJlcG9zaXRvcmllcykKKyAgICAgICAgICAg
IHJlcG9zaXRvcnlJZFRvTmFtZVtyZXBvc2l0b3J5WydpZCddXSA9IHJlcG9zaXRvcnlbJ25hbWUn
XTsKKworICAgICAgICBsZXQgcmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93ID0ge307CisgICAg
ICAgIGZvciAobGV0IGNvbW1pdCBvZiBjb21taXRzKQorICAgICAgICAgICAgcmVwb3NpdG9yeU5h
bWVUb1JldmlzaW9uUm93W3JlcG9zaXRvcnlJZFRvTmFtZVtjb21taXRbJ3JlcG9zaXRvcnknXV1d
ID0gY29tbWl0OworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5TmFtZVRv
UmV2aXNpb25Sb3dbJ21hY09TJ11bJ3JldmlzaW9uJ10sICcxMC44LjIgMTJDNjAnKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snV2ViS2l0
J11bJ3JldmlzaW9uJ10sICcxNDE5NzcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snV2ViS2l0J11bJ3JldmlzaW9uX2xhYmVsJ10sICcx
MjcyMzFAbWFpbicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeU5hbWVU
b1JldmlzaW9uUm93WydXZWJLaXQnXVsndGltZSddLnRvU3RyaW5nKCksCisgICAgICAgICAgICBu
ZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7CisgICAgfSk7CisK
ICAgICBpdCgic2hvdWxkIG5vdCBjcmVhdGUgYSBkdXBsaWNhdGUgYnVpbGQgZm9yIHRoZSBzYW1l
IGJ1aWxkIG51bWJlciBpZiBidWlsZCB0aW1lcyBhcmUgY2xvc2UiLCAoKSA9PiB7CiAgICAgICAg
IGNvbnN0IGZpcnN0UmVwb3J0ID0gZW1wdHlSZXBvcnQoKTsKICAgICAgICAgZmlyc3RSZXBvcnRb
J2J1aWxkVGltZSddID0gJzIwMTMtMDItMjhUMTA6MTI6MDQnOwpkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qcyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2NvbW1pdC1sb2ctdGVzdHMuanMKaW5kZXgg
NzBhYmRlYmY4MWU4YWI2MGQxZDE4MTYzZTM5OTE4NzljYjQ3MzhiNi4uMTUxYzI5MzAzN2IzZDg5
NjkyZGFlYjI1OWU2YzgxMDY3MGNjZjA5NCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3VuaXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdW5pdC10ZXN0cy9jb21taXQtbG9nLXRlc3RzLmpzCkBAIC0xNyw2ICsxNywx
NyBAQCBmdW5jdGlvbiB3ZWJraXRDb21taXQoKQogICAgIH0pOwogfQogCitmdW5jdGlvbiB3ZWJr
aXRDb21taXRXaXRoUmV2aXNpb25MYWJlbCgpIAoreworICAgIHJldHVybiBuZXcgQ29tbWl0TG9n
KDEsIHsKKyAgICAgICAgaWQ6IDEsCisgICAgICAgIHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMud2Vi
a2l0LAorICAgICAgICByZXZpc2lvbjogJzIwMDgwNScsCisgICAgICAgIHJldmlzaW9uTGFiZWw6
ICcxODQyNzZAbWFpbicsCisgICAgICAgIHRpbWU6ICsobmV3IERhdGUoJzIwMTYtMDUtMTNUMDA6
NTU6NTcuODQxMzQ0WicpKSwKKyAgICB9KTsKK30KKwogZnVuY3Rpb24gb2xkV2ViS2l0Q29tbWl0
KCkKIHsKICAgICByZXR1cm4gbmV3IENvbW1pdExvZygyLCB7CkBAIC0yNyw2ICszOCwxNyBAQCBm
dW5jdGlvbiBvbGRXZWJLaXRDb21taXQoKQogICAgIH0pOwogfQogCitmdW5jdGlvbiBvbGRXZWJL
aXRDb21taXRXaXRoUmV2aXNpb25MYWJlbCgpCit7CisgICAgcmV0dXJuIG5ldyBDb21taXRMb2co
MiwgeworICAgICAgICBpZDogMiwKKyAgICAgICAgcmVwb3NpdG9yeTogTW9ja01vZGVscy53ZWJr
aXQsCisgICAgICAgIHJldmlzaW9uOiAnMjAwNTc0JywKKyAgICAgICAgcmV2aXNpb25MYWJlbDog
JzE3NTYwNUBtYWluJywKKyAgICAgICAgdGltZTogKyhuZXcgRGF0ZSgnMjAxNi0wNS0wOVQxNDo1
OToyMy41NTM3NjdaJykpLAorICAgIH0pOworfQorCiBmdW5jdGlvbiBnaXRXZWJLaXRDb21taXQo
KQogewogICAgIHJldHVybiBuZXcgQ29tbWl0TG9nKDMsIHsKQEAgLTM3LDYgKzU5LDE3IEBAIGZ1
bmN0aW9uIGdpdFdlYktpdENvbW1pdCgpCiAgICAgfSk7CiB9CiAKK2Z1bmN0aW9uIGdpdFdlYktp
dENvbW1pdFdpdGhSZXZpc2lvbkxhYmVsKCkKK3sKKyAgICByZXR1cm4gbmV3IENvbW1pdExvZygz
LCB7CisgICAgICAgIGlkOiAzLAorICAgICAgICByZXBvc2l0b3J5OiBNb2NrTW9kZWxzLndlYmtp
dCwKKyAgICAgICAgcmV2aXNpb246ICc2ZjhiMGRiYmRhOTVhNDQwNTAzYjg4ZGIxZGQwM2RhZDNh
N2IwN2ZiJywKKyAgICAgICAgcmV2aXNpb25MYWJlbDogJzE4NDI3NkBtYWluJywKKyAgICAgICAg
dGltZTogKyhuZXcgRGF0ZSgnMjAxNi0wNS0xM1QwMDo1NTo1Ny44NDEzNDRaJykpLAorICAgIH0p
OworfQorCiBmdW5jdGlvbiBvbGRHaXRXZWJLaXRDb21taXQoKQogewogICAgIHJldHVybiBuZXcg
Q29tbWl0TG9nKDQsIHsKQEAgLTE0NywxMCArMTgwLDE4IEBAIGRlc2NyaWJlKCdDb21taXRMb2cn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Q29tbWl0KCku
bGFiZWwoKSwgJ3IyMDA4MDUnKTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoJ3Nob3VsZCBw
cmVmaXggcmV2aXNpb24gbGFiZWwgd2l0aCBzdm4gciArIHJldmlzaW9uJywgKCkgPT4geworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdENvbW1pdFdpdGhSZXZpc2lvbkxhYmVs
KCkubGFiZWwoKSwgJzE4NDI3NkBtYWluIChyMjAwODA1KScpCisgICAgICAgIH0pOworCiAgICAg
ICAgIGl0KCdzaG91bGQgdHJ1bmNhdGUgYSBHaXQgaGFzaCBhdCA4dGggY2hhcmFjdGVyJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdpdFdlYktpdENvbW1pdCgpLmxh
YmVsKCksICc2ZjhiMGRiYmRhOTUnKTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoJ3Nob3Vs
ZCBwcmVmaXggcmV2aXNpb24gbGFiZWwgd2l0aCBnaXQgaGFzaCB0cnVuY2F0ZWQnLCAoKSA9PiB7
CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ2l0V2ViS2l0Q29tbWl0V2l0aFJldmlz
aW9uTGFiZWwoKS5sYWJlbCgpLCAnMTg0Mjc2QG1haW4gKDZmOGIwZGJiZGE5NSknKQorICAgICAg
ICB9KTsKKwogICAgICAgICBpdCgnc2hvdWxkIG5vdCBtb2RpZnkgT1MgWCB2ZXJzaW9uJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdCgpLmxhYmVsKCks
ICcxMC4xMS40IDE1RTY1Jyk7CiAgICAgICAgIH0pOwpAQCAtMTYxLDEwICsyMDIsMTggQEAgZGVz
Y3JpYmUoJ0NvbW1pdExvZycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh3ZWJraXRDb21taXQoKS50aXRsZSgpLCAnV2ViS2l0IGF0IHIyMDA4MDUnKTsKICAgICAgICAg
fSk7CiAKLSAgICAgICAgaXQoJ3Nob3VsZCB0cnVuY2F0ZSBhIEdpdCBoYXNoIGF0IDh0aCBjaGFy
YWN0ZXInLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGl0KCdzaG91bGQgcHJlZml4IHJldmlzaW9u
IGxhYmVsJywgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdENv
bW1pdFdpdGhSZXZpc2lvbkxhYmVsKCkudGl0bGUoKSwgJ1dlYktpdCBhdCAxODQyNzZAbWFpbiAo
cjIwMDgwNSknKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCB0cnVuY2F0ZSBh
IEdpdCBoYXNoIGF0IDEydGggY2hhcmFjdGVyJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGdpdFdlYktpdENvbW1pdCgpLnRpdGxlKCksICdXZWJLaXQgYXQgNmY4YjBk
YmJkYTk1Jyk7CiAgICAgICAgIH0pOwogCisgICAgICAgIGl0KCdzaG91bGQgcHJlZml4IHJldmlz
aW9uIGxhYmVsIGZvbGxvd2VkIGJ5IGdpdCBoYXNoIHRydW5jYXRlZCcsICAoKSA9PiB7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ2l0V2ViS2l0Q29tbWl0V2l0aFJldmlzaW9uTGFi
ZWwoKS50aXRsZSgpLCAnV2ViS2l0IGF0IDE4NDI3NkBtYWluICg2ZjhiMGRiYmRhOTUpJyk7Cisg
ICAgICAgIH0pOworCiAgICAgICAgIGl0KCdzaG91bGQgbm90IG1vZGlmeSBPUyBYIHZlcnNpb24n
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0KCkudGl0
bGUoKSwgJ09TIFggYXQgMTAuMTEuNCAxNUU2NScpOwogICAgICAgICB9KTsKQEAgLTIyMyw2ICsy
NzIsMjMgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
ICAgICByZXBvc2l0b3J5OiBNb2NrTW9kZWxzLm9zeAogICAgICAgICAgICAgfSk7CiAgICAgICAg
IH0pOworCisgICAgICAgIGl0KCdzaG91bGQgcHJlZml4IHdpdGggY29tbWl0IHJldmlzaW9uIGxh
YmVsIGFuZCB1c2UgIi0iLCBpZiBib3RoIGhhdmUgcmV2aXNpb24gbGFiZWwnLCAoKSA9PiB7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHdlYmtpdENvbW1pdFdpdGhSZXZpc2lv
bkxhYmVsKCkuZGlmZihvbGRXZWJLaXRDb21taXRXaXRoUmV2aXNpb25MYWJlbCgpKSwgeworICAg
ICAgICAgICAgICAgIGxhYmVsOiAnMTc1NjA1QG1haW4gKHIyMDA1NzQpIC0gMTg0Mjc2QG1haW4g
KHIyMDA4MDUpJywKKyAgICAgICAgICAgICAgICB1cmw6ICcnLAorICAgICAgICAgICAgICAgIHJl
cG9zaXRvcnk6IE1vY2tNb2RlbHMud2Via2l0CisgICAgICAgICAgICB9KQorICAgICAgICB9KTsK
KworICAgICAgICBpdCgnc2hvdWxkIGNvbnRhaW4gcmV2aXNpb24gbGFiZWwsIGlmIG9uZSBvZiB0
aGUgY29tbWl0cyBkb2VzbmB0IGhhdmUgdGhlIHJldmlzaW9uIGxhYmVsJywgKCkgPT4geworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh3ZWJraXRDb21taXRXaXRoUmV2aXNpb25M
YWJlbCgpLmRpZmYob2xkV2ViS2l0Q29tbWl0KCkpLCB7CisgICAgICAgICAgICAgICAgbGFiZWw6
ICdyMjAwNTc0IC0gMTg0Mjc2QG1haW4gKHIyMDA4MDUpJywKKyAgICAgICAgICAgICAgICB1cmw6
ICcnLAorICAgICAgICAgICAgICAgIHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMud2Via2l0CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKICAgICB9KTsKIAogICAgIGRlc2NyaWJlKCdoYXNP
cmRlcmluZycsICgpID0+IHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422992</attachid>
            <date>2021-03-11 16:55:23 -0800</date>
            <delta_ts>2021-03-11 17:13:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222897-20210311165522.patch</filename>
            <type>text/plain</type>
            <size>49908</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MDYxCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1YTg1MWZkODI1NTA1YjQzMGFkNzg3ODZhNTQ1NzI0MzUwNTg0Zjc1Li42ZGIwOGI1NDFh
Y2M2NDliYmYxZWIxZjUzYzUzMWUyNzU1YmFjNmM3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMS0wMy0xMCAgWmhpZmVpIEZhbmcgIDx6aGlmZWlf
ZmFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGNvbW1pdCByZXZpc2lvbiBsYWJlbCBzdXBw
b3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI4
OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
bmV3IGNvbHVtbiByZXZpc2lvbiBsYWJlbC4KKyAgICAgICAgTWFrZSBhbGwgY29tbWl0IGFwaSBh
bHNvIGNhbiB3b3JrIHdpdGggcmV2aXNpb24gbGFiZWwuCisgICAgICAgIENoYW5nZSB0aGUgY29t
bWl0IGxhYmVsIGRpc3BsYXkgd2l0aCBjb21taXQgcmV2aXNpb24gbGFiZWwuCisKKyAgICAgICAg
KiBicm93c2VyLXRlc3RzL2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzOiBGaXggYSBmYWlsZWQg
dGVzdCBjYXNlLCB3aGlsZSByZXF1ZXN0aW5nIHRoZSByZW1vdGUgYXBpLCB0aGlzIGNvbXBvbmVu
dCBzaG91bGQgc2hvdyBhIHNwaW5uZXIuCisgICAgICAgICogaW5pdC1kYXRhYmFzZS5zcWw6IEFk
ZCBuZXcgY29sdW1uIHJldmlzaW9uX2xhYmVsLgorICAgICAgICAqIG1pZ3JhdGUtZGF0YWJhc2Uu
c3FsOiBBZGQgbmV3IGNvbHVtbiByZXZpc2lvbl9sYWJlbC4KKyAgICAgICAgKiBwdWJsaWMvaW5j
bHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwOiBNYWtlIGFwaSB0aGF0IHdvcmtzIHdpdGggcmV2
aXNpb24gc2hvdWxkIHdvcmsgd2l0aCByZXZpc2lvbiBsYWJlbC4KKyAgICAgICAgKiBwdWJsaWMv
aW5jbHVkZS9jb21taXQtdXBkYXRlci5waHA6IERpdHRvLgorICAgICAgICAqIHB1YmxpYy9pbmNs
dWRlL3JlcG9ydC1wcm9jZXNzb3IucGhwOiBNYWtlIHRoZSBwcm9jZXNzb3IgY2FuIGFsc28gaW5z
ZXJ0IHJldmlzaW9uIGxhYmVsLgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvY29tbWl0LWxv
Zy5qczoKKyAgICAgICAgKENvbW1pdExvZy5wcm90b3R5cGUudXBkYXRlU2luZ2xldG9uKToKKyAg
ICAgICAgKENvbW1pdExvZy5wcm90b3R5cGUucmV2aXNpb25MYWJlbCk6CisgICAgICAgIChDb21t
aXRMb2cucHJvdG90eXBlLmxhYmVsKTogTWFrZSB0aGUgbGFiZWwgaW5jbHVkZSByZXZpc2lvbiBs
YWJlbCBhbmQgcmV2aXNpb24uCisgICAgICAgIChDb21taXRMb2cucHJvdG90eXBlLmRpZmYpOiBN
YWtlIHRoZSBkaWZmIGxhYmVsIGluY2x1ZGUgcmV2aXNpb24gbGFiZWwgYW5kIHJldmlzaW9uLgor
ICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qczoKKyAgICAgICAgKiBz
ZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzOgorICAgICAgICAqIHNlcnZl
ci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzOgorICAgICAgICAocmVwb3J0V2l0aFJldmlzaW9u
TGFiZWxDb21taXQpOgorICAgICAgICAqIHVuaXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qczoK
KwogMjAyMS0wMy0wNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBbcGVyZiBkYXNoYm9hcmRdIE1vZGVybml6ZSBUaW1lU2VyaWVzIGFuZCBUaW1lU2VyaWVzVmll
dwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvY29t
bWl0LWxvZy12aWV3ZXItdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nl
ci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcwppbmRleCBkYmM0Y2ZjZDliYzIxNGI3
MDhlZTE5OGYxZWE2NjVmMjI0MjI4NTYwLi42OWMxMWNkZjQ0YmMxOGEzMGJiNTJhMmUxMjEwMjJi
M2M2MjQ4ZDU0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10
ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcwpAQCAtNTUsNiAr
NTUsMTkgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZ1ZpZXdlcicsICgpID0+IHsKICAgICAgICAgIm1l
c3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdlIiwKICAgICB9OwogCisgICAgY29uc3Qgd2Via2l0Q29t
bWl0MjEwOTUwV2l0aFJldmlzaW9uTGFiZWwgPSB7CisgICAgICAgICJpZCI6ICIxODUzMzgiLAor
ICAgICAgICAicmV2aXNpb24iOiAiMjEwOTUwIiwKKyAgICAgICAgInJldmlzaW9uTGFiZWwiOiAi
MTg0Mjc4QG1haW4iLAorICAgICAgICAicmVwb3NpdG9yeSI6IDEsCisgICAgICAgICJwcmV2aW91
c0NvbW1pdCI6IG51bGwsCisgICAgICAgICJvd25zQ29tbWl0cyI6IGZhbHNlLAorICAgICAgICAi
dGltZSI6ICtuZXcgRGF0ZSgiMjAxNy0wMS0yMFQwMzo0OTozNy44ODdaIiksCisgICAgICAgICJh
dXRob3JOYW1lIjogIkNvbW1pdCBRdWV1ZSIsCisgICAgICAgICJhdXRob3JFbWFpbCI6ICJjb21t
aXQtcXVldWVAd2Via2l0Lm9yZyIsCisgICAgICAgICJtZXNzYWdlIjogImFub3RoZXIgbWVzc2Fn
ZSIsCisgICAgfTsKKwogICAgIGl0KCdzaG91bGQgaW5pdGlhbGx5IGJlIGVtcHR5IHdpdGggbm8g
c3Bpbm5lcicsICgpID0+IHsKICAgICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBCcm93c2luZ0Nv
bnRleHQoKTsKICAgICAgICAgcmV0dXJuIGltcG9ydENvbW1pdExvZ1ZpZXdlcihjb250ZXh0KS50
aGVuKChDb21taXRMb2dWaWV3ZXIpID0+IHsKQEAgLTEzMSw4ICsxNDQsOCBAQCBkZXNjcmliZSgn
Q29tbWl0TG9nVmlld2VyJywgKCkgPT4gewogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgICAg
IGF3YWl0IHdhaXRGb3JDb21wb25lbnRzVG9SZW5kZXIoY29udGV4dCk7Ci0KLSAgICAgICAgICAg
IGV4cGVjdCh2aWV3ZXIuY29udGVudCgnc3Bpbm5lci1jb250YWluZXInKS5vZmZzZXRIZWlnaHQp
LnRvLmJlKDApOworICAgICAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdzcGlubmVyLWNv
bnRhaW5lcicpLm9mZnNldEhlaWdodCkubm90LnRvLmJlKDApOworICAgICAgICAgICAgYXdhaXQg
d2FpdEZvckNvbXBvbmVudHNUb1JlbmRlcihjb250ZXh0KTsKICAgICAgICAgICAgIGV4cGVjdCh2
aWV3ZXIuY29udGVudCgnY29tbWl0cy1saXN0JykubWF0Y2hlcygnOmVtcHR5JykpLnRvLmJlKGZh
bHNlKTsKICAgICAgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnY29tbWl0cy1saXN0Jyku
dGV4dENvbnRlbnQpLnRvLmNvbnRhaW4oJ3IyMTA5NDknKTsKICAgICAgICAgICAgIGV4cGVjdCh2
aWV3ZXIuY29udGVudCgnY29tbWl0cy1saXN0JykudGV4dENvbnRlbnQpLnRvLmNvbnRhaW4oJ0No
cmlzIER1bWV6Jyk7CkBAIC0xNDQsNCArMTU3LDQ3IEBAIGRlc2NyaWJlKCdDb21taXRMb2dWaWV3
ZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogICAgIH0pOwogCisgICAgaXQoJ3Nob3VsZCBzaG93
IHJldmlzaW9uIGxhYmVsJywgYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCBjb250ZXh0ID0g
bmV3IEJyb3dzaW5nQ29udGV4dCgpOworICAgICAgICBjb25zdCBDb21taXRMb2dWaWV3ZXIgPSBh
d2FpdCBpbXBvcnRDb21taXRMb2dWaWV3ZXIoY29udGV4dCk7CisgICAgICAgIGNvbnN0IFJlcG9z
aXRvcnkgPSBjb250ZXh0LnN5bWJvbHMuUmVwb3NpdG9yeTsKKyAgICAgICAgY29uc3QgcmVxdWVz
dHMgPSBjb250ZXh0LnN5bWJvbHMuUmVtb3RlQVBJLnJlcXVlc3RzOworICAgICAgICBjb25zdCB2
aWV3ZXIgPSBuZXcgQ29tbWl0TG9nVmlld2VyOworICAgICAgICBjb25zdCB3ZWJraXQgPSBuZXcg
UmVwb3NpdG9yeSgxLCB7bmFtZTogJ1dlYktpdCd9KTsKKyAgICAgICAgY29udGV4dC5kb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKHZpZXdlci5lbGVtZW50KCkpOworCisgICAgICAgIHZpZXdlci5l
bnF1ZXVlVG9SZW5kZXIoKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvckNvbXBvbmVudHNUb1JlbmRl
cihjb250ZXh0KTsKKworICAgICAgICB2aWV3ZXIudmlldyh3ZWJraXQsICcyMTA5NDgnLCAnMjEw
OTUwJyk7CisgICAgICAgIGF3YWl0IHdhaXRGb3JDb21wb25lbnRzVG9SZW5kZXIoY29udGV4dCk7
CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnc3Bpbm5lci1jb250YWluZXInKS5vZmZz
ZXRIZWlnaHQpLnRvLm5vdC5iZSgwKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdj
b21taXRzLWxpc3QnKS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUodHJ1ZSk7CisgICAgICAgIGV4
cGVjdCh2aWV3ZXIuY29udGVudCgncmVwb3NpdG9yeS1uYW1lJykubWF0Y2hlcygnOmVtcHR5Jykp
LnRvLmJlKGZhbHNlKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdyZXBvc2l0b3J5
LW5hbWUnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignV2ViS2l0Jyk7CisgICAgICAgIGV4cGVj
dChyZXF1ZXN0cy5sZW5ndGgpLnRvLmJlKDIpOworICAgICAgICBleHBlY3QocmVxdWVzdHNbMF0u
dXJsKS50by5iZSgnL2FwaS9jb21taXRzLzEvP3ByZWNlZGluZ1JldmlzaW9uPTIxMDk0OCZsYXN0
UmV2aXNpb249MjEwOTUwJyk7CisgICAgICAgIGV4cGVjdChyZXF1ZXN0c1sxXS51cmwpLnRvLmJl
KCcvYXBpL2NvbW1pdHMvMS8yMTA5NDgnKTsKKyAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZSh7
CisgICAgICAgICAgICAic3RhdHVzIjogIk9LIiwKKyAgICAgICAgICAgICJjb21taXRzIjogW3dl
YmtpdENvbW1pdDIxMDk0OSwgd2Via2l0Q29tbWl0MjEwOTUwV2l0aFJldmlzaW9uTGFiZWxdLAor
ICAgICAgICB9KTsKKworICAgICAgICByZXF1ZXN0c1sxXS5yZXNvbHZlKHsKKyAgICAgICAgICAg
ICJzdGF0dXMiOiAiT0siLAorICAgICAgICAgICAgImNvbW1pdHMiOiBbd2Via2l0Q29tbWl0MjEw
OTQ4XSwKKyAgICAgICAgfSk7CisKKyAgICAgICAgYXdhaXQgd2FpdEZvckNvbXBvbmVudHNUb1Jl
bmRlcihjb250ZXh0KTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdzcGlubmVyLWNv
bnRhaW5lcicpLm9mZnNldEhlaWdodCkudG8ubm90LmJlKDApOworICAgICAgICBhd2FpdCB3YWl0
Rm9yQ29tcG9uZW50c1RvUmVuZGVyKGNvbnRleHQpOworICAgICAgICBleHBlY3Qodmlld2VyLmNv
bnRlbnQoJ3NwaW5uZXItY29udGFpbmVyJykub2Zmc2V0SGVpZ2h0KS50by5iZSgwKTsKKyAgICAg
ICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxpc3QnKS5tYXRjaGVzKCc6ZW1wdHkn
KSkudG8uYmUoZmFsc2UpOworICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ2NvbW1pdHMt
bGlzdCcpLnRleHRDb250ZW50KS50by5jb250YWluKCcxODQyNzhAbWFpbiAocjIxMDk1MCknKTsK
KyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxpc3QnKS50ZXh0Q29udGVu
dCkudG8uY29udGFpbignQ29tbWl0IFF1ZXVlJyk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29u
dGVudCgncmVwb3NpdG9yeS1uYW1lJykubWF0Y2hlcygnOmVtcHR5JykpLnRvLmJlKGZhbHNlKTsK
KyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdyZXBvc2l0b3J5LW5hbWUnKS50ZXh0Q29u
dGVudCkudG8uY29udGFpbignV2ViS2l0Jyk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVu
dCgnY29tbWl0cy1saXN0JykucXVlcnlTZWxlY3RvcignYScpKS50by5iZShudWxsKTsKKyAgICB9
KTsKKwogfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRh
YmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwKaW5k
ZXggN2ZmYzg5YWQ4MmM3NjEwNDFkMWE1NTZlODNmN2M5Njc4YTMyZmFjMS4uZDc1NDcxMjZjZmVk
ZTAwMzc5NjFkY2JjZjg2NzU1Yjc3YTNkNzliMSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9pbml0LWRhdGFiYXNlLnNxbApAQCAtMTAyLDYgKzEwMiw3IEBAIENSRUFURSBUQUJMRSBjb21t
aXRzICgKICAgICBjb21taXRfaWQgc2VyaWFsIFBSSU1BUlkgS0VZLAogICAgIGNvbW1pdF9yZXBv
c2l0b3J5IGludGVnZXIgTk9UIE5VTEwgUkVGRVJFTkNFUyByZXBvc2l0b3JpZXMgT04gREVMRVRF
IENBU0NBREUsCiAgICAgY29tbWl0X3JldmlzaW9uIHZhcmNoYXIoNjQpIE5PVCBOVUxMLAorICAg
IGNvbW1pdF9yZXZpc2lvbl9sYWJlbCB2YXJjaGFyKDY0KSBERUZBVUxUIE5VTEwsCiAgICAgY29t
bWl0X3ByZXZpb3VzX2NvbW1pdCBpbnRlZ2VyIFJFRkVSRU5DRVMgY29tbWl0cyBPTiBERUxFVEUg
Q0FTQ0FERSwKICAgICBjb21taXRfdGltZSB0aW1lc3RhbXAsCiAgICAgY29tbWl0X29yZGVyIGlu
dGVnZXIsCkBAIC0xMDksNyArMTEwLDggQEAgQ1JFQVRFIFRBQkxFIGNvbW1pdHMgKAogICAgIGNv
bW1pdF9tZXNzYWdlIHRleHQsCiAgICAgY29tbWl0X3JlcG9ydGVkIGJvb2xlYW4gTk9UIE5VTEwg
REVGQVVMVCBGQUxTRSwKICAgICBjb21taXRfdGVzdGFiaWxpdHkgdmFyY2hhcigxMjgpIERFRkFV
TFQgTlVMTCwKLSAgICBDT05TVFJBSU5UIGNvbW1pdF9pbl9yZXBvc2l0b3J5X211c3RfYmVfdW5p
cXVlIFVOSVFVRShjb21taXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uKSk7CisgICAgQ09O
U1RSQUlOVCBjb21taXRfaW5fcmVwb3NpdG9yeV9tdXN0X2JlX3VuaXF1ZSBVTklRVUUoY29tbWl0
X3JlcG9zaXRvcnksIGNvbW1pdF9yZXZpc2lvbiksCisgICAgQ09OU1RSQUlOVCBjb21taXRfcmV2
aXNpb25fbGFiZWxfaW5fcmVwb3NpdG9yeV9tdXN0X2JlX3VuaXF1ZSBVTklRVUUoY29tbWl0X3Jl
cG9zaXRvcnksIGNvbW1pdF9yZXZpc2lvbl9sYWJlbCkpOwogQ1JFQVRFIElOREVYIGNvbW1pdF90
aW1lX2luZGV4IE9OIGNvbW1pdHMoY29tbWl0X3RpbWUpOwogQ1JFQVRFIElOREVYIGNvbW1pdF9v
cmRlcl9pbmRleCBPTiBjb21taXRzKGNvbW1pdF9vcmRlcik7CiAKZGlmZiAtLWdpdCBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbCBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbAppbmRleCA0OWJkMjQ5ZDJhNjg1Nzc2NDQ5
ZDM2ZTgwNTI2OGZjYzRiODc3YWNhLi5hZGJhNDA2Y2ZkNGJmNWRkZGUxM2I4YTEzOGY5YTk3NDc2
N2VhZTUyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWlncmF0ZS1kYXRh
YmFzZS5zcWwKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL21pZ3JhdGUtZGF0YWJhc2Uu
c3FsCkBAIC0zLDYgKzMsOSBAQCBETyAkJAogQkVHSU4KIEFMVEVSIFRBQkxFIGJ1aWxkX3JlcXVl
c3RzIEFERCBDT0xVTU4gSUYgTk9UIEVYSVNUUyByZXF1ZXN0X3N0YXR1c19kZXNjcmlwdGlvbiB2
YXJjaGFyKDEwMjQpIERFRkFVTFQgTlVMTDsKIEFMVEVSIFRBQkxFIHBsYXRmb3JtcyBBREQgQ09M
VU1OICBJRiBOT1QgRVhJU1RTIHBsYXRmb3JtX2dyb3VwIGludGVnZXIgUkVGRVJFTkNFUyBwbGF0
Zm9ybV9ncm91cHMgREVGQVVMVCBOVUxMOworQUxURVIgVEFCTEUgY29tbWl0cyBBREQgQ09MVU1O
IElGIE5PVCBFWElTVFMgY29tbWl0X3JldmlzaW9uX2xhYmVsIHZhcmNoYXIoNjQpIERFRkFVTFQg
TlVMTDsKK0FMVEVSIFRBQkxFIGNvbW1pdHMgRFJPUCBDT05TVFJBSU5UIGNvbW1pdF9yZXZpc2lv
bl9sYWJlbF9pbl9yZXBvc2l0b3J5X211c3RfYmVfdW5pcXVlOworQUxURVIgVEFCTEUgY29tbWl0
cyBBREQgQ09OU1RSQUlOVCBjb21taXRfcmV2aXNpb25fbGFiZWxfaW5fcmVwb3NpdG9yeV9tdXN0
X2JlX3VuaXF1ZSBVTklRVUUoY29tbWl0X3JlcG9zaXRvcnksIGNvbW1pdF9yZXZpc2lvbl9sYWJl
bCk7CiAKIENSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIHBsYXRmb3JtX2dyb3VwcyAoCiAgICAg
cGxhdGZvcm1ncm91cF9pZCBzZXJpYWwgUFJJTUFSWSBLRVksCmRpZmYgLS1naXQgYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LWxvZy1mZXRjaGVyLnBocCBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNo
ZXIucGhwCmluZGV4IDZlMGJlY2QwYmM4MTY0YzA0MmZkM2ZiMmYzOTk4YzQxNTRmZWIwZTEuLmQ5
OGYxYzM3NjRmNzBjYzE1Yjc5MTk3MjdhYWQxMThlMDc4ZDA0YjggMTAwNjQ0Ci0tLSBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhw
CisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtbG9n
LWZldGNoZXIucGhwCkBAIC04LDE0ICs4LDE2IEBAIGNsYXNzIENvbW1pdExvZ0ZldGNoZXIgewog
CiAgICAgc3RhdGljIGZ1bmN0aW9uIGZpbmRfY29tbWl0X2lkX2J5X3JldmlzaW9uKCRkYiwgJHJl
cG9zaXRvcnlfaWQsICRyZXZpc2lvbikKICAgICB7Ci0gICAgICAgICRjb21taXRfcm93cyA9ICRk
Yi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUIGNvbW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hF
UkUgY29tbWl0X3JlcG9zaXRvcnkgPSAkMSBBTkQgY29tbWl0X3JldmlzaW9uID0gJDInLCBhcnJh
eSgkcmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uKSk7CisgICAgICAgICRjb2x1bW5fbmFtZSA9IENv
bW1pdExvZ0ZldGNoZXI6OmlzX2NvbW1pdF9yZXZpc2lvbl9sYWJlbCgkcmV2aXNpb24pID8gJ2Nv
bW1pdF9yZXZpc2lvbl9sYWJlbCcgOiAnY29tbWl0X3JldmlzaW9uJzsKKyAgICAgICAgCisgICAg
ICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUIGNvbW1p
dF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkgPSAkMSBBTkQgJyAuICRj
b2x1bW5fbmFtZSAuICcgPSAkMicsIGFycmF5KCRyZXBvc2l0b3J5X2lkLCAkcmV2aXNpb24pKTsK
ICAgICAgICAgaWYgKCRjb21taXRfcm93cykKICAgICAgICAgICAgIHJldHVybiAkY29tbWl0X3Jv
d3NbMF1bJ2NvbW1pdF9pZCddOwogCiAgICAgICAgIGlmICghY3R5cGVfYWxudW0oJHJldmlzaW9u
KSkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgICAgICRjb21taXRfcm93cyA9ICRk
Yi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUIGNvbW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hF
UkUgY29tbWl0X3JlcG9zaXRvcnkgPSAkMSBBTkQgY29tbWl0X3JldmlzaW9uIExJS0UgJDIgTElN
SVQgMicsIGFycmF5KCRyZXBvc2l0b3J5X2lkLCBEYXRhYmFzZTo6ZXNjYXBlX2Zvcl9saWtlKCRy
ZXZpc2lvbikgLiAnJScpKTsKKyAgICAgICAgJGNvbW1pdF9yb3dzID0gJGRiLT5xdWVyeV9hbmRf
ZmV0Y2hfYWxsKCdTRUxFQ1QgY29tbWl0X2lkIEZST00gY29tbWl0cyBXSEVSRSBjb21taXRfcmVw
b3NpdG9yeSA9ICQxIEFORCAnIC4gJGNvbHVtbl9uYW1lIC4gJyBMSUtFICQyIExJTUlUIDInLCBh
cnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb24p
IC4gJyUnKSk7CiAgICAgICAgIGlmICghJGNvbW1pdF9yb3dzKQogICAgICAgICAgICAgcmV0dXJu
IE5VTEw7CiAgICAgICAgIGlmIChjb3VudCgkY29tbWl0X3Jvd3MpID4gMSkKQEAgLTU1LDYgKzU3
LDcgQEAgY2xhc3MgQ29tbWl0TG9nRmV0Y2hlciB7CiAgICAgewogICAgICAgICAkc3RhdGVtZW50
cyA9ICdTRUxFQ1QgY29tbWl0X2lkIGFzICJpZCIsCiAgICAgICAgICAgICBjb21taXRfcmV2aXNp
b24gYXMgInJldmlzaW9uIiwKKyAgICAgICAgICAgIGNvbW1pdF9yZXZpc2lvbl9sYWJlbCBhcyAi
cmV2aXNpb25MYWJlbCIsCiAgICAgICAgICAgICBjb21taXRfcHJldmlvdXNfY29tbWl0IGFzICJw
cmV2aW91c0NvbW1pdCIsCiAgICAgICAgICAgICBjb21taXRfdGltZSBhcyAidGltZSIsCiAgICAg
ICAgICAgICBjb21taXR0ZXJfbmFtZSBhcyAiYXV0aG9yTmFtZSIsCkBAIC0xOTIsOCArMTk1LDEz
IEBAIGNsYXNzIENvbW1pdExvZ0ZldGNoZXIgewogICAgICAgICByZXR1cm4gJHRoaXMtPmZvcm1h
dF9zaW5nbGVfY29tbWl0KCRjb21taXQpOwogICAgIH0KIAorICAgIHByaXZhdGUgc3RhdGljIGZ1
bmN0aW9uIGlzX2NvbW1pdF9yZXZpc2lvbl9sYWJlbCgkY29tbWl0X3JldmlzaW9uX29yX3Jldmlz
aW9uX2xhYmVsKSB7CisgICAgICAgIHJldHVybiBwcmVnX21hdGNoKCcvXlxkK0BcUyokLycsICRj
b21taXRfcmV2aXNpb25fb3JfcmV2aXNpb25fbGFiZWwpOworICAgIH0KKwogICAgIHByaXZhdGUg
ZnVuY3Rpb24gY29tbWl0X2Zvcl9yZXZpc2lvbigkcmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uKSB7
Ci0gICAgICAgICRjb21taXRfaW5mbyA9IGFycmF5KCdyZXBvc2l0b3J5JyA9PiAkcmVwb3NpdG9y
eV9pZCwgJ3JldmlzaW9uJyA9PiAkcmV2aXNpb24pOworICAgICAgICAkY29tbWl0X2luZm8gPSBh
cnJheSgncmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlfaWQpOyAKKyAgICAgICAgJGNvbW1pdF9p
bmZvWyR0aGlzLT5pc19jb21taXRfcmV2aXNpb25fbGFiZWwoJHJldmlzaW9uKSA/ICdyZXZpc2lv
bl9sYWJlbCcgOiAncmV2aXNpb24nXSA9ICRyZXZpc2lvbjsKICAgICAgICAgJHJvdyA9ICR0aGlz
LT5kYi0+c2VsZWN0X2xhc3Rfcm93KCdjb21taXRzJywgJ2NvbW1pdCcsICRjb21taXRfaW5mbyk7
CiAgICAgICAgIGlmICghJHJvdykKICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignVW5rbm93
bkNvbW1pdCcsICRjb21taXRfaW5mbyk7CkBAIC0yMDEsNyArMjA5LDggQEAgY2xhc3MgQ29tbWl0
TG9nRmV0Y2hlciB7CiAgICAgfQogCiAgICAgcHJpdmF0ZSBmdW5jdGlvbiBjb21taXRfZm9yX3Jl
dmlzaW9uX3ByZWZpeCgkcmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uX3ByZWZpeCkgewotICAgICAg
ICAkcm93cyA9ICR0aGlzLT5kYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUICogRlJPTSBj
b21taXRzIFdIRVJFIGNvbW1pdF9yZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF9yZXZpc2lvbiBM
SUtFICQyIE9SREVSIEJZIGNvbW1pdF9yZXZpc2lvbiBMSU1JVCAyJywgYXJyYXkoJHJlcG9zaXRv
cnlfaWQsIERhdGFiYXNlOjplc2NhcGVfZm9yX2xpa2UoJHJldmlzaW9uX3ByZWZpeCkgLiAnJScp
KTsKKyAgICAgICAgJGNvbHVtbl9uYW1lID0gJHRoaXMtPmlzX2NvbW1pdF9yZXZpc2lvbl9sYWJl
bCgkcmV2aXNpb25fcHJlZml4KSA/ICdyZXZpc2lvbl9sYWJlbCcgOiAncmV2aXNpb24nOworICAg
ICAgICAkcm93cyA9ICR0aGlzLT5kYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUICogRlJP
TSBjb21taXRzIFdIRVJFIGNvbW1pdF9yZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF8nIC4gJGNv
bHVtbl9uYW1lIC4gJyBMSUtFICQyIE9SREVSIEJZIGNvbW1pdF8nLiRjb2x1bW5fbmFtZS4nIExJ
TUlUIDInLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgk
cmV2aXNpb25fcHJlZml4KSAuICclJykpOwogICAgICAgICBpZiAoY291bnQoJHJvd3MpID09IDAp
CiAgICAgICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ1Vua25vd25Db21taXQnLCBhcnJheSgncmVw
b3NpdG9yeScgPT4gJHJlcG9zaXRvcnlfaWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uX3ByZWZp
eCkpOwogICAgICAgICBpZiAoY291bnQoJHJvd3MpID09IDIpIHsKQEAgLTIyNCw2ICsyMzMsNyBA
QCBjbGFzcyBDb21taXRMb2dGZXRjaGVyIHsKICAgICAgICAgcmV0dXJuIGFycmF5KAogICAgICAg
ICAgICAgJ2lkJyA9PiAkY29tbWl0X3Jvd1snY29tbWl0X2lkJ10sCiAgICAgICAgICAgICAncmV2
aXNpb24nID0+ICRjb21taXRfcm93Wydjb21taXRfcmV2aXNpb24nXSwKKyAgICAgICAgICAgICdy
ZXZpc2lvbkxhYmVsJyA9PiAkY29tbWl0X3Jvd1snY29tbWl0X3JldmlzaW9uX2xhYmVsJ10sCiAg
ICAgICAgICAgICAncmVwb3NpdG9yeScgPT4gJGNvbW1pdF9yb3dbJ2NvbW1pdF9yZXBvc2l0b3J5
J10sCiAgICAgICAgICAgICAncHJldmlvdXNDb21taXQnID0+ICRjb21taXRfcm93Wydjb21taXRf
cHJldmlvdXNfY29tbWl0J10sCiAgICAgICAgICAgICAndGltZScgPT4gRGF0YWJhc2U6OnRvX2pz
X3RpbWUoJGNvbW1pdF9yb3dbJ2NvbW1pdF90aW1lJ10pLApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocCBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtdXBkYXRlci5waHAKaW5k
ZXggMDhjNjhiYmU2NDEwYWZmMDZkYjg3NTQ5OTJhNDhjOTM3ZTcwZTMyZi4uOTUxMTFiZGI4OTE3
MjVlMDVlOTlkMTMyYjIzZDlkYWMyY2ZiZGRhOSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocAorKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LXVwZGF0ZXIucGhwCkBAIC0z
MCw3ICszMCw2IEBAIGNsYXNzIENvbW1pdFVwZGF0ZXIgewogICAgIHByaXZhdGUgZnVuY3Rpb24g
dXBkYXRlX2NvbW1pdCgmJHVwZGF0ZSwgJG93bmVyX2NvbW1pdF9pZCwgJG93bmVyX3JlcG9zaXRv
cnlfaWQsICRzaG91bGRfaW5zZXJ0KQogICAgIHsKICAgICAgICAgJGNvbW1pdF9kYXRhID0gJiR0
aGlzLT5yZXNvbHZlX2ZpZWxkc19mcm9tX2RhdGFiYXNlKCR1cGRhdGUsICRvd25lcl9yZXBvc2l0
b3J5X2lkLCAkc2hvdWxkX2luc2VydCk7Ci0KICAgICAgICAgJGNvbW1pdF9zZWxlY3RfcXVlcnkg
PSBhcnJheSgncmVwb3NpdG9yeScgPT4gJGNvbW1pdF9kYXRhWydyZXBvc2l0b3J5J10sICdyZXZp
c2lvbicgPT4gJGNvbW1pdF9kYXRhWydyZXZpc2lvbiddKTsKICAgICAgICAgaWYgKCRzaG91bGRf
aW5zZXJ0KSB7CiAgICAgICAgICAgICAkY29tbWl0X2lkID0gJHRoaXMtPmRiLT51cGRhdGVfb3Jf
aW5zZXJ0X3JvdygnY29tbWl0cycsICdjb21taXQnLCAkY29tbWl0X3NlbGVjdF9xdWVyeSwgJGNv
bW1pdF9kYXRhKTsKQEAgLTc0LDYgKzczLDcgQEAgY2xhc3MgQ29tbWl0VXBkYXRlciB7CiAgICAg
cHJpdmF0ZSBmdW5jdGlvbiAmY29uc3RydWN0X3VwZGF0ZV9saXN0KCYkY29tbWl0X2luZm9fbGlz
dCwgJHNob3VsZF9pbnNlcnQpCiAgICAgewogICAgICAgICAkdXBkYXRlX2xpc3QgPSBhcnJheSgp
OworICAgICAgICAkY29tbWl0X3JldmlzaW9uX2xhYmVscyA9IGFycmF5KCk7CiAKICAgICAgICAg
Zm9yZWFjaCAoJGNvbW1pdF9pbmZvX2xpc3QgYXMgJiRjb21taXRfaW5mbykgewogICAgICAgICAg
ICAgc2VsZjo6dmFsaWRhdGVfY29tbWl0cygkY29tbWl0X2luZm8pOwpAQCAtODEsNiArODEsMTEg
QEAgY2xhc3MgQ29tbWl0VXBkYXRlciB7CiAgICAgICAgICAgICAkaGFzX3VwZGF0ZSA9IGNvdW50
KCRjb21taXRfZGF0YSkgPiAxOwogCiAgICAgICAgICAgICAkdXBkYXRlID0gYXJyYXkoJ2NvbW1p
dCcgPT4gJiRjb21taXRfZGF0YSwgJ3JlcG9zaXRvcnknID0+ICYkY29tbWl0X2luZm9bJ3JlcG9z
aXRvcnknXSk7CisgICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncmV2aXNpb25MYWJl
bCcsICRjb21taXRfaW5mbykpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0
cygkY29tbWl0X2luZm9bJ3JldmlzaW9uTGFiZWwnXSwgJGNvbW1pdF9yZXZpc2lvbl9sYWJlbHMp
KQorICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZXhpdF93aXRoX2Vycm9yKCdEdXBsaWNhdGVk
UmV2aXNpb25MYWJlbCcsIGFycmF5KCdjb21taXQnID0+ICRjb21taXRfaW5mbykpOworICAgICAg
ICAgICAgICAgICRjb21taXRfcmV2aXNpb25fbGFiZWxzWyRjb21taXRfaW5mb1sncmV2aXNpb25M
YWJlbCddXSA9IHRydWU7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoYXJyYXlfa2V5
X2V4aXN0cygncHJldmlvdXNDb21taXQnLCAkY29tbWl0X2luZm8pKSB7CiAgICAgICAgICAgICAg
ICAgJGhhc191cGRhdGUgPSB0cnVlOwogICAgICAgICAgICAgICAgICR1cGRhdGVbJ3ByZXZpb3Vz
X2NvbW1pdCddID0gJiRjb21taXRfaW5mb1sncHJldmlvdXNDb21taXQnXTsKQEAgLTEwNCw2ICsx
MDksNyBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsKIAogICAgICAgICAgICAgJG93bmVkX2NvbW1p
dF91cGRhdGVfbGlzdCA9IGFycmF5KCk7CiAgICAgICAgICAgICBmb3JlYWNoKCRjb21taXRfaW5m
b1snb3duZWRDb21taXRzJ10gYXMgJG93bmVkX3JlcG9zaXRvcnlfbmFtZSA9PiAmJG93bmVkX2Nv
bW1pdF9pbmZvKSB7CisgICAgICAgICAgICAgICAgc2VsZjo6dmFsaWRhdGVfb3duX2NvbW1pdHMo
JG93bmVkX2NvbW1pdF9pbmZvKTsKICAgICAgICAgICAgICAgICAkb3duZWRfY29tbWl0ID0gJnNl
bGY6OmNvbnN0cnVjdF9jb21taXRfZGF0YSgkb3duZWRfY29tbWl0X2luZm8sICRvd25lZF9yZXBv
c2l0b3J5X25hbWUsICRzaG91bGRfaW5zZXJ0KTsKICAgICAgICAgICAgICAgICAkb3duZWRfY29t
bWl0X3VwZGF0ZSA9IGFycmF5KCdjb21taXQnID0+ICYkb3duZWRfY29tbWl0LCAncmVwb3NpdG9y
eScgPT4gJG93bmVkX3JlcG9zaXRvcnlfbmFtZSk7CiAKQEAgLTE0MywxMiArMTQ5LDI2IEBAIGNs
YXNzIENvbW1pdFVwZGF0ZXIgewogICAgICAgICAgICAgJGNvbW1pdF9kYXRhWyd0aW1lJ10gPSAk
Y29tbWl0X2luZm9bJ3RpbWUnXTsKICAgICAgICAgfQogCisgICAgICAgIGlmIChhcnJheV9rZXlf
ZXhpc3RzKCdyZXZpc2lvbkxhYmVsJywgJGNvbW1pdF9pbmZvKSkKKyAgICAgICAgICAgICRjb21t
aXRfZGF0YVsncmV2aXNpb25fbGFiZWwnXSA9ICRjb21taXRfaW5mb1sncmV2aXNpb25MYWJlbCdd
OworCiAgICAgICAgIGlmICgkc2hvdWxkX2luc2VydCkKICAgICAgICAgICAgICRjb21taXRfZGF0
YVsncmVwb3J0ZWQnXSA9IHRydWU7CiAKICAgICAgICAgcmV0dXJuICRjb21taXRfZGF0YTsKICAg
ICB9CiAKKyAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiB2YWxpZGF0ZV9vd25fY29tbWl0cygm
JGNvbW1pdF9pbmZvKQorICAgIHsKKyAgICAgICAgcmVxdWlyZV9mb3JtYXQoJ093bkNvbW1pdFJl
dmlzaW9uJywgJGNvbW1pdF9pbmZvWydyZXZpc2lvbiddLCAnL15bQS1aYS16MC05IFwuXSskLycp
OworICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncmV2aXNpb25MYWJlbCcsICRjb21taXRf
aW5mbykpCisgICAgICAgICAgICByZXF1aXJlX2Zvcm1hdCgnT3duQ29tbWl0UmV2aXNpb25MYWJl
bCcsICRjb21taXRfaW5mb1sncmV2aXNpb25MYWJlbCddLCAnL15cZCtAXFMrJC8nKTsKKyAgICAg
ICAgaWYgKGFycmF5X2tleV9leGlzdHMoJ3ByZXZpb3VzQ29tbWl0JywgJGNvbW1pdF9pbmZvKSkK
KyAgICAgICAgICAgIHJlcXVpcmVfZm9ybWF0KCdPd25Db21taXRSZXZpc2lvbicsICRjb21taXRf
aW5mb1sncHJldmlvdXNDb21taXQnXSwgJy9eW0EtWmEtejAtOSBcLl0rJC8nKTsKKyAgICAgICAg
aWYgKGFycmF5X2tleV9leGlzdHMoJ2F1dGhvcicsICRjb21taXRfaW5mbykgJiYgIWlzX2FycmF5
KCRjb21taXRfaW5mb1snYXV0aG9yJ10pKQorICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdJ
bnZhbGlkT3duQ29tbWl0QXV0aG9yRm9ybWF0JywgYXJyYXkoJ2NvbW1pdCcgPT4gJGNvbW1pdF9p
bmZvKSk7CisgICAgfQorCiAgICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gdmFsaWRhdGVfY29t
bWl0cygmJGNvbW1pdF9pbmZvKQogICAgIHsKICAgICAgICAgaWYgKCFhcnJheV9rZXlfZXhpc3Rz
KCdyZXBvc2l0b3J5JywgJGNvbW1pdF9pbmZvKSkKQEAgLTE2MCw2ICsxODAsOCBAQCBjbGFzcyBD
b21taXRVcGRhdGVyIHsKICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignSW52YWxpZEF1dGhv
ckZvcm1hdCcsIGFycmF5KCdjb21taXQnID0+ICRjb21taXRfaW5mbykpOwogICAgICAgICBpZiAo
YXJyYXlfa2V5X2V4aXN0cygncHJldmlvdXNDb21taXQnLCAkY29tbWl0X2luZm8pKQogICAgICAg
ICAgICAgcmVxdWlyZV9mb3JtYXQoJ1JldmlzaW9uJywgJGNvbW1pdF9pbmZvWydwcmV2aW91c0Nv
bW1pdCddLCAnL15bQS1aYS16MC05IFwuXSskLycpOworICAgICAgICBpZiAoYXJyYXlfa2V5X2V4
aXN0cygncmV2aXNpb25MYWJlbCcsICRjb21taXRfaW5mbykpCisgICAgICAgICAgICByZXF1aXJl
X2Zvcm1hdCgnUmV2aXNpb25MYWJlbCcsICRjb21taXRfaW5mb1sncmV2aXNpb25MYWJlbCddLCAn
L15cZCtAXFMrJC8nKTsKICAgICB9CiAKICAgICBwcml2YXRlIGZ1bmN0aW9uIHJlc29sdmVfcmVw
b3NpdG9yeSgkcmVwb3NpdG9yeV9uYW1lLCAkb3duZXJfcmVwb3NpdG9yeV9pZCwgJHNob3VsZF9p
bnNlcnQpCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1
ZGUvcmVwb3J0LXByb2Nlc3Nvci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L2luY2x1ZGUvcmVwb3J0LXByb2Nlc3Nvci5waHAKaW5kZXggMWJjMWRiNjQyZGJlZmVmOGVjYjA3
MmUxOGI1N2U5YzkxYmMwNzIzYy4uMWVmOWE2ZDVkZDQzOTg2ZjBkNjk3MTQ0MzU5Njc0OTczZjk4
MWMxZCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRl
L3JlcG9ydC1wcm9jZXNzb3IucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvaW5jbHVkZS9yZXBvcnQtcHJvY2Vzc29yLnBocApAQCAtMTU5LDE0ICsxNTksMTIgQEAgY2xh
c3MgUmVwb3J0UHJvY2Vzc29yIHsKICAgICAgICAgICAgICAgICAkdGhpcy0+cm9sbGJhY2tfd2l0
aF9lcnJvcignRmFpbGVkVG9VcGRhdGVCdWlsZFJlcXVlc3QnLCBhcnJheSgnYnVpbGRSZXF1ZXN0
JyA9PiAkYnVpbGRfcmVxdWVzdF9pZCwgJ2J1aWxkJyA9PiAkYnVpbGRfaWQpKTsKICAgICAgICAg
fQogCi0KICAgICAgICAgZm9yZWFjaCAoJHJldmlzaW9ucyBhcyAkcmVwb3NpdG9yeV9uYW1lID0+
ICRyZXZpc2lvbl9kYXRhKSB7CiAgICAgICAgICAgICAkcmVwb3NpdG9yeV9pZCA9ICR0aGlzLT5k
Yi0+c2VsZWN0X29yX2luc2VydF9yb3coJ3JlcG9zaXRvcmllcycsICdyZXBvc2l0b3J5JywgYXJy
YXkoJ25hbWUnID0+ICRyZXBvc2l0b3J5X25hbWUsICdvd25lcicgPT4gTlVMTCkpOwogICAgICAg
ICAgICAgaWYgKCEkcmVwb3NpdG9yeV9pZCkKICAgICAgICAgICAgICAgICAkdGhpcy0+cm9sbGJh
Y2tfd2l0aF9lcnJvcignRmFpbGVkVG9JbnNlcnRSZXBvc2l0b3J5JywgYXJyYXkoJ25hbWUnID0+
ICRyZXBvc2l0b3J5X25hbWUpKTsKIAotICAgICAgICAgICAgJGNvbW1pdF9kYXRhID0gYXJyYXko
J3JlcG9zaXRvcnknID0+ICRyZXBvc2l0b3J5X2lkLCAncmV2aXNpb24nID0+ICRyZXZpc2lvbl9k
YXRhWydyZXZpc2lvbiddLCAndGltZScgPT4gYXJyYXlfZ2V0KCRyZXZpc2lvbl9kYXRhLCAndGlt
ZXN0YW1wJykpOwotCisgICAgICAgICAgICAkY29tbWl0X2RhdGEgPSBhcnJheSgncmVwb3NpdG9y
eScgPT4gJHJlcG9zaXRvcnlfaWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uX2RhdGFbJ3Jldmlz
aW9uJ10sICd0aW1lJyA9PiBhcnJheV9nZXQoJHJldmlzaW9uX2RhdGEsICd0aW1lc3RhbXAnKSwg
J3JldmlzaW9uX2xhYmVsJyA9PiBhcnJheV9nZXQoJHJldmlzaW9uX2RhdGEsICdyZXZpc2lvbkxh
YmVsJywgbnVsbCkpOwogICAgICAgICAgICAgJG1pc21hdGNoaW5nX2NvbW1pdCA9ICR0aGlzLT5k
Yi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUICogRlJPTSBidWlsZF9jb21taXRzLCBjb21t
aXRzCiAgICAgICAgICAgICAgICAgV0hFUkUgYnVpbGRfY29tbWl0ID0gY29tbWl0X2lkIEFORCBj
b21taXRfYnVpbGQgPSAkMSBBTkQgY29tbWl0X3JlcG9zaXRvcnkgPSAkMiBBTkQgY29tbWl0X3Jl
dmlzaW9uICE9ICQzIExJTUlUIDEnLAogICAgICAgICAgICAgICAgIGFycmF5KCRidWlsZF9pZCwg
JHJlcG9zaXRvcnlfaWQsICRyZXZpc2lvbl9kYXRhWydyZXZpc2lvbiddKSk7CmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9nLmpz
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5q
cwppbmRleCBlNmQ0ZDQ0YWJiNTU0MTM0NmUyZjRhOWQ0NDAwOWY3OWE3ODI5MDBiLi44MDQxODQy
N2UyMjRjYmI4ODIyMTU1MWM4NWU3YTFkMDYxMmVkZGFmIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9nLmpzCisrKyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1sb2cuanMKQEAgLTIw
LDYgKzIwLDcgQEAgY2xhc3MgQ29tbWl0TG9nIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKIAog
ICAgICAgICBjb25zb2xlLmFzc2VydCgrdGhpcy5fcmF3RGF0YVsndGltZSddID09ICtyYXdEYXRh
Wyd0aW1lJ10pOwogICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9yYXdEYXRhWydyZXZpc2lv
biddID09IHJhd0RhdGFbJ3JldmlzaW9uJ10pOworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlz
Ll9yYXdEYXRhWydyZXZpc2lvbkxhYmVsJ10gPT0gcmF3RGF0YVsncmV2aXNpb25MYWJlbCddKTsK
IAogICAgICAgICBpZiAocmF3RGF0YS5hdXRob3JOYW1lKQogICAgICAgICAgICAgdGhpcy5fcmF3
RGF0YS5hdXRob3JOYW1lID0gcmF3RGF0YS5hdXRob3JOYW1lOwpAQCAtMzksNiArNDAsNyBAQCBj
bGFzcyBDb21taXRMb2cgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogICAgIHRlc3RhYmlsaXR5
KCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsndGVzdGFiaWxpdHknXTsgfQogICAgIGF1dGhvcigp
IHsgcmV0dXJuIHRoaXMuX3Jhd0RhdGFbJ2F1dGhvck5hbWUnXTsgfQogICAgIHJldmlzaW9uKCkg
eyByZXR1cm4gdGhpcy5fcmF3RGF0YVsncmV2aXNpb24nXTsgfQorICAgIHJldmlzaW9uTGFiZWwo
KSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydyZXZpc2lvbkxhYmVsJ107IH0KICAgICBtZXNzYWdl
KCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsnbWVzc2FnZSddOyB9CiAgICAgdXJsKCkgeyByZXR1
cm4gdGhpcy5fcmVwb3NpdG9yeS51cmxGb3JSZXZpc2lvbih0aGlzLl9yYXdEYXRhWydyZXZpc2lv
biddKTsgfQogICAgIG93bnNDb21taXRzKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsnb3duc0Nv
bW1pdHMnXTsgfQpAQCAtNTEsMTEgKzUzLDE1IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERh
dGFNb2RlbE9iamVjdCB7CiAgICAgbGFiZWwoKQogICAgIHsKICAgICAgICAgY29uc3QgcmV2aXNp
b24gPSB0aGlzLnJldmlzaW9uKCk7CisgICAgICAgIGNvbnN0IHJldmlzaW9uTGFiZWwgPSB0aGlz
LnJldmlzaW9uTGFiZWwoKTsKKyAgICAgICAgbGV0IGZvcm1hdHRlZFJldmlzaW9uID0gcmV2aXNp
b247CiAgICAgICAgIGlmIChwYXJzZUludChyZXZpc2lvbikgPT0gcmV2aXNpb24pIC8vIGUuZy4g
cjEyMzQ1Ci0gICAgICAgICAgICByZXR1cm4gJ3InICsgcmV2aXNpb247CisgICAgICAgICAgICBm
b3JtYXR0ZWRSZXZpc2lvbiA9ICdyJyArIHJldmlzaW9uOwogICAgICAgICBpZiAocmV2aXNpb24u
bGVuZ3RoID09IDQwKSAvLyBlLmcuIGdpdCBoYXNoCi0gICAgICAgICAgICByZXR1cm4gcmV2aXNp
b24uc3Vic3RyaW5nKDAsIDEyKTsKLSAgICAgICAgcmV0dXJuIHJldmlzaW9uOworICAgICAgICAg
ICAgZm9ybWF0dGVkUmV2aXNpb24gPSByZXZpc2lvbi5zdWJzdHJpbmcoMCwgMTIpOworICAgICAg
ICBpZiAocmV2aXNpb25MYWJlbCkKKyAgICAgICAgICAgIHJldHVybiBgJHtyZXZpc2lvbkxhYmVs
fSAoJHtmb3JtYXR0ZWRSZXZpc2lvbn0pYDsKKyAgICAgICAgcmV0dXJuIGZvcm1hdHRlZFJldmlz
aW9uOwogICAgIH0KICAgICB0aXRsZSgpIHsgcmV0dXJuIHRoaXMuX3JlcG9zaXRvcnkubmFtZSgp
ICsgJyBhdCAnICsgdGhpcy5sYWJlbCgpOyB9CiAKQEAgLTY4LDE3ICs3NCwxOSBAQCBjbGFzcyBD
b21taXRMb2cgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogICAgICAgICBpZiAoIXByZXZpb3Vz
Q29tbWl0KQogICAgICAgICAgICAgcmV0dXJuIHtyZXBvc2l0b3J5OiByZXBvc2l0b3J5LCBsYWJl
bDogdGhpcy5sYWJlbCgpLCB1cmw6IHRoaXMudXJsKCl9OwogCi0gICAgICAgIGNvbnN0IHRvID0g
dGhpcy5yZXZpc2lvbigpOwotICAgICAgICBjb25zdCBmcm9tID0gcHJldmlvdXNDb21taXQucmV2
aXNpb24oKTsKLSAgICAgICAgbGV0IGxhYmVsID0gbnVsbDsKLSAgICAgICAgaWYgKHBhcnNlSW50
KGZyb20pID09IGZyb20pLy8gZS5nLiByMTIzNDUuCi0gICAgICAgICAgICBsYWJlbCA9IGByJHtm
cm9tfS1yJHt0aGlzLnJldmlzaW9uKCl9YDsKLSAgICAgICAgZWxzZSBpZiAodG8ubGVuZ3RoID09
IDQwKSAvLyBlLmcuIGdpdCBoYXNoCi0gICAgICAgICAgICBsYWJlbCA9IGAke2Zyb20uc3Vic3Ry
aW5nKDAsIDEyKX0uLiR7dG8uc3Vic3RyaW5nKDAsIDEyKX1gOwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBsYWJlbCA9IGAke2Zyb219IC0gJHt0b31gOwotCi0gICAgICAgIHJldHVybiB7cmVw
b3NpdG9yeTogcmVwb3NpdG9yeSwgbGFiZWw6IGxhYmVsLCB1cmw6IHJlcG9zaXRvcnkudXJsRm9y
UmV2aXNpb25SYW5nZShmcm9tLCB0byl9OworICAgICAgICBjb25zdCB0b1JldmlzaW9uID0gdGhp
cy5yZXZpc2lvbigpOworICAgICAgICBjb25zdCBmcm9tUmV2aXNvbiA9IHByZXZpb3VzQ29tbWl0
LnJldmlzaW9uKCk7CisgICAgICAgIGNvbnN0IHRvUmV2aXNpb25MYWJlbCA9IHRoaXMucmV2aXNp
b25MYWJlbCgpOworICAgICAgICBjb25zdCBmcm9tUmV2aXNpb25MYWJlbCA9IHByZXZpb3VzQ29t
bWl0LnJldmlzaW9uTGFiZWwoKTsKKyAgICAgICAgbGV0IGxhYmVsID0gYCR7cHJldmlvdXNDb21t
aXQubGFiZWwoKX0gLSAke3RoaXMubGFiZWwoKX1gOworICAgICAgICBpZiAoIXRvUmV2aXNpb25M
YWJlbCAmJiAhZnJvbVJldmlzaW9uTGFiZWwpIHsKKyAgICAgICAgICAgIGlmIChwYXJzZUludChm
cm9tUmV2aXNvbikgPT0gZnJvbVJldmlzb24pLy8gZS5nLiByMTIzNDUuCisgICAgICAgICAgICAg
ICAgbGFiZWwgPSBgciR7ZnJvbVJldmlzb259LXIke3RoaXMucmV2aXNpb24oKX1gOworICAgICAg
ICAgICAgZWxzZSBpZiAodG9SZXZpc2lvbi5sZW5ndGggPT0gNDApIC8vIGUuZy4gZ2l0IGhhc2gK
KyAgICAgICAgICAgICAgICBsYWJlbCA9IGAke2Zyb21SZXZpc29uLnN1YnN0cmluZygwLCAxMil9
Li4ke3RvUmV2aXNpb24uc3Vic3RyaW5nKDAsIDEyKX1gOworICAgICAgICB9CisKKyAgICAgICAg
cmV0dXJuIHtyZXBvc2l0b3J5OiByZXBvc2l0b3J5LCBsYWJlbDogbGFiZWwsIHVybDogcmVwb3Np
dG9yeS51cmxGb3JSZXZpc2lvblJhbmdlKGZyb21SZXZpc29uLCB0b1JldmlzaW9uKX07CiAgICAg
fQogCiAgICAgc3RhdGljIGZldGNoTGF0ZXN0Q29tbWl0Rm9yUGxhdGZvcm0ocmVwb3NpdG9yeSwg
cGxhdGZvcm0pCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL2FwaS1jb21taXRzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcwppbmRleCAyODU2OWYwNjM3MzA0ZTNhNjJjZjc3
MDA5MjM5M2Y3ZjBlNzM2NTk3Li4xYzAwMjY4NjIzZTIyNWU3NTE0ODhjOWVmN2U0YjdmZTQ4NTM0
ODkwIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2Fw
aS1jb21taXRzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMKQEAgLTE3LDYgKzE3LDcgQEAgZGVzY3JpYmUoIi9h
cGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAi
MjEwOTQ4IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25MYWJlbCI6ICIxODQyNzZAbWFpbiIs
CiAgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMjo1MjozNC41NzdaIiwKICAg
ICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIlphbGFuIEJ1anRhcyIsICJhY2NvdW50
IjogInphbGFuQGFwcGxlLmNvbSJ9LAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImEgbWVz
c2FnZSIsCkBAIC0yNCw2ICsyNSw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldl
YktpdCIsCiAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OSIsCisgICAgICAgICAg
ICAgICAgInJldmlzaW9uTGFiZWwiOiAiMTg0Mjc3QG1haW4iLAogICAgICAgICAgICAgICAgICJ0
aW1lIjogIjIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1WiIsCiAgICAgICAgICAgICAgICAgImF1dGhv
ciI6IHsibmFtZSI6ICJDaHJpcyBEdW1leiIsICJhY2NvdW50IjogImNkdW1lekBhcHBsZS5jb20i
fSwKICAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJzb21lIG1lc3NhZ2UiLApAQCAtMzIsMTIg
KzM0LDUzIEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCiAgICAgICAgICAgICAgICAgInByZXZp
b3VzQ29tbWl0IjogIjIxMDk0OSIsCiAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk1
MCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uTGFiZWwiOiAiMTg0Mjc4QG1haW4iLAogICAg
ICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDM6NDk6MzcuODg3WiIsCiAgICAgICAg
ICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3VudCI6ICJj
b21taXQtcXVldWVAd2Via2l0Lm9yZyJ9LAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImFu
b3RoZXIgbWVzc2FnZSIsCisgICAgICAgICAgICB9LAorICAgICAgICBdCisgICAgfTsKKworICAg
IGNvbnN0IHN1YmNlcnNpb25Db21taXRzV2l0aEZha2VSZXZpc2lvbkxhYmVsID0geworICAgICAg
ICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNv
bWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlz
aW9uIjogIjIxMDk0OCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uTGFiZWwiOiAiMTg0Mjc2
QG1haW4iLAorICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6NTI6MzQuNTc3
WiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJaYWxhbiBCdWp0YXMiLCAi
YWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6
ICJhIG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6
ICIyMTA5NDkiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbkxhYmVsIjogIjE4NDI3N0BtYWlu
IiwKKyAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjIzOjUwLjY0NVoiLAor
ICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ2hyaXMgRHVtZXoiLCAiYWNjb3Vu
dCI6ICJjZHVtZXpAYXBwbGUuY29tIn0sCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAic29t
ZSBtZXNzYWdlIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAicHJldmlvdXNDb21t
aXQiOiAiMjEwOTQ5IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTUwIiwKKyAg
ICAgICAgICAgICAgICAicmV2aXNpb25MYWJlbCI6ICIxODQyNzhAbWFpbiIsCisgICAgICAgICAg
ICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMzo0OTozNy44ODdaIiwKKyAgICAgICAgICAgICAg
ICAiYXV0aG9yIjogeyJuYW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50IjogImNvbW1pdC1x
dWV1ZUB3ZWJraXQub3JnIn0sCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYW5vdGhlciBt
ZXNzYWdlIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
InJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEw
OTUxIiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25MYWJlbCI6ICIxODQyNzhAc29tZXRoaW5n
IiwKKyAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjQ5OjQwLjg4N1oiLAor
ICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291
bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmcifSwKKyAgICAgICAgICAgICAgICAibWVzc2Fn
ZSI6ICJhbm90aGVyIG1lc3NhZ2UiLAogICAgICAgICAgICAgfQogICAgICAgICBdCi0gICAgfQor
ICAgIH07CiAKICAgICBjb25zdCBjb21taXRzT25lUHJlZml4T2ZUaGVPdGhlciA9IHsKICAgICAg
ICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLApAQCAtNDYsNiArODksNyBAQCBkZXNjcmliZSgi
L2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAogICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6
ICIyMTA5NCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uTGFiZWwiOiAiMTg0MjcyQG1haW4i
LAogICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6NTI6MzQuNTc3WiIsCiAg
ICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJaYWxhbiBCdWp0YXMiLCAiYWNjb3Vu
dCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKICAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJhIG1l
c3NhZ2UiLApAQCAtNTMsNiArOTcsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJX
ZWJLaXQiLAogICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDkiLAorICAgICAgICAg
ICAgICAgICJyZXZpc2lvbkxhYmVsIjogIjE4NDI3N0BtYWluIiwKICAgICAgICAgICAgICAgICAi
dGltZSI6ICIyMDE3LTAxLTIwVDAzOjIzOjUwLjY0NVoiLAogICAgICAgICAgICAgICAgICJhdXRo
b3IiOiB7Im5hbWUiOiAiQ2hyaXMgRHVtZXoiLCAiYWNjb3VudCI6ICJjZHVtZXpAYXBwbGUuY29t
In0sCiAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAic29tZSBtZXNzYWdlIiwKQEAgLTUyNCw2
ICs1NjksNDEgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gY29t
bWl0IHdpdGggY29tbWl0IHJldmlzaW9uIGxhYmVsIiwgYXN5bmMgKCkgPT4geworICAgICAgICAg
ICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpOworICAgICAgICAg
ICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09O
KCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXRzKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAg
ICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKGAv
YXBpL2NvbW1pdHMvV2ViS2l0LyR7c3VidmVyc2lvbkNvbW1pdHMuY29tbWl0c1swXS5yZXZpc2lv
bkxhYmVsfWApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVz
J10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdC5jb21taXRz
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRl
ZChyZXN1bHQuY29tbWl0c1swXSwgc3VidmVyc2lvbkNvbW1pdHMuY29tbWl0c1swXSk7CisgICAg
ICAgIH0pOworCisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuICdBbWJpZ3VvdXNSZXZpc2lvblBy
ZWZpeCcgd2hlbiBtb3JlIHRoYW4gb25lIGNvbW1pdHMgYXJlIGZvdW5kIGZvciBhIHJldmlzaW9u
IGxhYmVsIHByZWZpeCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHJlbW90ZSA9
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7CisgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJl
cG9ydChzdWJjZXJzaW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25MYWJlbCk7CisgICAgICAgICAg
ICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycs
IHN1YmNlcnNpb25Db21taXRzV2l0aEZha2VSZXZpc2lvbkxhYmVsKTsKKyAgICAgICAgICAgIGNv
bnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzE4
NDI3OEA/cHJlZml4LW1hdGNoPXRydWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXN1bHRbJ3N0YXR1cyddLCAnQW1iaWd1b3VzUmV2aXNpb25QcmVmaXgnKTsKKyAgICAgICAg
fSk7CisKKyAgICAgICAgaXQoInNob3VsZCBub3QgcmV0dXJuICdBbWJpZ3VvdXNSZXZpc2lvblBy
ZWZpeCcgd2hlbiB0aGVyZSBpcyBhIGNvbW1pdCByZXZpc2lvbiBsYWJlbCBleHRyYWN0IG1hdGNo
ZXMgc3BlY2lmaWVkIHJldmlzaW9uIHByZWZpeCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAg
IGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7CisgICAgICAgICAgICBhd2Fp
dCBhZGRTbGF2ZUZvclJlcG9ydChzdWJjZXJzaW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25MYWJl
bCk7CisgICAgICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3Jl
cG9ydC1jb21taXRzLycsIHN1YmNlcnNpb25Db21taXRzV2l0aEZha2VSZXZpc2lvbkxhYmVsKTsK
KyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2Nv
bW1pdHMvV2ViS2l0LzE4NDI3OEBtYWluP3ByZWZpeC1tYXRjaD10cnVlJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1p
dHMnXVswXSwgc3ViY2Vyc2lvbkNvbW1pdHNXaXRoRmFrZVJldmlzaW9uTGFiZWxbJ2NvbW1pdHMn
XVsyXSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuICdVbmtub3du
Q29tbWl0JyB3aGVuIG5vIGNvbW1pdCBpcyBmb3VuZCBmb3IgYSByZXZpc2lvbiBsYWJlbCBwcmVm
aXgiLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCByZW1vdGUgPSBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpOworICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3ViY2Vy
c2lvbkNvbW1pdHNXaXRoRmFrZVJldmlzaW9uTGFiZWwpOworICAgICAgICAgICAgYXdhaXQgcmVt
b3RlLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJjZXJzaW9u
Q29tbWl0c1dpdGhGYWtlUmV2aXNpb25MYWJlbCk7CisgICAgICAgICAgICBjb25zdCByZXN1bHQg
PSBhd2FpdCByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8xODQyNzhAeD9wcmVm
aXgtbWF0Y2g9dHJ1ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
c3RhdHVzJ10sICdVbmtub3duQ29tbWl0Jyk7CisgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAg
ZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88cmVwb3NpdG9yeT4vb3duZWQtY29tbWl0cz9vd25lci1y
ZXZpc2lvbj08Y29tbWl0PicsICgpID0+IHsKQEAgLTcyNyw2ICs4MDcsMzMgQEAgZGVzY3JpYmUo
Ii9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CiAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gcmVwb3J0ZWQgY29tbWl0cyBpbiB0aGUg
c3BlY2lmaWVkIHJldmlzaW9uIGxhYmVsIHJhbmdlIiwgYXN5bmMgKCkgPT4geworICAgICAgICAg
ICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgICAgICBhd2FpdCBk
Yi5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHsnaWQnOiAxLCAnbmFtZSc6ICdXZWJLaXQnfSk7Cisg
ICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxLCAn
cmV2aXNpb24nOiAnMjEwOTQ4JywgJ3JldmlzaW9uX2xhYmVsJzogJzE4NDI3NkBtYWluJywgJ3Rp
bWUnOiAnMjAxNy0wMS0yMFQwMjo1MjozNC41NzdaJywgJ3JlcG9ydGVkJzogdHJ1ZX0pOworICAg
ICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3Jl
dmlzaW9uJzogJzIxMDk0OScsICdyZXZpc2lvbl9sYWJlbCc6ICcxODQyNzdAbWFpbicsICd0aW1l
JzogJzIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1WicsICdyZXBvcnRlZCc6IHRydWV9KTsKKyAgICAg
ICAgICAgIGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZp
c2lvbic6ICcyMTA5NTAnLCAncmV2aXNpb25fbGFiZWwnOiAnMTg0Mjc4QG1haW4nLCAndGltZSc6
ICcyMDE3LTAxLTIwVDAzOjQ5OjM3Ljg4N1onLCAncmVwb3J0ZWQnOiB0cnVlfSk7CisgICAgICAg
ICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04o
Jy9hcGkvY29tbWl0cy9XZWJLaXQvP3ByZWNlZGluZ1JldmlzaW9uPTE4NDI3NkBtYWluJmxhc3RS
ZXZpc2lvbj0xODQyNzhAbWFpbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0Q29tbWl0
SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHsKKyAgICAgICAgICAg
ICAgICBwcmV2aW91c0NvbW1pdDogbnVsbCwKKyAgICAgICAgICAgICAgICByZXZpc2lvbjogJzIx
MDk0OScsCisgICAgICAgICAgICAgICAgcmV2aXNpb25MYWJlbDogJzE4NDI4OUBtYWluJywKKyAg
ICAgICAgICAgICAgICB0aW1lOiAnMjAxNy0wMS0yMFQwMzoyMzo1MC42NDVaJywKKyAgICAgICAg
ICAgICAgICBhdXRob3I6IHtuYW1lOiBudWxsLCBhY2NvdW50OiBudWxsfSwKKyAgICAgICAgICAg
ICAgICBtZXNzYWdlOiBudWxsLAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBhc3NlcnRD
b21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVsxXSwgeworICAgICAg
ICAgICAgICAgIHByZXZpb3VzQ29tbWl0OiBudWxsLAorICAgICAgICAgICAgICAgIHJldmlzaW9u
OiAnMjEwOTUwJywKKyAgICAgICAgICAgICAgICByZXZpc2lvbkxhYmVsOiAnMTg0MjkwQG1haW4n
LAorICAgICAgICAgICAgICAgIHRpbWU6ICcyMDE3LTAxLTIwVDAzOjQ5OjM3Ljg4N1onLAorICAg
ICAgICAgICAgICAgIGF1dGhvcjoge25hbWU6IG51bGwsIGFjY291bnQ6IG51bGx9LAorICAgICAg
ICAgICAgICAgIG1lc3NhZ2U6IG51bGwsCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisK
ICAgICAgICAgaXQoInNob3VsZCBub3QgaW5jbHVkZSBhIHJldmlzaW9uIG5vdCB3aXRoaW4gdGhl
IHNwZWNpZmllZCByYW5nZSIsICgpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNl
cnZlci5kYXRhYmFzZSgpOwogICAgICAgICAgICAgY29uc3QgcmVtb3RlID0gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKTsKQEAgLTc1MCw2ICs4NTcsMjMgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8i
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKKyAgICAgICAg
aXQoInNob3VsZCBub3QgaW5jbHVkZSBhIHJldmlzaW9uIG5vdCB3aXRoaW4gdGhlIHNwZWNpZmll
ZCBjb21taXQgcmV2aXNpb24gbGFiZWwgcmFuZ2UiLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAg
ICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgICAgIGNvbnN0IHJl
bW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7CisgICAgICAgICAgICBhd2FpdCBkYi5pbnNl
cnQoJ3JlcG9zaXRvcmllcycsIHsnaWQnOiAxLCAnbmFtZSc6ICdXZWJLaXQnfSksCisgICAgICAg
ICAgICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNp
b24nOiAnMjEwOTQ3JywgJ3JldmlzaW9uX2xhYmVsJzogJzE4NDI3NUBtYWluJywgJ3RpbWUnOiAn
MjAxNy0wMS0yMFQwMjozODo0NS40ODVaJywgJ3JlcG9ydGVkJzogZmFsc2V9KTsKKyAgICAgICAg
ICAgIGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lv
bic6ICcyMTA5NDgnLCAncmV2aXNpb25fbGFiZWwnOiAnMTg0Mjc2QG1haW4nLCAndGltZSc6ICcy
MDE3LTAxLTIwVDAyOjUyOjM0LjU3N1onLCAncmVwb3J0ZWQnOiBmYWxzZX0pOworICAgICAgICAg
ICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9u
JzogJzIxMDk0OScsICdyZXZpc2lvbl9sYWJlbCc6ICcxODQyNzdAbWFpbicsICd0aW1lJzogJzIw
MTctMDEtMjBUMDM6MjM6NTAuNjQ1WicsICdyZXBvcnRlZCc6IGZhbHNlfSk7CisgICAgICAgICAg
ICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24n
OiAnMjEwOTUwJywgJ3JldmlzaW9uX2xhYmVsJzogJzE4NDI3OEBtYWluJywgJ3RpbWUnOiAnMjAx
Ny0wMS0yMFQwMzo0OTozNy44ODdaJywgJ3JlcG9ydGVkJzogZmFsc2V9KTsKKyAgICAgICAgICAg
IGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRzKTsKKyAgICAgICAgICAg
IGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywg
c3VidmVyc2lvbkNvbW1pdHMpOworICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVt
b3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvP3ByZWNlZGluZ1JldmlzaW9uPTE4NDI3
NUBtYWluJmxhc3RSZXZpc2lvbj0xODQyNzdAbWFpbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDIpOworICAgICAgICAgICAg
YXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1
YnZlcnNpb25Db21taXRzWydjb21taXRzJ11bMF0pOworICAgICAgICAgICAgYXNzZXJ0Q29tbWl0
SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMV0sIHN1YnZlcnNpb25Db21t
aXRzWydjb21taXRzJ11bMV0pOworICAgICAgICB9KTsKKwogICAgIH0pOwogCiB9KTsKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1j
b21taXRzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9h
cGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKaW5kZXggYjRlZTcyNmYzNTUzMDJhYjE4ZDZjNzM2
Y2JiNDBjMzBjNGIxODU5Yi4uOThhMDc0OTJlMjYxOTJhYjI4YjQ5MGU3ZDRjYTE1Y2VlOGY1NDBh
MSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
cmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKQEAgLTI2LDYgKzI2LDIwIEBA
IGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgfQogICAgICAgICBdLAogICAgIH07CisgICAgY29uc3Qgc3Vi
dmVyc2lvbkNvbW1pdFdpdGhSZXZpc2lvbkxhYmVsID0geworICAgICAgICAic2xhdmVOYW1lIjog
InNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisg
ICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBv
c2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3NyIs
CisgICAgICAgICAgICAgICAgInJldmlzaW9uTGFiZWwiOiAiMTI3MjMxQG1haW4iLAorICAgICAg
ICAgICAgICAgICJ0aW1lIjogIjIwMTMtMDItMDZUMDg6NTU6MjAuOVoiLAorICAgICAgICAgICAg
ICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmcifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJzb21lIG1l
c3NhZ2UiLAorICAgICAgICAgICAgfQorICAgICAgICBdLAorICAgIH07CiAgICAgY29uc3Qgc3Vi
dmVyc2lvbkludmFsaWRDb21taXQgPSB7CiAgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZl
IiwKICAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKQEAgLTc2LDYgKzkw
LDQ0IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICBdCiAgICAgfQogCisgICAgY29uc3QgZHVwbGljYXRlZENv
bW1pdFJldmlzaW9uTGFiZWxDb21taXRzID0geworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVT
bGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAg
ICJjb21taXRzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5
IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OCIsCisgICAg
ICAgICAgICAgICAgInJldmlzaW9uTGFiZWwiOiAiMTg0Mjc2QG1haW4iLAorICAgICAgICAgICAg
ICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6NTI6MzQuNTc3WiIsCisgICAgICAgICAgICAgICAg
ImF1dGhvciI6IHsibmFtZSI6ICJaYWxhbiBCdWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBs
ZS5jb20ifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJhIG1lc3NhZ2UiLAorICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJX
ZWJLaXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDkiLAorICAgICAgICAg
ICAgICAgICJyZXZpc2lvbkxhYmVsIjogIjE4NDI3NkBtYWluIiwKKyAgICAgICAgICAgICAgICAi
dGltZSI6ICIyMDE3LTAxLTIwVDAzOjIzOjUwLjY0NVoiLAorICAgICAgICAgICAgICAgICJhdXRo
b3IiOiB7Im5hbWUiOiAiQ2hyaXMgRHVtZXoiLCAiYWNjb3VudCI6ICJjZHVtZXpAYXBwbGUuY29t
In0sCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAic29tZSBtZXNzYWdlIiwKKyAgICAgICAg
ICAgIH0sCisgICAgICAgIF0KKyAgICB9CisKKyAgICBjb25zdCBpbnZhbGlkQ29tbWl0UmV2aXNp
b25MYWJlbENvbW1pdHMgPSB7CisgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAg
ICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgImNvbW1pdHMi
OiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0
IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQ4IiwKKyAgICAgICAgICAgICAg
ICAicmV2aXNpb25MYWJlbCI6ICIxODQyNzYiLAorICAgICAgICAgICAgICAgICJ0aW1lIjogIjIw
MTctMDEtMjBUMDI6NTI6MzQuNTc3WiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFt
ZSI6ICJaYWxhbiBCdWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKKyAgICAg
ICAgICAgICAgICAibWVzc2FnZSI6ICJhIG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAg
ICAgXQorICAgIH0KKwogICAgIGl0KCJzaG91bGQgcmVqZWN0IGVycm9yIHdoZW4gc2xhdmUgbmFt
ZSBpcyBtaXNzaW5nIiwgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCB7fSkudGhlbigocmVzcG9uc2Up
ID0+IHsKICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdNaXNzaW5nU2xhdmVOYW1lJyk7CkBAIC0xNDUsNiArMTk3LDIyIEBAIGRlc2NyaWJlKCIvYXBp
L3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICB9KTsKICAgICB9KTsKIAorICAgIGl0KCJzaG91bGQgcmVqZWN0IGFuIGludmFsaWQgcmV2aXNp
b24gbGFiZWwiLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0
KHN1YnZlcnNpb25Db21taXQpOworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgaW52YWxp
ZENvbW1pdFJldmlzaW9uTGFiZWxDb21taXRzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXZpc2lvbkxhYmVsJyk7CisgICAgICAgIGNv
bnN0IHJvd3MgPSBhd2FpdCBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdjb21taXRz
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMCk7CisgICAgfSk7
CisKKyAgICBpdCgic2hvdWxkIHJlamVjdCB3aXRoIGR1cGxpY2F0ZWQgY29tbWl0IHJldmlzaW9u
IGxhYmVscyIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQo
c3VidmVyc2lvbkNvbW1pdCk7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBkdXBsaWNh
dGVkQ29tbWl0UmV2aXNpb25MYWJlbENvbW1pdHMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnRHVwbGljYXRlZFJldmlzaW9uTGFiZWwnKTsKKyAgICAg
ICAgY29uc3Qgcm93cyA9IGF3YWl0IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2Nv
bW1pdHMnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKKyAg
ICB9KTsKKwogICAgIGl0KCJzaG91bGQgc3RvcmUgdHdvIGNvbW1pdHMgZnJvbSBhIHZhbGlkIHNs
YXZlIiwgKCkgPT4gewogICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lv
blR3b0NvbW1pdHMpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvblR3
b0NvbW1pdHMpOwpAQCAtMjE1LDYgKzI4MywyNSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29t
bWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKKyAgICBpdCgic2hvdWxkIHVwZGF0ZSBhbiBleGlzdGluZyBjb21taXQgd2l0aCBjb21t
aXQgbGFiZWwgaWYgdGhlcmUgaXMgb25lIiwgYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCBk
YiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgY29uc3QgcmVwb3J0ZWREYXRhID0g
c3VidmVyc2lvbkNvbW1pdFdpdGhSZXZpc2lvbkxhYmVsLmNvbW1pdHNbMF07CisgICAgICAgIGF3
YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRXaXRoUmV2aXNpb25MYWJlbCk7
CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEsICduYW1l
JzogJ1dlYktpdCd9KSwKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBv
c2l0b3J5JzogMSwgJ3JldmlzaW9uJzogcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddLCAndGltZSc6
IHJlcG9ydGVkRGF0YVsndGltZSddfSkKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1
YnZlcnNpb25Db21taXRXaXRoUmV2aXNpb25MYWJlbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBjb25zdCBjb21taXRzID0g
YXdhaXQgZGIuc2VsZWN0QWxsKCdjb21taXRzJyk7CisgICAgICAgIGNvbnN0IGNvbW1pdHRlcnMg
PSBhd2FpdCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHRlcnMnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdHRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNb
MF1bJ21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0c1swXVsncmV2aXNpb25fbGFiZWwnXSwgcmVwb3J0ZWREYXRhWydy
ZXZpc2lvbkxhYmVsJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsn
Y29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1l
J10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCdd
LCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOworICAgIH0pOworCiAgICAgaXQo
InNob3VsZCBub3QgdXBkYXRlIGFuIHVucmVsYXRlZCBjb21taXQiLCAoKSA9PiB7CiAgICAgICAg
IGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwogICAgICAgICBjb25zdCBmaXJzdERh
dGEgPSBzdWJ2ZXJzaW9uVHdvQ29tbWl0cy5jb21taXRzWzBdOwpAQCAtNTkwLDYgKzY3NywxMTEg
QEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT3duZWRDb21taXRTaG91bGROb3RDb250YWluVGltZXN0YW1wJyk7CiAgICAgICAgIH0p
OwogICAgIH0pOworCisgICAgY29uc3QgaW52YWxpZE93bmVkQ29tbWl0VXNlUmV2aXNpb25MYWJl
bEFzUmV2aXNvbiA9IHsKKyAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAorICAgICAg
ICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAiY29tbWl0cyI6IFsK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJPU1giLAorICAg
ICAgICAgICAgICAgICJyZXZpc2lvbiI6ICJTaWVycmExNkQzMiIsCisgICAgICAgICAgICAgICAg
Im9yZGVyIjogMSwKKyAgICAgICAgICAgICAgICAib3duZWRDb21taXRzIjogeworICAgICAgICAg
ICAgICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9u
IjogIjEyNzIzMkBtYWluIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5h
bWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmci
fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIldlYktpdCBDb21taXQiLAor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
ICAgICAgICBdCisgICAgfTsKKworICAgIGl0KCJzaG91bGQgcmVqZWN0IGluc2VydGluZyBvbmUg
Y29tbWl0IHdpdGggb3duZWQgY29tbWl0cyB0aGF0IHVzZSByZXZpc2lvbiBsYWJlbCBhcyByZXZp
c2lvbiIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoaW52
YWxpZE93bmVkQ29tbWl0VXNlUmV2aXNpb25MYWJlbEFzUmV2aXNvbik7CisgICAgICAgIGNvbnN0
IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9y
ZXBvcnQtY29tbWl0cy8nLCBpbnZhbGlkT3duZWRDb21taXRVc2VSZXZpc2lvbkxhYmVsQXNSZXZp
c29uKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0lu
dmFsaWRPd25Db21taXRSZXZpc2lvbicpOworICAgIH0pOworCisgICAgY29uc3QgaW52YWxpZFJl
dmlzaW9uTGFiZWxPd25lZENvbW1pdCA9IHsKKyAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xh
dmUiLAorICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAi
Y29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6
ICJPU1giLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICJTaWVycmExNkQzMiIsCisgICAg
ICAgICAgICAgICAgIm9yZGVyIjogMSwKKyAgICAgICAgICAgICAgICAib3duZWRDb21taXRzIjog
eworICAgICAgICAgICAgICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAgICAgICAg
ICAgInJldmlzaW9uIjogIjE0MTk3OCIsCisgICAgICAgICAgICAgICAgICAgICAgICAicmV2aXNp
b25MYWJlbCI6ICIxMjcyMzIiLAorICAgICAgICAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsi
bmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Via2l0Lm9y
ZyJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiV2ViS2l0IENvbW1pdCIs
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
CisgICAgICAgIF0KKyAgICB9OworCisgICAgaXQoInNob3VsZCByZWplY3QgaW5zZXJ0aW5nIG9u
ZSBjb21taXQgd2l0aCBvd25lZCBjb21taXRzIHRoYXQgaGF2ZSBpbnZhbGlkIHJldmlzaW9uIGxh
YmVsIiwgYXN5bmMgKCkgPT4geworICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChpbnZh
bGlkUmV2aXNpb25MYWJlbE93bmVkQ29tbWl0KTsKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBh
d2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRz
LycsIGludmFsaWRSZXZpc2lvbkxhYmVsT3duZWRDb21taXQpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZE93bkNvbW1pdFJldmlzaW9uTGFi
ZWwnKTsKKyAgICB9KTsKKworICAgIGNvbnN0IGludmFsaWRBdXRob3JPd25lZENvbW1pdCA9IHsK
KyAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAorICAgICAgICAic2xhdmVQYXNzd29y
ZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAiY29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJPU1giLAorICAgICAgICAgICAgICAgICJy
ZXZpc2lvbiI6ICJTaWVycmExNkQzMiIsCisgICAgICAgICAgICAgICAgIm9yZGVyIjogMSwKKyAg
ICAgICAgICAgICAgICAib3duZWRDb21taXRzIjogeworICAgICAgICAgICAgICAgICAgICAiV2Vi
S2l0IjogeworICAgICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3OCIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAicmV2aXNpb25MYWJlbCI6ICIxMjcyMzJAbWFpbiIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAiYXV0aG9yIjogbnVsbCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICJtZXNzYWdlIjogIldlYktpdCBDb21taXQiLAorICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICBdCisgICAgfTsKKyAg
ICBpdCgic2hvdWxkIHJlamVjdCBpbnNlcnRpbmcgb25lIGNvbW1pdCB3aXRoIG93bmVkIGNvbW1p
dHMgdGhhdCBoYXZlIGludmFsaWQgYXV0aG9yIiwgYXN5bmMgKCkgPT4geworICAgICAgICBhd2Fp
dCBhZGRTbGF2ZUZvclJlcG9ydChpbnZhbGlkQXV0aG9yT3duZWRDb21taXQpOworICAgICAgICBj
b25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9h
cGkvcmVwb3J0LWNvbW1pdHMvJywgaW52YWxpZEF1dGhvck93bmVkQ29tbWl0KTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRPd25Db21taXRB
dXRob3JGb3JtYXQnKTsKKyAgICB9KTsKKworICAgIGNvbnN0IG93bmVkQ29tbWl0V2l0aFJldmlz
aW9uTGFiZWwgPSB7CisgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAgICAgICAg
InNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgImNvbW1pdHMiOiBbCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiT1NYIiwKKyAgICAg
ICAgICAgICAgICAicmV2aXNpb24iOiAiU2llcnJhMTZEMzIiLAorICAgICAgICAgICAgICAgICJv
cmRlciI6IDEsCisgICAgICAgICAgICAgICAgIm93bmVkQ29tbWl0cyI6IHsKKyAgICAgICAgICAg
ICAgICAgICAgIldlYktpdCI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6
ICIxNDE5NzgiLAorICAgICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uTGFiZWwiOiAiMTI3
MjMyQG1haW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJD
b21taXQgUXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Via2l0Lm9yZyJ9LAorICAg
ICAgICAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiV2ViS2l0IENvbW1pdCIsCisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAg
IF0KKyAgICB9OworCisgICAgaXQoInNob3VsZCBpbnNlcnQgb25lIGNvbW1pdCB3aXRoIGNvbW1p
dCByZXZpc2lvbiBsYWJlbCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkU2xhdmVG
b3JSZXBvcnQob3duZWRDb21taXRXaXRoUmV2aXNpb25MYWJlbCk7CisgICAgICAgIGNvbnN0IHJl
c3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBv
cnQtY29tbWl0cy8nLCBvd25lZENvbW1pdFdpdGhSZXZpc2lvbkxhYmVsKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGNvbnN0
IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBjb25zdCBjb21taXQgPSBhd2Fp
dCBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydyZXZpc2lvbic6ICcxNDE5NzgnfSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRbMF0ucmV2aXNpb25fbGFiZWwsIG93bmVkQ29t
bWl0V2l0aFJldmlzaW9uTGFiZWwuY29tbWl0c1swXS5vd25lZENvbW1pdHNbJ1dlYktpdCddLnJl
dmlzaW9uTGFiZWwpOworICAgIH0pOwogfSk7CiAKIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21t
aXRzLyB3aXRoIGluc2VydD1mYWxzZSIsIGZ1bmN0aW9uICgpIHsKZGlmZiAtLWdpdCBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qcyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qcwpp
bmRleCA1YzQ0NWZlZmMwZDcyMDRjMGJiNWExNmUwMmNmNjEzNzJmZjNmYjY5Li5iMGVjODc0ZWE2
YWQzNzJhOGNmNDg3ZGNlOTlkMzJiMmYzZWEzNDhlIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtdGVzdHMuanMKKysrIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzCkBAIC03
Nyw2ICs3NywyOSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIH07CiAgICAgfQogCisgICAgZnVuY3Rpb24gcmVwb3J0V2l0aFJldmlzaW9uTGFiZWxDb21t
aXQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICJidWlsZFRhZyI6ICIx
MjMiLAorICAgICAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzLjM4ODMw
NCIsCisgICAgICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAorICAgICAgICAg
ICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAorICAgICAgICAgICAgImJ1aWxkZXJQYXNzd29y
ZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAgICAgInBsYXRmb3JtIjogIk1vdW50YWluIExp
b24iLAorICAgICAgICAgICAgInRlc3RzIjoge30sCisgICAgICAgICAgICAicmV2aXNpb25zIjog
eworICAgICAgICAgICAgICAgICJtYWNPUyI6IHsKKyAgICAgICAgICAgICAgICAgICAgInJldmlz
aW9uIjogIjEwLjguMiAxMkM2MCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAg
ICJXZWJLaXQiOiB7CisgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNDE5NzciLAor
ICAgICAgICAgICAgICAgICAgICAicmV2aXNpb25MYWJlbCI6ICIxMjcyMzFAbWFpbiIsCisgICAg
ICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAiMjAxMy0wMi0wNlQwODo1NToyMC45WiIKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorCiAgICAg
ZnVuY3Rpb24gZW1wdHlTbGF2ZVJlcG9ydCgpCiAgICAgewogICAgICAgICByZXR1cm4gewpAQCAt
MzUxLDYgKzM3NCwzNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCisgICAgaXQoInNob3VsZCBhZGQgcmV2aXNpb24gbGFiZWwi
LCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0
V2l0aFJldmlzaW9uTGFiZWxDb21taXQoKSk7CisgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRXaXRoUmV2aXNpb25MYWJl
bENvbW1pdCgpXSk7CisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwor
ICAgICAgICBjb25zdCByZXBvc2l0b3JpZXMgPSBhd2FpdCBkYi5zZWxlY3RBbGwoJ3JlcG9zaXRv
cmllcycpOworICAgICAgICBjb25zdCBjb21taXRzID0gIGF3YWl0IGRiLnNlbGVjdEFsbCgnY29t
bWl0cycpOworICAgICAgICBjb25zdCBidWlsZENvbW1pdHNSZWxhdGlvbnMgPSBhd2FpdCAgZGIu
c2VsZWN0QWxsKCdidWlsZF9jb21taXRzJywgJ2J1aWxkX2NvbW1pdCcpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzLm1hcCgocm93KSA9PiByb3dbJ25hbWUnXSkuc29y
dCgpLCBbJ1dlYktpdCcsICdtYWNPUyddKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0cy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21t
aXRzUmVsYXRpb25zLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZENvbW1pdHNSZWxhdGlvbnNbMF1bJ2J1aWxkX2NvbW1pdCddLCBjb21taXRzWzBdWydpZCddKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1sxXVsnYnVp
bGRfY29tbWl0J10sIGNvbW1pdHNbMV1bJ2lkJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRDb21taXRzUmVsYXRpb25zWzBdWydjb21taXRfYnVpbGQnXSwgYnVpbGRDb21taXRz
UmVsYXRpb25zWzFdWydjb21taXRfYnVpbGQnXSk7CisKKyAgICAgICAgbGV0IHJlcG9zaXRvcnlJ
ZFRvTmFtZSA9IHt9OworICAgICAgICBmb3IgKGxldCByZXBvc2l0b3J5IG9mIHJlcG9zaXRvcmll
cykKKyAgICAgICAgICAgIHJlcG9zaXRvcnlJZFRvTmFtZVtyZXBvc2l0b3J5WydpZCddXSA9IHJl
cG9zaXRvcnlbJ25hbWUnXTsKKworICAgICAgICBsZXQgcmVwb3NpdG9yeU5hbWVUb1JldmlzaW9u
Um93ID0ge307CisgICAgICAgIGZvciAobGV0IGNvbW1pdCBvZiBjb21taXRzKQorICAgICAgICAg
ICAgcmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93W3JlcG9zaXRvcnlJZFRvTmFtZVtjb21taXRb
J3JlcG9zaXRvcnknXV1dID0gY29tbWl0OworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ21hY09TJ11bJ3JldmlzaW9uJ10sICcxMC44LjIg
MTJDNjAnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZp
c2lvblJvd1snV2ViS2l0J11bJ3JldmlzaW9uJ10sICcxNDE5NzcnKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snV2ViS2l0J11bJ3Jldmlz
aW9uX2xhYmVsJ10sICcxMjcyMzFAbWFpbicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydXZWJLaXQnXVsndGltZSddLnRvU3RyaW5nKCks
CisgICAgICAgICAgICBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJpbmco
KSk7CisgICAgfSk7CisKICAgICBpdCgic2hvdWxkIG5vdCBjcmVhdGUgYSBkdXBsaWNhdGUgYnVp
bGQgZm9yIHRoZSBzYW1lIGJ1aWxkIG51bWJlciBpZiBidWlsZCB0aW1lcyBhcmUgY2xvc2UiLCAo
KSA9PiB7CiAgICAgICAgIGNvbnN0IGZpcnN0UmVwb3J0ID0gZW1wdHlSZXBvcnQoKTsKICAgICAg
ICAgZmlyc3RSZXBvcnRbJ2J1aWxkVGltZSddID0gJzIwMTMtMDItMjhUMTA6MTI6MDQnOwpkaWZm
IC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY29tbWl0LWxvZy10
ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2NvbW1pdC1sb2ct
dGVzdHMuanMKaW5kZXggNzBhYmRlYmY4MWU4YWI2MGQxZDE4MTYzZTM5OTE4NzljYjQ3MzhiNi4u
MTUxYzI5MzAzN2IzZDg5NjkyZGFlYjI1OWU2YzgxMDY3MGNjZjA5NCAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qcworKysg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9jb21taXQtbG9nLXRlc3RzLmpz
CkBAIC0xNyw2ICsxNywxNyBAQCBmdW5jdGlvbiB3ZWJraXRDb21taXQoKQogICAgIH0pOwogfQog
CitmdW5jdGlvbiB3ZWJraXRDb21taXRXaXRoUmV2aXNpb25MYWJlbCgpIAoreworICAgIHJldHVy
biBuZXcgQ29tbWl0TG9nKDEsIHsKKyAgICAgICAgaWQ6IDEsCisgICAgICAgIHJlcG9zaXRvcnk6
IE1vY2tNb2RlbHMud2Via2l0LAorICAgICAgICByZXZpc2lvbjogJzIwMDgwNScsCisgICAgICAg
IHJldmlzaW9uTGFiZWw6ICcxODQyNzZAbWFpbicsCisgICAgICAgIHRpbWU6ICsobmV3IERhdGUo
JzIwMTYtMDUtMTNUMDA6NTU6NTcuODQxMzQ0WicpKSwKKyAgICB9KTsKK30KKwogZnVuY3Rpb24g
b2xkV2ViS2l0Q29tbWl0KCkKIHsKICAgICByZXR1cm4gbmV3IENvbW1pdExvZygyLCB7CkBAIC0y
Nyw2ICszOCwxNyBAQCBmdW5jdGlvbiBvbGRXZWJLaXRDb21taXQoKQogICAgIH0pOwogfQogCitm
dW5jdGlvbiBvbGRXZWJLaXRDb21taXRXaXRoUmV2aXNpb25MYWJlbCgpCit7CisgICAgcmV0dXJu
IG5ldyBDb21taXRMb2coMiwgeworICAgICAgICBpZDogMiwKKyAgICAgICAgcmVwb3NpdG9yeTog
TW9ja01vZGVscy53ZWJraXQsCisgICAgICAgIHJldmlzaW9uOiAnMjAwNTc0JywKKyAgICAgICAg
cmV2aXNpb25MYWJlbDogJzE3NTYwNUBtYWluJywKKyAgICAgICAgdGltZTogKyhuZXcgRGF0ZSgn
MjAxNi0wNS0wOVQxNDo1OToyMy41NTM3NjdaJykpLAorICAgIH0pOworfQorCiBmdW5jdGlvbiBn
aXRXZWJLaXRDb21taXQoKQogewogICAgIHJldHVybiBuZXcgQ29tbWl0TG9nKDMsIHsKQEAgLTM3
LDYgKzU5LDE3IEBAIGZ1bmN0aW9uIGdpdFdlYktpdENvbW1pdCgpCiAgICAgfSk7CiB9CiAKK2Z1
bmN0aW9uIGdpdFdlYktpdENvbW1pdFdpdGhSZXZpc2lvbkxhYmVsKCkKK3sKKyAgICByZXR1cm4g
bmV3IENvbW1pdExvZygzLCB7CisgICAgICAgIGlkOiAzLAorICAgICAgICByZXBvc2l0b3J5OiBN
b2NrTW9kZWxzLndlYmtpdCwKKyAgICAgICAgcmV2aXNpb246ICc2ZjhiMGRiYmRhOTVhNDQwNTAz
Yjg4ZGIxZGQwM2RhZDNhN2IwN2ZiJywKKyAgICAgICAgcmV2aXNpb25MYWJlbDogJzE4NDI3NkBt
YWluJywKKyAgICAgICAgdGltZTogKyhuZXcgRGF0ZSgnMjAxNi0wNS0xM1QwMDo1NTo1Ny44NDEz
NDRaJykpLAorICAgIH0pOworfQorCiBmdW5jdGlvbiBvbGRHaXRXZWJLaXRDb21taXQoKQogewog
ICAgIHJldHVybiBuZXcgQ29tbWl0TG9nKDQsIHsKQEAgLTE0NywxMCArMTgwLDE4IEBAIGRlc2Ny
aWJlKCdDb21taXRMb2cnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
d2Via2l0Q29tbWl0KCkubGFiZWwoKSwgJ3IyMDA4MDUnKTsKICAgICAgICAgfSk7CiAKKyAgICAg
ICAgaXQoJ3Nob3VsZCBwcmVmaXggcmV2aXNpb24gbGFiZWwgd2l0aCBzdm4gciArIHJldmlzaW9u
JywgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdENvbW1pdFdp
dGhSZXZpc2lvbkxhYmVsKCkubGFiZWwoKSwgJzE4NDI3NkBtYWluIChyMjAwODA1KScpCisgICAg
ICAgIH0pOworCiAgICAgICAgIGl0KCdzaG91bGQgdHJ1bmNhdGUgYSBHaXQgaGFzaCBhdCA4dGgg
Y2hhcmFjdGVyJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdpdFdl
YktpdENvbW1pdCgpLmxhYmVsKCksICc2ZjhiMGRiYmRhOTUnKTsKICAgICAgICAgfSk7CiAKKyAg
ICAgICAgaXQoJ3Nob3VsZCBwcmVmaXggcmV2aXNpb24gbGFiZWwgd2l0aCBnaXQgaGFzaCB0cnVu
Y2F0ZWQnLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ2l0V2ViS2l0
Q29tbWl0V2l0aFJldmlzaW9uTGFiZWwoKS5sYWJlbCgpLCAnMTg0Mjc2QG1haW4gKDZmOGIwZGJi
ZGE5NSknKQorICAgICAgICB9KTsKKwogICAgICAgICBpdCgnc2hvdWxkIG5vdCBtb2RpZnkgT1Mg
WCB2ZXJzaW9uJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENv
bW1pdCgpLmxhYmVsKCksICcxMC4xMS40IDE1RTY1Jyk7CiAgICAgICAgIH0pOwpAQCAtMTYxLDEw
ICsyMDIsMTggQEAgZGVzY3JpYmUoJ0NvbW1pdExvZycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh3ZWJraXRDb21taXQoKS50aXRsZSgpLCAnV2ViS2l0IGF0IHIyMDA4
MDUnKTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgaXQoJ3Nob3VsZCB0cnVuY2F0ZSBhIEdpdCBo
YXNoIGF0IDh0aCBjaGFyYWN0ZXInLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGl0KCdzaG91bGQg
cHJlZml4IHJldmlzaW9uIGxhYmVsJywgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHdlYmtpdENvbW1pdFdpdGhSZXZpc2lvbkxhYmVsKCkudGl0bGUoKSwgJ1dlYktpdCBh
dCAxODQyNzZAbWFpbiAocjIwMDgwNSknKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3No
b3VsZCB0cnVuY2F0ZSBhIEdpdCBoYXNoIGF0IDEydGggY2hhcmFjdGVyJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdpdFdlYktpdENvbW1pdCgpLnRpdGxlKCksICdX
ZWJLaXQgYXQgNmY4YjBkYmJkYTk1Jyk7CiAgICAgICAgIH0pOwogCisgICAgICAgIGl0KCdzaG91
bGQgcHJlZml4IHJldmlzaW9uIGxhYmVsIGZvbGxvd2VkIGJ5IGdpdCBoYXNoIHRydW5jYXRlZCcs
ICAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ2l0V2ViS2l0Q29tbWl0
V2l0aFJldmlzaW9uTGFiZWwoKS50aXRsZSgpLCAnV2ViS2l0IGF0IDE4NDI3NkBtYWluICg2Zjhi
MGRiYmRhOTUpJyk7CisgICAgICAgIH0pOworCiAgICAgICAgIGl0KCdzaG91bGQgbm90IG1vZGlm
eSBPUyBYIHZlcnNpb24nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3N4Q29tbWl0KCkudGl0bGUoKSwgJ09TIFggYXQgMTAuMTEuNCAxNUU2NScpOwogICAgICAgICB9
KTsKQEAgLTIyMyw2ICsyNzIsMjMgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZycsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgICAgICByZXBvc2l0b3J5OiBNb2NrTW9kZWxzLm9zeAogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgcHJlZml4IHdpdGggY29t
bWl0IHJldmlzaW9uIGxhYmVsIGFuZCB1c2UgIi0iLCBpZiBib3RoIGhhdmUgcmV2aXNpb24gbGFi
ZWwnLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHdlYmtpdENv
bW1pdFdpdGhSZXZpc2lvbkxhYmVsKCkuZGlmZihvbGRXZWJLaXRDb21taXRXaXRoUmV2aXNpb25M
YWJlbCgpKSwgeworICAgICAgICAgICAgICAgIGxhYmVsOiAnMTc1NjA1QG1haW4gKHIyMDA1NzQp
IC0gMTg0Mjc2QG1haW4gKHIyMDA4MDUpJywKKyAgICAgICAgICAgICAgICB1cmw6ICcnLAorICAg
ICAgICAgICAgICAgIHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMud2Via2l0CisgICAgICAgICAgICB9
KQorICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIGNvbnRhaW4gcmV2aXNpb24gbGFi
ZWwsIGlmIG9uZSBvZiB0aGUgY29tbWl0cyBkb2VzbmB0IGhhdmUgdGhlIHJldmlzaW9uIGxhYmVs
JywgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh3ZWJraXRDb21t
aXRXaXRoUmV2aXNpb25MYWJlbCgpLmRpZmYob2xkV2ViS2l0Q29tbWl0KCkpLCB7CisgICAgICAg
ICAgICAgICAgbGFiZWw6ICdyMjAwNTc0IC0gMTg0Mjc2QG1haW4gKHIyMDA4MDUpJywKKyAgICAg
ICAgICAgICAgICB1cmw6ICcnLAorICAgICAgICAgICAgICAgIHJlcG9zaXRvcnk6IE1vY2tNb2Rl
bHMud2Via2l0CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKICAgICB9KTsKIAogICAg
IGRlc2NyaWJlKCdoYXNPcmRlcmluZycsICgpID0+IHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422997</attachid>
            <date>2021-03-11 17:13:05 -0800</date>
            <delta_ts>2021-03-12 12:06:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222897-20210311171303.patch</filename>
            <type>text/plain</type>
            <size>50025</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MDYxCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1YTg1MWZkODI1NTA1YjQzMGFkNzg3ODZhNTQ1NzI0MzUwNTg0Zjc1Li42ZGIwOGI1NDFh
Y2M2NDliYmYxZWIxZjUzYzUzMWUyNzU1YmFjNmM3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMS0wMy0xMCAgWmhpZmVpIEZhbmcgIDx6aGlmZWlf
ZmFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGNvbW1pdCByZXZpc2lvbiBsYWJlbCBzdXBw
b3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI4
OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
bmV3IGNvbHVtbiByZXZpc2lvbiBsYWJlbC4KKyAgICAgICAgTWFrZSBhbGwgY29tbWl0IGFwaSBh
bHNvIGNhbiB3b3JrIHdpdGggcmV2aXNpb24gbGFiZWwuCisgICAgICAgIENoYW5nZSB0aGUgY29t
bWl0IGxhYmVsIGRpc3BsYXkgd2l0aCBjb21taXQgcmV2aXNpb24gbGFiZWwuCisKKyAgICAgICAg
KiBicm93c2VyLXRlc3RzL2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzOiBGaXggYSBmYWlsZWQg
dGVzdCBjYXNlLCB3aGlsZSByZXF1ZXN0aW5nIHRoZSByZW1vdGUgYXBpLCB0aGlzIGNvbXBvbmVu
dCBzaG91bGQgc2hvdyBhIHNwaW5uZXIuCisgICAgICAgICogaW5pdC1kYXRhYmFzZS5zcWw6IEFk
ZCBuZXcgY29sdW1uIHJldmlzaW9uX2xhYmVsLgorICAgICAgICAqIG1pZ3JhdGUtZGF0YWJhc2Uu
c3FsOiBBZGQgbmV3IGNvbHVtbiByZXZpc2lvbl9sYWJlbC4KKyAgICAgICAgKiBwdWJsaWMvaW5j
bHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwOiBNYWtlIGFwaSB0aGF0IHdvcmtzIHdpdGggcmV2
aXNpb24gc2hvdWxkIHdvcmsgd2l0aCByZXZpc2lvbiBsYWJlbC4KKyAgICAgICAgKiBwdWJsaWMv
aW5jbHVkZS9jb21taXQtdXBkYXRlci5waHA6IERpdHRvLgorICAgICAgICAqIHB1YmxpYy9pbmNs
dWRlL3JlcG9ydC1wcm9jZXNzb3IucGhwOiBNYWtlIHRoZSBwcm9jZXNzb3IgY2FuIGFsc28gaW5z
ZXJ0IHJldmlzaW9uIGxhYmVsLgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvY29tbWl0LWxv
Zy5qczoKKyAgICAgICAgKENvbW1pdExvZy5wcm90b3R5cGUudXBkYXRlU2luZ2xldG9uKToKKyAg
ICAgICAgKENvbW1pdExvZy5wcm90b3R5cGUucmV2aXNpb25MYWJlbCk6CisgICAgICAgIChDb21t
aXRMb2cucHJvdG90eXBlLmxhYmVsKTogTWFrZSB0aGUgbGFiZWwgaW5jbHVkZSByZXZpc2lvbiBs
YWJlbCBhbmQgcmV2aXNpb24uCisgICAgICAgIChDb21taXRMb2cucHJvdG90eXBlLmRpZmYpOiBN
YWtlIHRoZSBkaWZmIGxhYmVsIGluY2x1ZGUgcmV2aXNpb24gbGFiZWwgYW5kIHJldmlzaW9uLgor
ICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qczoKKyAgICAgICAgKiBz
ZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzOgorICAgICAgICAqIHNlcnZl
ci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzOgorICAgICAgICAocmVwb3J0V2l0aFJldmlzaW9u
TGFiZWxDb21taXQpOgorICAgICAgICAqIHVuaXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qczoK
KwogMjAyMS0wMy0wNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBbcGVyZiBkYXNoYm9hcmRdIE1vZGVybml6ZSBUaW1lU2VyaWVzIGFuZCBUaW1lU2VyaWVzVmll
dwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvY29t
bWl0LWxvZy12aWV3ZXItdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nl
ci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcwppbmRleCBkYmM0Y2ZjZDliYzIxNGI3
MDhlZTE5OGYxZWE2NjVmMjI0MjI4NTYwLi42OWMxMWNkZjQ0YmMxOGEzMGJiNTJhMmUxMjEwMjJi
M2M2MjQ4ZDU0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10
ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcwpAQCAtNTUsNiAr
NTUsMTkgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZ1ZpZXdlcicsICgpID0+IHsKICAgICAgICAgIm1l
c3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdlIiwKICAgICB9OwogCisgICAgY29uc3Qgd2Via2l0Q29t
bWl0MjEwOTUwV2l0aFJldmlzaW9uTGFiZWwgPSB7CisgICAgICAgICJpZCI6ICIxODUzMzgiLAor
ICAgICAgICAicmV2aXNpb24iOiAiMjEwOTUwIiwKKyAgICAgICAgInJldmlzaW9uTGFiZWwiOiAi
MTg0Mjc4QG1haW4iLAorICAgICAgICAicmVwb3NpdG9yeSI6IDEsCisgICAgICAgICJwcmV2aW91
c0NvbW1pdCI6IG51bGwsCisgICAgICAgICJvd25zQ29tbWl0cyI6IGZhbHNlLAorICAgICAgICAi
dGltZSI6ICtuZXcgRGF0ZSgiMjAxNy0wMS0yMFQwMzo0OTozNy44ODdaIiksCisgICAgICAgICJh
dXRob3JOYW1lIjogIkNvbW1pdCBRdWV1ZSIsCisgICAgICAgICJhdXRob3JFbWFpbCI6ICJjb21t
aXQtcXVldWVAd2Via2l0Lm9yZyIsCisgICAgICAgICJtZXNzYWdlIjogImFub3RoZXIgbWVzc2Fn
ZSIsCisgICAgfTsKKwogICAgIGl0KCdzaG91bGQgaW5pdGlhbGx5IGJlIGVtcHR5IHdpdGggbm8g
c3Bpbm5lcicsICgpID0+IHsKICAgICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBCcm93c2luZ0Nv
bnRleHQoKTsKICAgICAgICAgcmV0dXJuIGltcG9ydENvbW1pdExvZ1ZpZXdlcihjb250ZXh0KS50
aGVuKChDb21taXRMb2dWaWV3ZXIpID0+IHsKQEAgLTEzMSw4ICsxNDQsOCBAQCBkZXNjcmliZSgn
Q29tbWl0TG9nVmlld2VyJywgKCkgPT4gewogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgICAg
IGF3YWl0IHdhaXRGb3JDb21wb25lbnRzVG9SZW5kZXIoY29udGV4dCk7Ci0KLSAgICAgICAgICAg
IGV4cGVjdCh2aWV3ZXIuY29udGVudCgnc3Bpbm5lci1jb250YWluZXInKS5vZmZzZXRIZWlnaHQp
LnRvLmJlKDApOworICAgICAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdzcGlubmVyLWNv
bnRhaW5lcicpLm9mZnNldEhlaWdodCkubm90LnRvLmJlKDApOworICAgICAgICAgICAgYXdhaXQg
d2FpdEZvckNvbXBvbmVudHNUb1JlbmRlcihjb250ZXh0KTsKICAgICAgICAgICAgIGV4cGVjdCh2
aWV3ZXIuY29udGVudCgnY29tbWl0cy1saXN0JykubWF0Y2hlcygnOmVtcHR5JykpLnRvLmJlKGZh
bHNlKTsKICAgICAgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnY29tbWl0cy1saXN0Jyku
dGV4dENvbnRlbnQpLnRvLmNvbnRhaW4oJ3IyMTA5NDknKTsKICAgICAgICAgICAgIGV4cGVjdCh2
aWV3ZXIuY29udGVudCgnY29tbWl0cy1saXN0JykudGV4dENvbnRlbnQpLnRvLmNvbnRhaW4oJ0No
cmlzIER1bWV6Jyk7CkBAIC0xNDQsNCArMTU3LDQ3IEBAIGRlc2NyaWJlKCdDb21taXRMb2dWaWV3
ZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogICAgIH0pOwogCisgICAgaXQoJ3Nob3VsZCBzaG93
IHJldmlzaW9uIGxhYmVsJywgYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCBjb250ZXh0ID0g
bmV3IEJyb3dzaW5nQ29udGV4dCgpOworICAgICAgICBjb25zdCBDb21taXRMb2dWaWV3ZXIgPSBh
d2FpdCBpbXBvcnRDb21taXRMb2dWaWV3ZXIoY29udGV4dCk7CisgICAgICAgIGNvbnN0IFJlcG9z
aXRvcnkgPSBjb250ZXh0LnN5bWJvbHMuUmVwb3NpdG9yeTsKKyAgICAgICAgY29uc3QgcmVxdWVz
dHMgPSBjb250ZXh0LnN5bWJvbHMuUmVtb3RlQVBJLnJlcXVlc3RzOworICAgICAgICBjb25zdCB2
aWV3ZXIgPSBuZXcgQ29tbWl0TG9nVmlld2VyOworICAgICAgICBjb25zdCB3ZWJraXQgPSBuZXcg
UmVwb3NpdG9yeSgxLCB7bmFtZTogJ1dlYktpdCd9KTsKKyAgICAgICAgY29udGV4dC5kb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKHZpZXdlci5lbGVtZW50KCkpOworCisgICAgICAgIHZpZXdlci5l
bnF1ZXVlVG9SZW5kZXIoKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvckNvbXBvbmVudHNUb1JlbmRl
cihjb250ZXh0KTsKKworICAgICAgICB2aWV3ZXIudmlldyh3ZWJraXQsICcyMTA5NDgnLCAnMjEw
OTUwJyk7CisgICAgICAgIGF3YWl0IHdhaXRGb3JDb21wb25lbnRzVG9SZW5kZXIoY29udGV4dCk7
CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnc3Bpbm5lci1jb250YWluZXInKS5vZmZz
ZXRIZWlnaHQpLnRvLm5vdC5iZSgwKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdj
b21taXRzLWxpc3QnKS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUodHJ1ZSk7CisgICAgICAgIGV4
cGVjdCh2aWV3ZXIuY29udGVudCgncmVwb3NpdG9yeS1uYW1lJykubWF0Y2hlcygnOmVtcHR5Jykp
LnRvLmJlKGZhbHNlKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdyZXBvc2l0b3J5
LW5hbWUnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignV2ViS2l0Jyk7CisgICAgICAgIGV4cGVj
dChyZXF1ZXN0cy5sZW5ndGgpLnRvLmJlKDIpOworICAgICAgICBleHBlY3QocmVxdWVzdHNbMF0u
dXJsKS50by5iZSgnL2FwaS9jb21taXRzLzEvP3ByZWNlZGluZ1JldmlzaW9uPTIxMDk0OCZsYXN0
UmV2aXNpb249MjEwOTUwJyk7CisgICAgICAgIGV4cGVjdChyZXF1ZXN0c1sxXS51cmwpLnRvLmJl
KCcvYXBpL2NvbW1pdHMvMS8yMTA5NDgnKTsKKyAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZSh7
CisgICAgICAgICAgICAic3RhdHVzIjogIk9LIiwKKyAgICAgICAgICAgICJjb21taXRzIjogW3dl
YmtpdENvbW1pdDIxMDk0OSwgd2Via2l0Q29tbWl0MjEwOTUwV2l0aFJldmlzaW9uTGFiZWxdLAor
ICAgICAgICB9KTsKKworICAgICAgICByZXF1ZXN0c1sxXS5yZXNvbHZlKHsKKyAgICAgICAgICAg
ICJzdGF0dXMiOiAiT0siLAorICAgICAgICAgICAgImNvbW1pdHMiOiBbd2Via2l0Q29tbWl0MjEw
OTQ4XSwKKyAgICAgICAgfSk7CisKKyAgICAgICAgYXdhaXQgd2FpdEZvckNvbXBvbmVudHNUb1Jl
bmRlcihjb250ZXh0KTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdzcGlubmVyLWNv
bnRhaW5lcicpLm9mZnNldEhlaWdodCkudG8ubm90LmJlKDApOworICAgICAgICBhd2FpdCB3YWl0
Rm9yQ29tcG9uZW50c1RvUmVuZGVyKGNvbnRleHQpOworICAgICAgICBleHBlY3Qodmlld2VyLmNv
bnRlbnQoJ3NwaW5uZXItY29udGFpbmVyJykub2Zmc2V0SGVpZ2h0KS50by5iZSgwKTsKKyAgICAg
ICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxpc3QnKS5tYXRjaGVzKCc6ZW1wdHkn
KSkudG8uYmUoZmFsc2UpOworICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ2NvbW1pdHMt
bGlzdCcpLnRleHRDb250ZW50KS50by5jb250YWluKCcxODQyNzhAbWFpbiAocjIxMDk1MCknKTsK
KyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxpc3QnKS50ZXh0Q29udGVu
dCkudG8uY29udGFpbignQ29tbWl0IFF1ZXVlJyk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29u
dGVudCgncmVwb3NpdG9yeS1uYW1lJykubWF0Y2hlcygnOmVtcHR5JykpLnRvLmJlKGZhbHNlKTsK
KyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdyZXBvc2l0b3J5LW5hbWUnKS50ZXh0Q29u
dGVudCkudG8uY29udGFpbignV2ViS2l0Jyk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVu
dCgnY29tbWl0cy1saXN0JykucXVlcnlTZWxlY3RvcignYScpKS50by5iZShudWxsKTsKKyAgICB9
KTsKKwogfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRh
YmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwKaW5k
ZXggN2ZmYzg5YWQ4MmM3NjEwNDFkMWE1NTZlODNmN2M5Njc4YTMyZmFjMS4uZDc1NDcxMjZjZmVk
ZTAwMzc5NjFkY2JjZjg2NzU1Yjc3YTNkNzliMSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9pbml0LWRhdGFiYXNlLnNxbApAQCAtMTAyLDYgKzEwMiw3IEBAIENSRUFURSBUQUJMRSBjb21t
aXRzICgKICAgICBjb21taXRfaWQgc2VyaWFsIFBSSU1BUlkgS0VZLAogICAgIGNvbW1pdF9yZXBv
c2l0b3J5IGludGVnZXIgTk9UIE5VTEwgUkVGRVJFTkNFUyByZXBvc2l0b3JpZXMgT04gREVMRVRF
IENBU0NBREUsCiAgICAgY29tbWl0X3JldmlzaW9uIHZhcmNoYXIoNjQpIE5PVCBOVUxMLAorICAg
IGNvbW1pdF9yZXZpc2lvbl9sYWJlbCB2YXJjaGFyKDY0KSBERUZBVUxUIE5VTEwsCiAgICAgY29t
bWl0X3ByZXZpb3VzX2NvbW1pdCBpbnRlZ2VyIFJFRkVSRU5DRVMgY29tbWl0cyBPTiBERUxFVEUg
Q0FTQ0FERSwKICAgICBjb21taXRfdGltZSB0aW1lc3RhbXAsCiAgICAgY29tbWl0X29yZGVyIGlu
dGVnZXIsCkBAIC0xMDksNyArMTEwLDggQEAgQ1JFQVRFIFRBQkxFIGNvbW1pdHMgKAogICAgIGNv
bW1pdF9tZXNzYWdlIHRleHQsCiAgICAgY29tbWl0X3JlcG9ydGVkIGJvb2xlYW4gTk9UIE5VTEwg
REVGQVVMVCBGQUxTRSwKICAgICBjb21taXRfdGVzdGFiaWxpdHkgdmFyY2hhcigxMjgpIERFRkFV
TFQgTlVMTCwKLSAgICBDT05TVFJBSU5UIGNvbW1pdF9pbl9yZXBvc2l0b3J5X211c3RfYmVfdW5p
cXVlIFVOSVFVRShjb21taXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uKSk7CisgICAgQ09O
U1RSQUlOVCBjb21taXRfaW5fcmVwb3NpdG9yeV9tdXN0X2JlX3VuaXF1ZSBVTklRVUUoY29tbWl0
X3JlcG9zaXRvcnksIGNvbW1pdF9yZXZpc2lvbiksCisgICAgQ09OU1RSQUlOVCBjb21taXRfcmV2
aXNpb25fbGFiZWxfaW5fcmVwb3NpdG9yeV9tdXN0X2JlX3VuaXF1ZSBVTklRVUUoY29tbWl0X3Jl
cG9zaXRvcnksIGNvbW1pdF9yZXZpc2lvbl9sYWJlbCkpOwogQ1JFQVRFIElOREVYIGNvbW1pdF90
aW1lX2luZGV4IE9OIGNvbW1pdHMoY29tbWl0X3RpbWUpOwogQ1JFQVRFIElOREVYIGNvbW1pdF9v
cmRlcl9pbmRleCBPTiBjb21taXRzKGNvbW1pdF9vcmRlcik7CiAKZGlmZiAtLWdpdCBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbCBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbAppbmRleCA0OWJkMjQ5ZDJhNjg1Nzc2NDQ5
ZDM2ZTgwNTI2OGZjYzRiODc3YWNhLi5hZGJhNDA2Y2ZkNGJmNWRkZGUxM2I4YTEzOGY5YTk3NDc2
N2VhZTUyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWlncmF0ZS1kYXRh
YmFzZS5zcWwKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL21pZ3JhdGUtZGF0YWJhc2Uu
c3FsCkBAIC0zLDYgKzMsOSBAQCBETyAkJAogQkVHSU4KIEFMVEVSIFRBQkxFIGJ1aWxkX3JlcXVl
c3RzIEFERCBDT0xVTU4gSUYgTk9UIEVYSVNUUyByZXF1ZXN0X3N0YXR1c19kZXNjcmlwdGlvbiB2
YXJjaGFyKDEwMjQpIERFRkFVTFQgTlVMTDsKIEFMVEVSIFRBQkxFIHBsYXRmb3JtcyBBREQgQ09M
VU1OICBJRiBOT1QgRVhJU1RTIHBsYXRmb3JtX2dyb3VwIGludGVnZXIgUkVGRVJFTkNFUyBwbGF0
Zm9ybV9ncm91cHMgREVGQVVMVCBOVUxMOworQUxURVIgVEFCTEUgY29tbWl0cyBBREQgQ09MVU1O
IElGIE5PVCBFWElTVFMgY29tbWl0X3JldmlzaW9uX2xhYmVsIHZhcmNoYXIoNjQpIERFRkFVTFQg
TlVMTDsKK0FMVEVSIFRBQkxFIGNvbW1pdHMgRFJPUCBDT05TVFJBSU5UIGNvbW1pdF9yZXZpc2lv
bl9sYWJlbF9pbl9yZXBvc2l0b3J5X211c3RfYmVfdW5pcXVlOworQUxURVIgVEFCTEUgY29tbWl0
cyBBREQgQ09OU1RSQUlOVCBjb21taXRfcmV2aXNpb25fbGFiZWxfaW5fcmVwb3NpdG9yeV9tdXN0
X2JlX3VuaXF1ZSBVTklRVUUoY29tbWl0X3JlcG9zaXRvcnksIGNvbW1pdF9yZXZpc2lvbl9sYWJl
bCk7CiAKIENSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIHBsYXRmb3JtX2dyb3VwcyAoCiAgICAg
cGxhdGZvcm1ncm91cF9pZCBzZXJpYWwgUFJJTUFSWSBLRVksCmRpZmYgLS1naXQgYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LWxvZy1mZXRjaGVyLnBocCBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNo
ZXIucGhwCmluZGV4IDZlMGJlY2QwYmM4MTY0YzA0MmZkM2ZiMmYzOTk4YzQxNTRmZWIwZTEuLmQ5
OGYxYzM3NjRmNzBjYzE1Yjc5MTk3MjdhYWQxMThlMDc4ZDA0YjggMTAwNjQ0Ci0tLSBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhw
CisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtbG9n
LWZldGNoZXIucGhwCkBAIC04LDE0ICs4LDE2IEBAIGNsYXNzIENvbW1pdExvZ0ZldGNoZXIgewog
CiAgICAgc3RhdGljIGZ1bmN0aW9uIGZpbmRfY29tbWl0X2lkX2J5X3JldmlzaW9uKCRkYiwgJHJl
cG9zaXRvcnlfaWQsICRyZXZpc2lvbikKICAgICB7Ci0gICAgICAgICRjb21taXRfcm93cyA9ICRk
Yi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUIGNvbW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hF
UkUgY29tbWl0X3JlcG9zaXRvcnkgPSAkMSBBTkQgY29tbWl0X3JldmlzaW9uID0gJDInLCBhcnJh
eSgkcmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uKSk7CisgICAgICAgICRjb2x1bW5fbmFtZSA9IENv
bW1pdExvZ0ZldGNoZXI6OmlzX2NvbW1pdF9yZXZpc2lvbl9sYWJlbCgkcmV2aXNpb24pID8gJ2Nv
bW1pdF9yZXZpc2lvbl9sYWJlbCcgOiAnY29tbWl0X3JldmlzaW9uJzsKKyAgICAgICAgCisgICAg
ICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUIGNvbW1p
dF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkgPSAkMSBBTkQgJyAuICRj
b2x1bW5fbmFtZSAuICcgPSAkMicsIGFycmF5KCRyZXBvc2l0b3J5X2lkLCAkcmV2aXNpb24pKTsK
ICAgICAgICAgaWYgKCRjb21taXRfcm93cykKICAgICAgICAgICAgIHJldHVybiAkY29tbWl0X3Jv
d3NbMF1bJ2NvbW1pdF9pZCddOwogCiAgICAgICAgIGlmICghY3R5cGVfYWxudW0oJHJldmlzaW9u
KSkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgICAgICRjb21taXRfcm93cyA9ICRk
Yi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUIGNvbW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hF
UkUgY29tbWl0X3JlcG9zaXRvcnkgPSAkMSBBTkQgY29tbWl0X3JldmlzaW9uIExJS0UgJDIgTElN
SVQgMicsIGFycmF5KCRyZXBvc2l0b3J5X2lkLCBEYXRhYmFzZTo6ZXNjYXBlX2Zvcl9saWtlKCRy
ZXZpc2lvbikgLiAnJScpKTsKKyAgICAgICAgJGNvbW1pdF9yb3dzID0gJGRiLT5xdWVyeV9hbmRf
ZmV0Y2hfYWxsKCdTRUxFQ1QgY29tbWl0X2lkIEZST00gY29tbWl0cyBXSEVSRSBjb21taXRfcmVw
b3NpdG9yeSA9ICQxIEFORCAnIC4gJGNvbHVtbl9uYW1lIC4gJyBMSUtFICQyIExJTUlUIDInLCBh
cnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb24p
IC4gJyUnKSk7CiAgICAgICAgIGlmICghJGNvbW1pdF9yb3dzKQogICAgICAgICAgICAgcmV0dXJu
IE5VTEw7CiAgICAgICAgIGlmIChjb3VudCgkY29tbWl0X3Jvd3MpID4gMSkKQEAgLTU1LDYgKzU3
LDcgQEAgY2xhc3MgQ29tbWl0TG9nRmV0Y2hlciB7CiAgICAgewogICAgICAgICAkc3RhdGVtZW50
cyA9ICdTRUxFQ1QgY29tbWl0X2lkIGFzICJpZCIsCiAgICAgICAgICAgICBjb21taXRfcmV2aXNp
b24gYXMgInJldmlzaW9uIiwKKyAgICAgICAgICAgIGNvbW1pdF9yZXZpc2lvbl9sYWJlbCBhcyAi
cmV2aXNpb25MYWJlbCIsCiAgICAgICAgICAgICBjb21taXRfcHJldmlvdXNfY29tbWl0IGFzICJw
cmV2aW91c0NvbW1pdCIsCiAgICAgICAgICAgICBjb21taXRfdGltZSBhcyAidGltZSIsCiAgICAg
ICAgICAgICBjb21taXR0ZXJfbmFtZSBhcyAiYXV0aG9yTmFtZSIsCkBAIC0xOTIsOCArMTk1LDEz
IEBAIGNsYXNzIENvbW1pdExvZ0ZldGNoZXIgewogICAgICAgICByZXR1cm4gJHRoaXMtPmZvcm1h
dF9zaW5nbGVfY29tbWl0KCRjb21taXQpOwogICAgIH0KIAorICAgIHByaXZhdGUgc3RhdGljIGZ1
bmN0aW9uIGlzX2NvbW1pdF9yZXZpc2lvbl9sYWJlbCgkY29tbWl0X3JldmlzaW9uX29yX3Jldmlz
aW9uX2xhYmVsKSB7CisgICAgICAgIHJldHVybiBwcmVnX21hdGNoKCcvXlxkK0BcUyokLycsICRj
b21taXRfcmV2aXNpb25fb3JfcmV2aXNpb25fbGFiZWwpOworICAgIH0KKwogICAgIHByaXZhdGUg
ZnVuY3Rpb24gY29tbWl0X2Zvcl9yZXZpc2lvbigkcmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uKSB7
Ci0gICAgICAgICRjb21taXRfaW5mbyA9IGFycmF5KCdyZXBvc2l0b3J5JyA9PiAkcmVwb3NpdG9y
eV9pZCwgJ3JldmlzaW9uJyA9PiAkcmV2aXNpb24pOworICAgICAgICAkY29tbWl0X2luZm8gPSBh
cnJheSgncmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlfaWQpOyAKKyAgICAgICAgJGNvbW1pdF9p
bmZvWyR0aGlzLT5pc19jb21taXRfcmV2aXNpb25fbGFiZWwoJHJldmlzaW9uKSA/ICdyZXZpc2lv
bl9sYWJlbCcgOiAncmV2aXNpb24nXSA9ICRyZXZpc2lvbjsKICAgICAgICAgJHJvdyA9ICR0aGlz
LT5kYi0+c2VsZWN0X2xhc3Rfcm93KCdjb21taXRzJywgJ2NvbW1pdCcsICRjb21taXRfaW5mbyk7
CiAgICAgICAgIGlmICghJHJvdykKICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignVW5rbm93
bkNvbW1pdCcsICRjb21taXRfaW5mbyk7CkBAIC0yMDEsNyArMjA5LDggQEAgY2xhc3MgQ29tbWl0
TG9nRmV0Y2hlciB7CiAgICAgfQogCiAgICAgcHJpdmF0ZSBmdW5jdGlvbiBjb21taXRfZm9yX3Jl
dmlzaW9uX3ByZWZpeCgkcmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uX3ByZWZpeCkgewotICAgICAg
ICAkcm93cyA9ICR0aGlzLT5kYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUICogRlJPTSBj
b21taXRzIFdIRVJFIGNvbW1pdF9yZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF9yZXZpc2lvbiBM
SUtFICQyIE9SREVSIEJZIGNvbW1pdF9yZXZpc2lvbiBMSU1JVCAyJywgYXJyYXkoJHJlcG9zaXRv
cnlfaWQsIERhdGFiYXNlOjplc2NhcGVfZm9yX2xpa2UoJHJldmlzaW9uX3ByZWZpeCkgLiAnJScp
KTsKKyAgICAgICAgJGNvbHVtbl9uYW1lID0gJHRoaXMtPmlzX2NvbW1pdF9yZXZpc2lvbl9sYWJl
bCgkcmV2aXNpb25fcHJlZml4KSA/ICdyZXZpc2lvbl9sYWJlbCcgOiAncmV2aXNpb24nOworICAg
ICAgICAkcm93cyA9ICR0aGlzLT5kYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUICogRlJP
TSBjb21taXRzIFdIRVJFIGNvbW1pdF9yZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF8nIC4gJGNv
bHVtbl9uYW1lIC4gJyBMSUtFICQyIE9SREVSIEJZIGNvbW1pdF8nLiRjb2x1bW5fbmFtZS4nIExJ
TUlUIDInLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgk
cmV2aXNpb25fcHJlZml4KSAuICclJykpOwogICAgICAgICBpZiAoY291bnQoJHJvd3MpID09IDAp
CiAgICAgICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ1Vua25vd25Db21taXQnLCBhcnJheSgncmVw
b3NpdG9yeScgPT4gJHJlcG9zaXRvcnlfaWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uX3ByZWZp
eCkpOwogICAgICAgICBpZiAoY291bnQoJHJvd3MpID09IDIpIHsKQEAgLTIyNCw2ICsyMzMsNyBA
QCBjbGFzcyBDb21taXRMb2dGZXRjaGVyIHsKICAgICAgICAgcmV0dXJuIGFycmF5KAogICAgICAg
ICAgICAgJ2lkJyA9PiAkY29tbWl0X3Jvd1snY29tbWl0X2lkJ10sCiAgICAgICAgICAgICAncmV2
aXNpb24nID0+ICRjb21taXRfcm93Wydjb21taXRfcmV2aXNpb24nXSwKKyAgICAgICAgICAgICdy
ZXZpc2lvbkxhYmVsJyA9PiAkY29tbWl0X3Jvd1snY29tbWl0X3JldmlzaW9uX2xhYmVsJ10sCiAg
ICAgICAgICAgICAncmVwb3NpdG9yeScgPT4gJGNvbW1pdF9yb3dbJ2NvbW1pdF9yZXBvc2l0b3J5
J10sCiAgICAgICAgICAgICAncHJldmlvdXNDb21taXQnID0+ICRjb21taXRfcm93Wydjb21taXRf
cHJldmlvdXNfY29tbWl0J10sCiAgICAgICAgICAgICAndGltZScgPT4gRGF0YWJhc2U6OnRvX2pz
X3RpbWUoJGNvbW1pdF9yb3dbJ2NvbW1pdF90aW1lJ10pLApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocCBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtdXBkYXRlci5waHAKaW5k
ZXggMDhjNjhiYmU2NDEwYWZmMDZkYjg3NTQ5OTJhNDhjOTM3ZTcwZTMyZi4uOTUxMTFiZGI4OTE3
MjVlMDVlOTlkMTMyYjIzZDlkYWMyY2ZiZGRhOSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocAorKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LXVwZGF0ZXIucGhwCkBAIC0z
MCw3ICszMCw2IEBAIGNsYXNzIENvbW1pdFVwZGF0ZXIgewogICAgIHByaXZhdGUgZnVuY3Rpb24g
dXBkYXRlX2NvbW1pdCgmJHVwZGF0ZSwgJG93bmVyX2NvbW1pdF9pZCwgJG93bmVyX3JlcG9zaXRv
cnlfaWQsICRzaG91bGRfaW5zZXJ0KQogICAgIHsKICAgICAgICAgJGNvbW1pdF9kYXRhID0gJiR0
aGlzLT5yZXNvbHZlX2ZpZWxkc19mcm9tX2RhdGFiYXNlKCR1cGRhdGUsICRvd25lcl9yZXBvc2l0
b3J5X2lkLCAkc2hvdWxkX2luc2VydCk7Ci0KICAgICAgICAgJGNvbW1pdF9zZWxlY3RfcXVlcnkg
PSBhcnJheSgncmVwb3NpdG9yeScgPT4gJGNvbW1pdF9kYXRhWydyZXBvc2l0b3J5J10sICdyZXZp
c2lvbicgPT4gJGNvbW1pdF9kYXRhWydyZXZpc2lvbiddKTsKICAgICAgICAgaWYgKCRzaG91bGRf
aW5zZXJ0KSB7CiAgICAgICAgICAgICAkY29tbWl0X2lkID0gJHRoaXMtPmRiLT51cGRhdGVfb3Jf
aW5zZXJ0X3JvdygnY29tbWl0cycsICdjb21taXQnLCAkY29tbWl0X3NlbGVjdF9xdWVyeSwgJGNv
bW1pdF9kYXRhKTsKQEAgLTc0LDYgKzczLDcgQEAgY2xhc3MgQ29tbWl0VXBkYXRlciB7CiAgICAg
cHJpdmF0ZSBmdW5jdGlvbiAmY29uc3RydWN0X3VwZGF0ZV9saXN0KCYkY29tbWl0X2luZm9fbGlz
dCwgJHNob3VsZF9pbnNlcnQpCiAgICAgewogICAgICAgICAkdXBkYXRlX2xpc3QgPSBhcnJheSgp
OworICAgICAgICAkY29tbWl0X3JldmlzaW9uX2xhYmVscyA9IGFycmF5KCk7CiAKICAgICAgICAg
Zm9yZWFjaCAoJGNvbW1pdF9pbmZvX2xpc3QgYXMgJiRjb21taXRfaW5mbykgewogICAgICAgICAg
ICAgc2VsZjo6dmFsaWRhdGVfY29tbWl0cygkY29tbWl0X2luZm8pOwpAQCAtODEsNiArODEsMTEg
QEAgY2xhc3MgQ29tbWl0VXBkYXRlciB7CiAgICAgICAgICAgICAkaGFzX3VwZGF0ZSA9IGNvdW50
KCRjb21taXRfZGF0YSkgPiAxOwogCiAgICAgICAgICAgICAkdXBkYXRlID0gYXJyYXkoJ2NvbW1p
dCcgPT4gJiRjb21taXRfZGF0YSwgJ3JlcG9zaXRvcnknID0+ICYkY29tbWl0X2luZm9bJ3JlcG9z
aXRvcnknXSk7CisgICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncmV2aXNpb25MYWJl
bCcsICRjb21taXRfaW5mbykpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0
cygkY29tbWl0X2luZm9bJ3JldmlzaW9uTGFiZWwnXSwgJGNvbW1pdF9yZXZpc2lvbl9sYWJlbHMp
KQorICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZXhpdF93aXRoX2Vycm9yKCdEdXBsaWNhdGVk
UmV2aXNpb25MYWJlbCcsIGFycmF5KCdjb21taXQnID0+ICRjb21taXRfaW5mbykpOworICAgICAg
ICAgICAgICAgICRjb21taXRfcmV2aXNpb25fbGFiZWxzWyRjb21taXRfaW5mb1sncmV2aXNpb25M
YWJlbCddXSA9IHRydWU7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoYXJyYXlfa2V5
X2V4aXN0cygncHJldmlvdXNDb21taXQnLCAkY29tbWl0X2luZm8pKSB7CiAgICAgICAgICAgICAg
ICAgJGhhc191cGRhdGUgPSB0cnVlOwogICAgICAgICAgICAgICAgICR1cGRhdGVbJ3ByZXZpb3Vz
X2NvbW1pdCddID0gJiRjb21taXRfaW5mb1sncHJldmlvdXNDb21taXQnXTsKQEAgLTEwNCw2ICsx
MDksNyBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsKIAogICAgICAgICAgICAgJG93bmVkX2NvbW1p
dF91cGRhdGVfbGlzdCA9IGFycmF5KCk7CiAgICAgICAgICAgICBmb3JlYWNoKCRjb21taXRfaW5m
b1snb3duZWRDb21taXRzJ10gYXMgJG93bmVkX3JlcG9zaXRvcnlfbmFtZSA9PiAmJG93bmVkX2Nv
bW1pdF9pbmZvKSB7CisgICAgICAgICAgICAgICAgc2VsZjo6dmFsaWRhdGVfb3duX2NvbW1pdHMo
JG93bmVkX2NvbW1pdF9pbmZvKTsKICAgICAgICAgICAgICAgICAkb3duZWRfY29tbWl0ID0gJnNl
bGY6OmNvbnN0cnVjdF9jb21taXRfZGF0YSgkb3duZWRfY29tbWl0X2luZm8sICRvd25lZF9yZXBv
c2l0b3J5X25hbWUsICRzaG91bGRfaW5zZXJ0KTsKICAgICAgICAgICAgICAgICAkb3duZWRfY29t
bWl0X3VwZGF0ZSA9IGFycmF5KCdjb21taXQnID0+ICYkb3duZWRfY29tbWl0LCAncmVwb3NpdG9y
eScgPT4gJG93bmVkX3JlcG9zaXRvcnlfbmFtZSk7CiAKQEAgLTE0MywxMiArMTQ5LDI2IEBAIGNs
YXNzIENvbW1pdFVwZGF0ZXIgewogICAgICAgICAgICAgJGNvbW1pdF9kYXRhWyd0aW1lJ10gPSAk
Y29tbWl0X2luZm9bJ3RpbWUnXTsKICAgICAgICAgfQogCisgICAgICAgIGlmIChhcnJheV9rZXlf
ZXhpc3RzKCdyZXZpc2lvbkxhYmVsJywgJGNvbW1pdF9pbmZvKSkKKyAgICAgICAgICAgICRjb21t
aXRfZGF0YVsncmV2aXNpb25fbGFiZWwnXSA9ICRjb21taXRfaW5mb1sncmV2aXNpb25MYWJlbCdd
OworCiAgICAgICAgIGlmICgkc2hvdWxkX2luc2VydCkKICAgICAgICAgICAgICRjb21taXRfZGF0
YVsncmVwb3J0ZWQnXSA9IHRydWU7CiAKICAgICAgICAgcmV0dXJuICRjb21taXRfZGF0YTsKICAg
ICB9CiAKKyAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiB2YWxpZGF0ZV9vd25fY29tbWl0cygm
JGNvbW1pdF9pbmZvKQorICAgIHsKKyAgICAgICAgcmVxdWlyZV9mb3JtYXQoJ093bkNvbW1pdFJl
dmlzaW9uJywgJGNvbW1pdF9pbmZvWydyZXZpc2lvbiddLCAnL15bQS1aYS16MC05IFwuXSskLycp
OworICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncmV2aXNpb25MYWJlbCcsICRjb21taXRf
aW5mbykpCisgICAgICAgICAgICByZXF1aXJlX2Zvcm1hdCgnT3duQ29tbWl0UmV2aXNpb25MYWJl
bCcsICRjb21taXRfaW5mb1sncmV2aXNpb25MYWJlbCddLCAnL15cZCtAXFMrJC8nKTsKKyAgICAg
ICAgaWYgKGFycmF5X2tleV9leGlzdHMoJ3ByZXZpb3VzQ29tbWl0JywgJGNvbW1pdF9pbmZvKSkK
KyAgICAgICAgICAgIHJlcXVpcmVfZm9ybWF0KCdPd25Db21taXRSZXZpc2lvbicsICRjb21taXRf
aW5mb1sncHJldmlvdXNDb21taXQnXSwgJy9eW0EtWmEtejAtOSBcLl0rJC8nKTsKKyAgICAgICAg
aWYgKGFycmF5X2tleV9leGlzdHMoJ2F1dGhvcicsICRjb21taXRfaW5mbykgJiYgIWlzX2FycmF5
KCRjb21taXRfaW5mb1snYXV0aG9yJ10pKQorICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdJ
bnZhbGlkT3duQ29tbWl0QXV0aG9yRm9ybWF0JywgYXJyYXkoJ2NvbW1pdCcgPT4gJGNvbW1pdF9p
bmZvKSk7CisgICAgfQorCiAgICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gdmFsaWRhdGVfY29t
bWl0cygmJGNvbW1pdF9pbmZvKQogICAgIHsKICAgICAgICAgaWYgKCFhcnJheV9rZXlfZXhpc3Rz
KCdyZXBvc2l0b3J5JywgJGNvbW1pdF9pbmZvKSkKQEAgLTE2MCw2ICsxODAsOCBAQCBjbGFzcyBD
b21taXRVcGRhdGVyIHsKICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignSW52YWxpZEF1dGhv
ckZvcm1hdCcsIGFycmF5KCdjb21taXQnID0+ICRjb21taXRfaW5mbykpOwogICAgICAgICBpZiAo
YXJyYXlfa2V5X2V4aXN0cygncHJldmlvdXNDb21taXQnLCAkY29tbWl0X2luZm8pKQogICAgICAg
ICAgICAgcmVxdWlyZV9mb3JtYXQoJ1JldmlzaW9uJywgJGNvbW1pdF9pbmZvWydwcmV2aW91c0Nv
bW1pdCddLCAnL15bQS1aYS16MC05IFwuXSskLycpOworICAgICAgICBpZiAoYXJyYXlfa2V5X2V4
aXN0cygncmV2aXNpb25MYWJlbCcsICRjb21taXRfaW5mbykpCisgICAgICAgICAgICByZXF1aXJl
X2Zvcm1hdCgnUmV2aXNpb25MYWJlbCcsICRjb21taXRfaW5mb1sncmV2aXNpb25MYWJlbCddLCAn
L15cZCtAXFMrJC8nKTsKICAgICB9CiAKICAgICBwcml2YXRlIGZ1bmN0aW9uIHJlc29sdmVfcmVw
b3NpdG9yeSgkcmVwb3NpdG9yeV9uYW1lLCAkb3duZXJfcmVwb3NpdG9yeV9pZCwgJHNob3VsZF9p
bnNlcnQpCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1
ZGUvcmVwb3J0LXByb2Nlc3Nvci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L2luY2x1ZGUvcmVwb3J0LXByb2Nlc3Nvci5waHAKaW5kZXggMWJjMWRiNjQyZGJlZmVmOGVjYjA3
MmUxOGI1N2U5YzkxYmMwNzIzYy4uMWVmOWE2ZDVkZDQzOTg2ZjBkNjk3MTQ0MzU5Njc0OTczZjk4
MWMxZCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRl
L3JlcG9ydC1wcm9jZXNzb3IucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvaW5jbHVkZS9yZXBvcnQtcHJvY2Vzc29yLnBocApAQCAtMTU5LDE0ICsxNTksMTIgQEAgY2xh
c3MgUmVwb3J0UHJvY2Vzc29yIHsKICAgICAgICAgICAgICAgICAkdGhpcy0+cm9sbGJhY2tfd2l0
aF9lcnJvcignRmFpbGVkVG9VcGRhdGVCdWlsZFJlcXVlc3QnLCBhcnJheSgnYnVpbGRSZXF1ZXN0
JyA9PiAkYnVpbGRfcmVxdWVzdF9pZCwgJ2J1aWxkJyA9PiAkYnVpbGRfaWQpKTsKICAgICAgICAg
fQogCi0KICAgICAgICAgZm9yZWFjaCAoJHJldmlzaW9ucyBhcyAkcmVwb3NpdG9yeV9uYW1lID0+
ICRyZXZpc2lvbl9kYXRhKSB7CiAgICAgICAgICAgICAkcmVwb3NpdG9yeV9pZCA9ICR0aGlzLT5k
Yi0+c2VsZWN0X29yX2luc2VydF9yb3coJ3JlcG9zaXRvcmllcycsICdyZXBvc2l0b3J5JywgYXJy
YXkoJ25hbWUnID0+ICRyZXBvc2l0b3J5X25hbWUsICdvd25lcicgPT4gTlVMTCkpOwogICAgICAg
ICAgICAgaWYgKCEkcmVwb3NpdG9yeV9pZCkKICAgICAgICAgICAgICAgICAkdGhpcy0+cm9sbGJh
Y2tfd2l0aF9lcnJvcignRmFpbGVkVG9JbnNlcnRSZXBvc2l0b3J5JywgYXJyYXkoJ25hbWUnID0+
ICRyZXBvc2l0b3J5X25hbWUpKTsKIAotICAgICAgICAgICAgJGNvbW1pdF9kYXRhID0gYXJyYXko
J3JlcG9zaXRvcnknID0+ICRyZXBvc2l0b3J5X2lkLCAncmV2aXNpb24nID0+ICRyZXZpc2lvbl9k
YXRhWydyZXZpc2lvbiddLCAndGltZScgPT4gYXJyYXlfZ2V0KCRyZXZpc2lvbl9kYXRhLCAndGlt
ZXN0YW1wJykpOwotCisgICAgICAgICAgICAkY29tbWl0X2RhdGEgPSBhcnJheSgncmVwb3NpdG9y
eScgPT4gJHJlcG9zaXRvcnlfaWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uX2RhdGFbJ3Jldmlz
aW9uJ10sICd0aW1lJyA9PiBhcnJheV9nZXQoJHJldmlzaW9uX2RhdGEsICd0aW1lc3RhbXAnKSwg
J3JldmlzaW9uX2xhYmVsJyA9PiBhcnJheV9nZXQoJHJldmlzaW9uX2RhdGEsICdyZXZpc2lvbkxh
YmVsJywgbnVsbCkpOwogICAgICAgICAgICAgJG1pc21hdGNoaW5nX2NvbW1pdCA9ICR0aGlzLT5k
Yi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUICogRlJPTSBidWlsZF9jb21taXRzLCBjb21t
aXRzCiAgICAgICAgICAgICAgICAgV0hFUkUgYnVpbGRfY29tbWl0ID0gY29tbWl0X2lkIEFORCBj
b21taXRfYnVpbGQgPSAkMSBBTkQgY29tbWl0X3JlcG9zaXRvcnkgPSAkMiBBTkQgY29tbWl0X3Jl
dmlzaW9uICE9ICQzIExJTUlUIDEnLAogICAgICAgICAgICAgICAgIGFycmF5KCRidWlsZF9pZCwg
JHJlcG9zaXRvcnlfaWQsICRyZXZpc2lvbl9kYXRhWydyZXZpc2lvbiddKSk7CmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9nLmpz
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5q
cwppbmRleCBlNmQ0ZDQ0YWJiNTU0MTM0NmUyZjRhOWQ0NDAwOWY3OWE3ODI5MDBiLi44MDQxODQy
N2UyMjRjYmI4ODIyMTU1MWM4NWU3YTFkMDYxMmVkZGFmIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9nLmpzCisrKyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1sb2cuanMKQEAgLTIw
LDYgKzIwLDcgQEAgY2xhc3MgQ29tbWl0TG9nIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKIAog
ICAgICAgICBjb25zb2xlLmFzc2VydCgrdGhpcy5fcmF3RGF0YVsndGltZSddID09ICtyYXdEYXRh
Wyd0aW1lJ10pOwogICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9yYXdEYXRhWydyZXZpc2lv
biddID09IHJhd0RhdGFbJ3JldmlzaW9uJ10pOworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlz
Ll9yYXdEYXRhWydyZXZpc2lvbkxhYmVsJ10gPT0gcmF3RGF0YVsncmV2aXNpb25MYWJlbCddKTsK
IAogICAgICAgICBpZiAocmF3RGF0YS5hdXRob3JOYW1lKQogICAgICAgICAgICAgdGhpcy5fcmF3
RGF0YS5hdXRob3JOYW1lID0gcmF3RGF0YS5hdXRob3JOYW1lOwpAQCAtMzksNiArNDAsNyBAQCBj
bGFzcyBDb21taXRMb2cgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogICAgIHRlc3RhYmlsaXR5
KCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsndGVzdGFiaWxpdHknXTsgfQogICAgIGF1dGhvcigp
IHsgcmV0dXJuIHRoaXMuX3Jhd0RhdGFbJ2F1dGhvck5hbWUnXTsgfQogICAgIHJldmlzaW9uKCkg
eyByZXR1cm4gdGhpcy5fcmF3RGF0YVsncmV2aXNpb24nXTsgfQorICAgIHJldmlzaW9uTGFiZWwo
KSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydyZXZpc2lvbkxhYmVsJ107IH0KICAgICBtZXNzYWdl
KCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsnbWVzc2FnZSddOyB9CiAgICAgdXJsKCkgeyByZXR1
cm4gdGhpcy5fcmVwb3NpdG9yeS51cmxGb3JSZXZpc2lvbih0aGlzLl9yYXdEYXRhWydyZXZpc2lv
biddKTsgfQogICAgIG93bnNDb21taXRzKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsnb3duc0Nv
bW1pdHMnXTsgfQpAQCAtNTEsMTEgKzUzLDE1IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERh
dGFNb2RlbE9iamVjdCB7CiAgICAgbGFiZWwoKQogICAgIHsKICAgICAgICAgY29uc3QgcmV2aXNp
b24gPSB0aGlzLnJldmlzaW9uKCk7CisgICAgICAgIGNvbnN0IHJldmlzaW9uTGFiZWwgPSB0aGlz
LnJldmlzaW9uTGFiZWwoKTsKKyAgICAgICAgbGV0IGZvcm1hdHRlZFJldmlzaW9uID0gcmV2aXNp
b247CiAgICAgICAgIGlmIChwYXJzZUludChyZXZpc2lvbikgPT0gcmV2aXNpb24pIC8vIGUuZy4g
cjEyMzQ1Ci0gICAgICAgICAgICByZXR1cm4gJ3InICsgcmV2aXNpb247CisgICAgICAgICAgICBm
b3JtYXR0ZWRSZXZpc2lvbiA9ICdyJyArIHJldmlzaW9uOwogICAgICAgICBpZiAocmV2aXNpb24u
bGVuZ3RoID09IDQwKSAvLyBlLmcuIGdpdCBoYXNoCi0gICAgICAgICAgICByZXR1cm4gcmV2aXNp
b24uc3Vic3RyaW5nKDAsIDEyKTsKLSAgICAgICAgcmV0dXJuIHJldmlzaW9uOworICAgICAgICAg
ICAgZm9ybWF0dGVkUmV2aXNpb24gPSByZXZpc2lvbi5zdWJzdHJpbmcoMCwgMTIpOworICAgICAg
ICBpZiAocmV2aXNpb25MYWJlbCkKKyAgICAgICAgICAgIHJldHVybiBgJHtyZXZpc2lvbkxhYmVs
fSAoJHtmb3JtYXR0ZWRSZXZpc2lvbn0pYDsKKyAgICAgICAgcmV0dXJuIGZvcm1hdHRlZFJldmlz
aW9uOwogICAgIH0KICAgICB0aXRsZSgpIHsgcmV0dXJuIHRoaXMuX3JlcG9zaXRvcnkubmFtZSgp
ICsgJyBhdCAnICsgdGhpcy5sYWJlbCgpOyB9CiAKQEAgLTY4LDE3ICs3NCwxOSBAQCBjbGFzcyBD
b21taXRMb2cgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogICAgICAgICBpZiAoIXByZXZpb3Vz
Q29tbWl0KQogICAgICAgICAgICAgcmV0dXJuIHtyZXBvc2l0b3J5OiByZXBvc2l0b3J5LCBsYWJl
bDogdGhpcy5sYWJlbCgpLCB1cmw6IHRoaXMudXJsKCl9OwogCi0gICAgICAgIGNvbnN0IHRvID0g
dGhpcy5yZXZpc2lvbigpOwotICAgICAgICBjb25zdCBmcm9tID0gcHJldmlvdXNDb21taXQucmV2
aXNpb24oKTsKLSAgICAgICAgbGV0IGxhYmVsID0gbnVsbDsKLSAgICAgICAgaWYgKHBhcnNlSW50
KGZyb20pID09IGZyb20pLy8gZS5nLiByMTIzNDUuCi0gICAgICAgICAgICBsYWJlbCA9IGByJHtm
cm9tfS1yJHt0aGlzLnJldmlzaW9uKCl9YDsKLSAgICAgICAgZWxzZSBpZiAodG8ubGVuZ3RoID09
IDQwKSAvLyBlLmcuIGdpdCBoYXNoCi0gICAgICAgICAgICBsYWJlbCA9IGAke2Zyb20uc3Vic3Ry
aW5nKDAsIDEyKX0uLiR7dG8uc3Vic3RyaW5nKDAsIDEyKX1gOwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBsYWJlbCA9IGAke2Zyb219IC0gJHt0b31gOwotCi0gICAgICAgIHJldHVybiB7cmVw
b3NpdG9yeTogcmVwb3NpdG9yeSwgbGFiZWw6IGxhYmVsLCB1cmw6IHJlcG9zaXRvcnkudXJsRm9y
UmV2aXNpb25SYW5nZShmcm9tLCB0byl9OworICAgICAgICBjb25zdCB0b1JldmlzaW9uID0gdGhp
cy5yZXZpc2lvbigpOworICAgICAgICBjb25zdCBmcm9tUmV2aXNvbiA9IHByZXZpb3VzQ29tbWl0
LnJldmlzaW9uKCk7CisgICAgICAgIGNvbnN0IHRvUmV2aXNpb25MYWJlbCA9IHRoaXMucmV2aXNp
b25MYWJlbCgpOworICAgICAgICBjb25zdCBmcm9tUmV2aXNpb25MYWJlbCA9IHByZXZpb3VzQ29t
bWl0LnJldmlzaW9uTGFiZWwoKTsKKyAgICAgICAgbGV0IGxhYmVsID0gYCR7cHJldmlvdXNDb21t
aXQubGFiZWwoKX0gLSAke3RoaXMubGFiZWwoKX1gOworICAgICAgICBpZiAoIXRvUmV2aXNpb25M
YWJlbCAmJiAhZnJvbVJldmlzaW9uTGFiZWwpIHsKKyAgICAgICAgICAgIGlmIChwYXJzZUludChm
cm9tUmV2aXNvbikgPT0gZnJvbVJldmlzb24pLy8gZS5nLiByMTIzNDUuCisgICAgICAgICAgICAg
ICAgbGFiZWwgPSBgciR7ZnJvbVJldmlzb259LXIke3RoaXMucmV2aXNpb24oKX1gOworICAgICAg
ICAgICAgZWxzZSBpZiAodG9SZXZpc2lvbi5sZW5ndGggPT0gNDApIC8vIGUuZy4gZ2l0IGhhc2gK
KyAgICAgICAgICAgICAgICBsYWJlbCA9IGAke2Zyb21SZXZpc29uLnN1YnN0cmluZygwLCAxMil9
Li4ke3RvUmV2aXNpb24uc3Vic3RyaW5nKDAsIDEyKX1gOworICAgICAgICB9CisKKyAgICAgICAg
cmV0dXJuIHtyZXBvc2l0b3J5OiByZXBvc2l0b3J5LCBsYWJlbDogbGFiZWwsIHVybDogcmVwb3Np
dG9yeS51cmxGb3JSZXZpc2lvblJhbmdlKGZyb21SZXZpc29uLCB0b1JldmlzaW9uKX07CiAgICAg
fQogCiAgICAgc3RhdGljIGZldGNoTGF0ZXN0Q29tbWl0Rm9yUGxhdGZvcm0ocmVwb3NpdG9yeSwg
cGxhdGZvcm0pCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL2FwaS1jb21taXRzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcwppbmRleCAyODU2OWYwNjM3MzA0ZTNhNjJjZjc3
MDA5MjM5M2Y3ZjBlNzM2NTk3Li4xYzAwMjY4NjIzZTIyNWU3NTE0ODhjOWVmN2U0YjdmZTQ4NTM0
ODkwIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2Fw
aS1jb21taXRzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMKQEAgLTE3LDYgKzE3LDcgQEAgZGVzY3JpYmUoIi9h
cGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAi
MjEwOTQ4IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25MYWJlbCI6ICIxODQyNzZAbWFpbiIs
CiAgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMjo1MjozNC41NzdaIiwKICAg
ICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIlphbGFuIEJ1anRhcyIsICJhY2NvdW50
IjogInphbGFuQGFwcGxlLmNvbSJ9LAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImEgbWVz
c2FnZSIsCkBAIC0yNCw2ICsyNSw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldl
YktpdCIsCiAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OSIsCisgICAgICAgICAg
ICAgICAgInJldmlzaW9uTGFiZWwiOiAiMTg0Mjc3QG1haW4iLAogICAgICAgICAgICAgICAgICJ0
aW1lIjogIjIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1WiIsCiAgICAgICAgICAgICAgICAgImF1dGhv
ciI6IHsibmFtZSI6ICJDaHJpcyBEdW1leiIsICJhY2NvdW50IjogImNkdW1lekBhcHBsZS5jb20i
fSwKICAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJzb21lIG1lc3NhZ2UiLApAQCAtMzIsMTIg
KzM0LDUzIEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCiAgICAgICAgICAgICAgICAgInByZXZp
b3VzQ29tbWl0IjogIjIxMDk0OSIsCiAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk1
MCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uTGFiZWwiOiAiMTg0Mjc4QG1haW4iLAogICAg
ICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDM6NDk6MzcuODg3WiIsCiAgICAgICAg
ICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3VudCI6ICJj
b21taXQtcXVldWVAd2Via2l0Lm9yZyJ9LAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImFu
b3RoZXIgbWVzc2FnZSIsCisgICAgICAgICAgICB9LAorICAgICAgICBdCisgICAgfTsKKworICAg
IGNvbnN0IHN1YmNlcnNpb25Db21taXRzV2l0aEZha2VSZXZpc2lvbkxhYmVsID0geworICAgICAg
ICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNv
bWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlz
aW9uIjogIjIxMDk0OCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uTGFiZWwiOiAiMTg0Mjc2
QG1haW4iLAorICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6NTI6MzQuNTc3
WiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJaYWxhbiBCdWp0YXMiLCAi
YWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6
ICJhIG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6
ICIyMTA5NDkiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbkxhYmVsIjogIjE4NDI3N0BtYWlu
IiwKKyAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjIzOjUwLjY0NVoiLAor
ICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ2hyaXMgRHVtZXoiLCAiYWNjb3Vu
dCI6ICJjZHVtZXpAYXBwbGUuY29tIn0sCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAic29t
ZSBtZXNzYWdlIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAicHJldmlvdXNDb21t
aXQiOiAiMjEwOTQ5IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTUwIiwKKyAg
ICAgICAgICAgICAgICAicmV2aXNpb25MYWJlbCI6ICIxODQyNzhAbWFpbiIsCisgICAgICAgICAg
ICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMzo0OTozNy44ODdaIiwKKyAgICAgICAgICAgICAg
ICAiYXV0aG9yIjogeyJuYW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50IjogImNvbW1pdC1x
dWV1ZUB3ZWJraXQub3JnIn0sCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYW5vdGhlciBt
ZXNzYWdlIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
InJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEw
OTUxIiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25MYWJlbCI6ICIxODQyNzhAc29tZXRoaW5n
IiwKKyAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjQ5OjQwLjg4N1oiLAor
ICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291
bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmcifSwKKyAgICAgICAgICAgICAgICAibWVzc2Fn
ZSI6ICJhbm90aGVyIG1lc3NhZ2UiLAogICAgICAgICAgICAgfQogICAgICAgICBdCi0gICAgfQor
ICAgIH07CiAKICAgICBjb25zdCBjb21taXRzT25lUHJlZml4T2ZUaGVPdGhlciA9IHsKICAgICAg
ICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLApAQCAtNDYsNiArODksNyBAQCBkZXNjcmliZSgi
L2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAogICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6
ICIyMTA5NCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uTGFiZWwiOiAiMTg0MjcyQG1haW4i
LAogICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6NTI6MzQuNTc3WiIsCiAg
ICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJaYWxhbiBCdWp0YXMiLCAiYWNjb3Vu
dCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKICAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJhIG1l
c3NhZ2UiLApAQCAtNTMsNiArOTcsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJX
ZWJLaXQiLAogICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDkiLAorICAgICAgICAg
ICAgICAgICJyZXZpc2lvbkxhYmVsIjogIjE4NDI3N0BtYWluIiwKICAgICAgICAgICAgICAgICAi
dGltZSI6ICIyMDE3LTAxLTIwVDAzOjIzOjUwLjY0NVoiLAogICAgICAgICAgICAgICAgICJhdXRo
b3IiOiB7Im5hbWUiOiAiQ2hyaXMgRHVtZXoiLCAiYWNjb3VudCI6ICJjZHVtZXpAYXBwbGUuY29t
In0sCiAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAic29tZSBtZXNzYWdlIiwKQEAgLTUyNCw2
ICs1NjksNDEgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gY29t
bWl0IHdpdGggY29tbWl0IHJldmlzaW9uIGxhYmVsIiwgYXN5bmMgKCkgPT4geworICAgICAgICAg
ICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpOworICAgICAgICAg
ICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09O
KCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXRzKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAg
ICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKGAv
YXBpL2NvbW1pdHMvV2ViS2l0LyR7c3VidmVyc2lvbkNvbW1pdHMuY29tbWl0c1swXS5yZXZpc2lv
bkxhYmVsfWApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVz
J10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdC5jb21taXRz
Lmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRl
ZChyZXN1bHQuY29tbWl0c1swXSwgc3VidmVyc2lvbkNvbW1pdHMuY29tbWl0c1swXSk7CisgICAg
ICAgIH0pOworCisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuICdBbWJpZ3VvdXNSZXZpc2lvblBy
ZWZpeCcgd2hlbiBtb3JlIHRoYW4gb25lIGNvbW1pdHMgYXJlIGZvdW5kIGZvciBhIHJldmlzaW9u
IGxhYmVsIHByZWZpeCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHJlbW90ZSA9
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7CisgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJl
cG9ydChzdWJjZXJzaW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25MYWJlbCk7CisgICAgICAgICAg
ICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycs
IHN1YmNlcnNpb25Db21taXRzV2l0aEZha2VSZXZpc2lvbkxhYmVsKTsKKyAgICAgICAgICAgIGNv
bnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzE4
NDI3OEA/cHJlZml4LW1hdGNoPXRydWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXN1bHRbJ3N0YXR1cyddLCAnQW1iaWd1b3VzUmV2aXNpb25QcmVmaXgnKTsKKyAgICAgICAg
fSk7CisKKyAgICAgICAgaXQoInNob3VsZCBub3QgcmV0dXJuICdBbWJpZ3VvdXNSZXZpc2lvblBy
ZWZpeCcgd2hlbiB0aGVyZSBpcyBhIGNvbW1pdCByZXZpc2lvbiBsYWJlbCBleHRyYWN0IG1hdGNo
ZXMgc3BlY2lmaWVkIHJldmlzaW9uIHByZWZpeCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAg
IGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7CisgICAgICAgICAgICBhd2Fp
dCBhZGRTbGF2ZUZvclJlcG9ydChzdWJjZXJzaW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25MYWJl
bCk7CisgICAgICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3Jl
cG9ydC1jb21taXRzLycsIHN1YmNlcnNpb25Db21taXRzV2l0aEZha2VSZXZpc2lvbkxhYmVsKTsK
KyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2Nv
bW1pdHMvV2ViS2l0LzE4NDI3OEBtYWluP3ByZWZpeC1tYXRjaD10cnVlJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1p
dHMnXVswXSwgc3ViY2Vyc2lvbkNvbW1pdHNXaXRoRmFrZVJldmlzaW9uTGFiZWxbJ2NvbW1pdHMn
XVsyXSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuICdVbmtub3du
Q29tbWl0JyB3aGVuIG5vIGNvbW1pdCBpcyBmb3VuZCBmb3IgYSByZXZpc2lvbiBsYWJlbCBwcmVm
aXgiLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCByZW1vdGUgPSBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpOworICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3ViY2Vy
c2lvbkNvbW1pdHNXaXRoRmFrZVJldmlzaW9uTGFiZWwpOworICAgICAgICAgICAgYXdhaXQgcmVt
b3RlLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJjZXJzaW9u
Q29tbWl0c1dpdGhGYWtlUmV2aXNpb25MYWJlbCk7CisgICAgICAgICAgICBjb25zdCByZXN1bHQg
PSBhd2FpdCByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8xODQyNzhAeD9wcmVm
aXgtbWF0Y2g9dHJ1ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsn
c3RhdHVzJ10sICdVbmtub3duQ29tbWl0Jyk7CisgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAg
ZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88cmVwb3NpdG9yeT4vb3duZWQtY29tbWl0cz9vd25lci1y
ZXZpc2lvbj08Y29tbWl0PicsICgpID0+IHsKQEAgLTcyNyw2ICs4MDcsMzMgQEAgZGVzY3JpYmUo
Ii9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CiAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gcmVwb3J0ZWQgY29tbWl0cyBpbiB0aGUg
c3BlY2lmaWVkIHJldmlzaW9uIGxhYmVsIHJhbmdlIiwgYXN5bmMgKCkgPT4geworICAgICAgICAg
ICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgICAgICBhd2FpdCBk
Yi5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHsnaWQnOiAxLCAnbmFtZSc6ICdXZWJLaXQnfSk7Cisg
ICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxLCAn
cmV2aXNpb24nOiAnMjEwOTQ4JywgJ3JldmlzaW9uX2xhYmVsJzogJzE4NDI3NkBtYWluJywgJ3Rp
bWUnOiAnMjAxNy0wMS0yMFQwMjo1MjozNC41NzdaJywgJ3JlcG9ydGVkJzogdHJ1ZX0pOworICAg
ICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3Jl
dmlzaW9uJzogJzIxMDk0OScsICdyZXZpc2lvbl9sYWJlbCc6ICcxODQyNzdAbWFpbicsICd0aW1l
JzogJzIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1WicsICdyZXBvcnRlZCc6IHRydWV9KTsKKyAgICAg
ICAgICAgIGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZp
c2lvbic6ICcyMTA5NTAnLCAncmV2aXNpb25fbGFiZWwnOiAnMTg0Mjc4QG1haW4nLCAndGltZSc6
ICcyMDE3LTAxLTIwVDAzOjQ5OjM3Ljg4N1onLCAncmVwb3J0ZWQnOiB0cnVlfSk7CisgICAgICAg
ICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04o
Jy9hcGkvY29tbWl0cy9XZWJLaXQvP3ByZWNlZGluZ1JldmlzaW9uPTE4NDI3NkBtYWluJmxhc3RS
ZXZpc2lvbj0xODQyNzhAbWFpbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0Q29tbWl0
SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHsKKyAgICAgICAgICAg
ICAgICBwcmV2aW91c0NvbW1pdDogbnVsbCwKKyAgICAgICAgICAgICAgICByZXZpc2lvbjogJzIx
MDk0OScsCisgICAgICAgICAgICAgICAgcmV2aXNpb25MYWJlbDogJzE4NDI4OUBtYWluJywKKyAg
ICAgICAgICAgICAgICB0aW1lOiAnMjAxNy0wMS0yMFQwMzoyMzo1MC42NDVaJywKKyAgICAgICAg
ICAgICAgICBhdXRob3I6IHtuYW1lOiBudWxsLCBhY2NvdW50OiBudWxsfSwKKyAgICAgICAgICAg
ICAgICBtZXNzYWdlOiBudWxsLAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBhc3NlcnRD
b21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVsxXSwgeworICAgICAg
ICAgICAgICAgIHByZXZpb3VzQ29tbWl0OiBudWxsLAorICAgICAgICAgICAgICAgIHJldmlzaW9u
OiAnMjEwOTUwJywKKyAgICAgICAgICAgICAgICByZXZpc2lvbkxhYmVsOiAnMTg0MjkwQG1haW4n
LAorICAgICAgICAgICAgICAgIHRpbWU6ICcyMDE3LTAxLTIwVDAzOjQ5OjM3Ljg4N1onLAorICAg
ICAgICAgICAgICAgIGF1dGhvcjoge25hbWU6IG51bGwsIGFjY291bnQ6IG51bGx9LAorICAgICAg
ICAgICAgICAgIG1lc3NhZ2U6IG51bGwsCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisK
ICAgICAgICAgaXQoInNob3VsZCBub3QgaW5jbHVkZSBhIHJldmlzaW9uIG5vdCB3aXRoaW4gdGhl
IHNwZWNpZmllZCByYW5nZSIsICgpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNl
cnZlci5kYXRhYmFzZSgpOwogICAgICAgICAgICAgY29uc3QgcmVtb3RlID0gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKTsKQEAgLTc1MCw2ICs4NTcsMjMgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8i
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKKyAgICAgICAg
aXQoInNob3VsZCBub3QgaW5jbHVkZSBhIHJldmlzaW9uIG5vdCB3aXRoaW4gdGhlIHNwZWNpZmll
ZCBjb21taXQgcmV2aXNpb24gbGFiZWwgcmFuZ2UiLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAg
ICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgICAgIGNvbnN0IHJl
bW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7CisgICAgICAgICAgICBhd2FpdCBkYi5pbnNl
cnQoJ3JlcG9zaXRvcmllcycsIHsnaWQnOiAxLCAnbmFtZSc6ICdXZWJLaXQnfSksCisgICAgICAg
ICAgICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNp
b24nOiAnMjEwOTQ3JywgJ3JldmlzaW9uX2xhYmVsJzogJzE4NDI3NUBtYWluJywgJ3RpbWUnOiAn
MjAxNy0wMS0yMFQwMjozODo0NS40ODVaJywgJ3JlcG9ydGVkJzogZmFsc2V9KTsKKyAgICAgICAg
ICAgIGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lv
bic6ICcyMTA5NDgnLCAncmV2aXNpb25fbGFiZWwnOiAnMTg0Mjc2QG1haW4nLCAndGltZSc6ICcy
MDE3LTAxLTIwVDAyOjUyOjM0LjU3N1onLCAncmVwb3J0ZWQnOiBmYWxzZX0pOworICAgICAgICAg
ICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9u
JzogJzIxMDk0OScsICdyZXZpc2lvbl9sYWJlbCc6ICcxODQyNzdAbWFpbicsICd0aW1lJzogJzIw
MTctMDEtMjBUMDM6MjM6NTAuNjQ1WicsICdyZXBvcnRlZCc6IGZhbHNlfSk7CisgICAgICAgICAg
ICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24n
OiAnMjEwOTUwJywgJ3JldmlzaW9uX2xhYmVsJzogJzE4NDI3OEBtYWluJywgJ3RpbWUnOiAnMjAx
Ny0wMS0yMFQwMzo0OTozNy44ODdaJywgJ3JlcG9ydGVkJzogZmFsc2V9KTsKKyAgICAgICAgICAg
IGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRzKTsKKyAgICAgICAgICAg
IGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywg
c3VidmVyc2lvbkNvbW1pdHMpOworICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVt
b3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvP3ByZWNlZGluZ1JldmlzaW9uPTE4NDI3
NUBtYWluJmxhc3RSZXZpc2lvbj0xODQyNzdAbWFpbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDIpOworICAgICAgICAgICAg
YXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1
YnZlcnNpb25Db21taXRzWydjb21taXRzJ11bMF0pOworICAgICAgICAgICAgYXNzZXJ0Q29tbWl0
SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMV0sIHN1YnZlcnNpb25Db21t
aXRzWydjb21taXRzJ11bMV0pOworICAgICAgICB9KTsKKwogICAgIH0pOwogCiB9KTsKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1j
b21taXRzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9h
cGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKaW5kZXggYjRlZTcyNmYzNTUzMDJhYjE4ZDZjNzM2
Y2JiNDBjMzBjNGIxODU5Yi4uOThhMDc0OTJlMjYxOTJhYjI4YjQ5MGU3ZDRjYTE1Y2VlOGY1NDBh
MSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
cmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKQEAgLTI2LDYgKzI2LDIwIEBA
IGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgfQogICAgICAgICBdLAogICAgIH07CisgICAgY29uc3Qgc3Vi
dmVyc2lvbkNvbW1pdFdpdGhSZXZpc2lvbkxhYmVsID0geworICAgICAgICAic2xhdmVOYW1lIjog
InNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisg
ICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBv
c2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3NyIs
CisgICAgICAgICAgICAgICAgInJldmlzaW9uTGFiZWwiOiAiMTI3MjMxQG1haW4iLAorICAgICAg
ICAgICAgICAgICJ0aW1lIjogIjIwMTMtMDItMDZUMDg6NTU6MjAuOVoiLAorICAgICAgICAgICAg
ICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmcifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJzb21lIG1l
c3NhZ2UiLAorICAgICAgICAgICAgfQorICAgICAgICBdLAorICAgIH07CiAgICAgY29uc3Qgc3Vi
dmVyc2lvbkludmFsaWRDb21taXQgPSB7CiAgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZl
IiwKICAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKQEAgLTc2LDYgKzkw
LDQ0IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICBdCiAgICAgfQogCisgICAgY29uc3QgZHVwbGljYXRlZENv
bW1pdFJldmlzaW9uTGFiZWxDb21taXRzID0geworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVT
bGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAg
ICJjb21taXRzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5
IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OCIsCisgICAg
ICAgICAgICAgICAgInJldmlzaW9uTGFiZWwiOiAiMTg0Mjc2QG1haW4iLAorICAgICAgICAgICAg
ICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6NTI6MzQuNTc3WiIsCisgICAgICAgICAgICAgICAg
ImF1dGhvciI6IHsibmFtZSI6ICJaYWxhbiBCdWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBs
ZS5jb20ifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJhIG1lc3NhZ2UiLAorICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJX
ZWJLaXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDkiLAorICAgICAgICAg
ICAgICAgICJyZXZpc2lvbkxhYmVsIjogIjE4NDI3NkBtYWluIiwKKyAgICAgICAgICAgICAgICAi
dGltZSI6ICIyMDE3LTAxLTIwVDAzOjIzOjUwLjY0NVoiLAorICAgICAgICAgICAgICAgICJhdXRo
b3IiOiB7Im5hbWUiOiAiQ2hyaXMgRHVtZXoiLCAiYWNjb3VudCI6ICJjZHVtZXpAYXBwbGUuY29t
In0sCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAic29tZSBtZXNzYWdlIiwKKyAgICAgICAg
ICAgIH0sCisgICAgICAgIF0KKyAgICB9CisKKyAgICBjb25zdCBpbnZhbGlkQ29tbWl0UmV2aXNp
b25MYWJlbENvbW1pdHMgPSB7CisgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAg
ICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgImNvbW1pdHMi
OiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0
IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQ4IiwKKyAgICAgICAgICAgICAg
ICAicmV2aXNpb25MYWJlbCI6ICIxODQyNzYiLAorICAgICAgICAgICAgICAgICJ0aW1lIjogIjIw
MTctMDEtMjBUMDI6NTI6MzQuNTc3WiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFt
ZSI6ICJaYWxhbiBCdWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKKyAgICAg
ICAgICAgICAgICAibWVzc2FnZSI6ICJhIG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAg
ICAgXQorICAgIH0KKwogICAgIGl0KCJzaG91bGQgcmVqZWN0IGVycm9yIHdoZW4gc2xhdmUgbmFt
ZSBpcyBtaXNzaW5nIiwgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCB7fSkudGhlbigocmVzcG9uc2Up
ID0+IHsKICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdNaXNzaW5nU2xhdmVOYW1lJyk7CkBAIC0xNDUsNiArMTk3LDIyIEBAIGRlc2NyaWJlKCIvYXBp
L3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICB9KTsKICAgICB9KTsKIAorICAgIGl0KCJzaG91bGQgcmVqZWN0IGFuIGludmFsaWQgcmV2aXNp
b24gbGFiZWwiLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0
KHN1YnZlcnNpb25Db21taXQpOworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgaW52YWxp
ZENvbW1pdFJldmlzaW9uTGFiZWxDb21taXRzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXZpc2lvbkxhYmVsJyk7CisgICAgICAgIGNv
bnN0IHJvd3MgPSBhd2FpdCBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdjb21taXRz
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMCk7CisgICAgfSk7
CisKKyAgICBpdCgic2hvdWxkIHJlamVjdCB3aXRoIGR1cGxpY2F0ZWQgY29tbWl0IHJldmlzaW9u
IGxhYmVscyIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQo
c3VidmVyc2lvbkNvbW1pdCk7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBkdXBsaWNh
dGVkQ29tbWl0UmV2aXNpb25MYWJlbENvbW1pdHMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnRHVwbGljYXRlZFJldmlzaW9uTGFiZWwnKTsKKyAgICAg
ICAgY29uc3Qgcm93cyA9IGF3YWl0IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2Nv
bW1pdHMnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKKyAg
ICB9KTsKKwogICAgIGl0KCJzaG91bGQgc3RvcmUgdHdvIGNvbW1pdHMgZnJvbSBhIHZhbGlkIHNs
YXZlIiwgKCkgPT4gewogICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lv
blR3b0NvbW1pdHMpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvblR3
b0NvbW1pdHMpOwpAQCAtMjE1LDYgKzI4MywyNSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29t
bWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAgICAg
fSk7CiAKKyAgICBpdCgic2hvdWxkIHVwZGF0ZSBhbiBleGlzdGluZyBjb21taXQgd2l0aCBjb21t
aXQgbGFiZWwgaWYgdGhlcmUgaXMgb25lIiwgYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCBk
YiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgY29uc3QgcmVwb3J0ZWREYXRhID0g
c3VidmVyc2lvbkNvbW1pdFdpdGhSZXZpc2lvbkxhYmVsLmNvbW1pdHNbMF07CisgICAgICAgIGF3
YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRXaXRoUmV2aXNpb25MYWJlbCk7
CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEsICduYW1l
JzogJ1dlYktpdCd9KSwKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBv
c2l0b3J5JzogMSwgJ3JldmlzaW9uJzogcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddLCAndGltZSc6
IHJlcG9ydGVkRGF0YVsndGltZSddfSkKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1
YnZlcnNpb25Db21taXRXaXRoUmV2aXNpb25MYWJlbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBjb25zdCBjb21taXRzID0g
YXdhaXQgZGIuc2VsZWN0QWxsKCdjb21taXRzJyk7CisgICAgICAgIGNvbnN0IGNvbW1pdHRlcnMg
PSBhd2FpdCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHRlcnMnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdHRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNb
MF1bJ21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0c1swXVsncmV2aXNpb25fbGFiZWwnXSwgcmVwb3J0ZWREYXRhWydy
ZXZpc2lvbkxhYmVsJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsn
Y29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1l
J10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCdd
LCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOworICAgIH0pOworCiAgICAgaXQo
InNob3VsZCBub3QgdXBkYXRlIGFuIHVucmVsYXRlZCBjb21taXQiLCAoKSA9PiB7CiAgICAgICAg
IGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwogICAgICAgICBjb25zdCBmaXJzdERh
dGEgPSBzdWJ2ZXJzaW9uVHdvQ29tbWl0cy5jb21taXRzWzBdOwpAQCAtNTkwLDYgKzY3NywxMTEg
QEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT3duZWRDb21taXRTaG91bGROb3RDb250YWluVGltZXN0YW1wJyk7CiAgICAgICAgIH0p
OwogICAgIH0pOworCisgICAgY29uc3QgaW52YWxpZE93bmVkQ29tbWl0VXNlUmV2aXNpb25MYWJl
bEFzUmV2aXNvbiA9IHsKKyAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAorICAgICAg
ICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAiY29tbWl0cyI6IFsK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJPU1giLAorICAg
ICAgICAgICAgICAgICJyZXZpc2lvbiI6ICJTaWVycmExNkQzMiIsCisgICAgICAgICAgICAgICAg
Im9yZGVyIjogMSwKKyAgICAgICAgICAgICAgICAib3duZWRDb21taXRzIjogeworICAgICAgICAg
ICAgICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9u
IjogIjEyNzIzMkBtYWluIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5h
bWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmci
fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIldlYktpdCBDb21taXQiLAor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
ICAgICAgICBdCisgICAgfTsKKworICAgIGl0KCJzaG91bGQgcmVqZWN0IGluc2VydGluZyBvbmUg
Y29tbWl0IHdpdGggb3duZWQgY29tbWl0cyB0aGF0IHVzZSByZXZpc2lvbiBsYWJlbCBhcyByZXZp
c2lvbiIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoaW52
YWxpZE93bmVkQ29tbWl0VXNlUmV2aXNpb25MYWJlbEFzUmV2aXNvbik7CisgICAgICAgIGNvbnN0
IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9y
ZXBvcnQtY29tbWl0cy8nLCBpbnZhbGlkT3duZWRDb21taXRVc2VSZXZpc2lvbkxhYmVsQXNSZXZp
c29uKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0lu
dmFsaWRPd25Db21taXRSZXZpc2lvbicpOworICAgIH0pOworCisgICAgY29uc3QgaW52YWxpZFJl
dmlzaW9uTGFiZWxPd25lZENvbW1pdCA9IHsKKyAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xh
dmUiLAorICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAi
Y29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6
ICJPU1giLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICJTaWVycmExNkQzMiIsCisgICAg
ICAgICAgICAgICAgIm9yZGVyIjogMSwKKyAgICAgICAgICAgICAgICAib3duZWRDb21taXRzIjog
eworICAgICAgICAgICAgICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAgICAgICAg
ICAgInJldmlzaW9uIjogIjE0MTk3OCIsCisgICAgICAgICAgICAgICAgICAgICAgICAicmV2aXNp
b25MYWJlbCI6ICIxMjcyMzIiLAorICAgICAgICAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsi
bmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Via2l0Lm9y
ZyJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiV2ViS2l0IENvbW1pdCIs
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
CisgICAgICAgIF0KKyAgICB9OworCisgICAgaXQoInNob3VsZCByZWplY3QgaW5zZXJ0aW5nIG9u
ZSBjb21taXQgd2l0aCBvd25lZCBjb21taXRzIHRoYXQgaGF2ZSBpbnZhbGlkIHJldmlzaW9uIGxh
YmVsIiwgYXN5bmMgKCkgPT4geworICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChpbnZh
bGlkUmV2aXNpb25MYWJlbE93bmVkQ29tbWl0KTsKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBh
d2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRz
LycsIGludmFsaWRSZXZpc2lvbkxhYmVsT3duZWRDb21taXQpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZE93bkNvbW1pdFJldmlzaW9uTGFi
ZWwnKTsKKyAgICB9KTsKKworICAgIGNvbnN0IGludmFsaWRBdXRob3JPd25lZENvbW1pdCA9IHsK
KyAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAorICAgICAgICAic2xhdmVQYXNzd29y
ZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAiY29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJPU1giLAorICAgICAgICAgICAgICAgICJy
ZXZpc2lvbiI6ICJTaWVycmExNkQzMiIsCisgICAgICAgICAgICAgICAgIm9yZGVyIjogMSwKKyAg
ICAgICAgICAgICAgICAib3duZWRDb21taXRzIjogeworICAgICAgICAgICAgICAgICAgICAiV2Vi
S2l0IjogeworICAgICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3OCIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAicmV2aXNpb25MYWJlbCI6ICIxMjcyMzJAbWFpbiIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAiYXV0aG9yIjogbnVsbCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICJtZXNzYWdlIjogIldlYktpdCBDb21taXQiLAorICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICBdCisgICAgfTsKKyAg
ICBpdCgic2hvdWxkIHJlamVjdCBpbnNlcnRpbmcgb25lIGNvbW1pdCB3aXRoIG93bmVkIGNvbW1p
dHMgdGhhdCBoYXZlIGludmFsaWQgYXV0aG9yIiwgYXN5bmMgKCkgPT4geworICAgICAgICBhd2Fp
dCBhZGRTbGF2ZUZvclJlcG9ydChpbnZhbGlkQXV0aG9yT3duZWRDb21taXQpOworICAgICAgICBj
b25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9h
cGkvcmVwb3J0LWNvbW1pdHMvJywgaW52YWxpZEF1dGhvck93bmVkQ29tbWl0KTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRPd25Db21taXRB
dXRob3JGb3JtYXQnKTsKKyAgICB9KTsKKworICAgIGNvbnN0IG93bmVkQ29tbWl0V2l0aFJldmlz
aW9uTGFiZWwgPSB7CisgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAgICAgICAg
InNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgImNvbW1pdHMiOiBbCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiT1NYIiwKKyAgICAg
ICAgICAgICAgICAicmV2aXNpb24iOiAiU2llcnJhMTZEMzIiLAorICAgICAgICAgICAgICAgICJv
cmRlciI6IDEsCisgICAgICAgICAgICAgICAgIm93bmVkQ29tbWl0cyI6IHsKKyAgICAgICAgICAg
ICAgICAgICAgIldlYktpdCI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6
ICIxNDE5NzgiLAorICAgICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uTGFiZWwiOiAiMTI3
MjMyQG1haW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJD
b21taXQgUXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Via2l0Lm9yZyJ9LAorICAg
ICAgICAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiV2ViS2l0IENvbW1pdCIsCisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAg
IF0KKyAgICB9OworCisgICAgaXQoInNob3VsZCBpbnNlcnQgb25lIGNvbW1pdCB3aXRoIGNvbW1p
dCByZXZpc2lvbiBsYWJlbCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkU2xhdmVG
b3JSZXBvcnQob3duZWRDb21taXRXaXRoUmV2aXNpb25MYWJlbCk7CisgICAgICAgIGNvbnN0IHJl
c3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBv
cnQtY29tbWl0cy8nLCBvd25lZENvbW1pdFdpdGhSZXZpc2lvbkxhYmVsKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGNvbnN0
IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBjb25zdCBjb21taXQgPSBhd2Fp
dCBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydyZXZpc2lvbic6ICcxNDE5NzgnfSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRbMF0ucmV2aXNpb25fbGFiZWwsIG93bmVkQ29t
bWl0V2l0aFJldmlzaW9uTGFiZWwuY29tbWl0c1swXS5vd25lZENvbW1pdHNbJ1dlYktpdCddLnJl
dmlzaW9uTGFiZWwpOworICAgIH0pOwogfSk7CiAKIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21t
aXRzLyB3aXRoIGluc2VydD1mYWxzZSIsIGZ1bmN0aW9uICgpIHsKZGlmZiAtLWdpdCBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qcyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qcwpp
bmRleCA1YzQ0NWZlZmMwZDcyMDRjMGJiNWExNmUwMmNmNjEzNzJmZjNmYjY5Li5iMGVjODc0ZWE2
YWQzNzJhOGNmNDg3ZGNlOTlkMzJiMmYzZWEzNDhlIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtdGVzdHMuanMKKysrIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzCkBAIC03
Nyw2ICs3NywyOSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIH07CiAgICAgfQogCisgICAgZnVuY3Rpb24gcmVwb3J0V2l0aFJldmlzaW9uTGFiZWxDb21t
aXQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICJidWlsZFRhZyI6ICIx
MjMiLAorICAgICAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzLjM4ODMw
NCIsCisgICAgICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAorICAgICAgICAg
ICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAorICAgICAgICAgICAgImJ1aWxkZXJQYXNzd29y
ZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAgICAgInBsYXRmb3JtIjogIk1vdW50YWluIExp
b24iLAorICAgICAgICAgICAgInRlc3RzIjoge30sCisgICAgICAgICAgICAicmV2aXNpb25zIjog
eworICAgICAgICAgICAgICAgICJtYWNPUyI6IHsKKyAgICAgICAgICAgICAgICAgICAgInJldmlz
aW9uIjogIjEwLjguMiAxMkM2MCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAg
ICJXZWJLaXQiOiB7CisgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNDE5NzciLAor
ICAgICAgICAgICAgICAgICAgICAicmV2aXNpb25MYWJlbCI6ICIxMjcyMzFAbWFpbiIsCisgICAg
ICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAiMjAxMy0wMi0wNlQwODo1NToyMC45WiIKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorCiAgICAg
ZnVuY3Rpb24gZW1wdHlTbGF2ZVJlcG9ydCgpCiAgICAgewogICAgICAgICByZXR1cm4gewpAQCAt
MzUxLDYgKzM3NCwzNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCisgICAgaXQoInNob3VsZCBhZGQgcmV2aXNpb24gbGFiZWwi
LCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0
V2l0aFJldmlzaW9uTGFiZWxDb21taXQoKSk7CisgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRXaXRoUmV2aXNpb25MYWJl
bENvbW1pdCgpXSk7CisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwor
ICAgICAgICBjb25zdCByZXBvc2l0b3JpZXMgPSBhd2FpdCBkYi5zZWxlY3RBbGwoJ3JlcG9zaXRv
cmllcycpOworICAgICAgICBjb25zdCBjb21taXRzID0gIGF3YWl0IGRiLnNlbGVjdEFsbCgnY29t
bWl0cycpOworICAgICAgICBjb25zdCBidWlsZENvbW1pdHNSZWxhdGlvbnMgPSBhd2FpdCAgZGIu
c2VsZWN0QWxsKCdidWlsZF9jb21taXRzJywgJ2J1aWxkX2NvbW1pdCcpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzLm1hcCgocm93KSA9PiByb3dbJ25hbWUnXSkuc29y
dCgpLCBbJ1dlYktpdCcsICdtYWNPUyddKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0cy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21t
aXRzUmVsYXRpb25zLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZENvbW1pdHNSZWxhdGlvbnNbMF1bJ2J1aWxkX2NvbW1pdCddLCBjb21taXRzWzBdWydpZCddKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1sxXVsnYnVp
bGRfY29tbWl0J10sIGNvbW1pdHNbMV1bJ2lkJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRDb21taXRzUmVsYXRpb25zWzBdWydjb21taXRfYnVpbGQnXSwgYnVpbGRDb21taXRz
UmVsYXRpb25zWzFdWydjb21taXRfYnVpbGQnXSk7CisKKyAgICAgICAgbGV0IHJlcG9zaXRvcnlJ
ZFRvTmFtZSA9IHt9OworICAgICAgICBmb3IgKGxldCByZXBvc2l0b3J5IG9mIHJlcG9zaXRvcmll
cykKKyAgICAgICAgICAgIHJlcG9zaXRvcnlJZFRvTmFtZVtyZXBvc2l0b3J5WydpZCddXSA9IHJl
cG9zaXRvcnlbJ25hbWUnXTsKKworICAgICAgICBsZXQgcmVwb3NpdG9yeU5hbWVUb1JldmlzaW9u
Um93ID0ge307CisgICAgICAgIGZvciAobGV0IGNvbW1pdCBvZiBjb21taXRzKQorICAgICAgICAg
ICAgcmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93W3JlcG9zaXRvcnlJZFRvTmFtZVtjb21taXRb
J3JlcG9zaXRvcnknXV1dID0gY29tbWl0OworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ21hY09TJ11bJ3JldmlzaW9uJ10sICcxMC44LjIg
MTJDNjAnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZp
c2lvblJvd1snV2ViS2l0J11bJ3JldmlzaW9uJ10sICcxNDE5NzcnKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snV2ViS2l0J11bJ3Jldmlz
aW9uX2xhYmVsJ10sICcxMjcyMzFAbWFpbicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydXZWJLaXQnXVsndGltZSddLnRvU3RyaW5nKCks
CisgICAgICAgICAgICBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJpbmco
KSk7CisgICAgfSk7CisKICAgICBpdCgic2hvdWxkIG5vdCBjcmVhdGUgYSBkdXBsaWNhdGUgYnVp
bGQgZm9yIHRoZSBzYW1lIGJ1aWxkIG51bWJlciBpZiBidWlsZCB0aW1lcyBhcmUgY2xvc2UiLCAo
KSA9PiB7CiAgICAgICAgIGNvbnN0IGZpcnN0UmVwb3J0ID0gZW1wdHlSZXBvcnQoKTsKICAgICAg
ICAgZmlyc3RSZXBvcnRbJ2J1aWxkVGltZSddID0gJzIwMTMtMDItMjhUMTA6MTI6MDQnOwpkaWZm
IC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY29tbWl0LWxvZy10
ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2NvbW1pdC1sb2ct
dGVzdHMuanMKaW5kZXggNzBhYmRlYmY4MWU4YWI2MGQxZDE4MTYzZTM5OTE4NzljYjQ3MzhiNi4u
OTI0YTFjZjllNDFkYjZhOWY5YTMzN2YxOTZkNDgzZmM1ZDU3NDNkZiAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qcworKysg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9jb21taXQtbG9nLXRlc3RzLmpz
CkBAIC0xNyw2ICsxNywxNyBAQCBmdW5jdGlvbiB3ZWJraXRDb21taXQoKQogICAgIH0pOwogfQog
CitmdW5jdGlvbiB3ZWJraXRDb21taXRXaXRoUmV2aXNpb25MYWJlbCgpIAoreworICAgIHJldHVy
biBuZXcgQ29tbWl0TG9nKDEsIHsKKyAgICAgICAgaWQ6IDEsCisgICAgICAgIHJlcG9zaXRvcnk6
IE1vY2tNb2RlbHMud2Via2l0LAorICAgICAgICByZXZpc2lvbjogJzIwMDgwNScsCisgICAgICAg
IHJldmlzaW9uTGFiZWw6ICcxODQyNzZAbWFpbicsCisgICAgICAgIHRpbWU6ICsobmV3IERhdGUo
JzIwMTYtMDUtMTNUMDA6NTU6NTcuODQxMzQ0WicpKSwKKyAgICB9KTsKK30KKwogZnVuY3Rpb24g
b2xkV2ViS2l0Q29tbWl0KCkKIHsKICAgICByZXR1cm4gbmV3IENvbW1pdExvZygyLCB7CkBAIC0y
Nyw2ICszOCwxNyBAQCBmdW5jdGlvbiBvbGRXZWJLaXRDb21taXQoKQogICAgIH0pOwogfQogCitm
dW5jdGlvbiBvbGRXZWJLaXRDb21taXRXaXRoUmV2aXNpb25MYWJlbCgpCit7CisgICAgcmV0dXJu
IG5ldyBDb21taXRMb2coMiwgeworICAgICAgICBpZDogMiwKKyAgICAgICAgcmVwb3NpdG9yeTog
TW9ja01vZGVscy53ZWJraXQsCisgICAgICAgIHJldmlzaW9uOiAnMjAwNTc0JywKKyAgICAgICAg
cmV2aXNpb25MYWJlbDogJzE3NTYwNUBtYWluJywKKyAgICAgICAgdGltZTogKyhuZXcgRGF0ZSgn
MjAxNi0wNS0wOVQxNDo1OToyMy41NTM3NjdaJykpLAorICAgIH0pOworfQorCiBmdW5jdGlvbiBn
aXRXZWJLaXRDb21taXQoKQogewogICAgIHJldHVybiBuZXcgQ29tbWl0TG9nKDMsIHsKQEAgLTM3
LDYgKzU5LDE3IEBAIGZ1bmN0aW9uIGdpdFdlYktpdENvbW1pdCgpCiAgICAgfSk7CiB9CiAKK2Z1
bmN0aW9uIGdpdFdlYktpdENvbW1pdFdpdGhSZXZpc2lvbkxhYmVsKCkKK3sKKyAgICByZXR1cm4g
bmV3IENvbW1pdExvZygzLCB7CisgICAgICAgIGlkOiAzLAorICAgICAgICByZXBvc2l0b3J5OiBN
b2NrTW9kZWxzLndlYmtpdCwKKyAgICAgICAgcmV2aXNpb246ICc2ZjhiMGRiYmRhOTVhNDQwNTAz
Yjg4ZGIxZGQwM2RhZDNhN2IwN2ZiJywKKyAgICAgICAgcmV2aXNpb25MYWJlbDogJzE4NDI3NkBt
YWluJywKKyAgICAgICAgdGltZTogKyhuZXcgRGF0ZSgnMjAxNi0wNS0xM1QwMDo1NTo1Ny44NDEz
NDRaJykpLAorICAgIH0pOworfQorCiBmdW5jdGlvbiBvbGRHaXRXZWJLaXRDb21taXQoKQogewog
ICAgIHJldHVybiBuZXcgQ29tbWl0TG9nKDQsIHsKQEAgLTE0NywxMCArMTgwLDE4IEBAIGRlc2Ny
aWJlKCdDb21taXRMb2cnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
d2Via2l0Q29tbWl0KCkubGFiZWwoKSwgJ3IyMDA4MDUnKTsKICAgICAgICAgfSk7CiAKLSAgICAg
ICAgaXQoJ3Nob3VsZCB0cnVuY2F0ZSBhIEdpdCBoYXNoIGF0IDh0aCBjaGFyYWN0ZXInLCBmdW5j
dGlvbiAoKSB7CisgICAgICAgIGl0KCdzaG91bGQgZGlzcGxheSByZXZpc2lvbiBsYWJlbCBmb2xs
b3dlZCBieSBzdm4gcmVmaXhlZCB3aXRoICJyIicsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh3ZWJraXRDb21taXRXaXRoUmV2aXNpb25MYWJlbCgpLmxhYmVsKCksICcx
ODQyNzZAbWFpbiAocjIwMDgwNSknKQorICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxk
IHRydW5jYXRlIGEgR2l0IGhhc2ggYXQgMTJ0aCBjaGFyYWN0ZXInLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ2l0V2ViS2l0Q29tbWl0KCkubGFiZWwoKSwgJzZmOGIw
ZGJiZGE5NScpOwogICAgICAgICB9KTsKIAorICAgICAgICBpdCgnc2hvdWxkIGRpc3BsYXkgcmV2
aXNpb24gbGFiZWwgZm9sbG93ZWQgYnkgZ2l0IGhhc2ggdHJ1bmNhdGVkJywgKCkgPT4geworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdpdFdlYktpdENvbW1pdFdpdGhSZXZpc2lvbkxh
YmVsKCkubGFiZWwoKSwgJzE4NDI3NkBtYWluICg2ZjhiMGRiYmRhOTUpJykKKyAgICAgICAgfSk7
CisKICAgICAgICAgaXQoJ3Nob3VsZCBub3QgbW9kaWZ5IE9TIFggdmVyc2lvbicsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQoKS5sYWJlbCgpLCAnMTAu
MTEuNCAxNUU2NScpOwogICAgICAgICB9KTsKQEAgLTE2MSwxMCArMjAyLDE4IEBAIGRlc2NyaWJl
KCdDb21taXRMb2cnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Vi
a2l0Q29tbWl0KCkudGl0bGUoKSwgJ1dlYktpdCBhdCByMjAwODA1Jyk7CiAgICAgICAgIH0pOwog
Ci0gICAgICAgIGl0KCdzaG91bGQgdHJ1bmNhdGUgYSBHaXQgaGFzaCBhdCA4dGggY2hhcmFjdGVy
JywgZnVuY3Rpb24gKCkgeworICAgICAgICBpdCgnc2hvdWxkIGluY2x1ZGUgcmV2aXNpb24gbGFi
ZWwnLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Q29tbWl0
V2l0aFJldmlzaW9uTGFiZWwoKS50aXRsZSgpLCAnV2ViS2l0IGF0IDE4NDI3NkBtYWluIChyMjAw
ODA1KScpOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHRydW5jYXRlIGEgR2l0
IGhhc2ggYXQgMTJ0aCBjaGFyYWN0ZXInLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZ2l0V2ViS2l0Q29tbWl0KCkudGl0bGUoKSwgJ1dlYktpdCBhdCA2ZjhiMGRiYmRh
OTUnKTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoJ3Nob3VsZCBkaXNwbGF5IHJldmlzaW9u
IGxhYmVsIGZvbGxvd2VkIGJ5IGdpdCBoYXNoIHRydW5jYXRlZCcsICAoKSA9PiB7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ2l0V2ViS2l0Q29tbWl0V2l0aFJldmlzaW9uTGFiZWwo
KS50aXRsZSgpLCAnV2ViS2l0IGF0IDE4NDI3NkBtYWluICg2ZjhiMGRiYmRhOTUpJyk7CisgICAg
ICAgIH0pOworCiAgICAgICAgIGl0KCdzaG91bGQgbm90IG1vZGlmeSBPUyBYIHZlcnNpb24nLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0KCkudGl0bGUo
KSwgJ09TIFggYXQgMTAuMTEuNCAxNUU2NScpOwogICAgICAgICB9KTsKQEAgLTIyMyw2ICsyNzIs
MjMgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAg
ICByZXBvc2l0b3J5OiBNb2NrTW9kZWxzLm9zeAogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OworCisgICAgICAgIGl0KCdzaG91bGQgZGlzcGxheSByZXZpc2lvbiBsYWJlbCBmb2xsb3dlZCB3
aXRoIHJldmlzb24gYW5kICBjb25uZWN0IHdpdGggIi0iLCBpZiBib3RoIGhhdmUgcmV2aXNpb24g
bGFiZWwnLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHdlYmtp
dENvbW1pdFdpdGhSZXZpc2lvbkxhYmVsKCkuZGlmZihvbGRXZWJLaXRDb21taXRXaXRoUmV2aXNp
b25MYWJlbCgpKSwgeworICAgICAgICAgICAgICAgIGxhYmVsOiAnMTc1NjA1QG1haW4gKHIyMDA1
NzQpIC0gMTg0Mjc2QG1haW4gKHIyMDA4MDUpJywKKyAgICAgICAgICAgICAgICB1cmw6ICcnLAor
ICAgICAgICAgICAgICAgIHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMud2Via2l0CisgICAgICAgICAg
ICB9KQorICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIGNvbnRhaW4gcmV2aXNpb24g
bGFiZWwsIGlmIG9uZSBvZiB0aGUgY29tbWl0cyBkb2VzbmB0IGhhdmUgdGhlIHJldmlzaW9uIGxh
YmVsJywgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh3ZWJraXRD
b21taXRXaXRoUmV2aXNpb25MYWJlbCgpLmRpZmYob2xkV2ViS2l0Q29tbWl0KCkpLCB7CisgICAg
ICAgICAgICAgICAgbGFiZWw6ICdyMjAwNTc0IC0gMTg0Mjc2QG1haW4gKHIyMDA4MDUpJywKKyAg
ICAgICAgICAgICAgICB1cmw6ICcnLAorICAgICAgICAgICAgICAgIHJlcG9zaXRvcnk6IE1vY2tN
b2RlbHMud2Via2l0CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKICAgICB9KTsKIAog
ICAgIGRlc2NyaWJlKCdoYXNPcmRlcmluZycsICgpID0+IHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423073</attachid>
            <date>2021-03-12 12:06:50 -0800</date>
            <delta_ts>2021-03-23 22:39:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222897-20210312120649.patch</filename>
            <type>text/plain</type>
            <size>49944</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MDYxCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1YTg1MWZkODI1NTA1YjQzMGFkNzg3ODZhNTQ1NzI0MzUwNTg0Zjc1Li4zNjdmODU0MTBl
MGNkZjY4ODhjZGRkMjkzODA5YzE3M2ViNWMzOGQ0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMS0wMy0xMCAgWmhpZmVpIEZhbmcgIDx6aGlmZWlf
ZmFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGNvbW1pdCByZXZpc2lvbiBsYWJlbCBzdXBw
b3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI4
OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
bmV3IGNvbHVtbiByZXZpc2lvbiBsYWJlbC4KKyAgICAgICAgTWFrZSBhbGwgY29tbWl0IGFwaSBh
bHNvIGNhbiB3b3JrIHdpdGggcmV2aXNpb24gbGFiZWwuCisgICAgICAgIENoYW5nZSB0aGUgY29t
bWl0IGxhYmVsIGRpc3BsYXkgd2l0aCBjb21taXQgcmV2aXNpb24gbGFiZWwuCisKKyAgICAgICAg
KiBicm93c2VyLXRlc3RzL2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzOiBGaXggYSBmYWlsZWQg
dGVzdCBjYXNlLCB3aGlsZSByZXF1ZXN0aW5nIHRoZSByZW1vdGUgYXBpLCB3ZSBzaG91bGQgd2Fp
dCBmb3IgdGhvc2UgcHJvbWlzZXMgcmVzb2x2ZWQgYW5kIHRoZW4gd2FpdCBmb3IgY29tbXBvbmVu
dCB0byByZW5kZXIuCisgICAgICAgICogaW5pdC1kYXRhYmFzZS5zcWw6IEFkZCBuZXcgY29sdW1u
IHJldmlzaW9uX2xhYmVsLgorICAgICAgICAqIG1pZ3JhdGUtZGF0YWJhc2Uuc3FsOiBBZGQgbmV3
IGNvbHVtbiByZXZpc2lvbl9sYWJlbC4KKyAgICAgICAgKiBwdWJsaWMvaW5jbHVkZS9jb21taXQt
bG9nLWZldGNoZXIucGhwOiBNYWtlIGFwaSB0aGF0IHdvcmtzIHdpdGggcmV2aXNpb24gc2hvdWxk
IHdvcmsgd2l0aCByZXZpc2lvbiBsYWJlbC4KKyAgICAgICAgKiBwdWJsaWMvaW5jbHVkZS9jb21t
aXQtdXBkYXRlci5waHA6IERpdHRvLgorICAgICAgICAqIHB1YmxpYy9pbmNsdWRlL3JlcG9ydC1w
cm9jZXNzb3IucGhwOiBNYWtlIHRoZSBwcm9jZXNzb3IgY2FuIGFsc28gaW5zZXJ0IHJldmlzaW9u
IGxhYmVsLgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qczoKKyAgICAg
ICAgKENvbW1pdExvZy5wcm90b3R5cGUudXBkYXRlU2luZ2xldG9uKToKKyAgICAgICAgKENvbW1p
dExvZy5wcm90b3R5cGUucmV2aXNpb25MYWJlbCk6CisgICAgICAgIChDb21taXRMb2cucHJvdG90
eXBlLmxhYmVsKTogTWFrZSB0aGUgbGFiZWwgaW5jbHVkZSByZXZpc2lvbiBsYWJlbCBhbmQgcmV2
aXNpb24uCisgICAgICAgIChDb21taXRMb2cucHJvdG90eXBlLmRpZmYpOiBNYWtlIHRoZSBkaWZm
IGxhYmVsIGluY2x1ZGUgcmV2aXNpb24gbGFiZWwgYW5kIHJldmlzaW9uLgorICAgICAgICAqIHNl
cnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qczoKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMv
YXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGkt
cmVwb3J0LXRlc3RzLmpzOgorICAgICAgICAocmVwb3J0V2l0aFJldmlzaW9uTGFiZWxDb21taXQp
OgorICAgICAgICAqIHVuaXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qczoKKwogMjAyMS0wMy0w
NiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBbcGVyZiBkYXNo
Ym9hcmRdIE1vZGVybml6ZSBUaW1lU2VyaWVzIGFuZCBUaW1lU2VyaWVzVmlldwpkaWZmIC0tZ2l0
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvY29tbWl0LWxvZy12aWV3
ZXItdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21t
aXQtbG9nLXZpZXdlci10ZXN0cy5qcwppbmRleCBkYmM0Y2ZjZDliYzIxNGI3MDhlZTE5OGYxZWE2
NjVmMjI0MjI4NTYwLi40NjQ2NTk5MTQzYmQ3YWI5NGM1MjE1NDRhYTY1NjNiMmIyMWQ0MGIwIDEw
MDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQt
bG9nLXZpZXdlci10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nl
ci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcwpAQCAtNTUsNiArNTUsMTkgQEAgZGVz
Y3JpYmUoJ0NvbW1pdExvZ1ZpZXdlcicsICgpID0+IHsKICAgICAgICAgIm1lc3NhZ2UiOiAiYW5v
dGhlciBtZXNzYWdlIiwKICAgICB9OwogCisgICAgY29uc3Qgd2Via2l0Q29tbWl0MjEwOTUwV2l0
aFJldmlzaW9uTGFiZWwgPSB7CisgICAgICAgICJpZCI6ICIxODUzMzgiLAorICAgICAgICAicmV2
aXNpb24iOiAiMjEwOTUwIiwKKyAgICAgICAgInJldmlzaW9uTGFiZWwiOiAiMTg0Mjc4QG1haW4i
LAorICAgICAgICAicmVwb3NpdG9yeSI6IDEsCisgICAgICAgICJwcmV2aW91c0NvbW1pdCI6IG51
bGwsCisgICAgICAgICJvd25zQ29tbWl0cyI6IGZhbHNlLAorICAgICAgICAidGltZSI6ICtuZXcg
RGF0ZSgiMjAxNy0wMS0yMFQwMzo0OTozNy44ODdaIiksCisgICAgICAgICJhdXRob3JOYW1lIjog
IkNvbW1pdCBRdWV1ZSIsCisgICAgICAgICJhdXRob3JFbWFpbCI6ICJjb21taXQtcXVldWVAd2Vi
a2l0Lm9yZyIsCisgICAgICAgICJtZXNzYWdlIjogImFub3RoZXIgbWVzc2FnZSIsCisgICAgfTsK
KwogICAgIGl0KCdzaG91bGQgaW5pdGlhbGx5IGJlIGVtcHR5IHdpdGggbm8gc3Bpbm5lcicsICgp
ID0+IHsKICAgICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBCcm93c2luZ0NvbnRleHQoKTsKICAg
ICAgICAgcmV0dXJuIGltcG9ydENvbW1pdExvZ1ZpZXdlcihjb250ZXh0KS50aGVuKChDb21taXRM
b2dWaWV3ZXIpID0+IHsKQEAgLTEyOSw5ICsxNDIsOSBAQCBkZXNjcmliZSgnQ29tbWl0TG9nVmll
d2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0siLAogICAgICAgICAg
ICAgICAgICJjb21taXRzIjogW3dlYmtpdENvbW1pdDIxMDk0OF0sCiAgICAgICAgICAgICB9KTsK
LQorICAgICAgICAgICAgYXdhaXQgcmVxdWVzdHNbMF0ucHJvbWlzZTsKKyAgICAgICAgICAgIGF3
YWl0IHJlcXVlc3RzWzFdLnByb21pc2U7CiAgICAgICAgICAgICBhd2FpdCB3YWl0Rm9yQ29tcG9u
ZW50c1RvUmVuZGVyKGNvbnRleHQpOwotCiAgICAgICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRl
bnQoJ3NwaW5uZXItY29udGFpbmVyJykub2Zmc2V0SGVpZ2h0KS50by5iZSgwKTsKICAgICAgICAg
ICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnY29tbWl0cy1saXN0JykubWF0Y2hlcygnOmVtcHR5
JykpLnRvLmJlKGZhbHNlKTsKICAgICAgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnY29t
bWl0cy1saXN0JykudGV4dENvbnRlbnQpLnRvLmNvbnRhaW4oJ3IyMTA5NDknKTsKQEAgLTE0NCw0
ICsxNTcsNDcgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZ1ZpZXdlcicsICgpID0+IHsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKKyAgICBpdCgnc2hvdWxkIHNob3cgcmV2aXNpb24gbGFiZWwnLCBhc3lu
YyAoKSA9PiB7CisgICAgICAgIGNvbnN0IGNvbnRleHQgPSBuZXcgQnJvd3NpbmdDb250ZXh0KCk7
CisgICAgICAgIGNvbnN0IENvbW1pdExvZ1ZpZXdlciA9IGF3YWl0IGltcG9ydENvbW1pdExvZ1Zp
ZXdlcihjb250ZXh0KTsKKyAgICAgICAgY29uc3QgUmVwb3NpdG9yeSA9IGNvbnRleHQuc3ltYm9s
cy5SZXBvc2l0b3J5OworICAgICAgICBjb25zdCByZXF1ZXN0cyA9IGNvbnRleHQuc3ltYm9scy5S
ZW1vdGVBUEkucmVxdWVzdHM7CisgICAgICAgIGNvbnN0IHZpZXdlciA9IG5ldyBDb21taXRMb2dW
aWV3ZXI7CisgICAgICAgIGNvbnN0IHdlYmtpdCA9IG5ldyBSZXBvc2l0b3J5KDEsIHtuYW1lOiAn
V2ViS2l0J30pOworICAgICAgICBjb250ZXh0LmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodmll
d2VyLmVsZW1lbnQoKSk7CisKKyAgICAgICAgdmlld2VyLmVucXVldWVUb1JlbmRlcigpOworICAg
ICAgICBhd2FpdCB3YWl0Rm9yQ29tcG9uZW50c1RvUmVuZGVyKGNvbnRleHQpOworCisgICAgICAg
IHZpZXdlci52aWV3KHdlYmtpdCwgJzIxMDk0OCcsICcyMTA5NTAnKTsKKyAgICAgICAgYXdhaXQg
d2FpdEZvckNvbXBvbmVudHNUb1JlbmRlcihjb250ZXh0KTsKKyAgICAgICAgZXhwZWN0KHZpZXdl
ci5jb250ZW50KCdzcGlubmVyLWNvbnRhaW5lcicpLm9mZnNldEhlaWdodCkudG8ubm90LmJlKDAp
OworICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLm1hdGNoZXMo
JzplbXB0eScpKS50by5iZSh0cnVlKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdy
ZXBvc2l0b3J5LW5hbWUnKS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUoZmFsc2UpOworICAgICAg
ICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ3JlcG9zaXRvcnktbmFtZScpLnRleHRDb250ZW50KS50
by5jb250YWluKCdXZWJLaXQnKTsKKyAgICAgICAgZXhwZWN0KHJlcXVlc3RzLmxlbmd0aCkudG8u
YmUoMik7CisgICAgICAgIGV4cGVjdChyZXF1ZXN0c1swXS51cmwpLnRvLmJlKCcvYXBpL2NvbW1p
dHMvMS8/cHJlY2VkaW5nUmV2aXNpb249MjEwOTQ4Jmxhc3RSZXZpc2lvbj0yMTA5NTAnKTsKKyAg
ICAgICAgZXhwZWN0KHJlcXVlc3RzWzFdLnVybCkudG8uYmUoJy9hcGkvY29tbWl0cy8xLzIxMDk0
OCcpOworICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKHsKKyAgICAgICAgICAgICJzdGF0dXMi
OiAiT0siLAorICAgICAgICAgICAgImNvbW1pdHMiOiBbd2Via2l0Q29tbWl0MjEwOTQ5LCB3ZWJr
aXRDb21taXQyMTA5NTBXaXRoUmV2aXNpb25MYWJlbF0sCisgICAgICAgIH0pOworCisgICAgICAg
IHJlcXVlc3RzWzFdLnJlc29sdmUoeworICAgICAgICAgICAgInN0YXR1cyI6ICJPSyIsCisgICAg
ICAgICAgICAiY29tbWl0cyI6IFt3ZWJraXRDb21taXQyMTA5NDhdLAorICAgICAgICB9KTsKKwor
ICAgICAgICBhd2FpdCByZXF1ZXN0c1swXS5wcm9taXNlOworICAgICAgICBhd2FpdCByZXF1ZXN0
c1sxXS5wcm9taXNlOworICAgICAgICBhd2FpdCB3YWl0Rm9yQ29tcG9uZW50c1RvUmVuZGVyKGNv
bnRleHQpOworICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ3NwaW5uZXItY29udGFpbmVy
Jykub2Zmc2V0SGVpZ2h0KS50by5iZSgwKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50
KCdjb21taXRzLWxpc3QnKS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUoZmFsc2UpOworICAgICAg
ICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLnRleHRDb250ZW50KS50by5j
b250YWluKCcxODQyNzhAbWFpbiAocjIxMDk1MCknKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5j
b250ZW50KCdjb21taXRzLWxpc3QnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignQ29tbWl0IFF1
ZXVlJyk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgncmVwb3NpdG9yeS1uYW1lJyku
bWF0Y2hlcygnOmVtcHR5JykpLnRvLmJlKGZhbHNlKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5j
b250ZW50KCdyZXBvc2l0b3J5LW5hbWUnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignV2ViS2l0
Jyk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnY29tbWl0cy1saXN0JykucXVlcnlT
ZWxlY3RvcignYScpKS50by5iZShudWxsKTsKKyAgICB9KTsKKwogfSk7CmRpZmYgLS1naXQgYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwKaW5kZXggN2ZmYzg5YWQ4MmM3NjEwNDFkMWE1
NTZlODNmN2M5Njc4YTMyZmFjMS4uZDc1NDcxMjZjZmVkZTAwMzc5NjFkY2JjZjg2NzU1Yjc3YTNk
NzliMSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uu
c3FsCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbApAQCAt
MTAyLDYgKzEwMiw3IEBAIENSRUFURSBUQUJMRSBjb21taXRzICgKICAgICBjb21taXRfaWQgc2Vy
aWFsIFBSSU1BUlkgS0VZLAogICAgIGNvbW1pdF9yZXBvc2l0b3J5IGludGVnZXIgTk9UIE5VTEwg
UkVGRVJFTkNFUyByZXBvc2l0b3JpZXMgT04gREVMRVRFIENBU0NBREUsCiAgICAgY29tbWl0X3Jl
dmlzaW9uIHZhcmNoYXIoNjQpIE5PVCBOVUxMLAorICAgIGNvbW1pdF9yZXZpc2lvbl9sYWJlbCB2
YXJjaGFyKDY0KSBERUZBVUxUIE5VTEwsCiAgICAgY29tbWl0X3ByZXZpb3VzX2NvbW1pdCBpbnRl
Z2VyIFJFRkVSRU5DRVMgY29tbWl0cyBPTiBERUxFVEUgQ0FTQ0FERSwKICAgICBjb21taXRfdGlt
ZSB0aW1lc3RhbXAsCiAgICAgY29tbWl0X29yZGVyIGludGVnZXIsCkBAIC0xMDksNyArMTEwLDgg
QEAgQ1JFQVRFIFRBQkxFIGNvbW1pdHMgKAogICAgIGNvbW1pdF9tZXNzYWdlIHRleHQsCiAgICAg
Y29tbWl0X3JlcG9ydGVkIGJvb2xlYW4gTk9UIE5VTEwgREVGQVVMVCBGQUxTRSwKICAgICBjb21t
aXRfdGVzdGFiaWxpdHkgdmFyY2hhcigxMjgpIERFRkFVTFQgTlVMTCwKLSAgICBDT05TVFJBSU5U
IGNvbW1pdF9pbl9yZXBvc2l0b3J5X211c3RfYmVfdW5pcXVlIFVOSVFVRShjb21taXRfcmVwb3Np
dG9yeSwgY29tbWl0X3JldmlzaW9uKSk7CisgICAgQ09OU1RSQUlOVCBjb21taXRfaW5fcmVwb3Np
dG9yeV9tdXN0X2JlX3VuaXF1ZSBVTklRVUUoY29tbWl0X3JlcG9zaXRvcnksIGNvbW1pdF9yZXZp
c2lvbiksCisgICAgQ09OU1RSQUlOVCBjb21taXRfcmV2aXNpb25fbGFiZWxfaW5fcmVwb3NpdG9y
eV9tdXN0X2JlX3VuaXF1ZSBVTklRVUUoY29tbWl0X3JlcG9zaXRvcnksIGNvbW1pdF9yZXZpc2lv
bl9sYWJlbCkpOwogQ1JFQVRFIElOREVYIGNvbW1pdF90aW1lX2luZGV4IE9OIGNvbW1pdHMoY29t
bWl0X3RpbWUpOwogQ1JFQVRFIElOREVYIGNvbW1pdF9vcmRlcl9pbmRleCBPTiBjb21taXRzKGNv
bW1pdF9vcmRlcik7CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9taWdy
YXRlLWRhdGFiYXNlLnNxbCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9taWdyYXRlLWRhdGFi
YXNlLnNxbAppbmRleCA0OWJkMjQ5ZDJhNjg1Nzc2NDQ5ZDM2ZTgwNTI2OGZjYzRiODc3YWNhLi5h
ZGJhNDA2Y2ZkNGJmNWRkZGUxM2I4YTEzOGY5YTk3NDc2N2VhZTUyIDEwMDY0NAotLS0gYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvbWlncmF0ZS1kYXRhYmFzZS5zcWwKKysrIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL21pZ3JhdGUtZGF0YWJhc2Uuc3FsCkBAIC0zLDYgKzMsOSBAQCBETyAk
JAogQkVHSU4KIEFMVEVSIFRBQkxFIGJ1aWxkX3JlcXVlc3RzIEFERCBDT0xVTU4gSUYgTk9UIEVY
SVNUUyByZXF1ZXN0X3N0YXR1c19kZXNjcmlwdGlvbiB2YXJjaGFyKDEwMjQpIERFRkFVTFQgTlVM
TDsKIEFMVEVSIFRBQkxFIHBsYXRmb3JtcyBBREQgQ09MVU1OICBJRiBOT1QgRVhJU1RTIHBsYXRm
b3JtX2dyb3VwIGludGVnZXIgUkVGRVJFTkNFUyBwbGF0Zm9ybV9ncm91cHMgREVGQVVMVCBOVUxM
OworQUxURVIgVEFCTEUgY29tbWl0cyBBREQgQ09MVU1OIElGIE5PVCBFWElTVFMgY29tbWl0X3Jl
dmlzaW9uX2xhYmVsIHZhcmNoYXIoNjQpIERFRkFVTFQgTlVMTDsKK0FMVEVSIFRBQkxFIGNvbW1p
dHMgRFJPUCBDT05TVFJBSU5UIGNvbW1pdF9yZXZpc2lvbl9sYWJlbF9pbl9yZXBvc2l0b3J5X211
c3RfYmVfdW5pcXVlOworQUxURVIgVEFCTEUgY29tbWl0cyBBREQgQ09OU1RSQUlOVCBjb21taXRf
cmV2aXNpb25fbGFiZWxfaW5fcmVwb3NpdG9yeV9tdXN0X2JlX3VuaXF1ZSBVTklRVUUoY29tbWl0
X3JlcG9zaXRvcnksIGNvbW1pdF9yZXZpc2lvbl9sYWJlbCk7CiAKIENSRUFURSBUQUJMRSBJRiBO
T1QgRVhJU1RTIHBsYXRmb3JtX2dyb3VwcyAoCiAgICAgcGxhdGZvcm1ncm91cF9pZCBzZXJpYWwg
UFJJTUFSWSBLRVksCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L2luY2x1ZGUvY29tbWl0LWxvZy1mZXRjaGVyLnBocCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwCmluZGV4IDZlMGJlY2QwYmM4
MTY0YzA0MmZkM2ZiMmYzOTk4YzQxNTRmZWIwZTEuLmQ5OGYxYzM3NjRmNzBjYzE1Yjc5MTk3Mjdh
YWQxMThlMDc4ZDA0YjggMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwCkBAIC04LDE0ICs4
LDE2IEBAIGNsYXNzIENvbW1pdExvZ0ZldGNoZXIgewogCiAgICAgc3RhdGljIGZ1bmN0aW9uIGZp
bmRfY29tbWl0X2lkX2J5X3JldmlzaW9uKCRkYiwgJHJlcG9zaXRvcnlfaWQsICRyZXZpc2lvbikK
ICAgICB7Ci0gICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgn
U0VMRUNUIGNvbW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkgPSAk
MSBBTkQgY29tbWl0X3JldmlzaW9uID0gJDInLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgJHJldmlz
aW9uKSk7CisgICAgICAgICRjb2x1bW5fbmFtZSA9IENvbW1pdExvZ0ZldGNoZXI6OmlzX2NvbW1p
dF9yZXZpc2lvbl9sYWJlbCgkcmV2aXNpb24pID8gJ2NvbW1pdF9yZXZpc2lvbl9sYWJlbCcgOiAn
Y29tbWl0X3JldmlzaW9uJzsKKyAgICAgICAgCisgICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+
cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUIGNvbW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUg
Y29tbWl0X3JlcG9zaXRvcnkgPSAkMSBBTkQgJyAuICRjb2x1bW5fbmFtZSAuICcgPSAkMicsIGFy
cmF5KCRyZXBvc2l0b3J5X2lkLCAkcmV2aXNpb24pKTsKICAgICAgICAgaWYgKCRjb21taXRfcm93
cykKICAgICAgICAgICAgIHJldHVybiAkY29tbWl0X3Jvd3NbMF1bJ2NvbW1pdF9pZCddOwogCiAg
ICAgICAgIGlmICghY3R5cGVfYWxudW0oJHJldmlzaW9uKSkKICAgICAgICAgICAgIHJldHVybiBO
VUxMOwogCi0gICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgn
U0VMRUNUIGNvbW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkgPSAk
MSBBTkQgY29tbWl0X3JldmlzaW9uIExJS0UgJDIgTElNSVQgMicsIGFycmF5KCRyZXBvc2l0b3J5
X2lkLCBEYXRhYmFzZTo6ZXNjYXBlX2Zvcl9saWtlKCRyZXZpc2lvbikgLiAnJScpKTsKKyAgICAg
ICAgJGNvbW1pdF9yb3dzID0gJGRiLT5xdWVyeV9hbmRfZmV0Y2hfYWxsKCdTRUxFQ1QgY29tbWl0
X2lkIEZST00gY29tbWl0cyBXSEVSRSBjb21taXRfcmVwb3NpdG9yeSA9ICQxIEFORCAnIC4gJGNv
bHVtbl9uYW1lIC4gJyBMSUtFICQyIExJTUlUIDInLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0
YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb24pIC4gJyUnKSk7CiAgICAgICAgIGlmICgh
JGNvbW1pdF9yb3dzKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIGlmIChjb3Vu
dCgkY29tbWl0X3Jvd3MpID4gMSkKQEAgLTU1LDYgKzU3LDcgQEAgY2xhc3MgQ29tbWl0TG9nRmV0
Y2hlciB7CiAgICAgewogICAgICAgICAkc3RhdGVtZW50cyA9ICdTRUxFQ1QgY29tbWl0X2lkIGFz
ICJpZCIsCiAgICAgICAgICAgICBjb21taXRfcmV2aXNpb24gYXMgInJldmlzaW9uIiwKKyAgICAg
ICAgICAgIGNvbW1pdF9yZXZpc2lvbl9sYWJlbCBhcyAicmV2aXNpb25MYWJlbCIsCiAgICAgICAg
ICAgICBjb21taXRfcHJldmlvdXNfY29tbWl0IGFzICJwcmV2aW91c0NvbW1pdCIsCiAgICAgICAg
ICAgICBjb21taXRfdGltZSBhcyAidGltZSIsCiAgICAgICAgICAgICBjb21taXR0ZXJfbmFtZSBh
cyAiYXV0aG9yTmFtZSIsCkBAIC0xOTIsOCArMTk1LDEzIEBAIGNsYXNzIENvbW1pdExvZ0ZldGNo
ZXIgewogICAgICAgICByZXR1cm4gJHRoaXMtPmZvcm1hdF9zaW5nbGVfY29tbWl0KCRjb21taXQp
OwogICAgIH0KIAorICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGlzX2NvbW1pdF9yZXZpc2lv
bl9sYWJlbCgkY29tbWl0X3JldmlzaW9uX29yX3JldmlzaW9uX2xhYmVsKSB7CisgICAgICAgIHJl
dHVybiBwcmVnX21hdGNoKCcvXlxkK0BcUyokLycsICRjb21taXRfcmV2aXNpb25fb3JfcmV2aXNp
b25fbGFiZWwpOworICAgIH0KKwogICAgIHByaXZhdGUgZnVuY3Rpb24gY29tbWl0X2Zvcl9yZXZp
c2lvbigkcmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uKSB7Ci0gICAgICAgICRjb21taXRfaW5mbyA9
IGFycmF5KCdyZXBvc2l0b3J5JyA9PiAkcmVwb3NpdG9yeV9pZCwgJ3JldmlzaW9uJyA9PiAkcmV2
aXNpb24pOworICAgICAgICAkY29tbWl0X2luZm8gPSBhcnJheSgncmVwb3NpdG9yeScgPT4gJHJl
cG9zaXRvcnlfaWQpOyAKKyAgICAgICAgJGNvbW1pdF9pbmZvWyR0aGlzLT5pc19jb21taXRfcmV2
aXNpb25fbGFiZWwoJHJldmlzaW9uKSA/ICdyZXZpc2lvbl9sYWJlbCcgOiAncmV2aXNpb24nXSA9
ICRyZXZpc2lvbjsKICAgICAgICAgJHJvdyA9ICR0aGlzLT5kYi0+c2VsZWN0X2xhc3Rfcm93KCdj
b21taXRzJywgJ2NvbW1pdCcsICRjb21taXRfaW5mbyk7CiAgICAgICAgIGlmICghJHJvdykKICAg
ICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignVW5rbm93bkNvbW1pdCcsICRjb21taXRfaW5mbyk7
CkBAIC0yMDEsNyArMjA5LDggQEAgY2xhc3MgQ29tbWl0TG9nRmV0Y2hlciB7CiAgICAgfQogCiAg
ICAgcHJpdmF0ZSBmdW5jdGlvbiBjb21taXRfZm9yX3JldmlzaW9uX3ByZWZpeCgkcmVwb3NpdG9y
eV9pZCwgJHJldmlzaW9uX3ByZWZpeCkgewotICAgICAgICAkcm93cyA9ICR0aGlzLT5kYi0+cXVl
cnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUICogRlJPTSBjb21taXRzIFdIRVJFIGNvbW1pdF9yZXBv
c2l0b3J5ID0gJDEgQU5EIGNvbW1pdF9yZXZpc2lvbiBMSUtFICQyIE9SREVSIEJZIGNvbW1pdF9y
ZXZpc2lvbiBMSU1JVCAyJywgYXJyYXkoJHJlcG9zaXRvcnlfaWQsIERhdGFiYXNlOjplc2NhcGVf
Zm9yX2xpa2UoJHJldmlzaW9uX3ByZWZpeCkgLiAnJScpKTsKKyAgICAgICAgJGNvbHVtbl9uYW1l
ID0gJHRoaXMtPmlzX2NvbW1pdF9yZXZpc2lvbl9sYWJlbCgkcmV2aXNpb25fcHJlZml4KSA/ICdy
ZXZpc2lvbl9sYWJlbCcgOiAncmV2aXNpb24nOworICAgICAgICAkcm93cyA9ICR0aGlzLT5kYi0+
cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUICogRlJPTSBjb21taXRzIFdIRVJFIGNvbW1pdF9y
ZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF8nIC4gJGNvbHVtbl9uYW1lIC4gJyBMSUtFICQyIE9S
REVSIEJZIGNvbW1pdF8nLiRjb2x1bW5fbmFtZS4nIExJTUlUIDInLCBhcnJheSgkcmVwb3NpdG9y
eV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb25fcHJlZml4KSAuICclJykp
OwogICAgICAgICBpZiAoY291bnQoJHJvd3MpID09IDApCiAgICAgICAgICAgICBleGl0X3dpdGhf
ZXJyb3IoJ1Vua25vd25Db21taXQnLCBhcnJheSgncmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlf
aWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uX3ByZWZpeCkpOwogICAgICAgICBpZiAoY291bnQo
JHJvd3MpID09IDIpIHsKQEAgLTIyNCw2ICsyMzMsNyBAQCBjbGFzcyBDb21taXRMb2dGZXRjaGVy
IHsKICAgICAgICAgcmV0dXJuIGFycmF5KAogICAgICAgICAgICAgJ2lkJyA9PiAkY29tbWl0X3Jv
d1snY29tbWl0X2lkJ10sCiAgICAgICAgICAgICAncmV2aXNpb24nID0+ICRjb21taXRfcm93Wydj
b21taXRfcmV2aXNpb24nXSwKKyAgICAgICAgICAgICdyZXZpc2lvbkxhYmVsJyA9PiAkY29tbWl0
X3Jvd1snY29tbWl0X3JldmlzaW9uX2xhYmVsJ10sCiAgICAgICAgICAgICAncmVwb3NpdG9yeScg
PT4gJGNvbW1pdF9yb3dbJ2NvbW1pdF9yZXBvc2l0b3J5J10sCiAgICAgICAgICAgICAncHJldmlv
dXNDb21taXQnID0+ICRjb21taXRfcm93Wydjb21taXRfcHJldmlvdXNfY29tbWl0J10sCiAgICAg
ICAgICAgICAndGltZScgPT4gRGF0YWJhc2U6OnRvX2pzX3RpbWUoJGNvbW1pdF9yb3dbJ2NvbW1p
dF90aW1lJ10pLApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9p
bmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvaW5jbHVkZS9jb21taXQtdXBkYXRlci5waHAKaW5kZXggMDhjNjhiYmU2NDEwYWZmMDZkYjg3
NTQ5OTJhNDhjOTM3ZTcwZTMyZi4uOTUxMTFiZGI4OTE3MjVlMDVlOTlkMTMyYjIzZDlkYWMyY2Zi
ZGRhOSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRl
L2NvbW1pdC11cGRhdGVyLnBocAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L2luY2x1ZGUvY29tbWl0LXVwZGF0ZXIucGhwCkBAIC0zMCw3ICszMCw2IEBAIGNsYXNzIENvbW1p
dFVwZGF0ZXIgewogICAgIHByaXZhdGUgZnVuY3Rpb24gdXBkYXRlX2NvbW1pdCgmJHVwZGF0ZSwg
JG93bmVyX2NvbW1pdF9pZCwgJG93bmVyX3JlcG9zaXRvcnlfaWQsICRzaG91bGRfaW5zZXJ0KQog
ICAgIHsKICAgICAgICAgJGNvbW1pdF9kYXRhID0gJiR0aGlzLT5yZXNvbHZlX2ZpZWxkc19mcm9t
X2RhdGFiYXNlKCR1cGRhdGUsICRvd25lcl9yZXBvc2l0b3J5X2lkLCAkc2hvdWxkX2luc2VydCk7
Ci0KICAgICAgICAgJGNvbW1pdF9zZWxlY3RfcXVlcnkgPSBhcnJheSgncmVwb3NpdG9yeScgPT4g
JGNvbW1pdF9kYXRhWydyZXBvc2l0b3J5J10sICdyZXZpc2lvbicgPT4gJGNvbW1pdF9kYXRhWydy
ZXZpc2lvbiddKTsKICAgICAgICAgaWYgKCRzaG91bGRfaW5zZXJ0KSB7CiAgICAgICAgICAgICAk
Y29tbWl0X2lkID0gJHRoaXMtPmRiLT51cGRhdGVfb3JfaW5zZXJ0X3JvdygnY29tbWl0cycsICdj
b21taXQnLCAkY29tbWl0X3NlbGVjdF9xdWVyeSwgJGNvbW1pdF9kYXRhKTsKQEAgLTc0LDYgKzcz
LDcgQEAgY2xhc3MgQ29tbWl0VXBkYXRlciB7CiAgICAgcHJpdmF0ZSBmdW5jdGlvbiAmY29uc3Ry
dWN0X3VwZGF0ZV9saXN0KCYkY29tbWl0X2luZm9fbGlzdCwgJHNob3VsZF9pbnNlcnQpCiAgICAg
ewogICAgICAgICAkdXBkYXRlX2xpc3QgPSBhcnJheSgpOworICAgICAgICAkY29tbWl0X3Jldmlz
aW9uX2xhYmVscyA9IGFycmF5KCk7CiAKICAgICAgICAgZm9yZWFjaCAoJGNvbW1pdF9pbmZvX2xp
c3QgYXMgJiRjb21taXRfaW5mbykgewogICAgICAgICAgICAgc2VsZjo6dmFsaWRhdGVfY29tbWl0
cygkY29tbWl0X2luZm8pOwpAQCAtODEsNiArODEsMTEgQEAgY2xhc3MgQ29tbWl0VXBkYXRlciB7
CiAgICAgICAgICAgICAkaGFzX3VwZGF0ZSA9IGNvdW50KCRjb21taXRfZGF0YSkgPiAxOwogCiAg
ICAgICAgICAgICAkdXBkYXRlID0gYXJyYXkoJ2NvbW1pdCcgPT4gJiRjb21taXRfZGF0YSwgJ3Jl
cG9zaXRvcnknID0+ICYkY29tbWl0X2luZm9bJ3JlcG9zaXRvcnknXSk7CisgICAgICAgICAgICBp
ZiAoYXJyYXlfa2V5X2V4aXN0cygncmV2aXNpb25MYWJlbCcsICRjb21taXRfaW5mbykpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygkY29tbWl0X2luZm9bJ3JldmlzaW9u
TGFiZWwnXSwgJGNvbW1pdF9yZXZpc2lvbl9sYWJlbHMpKQorICAgICAgICAgICAgICAgICAgICAk
dGhpcy0+ZXhpdF93aXRoX2Vycm9yKCdEdXBsaWNhdGVkUmV2aXNpb25MYWJlbCcsIGFycmF5KCdj
b21taXQnID0+ICRjb21taXRfaW5mbykpOworICAgICAgICAgICAgICAgICRjb21taXRfcmV2aXNp
b25fbGFiZWxzWyRjb21taXRfaW5mb1sncmV2aXNpb25MYWJlbCddXSA9IHRydWU7CisgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncHJldmlvdXNDb21taXQn
LCAkY29tbWl0X2luZm8pKSB7CiAgICAgICAgICAgICAgICAgJGhhc191cGRhdGUgPSB0cnVlOwog
ICAgICAgICAgICAgICAgICR1cGRhdGVbJ3ByZXZpb3VzX2NvbW1pdCddID0gJiRjb21taXRfaW5m
b1sncHJldmlvdXNDb21taXQnXTsKQEAgLTEwNCw2ICsxMDksNyBAQCBjbGFzcyBDb21taXRVcGRh
dGVyIHsKIAogICAgICAgICAgICAgJG93bmVkX2NvbW1pdF91cGRhdGVfbGlzdCA9IGFycmF5KCk7
CiAgICAgICAgICAgICBmb3JlYWNoKCRjb21taXRfaW5mb1snb3duZWRDb21taXRzJ10gYXMgJG93
bmVkX3JlcG9zaXRvcnlfbmFtZSA9PiAmJG93bmVkX2NvbW1pdF9pbmZvKSB7CisgICAgICAgICAg
ICAgICAgc2VsZjo6dmFsaWRhdGVfb3duX2NvbW1pdHMoJG93bmVkX2NvbW1pdF9pbmZvKTsKICAg
ICAgICAgICAgICAgICAkb3duZWRfY29tbWl0ID0gJnNlbGY6OmNvbnN0cnVjdF9jb21taXRfZGF0
YSgkb3duZWRfY29tbWl0X2luZm8sICRvd25lZF9yZXBvc2l0b3J5X25hbWUsICRzaG91bGRfaW5z
ZXJ0KTsKICAgICAgICAgICAgICAgICAkb3duZWRfY29tbWl0X3VwZGF0ZSA9IGFycmF5KCdjb21t
aXQnID0+ICYkb3duZWRfY29tbWl0LCAncmVwb3NpdG9yeScgPT4gJG93bmVkX3JlcG9zaXRvcnlf
bmFtZSk7CiAKQEAgLTE0MywxMiArMTQ5LDI2IEBAIGNsYXNzIENvbW1pdFVwZGF0ZXIgewogICAg
ICAgICAgICAgJGNvbW1pdF9kYXRhWyd0aW1lJ10gPSAkY29tbWl0X2luZm9bJ3RpbWUnXTsKICAg
ICAgICAgfQogCisgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCdyZXZpc2lvbkxhYmVsJywg
JGNvbW1pdF9pbmZvKSkKKyAgICAgICAgICAgICRjb21taXRfZGF0YVsncmV2aXNpb25fbGFiZWwn
XSA9ICRjb21taXRfaW5mb1sncmV2aXNpb25MYWJlbCddOworCiAgICAgICAgIGlmICgkc2hvdWxk
X2luc2VydCkKICAgICAgICAgICAgICRjb21taXRfZGF0YVsncmVwb3J0ZWQnXSA9IHRydWU7CiAK
ICAgICAgICAgcmV0dXJuICRjb21taXRfZGF0YTsKICAgICB9CiAKKyAgICBwcml2YXRlIHN0YXRp
YyBmdW5jdGlvbiB2YWxpZGF0ZV9vd25fY29tbWl0cygmJGNvbW1pdF9pbmZvKQorICAgIHsKKyAg
ICAgICAgcmVxdWlyZV9mb3JtYXQoJ093bkNvbW1pdFJldmlzaW9uJywgJGNvbW1pdF9pbmZvWydy
ZXZpc2lvbiddLCAnL15bQS1aYS16MC05IFwuXSskLycpOworICAgICAgICBpZiAoYXJyYXlfa2V5
X2V4aXN0cygncmV2aXNpb25MYWJlbCcsICRjb21taXRfaW5mbykpCisgICAgICAgICAgICByZXF1
aXJlX2Zvcm1hdCgnT3duQ29tbWl0UmV2aXNpb25MYWJlbCcsICRjb21taXRfaW5mb1sncmV2aXNp
b25MYWJlbCddLCAnL15cZCtAXFMrJC8nKTsKKyAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMo
J3ByZXZpb3VzQ29tbWl0JywgJGNvbW1pdF9pbmZvKSkKKyAgICAgICAgICAgIHJlcXVpcmVfZm9y
bWF0KCdPd25Db21taXRSZXZpc2lvbicsICRjb21taXRfaW5mb1sncHJldmlvdXNDb21taXQnXSwg
Jy9eW0EtWmEtejAtOSBcLl0rJC8nKTsKKyAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJ2F1
dGhvcicsICRjb21taXRfaW5mbykgJiYgIWlzX2FycmF5KCRjb21taXRfaW5mb1snYXV0aG9yJ10p
KQorICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdJbnZhbGlkT3duQ29tbWl0QXV0aG9yRm9y
bWF0JywgYXJyYXkoJ2NvbW1pdCcgPT4gJGNvbW1pdF9pbmZvKSk7CisgICAgfQorCiAgICAgcHJp
dmF0ZSBzdGF0aWMgZnVuY3Rpb24gdmFsaWRhdGVfY29tbWl0cygmJGNvbW1pdF9pbmZvKQogICAg
IHsKICAgICAgICAgaWYgKCFhcnJheV9rZXlfZXhpc3RzKCdyZXBvc2l0b3J5JywgJGNvbW1pdF9p
bmZvKSkKQEAgLTE2MCw2ICsxODAsOCBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsKICAgICAgICAg
ICAgIGV4aXRfd2l0aF9lcnJvcignSW52YWxpZEF1dGhvckZvcm1hdCcsIGFycmF5KCdjb21taXQn
ID0+ICRjb21taXRfaW5mbykpOwogICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncHJldmlv
dXNDb21taXQnLCAkY29tbWl0X2luZm8pKQogICAgICAgICAgICAgcmVxdWlyZV9mb3JtYXQoJ1Jl
dmlzaW9uJywgJGNvbW1pdF9pbmZvWydwcmV2aW91c0NvbW1pdCddLCAnL15bQS1aYS16MC05IFwu
XSskLycpOworICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncmV2aXNpb25MYWJlbCcsICRj
b21taXRfaW5mbykpCisgICAgICAgICAgICByZXF1aXJlX2Zvcm1hdCgnUmV2aXNpb25MYWJlbCcs
ICRjb21taXRfaW5mb1sncmV2aXNpb25MYWJlbCddLCAnL15cZCtAXFMrJC8nKTsKICAgICB9CiAK
ICAgICBwcml2YXRlIGZ1bmN0aW9uIHJlc29sdmVfcmVwb3NpdG9yeSgkcmVwb3NpdG9yeV9uYW1l
LCAkb3duZXJfcmVwb3NpdG9yeV9pZCwgJHNob3VsZF9pbnNlcnQpCmRpZmYgLS1naXQgYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3J0LXByb2Nlc3Nvci5waHAg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3J0LXByb2Nlc3Nv
ci5waHAKaW5kZXggMWJjMWRiNjQyZGJlZmVmOGVjYjA3MmUxOGI1N2U5YzkxYmMwNzIzYy4uMWVm
OWE2ZDVkZDQzOTg2ZjBkNjk3MTQ0MzU5Njc0OTczZjk4MWMxZCAxMDA2NDQKLS0tIGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL3JlcG9ydC1wcm9jZXNzb3IucGhwCisr
KyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9yZXBvcnQtcHJvY2Vz
c29yLnBocApAQCAtMTU5LDE0ICsxNTksMTIgQEAgY2xhc3MgUmVwb3J0UHJvY2Vzc29yIHsKICAg
ICAgICAgICAgICAgICAkdGhpcy0+cm9sbGJhY2tfd2l0aF9lcnJvcignRmFpbGVkVG9VcGRhdGVC
dWlsZFJlcXVlc3QnLCBhcnJheSgnYnVpbGRSZXF1ZXN0JyA9PiAkYnVpbGRfcmVxdWVzdF9pZCwg
J2J1aWxkJyA9PiAkYnVpbGRfaWQpKTsKICAgICAgICAgfQogCi0KICAgICAgICAgZm9yZWFjaCAo
JHJldmlzaW9ucyBhcyAkcmVwb3NpdG9yeV9uYW1lID0+ICRyZXZpc2lvbl9kYXRhKSB7CiAgICAg
ICAgICAgICAkcmVwb3NpdG9yeV9pZCA9ICR0aGlzLT5kYi0+c2VsZWN0X29yX2luc2VydF9yb3co
J3JlcG9zaXRvcmllcycsICdyZXBvc2l0b3J5JywgYXJyYXkoJ25hbWUnID0+ICRyZXBvc2l0b3J5
X25hbWUsICdvd25lcicgPT4gTlVMTCkpOwogICAgICAgICAgICAgaWYgKCEkcmVwb3NpdG9yeV9p
ZCkKICAgICAgICAgICAgICAgICAkdGhpcy0+cm9sbGJhY2tfd2l0aF9lcnJvcignRmFpbGVkVG9J
bnNlcnRSZXBvc2l0b3J5JywgYXJyYXkoJ25hbWUnID0+ICRyZXBvc2l0b3J5X25hbWUpKTsKIAot
ICAgICAgICAgICAgJGNvbW1pdF9kYXRhID0gYXJyYXkoJ3JlcG9zaXRvcnknID0+ICRyZXBvc2l0
b3J5X2lkLCAncmV2aXNpb24nID0+ICRyZXZpc2lvbl9kYXRhWydyZXZpc2lvbiddLCAndGltZScg
PT4gYXJyYXlfZ2V0KCRyZXZpc2lvbl9kYXRhLCAndGltZXN0YW1wJykpOwotCisgICAgICAgICAg
ICAkY29tbWl0X2RhdGEgPSBhcnJheSgncmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlfaWQsICdy
ZXZpc2lvbicgPT4gJHJldmlzaW9uX2RhdGFbJ3JldmlzaW9uJ10sICd0aW1lJyA9PiBhcnJheV9n
ZXQoJHJldmlzaW9uX2RhdGEsICd0aW1lc3RhbXAnKSwgJ3JldmlzaW9uX2xhYmVsJyA9PiBhcnJh
eV9nZXQoJHJldmlzaW9uX2RhdGEsICdyZXZpc2lvbkxhYmVsJywgbnVsbCkpOwogICAgICAgICAg
ICAgJG1pc21hdGNoaW5nX2NvbW1pdCA9ICR0aGlzLT5kYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgn
U0VMRUNUICogRlJPTSBidWlsZF9jb21taXRzLCBjb21taXRzCiAgICAgICAgICAgICAgICAgV0hF
UkUgYnVpbGRfY29tbWl0ID0gY29tbWl0X2lkIEFORCBjb21taXRfYnVpbGQgPSAkMSBBTkQgY29t
bWl0X3JlcG9zaXRvcnkgPSAkMiBBTkQgY29tbWl0X3JldmlzaW9uICE9ICQzIExJTUlUIDEnLAog
ICAgICAgICAgICAgICAgIGFycmF5KCRidWlsZF9pZCwgJHJlcG9zaXRvcnlfaWQsICRyZXZpc2lv
bl9kYXRhWydyZXZpc2lvbiddKSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9nLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qcwppbmRleCBlNmQ0ZDQ0YWJiNTU0MTM0
NmUyZjRhOWQ0NDAwOWY3OWE3ODI5MDBiLi44MDQxODQyN2UyMjRjYmI4ODIyMTU1MWM4NWU3YTFk
MDYxMmVkZGFmIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yz
L21vZGVscy9jb21taXQtbG9nLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvbW9kZWxzL2NvbW1pdC1sb2cuanMKQEAgLTIwLDYgKzIwLDcgQEAgY2xhc3MgQ29tbWl0
TG9nIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKIAogICAgICAgICBjb25zb2xlLmFzc2VydCgr
dGhpcy5fcmF3RGF0YVsndGltZSddID09ICtyYXdEYXRhWyd0aW1lJ10pOwogICAgICAgICBjb25z
b2xlLmFzc2VydCh0aGlzLl9yYXdEYXRhWydyZXZpc2lvbiddID09IHJhd0RhdGFbJ3JldmlzaW9u
J10pOworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9yYXdEYXRhWydyZXZpc2lvbkxhYmVs
J10gPT0gcmF3RGF0YVsncmV2aXNpb25MYWJlbCddKTsKIAogICAgICAgICBpZiAocmF3RGF0YS5h
dXRob3JOYW1lKQogICAgICAgICAgICAgdGhpcy5fcmF3RGF0YS5hdXRob3JOYW1lID0gcmF3RGF0
YS5hdXRob3JOYW1lOwpAQCAtMzksNiArNDAsNyBAQCBjbGFzcyBDb21taXRMb2cgZXh0ZW5kcyBE
YXRhTW9kZWxPYmplY3QgewogICAgIHRlc3RhYmlsaXR5KCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0
YVsndGVzdGFiaWxpdHknXTsgfQogICAgIGF1dGhvcigpIHsgcmV0dXJuIHRoaXMuX3Jhd0RhdGFb
J2F1dGhvck5hbWUnXTsgfQogICAgIHJldmlzaW9uKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsn
cmV2aXNpb24nXTsgfQorICAgIHJldmlzaW9uTGFiZWwoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRh
WydyZXZpc2lvbkxhYmVsJ107IH0KICAgICBtZXNzYWdlKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0
YVsnbWVzc2FnZSddOyB9CiAgICAgdXJsKCkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeS51cmxG
b3JSZXZpc2lvbih0aGlzLl9yYXdEYXRhWydyZXZpc2lvbiddKTsgfQogICAgIG93bnNDb21taXRz
KCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsnb3duc0NvbW1pdHMnXTsgfQpAQCAtNTEsMTEgKzUz
LDE1IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgbGFi
ZWwoKQogICAgIHsKICAgICAgICAgY29uc3QgcmV2aXNpb24gPSB0aGlzLnJldmlzaW9uKCk7Cisg
ICAgICAgIGNvbnN0IHJldmlzaW9uTGFiZWwgPSB0aGlzLnJldmlzaW9uTGFiZWwoKTsKKyAgICAg
ICAgbGV0IGZvcm1hdHRlZFJldmlzaW9uID0gcmV2aXNpb247CiAgICAgICAgIGlmIChwYXJzZUlu
dChyZXZpc2lvbikgPT0gcmV2aXNpb24pIC8vIGUuZy4gcjEyMzQ1Ci0gICAgICAgICAgICByZXR1
cm4gJ3InICsgcmV2aXNpb247CisgICAgICAgICAgICBmb3JtYXR0ZWRSZXZpc2lvbiA9ICdyJyAr
IHJldmlzaW9uOwogICAgICAgICBpZiAocmV2aXNpb24ubGVuZ3RoID09IDQwKSAvLyBlLmcuIGdp
dCBoYXNoCi0gICAgICAgICAgICByZXR1cm4gcmV2aXNpb24uc3Vic3RyaW5nKDAsIDEyKTsKLSAg
ICAgICAgcmV0dXJuIHJldmlzaW9uOworICAgICAgICAgICAgZm9ybWF0dGVkUmV2aXNpb24gPSBy
ZXZpc2lvbi5zdWJzdHJpbmcoMCwgMTIpOworICAgICAgICBpZiAocmV2aXNpb25MYWJlbCkKKyAg
ICAgICAgICAgIHJldHVybiBgJHtyZXZpc2lvbkxhYmVsfSAoJHtmb3JtYXR0ZWRSZXZpc2lvbn0p
YDsKKyAgICAgICAgcmV0dXJuIGZvcm1hdHRlZFJldmlzaW9uOwogICAgIH0KICAgICB0aXRsZSgp
IHsgcmV0dXJuIHRoaXMuX3JlcG9zaXRvcnkubmFtZSgpICsgJyBhdCAnICsgdGhpcy5sYWJlbCgp
OyB9CiAKQEAgLTY4LDE3ICs3NCwxOSBAQCBjbGFzcyBDb21taXRMb2cgZXh0ZW5kcyBEYXRhTW9k
ZWxPYmplY3QgewogICAgICAgICBpZiAoIXByZXZpb3VzQ29tbWl0KQogICAgICAgICAgICAgcmV0
dXJuIHtyZXBvc2l0b3J5OiByZXBvc2l0b3J5LCBsYWJlbDogdGhpcy5sYWJlbCgpLCB1cmw6IHRo
aXMudXJsKCl9OwogCi0gICAgICAgIGNvbnN0IHRvID0gdGhpcy5yZXZpc2lvbigpOwotICAgICAg
ICBjb25zdCBmcm9tID0gcHJldmlvdXNDb21taXQucmV2aXNpb24oKTsKLSAgICAgICAgbGV0IGxh
YmVsID0gbnVsbDsKLSAgICAgICAgaWYgKHBhcnNlSW50KGZyb20pID09IGZyb20pLy8gZS5nLiBy
MTIzNDUuCi0gICAgICAgICAgICBsYWJlbCA9IGByJHtmcm9tfS1yJHt0aGlzLnJldmlzaW9uKCl9
YDsKLSAgICAgICAgZWxzZSBpZiAodG8ubGVuZ3RoID09IDQwKSAvLyBlLmcuIGdpdCBoYXNoCi0g
ICAgICAgICAgICBsYWJlbCA9IGAke2Zyb20uc3Vic3RyaW5nKDAsIDEyKX0uLiR7dG8uc3Vic3Ry
aW5nKDAsIDEyKX1gOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBsYWJlbCA9IGAke2Zyb219
IC0gJHt0b31gOwotCi0gICAgICAgIHJldHVybiB7cmVwb3NpdG9yeTogcmVwb3NpdG9yeSwgbGFi
ZWw6IGxhYmVsLCB1cmw6IHJlcG9zaXRvcnkudXJsRm9yUmV2aXNpb25SYW5nZShmcm9tLCB0byl9
OworICAgICAgICBjb25zdCB0b1JldmlzaW9uID0gdGhpcy5yZXZpc2lvbigpOworICAgICAgICBj
b25zdCBmcm9tUmV2aXNvbiA9IHByZXZpb3VzQ29tbWl0LnJldmlzaW9uKCk7CisgICAgICAgIGNv
bnN0IHRvUmV2aXNpb25MYWJlbCA9IHRoaXMucmV2aXNpb25MYWJlbCgpOworICAgICAgICBjb25z
dCBmcm9tUmV2aXNpb25MYWJlbCA9IHByZXZpb3VzQ29tbWl0LnJldmlzaW9uTGFiZWwoKTsKKyAg
ICAgICAgbGV0IGxhYmVsID0gYCR7cHJldmlvdXNDb21taXQubGFiZWwoKX0gLSAke3RoaXMubGFi
ZWwoKX1gOworICAgICAgICBpZiAoIXRvUmV2aXNpb25MYWJlbCAmJiAhZnJvbVJldmlzaW9uTGFi
ZWwpIHsKKyAgICAgICAgICAgIGlmIChwYXJzZUludChmcm9tUmV2aXNvbikgPT0gZnJvbVJldmlz
b24pLy8gZS5nLiByMTIzNDUuCisgICAgICAgICAgICAgICAgbGFiZWwgPSBgciR7ZnJvbVJldmlz
b259LXIke3RoaXMucmV2aXNpb24oKX1gOworICAgICAgICAgICAgZWxzZSBpZiAodG9SZXZpc2lv
bi5sZW5ndGggPT0gNDApIC8vIGUuZy4gZ2l0IGhhc2gKKyAgICAgICAgICAgICAgICBsYWJlbCA9
IGAke2Zyb21SZXZpc29uLnN1YnN0cmluZygwLCAxMil9Li4ke3RvUmV2aXNpb24uc3Vic3RyaW5n
KDAsIDEyKX1gOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHtyZXBvc2l0b3J5OiByZXBv
c2l0b3J5LCBsYWJlbDogbGFiZWwsIHVybDogcmVwb3NpdG9yeS51cmxGb3JSZXZpc2lvblJhbmdl
KGZyb21SZXZpc29uLCB0b1JldmlzaW9uKX07CiAgICAgfQogCiAgICAgc3RhdGljIGZldGNoTGF0
ZXN0Q29tbWl0Rm9yUGxhdGZvcm0ocmVwb3NpdG9yeSwgcGxhdGZvcm0pCmRpZmYgLS1naXQgYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpz
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0
cy5qcwppbmRleCAyODU2OWYwNjM3MzA0ZTNhNjJjZjc3MDA5MjM5M2Y3ZjBlNzM2NTk3Li4xYzAw
MjY4NjIzZTIyNWU3NTE0ODhjOWVmN2U0YjdmZTQ4NTM0ODkwIDEwMDY0NAotLS0gYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzCisrKyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMu
anMKQEAgLTE3LDYgKzE3LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0
IiwKICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQ4IiwKKyAgICAgICAgICAgICAg
ICAicmV2aXNpb25MYWJlbCI6ICIxODQyNzZAbWFpbiIsCiAgICAgICAgICAgICAgICAgInRpbWUi
OiAiMjAxNy0wMS0yMFQwMjo1MjozNC41NzdaIiwKICAgICAgICAgICAgICAgICAiYXV0aG9yIjog
eyJuYW1lIjogIlphbGFuIEJ1anRhcyIsICJhY2NvdW50IjogInphbGFuQGFwcGxlLmNvbSJ9LAog
ICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImEgbWVzc2FnZSIsCkBAIC0yNCw2ICsyNSw3IEBA
IGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCiAgICAgICAgICAgICAgICAg
InJldmlzaW9uIjogIjIxMDk0OSIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uTGFiZWwiOiAi
MTg0Mjc3QG1haW4iLAogICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDM6MjM6
NTAuNjQ1WiIsCiAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDaHJpcyBEdW1l
eiIsICJhY2NvdW50IjogImNkdW1lekBhcHBsZS5jb20ifSwKICAgICAgICAgICAgICAgICAibWVz
c2FnZSI6ICJzb21lIG1lc3NhZ2UiLApAQCAtMzIsMTIgKzM0LDUzIEBAIGRlc2NyaWJlKCIvYXBp
L2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5Ijog
IldlYktpdCIsCiAgICAgICAgICAgICAgICAgInByZXZpb3VzQ29tbWl0IjogIjIxMDk0OSIsCiAg
ICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk1MCIsCisgICAgICAgICAgICAgICAgInJl
dmlzaW9uTGFiZWwiOiAiMTg0Mjc4QG1haW4iLAogICAgICAgICAgICAgICAgICJ0aW1lIjogIjIw
MTctMDEtMjBUMDM6NDk6MzcuODg3WiIsCiAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFt
ZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Via2l0Lm9yZyJ9
LAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImFub3RoZXIgbWVzc2FnZSIsCisgICAgICAg
ICAgICB9LAorICAgICAgICBdCisgICAgfTsKKworICAgIGNvbnN0IHN1YmNlcnNpb25Db21taXRz
V2l0aEZha2VSZXZpc2lvbkxhYmVsID0geworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2
ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJj
b21taXRzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5Ijog
IldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OCIsCisgICAgICAg
ICAgICAgICAgInJldmlzaW9uTGFiZWwiOiAiMTg0Mjc2QG1haW4iLAorICAgICAgICAgICAgICAg
ICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6NTI6MzQuNTc3WiIsCisgICAgICAgICAgICAgICAgImF1
dGhvciI6IHsibmFtZSI6ICJaYWxhbiBCdWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5j
b20ifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJhIG1lc3NhZ2UiLAorICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJL
aXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDkiLAorICAgICAgICAgICAg
ICAgICJyZXZpc2lvbkxhYmVsIjogIjE4NDI3N0BtYWluIiwKKyAgICAgICAgICAgICAgICAidGlt
ZSI6ICIyMDE3LTAxLTIwVDAzOjIzOjUwLjY0NVoiLAorICAgICAgICAgICAgICAgICJhdXRob3Ii
OiB7Im5hbWUiOiAiQ2hyaXMgRHVtZXoiLCAiYWNjb3VudCI6ICJjZHVtZXpAYXBwbGUuY29tIn0s
CisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAic29tZSBtZXNzYWdlIiwKKyAgICAgICAgICAg
IH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0
IiwKKyAgICAgICAgICAgICAgICAicHJldmlvdXNDb21taXQiOiAiMjEwOTQ5IiwKKyAgICAgICAg
ICAgICAgICAicmV2aXNpb24iOiAiMjEwOTUwIiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25M
YWJlbCI6ICIxODQyNzhAbWFpbiIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0y
MFQwMzo0OTozNy44ODdaIiwKKyAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNv
bW1pdCBRdWV1ZSIsICJhY2NvdW50IjogImNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnIn0sCisgICAg
ICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdlIiwKKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwK
KyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTUxIiwKKyAgICAgICAgICAgICAgICAi
cmV2aXNpb25MYWJlbCI6ICIxODQyNzhAc29tZXRoaW5nIiwKKyAgICAgICAgICAgICAgICAidGlt
ZSI6ICIyMDE3LTAxLTIwVDAzOjQ5OjQwLjg4N1oiLAorICAgICAgICAgICAgICAgICJhdXRob3Ii
OiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmcifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJhbm90aGVyIG1lc3NhZ2UiLAog
ICAgICAgICAgICAgfQogICAgICAgICBdCi0gICAgfQorICAgIH07CiAKICAgICBjb25zdCBjb21t
aXRzT25lUHJlZml4T2ZUaGVPdGhlciA9IHsKICAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xh
dmUiLApAQCAtNDYsNiArODksNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJL
aXQiLAogICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NCIsCisgICAgICAgICAgICAg
ICAgInJldmlzaW9uTGFiZWwiOiAiMTg0MjcyQG1haW4iLAogICAgICAgICAgICAgICAgICJ0aW1l
IjogIjIwMTctMDEtMjBUMDI6NTI6MzQuNTc3WiIsCiAgICAgICAgICAgICAgICAgImF1dGhvciI6
IHsibmFtZSI6ICJaYWxhbiBCdWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwK
ICAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJhIG1lc3NhZ2UiLApAQCAtNTMsNiArOTcsNyBA
QCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAogICAgICAgICAgICAgICAg
ICJyZXZpc2lvbiI6ICIyMTA5NDkiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbkxhYmVsIjog
IjE4NDI3N0BtYWluIiwKICAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjIz
OjUwLjY0NVoiLAogICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ2hyaXMgRHVt
ZXoiLCAiYWNjb3VudCI6ICJjZHVtZXpAYXBwbGUuY29tIn0sCiAgICAgICAgICAgICAgICAgIm1l
c3NhZ2UiOiAic29tZSBtZXNzYWdlIiwKQEAgLTUyNCw2ICs1NjksNDEgQEAgZGVzY3JpYmUoIi9h
cGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7
CiAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gY29tbWl0IHdpdGggY29tbWl0IHJldmlzaW9u
IGxhYmVsIiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBv
cnQoc3VidmVyc2lvbkNvbW1pdHMpOworICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2Fp
dCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycs
IHN1YnZlcnNpb25Db21taXRzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQg
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKGAvYXBpL2NvbW1pdHMvV2ViS2l0LyR7c3Vi
dmVyc2lvbkNvbW1pdHMuY29tbWl0c1swXS5yZXZpc2lvbkxhYmVsfWApOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdC5jb21taXRzLmxlbmd0aCwgMSk7CisgICAgICAgICAg
ICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHQuY29tbWl0c1swXSwgc3Vi
dmVyc2lvbkNvbW1pdHMuY29tbWl0c1swXSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCJz
aG91bGQgcmV0dXJuICdBbWJpZ3VvdXNSZXZpc2lvblByZWZpeCcgd2hlbiBtb3JlIHRoYW4gb25l
IGNvbW1pdHMgYXJlIGZvdW5kIGZvciBhIHJldmlzaW9uIGxhYmVsIHByZWZpeCIsIGFzeW5jICgp
ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7
CisgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJjZXJzaW9uQ29tbWl0c1dp
dGhGYWtlUmV2aXNpb25MYWJlbCk7CisgICAgICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT05X
aXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YmNlcnNpb25Db21taXRzV2l0aEZh
a2VSZXZpc2lvbkxhYmVsKTsKKyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90
ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzE4NDI3OEA/cHJlZml4LW1hdGNoPXRydWUn
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnQW1i
aWd1b3VzUmV2aXNpb25QcmVmaXgnKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoInNob3Vs
ZCBub3QgcmV0dXJuICdBbWJpZ3VvdXNSZXZpc2lvblByZWZpeCcgd2hlbiB0aGVyZSBpcyBhIGNv
bW1pdCByZXZpc2lvbiBsYWJlbCBleHRyYWN0IG1hdGNoZXMgc3BlY2lmaWVkIHJldmlzaW9uIHBy
ZWZpeCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCk7CisgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJj
ZXJzaW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25MYWJlbCk7CisgICAgICAgICAgICBhd2FpdCBy
ZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YmNlcnNp
b25Db21taXRzV2l0aEZha2VSZXZpc2lvbkxhYmVsKTsKKyAgICAgICAgICAgIGNvbnN0IHJlc3Vs
dCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzE4NDI3OEBtYWlu
P3ByZWZpeC1tYXRjaD10cnVlJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnRDb21taXRJ
c1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3ViY2Vyc2lvbkNvbW1p
dHNXaXRoRmFrZVJldmlzaW9uTGFiZWxbJ2NvbW1pdHMnXVsyXSk7CisgICAgICAgIH0pOworCisg
ICAgICAgIGl0KCJzaG91bGQgcmV0dXJuICdVbmtub3duQ29tbWl0JyB3aGVuIG5vIGNvbW1pdCBp
cyBmb3VuZCBmb3IgYSByZXZpc2lvbiBsYWJlbCBwcmVmaXgiLCBhc3luYyAoKSA9PiB7CisgICAg
ICAgICAgICBjb25zdCByZW1vdGUgPSBUZXN0U2VydmVyLnJlbW90ZUFQSSgpOworICAgICAgICAg
ICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3ViY2Vyc2lvbkNvbW1pdHNXaXRoRmFrZVJldmlz
aW9uTGFiZWwpOworICAgICAgICAgICAgYXdhaXQgcmVtb3RlLnBvc3RKU09OV2l0aFN0YXR1cygn
L2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJjZXJzaW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25M
YWJlbCk7CisgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTign
L2FwaS9jb21taXRzL1dlYktpdC8xODQyNzhAeD9wcmVmaXgtbWF0Y2g9dHJ1ZScpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdVbmtub3duQ29tbWl0
Jyk7CisgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88
cmVwb3NpdG9yeT4vb3duZWQtY29tbWl0cz9vd25lci1yZXZpc2lvbj08Y29tbWl0PicsICgpID0+
IHsKQEAgLTcyNyw2ICs4MDcsMzMgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoInNob3Vs
ZCByZXR1cm4gcmVwb3J0ZWQgY29tbWl0cyBpbiB0aGUgc3BlY2lmaWVkIHJldmlzaW9uIGxhYmVs
IHJhbmdlIiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVy
LmRhdGFiYXNlKCk7CisgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3JlcG9zaXRvcmllcycs
IHsnaWQnOiAxLCAnbmFtZSc6ICdXZWJLaXQnfSk7CisgICAgICAgICAgICBhd2FpdCBkYi5pbnNl
cnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTQ4JywgJ3Jl
dmlzaW9uX2xhYmVsJzogJzE4NDI3NkBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMjo1Mjoz
NC41NzdaJywgJ3JlcG9ydGVkJzogdHJ1ZX0pOworICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0
KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk0OScsICdyZXZp
c2lvbl9sYWJlbCc6ICcxODQyNzdAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDM6MjM6NTAu
NjQ1WicsICdyZXBvcnRlZCc6IHRydWV9KTsKKyAgICAgICAgICAgIGF3YWl0IGRiLmluc2VydCgn
Y29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6ICcyMTA5NTAnLCAncmV2aXNp
b25fbGFiZWwnOiAnMTg0Mjc4QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIwVDAzOjQ5OjM3Ljg4
N1onLCAncmVwb3J0ZWQnOiB0cnVlfSk7CisgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2Fp
dCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvP3By
ZWNlZGluZ1JldmlzaW9uPTE4NDI3NkBtYWluJmxhc3RSZXZpc2lvbj0xODQyNzhAbWFpbicpOwor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5n
dGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVz
dWx0Wydjb21taXRzJ11bMF0sIHsKKyAgICAgICAgICAgICAgICBwcmV2aW91c0NvbW1pdDogbnVs
bCwKKyAgICAgICAgICAgICAgICByZXZpc2lvbjogJzIxMDk0OScsCisgICAgICAgICAgICAgICAg
cmV2aXNpb25MYWJlbDogJzE4NDI4OUBtYWluJywKKyAgICAgICAgICAgICAgICB0aW1lOiAnMjAx
Ny0wMS0yMFQwMzoyMzo1MC42NDVaJywKKyAgICAgICAgICAgICAgICBhdXRob3I6IHtuYW1lOiBu
dWxsLCBhY2NvdW50OiBudWxsfSwKKyAgICAgICAgICAgICAgICBtZXNzYWdlOiBudWxsLAorICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRl
ZChyZXN1bHRbJ2NvbW1pdHMnXVsxXSwgeworICAgICAgICAgICAgICAgIHByZXZpb3VzQ29tbWl0
OiBudWxsLAorICAgICAgICAgICAgICAgIHJldmlzaW9uOiAnMjEwOTUwJywKKyAgICAgICAgICAg
ICAgICByZXZpc2lvbkxhYmVsOiAnMTg0MjkwQG1haW4nLAorICAgICAgICAgICAgICAgIHRpbWU6
ICcyMDE3LTAxLTIwVDAzOjQ5OjM3Ljg4N1onLAorICAgICAgICAgICAgICAgIGF1dGhvcjoge25h
bWU6IG51bGwsIGFjY291bnQ6IG51bGx9LAorICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG51bGws
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKICAgICAgICAgaXQoInNob3VsZCBub3Qg
aW5jbHVkZSBhIHJldmlzaW9uIG5vdCB3aXRoaW4gdGhlIHNwZWNpZmllZCByYW5nZSIsICgpID0+
IHsKICAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwogICAgICAg
ICAgICAgY29uc3QgcmVtb3RlID0gVGVzdFNlcnZlci5yZW1vdGVBUEkoKTsKQEAgLTc1MCw2ICs4
NTcsMjMgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoInNob3VsZCBub3QgaW5jbHVkZSBh
IHJldmlzaW9uIG5vdCB3aXRoaW4gdGhlIHNwZWNpZmllZCBjb21taXQgcmV2aXNpb24gbGFiZWwg
cmFuZ2UiLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIu
ZGF0YWJhc2UoKTsKKyAgICAgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCk7CisgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHsnaWQn
OiAxLCAnbmFtZSc6ICdXZWJLaXQnfSksCisgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2Nv
bW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTQ3JywgJ3JldmlzaW9u
X2xhYmVsJzogJzE4NDI3NUBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMjozODo0NS40ODVa
JywgJ3JlcG9ydGVkJzogZmFsc2V9KTsKKyAgICAgICAgICAgIGF3YWl0IGRiLmluc2VydCgnY29t
bWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6ICcyMTA5NDgnLCAncmV2aXNpb25f
bGFiZWwnOiAnMTg0Mjc2QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIwVDAyOjUyOjM0LjU3N1on
LCAncmVwb3J0ZWQnOiBmYWxzZX0pOworICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21t
aXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk0OScsICdyZXZpc2lvbl9s
YWJlbCc6ICcxODQyNzdAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1Wics
ICdyZXBvcnRlZCc6IGZhbHNlfSk7CisgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1p
dHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTUwJywgJ3JldmlzaW9uX2xh
YmVsJzogJzE4NDI3OEBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMzo0OTozNy44ODdaJywg
J3JlcG9ydGVkJzogZmFsc2V9KTsKKyAgICAgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0
KHN1YnZlcnNpb25Db21taXRzKTsKKyAgICAgICAgICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNPTldp
dGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvbkNvbW1pdHMpOworICAg
ICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0
cy9XZWJLaXQvP3ByZWNlZGluZ1JldmlzaW9uPTE4NDI3NUBtYWluJmxhc3RSZXZpc2lvbj0xODQy
NzdAbWFpbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVz
J10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVT
dWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1YnZlcnNpb25Db21taXRzWydjb21taXRz
J11bMF0pOworICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVz
dWx0Wydjb21taXRzJ11bMV0sIHN1YnZlcnNpb25Db21taXRzWydjb21taXRzJ11bMV0pOworICAg
ICAgICB9KTsKKwogICAgIH0pOwogCiB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMu
anMKaW5kZXggYjRlZTcyNmYzNTUzMDJhYjE4ZDZjNzM2Y2JiNDBjMzBjNGIxODU5Yi4uOThhMDc0
OTJlMjYxOTJhYjI4YjQ5MGU3ZDRjYTE1Y2VlOGY1NDBhMSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMK
KysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNv
bW1pdHMtdGVzdHMuanMKQEAgLTI2LDYgKzI2LDIwIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1j
b21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfQog
ICAgICAgICBdLAogICAgIH07CisgICAgY29uc3Qgc3VidmVyc2lvbkNvbW1pdFdpdGhSZXZpc2lv
bkxhYmVsID0geworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICJz
bGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWworICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAg
ICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3NyIsCisgICAgICAgICAgICAgICAgInJldmlz
aW9uTGFiZWwiOiAiMTI3MjMxQG1haW4iLAorICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTMt
MDItMDZUMDg6NTU6MjAuOVoiLAorICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAi
Q29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmcifSwKKyAg
ICAgICAgICAgICAgICAibWVzc2FnZSI6ICJzb21lIG1lc3NhZ2UiLAorICAgICAgICAgICAgfQor
ICAgICAgICBdLAorICAgIH07CiAgICAgY29uc3Qgc3VidmVyc2lvbkludmFsaWRDb21taXQgPSB7
CiAgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKICAgICAgICAgInNsYXZlUGFzc3dv
cmQiOiAic29tZVBhc3N3b3JkIiwKQEAgLTc2LDYgKzkwLDQ0IEBAIGRlc2NyaWJlKCIvYXBpL3Jl
cG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICBd
CiAgICAgfQogCisgICAgY29uc3QgZHVwbGljYXRlZENvbW1pdFJldmlzaW9uTGFiZWxDb21taXRz
ID0geworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2ZVBh
c3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAg
ICAgICAgInJldmlzaW9uIjogIjIxMDk0OCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uTGFi
ZWwiOiAiMTg0Mjc2QG1haW4iLAorICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBU
MDI6NTI6MzQuNTc3WiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJaYWxh
biBCdWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKKyAgICAgICAgICAgICAg
ICAibWVzc2FnZSI6ICJhIG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAg
ICJyZXZpc2lvbiI6ICIyMTA5NDkiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbkxhYmVsIjog
IjE4NDI3NkBtYWluIiwKKyAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjIz
OjUwLjY0NVoiLAorICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ2hyaXMgRHVt
ZXoiLCAiYWNjb3VudCI6ICJjZHVtZXpAYXBwbGUuY29tIn0sCisgICAgICAgICAgICAgICAgIm1l
c3NhZ2UiOiAic29tZSBtZXNzYWdlIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgIF0KKyAgICB9
CisKKyAgICBjb25zdCBpbnZhbGlkQ29tbWl0UmV2aXNpb25MYWJlbENvbW1pdHMgPSB7CisgICAg
ICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAi
c29tZVBhc3N3b3JkIiwKKyAgICAgICAgImNvbW1pdHMiOiBbCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAicmV2
aXNpb24iOiAiMjEwOTQ4IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25MYWJlbCI6ICIxODQy
NzYiLAorICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6NTI6MzQuNTc3WiIs
CisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJaYWxhbiBCdWp0YXMiLCAiYWNj
b3VudCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJh
IG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgXQorICAgIH0KKwogICAgIGl0KCJz
aG91bGQgcmVqZWN0IGVycm9yIHdoZW4gc2xhdmUgbmFtZSBpcyBtaXNzaW5nIiwgKCkgPT4gewog
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBv
cnQtY29tbWl0cy8nLCB7fSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNzaW5nU2xhdmVOYW1lJyk7CkBA
IC0xNDUsNiArMTk3LDIyIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGlu
c2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KTsKICAgICB9KTsKIAorICAgIGl0
KCJzaG91bGQgcmVqZWN0IGFuIGludmFsaWQgcmV2aXNpb24gbGFiZWwiLCBhc3luYyAoKSA9PiB7
CisgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXQpOworICAg
ICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgaW52YWxpZENvbW1pdFJldmlzaW9uTGFiZWxDb21t
aXRzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0lu
dmFsaWRSZXZpc2lvbkxhYmVsJyk7CisgICAgICAgIGNvbnN0IHJvd3MgPSBhd2FpdCBUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdjb21taXRzJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyb3dzLmxlbmd0aCwgMCk7CisgICAgfSk7CisKKyAgICBpdCgic2hvdWxkIHJlamVj
dCB3aXRoIGR1cGxpY2F0ZWQgY29tbWl0IHJldmlzaW9uIGxhYmVscyIsIGFzeW5jICgpID0+IHsK
KyAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdCk7CisgICAg
ICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNP
TignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBkdXBsaWNhdGVkQ29tbWl0UmV2aXNpb25MYWJlbENv
bW1pdHMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
RHVwbGljYXRlZFJldmlzaW9uTGFiZWwnKTsKKyAgICAgICAgY29uc3Qgcm93cyA9IGF3YWl0IFRl
c3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKKyAgICB9KTsKKwogICAgIGl0KCJzaG91bGQg
c3RvcmUgdHdvIGNvbW1pdHMgZnJvbSBhIHZhbGlkIHNsYXZlIiwgKCkgPT4gewogICAgICAgICBy
ZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvblR3b0NvbW1pdHMpLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9h
cGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvblR3b0NvbW1pdHMpOwpAQCAtMjE1LDYgKzI4
MywyNSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKKyAgICBpdCgic2hvdWxkIHVw
ZGF0ZSBhbiBleGlzdGluZyBjb21taXQgd2l0aCBjb21taXQgbGFiZWwgaWYgdGhlcmUgaXMgb25l
IiwgYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2Uo
KTsKKyAgICAgICAgY29uc3QgcmVwb3J0ZWREYXRhID0gc3VidmVyc2lvbkNvbW1pdFdpdGhSZXZp
c2lvbkxhYmVsLmNvbW1pdHNbMF07CisgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1
YnZlcnNpb25Db21taXRXaXRoUmV2aXNpb25MYWJlbCk7CisgICAgICAgIGF3YWl0IGRiLmluc2Vy
dCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEsICduYW1lJzogJ1dlYktpdCd9KSwKKyAgICAgICAg
YXdhaXQgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzog
cmVwb3J0ZWREYXRhWydyZXZpc2lvbiddLCAndGltZSc6IHJlcG9ydGVkRGF0YVsndGltZSddfSkK
KyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXRXaXRoUmV2aXNp
b25MYWJlbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10s
ICdPSycpOworICAgICAgICBjb25zdCBjb21taXRzID0gYXdhaXQgZGIuc2VsZWN0QWxsKCdjb21t
aXRzJyk7CisgICAgICAgIGNvbnN0IGNvbW1pdHRlcnMgPSBhd2FpdCBkYi5zZWxlY3RBbGwoJ2Nv
bW1pdHRlcnMnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAx
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ21lc3NhZ2UnXSwgcmVwb3J0ZWRE
YXRhWydtZXNzYWdlJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsn
cmV2aXNpb25fbGFiZWwnXSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbkxhYmVsJ10pOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNb
MF1bJ2lkJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnbmFt
ZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvcidd
WydhY2NvdW50J10pOworICAgIH0pOworCiAgICAgaXQoInNob3VsZCBub3QgdXBkYXRlIGFuIHVu
cmVsYXRlZCBjb21taXQiLCAoKSA9PiB7CiAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5k
YXRhYmFzZSgpOwogICAgICAgICBjb25zdCBmaXJzdERhdGEgPSBzdWJ2ZXJzaW9uVHdvQ29tbWl0
cy5jb21taXRzWzBdOwpAQCAtNTkwLDYgKzY3NywxMTEgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0
LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT3duZWRDb21taXRTaG91bGRO
b3RDb250YWluVGltZXN0YW1wJyk7CiAgICAgICAgIH0pOwogICAgIH0pOworCisgICAgY29uc3Qg
aW52YWxpZE93bmVkQ29tbWl0VXNlUmV2aXNpb25MYWJlbEFzUmV2aXNvbiA9IHsKKyAgICAgICAg
InNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAorICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21l
UGFzc3dvcmQiLAorICAgICAgICAiY29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAicmVwb3NpdG9yeSI6ICJPU1giLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6
ICJTaWVycmExNkQzMiIsCisgICAgICAgICAgICAgICAgIm9yZGVyIjogMSwKKyAgICAgICAgICAg
ICAgICAib3duZWRDb21taXRzIjogeworICAgICAgICAgICAgICAgICAgICAiV2ViS2l0Ijogewor
ICAgICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjEyNzIzMkBtYWluIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFj
Y291bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmcifSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICJtZXNzYWdlIjogIldlYktpdCBDb21taXQiLAorICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICBdCisgICAgfTsKKworICAg
IGl0KCJzaG91bGQgcmVqZWN0IGluc2VydGluZyBvbmUgY29tbWl0IHdpdGggb3duZWQgY29tbWl0
cyB0aGF0IHVzZSByZXZpc2lvbiBsYWJlbCBhcyByZXZpc2lvbiIsIGFzeW5jICgpID0+IHsKKyAg
ICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoaW52YWxpZE93bmVkQ29tbWl0VXNlUmV2aXNp
b25MYWJlbEFzUmV2aXNvbik7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBpbnZhbGlk
T3duZWRDb21taXRVc2VSZXZpc2lvbkxhYmVsQXNSZXZpc29uKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRPd25Db21taXRSZXZpc2lvbicp
OworICAgIH0pOworCisgICAgY29uc3QgaW52YWxpZFJldmlzaW9uTGFiZWxPd25lZENvbW1pdCA9
IHsKKyAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAorICAgICAgICAic2xhdmVQYXNz
d29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAiY29tbWl0cyI6IFsKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJPU1giLAorICAgICAgICAgICAgICAg
ICJyZXZpc2lvbiI6ICJTaWVycmExNkQzMiIsCisgICAgICAgICAgICAgICAgIm9yZGVyIjogMSwK
KyAgICAgICAgICAgICAgICAib3duZWRDb21taXRzIjogeworICAgICAgICAgICAgICAgICAgICAi
V2ViS2l0IjogeworICAgICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3OCIs
CisgICAgICAgICAgICAgICAgICAgICAgICAicmV2aXNpb25MYWJlbCI6ICIxMjcyMzIiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAi
YWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Via2l0Lm9yZyJ9LAorICAgICAgICAgICAgICAgICAg
ICAgICAgIm1lc3NhZ2UiOiAiV2ViS2l0IENvbW1pdCIsCisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIF0KKyAgICB9OworCisg
ICAgaXQoInNob3VsZCByZWplY3QgaW5zZXJ0aW5nIG9uZSBjb21taXQgd2l0aCBvd25lZCBjb21t
aXRzIHRoYXQgaGF2ZSBpbnZhbGlkIHJldmlzaW9uIGxhYmVsIiwgYXN5bmMgKCkgPT4geworICAg
ICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChpbnZhbGlkUmV2aXNpb25MYWJlbE93bmVkQ29t
bWl0KTsKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGludmFsaWRSZXZpc2lvbkxhYmVs
T3duZWRDb21taXQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnSW52YWxpZE93bkNvbW1pdFJldmlzaW9uTGFiZWwnKTsKKyAgICB9KTsKKworICAgIGNv
bnN0IGludmFsaWRBdXRob3JPd25lZENvbW1pdCA9IHsKKyAgICAgICAgInNsYXZlTmFtZSI6ICJz
b21lU2xhdmUiLAorICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAg
ICAgICAiY29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3Np
dG9yeSI6ICJPU1giLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICJTaWVycmExNkQzMiIs
CisgICAgICAgICAgICAgICAgIm9yZGVyIjogMSwKKyAgICAgICAgICAgICAgICAib3duZWRDb21t
aXRzIjogeworICAgICAgICAgICAgICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAg
ICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3OCIsCisgICAgICAgICAgICAgICAgICAgICAgICAi
cmV2aXNpb25MYWJlbCI6ICIxMjcyMzJAbWFpbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAi
YXV0aG9yIjogbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIldlYktp
dCBDb21taXQiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorICAgICAgICBdCisgICAgfTsKKyAgICBpdCgic2hvdWxkIHJlamVjdCBpbnNl
cnRpbmcgb25lIGNvbW1pdCB3aXRoIG93bmVkIGNvbW1pdHMgdGhhdCBoYXZlIGludmFsaWQgYXV0
aG9yIiwgYXN5bmMgKCkgPT4geworICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChpbnZh
bGlkQXV0aG9yT3duZWRDb21taXQpOworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgaW52
YWxpZEF1dGhvck93bmVkQ29tbWl0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ0ludmFsaWRPd25Db21taXRBdXRob3JGb3JtYXQnKTsKKyAgICB9KTsK
KworICAgIGNvbnN0IG93bmVkQ29tbWl0V2l0aFJldmlzaW9uTGFiZWwgPSB7CisgICAgICAgICJz
bGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBh
c3N3b3JkIiwKKyAgICAgICAgImNvbW1pdHMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgInJlcG9zaXRvcnkiOiAiT1NYIiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAi
U2llcnJhMTZEMzIiLAorICAgICAgICAgICAgICAgICJvcmRlciI6IDEsCisgICAgICAgICAgICAg
ICAgIm93bmVkQ29tbWl0cyI6IHsKKyAgICAgICAgICAgICAgICAgICAgIldlYktpdCI6IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNDE5NzgiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgInJldmlzaW9uTGFiZWwiOiAiMTI3MjMyQG1haW4iLAorICAgICAgICAgICAg
ICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3VudCI6
ICJjb21taXQtcXVldWVAd2Via2l0Lm9yZyJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgIm1l
c3NhZ2UiOiAiV2ViS2l0IENvbW1pdCIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIF0KKyAgICB9OworCisgICAgaXQoInNo
b3VsZCBpbnNlcnQgb25lIGNvbW1pdCB3aXRoIGNvbW1pdCByZXZpc2lvbiBsYWJlbCIsIGFzeW5j
ICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQob3duZWRDb21taXRXaXRo
UmV2aXNpb25MYWJlbCk7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBvd25lZENvbW1p
dFdpdGhSZXZpc2lvbkxhYmVsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFz
ZSgpOworICAgICAgICBjb25zdCBjb21taXQgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCdjb21taXRz
JywgeydyZXZpc2lvbic6ICcxNDE5NzgnfSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRbMF0ucmV2aXNpb25fbGFiZWwsIG93bmVkQ29tbWl0V2l0aFJldmlzaW9uTGFiZWwuY29t
bWl0c1swXS5vd25lZENvbW1pdHNbJ1dlYktpdCddLnJldmlzaW9uTGFiZWwpOworICAgIH0pOwog
fSk7CiAKIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD1mYWxzZSIs
IGZ1bmN0aW9uICgpIHsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qcwppbmRleCA1YzQ0NWZlZmMwZDcyMDRjMGJi
NWExNmUwMmNmNjEzNzJmZjNmYjY5Li5iMGVjODc0ZWE2YWQzNzJhOGNmNDg3ZGNlOTlkMzJiMmYz
ZWEzNDhlIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L2FwaS1yZXBvcnQtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzCkBAIC03Nyw2ICs3NywyOSBAQCBkZXNjcmliZSgi
L2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH07CiAgICAgfQogCisgICAgZnVu
Y3Rpb24gcmVwb3J0V2l0aFJldmlzaW9uTGFiZWxDb21taXQoKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHsKKyAgICAgICAgICAgICJidWlsZFRhZyI6ICIxMjMiLAorICAgICAgICAgICAgImJ1aWxk
VGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzLjM4ODMwNCIsCisgICAgICAgICAgICAiYnVpbGRl
ck5hbWUiOiAic29tZUJ1aWxkZXIiLAorICAgICAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xh
dmUiLAorICAgICAgICAgICAgImJ1aWxkZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAg
ICAgICAgICAgInBsYXRmb3JtIjogIk1vdW50YWluIExpb24iLAorICAgICAgICAgICAgInRlc3Rz
Ijoge30sCisgICAgICAgICAgICAicmV2aXNpb25zIjogeworICAgICAgICAgICAgICAgICJtYWNP
UyI6IHsKKyAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjEwLjguMiAxMkM2MCIKKyAg
ICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICJXZWJLaXQiOiB7CisgICAgICAgICAg
ICAgICAgICAgICJyZXZpc2lvbiI6ICIxNDE5NzciLAorICAgICAgICAgICAgICAgICAgICAicmV2
aXNpb25MYWJlbCI6ICIxMjcyMzFAbWFpbiIsCisgICAgICAgICAgICAgICAgICAgICJ0aW1lc3Rh
bXAiOiAiMjAxMy0wMi0wNlQwODo1NToyMC45WiIKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9CisgICAgICAgIH07CisgICAgfQorCiAgICAgZnVuY3Rpb24gZW1wdHlTbGF2ZVJlcG9y
dCgpCiAgICAgewogICAgICAgICByZXR1cm4gewpAQCAtMzUxLDYgKzM3NCwzNyBAQCBkZXNjcmli
ZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pOwogICAgIH0pOwogCisg
ICAgaXQoInNob3VsZCBhZGQgcmV2aXNpb24gbGFiZWwiLCBhc3luYyAoKSA9PiB7CisgICAgICAg
IGF3YWl0IGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uTGFiZWxDb21taXQo
KSk7CisgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkv
cmVwb3J0LycsIFtyZXBvcnRXaXRoUmV2aXNpb25MYWJlbENvbW1pdCgpXSk7CisgICAgICAgIGNv
bnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBjb25zdCByZXBvc2l0b3Jp
ZXMgPSBhd2FpdCBkYi5zZWxlY3RBbGwoJ3JlcG9zaXRvcmllcycpOworICAgICAgICBjb25zdCBj
b21taXRzID0gIGF3YWl0IGRiLnNlbGVjdEFsbCgnY29tbWl0cycpOworICAgICAgICBjb25zdCBi
dWlsZENvbW1pdHNSZWxhdGlvbnMgPSBhd2FpdCAgZGIuc2VsZWN0QWxsKCdidWlsZF9jb21taXRz
JywgJ2J1aWxkX2NvbW1pdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9y
aWVzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9y
aWVzLm1hcCgocm93KSA9PiByb3dbJ25hbWUnXSkuc29ydCgpLCBbJ1dlYktpdCcsICdtYWNPUydd
KTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRzUmVsYXRpb25zLmxlbmd0aCwgMik7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNbMF1bJ2J1
aWxkX2NvbW1pdCddLCBjb21taXRzWzBdWydpZCddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1sxXVsnYnVpbGRfY29tbWl0J10sIGNvbW1pdHNbMV1b
J2lkJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRzUmVsYXRpb25z
WzBdWydjb21taXRfYnVpbGQnXSwgYnVpbGRDb21taXRzUmVsYXRpb25zWzFdWydjb21taXRfYnVp
bGQnXSk7CisKKyAgICAgICAgbGV0IHJlcG9zaXRvcnlJZFRvTmFtZSA9IHt9OworICAgICAgICBm
b3IgKGxldCByZXBvc2l0b3J5IG9mIHJlcG9zaXRvcmllcykKKyAgICAgICAgICAgIHJlcG9zaXRv
cnlJZFRvTmFtZVtyZXBvc2l0b3J5WydpZCddXSA9IHJlcG9zaXRvcnlbJ25hbWUnXTsKKworICAg
ICAgICBsZXQgcmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93ID0ge307CisgICAgICAgIGZvciAo
bGV0IGNvbW1pdCBvZiBjb21taXRzKQorICAgICAgICAgICAgcmVwb3NpdG9yeU5hbWVUb1Jldmlz
aW9uUm93W3JlcG9zaXRvcnlJZFRvTmFtZVtjb21taXRbJ3JlcG9zaXRvcnknXV1dID0gY29tbWl0
OworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25S
b3dbJ21hY09TJ11bJ3JldmlzaW9uJ10sICcxMC44LjIgMTJDNjAnKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snV2ViS2l0J11bJ3Jldmlz
aW9uJ10sICcxNDE5NzcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlO
YW1lVG9SZXZpc2lvblJvd1snV2ViS2l0J11bJ3JldmlzaW9uX2xhYmVsJ10sICcxMjcyMzFAbWFp
bicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9u
Um93WydXZWJLaXQnXVsndGltZSddLnRvU3RyaW5nKCksCisgICAgICAgICAgICBuZXcgRGF0ZSgn
MjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7CisgICAgfSk7CisKICAgICBpdCgi
c2hvdWxkIG5vdCBjcmVhdGUgYSBkdXBsaWNhdGUgYnVpbGQgZm9yIHRoZSBzYW1lIGJ1aWxkIG51
bWJlciBpZiBidWlsZCB0aW1lcyBhcmUgY2xvc2UiLCAoKSA9PiB7CiAgICAgICAgIGNvbnN0IGZp
cnN0UmVwb3J0ID0gZW1wdHlSZXBvcnQoKTsKICAgICAgICAgZmlyc3RSZXBvcnRbJ2J1aWxkVGlt
ZSddID0gJzIwMTMtMDItMjhUMTA6MTI6MDQnOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3VuaXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy91bml0LXRlc3RzL2NvbW1pdC1sb2ctdGVzdHMuanMKaW5kZXggNzBhYmRlYmY4
MWU4YWI2MGQxZDE4MTYzZTM5OTE4NzljYjQ3MzhiNi4uOTI0YTFjZjllNDFkYjZhOWY5YTMzN2Yx
OTZkNDgzZmM1ZDU3NDNkZiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Vu
aXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdW5pdC10ZXN0cy9jb21taXQtbG9nLXRlc3RzLmpzCkBAIC0xNyw2ICsxNywxNyBAQCBmdW5j
dGlvbiB3ZWJraXRDb21taXQoKQogICAgIH0pOwogfQogCitmdW5jdGlvbiB3ZWJraXRDb21taXRX
aXRoUmV2aXNpb25MYWJlbCgpIAoreworICAgIHJldHVybiBuZXcgQ29tbWl0TG9nKDEsIHsKKyAg
ICAgICAgaWQ6IDEsCisgICAgICAgIHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMud2Via2l0LAorICAg
ICAgICByZXZpc2lvbjogJzIwMDgwNScsCisgICAgICAgIHJldmlzaW9uTGFiZWw6ICcxODQyNzZA
bWFpbicsCisgICAgICAgIHRpbWU6ICsobmV3IERhdGUoJzIwMTYtMDUtMTNUMDA6NTU6NTcuODQx
MzQ0WicpKSwKKyAgICB9KTsKK30KKwogZnVuY3Rpb24gb2xkV2ViS2l0Q29tbWl0KCkKIHsKICAg
ICByZXR1cm4gbmV3IENvbW1pdExvZygyLCB7CkBAIC0yNyw2ICszOCwxNyBAQCBmdW5jdGlvbiBv
bGRXZWJLaXRDb21taXQoKQogICAgIH0pOwogfQogCitmdW5jdGlvbiBvbGRXZWJLaXRDb21taXRX
aXRoUmV2aXNpb25MYWJlbCgpCit7CisgICAgcmV0dXJuIG5ldyBDb21taXRMb2coMiwgeworICAg
ICAgICBpZDogMiwKKyAgICAgICAgcmVwb3NpdG9yeTogTW9ja01vZGVscy53ZWJraXQsCisgICAg
ICAgIHJldmlzaW9uOiAnMjAwNTc0JywKKyAgICAgICAgcmV2aXNpb25MYWJlbDogJzE3NTYwNUBt
YWluJywKKyAgICAgICAgdGltZTogKyhuZXcgRGF0ZSgnMjAxNi0wNS0wOVQxNDo1OToyMy41NTM3
NjdaJykpLAorICAgIH0pOworfQorCiBmdW5jdGlvbiBnaXRXZWJLaXRDb21taXQoKQogewogICAg
IHJldHVybiBuZXcgQ29tbWl0TG9nKDMsIHsKQEAgLTM3LDYgKzU5LDE3IEBAIGZ1bmN0aW9uIGdp
dFdlYktpdENvbW1pdCgpCiAgICAgfSk7CiB9CiAKK2Z1bmN0aW9uIGdpdFdlYktpdENvbW1pdFdp
dGhSZXZpc2lvbkxhYmVsKCkKK3sKKyAgICByZXR1cm4gbmV3IENvbW1pdExvZygzLCB7CisgICAg
ICAgIGlkOiAzLAorICAgICAgICByZXBvc2l0b3J5OiBNb2NrTW9kZWxzLndlYmtpdCwKKyAgICAg
ICAgcmV2aXNpb246ICc2ZjhiMGRiYmRhOTVhNDQwNTAzYjg4ZGIxZGQwM2RhZDNhN2IwN2ZiJywK
KyAgICAgICAgcmV2aXNpb25MYWJlbDogJzE4NDI3NkBtYWluJywKKyAgICAgICAgdGltZTogKyhu
ZXcgRGF0ZSgnMjAxNi0wNS0xM1QwMDo1NTo1Ny44NDEzNDRaJykpLAorICAgIH0pOworfQorCiBm
dW5jdGlvbiBvbGRHaXRXZWJLaXRDb21taXQoKQogewogICAgIHJldHVybiBuZXcgQ29tbWl0TG9n
KDQsIHsKQEAgLTE0NywxMCArMTgwLDE4IEBAIGRlc2NyaWJlKCdDb21taXRMb2cnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Q29tbWl0KCkubGFiZWwoKSwg
J3IyMDA4MDUnKTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgaXQoJ3Nob3VsZCB0cnVuY2F0ZSBh
IEdpdCBoYXNoIGF0IDh0aCBjaGFyYWN0ZXInLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGl0KCdz
aG91bGQgZGlzcGxheSByZXZpc2lvbiBsYWJlbCBmb2xsb3dlZCBieSBzdm4gcmVmaXhlZCB3aXRo
ICJyIicsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRDb21t
aXRXaXRoUmV2aXNpb25MYWJlbCgpLmxhYmVsKCksICcxODQyNzZAbWFpbiAocjIwMDgwNSknKQor
ICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHRydW5jYXRlIGEgR2l0IGhhc2ggYXQg
MTJ0aCBjaGFyYWN0ZXInLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
Z2l0V2ViS2l0Q29tbWl0KCkubGFiZWwoKSwgJzZmOGIwZGJiZGE5NScpOwogICAgICAgICB9KTsK
IAorICAgICAgICBpdCgnc2hvdWxkIGRpc3BsYXkgcmV2aXNpb24gbGFiZWwgZm9sbG93ZWQgYnkg
Z2l0IGhhc2ggdHJ1bmNhdGVkJywgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGdpdFdlYktpdENvbW1pdFdpdGhSZXZpc2lvbkxhYmVsKCkubGFiZWwoKSwgJzE4NDI3NkBt
YWluICg2ZjhiMGRiYmRhOTUpJykKKyAgICAgICAgfSk7CisKICAgICAgICAgaXQoJ3Nob3VsZCBu
b3QgbW9kaWZ5IE9TIFggdmVyc2lvbicsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvc3hDb21taXQoKS5sYWJlbCgpLCAnMTAuMTEuNCAxNUU2NScpOwogICAgICAgICB9
KTsKQEAgLTE2MSwxMCArMjAyLDE4IEBAIGRlc2NyaWJlKCdDb21taXRMb2cnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Q29tbWl0KCkudGl0bGUoKSwgJ1dl
YktpdCBhdCByMjAwODA1Jyk7CiAgICAgICAgIH0pOwogCi0gICAgICAgIGl0KCdzaG91bGQgdHJ1
bmNhdGUgYSBHaXQgaGFzaCBhdCA4dGggY2hhcmFjdGVyJywgZnVuY3Rpb24gKCkgeworICAgICAg
ICBpdCgnc2hvdWxkIGluY2x1ZGUgcmV2aXNpb24gbGFiZWwnLCAoKSA9PiB7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Q29tbWl0V2l0aFJldmlzaW9uTGFiZWwoKS50aXRs
ZSgpLCAnV2ViS2l0IGF0IDE4NDI3NkBtYWluIChyMjAwODA1KScpOworICAgICAgICB9KTsKKwor
ICAgICAgICBpdCgnc2hvdWxkIHRydW5jYXRlIGEgR2l0IGhhc2ggYXQgMTJ0aCBjaGFyYWN0ZXIn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ2l0V2ViS2l0Q29tbWl0
KCkudGl0bGUoKSwgJ1dlYktpdCBhdCA2ZjhiMGRiYmRhOTUnKTsKICAgICAgICAgfSk7CiAKKyAg
ICAgICAgaXQoJ3Nob3VsZCBkaXNwbGF5IHJldmlzaW9uIGxhYmVsIGZvbGxvd2VkIGJ5IGdpdCBo
YXNoIHRydW5jYXRlZCcsICAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Z2l0V2ViS2l0Q29tbWl0V2l0aFJldmlzaW9uTGFiZWwoKS50aXRsZSgpLCAnV2ViS2l0IGF0IDE4
NDI3NkBtYWluICg2ZjhiMGRiYmRhOTUpJyk7CisgICAgICAgIH0pOworCiAgICAgICAgIGl0KCdz
aG91bGQgbm90IG1vZGlmeSBPUyBYIHZlcnNpb24nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0KCkudGl0bGUoKSwgJ09TIFggYXQgMTAuMTEuNCAxNUU2
NScpOwogICAgICAgICB9KTsKQEAgLTIyMyw2ICsyNzIsMjMgQEAgZGVzY3JpYmUoJ0NvbW1pdExv
ZycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICByZXBvc2l0b3J5OiBNb2NrTW9kZWxz
Lm9zeAogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQg
ZGlzcGxheSByZXZpc2lvbiBsYWJlbCBmb2xsb3dlZCB3aXRoIHJldmlzb24gYW5kICBjb25uZWN0
IHdpdGggIi0iLCBpZiBib3RoIGhhdmUgcmV2aXNpb24gbGFiZWwnLCAoKSA9PiB7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHdlYmtpdENvbW1pdFdpdGhSZXZpc2lvbkxhYmVs
KCkuZGlmZihvbGRXZWJLaXRDb21taXRXaXRoUmV2aXNpb25MYWJlbCgpKSwgeworICAgICAgICAg
ICAgICAgIGxhYmVsOiAnMTc1NjA1QG1haW4gKHIyMDA1NzQpIC0gMTg0Mjc2QG1haW4gKHIyMDA4
MDUpJywKKyAgICAgICAgICAgICAgICB1cmw6ICcnLAorICAgICAgICAgICAgICAgIHJlcG9zaXRv
cnk6IE1vY2tNb2RlbHMud2Via2l0CisgICAgICAgICAgICB9KQorICAgICAgICB9KTsKKworICAg
ICAgICBpdCgnc2hvdWxkIGNvbnRhaW4gcmV2aXNpb24gbGFiZWwsIGlmIG9uZSBvZiB0aGUgY29t
bWl0cyBkb2VzbmB0IGhhdmUgdGhlIHJldmlzaW9uIGxhYmVsJywgKCkgPT4geworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh3ZWJraXRDb21taXRXaXRoUmV2aXNpb25MYWJlbCgp
LmRpZmYob2xkV2ViS2l0Q29tbWl0KCkpLCB7CisgICAgICAgICAgICAgICAgbGFiZWw6ICdyMjAw
NTc0IC0gMTg0Mjc2QG1haW4gKHIyMDA4MDUpJywKKyAgICAgICAgICAgICAgICB1cmw6ICcnLAor
ICAgICAgICAgICAgICAgIHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMud2Via2l0CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfSk7CisKICAgICB9KTsKIAogICAgIGRlc2NyaWJlKCdoYXNPcmRlcmlu
ZycsICgpID0+IHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424098</attachid>
            <date>2021-03-23 22:39:52 -0700</date>
            <delta_ts>2021-03-26 19:00:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222897-20210323223951.patch</filename>
            <type>text/plain</type>
            <size>53558</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MDYxCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1YTg1MWZkODI1NTA1YjQzMGFkNzg3ODZhNTQ1NzI0MzUwNTg0Zjc1Li4zNTA5NTFlOGRk
NWI2YzUyMzkwYWFiYjVmZGI5YTA0OTkxNWY2ZDY0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAyMS0wMy0xMCAgWmhpZmVpIEZhbmcgIDx6aGlmZWlf
ZmFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGNvbW1pdCByZXZpc2lvbiBsYWJlbCBzdXBw
b3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI4
OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
bmV3IGNvbHVtbiByZXZpc2lvbiBsYWJlbC4KKyAgICAgICAgTWFrZSBhbGwgY29tbWl0IGFwaSBh
bHNvIGNhbiB3b3JrIHdpdGggcmV2aXNpb24gbGFiZWwuCisgICAgICAgIENoYW5nZSB0aGUgY29t
bWl0IGxhYmVsIGRpc3BsYXkgd2l0aCBjb21taXQgcmV2aXNpb24gbGFiZWwuCisKKyAgICAgICAg
KiBicm93c2VyLXRlc3RzL2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzOiBGaXggYSBmYWlsZWQg
dGVzdCBjYXNlLCB3aGlsZSByZXF1ZXN0aW5nIHRoZSByZW1vdGUgYXBpLCAKKyAgICAgICAgd2Ug
c2hvdWxkIHdhaXQgZm9yIHRob3NlIHByb21pc2VzIHJlc29sdmVkIGFuZCB0aGVuIHdhaXQgZm9y
IGNvbW1wb25lbnQgdG8gcmVuZGVyLgorICAgICAgICAqIGluaXQtZGF0YWJhc2Uuc3FsOiBBZGQg
bmV3IGNvbHVtbiByZXZpc2lvbl9pZGVudGlmaWVyLgorICAgICAgICAqIG1pZ3JhdGUtZGF0YWJh
c2Uuc3FsOiBBZGQgbmV3IGNvbHVtbiByZXZpc2lvbl9pZGVudGlmaWVyLgorICAgICAgICAqIHB1
YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHA6IE1ha2UgYXBpIHRoYXQgd29ya3Mg
d2l0aCByZXZpc2lvbiBzaG91bGQgd29yayB3aXRoIHJldmlzaW9uIGxhYmVsLgorICAgICAgICAq
IHB1YmxpYy9pbmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocDogRGl0dG8uCisgICAgICAgICogcHVi
bGljL2luY2x1ZGUvcmVwb3J0LXByb2Nlc3Nvci5waHA6IE1ha2UgdGhlIHByb2Nlc3NvciBjYW4g
YWxzbyBpbnNlcnQgcmV2aXNpb24gbGFiZWwuCisgICAgICAgICogcHVibGljL3YzL21vZGVscy9j
b21taXQtbG9nLmpzOgorICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS51cGRhdGVTaW5nbGV0
b24pOgorICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS5yZXZpc2lvbklkZW50aWZpZXIpOgor
ICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS5sYWJlbCk6IE1ha2UgdGhlIGxhYmVsIGluY2x1
ZGUgcmV2aXNpb24gbGFiZWwgYW5kIHJldmlzaW9uLgorICAgICAgICAoQ29tbWl0TG9nLnByb3Rv
dHlwZS5kaWZmKTogTWFrZSB0aGUgZGlmZiBsYWJlbCBpbmNsdWRlIHJldmlzaW9uIGxhYmVsIGFu
ZCByZXZpc2lvbi4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanM6
CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtY29tbWl0cy10ZXN0cy5qczoKKyAg
ICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qczoKKyAgICAgICAgKHJlcG9y
dFdpdGhSZXZpc2lvbklkZW50aWZpZXJDb21taXQpOgorICAgICAgICAqIHVuaXQtdGVzdHMvY29t
bWl0LWxvZy10ZXN0cy5qczoKKwogMjAyMS0wMy0wNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbcGVyZiBkYXNoYm9hcmRdIE1vZGVybml6ZSBUaW1lU2VyaWVz
IGFuZCBUaW1lU2VyaWVzVmlldwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L2Jyb3dzZXItdGVzdHMvY29tbWl0LWxvZy12aWV3ZXItdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcwppbmRl
eCBkYmM0Y2ZjZDliYzIxNGI3MDhlZTE5OGYxZWE2NjVmMjI0MjI4NTYwLi5mODQ4OWU3Y2FjNDRl
MjMwMjBmN2U4ZjJjZTY0NDdhN2EyYzQyZjhiIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcworKysgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10
ZXN0cy5qcwpAQCAtNTUsNiArNTUsMTkgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZ1ZpZXdlcicsICgp
ID0+IHsKICAgICAgICAgIm1lc3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdlIiwKICAgICB9OwogCisg
ICAgY29uc3Qgd2Via2l0Q29tbWl0MjEwOTUwV2l0aFJldmlzaW9uSWRlbnRpZmllciA9IHsKKyAg
ICAgICAgImlkIjogIjE4NTMzOCIsCisgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NTAiLAorICAg
ICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3OEBtYWluIiwKKyAgICAgICAgInJlcG9z
aXRvcnkiOiAxLAorICAgICAgICAicHJldmlvdXNDb21taXQiOiBudWxsLAorICAgICAgICAib3du
c0NvbW1pdHMiOiBmYWxzZSwKKyAgICAgICAgInRpbWUiOiArbmV3IERhdGUoIjIwMTctMDEtMjBU
MDM6NDk6MzcuODg3WiIpLAorICAgICAgICAiYXV0aG9yTmFtZSI6ICJDb21taXQgUXVldWUiLAor
ICAgICAgICAiYXV0aG9yRW1haWwiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmciLAorICAgICAg
ICAibWVzc2FnZSI6ICJhbm90aGVyIG1lc3NhZ2UiLAorICAgIH07CisKICAgICBpdCgnc2hvdWxk
IGluaXRpYWxseSBiZSBlbXB0eSB3aXRoIG5vIHNwaW5uZXInLCAoKSA9PiB7CiAgICAgICAgIGNv
bnN0IGNvbnRleHQgPSBuZXcgQnJvd3NpbmdDb250ZXh0KCk7CiAgICAgICAgIHJldHVybiBpbXBv
cnRDb21taXRMb2dWaWV3ZXIoY29udGV4dCkudGhlbigoQ29tbWl0TG9nVmlld2VyKSA9PiB7CkBA
IC0xMjksOSArMTQyLDkgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZ1ZpZXdlcicsICgpID0+IHsKICAg
ICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIiwKICAgICAgICAgICAgICAgICAiY29tbWl0cyI6
IFt3ZWJraXRDb21taXQyMTA5NDhdLAogICAgICAgICAgICAgfSk7Ci0KKyAgICAgICAgICAgIGF3
YWl0IHJlcXVlc3RzWzBdLnByb21pc2U7CisgICAgICAgICAgICBhd2FpdCByZXF1ZXN0c1sxXS5w
cm9taXNlOwogICAgICAgICAgICAgYXdhaXQgd2FpdEZvckNvbXBvbmVudHNUb1JlbmRlcihjb250
ZXh0KTsKLQogICAgICAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdzcGlubmVyLWNvbnRh
aW5lcicpLm9mZnNldEhlaWdodCkudG8uYmUoMCk7CiAgICAgICAgICAgICBleHBlY3Qodmlld2Vy
LmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLm1hdGNoZXMoJzplbXB0eScpKS50by5iZShmYWxzZSk7
CiAgICAgICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLnRleHRD
b250ZW50KS50by5jb250YWluKCdyMjEwOTQ5Jyk7CkBAIC0xNDQsNCArMTU3LDQ3IEBAIGRlc2Ny
aWJlKCdDb21taXRMb2dWaWV3ZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogICAgIH0pOwogCisg
ICAgaXQoJ3Nob3VsZCBzaG93IHJldmlzaW9uIGxhYmVsJywgYXN5bmMgKCkgPT4geworICAgICAg
ICBjb25zdCBjb250ZXh0ID0gbmV3IEJyb3dzaW5nQ29udGV4dCgpOworICAgICAgICBjb25zdCBD
b21taXRMb2dWaWV3ZXIgPSBhd2FpdCBpbXBvcnRDb21taXRMb2dWaWV3ZXIoY29udGV4dCk7Cisg
ICAgICAgIGNvbnN0IFJlcG9zaXRvcnkgPSBjb250ZXh0LnN5bWJvbHMuUmVwb3NpdG9yeTsKKyAg
ICAgICAgY29uc3QgcmVxdWVzdHMgPSBjb250ZXh0LnN5bWJvbHMuUmVtb3RlQVBJLnJlcXVlc3Rz
OworICAgICAgICBjb25zdCB2aWV3ZXIgPSBuZXcgQ29tbWl0TG9nVmlld2VyOworICAgICAgICBj
b25zdCB3ZWJraXQgPSBuZXcgUmVwb3NpdG9yeSgxLCB7bmFtZTogJ1dlYktpdCd9KTsKKyAgICAg
ICAgY29udGV4dC5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZXdlci5lbGVtZW50KCkpOwor
CisgICAgICAgIHZpZXdlci5lbnF1ZXVlVG9SZW5kZXIoKTsKKyAgICAgICAgYXdhaXQgd2FpdEZv
ckNvbXBvbmVudHNUb1JlbmRlcihjb250ZXh0KTsKKworICAgICAgICB2aWV3ZXIudmlldyh3ZWJr
aXQsICcyMTA5NDgnLCAnMjEwOTUwJyk7CisgICAgICAgIGF3YWl0IHdhaXRGb3JDb21wb25lbnRz
VG9SZW5kZXIoY29udGV4dCk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnc3Bpbm5l
ci1jb250YWluZXInKS5vZmZzZXRIZWlnaHQpLnRvLm5vdC5iZSgwKTsKKyAgICAgICAgZXhwZWN0
KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxpc3QnKS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUo
dHJ1ZSk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgncmVwb3NpdG9yeS1uYW1lJyku
bWF0Y2hlcygnOmVtcHR5JykpLnRvLmJlKGZhbHNlKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5j
b250ZW50KCdyZXBvc2l0b3J5LW5hbWUnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignV2ViS2l0
Jyk7CisgICAgICAgIGV4cGVjdChyZXF1ZXN0cy5sZW5ndGgpLnRvLmJlKDIpOworICAgICAgICBl
eHBlY3QocmVxdWVzdHNbMF0udXJsKS50by5iZSgnL2FwaS9jb21taXRzLzEvP3ByZWNlZGluZ1Jl
dmlzaW9uPTIxMDk0OCZsYXN0UmV2aXNpb249MjEwOTUwJyk7CisgICAgICAgIGV4cGVjdChyZXF1
ZXN0c1sxXS51cmwpLnRvLmJlKCcvYXBpL2NvbW1pdHMvMS8yMTA5NDgnKTsKKyAgICAgICAgcmVx
dWVzdHNbMF0ucmVzb2x2ZSh7CisgICAgICAgICAgICAic3RhdHVzIjogIk9LIiwKKyAgICAgICAg
ICAgICJjb21taXRzIjogW3dlYmtpdENvbW1pdDIxMDk0OSwgd2Via2l0Q29tbWl0MjEwOTUwV2l0
aFJldmlzaW9uSWRlbnRpZmllcl0sCisgICAgICAgIH0pOworCisgICAgICAgIHJlcXVlc3RzWzFd
LnJlc29sdmUoeworICAgICAgICAgICAgInN0YXR1cyI6ICJPSyIsCisgICAgICAgICAgICAiY29t
bWl0cyI6IFt3ZWJraXRDb21taXQyMTA5NDhdLAorICAgICAgICB9KTsKKworICAgICAgICBhd2Fp
dCByZXF1ZXN0c1swXS5wcm9taXNlOworICAgICAgICBhd2FpdCByZXF1ZXN0c1sxXS5wcm9taXNl
OworICAgICAgICBhd2FpdCB3YWl0Rm9yQ29tcG9uZW50c1RvUmVuZGVyKGNvbnRleHQpOworICAg
ICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ3NwaW5uZXItY29udGFpbmVyJykub2Zmc2V0SGVp
Z2h0KS50by5iZSgwKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxp
c3QnKS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUoZmFsc2UpOworICAgICAgICBleHBlY3Qodmll
d2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLnRleHRDb250ZW50KS50by5jb250YWluKCcxODQy
NzhAbWFpbiAocjIxMDk1MCknKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdjb21t
aXRzLWxpc3QnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignQ29tbWl0IFF1ZXVlJyk7CisgICAg
ICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgncmVwb3NpdG9yeS1uYW1lJykubWF0Y2hlcygnOmVt
cHR5JykpLnRvLmJlKGZhbHNlKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdyZXBv
c2l0b3J5LW5hbWUnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignV2ViS2l0Jyk7CisgICAgICAg
IGV4cGVjdCh2aWV3ZXIuY29udGVudCgnY29tbWl0cy1saXN0JykucXVlcnlTZWxlY3RvcignYScp
KS50by5iZShudWxsKTsKKyAgICB9KTsKKwogfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
aW5pdC1kYXRhYmFzZS5zcWwKaW5kZXggN2ZmYzg5YWQ4MmM3NjEwNDFkMWE1NTZlODNmN2M5Njc4
YTMyZmFjMS4uMGRlY2RjZGM1NWM1YjU2YTViZTBhZDMyMGJmMWUzNWMzNjYxY2VkNCAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbApAQCAtMTAyLDYgKzEwMiw3
IEBAIENSRUFURSBUQUJMRSBjb21taXRzICgKICAgICBjb21taXRfaWQgc2VyaWFsIFBSSU1BUlkg
S0VZLAogICAgIGNvbW1pdF9yZXBvc2l0b3J5IGludGVnZXIgTk9UIE5VTEwgUkVGRVJFTkNFUyBy
ZXBvc2l0b3JpZXMgT04gREVMRVRFIENBU0NBREUsCiAgICAgY29tbWl0X3JldmlzaW9uIHZhcmNo
YXIoNjQpIE5PVCBOVUxMLAorICAgIGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyIHZhcmNoYXIo
NjQpIERFRkFVTFQgTlVMTCwKICAgICBjb21taXRfcHJldmlvdXNfY29tbWl0IGludGVnZXIgUkVG
RVJFTkNFUyBjb21taXRzIE9OIERFTEVURSBDQVNDQURFLAogICAgIGNvbW1pdF90aW1lIHRpbWVz
dGFtcCwKICAgICBjb21taXRfb3JkZXIgaW50ZWdlciwKQEAgLTEwOSw3ICsxMTAsOCBAQCBDUkVB
VEUgVEFCTEUgY29tbWl0cyAoCiAgICAgY29tbWl0X21lc3NhZ2UgdGV4dCwKICAgICBjb21taXRf
cmVwb3J0ZWQgYm9vbGVhbiBOT1QgTlVMTCBERUZBVUxUIEZBTFNFLAogICAgIGNvbW1pdF90ZXN0
YWJpbGl0eSB2YXJjaGFyKDEyOCkgREVGQVVMVCBOVUxMLAotICAgIENPTlNUUkFJTlQgY29tbWl0
X2luX3JlcG9zaXRvcnlfbXVzdF9iZV91bmlxdWUgVU5JUVVFKGNvbW1pdF9yZXBvc2l0b3J5LCBj
b21taXRfcmV2aXNpb24pKTsKKyAgICBDT05TVFJBSU5UIGNvbW1pdF9pbl9yZXBvc2l0b3J5X211
c3RfYmVfdW5pcXVlIFVOSVFVRShjb21taXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uKSwK
KyAgICBDT05TVFJBSU5UIGNvbW1pdF9zdHJpbmdfaWRlbnRpZmllcl9pbl9yZXBvc2l0b3J5X211
c3RfYmVfdW5pcXVlIFVOSVFVRShjb21taXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uX2lk
ZW50aWZpZXIpKTsKIENSRUFURSBJTkRFWCBjb21taXRfdGltZV9pbmRleCBPTiBjb21taXRzKGNv
bW1pdF90aW1lKTsKIENSRUFURSBJTkRFWCBjb21taXRfb3JkZXJfaW5kZXggT04gY29tbWl0cyhj
b21taXRfb3JkZXIpOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWln
cmF0ZS1kYXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWlncmF0ZS1kYXRh
YmFzZS5zcWwKaW5kZXggNDliZDI0OWQyYTY4NTc3NjQ0OWQzNmU4MDUyNjhmY2M0Yjg3N2FjYS4u
ODVkMzU0YzY3ODdmNTg5NThmNGIwMmI0ZDMxYjYyMWI0ZmY1NDJiMiAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL21pZ3JhdGUtZGF0YWJhc2Uuc3FsCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbApAQCAtMyw2ICszLDkgQEAgRE8g
JCQKIEJFR0lOCiBBTFRFUiBUQUJMRSBidWlsZF9yZXF1ZXN0cyBBREQgQ09MVU1OIElGIE5PVCBF
WElTVFMgcmVxdWVzdF9zdGF0dXNfZGVzY3JpcHRpb24gdmFyY2hhcigxMDI0KSBERUZBVUxUIE5V
TEw7CiBBTFRFUiBUQUJMRSBwbGF0Zm9ybXMgQUREIENPTFVNTiAgSUYgTk9UIEVYSVNUUyBwbGF0
Zm9ybV9ncm91cCBpbnRlZ2VyIFJFRkVSRU5DRVMgcGxhdGZvcm1fZ3JvdXBzIERFRkFVTFQgTlVM
TDsKK0FMVEVSIFRBQkxFIGNvbW1pdHMgQUREIENPTFVNTiBJRiBOT1QgRVhJU1RTIGNvbW1pdF9y
ZXZpc2lvbl9pZGVudGlmaWVyIHZhcmNoYXIoNjQpIERFRkFVTFQgTlVMTDsKK0FMVEVSIFRBQkxF
IGNvbW1pdHMgRFJPUCBDT05TVFJBSU5UIGNvbW1pdF9zdHJpbmdfaWRlbnRpZmllcl9pbl9yZXBv
c2l0b3J5X211c3RfYmVfdW5pcXVlOworQUxURVIgVEFCTEUgY29tbWl0cyBBREQgQ09OU1RSQUlO
VCBjb21taXRfc3RyaW5nX2lkZW50aWZpZXJfaW5fcmVwb3NpdG9yeV9tdXN0X2JlX3VuaXF1ZSBV
TklRVUUoY29tbWl0X3JlcG9zaXRvcnksIGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyKTsKIAog
Q1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgcGxhdGZvcm1fZ3JvdXBzICgKICAgICBwbGF0Zm9y
bWdyb3VwX2lkIHNlcmlhbCBQUklNQVJZIEtFWSwKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAK
aW5kZXggNmUwYmVjZDBiYzgxNjRjMDQyZmQzZmIyZjM5OThjNDE1NGZlYjBlMS4uZWYxYzAyNjNi
YTJjMzM5ZTQwNDBjMmI3MjU1NTBkZTMyZGE4OGYzOCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hl
ci5waHAKQEAgLTgsMTQgKzgsMTYgQEAgY2xhc3MgQ29tbWl0TG9nRmV0Y2hlciB7CiAKICAgICBz
dGF0aWMgZnVuY3Rpb24gZmluZF9jb21taXRfaWRfYnlfcmV2aXNpb24oJGRiLCAkcmVwb3NpdG9y
eV9pZCwgJHJldmlzaW9uKQogICAgIHsKLSAgICAgICAgJGNvbW1pdF9yb3dzID0gJGRiLT5xdWVy
eV9hbmRfZmV0Y2hfYWxsKCdTRUxFQ1QgY29tbWl0X2lkIEZST00gY29tbWl0cyBXSEVSRSBjb21t
aXRfcmVwb3NpdG9yeSA9ICQxIEFORCBjb21taXRfcmV2aXNpb24gPSAkMicsIGFycmF5KCRyZXBv
c2l0b3J5X2lkLCAkcmV2aXNpb24pKTsKKyAgICAgICAgJGNvbHVtbl9uYW1lID0gQ29tbWl0TG9n
RmV0Y2hlcjo6aXNfY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXIoJHJldmlzaW9uKSA/ICdjb21t
aXRfcmV2aXNpb25faWRlbnRpZmllcicgOiAnY29tbWl0X3JldmlzaW9uJzsKKyAgICAgICAgCisg
ICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgiU0VMRUNUIGNv
bW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkgPSAkMSBBTkQgJGNv
bHVtbl9uYW1lICA9ICQyIiwgYXJyYXkoJHJlcG9zaXRvcnlfaWQsICRyZXZpc2lvbikpOwogICAg
ICAgICBpZiAoJGNvbW1pdF9yb3dzKQogICAgICAgICAgICAgcmV0dXJuICRjb21taXRfcm93c1sw
XVsnY29tbWl0X2lkJ107CiAKICAgICAgICAgaWYgKCFjdHlwZV9hbG51bSgkcmV2aXNpb24pKQog
ICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICAgICAgJGNvbW1pdF9yb3dzID0gJGRiLT5x
dWVyeV9hbmRfZmV0Y2hfYWxsKCdTRUxFQ1QgY29tbWl0X2lkIEZST00gY29tbWl0cyBXSEVSRSBj
b21taXRfcmVwb3NpdG9yeSA9ICQxIEFORCBjb21taXRfcmV2aXNpb24gTElLRSAkMiBMSU1JVCAy
JywgYXJyYXkoJHJlcG9zaXRvcnlfaWQsIERhdGFiYXNlOjplc2NhcGVfZm9yX2xpa2UoJHJldmlz
aW9uKSAuICclJykpOworICAgICAgICAkY29tbWl0X3Jvd3MgPSAkZGItPnF1ZXJ5X2FuZF9mZXRj
aF9hbGwoIlNFTEVDVCBjb21taXRfaWQgRlJPTSBjb21taXRzIFdIRVJFIGNvbW1pdF9yZXBvc2l0
b3J5ID0gJDEgQU5EICRjb2x1bW5fbmFtZSAgTElLRSAkMiBMSU1JVCAyIiwgYXJyYXkoJHJlcG9z
aXRvcnlfaWQsIERhdGFiYXNlOjplc2NhcGVfZm9yX2xpa2UoJHJldmlzaW9uKSAuICclJykpOwog
ICAgICAgICBpZiAoISRjb21taXRfcm93cykKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAg
ICAgICBpZiAoY291bnQoJGNvbW1pdF9yb3dzKSA+IDEpCkBAIC01NSw2ICs1Nyw3IEBAIGNsYXNz
IENvbW1pdExvZ0ZldGNoZXIgewogICAgIHsKICAgICAgICAgJHN0YXRlbWVudHMgPSAnU0VMRUNU
IGNvbW1pdF9pZCBhcyAiaWQiLAogICAgICAgICAgICAgY29tbWl0X3JldmlzaW9uIGFzICJyZXZp
c2lvbiIsCisgICAgICAgICAgICBjb21taXRfcmV2aXNpb25faWRlbnRpZmllciBhcyAicmV2aXNp
b25JZGVudGlmaWVyIiwKICAgICAgICAgICAgIGNvbW1pdF9wcmV2aW91c19jb21taXQgYXMgInBy
ZXZpb3VzQ29tbWl0IiwKICAgICAgICAgICAgIGNvbW1pdF90aW1lIGFzICJ0aW1lIiwKICAgICAg
ICAgICAgIGNvbW1pdHRlcl9uYW1lIGFzICJhdXRob3JOYW1lIiwKQEAgLTE5Miw4ICsxOTUsMTQg
QEAgY2xhc3MgQ29tbWl0TG9nRmV0Y2hlciB7CiAgICAgICAgIHJldHVybiAkdGhpcy0+Zm9ybWF0
X3NpbmdsZV9jb21taXQoJGNvbW1pdCk7CiAgICAgfQogCisgICAgcHJpdmF0ZSBzdGF0aWMgZnVu
Y3Rpb24gaXNfY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXIoJGNvbW1pdF9yZXZpc2lvbl9vcl9y
ZXZpc2lvbl9pZGVudGlmaWVyKSAKKyAgICB7CisgICAgICAgIHJldHVybiBwcmVnX21hdGNoKCcv
XlxkK0BbXHdcLlwtXSokLycsICRjb21taXRfcmV2aXNpb25fb3JfcmV2aXNpb25faWRlbnRpZmll
cik7CisgICAgfQorCiAgICAgcHJpdmF0ZSBmdW5jdGlvbiBjb21taXRfZm9yX3JldmlzaW9uKCRy
ZXBvc2l0b3J5X2lkLCAkcmV2aXNpb24pIHsKLSAgICAgICAgJGNvbW1pdF9pbmZvID0gYXJyYXko
J3JlcG9zaXRvcnknID0+ICRyZXBvc2l0b3J5X2lkLCAncmV2aXNpb24nID0+ICRyZXZpc2lvbik7
CisgICAgICAgICRjb21taXRfaW5mbyA9IGFycmF5KCdyZXBvc2l0b3J5JyA9PiAkcmVwb3NpdG9y
eV9pZCk7IAorICAgICAgICAkY29tbWl0X2luZm9bJHRoaXMtPmlzX2NvbW1pdF9yZXZpc2lvbl9p
ZGVudGlmaWVyKCRyZXZpc2lvbikgPyAncmV2aXNpb25faWRlbnRpZmllcicgOiAncmV2aXNpb24n
XSA9ICRyZXZpc2lvbjsKICAgICAgICAgJHJvdyA9ICR0aGlzLT5kYi0+c2VsZWN0X2xhc3Rfcm93
KCdjb21taXRzJywgJ2NvbW1pdCcsICRjb21taXRfaW5mbyk7CiAgICAgICAgIGlmICghJHJvdykK
ICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignVW5rbm93bkNvbW1pdCcsICRjb21taXRfaW5m
byk7CkBAIC0yMDEsNyArMjEwLDggQEAgY2xhc3MgQ29tbWl0TG9nRmV0Y2hlciB7CiAgICAgfQog
CiAgICAgcHJpdmF0ZSBmdW5jdGlvbiBjb21taXRfZm9yX3JldmlzaW9uX3ByZWZpeCgkcmVwb3Np
dG9yeV9pZCwgJHJldmlzaW9uX3ByZWZpeCkgewotICAgICAgICAkcm93cyA9ICR0aGlzLT5kYi0+
cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUICogRlJPTSBjb21taXRzIFdIRVJFIGNvbW1pdF9y
ZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF9yZXZpc2lvbiBMSUtFICQyIE9SREVSIEJZIGNvbW1p
dF9yZXZpc2lvbiBMSU1JVCAyJywgYXJyYXkoJHJlcG9zaXRvcnlfaWQsIERhdGFiYXNlOjplc2Nh
cGVfZm9yX2xpa2UoJHJldmlzaW9uX3ByZWZpeCkgLiAnJScpKTsKKyAgICAgICAgJGNvbHVtbl9u
YW1lID0gJHRoaXMtPmlzX2NvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyKCRyZXZpc2lvbl9wcmVm
aXgpID8gJ3JldmlzaW9uX2lkZW50aWZpZXInIDogJ3JldmlzaW9uJzsKKyAgICAgICAgJHJvd3Mg
PSAkdGhpcy0+ZGItPnF1ZXJ5X2FuZF9mZXRjaF9hbGwoIlNFTEVDVCAqIEZST00gY29tbWl0cyBX
SEVSRSBjb21taXRfcmVwb3NpdG9yeSA9ICQxIEFORCBjb21taXRfJGNvbHVtbl9uYW1lIExJS0Ug
JDIgT1JERVIgQlkgY29tbWl0XyRjb2x1bW5fbmFtZSBMSU1JVCAyIiwgYXJyYXkoJHJlcG9zaXRv
cnlfaWQsIERhdGFiYXNlOjplc2NhcGVfZm9yX2xpa2UoJHJldmlzaW9uX3ByZWZpeCkgLiAnJScp
KTsKICAgICAgICAgaWYgKGNvdW50KCRyb3dzKSA9PSAwKQogICAgICAgICAgICAgZXhpdF93aXRo
X2Vycm9yKCdVbmtub3duQ29tbWl0JywgYXJyYXkoJ3JlcG9zaXRvcnknID0+ICRyZXBvc2l0b3J5
X2lkLCAncmV2aXNpb24nID0+ICRyZXZpc2lvbl9wcmVmaXgpKTsKICAgICAgICAgaWYgKGNvdW50
KCRyb3dzKSA9PSAyKSB7CkBAIC0yMjQsNiArMjM0LDcgQEAgY2xhc3MgQ29tbWl0TG9nRmV0Y2hl
ciB7CiAgICAgICAgIHJldHVybiBhcnJheSgKICAgICAgICAgICAgICdpZCcgPT4gJGNvbW1pdF9y
b3dbJ2NvbW1pdF9pZCddLAogICAgICAgICAgICAgJ3JldmlzaW9uJyA9PiAkY29tbWl0X3Jvd1sn
Y29tbWl0X3JldmlzaW9uJ10sCisgICAgICAgICAgICAncmV2aXNpb25JZGVudGlmaWVyJyA9PiAk
Y29tbWl0X3Jvd1snY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXInXSwKICAgICAgICAgICAgICdy
ZXBvc2l0b3J5JyA9PiAkY29tbWl0X3Jvd1snY29tbWl0X3JlcG9zaXRvcnknXSwKICAgICAgICAg
ICAgICdwcmV2aW91c0NvbW1pdCcgPT4gJGNvbW1pdF9yb3dbJ2NvbW1pdF9wcmV2aW91c19jb21t
aXQnXSwKICAgICAgICAgICAgICd0aW1lJyA9PiBEYXRhYmFzZTo6dG9fanNfdGltZSgkY29tbWl0
X3Jvd1snY29tbWl0X3RpbWUnXSksCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL2luY2x1ZGUvY29tbWl0LXVwZGF0ZXIucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocAppbmRleCAwOGM2OGJiZTY0
MTBhZmYwNmRiODc1NDk5MmE0OGM5MzdlNzBlMzJmLi4wNjkxYTg0YmU1ODI2ZmE5MjdmM2MwMjVl
MzdkZThiYjU3MjMyNzFjIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL2luY2x1ZGUvY29tbWl0LXVwZGF0ZXIucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtdXBkYXRlci5waHAKQEAgLTMwLDcgKzMwLDYgQEAg
Y2xhc3MgQ29tbWl0VXBkYXRlciB7CiAgICAgcHJpdmF0ZSBmdW5jdGlvbiB1cGRhdGVfY29tbWl0
KCYkdXBkYXRlLCAkb3duZXJfY29tbWl0X2lkLCAkb3duZXJfcmVwb3NpdG9yeV9pZCwgJHNob3Vs
ZF9pbnNlcnQpCiAgICAgewogICAgICAgICAkY29tbWl0X2RhdGEgPSAmJHRoaXMtPnJlc29sdmVf
ZmllbGRzX2Zyb21fZGF0YWJhc2UoJHVwZGF0ZSwgJG93bmVyX3JlcG9zaXRvcnlfaWQsICRzaG91
bGRfaW5zZXJ0KTsKLQogICAgICAgICAkY29tbWl0X3NlbGVjdF9xdWVyeSA9IGFycmF5KCdyZXBv
c2l0b3J5JyA9PiAkY29tbWl0X2RhdGFbJ3JlcG9zaXRvcnknXSwgJ3JldmlzaW9uJyA9PiAkY29t
bWl0X2RhdGFbJ3JldmlzaW9uJ10pOwogICAgICAgICBpZiAoJHNob3VsZF9pbnNlcnQpIHsKICAg
ICAgICAgICAgICRjb21taXRfaWQgPSAkdGhpcy0+ZGItPnVwZGF0ZV9vcl9pbnNlcnRfcm93KCdj
b21taXRzJywgJ2NvbW1pdCcsICRjb21taXRfc2VsZWN0X3F1ZXJ5LCAkY29tbWl0X2RhdGEpOwpA
QCAtNzQsNiArNzMsNyBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsKICAgICBwcml2YXRlIGZ1bmN0
aW9uICZjb25zdHJ1Y3RfdXBkYXRlX2xpc3QoJiRjb21taXRfaW5mb19saXN0LCAkc2hvdWxkX2lu
c2VydCkKICAgICB7CiAgICAgICAgICR1cGRhdGVfbGlzdCA9IGFycmF5KCk7CisgICAgICAgICRj
b21taXRfcmV2aXNpb25faWRlbnRpZmllcnMgPSBhcnJheSgpOwogCiAgICAgICAgIGZvcmVhY2gg
KCRjb21taXRfaW5mb19saXN0IGFzICYkY29tbWl0X2luZm8pIHsKICAgICAgICAgICAgIHNlbGY6
OnZhbGlkYXRlX2NvbW1pdHMoJGNvbW1pdF9pbmZvKTsKQEAgLTgxLDYgKzgxLDExIEBAIGNsYXNz
IENvbW1pdFVwZGF0ZXIgewogICAgICAgICAgICAgJGhhc191cGRhdGUgPSBjb3VudCgkY29tbWl0
X2RhdGEpID4gMTsKIAogICAgICAgICAgICAgJHVwZGF0ZSA9IGFycmF5KCdjb21taXQnID0+ICYk
Y29tbWl0X2RhdGEsICdyZXBvc2l0b3J5JyA9PiAmJGNvbW1pdF9pbmZvWydyZXBvc2l0b3J5J10p
OworICAgICAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJ3JldmlzaW9uSWRlbnRpZmllcics
ICRjb21taXRfaW5mbykpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygk
Y29tbWl0X2luZm9bJ3JldmlzaW9uSWRlbnRpZmllciddLCAkY29tbWl0X3JldmlzaW9uX2lkZW50
aWZpZXJzKSkKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmV4aXRfd2l0aF9lcnJvcignRHVw
bGljYXRlZFJldmlzaW9uSWRlbnRpZmllcicsIGFycmF5KCdjb21taXQnID0+ICRjb21taXRfaW5m
bykpOworICAgICAgICAgICAgICAgICRjb21taXRfcmV2aXNpb25faWRlbnRpZmllcnNbJGNvbW1p
dF9pbmZvWydyZXZpc2lvbklkZW50aWZpZXInXV0gPSB0cnVlOworICAgICAgICAgICAgfQogICAg
ICAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJ3ByZXZpb3VzQ29tbWl0JywgJGNvbW1pdF9p
bmZvKSkgewogICAgICAgICAgICAgICAgICRoYXNfdXBkYXRlID0gdHJ1ZTsKICAgICAgICAgICAg
ICAgICAkdXBkYXRlWydwcmV2aW91c19jb21taXQnXSA9ICYkY29tbWl0X2luZm9bJ3ByZXZpb3Vz
Q29tbWl0J107CkBAIC0xMDQsNiArMTA5LDcgQEAgY2xhc3MgQ29tbWl0VXBkYXRlciB7CiAKICAg
ICAgICAgICAgICRvd25lZF9jb21taXRfdXBkYXRlX2xpc3QgPSBhcnJheSgpOwogICAgICAgICAg
ICAgZm9yZWFjaCgkY29tbWl0X2luZm9bJ293bmVkQ29tbWl0cyddIGFzICRvd25lZF9yZXBvc2l0
b3J5X25hbWUgPT4gJiRvd25lZF9jb21taXRfaW5mbykgeworICAgICAgICAgICAgICAgIHNlbGY6
OnZhbGlkYXRlX2NvbW1pdHMoJG93bmVkX2NvbW1pdF9pbmZvLCB0cnVlKTsKICAgICAgICAgICAg
ICAgICAkb3duZWRfY29tbWl0ID0gJnNlbGY6OmNvbnN0cnVjdF9jb21taXRfZGF0YSgkb3duZWRf
Y29tbWl0X2luZm8sICRvd25lZF9yZXBvc2l0b3J5X25hbWUsICRzaG91bGRfaW5zZXJ0KTsKICAg
ICAgICAgICAgICAgICAkb3duZWRfY29tbWl0X3VwZGF0ZSA9IGFycmF5KCdjb21taXQnID0+ICYk
b3duZWRfY29tbWl0LCAncmVwb3NpdG9yeScgPT4gJG93bmVkX3JlcG9zaXRvcnlfbmFtZSk7CiAK
QEAgLTE0MywxNSArMTQ5LDE4IEBAIGNsYXNzIENvbW1pdFVwZGF0ZXIgewogICAgICAgICAgICAg
JGNvbW1pdF9kYXRhWyd0aW1lJ10gPSAkY29tbWl0X2luZm9bJ3RpbWUnXTsKICAgICAgICAgfQog
CisgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCdyZXZpc2lvbklkZW50aWZpZXInLCAkY29t
bWl0X2luZm8pKQorICAgICAgICAgICAgJGNvbW1pdF9kYXRhWydyZXZpc2lvbl9pZGVudGlmaWVy
J10gPSAkY29tbWl0X2luZm9bJ3JldmlzaW9uSWRlbnRpZmllciddOworCiAgICAgICAgIGlmICgk
c2hvdWxkX2luc2VydCkKICAgICAgICAgICAgICRjb21taXRfZGF0YVsncmVwb3J0ZWQnXSA9IHRy
dWU7CiAKICAgICAgICAgcmV0dXJuICRjb21taXRfZGF0YTsKICAgICB9CiAKLSAgICBwcml2YXRl
IHN0YXRpYyBmdW5jdGlvbiB2YWxpZGF0ZV9jb21taXRzKCYkY29tbWl0X2luZm8pCisgICAgcHJp
dmF0ZSBzdGF0aWMgZnVuY3Rpb24gdmFsaWRhdGVfY29tbWl0cygmJGNvbW1pdF9pbmZvLCAkaXNf
b3duX2NvbW1pdD1mYWxzZSkKICAgICB7Ci0gICAgICAgIGlmICghYXJyYXlfa2V5X2V4aXN0cygn
cmVwb3NpdG9yeScsICRjb21taXRfaW5mbykpCisgICAgICAgIGlmICghYXJyYXlfa2V5X2V4aXN0
cygncmVwb3NpdG9yeScsICRjb21taXRfaW5mbykgJiYgISRpc19vd25fY29tbWl0KQogICAgICAg
ICAgICAgZXhpdF93aXRoX2Vycm9yKCdNaXNzaW5nUmVwb3NpdG9yeU5hbWUnLCBhcnJheSgnY29t
bWl0JyA9PiAkY29tbWl0X2luZm8pKTsKICAgICAgICAgaWYgKCFhcnJheV9rZXlfZXhpc3RzKCdy
ZXZpc2lvbicsICRjb21taXRfaW5mbykpCiAgICAgICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ01p
c3NpbmdSZXZpc2lvbicsIGFycmF5KCdjb21taXQnID0+ICRjb21taXRfaW5mbykpOwpAQCAtMTYw
LDYgKzE2OSw4IEBAIGNsYXNzIENvbW1pdFVwZGF0ZXIgewogICAgICAgICAgICAgZXhpdF93aXRo
X2Vycm9yKCdJbnZhbGlkQXV0aG9yRm9ybWF0JywgYXJyYXkoJ2NvbW1pdCcgPT4gJGNvbW1pdF9p
bmZvKSk7CiAgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCdwcmV2aW91c0NvbW1pdCcsICRj
b21taXRfaW5mbykpCiAgICAgICAgICAgICByZXF1aXJlX2Zvcm1hdCgnUmV2aXNpb24nLCAkY29t
bWl0X2luZm9bJ3ByZXZpb3VzQ29tbWl0J10sICcvXltBLVphLXowLTkgXC5dKyQvJyk7CisgICAg
ICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCdyZXZpc2lvbklkZW50aWZpZXInLCAkY29tbWl0X2lu
Zm8pKQorICAgICAgICAgICAgcmVxdWlyZV9mb3JtYXQoJ1JldmlzaW9uSWRlbnRpZmllcicsICRj
b21taXRfaW5mb1sncmV2aXNpb25JZGVudGlmaWVyJ10sICcvXlxkK0BbXHdcLlwtXSskLycpOwog
ICAgIH0KIAogICAgIHByaXZhdGUgZnVuY3Rpb24gcmVzb2x2ZV9yZXBvc2l0b3J5KCRyZXBvc2l0
b3J5X25hbWUsICRvd25lcl9yZXBvc2l0b3J5X2lkLCAkc2hvdWxkX2luc2VydCkKZGlmZiAtLWdp
dCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9yZXBvcnQtcHJvY2Vz
c29yLnBocCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9yZXBvcnQt
cHJvY2Vzc29yLnBocAppbmRleCAxYmMxZGI2NDJkYmVmZWY4ZWNiMDcyZTE4YjU3ZTljOTFiYzA3
MjNjLi5hYmVkOGFlMDA4Y2RmYzg0ZDYyMzg3YjJkYTBlOWEyMzQxNmEyNGM3IDEwMDY0NAotLS0g
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3J0LXByb2Nlc3Nv
ci5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL3JlcG9y
dC1wcm9jZXNzb3IucGhwCkBAIC0xNTksMTQgKzE1OSwxNiBAQCBjbGFzcyBSZXBvcnRQcm9jZXNz
b3IgewogICAgICAgICAgICAgICAgICR0aGlzLT5yb2xsYmFja193aXRoX2Vycm9yKCdGYWlsZWRU
b1VwZGF0ZUJ1aWxkUmVxdWVzdCcsIGFycmF5KCdidWlsZFJlcXVlc3QnID0+ICRidWlsZF9yZXF1
ZXN0X2lkLCAnYnVpbGQnID0+ICRidWlsZF9pZCkpOwogICAgICAgICB9CiAKLQogICAgICAgICBm
b3JlYWNoICgkcmV2aXNpb25zIGFzICRyZXBvc2l0b3J5X25hbWUgPT4gJHJldmlzaW9uX2RhdGEp
IHsKICAgICAgICAgICAgICRyZXBvc2l0b3J5X2lkID0gJHRoaXMtPmRiLT5zZWxlY3Rfb3JfaW5z
ZXJ0X3JvdygncmVwb3NpdG9yaWVzJywgJ3JlcG9zaXRvcnknLCBhcnJheSgnbmFtZScgPT4gJHJl
cG9zaXRvcnlfbmFtZSwgJ293bmVyJyA9PiBOVUxMKSk7CiAgICAgICAgICAgICBpZiAoISRyZXBv
c2l0b3J5X2lkKQogICAgICAgICAgICAgICAgICR0aGlzLT5yb2xsYmFja193aXRoX2Vycm9yKCdG
YWlsZWRUb0luc2VydFJlcG9zaXRvcnknLCBhcnJheSgnbmFtZScgPT4gJHJlcG9zaXRvcnlfbmFt
ZSkpOwogCi0gICAgICAgICAgICAkY29tbWl0X2RhdGEgPSBhcnJheSgncmVwb3NpdG9yeScgPT4g
JHJlcG9zaXRvcnlfaWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uX2RhdGFbJ3JldmlzaW9uJ10s
ICd0aW1lJyA9PiBhcnJheV9nZXQoJHJldmlzaW9uX2RhdGEsICd0aW1lc3RhbXAnKSk7Ci0KKyAg
ICAgICAgICAgICRjb21taXRfZGF0YSA9IGFycmF5KAorICAgICAgICAgICAgICAgICdyZXBvc2l0
b3J5JyA9PiAkcmVwb3NpdG9yeV9pZCwgCisgICAgICAgICAgICAgICAgJ3JldmlzaW9uJyA9PiAk
cmV2aXNpb25fZGF0YVsncmV2aXNpb24nXSwgCisgICAgICAgICAgICAgICAgJ3RpbWUnID0+IGFy
cmF5X2dldCgkcmV2aXNpb25fZGF0YSwgJ3RpbWVzdGFtcCcpLCAKKyAgICAgICAgICAgICAgICAn
cmV2aXNpb25faWRlbnRpZmllcicgPT4gYXJyYXlfZ2V0KCRyZXZpc2lvbl9kYXRhLCAncmV2aXNp
b25JZGVudGlmaWVyJywgbnVsbCkpOwogICAgICAgICAgICAgJG1pc21hdGNoaW5nX2NvbW1pdCA9
ICR0aGlzLT5kYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUICogRlJPTSBidWlsZF9jb21t
aXRzLCBjb21taXRzCiAgICAgICAgICAgICAgICAgV0hFUkUgYnVpbGRfY29tbWl0ID0gY29tbWl0
X2lkIEFORCBjb21taXRfYnVpbGQgPSAkMSBBTkQgY29tbWl0X3JlcG9zaXRvcnkgPSAkMiBBTkQg
Y29tbWl0X3JldmlzaW9uICE9ICQzIExJTUlUIDEnLAogICAgICAgICAgICAgICAgIGFycmF5KCRi
dWlsZF9pZCwgJHJlcG9zaXRvcnlfaWQsICRyZXZpc2lvbl9kYXRhWydyZXZpc2lvbiddKSk7CmRp
ZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21t
aXQtbG9nLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29t
bWl0LWxvZy5qcwppbmRleCBlNmQ0ZDQ0YWJiNTU0MTM0NmUyZjRhOWQ0NDAwOWY3OWE3ODI5MDBi
Li5lMmE0ZWVkZjc4Mjc1MWFjZTMyNDk1NmY0MmYyN2ExZWU4OGM1NTZjIDEwMDY0NAotLS0gYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9nLmpzCisr
KyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1sb2cu
anMKQEAgLTIwLDYgKzIwLDcgQEAgY2xhc3MgQ29tbWl0TG9nIGV4dGVuZHMgRGF0YU1vZGVsT2Jq
ZWN0IHsKIAogICAgICAgICBjb25zb2xlLmFzc2VydCgrdGhpcy5fcmF3RGF0YVsndGltZSddID09
ICtyYXdEYXRhWyd0aW1lJ10pOwogICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9yYXdEYXRh
WydyZXZpc2lvbiddID09IHJhd0RhdGFbJ3JldmlzaW9uJ10pOworICAgICAgICBjb25zb2xlLmFz
c2VydCh0aGlzLl9yYXdEYXRhWydyZXZpc2lvbklkZW50aWZpZXInXSA9PSByYXdEYXRhWydyZXZp
c2lvbklkZW50aWZpZXInXSk7CiAKICAgICAgICAgaWYgKHJhd0RhdGEuYXV0aG9yTmFtZSkKICAg
ICAgICAgICAgIHRoaXMuX3Jhd0RhdGEuYXV0aG9yTmFtZSA9IHJhd0RhdGEuYXV0aG9yTmFtZTsK
QEAgLTM5LDYgKzQwLDcgQEAgY2xhc3MgQ29tbWl0TG9nIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0
IHsKICAgICB0ZXN0YWJpbGl0eSgpIHsgcmV0dXJuIHRoaXMuX3Jhd0RhdGFbJ3Rlc3RhYmlsaXR5
J107IH0KICAgICBhdXRob3IoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydhdXRob3JOYW1lJ107
IH0KICAgICByZXZpc2lvbigpIHsgcmV0dXJuIHRoaXMuX3Jhd0RhdGFbJ3JldmlzaW9uJ107IH0K
KyAgICByZXZpc2lvbklkZW50aWZpZXIoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydyZXZpc2lv
bklkZW50aWZpZXInXTsgfQogICAgIG1lc3NhZ2UoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydt
ZXNzYWdlJ107IH0KICAgICB1cmwoKSB7IHJldHVybiB0aGlzLl9yZXBvc2l0b3J5LnVybEZvclJl
dmlzaW9uKHRoaXMuX3Jhd0RhdGFbJ3JldmlzaW9uJ10pOyB9CiAgICAgb3duc0NvbW1pdHMoKSB7
IHJldHVybiB0aGlzLl9yYXdEYXRhWydvd25zQ29tbWl0cyddOyB9CkBAIC00OCwxNSArNTAsMzkg
QEAgY2xhc3MgQ29tbWl0TG9nIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKICAgICBoYXNDb21t
aXRPcmRlcigpIHsgcmV0dXJuIHRoaXMuX3Jhd0RhdGFbJ29yZGVyJ10gIT0gbnVsbDsgfQogICAg
IHNldE93bmVyQ29tbWl0cyhvd25lckNvbW1pdCkgeyB0aGlzLl9vd25lckNvbW1pdCA9IG93bmVy
Q29tbWl0OyB9CiAKLSAgICBsYWJlbCgpCisgICAgbGFiZWwoKSB7IHJldHVybiBDb21taXRMb2cu
Z2V0Zm9ybWF0dHRlZFJldmlzaW9uKHRoaXMucmV2aXNpb24oKSwgdGhpcy5yZXZpc2lvbklkZW50
aWZpZXIoKSk7IH0KKworICAgIHN0YXRpYyBnZXRSZXZpc2lvblR5cGUocmV2aXNpb24pCisgICAg
eworICAgICAgICBpZiAocGFyc2VJbnQocmV2aXNpb24pID09IHJldmlzaW9uKQorICAgICAgICAg
ICAgcmV0dXJuICdzdm4nOworICAgICAgICBpZiAocmV2aXNpb24ubGVuZ3RoID09IDQwKQorICAg
ICAgICAgICAgcmV0dXJuICdnaXQnOworICAgIH0KKworICAgIHN0YXRpYyBnZXRmb3JtYXR0dGVk
UmV2aXNpb24ocmV2aXNpb24sIHJldmlzaW9uSWRlbnRpZmllcj1udWxsKSAKICAgICB7Ci0gICAg
ICAgIGNvbnN0IHJldmlzaW9uID0gdGhpcy5yZXZpc2lvbigpOwotICAgICAgICBpZiAocGFyc2VJ
bnQocmV2aXNpb24pID09IHJldmlzaW9uKSAvLyBlLmcuIHIxMjM0NQotICAgICAgICAgICAgcmV0
dXJuICdyJyArIHJldmlzaW9uOwotICAgICAgICBpZiAocmV2aXNpb24ubGVuZ3RoID09IDQwKSAv
LyBlLmcuIGdpdCBoYXNoCi0gICAgICAgICAgICByZXR1cm4gcmV2aXNpb24uc3Vic3RyaW5nKDAs
IDEyKTsKLSAgICAgICAgcmV0dXJuIHJldmlzaW9uOworICAgICAgICBsZXQgZm9ybWF0dGVkUmV2
aXNpb24gPSByZXZpc2lvbjsKKyAgICAgICAgbGV0IHJldmlzaW9uVHlwZSA9IENvbW1pdExvZy5n
ZXRSZXZpc2lvblR5cGUocmV2aXNpb24pOworICAgICAgICBpZiAocmV2aXNpb25UeXBlID09ICdz
dm4nKSAvLyBlLmcuIHIxMjM0NQorICAgICAgICAgICAgZm9ybWF0dGVkUmV2aXNpb24gPSAncicg
KyByZXZpc2lvbjsKKyAgICAgICAgaWYgKHJldmlzaW9uVHlwZSA9PSAnZ2l0JykgLy8gZS5nLiBn
aXQgaGFzaAorICAgICAgICAgICAgZm9ybWF0dGVkUmV2aXNpb24gPSByZXZpc2lvbi5zdWJzdHJp
bmcoMCwgMTIpOworICAgICAgICBpZiAocmV2aXNpb25JZGVudGlmaWVyKQorICAgICAgICAgICAg
cmV0dXJuIGAke3JldmlzaW9uSWRlbnRpZmllcn0gKCR7Zm9ybWF0dGVkUmV2aXNpb259KWA7Cisg
ICAgICAgIHJldHVybiBmb3JtYXR0ZWRSZXZpc2lvbjsKICAgICB9CisKKyAgICByZXZpc2lvbklk
ZW50aWZpZXJQYXJ0cygpIHsgCisgICAgICAgIGNvbnN0IHJldmlzaW9uSWRlbnRpZmllciA9ICB0
aGlzLnJldmlzaW9uSWRlbnRpZmllcigpOworICAgICAgICBpZiAoIXJldmlzaW9uSWRlbnRpZmll
cikKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICBjb25zdCBpZGVudGlmaWVyUmUg
PSAvKD88bnVtYmVyPlxkKylAKD88YnJhbmNoPltcd1wuXC1dKykvOworICAgICAgICBjb25zdCBt
YXRjaGVzID0gaWRlbnRpZmllclJlLmV4ZWMocmV2aXNpb25JZGVudGlmaWVyKTsKKyAgICAgICAg
Y29uc29sZS5hc3NlcnQobWF0Y2hlcyk7CisgICAgICAgIHJldHVybiBtYXRjaGVzLmdyb3VwczsK
KyAgICB9CisKICAgICB0aXRsZSgpIHsgcmV0dXJuIHRoaXMuX3JlcG9zaXRvcnkubmFtZSgpICsg
JyBhdCAnICsgdGhpcy5sYWJlbCgpOyB9CiAKICAgICBkaWZmKHByZXZpb3VzQ29tbWl0KQpAQCAt
NjgsMTcgKzk0LDI4IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7
CiAgICAgICAgIGlmICghcHJldmlvdXNDb21taXQpCiAgICAgICAgICAgICByZXR1cm4ge3JlcG9z
aXRvcnk6IHJlcG9zaXRvcnksIGxhYmVsOiB0aGlzLmxhYmVsKCksIHVybDogdGhpcy51cmwoKX07
CiAKLSAgICAgICAgY29uc3QgdG8gPSB0aGlzLnJldmlzaW9uKCk7Ci0gICAgICAgIGNvbnN0IGZy
b20gPSBwcmV2aW91c0NvbW1pdC5yZXZpc2lvbigpOwotICAgICAgICBsZXQgbGFiZWwgPSBudWxs
OwotICAgICAgICBpZiAocGFyc2VJbnQoZnJvbSkgPT0gZnJvbSkvLyBlLmcuIHIxMjM0NS4KLSAg
ICAgICAgICAgIGxhYmVsID0gYHIke2Zyb219LXIke3RoaXMucmV2aXNpb24oKX1gOwotICAgICAg
ICBlbHNlIGlmICh0by5sZW5ndGggPT0gNDApIC8vIGUuZy4gZ2l0IGhhc2gKLSAgICAgICAgICAg
IGxhYmVsID0gYCR7ZnJvbS5zdWJzdHJpbmcoMCwgMTIpfS4uJHt0by5zdWJzdHJpbmcoMCwgMTIp
fWA7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGxhYmVsID0gYCR7ZnJvbX0gLSAke3RvfWA7
Ci0KLSAgICAgICAgcmV0dXJuIHtyZXBvc2l0b3J5OiByZXBvc2l0b3J5LCBsYWJlbDogbGFiZWws
IHVybDogcmVwb3NpdG9yeS51cmxGb3JSZXZpc2lvblJhbmdlKGZyb20sIHRvKX07CisgICAgICAg
IGNvbnN0IHRvUmV2aXNpb24gPSB0aGlzLnJldmlzaW9uKCk7CisgICAgICAgIGNvbnN0IGZyb21S
ZXZpc2lvbiA9IHByZXZpb3VzQ29tbWl0LnJldmlzaW9uKCk7CisgICAgICAgIGNvbnN0IHRvUmV2
aXNpb25JZGVudGlmaWVyUGFydHMgPSB0aGlzLnJldmlzaW9uSWRlbnRpZmllclBhcnRzKCk7Cisg
ICAgICAgIGNvbnN0IGZyb21SZXZpc2lvbklkZW50aWZpZXJQYXJ0cyA9IHByZXZpb3VzQ29tbWl0
LnJldmlzaW9uSWRlbnRpZmllclBhcnRzKCk7CisgICAgICAgIGNvbnN0IHJldmlzaW9uVHlwZSA9
IENvbW1pdExvZy5nZXRSZXZpc2lvblR5cGUodG9SZXZpc2lvbik7CisgICAgICAgIGxldCBjb25u
ZWN0b3IgPSAnIC0gJzsKKyAgICAgICAgaWYgKHJldmlzaW9uVHlwZSA9PSAnZ2l0JykKKyAgICAg
ICAgICAgIGNvbm5lY3RvciA9ICcuLic7CisgICAgICAgIGlmIChyZXZpc2lvblR5cGUgPT0gJ3N2
bicpCisgICAgICAgICAgICBjb25uZWN0b3IgPSAnLSc7CisgICAgICAgIGxldCBsYWJlbCA9IGAk
e3ByZXZpb3VzQ29tbWl0LmxhYmVsKCl9JHtjb25uZWN0b3J9JHt0aGlzLmxhYmVsKCl9YDsKKyAg
ICAgICAgaWYgKGZyb21SZXZpc2lvbklkZW50aWZpZXJQYXJ0cyB8fCB0b1JldmlzaW9uSWRlbnRp
ZmllclBhcnRzKSB7CisgICAgICAgICAgICBpZiAoZnJvbVJldmlzaW9uSWRlbnRpZmllclBhcnRz
ICYmIHRvUmV2aXNpb25JZGVudGlmaWVyUGFydHMpIHsKKyAgICAgICAgICAgICAgICBjb25zb2xl
LmFzc2VydChmcm9tUmV2aXNpb25JZGVudGlmaWVyUGFydHMuYnJhbmNoID09IHRvUmV2aXNpb25J
ZGVudGlmaWVyUGFydHMuYnJhbmNoKTsKKyAgICAgICAgICAgICAgICBsYWJlbCA9IGAke2Zyb21S
ZXZpc2lvbklkZW50aWZpZXJQYXJ0cy5udW1iZXJ9IC0gJHt0b1JldmlzaW9uSWRlbnRpZmllclBh
cnRzLm51bWJlcn1AJHtmcm9tUmV2aXNpb25JZGVudGlmaWVyUGFydHMuYnJhbmNofSAoJHtDb21t
aXRMb2cuZ2V0Zm9ybWF0dHRlZFJldmlzaW9uKGZyb21SZXZpc2lvbil9JHtjb25uZWN0b3J9JHtD
b21taXRMb2cuZ2V0Zm9ybWF0dHRlZFJldmlzaW9uKHRvUmV2aXNpb24pfSlgCisgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNvbm5lY3RvciA9ICcgLSAnOworICAgICAgICAg
ICAgICAgIGxhYmVsID0gYCR7cHJldmlvdXNDb21taXQubGFiZWwoKX0ke2Nvbm5lY3Rvcn0ke3Ro
aXMubGFiZWwoKX1gOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJu
IHtyZXBvc2l0b3J5OiByZXBvc2l0b3J5LCBsYWJlbDogbGFiZWwsIHVybDogcmVwb3NpdG9yeS51
cmxGb3JSZXZpc2lvblJhbmdlKGZyb21SZXZpc2lvbiwgdG9SZXZpc2lvbil9OwogICAgIH0KIAog
ICAgIHN0YXRpYyBmZXRjaExhdGVzdENvbW1pdEZvclBsYXRmb3JtKHJlcG9zaXRvcnksIHBsYXRm
b3JtKQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9h
cGktY29tbWl0cy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvYXBpLWNvbW1pdHMtdGVzdHMuanMKaW5kZXggMjg1NjlmMDYzNzMwNGUzYTYyY2Y3NzAwOTIz
OTNmN2YwZTczNjU5Ny4uYTMzMTIxYTBlYzExYWYzMDE0ZWZmNDRlOTAwMmNiYjAxZTRjMDRkZiAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29t
bWl0cy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L2FwaS1jb21taXRzLXRlc3RzLmpzCkBAIC0xNyw2ICsxNyw3IEBAIGRlc2NyaWJlKCIvYXBpL2Nv
bW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJy
ZXBvc2l0b3J5IjogIldlYktpdCIsCiAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0
OCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxODQyNzZAbWFpbiIs
CiAgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMjo1MjozNC41NzdaIiwKICAg
ICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIlphbGFuIEJ1anRhcyIsICJhY2NvdW50
IjogInphbGFuQGFwcGxlLmNvbSJ9LAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImEgbWVz
c2FnZSIsCkBAIC0yNCw2ICsyNSw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldl
YktpdCIsCiAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OSIsCisgICAgICAgICAg
ICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxODQyNzdAbWFpbiIsCiAgICAgICAgICAgICAg
ICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMzoyMzo1MC42NDVaIiwKICAgICAgICAgICAgICAgICAi
YXV0aG9yIjogeyJuYW1lIjogIkNocmlzIER1bWV6IiwgImFjY291bnQiOiAiY2R1bWV6QGFwcGxl
LmNvbSJ9LAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogInNvbWUgbWVzc2FnZSIsCkBAIC0z
MiwxMiArMzQsNTMgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKICAgICAgICAgICAgICAgICAi
cHJldmlvdXNDb21taXQiOiAiMjEwOTQ5IiwKICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAi
MjEwOTUwIiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3OEBt
YWluIiwKICAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjQ5OjM3Ljg4N1oi
LAogICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFj
Y291bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmcifSwKICAgICAgICAgICAgICAgICAibWVz
c2FnZSI6ICJhbm90aGVyIG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgXQorICAg
IH07CisKKyAgICBjb25zdCBzdWJjZXJzaW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25JZGVudGlm
aWVyID0geworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2
ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAg
ICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9u
SWRlbnRpZmllciI6ICIxODQyNzZAbWFpbiIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAx
Ny0wMS0yMFQwMjo1MjozNC41NzdaIiwKKyAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1l
IjogIlphbGFuIEJ1anRhcyIsICJhY2NvdW50IjogInphbGFuQGFwcGxlLmNvbSJ9LAorICAgICAg
ICAgICAgICAgICJtZXNzYWdlIjogImEgbWVzc2FnZSIsCisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAg
ICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OSIsCisgICAgICAgICAgICAgICAgInJldmlzaW9u
SWRlbnRpZmllciI6ICIxODQyNzdAbWFpbiIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAx
Ny0wMS0yMFQwMzoyMzo1MC42NDVaIiwKKyAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1l
IjogIkNocmlzIER1bWV6IiwgImFjY291bnQiOiAiY2R1bWV6QGFwcGxlLmNvbSJ9LAorICAgICAg
ICAgICAgICAgICJtZXNzYWdlIjogInNvbWUgbWVzc2FnZSIsCisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAg
ICAgICAgICAgICAgInByZXZpb3VzQ29tbWl0IjogIjIxMDk0OSIsCisgICAgICAgICAgICAgICAg
InJldmlzaW9uIjogIjIxMDk1MCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmll
ciI6ICIxODQyNzhAbWFpbiIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQw
Mzo0OTozNy44ODdaIiwKKyAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNvbW1p
dCBRdWV1ZSIsICJhY2NvdW50IjogImNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnIn0sCisgICAgICAg
ICAgICAgICAgIm1lc3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdlIiwKKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKKyAg
ICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTUxIiwKKyAgICAgICAgICAgICAgICAicmV2
aXNpb25JZGVudGlmaWVyIjogIjE4NDI3OEBzb21ldGhpbmciLAorICAgICAgICAgICAgICAgICJ0
aW1lIjogIjIwMTctMDEtMjBUMDM6NDk6NDAuODg3WiIsCisgICAgICAgICAgICAgICAgImF1dGhv
ciI6IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Vi
a2l0Lm9yZyJ9LAorICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImFub3RoZXIgbWVzc2FnZSIs
CiAgICAgICAgICAgICB9CiAgICAgICAgIF0KLSAgICB9CisgICAgfTsKIAogICAgIGNvbnN0IGNv
bW1pdHNPbmVQcmVmaXhPZlRoZU90aGVyID0gewogICAgICAgICAic2xhdmVOYW1lIjogInNvbWVT
bGF2ZSIsCkBAIC00Niw2ICs4OSw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldl
YktpdCIsCiAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0IiwKKyAgICAgICAgICAg
ICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3MkBtYWluIiwKICAgICAgICAgICAgICAg
ICAidGltZSI6ICIyMDE3LTAxLTIwVDAyOjUyOjM0LjU3N1oiLAogICAgICAgICAgICAgICAgICJh
dXRob3IiOiB7Im5hbWUiOiAiWmFsYW4gQnVqdGFzIiwgImFjY291bnQiOiAiemFsYW5AYXBwbGUu
Y29tIn0sCiAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYSBtZXNzYWdlIiwKQEAgLTUzLDYg
Kzk3LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKICAgICAgICAg
ICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQ5IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25J
ZGVudGlmaWVyIjogIjE4NDI3N0BtYWluIiwKICAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3
LTAxLTIwVDAzOjIzOjUwLjY0NVoiLAogICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUi
OiAiQ2hyaXMgRHVtZXoiLCAiYWNjb3VudCI6ICJjZHVtZXpAYXBwbGUuY29tIn0sCiAgICAgICAg
ICAgICAgICAgIm1lc3NhZ2UiOiAic29tZSBtZXNzYWdlIiwKQEAgLTUyNCw2ICs1NjksNDEgQEAg
ZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KTsK
ICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gY29tbWl0IHdpdGggY29t
bWl0IHJldmlzaW9uIGxhYmVsIiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgYXdhaXQgYWRk
U2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpOworICAgICAgICAgICAgY29uc3QgcmVz
cG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9y
dC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXRzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgY29uc3QgcmVz
dWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKGAvYXBpL2NvbW1pdHMv
V2ViS2l0LyR7c3VidmVyc2lvbkNvbW1pdHMuY29tbWl0c1swXS5yZXZpc2lvbklkZW50aWZpZXJ9
YCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09L
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0LmNvbW1pdHMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3Vs
dC5jb21taXRzWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0cy5jb21taXRzWzBdKTsKKyAgICAgICAgfSk7
CisKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gJ0FtYmlndW91c1JldmlzaW9uUHJlZml4JyB3
aGVuIG1vcmUgdGhhbiBvbmUgY29tbWl0cyBhcmUgZm91bmQgZm9yIGEgcmV2aXNpb24gbGFiZWwg
cHJlZml4IiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29uc3QgcmVtb3RlID0gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKTsKKyAgICAgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1
YmNlcnNpb25Db21taXRzV2l0aEZha2VSZXZpc2lvbklkZW50aWZpZXIpOworICAgICAgICAgICAg
YXdhaXQgcmVtb3RlLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBz
dWJjZXJzaW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25JZGVudGlmaWVyKTsKKyAgICAgICAgICAg
IGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0
LzE4NDI3OEA/cHJlZml4LW1hdGNoPXRydWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnQW1iaWd1b3VzUmV2aXNpb25QcmVmaXgnKTsKKyAgICAg
ICAgfSk7CisKKyAgICAgICAgaXQoInNob3VsZCBub3QgcmV0dXJuICdBbWJpZ3VvdXNSZXZpc2lv
blByZWZpeCcgd2hlbiB0aGVyZSBpcyBhIGNvbW1pdCByZXZpc2lvbiBsYWJlbCBleHRyYWN0IG1h
dGNoZXMgc3BlY2lmaWVkIHJldmlzaW9uIHByZWZpeCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAg
ICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7CisgICAgICAgICAgICBh
d2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJjZXJzaW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25J
ZGVudGlmaWVyKTsKKyAgICAgICAgICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMo
Jy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3ViY2Vyc2lvbkNvbW1pdHNXaXRoRmFrZVJldmlzaW9u
SWRlbnRpZmllcik7CisgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0
SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8xODQyNzhAbWFpbj9wcmVmaXgtbWF0Y2g9dHJ1ZScp
OworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQo
cmVzdWx0Wydjb21taXRzJ11bMF0sIHN1YmNlcnNpb25Db21taXRzV2l0aEZha2VSZXZpc2lvbklk
ZW50aWZpZXJbJ2NvbW1pdHMnXVsyXSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCJzaG91
bGQgcmV0dXJuICdVbmtub3duQ29tbWl0JyB3aGVuIG5vIGNvbW1pdCBpcyBmb3VuZCBmb3IgYSBy
ZXZpc2lvbiBsYWJlbCBwcmVmaXgiLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBy
ZW1vdGUgPSBUZXN0U2VydmVyLnJlbW90ZUFQSSgpOworICAgICAgICAgICAgYXdhaXQgYWRkU2xh
dmVGb3JSZXBvcnQoc3ViY2Vyc2lvbkNvbW1pdHNXaXRoRmFrZVJldmlzaW9uSWRlbnRpZmllcik7
CisgICAgICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9y
dC1jb21taXRzLycsIHN1YmNlcnNpb25Db21taXRzV2l0aEZha2VSZXZpc2lvbklkZW50aWZpZXIp
OworICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVtb3RlLmdldEpTT04oJy9hcGkv
Y29tbWl0cy9XZWJLaXQvMTg0Mjc4QHg/cHJlZml4LW1hdGNoPXRydWUnKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnVW5rbm93bkNvbW1pdCcpOwor
ICAgICAgICB9KTsKICAgICB9KTsKIAogICAgIGRlc2NyaWJlKCcvYXBpL2NvbW1pdHMvPHJlcG9z
aXRvcnk+L293bmVkLWNvbW1pdHM/b3duZXItcmV2aXNpb249PGNvbW1pdD4nLCAoKSA9PiB7CkBA
IC03MjcsNiArODA3LDMzIEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCisgICAgICAgIGl0KCJzaG91bGQgcmV0
dXJuIHJlcG9ydGVkIGNvbW1pdHMgaW4gdGhlIHNwZWNpZmllZCByZXZpc2lvbiBsYWJlbCByYW5n
ZSIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRh
YmFzZSgpOworICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7J2lk
JzogMSwgJ25hbWUnOiAnV2ViS2l0J30pOworICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdj
b21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk0OCcsICdyZXZpc2lv
bl9pZGVudGlmaWVyJzogJzE4NDI3NkBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMjo1Mjoz
NC41NzdaJywgJ3JlcG9ydGVkJzogdHJ1ZX0pOworICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0
KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk0OScsICdyZXZp
c2lvbl9pZGVudGlmaWVyJzogJzE4NDI3N0BtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMzoy
Mzo1MC42NDVaJywgJ3JlcG9ydGVkJzogdHJ1ZX0pOworICAgICAgICAgICAgYXdhaXQgZGIuaW5z
ZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk1MCcsICdy
ZXZpc2lvbl9pZGVudGlmaWVyJzogJzE4NDI3OEBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQw
Mzo0OTozNy44ODdaJywgJ3JlcG9ydGVkJzogdHJ1ZX0pOworICAgICAgICAgICAgY29uc3QgcmVz
dWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMv
V2ViS2l0Lz9wcmVjZWRpbmdSZXZpc2lvbj0xODQyNzZAbWFpbiZsYXN0UmV2aXNpb249MTg0Mjc4
QG1haW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21t
aXRzJ10ubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3Vi
bWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCB7CisgICAgICAgICAgICAgICAgcHJldmlvdXND
b21taXQ6IG51bGwsCisgICAgICAgICAgICAgICAgcmV2aXNpb246ICcyMTA5NDknLAorICAgICAg
ICAgICAgICAgIHJldmlzaW9uSWRlbnRpZmllcjogJzE4NDI4OUBtYWluJywKKyAgICAgICAgICAg
ICAgICB0aW1lOiAnMjAxNy0wMS0yMFQwMzoyMzo1MC42NDVaJywKKyAgICAgICAgICAgICAgICBh
dXRob3I6IHtuYW1lOiBudWxsLCBhY2NvdW50OiBudWxsfSwKKyAgICAgICAgICAgICAgICBtZXNz
YWdlOiBudWxsLAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBhc3NlcnRDb21taXRJc1Nh
bWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVsxXSwgeworICAgICAgICAgICAgICAg
IHByZXZpb3VzQ29tbWl0OiBudWxsLAorICAgICAgICAgICAgICAgIHJldmlzaW9uOiAnMjEwOTUw
JywKKyAgICAgICAgICAgICAgICByZXZpc2lvbklkZW50aWZpZXI6ICcxODQyOTBAbWFpbicsCisg
ICAgICAgICAgICAgICAgdGltZTogJzIwMTctMDEtMjBUMDM6NDk6MzcuODg3WicsCisgICAgICAg
ICAgICAgICAgYXV0aG9yOiB7bmFtZTogbnVsbCwgYWNjb3VudDogbnVsbH0sCisgICAgICAgICAg
ICAgICAgbWVzc2FnZTogbnVsbCwKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKwogICAg
ICAgICBpdCgic2hvdWxkIG5vdCBpbmNsdWRlIGEgcmV2aXNpb24gbm90IHdpdGhpbiB0aGUgc3Bl
Y2lmaWVkIHJhbmdlIiwgKCkgPT4gewogICAgICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVy
LmRhdGFiYXNlKCk7CiAgICAgICAgICAgICBjb25zdCByZW1vdGUgPSBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpOwpAQCAtNzUwLDYgKzg1NywyMyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIAorICAgICAgICBpdCgi
c2hvdWxkIG5vdCBpbmNsdWRlIGEgcmV2aXNpb24gbm90IHdpdGhpbiB0aGUgc3BlY2lmaWVkIGNv
bW1pdCByZXZpc2lvbiBsYWJlbCByYW5nZSIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNv
bnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICAgICAgY29uc3QgcmVtb3Rl
ID0gVGVzdFNlcnZlci5yZW1vdGVBUEkoKTsKKyAgICAgICAgICAgIGF3YWl0IGRiLmluc2VydCgn
cmVwb3NpdG9yaWVzJywgeydpZCc6IDEsICduYW1lJzogJ1dlYktpdCd9KSwKKyAgICAgICAgICAg
IGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6
ICcyMTA5NDcnLCAncmV2aXNpb25faWRlbnRpZmllcic6ICcxODQyNzVAbWFpbicsICd0aW1lJzog
JzIwMTctMDEtMjBUMDI6Mzg6NDUuNDg1WicsICdyZXBvcnRlZCc6IGZhbHNlfSk7CisgICAgICAg
ICAgICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNp
b24nOiAnMjEwOTQ4JywgJ3JldmlzaW9uX2lkZW50aWZpZXInOiAnMTg0Mjc2QG1haW4nLCAndGlt
ZSc6ICcyMDE3LTAxLTIwVDAyOjUyOjM0LjU3N1onLCAncmVwb3J0ZWQnOiBmYWxzZX0pOworICAg
ICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3Jl
dmlzaW9uJzogJzIxMDk0OScsICdyZXZpc2lvbl9pZGVudGlmaWVyJzogJzE4NDI3N0BtYWluJywg
J3RpbWUnOiAnMjAxNy0wMS0yMFQwMzoyMzo1MC42NDVaJywgJ3JlcG9ydGVkJzogZmFsc2V9KTsK
KyAgICAgICAgICAgIGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEs
ICdyZXZpc2lvbic6ICcyMTA5NTAnLCAncmV2aXNpb25faWRlbnRpZmllcic6ICcxODQyNzhAbWFp
bicsICd0aW1lJzogJzIwMTctMDEtMjBUMDM6NDk6MzcuODg3WicsICdyZXBvcnRlZCc6IGZhbHNl
fSk7CisgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0
cyk7CisgICAgICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3Jl
cG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXRzKTsKKyAgICAgICAgICAgIGNvbnN0IHJl
c3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRp
bmdSZXZpc2lvbj0xODQyNzVAbWFpbiZsYXN0UmV2aXNpb249MTg0Mjc3QG1haW4nKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAy
KTsKKyAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsn
Y29tbWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzBdKTsKKyAgICAgICAg
ICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzFd
LCBzdWJ2ZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzFdKTsKKyAgICAgICAgfSk7CisKICAgICB9
KTsKIAogfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL2FwaS1yZXBvcnQtY29tbWl0cy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCmluZGV4IGI0ZWU3MjZm
MzU1MzAyYWIxOGQ2YzczNmNiYjQwYzMwYzRiMTg1OWIuLjllNmEwMGE5NzdmYTIxYjk0NGY0OWRj
YWYxZTc2ZDc5ZWQ0MzZmYzEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCkBA
IC0yNiw2ICsyNiwyMCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNl
cnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0KICAgICAgICAgXSwKICAgICB9
OworICAgIGNvbnN0IHN1YnZlcnNpb25Db21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyID0gewor
ICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3Jk
IjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAg
InJldmlzaW9uIjogIjE0MTk3NyIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmll
ciI6ICIxMjcyMzFAbWFpbiIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxMy0wMi0wNlQw
ODo1NToyMC45WiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQg
UXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Via2l0Lm9yZyJ9LAorICAgICAgICAg
ICAgICAgICJtZXNzYWdlIjogInNvbWUgbWVzc2FnZSIsCisgICAgICAgICAgICB9CisgICAgICAg
IF0sCisgICAgfTsKICAgICBjb25zdCBzdWJ2ZXJzaW9uSW52YWxpZENvbW1pdCA9IHsKICAgICAg
ICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAogICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJz
b21lUGFzc3dvcmQiLApAQCAtNzYsNiArOTAsNDQgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNv
bW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIF0KICAgICB9
CiAKKyAgICBjb25zdCBkdXBsaWNhdGVkQ29tbWl0UmV2aXNpb25JZGVudGlmaWVyQ29tbWl0cyA9
IHsKKyAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAorICAgICAgICAic2xhdmVQYXNz
d29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAiY29tbWl0cyI6IFsKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAorICAgICAgICAgICAg
ICAgICJyZXZpc2lvbiI6ICIyMTA5NDgiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50
aWZpZXIiOiAiMTg0Mjc2QG1haW4iLAorICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEt
MjBUMDI6NTI6MzQuNTc3WiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJa
YWxhbiBCdWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKKyAgICAgICAgICAg
ICAgICAibWVzc2FnZSI6ICJhIG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAorICAgICAgICAgICAg
ICAgICJyZXZpc2lvbiI6ICIyMTA5NDkiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50
aWZpZXIiOiAiMTg0Mjc2QG1haW4iLAorICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEt
MjBUMDM6MjM6NTAuNjQ1WiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJD
aHJpcyBEdW1leiIsICJhY2NvdW50IjogImNkdW1lekBhcHBsZS5jb20ifSwKKyAgICAgICAgICAg
ICAgICAibWVzc2FnZSI6ICJzb21lIG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAg
XQorICAgIH0KKworICAgIGNvbnN0IGludmFsaWRDb21taXRSZXZpc2lvbklkZW50aWZpZXJDb21t
aXRzID0geworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2
ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAg
ICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9u
SWRlbnRpZmllciI6ICIxODQyNzYiLAorICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEt
MjBUMDI6NTI6MzQuNTc3WiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJa
YWxhbiBCdWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKKyAgICAgICAgICAg
ICAgICAibWVzc2FnZSI6ICJhIG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgXQor
ICAgIH0KKwogICAgIGl0KCJzaG91bGQgcmVqZWN0IGVycm9yIHdoZW4gc2xhdmUgbmFtZSBpcyBt
aXNzaW5nIiwgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5w
b3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCB7fSkudGhlbigocmVzcG9uc2UpID0+IHsK
ICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNz
aW5nU2xhdmVOYW1lJyk7CkBAIC0xNDUsNiArMTk3LDIyIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9y
dC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KTsK
ICAgICB9KTsKIAorICAgIGl0KCJzaG91bGQgcmVqZWN0IGFuIGludmFsaWQgcmV2aXNpb24gbGFi
ZWwiLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZl
cnNpb25Db21taXQpOworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgaW52YWxpZENvbW1p
dFJldmlzaW9uSWRlbnRpZmllckNvbW1pdHMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJldmlzaW9uSWRlbnRpZmllcicpOworICAgICAg
ICBjb25zdCByb3dzID0gYXdhaXQgVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnY29t
bWl0cycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDApOworICAg
IH0pOworCisgICAgaXQoInNob3VsZCByZWplY3Qgd2l0aCBkdXBsaWNhdGVkIGNvbW1pdCByZXZp
c2lvbiBsYWJlbHMiLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVw
b3J0KHN1YnZlcnNpb25Db21taXQpOworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgZHVw
bGljYXRlZENvbW1pdFJldmlzaW9uSWRlbnRpZmllckNvbW1pdHMpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnRHVwbGljYXRlZFJldmlzaW9uSWRlbnRp
ZmllcicpOworICAgICAgICBjb25zdCByb3dzID0gYXdhaXQgVGVzdFNlcnZlci5kYXRhYmFzZSgp
LnNlbGVjdEFsbCgnY29tbWl0cycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5s
ZW5ndGgsIDApOworICAgIH0pOworCiAgICAgaXQoInNob3VsZCBzdG9yZSB0d28gY29tbWl0cyBm
cm9tIGEgdmFsaWQgc2xhdmUiLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJl
cG9ydChzdWJ2ZXJzaW9uVHdvQ29tbWl0cykudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8n
LCBzdWJ2ZXJzaW9uVHdvQ29tbWl0cyk7CkBAIC0yMTUsNiArMjgzLDI1IEBAIGRlc2NyaWJlKCIv
YXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAg
ICAgICB9KTsKICAgICB9KTsKIAorICAgIGl0KCJzaG91bGQgdXBkYXRlIGFuIGV4aXN0aW5nIGNv
bW1pdCB3aXRoIGNvbW1pdCBsYWJlbCBpZiB0aGVyZSBpcyBvbmUiLCBhc3luYyAoKSA9PiB7Cisg
ICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBjb25zdCBy
ZXBvcnRlZERhdGEgPSBzdWJ2ZXJzaW9uQ29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllci5jb21t
aXRzWzBdOworICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0
V2l0aFJldmlzaW9uSWRlbnRpZmllcik7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgncmVwb3Np
dG9yaWVzJywgeydpZCc6IDEsICduYW1lJzogJ1dlYktpdCd9KSwKKyAgICAgICAgYXdhaXQgZGIu
aW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogcmVwb3J0ZWRE
YXRhWydyZXZpc2lvbiddLCAndGltZSc6IHJlcG9ydGVkRGF0YVsndGltZSddfSkKKyAgICAgICAg
Y29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcv
YXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXRXaXRoUmV2aXNpb25JZGVudGlm
aWVyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09L
Jyk7CisgICAgICAgIGNvbnN0IGNvbW1pdHMgPSBhd2FpdCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHMn
KTsKKyAgICAgICAgY29uc3QgY29tbWl0dGVycyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgnY29tbWl0
dGVycycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDEpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVycy5sZW5ndGgsIDEpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFb
J21lc3NhZ2UnXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydyZXZp
c2lvbl9pZGVudGlmaWVyJ10sIHJlcG9ydGVkRGF0YVsncmV2aXNpb25JZGVudGlmaWVyJ10pOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1p
dHRlcnNbMF1bJ2lkJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1sw
XVsnbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1
dGhvciddWydhY2NvdW50J10pOworICAgIH0pOworCiAgICAgaXQoInNob3VsZCBub3QgdXBkYXRl
IGFuIHVucmVsYXRlZCBjb21taXQiLCAoKSA9PiB7CiAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNl
cnZlci5kYXRhYmFzZSgpOwogICAgICAgICBjb25zdCBmaXJzdERhdGEgPSBzdWJ2ZXJzaW9uVHdv
Q29tbWl0cy5jb21taXRzWzBdOwpAQCAtNTkwLDYgKzY3NywxMTEgQEAgZGVzY3JpYmUoIi9hcGkv
cmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT3duZWRDb21taXRT
aG91bGROb3RDb250YWluVGltZXN0YW1wJyk7CiAgICAgICAgIH0pOwogICAgIH0pOworCisgICAg
Y29uc3QgaW52YWxpZE93bmVkQ29tbWl0VXNlUmV2aXNpb25JZGVudGlmaWVyQXNSZXZpc29uID0g
eworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3
b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIk9TWCIsCisgICAgICAgICAgICAgICAg
InJldmlzaW9uIjogIlNpZXJyYTE2RDMyIiwKKyAgICAgICAgICAgICAgICAib3JkZXIiOiAxLAor
ICAgICAgICAgICAgICAgICJvd25lZENvbW1pdHMiOiB7CisgICAgICAgICAgICAgICAgICAgICJX
ZWJLaXQiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTI3MjMyQG1h
aW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQg
UXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Via2l0Lm9yZyJ9LAorICAgICAgICAg
ICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiV2ViS2l0IENvbW1pdCIsCisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIF0KKyAg
ICB9OworCisgICAgaXQoInNob3VsZCByZWplY3QgaW5zZXJ0aW5nIG9uZSBjb21taXQgd2l0aCBv
d25lZCBjb21taXRzIHRoYXQgdXNlIHJldmlzaW9uIGxhYmVsIGFzIHJldmlzaW9uIiwgYXN5bmMg
KCkgPT4geworICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChpbnZhbGlkT3duZWRDb21t
aXRVc2VSZXZpc2lvbklkZW50aWZpZXJBc1Jldmlzb24pOworICAgICAgICBjb25zdCByZXNwb25z
ZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNv
bW1pdHMvJywgaW52YWxpZE93bmVkQ29tbWl0VXNlUmV2aXNpb25JZGVudGlmaWVyQXNSZXZpc29u
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFs
aWRSZXZpc2lvbicpOworICAgIH0pOworCisgICAgY29uc3QgaW52YWxpZFJldmlzaW9uSWRlbnRp
Zmllck93bmVkQ29tbWl0ID0geworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisg
ICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRz
IjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIk9TWCIs
CisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIlNpZXJyYTE2RDMyIiwKKyAgICAgICAgICAg
ICAgICAib3JkZXIiOiAxLAorICAgICAgICAgICAgICAgICJvd25lZENvbW1pdHMiOiB7CisgICAg
ICAgICAgICAgICAgICAgICJXZWJLaXQiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAicmV2
aXNpb24iOiAiMTQxOTc4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50
aWZpZXIiOiAiMTI3MjMyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5h
bWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmci
fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIldlYktpdCBDb21taXQiLAor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
ICAgICAgICBdCisgICAgfTsKKworICAgIGl0KCJzaG91bGQgcmVqZWN0IGluc2VydGluZyBvbmUg
Y29tbWl0IHdpdGggb3duZWQgY29tbWl0cyB0aGF0IGhhdmUgaW52YWxpZCByZXZpc2lvbiBsYWJl
bCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoaW52YWxp
ZFJldmlzaW9uSWRlbnRpZmllck93bmVkQ29tbWl0KTsKKyAgICAgICAgY29uc3QgcmVzcG9uc2Ug
PSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21t
aXRzLycsIGludmFsaWRSZXZpc2lvbklkZW50aWZpZXJPd25lZENvbW1pdCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmV2aXNpb25JZGVu
dGlmaWVyJyk7CisgICAgfSk7CisKKyAgICBjb25zdCBpbnZhbGlkQXV0aG9yT3duZWRDb21taXQg
PSB7CisgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAgICAgICAgInNsYXZlUGFz
c3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgImNvbW1pdHMiOiBbCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiT1NYIiwKKyAgICAgICAgICAgICAg
ICAicmV2aXNpb24iOiAiU2llcnJhMTZEMzIiLAorICAgICAgICAgICAgICAgICJvcmRlciI6IDEs
CisgICAgICAgICAgICAgICAgIm93bmVkQ29tbWl0cyI6IHsKKyAgICAgICAgICAgICAgICAgICAg
IldlYktpdCI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNDE5Nzgi
LAorICAgICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxMjcyMzJA
bWFpbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAiYXV0aG9yIjogbnVsbCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIldlYktpdCBDb21taXQiLAorICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICBdCisg
ICAgfTsKKyAgICBpdCgic2hvdWxkIHJlamVjdCBpbnNlcnRpbmcgb25lIGNvbW1pdCB3aXRoIG93
bmVkIGNvbW1pdHMgdGhhdCBoYXZlIGludmFsaWQgYXV0aG9yIiwgYXN5bmMgKCkgPT4geworICAg
ICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChpbnZhbGlkQXV0aG9yT3duZWRDb21taXQpOwor
ICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgaW52YWxpZEF1dGhvck93bmVkQ29tbWl0KTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRB
dXRob3JGb3JtYXQnKTsKKyAgICB9KTsKKworICAgIGNvbnN0IG93bmVkQ29tbWl0V2l0aFJldmlz
aW9uSWRlbnRpZmllciA9IHsKKyAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAorICAg
ICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAiY29tbWl0cyI6
IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJPU1giLAor
ICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICJTaWVycmExNkQzMiIsCisgICAgICAgICAgICAg
ICAgIm9yZGVyIjogMSwKKyAgICAgICAgICAgICAgICAib3duZWRDb21taXRzIjogeworICAgICAg
ICAgICAgICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAgICAgICAgICAgInJldmlz
aW9uIjogIjE0MTk3OCIsCisgICAgICAgICAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlm
aWVyIjogIjEyNzIzMkBtYWluIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJhdXRob3IiOiB7
Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5v
cmcifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIldlYktpdCBDb21taXQi
LAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fQorICAgICAgICBdCisgICAgfTsKKworICAgIGl0KCJzaG91bGQgaW5zZXJ0IG9uZSBjb21taXQg
d2l0aCBjb21taXQgcmV2aXNpb24gbGFiZWwiLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0
IGFkZFNsYXZlRm9yUmVwb3J0KG93bmVkQ29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcik7Cisg
ICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBvd25lZENvbW1pdFdpdGhSZXZpc2lvbklkZW50
aWZpZXIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
T0snKTsKKyAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAg
IGNvbnN0IGNvbW1pdCA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7J3JldmlzaW9u
JzogJzE0MTk3OCd9KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFswXS5yZXZp
c2lvbl9pZGVudGlmaWVyLCBvd25lZENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIuY29tbWl0
c1swXS5vd25lZENvbW1pdHNbJ1dlYktpdCddLnJldmlzaW9uSWRlbnRpZmllcik7CisgICAgfSk7
CiB9KTsKIAogZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PWZhbHNl
IiwgZnVuY3Rpb24gKCkgewpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzCmluZGV4IDVjNDQ1ZmVmYzBkNzIwNGMw
YmI1YTE2ZTAyY2Y2MTM3MmZmM2ZiNjkuLmM1YTJhMmVlYzBiMzFhOGMzMGJhZDk2ZTkwMzA0NmMz
OTA2ZGJlZTMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvYXBpLXJlcG9ydC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL2FwaS1yZXBvcnQtdGVzdHMuanMKQEAgLTc3LDYgKzc3LDI5IEBAIGRlc2NyaWJl
KCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfTsKICAgICB9CiAKKyAgICBm
dW5jdGlvbiByZXBvcnRXaXRoUmV2aXNpb25JZGVudGlmaWVyQ29tbWl0KCkKKyAgICB7CisgICAg
ICAgIHJldHVybiB7CisgICAgICAgICAgICAiYnVpbGRUYWciOiAiMTIzIiwKKyAgICAgICAgICAg
ICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxMDoxMjowMy4zODgzMDQiLAorICAgICAgICAgICAg
ImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKKyAgICAgICAgICAgICJzbGF2ZU5hbWUiOiAi
c29tZVNsYXZlIiwKKyAgICAgICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3Jk
IiwKKyAgICAgICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKKyAgICAgICAgICAg
ICJ0ZXN0cyI6IHt9LAorICAgICAgICAgICAgInJldmlzaW9ucyI6IHsKKyAgICAgICAgICAgICAg
ICAibWFjT1MiOiB7CisgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxMC44LjIgMTJD
NjAiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAiV2ViS2l0IjogeworICAg
ICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTQxOTc3IiwKKyAgICAgICAgICAgICAgICAg
ICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxMjcyMzFAbWFpbiIsCisgICAgICAgICAgICAgICAg
ICAgICJ0aW1lc3RhbXAiOiAiMjAxMy0wMi0wNlQwODo1NToyMC45WiIKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorCiAgICAgZnVuY3Rpb24gZW1w
dHlTbGF2ZVJlcG9ydCgpCiAgICAgewogICAgICAgICByZXR1cm4gewpAQCAtMzUxLDYgKzM3NCwz
NyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCisgICAgaXQoInNob3VsZCBhZGQgcmV2aXNpb24gbGFiZWwiLCBhc3luYyAoKSA9
PiB7CisgICAgICAgIGF3YWl0IGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9u
SWRlbnRpZmllckNvbW1pdCgpKTsKKyAgICAgICAgYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9ydFdpdGhSZXZpc2lvbklkZW50aWZpZXJD
b21taXQoKV0pOworICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAg
ICAgICAgY29uc3QgcmVwb3NpdG9yaWVzID0gYXdhaXQgZGIuc2VsZWN0QWxsKCdyZXBvc2l0b3Jp
ZXMnKTsKKyAgICAgICAgY29uc3QgY29tbWl0cyA9ICBhd2FpdCBkYi5zZWxlY3RBbGwoJ2NvbW1p
dHMnKTsKKyAgICAgICAgY29uc3QgYnVpbGRDb21taXRzUmVsYXRpb25zID0gYXdhaXQgIGRiLnNl
bGVjdEFsbCgnYnVpbGRfY29tbWl0cycsICdidWlsZF9jb21taXQnKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKHJlcG9zaXRvcmllcy5tYXAoKHJvdykgPT4gcm93WyduYW1lJ10pLnNvcnQo
KSwgWydXZWJLaXQnLCAnbWFjT1MnXSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkQ29tbWl0
c1JlbGF0aW9ucy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRD
b21taXRzUmVsYXRpb25zWzBdWydidWlsZF9jb21taXQnXSwgY29tbWl0c1swXVsnaWQnXSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNbMV1bJ2J1aWxk
X2NvbW1pdCddLCBjb21taXRzWzFdWydpZCddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1swXVsnY29tbWl0X2J1aWxkJ10sIGJ1aWxkQ29tbWl0c1Jl
bGF0aW9uc1sxXVsnY29tbWl0X2J1aWxkJ10pOworCisgICAgICAgIGxldCByZXBvc2l0b3J5SWRU
b05hbWUgPSB7fTsKKyAgICAgICAgZm9yIChsZXQgcmVwb3NpdG9yeSBvZiByZXBvc2l0b3JpZXMp
CisgICAgICAgICAgICByZXBvc2l0b3J5SWRUb05hbWVbcmVwb3NpdG9yeVsnaWQnXV0gPSByZXBv
c2l0b3J5WyduYW1lJ107CisKKyAgICAgICAgbGV0IHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJv
dyA9IHt9OworICAgICAgICBmb3IgKGxldCBjb21taXQgb2YgY29tbWl0cykKKyAgICAgICAgICAg
IHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1tyZXBvc2l0b3J5SWRUb05hbWVbY29tbWl0Wydy
ZXBvc2l0b3J5J11dXSA9IGNvbW1pdDsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVw
b3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydtYWNPUyddWydyZXZpc2lvbiddLCAnMTAuOC4yIDEy
QzYwJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNp
b25Sb3dbJ1dlYktpdCddWydyZXZpc2lvbiddLCAnMTQxOTc3Jyk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktpdCddWydyZXZpc2lv
bl9pZGVudGlmaWVyJ10sICcxMjcyMzFAbWFpbicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydXZWJLaXQnXVsndGltZSddLnRvU3RyaW5n
KCksCisgICAgICAgICAgICBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJp
bmcoKSk7CisgICAgfSk7CisKICAgICBpdCgic2hvdWxkIG5vdCBjcmVhdGUgYSBkdXBsaWNhdGUg
YnVpbGQgZm9yIHRoZSBzYW1lIGJ1aWxkIG51bWJlciBpZiBidWlsZCB0aW1lcyBhcmUgY2xvc2Ui
LCAoKSA9PiB7CiAgICAgICAgIGNvbnN0IGZpcnN0UmVwb3J0ID0gZW1wdHlSZXBvcnQoKTsKICAg
ICAgICAgZmlyc3RSZXBvcnRbJ2J1aWxkVGltZSddID0gJzIwMTMtMDItMjhUMTA6MTI6MDQnOwpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJj
ZXMvdGVzdC1zZXJ2ZXIuY29uZiBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmNvbmYKaW5kZXggOTM2YjRmNGJmYWZmMDdlZGIwMzU4
MzNjNDYzZWUxNjliZmMxNWExMS4uY2E1NTRiMTdmZDU5NDRlZGU3MWVjMWM3M2EzOWU5MGFhMGRi
MzAyMCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC1zZXJ2ZXIuY29uZgorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL3Jlc291cmNlcy90ZXN0LXNlcnZlci5jb25mCkBAIC0xLDYgKzEsOCBAQAog
U2VydmVyUm9vdCAiL3VzciIKIExpc3RlbiA4MDgwCiAKK0xvYWRNb2R1bGUgbXBtX3ByZWZvcmtf
bW9kdWxlIGxpYmV4ZWMvYXBhY2hlMi9tb2RfbXBtX3ByZWZvcmsuc28KK0xvYWRNb2R1bGUgcGhw
N19tb2R1bGUgL3Vzci9sb2NhbC9DZWxsYXIvcGhwQDcuNC83LjQuMTYvbGliL2h0dHBkL21vZHVs
ZXMvbGlicGhwNy5zbwogTG9hZE1vZHVsZSBhdXRobl9jb3JlX21vZHVsZSBsaWJleGVjL2FwYWNo
ZTIvbW9kX2F1dGhuX2NvcmUuc28KIExvYWRNb2R1bGUgYXV0aHpfY29yZV9tb2R1bGUgbGliZXhl
Yy9hcGFjaGUyL21vZF9hdXRoel9jb3JlLnNvCiBMb2FkTW9kdWxlIGRlZmxhdGVfbW9kdWxlIGxp
YmV4ZWMvYXBhY2hlMi9tb2RfZGVmbGF0ZS5zbwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3VuaXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy91bml0LXRlc3RzL2NvbW1pdC1sb2ctdGVzdHMuanMKaW5kZXggNzBhYmRlYmY4
MWU4YWI2MGQxZDE4MTYzZTM5OTE4NzljYjQ3MzhiNi4uY2EwMDdmYTRiYWQ3MjY5MzY0MzhmN2My
MjBhMTg0ZmY4NmMyNTJiOSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Vu
aXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdW5pdC10ZXN0cy9jb21taXQtbG9nLXRlc3RzLmpzCkBAIC0xNyw2ICsxNywxNyBAQCBmdW5j
dGlvbiB3ZWJraXRDb21taXQoKQogICAgIH0pOwogfQogCitmdW5jdGlvbiB3ZWJraXRDb21taXRX
aXRoUmV2aXNpb25JZGVudGlmaWVyKCkgCit7CisgICAgcmV0dXJuIG5ldyBDb21taXRMb2coMSwg
eworICAgICAgICBpZDogMSwKKyAgICAgICAgcmVwb3NpdG9yeTogTW9ja01vZGVscy53ZWJraXQs
CisgICAgICAgIHJldmlzaW9uOiAnMjAwODA1JywKKyAgICAgICAgcmV2aXNpb25JZGVudGlmaWVy
OiAnMTg0Mjc2QG1haW4nLAorICAgICAgICB0aW1lOiArKG5ldyBEYXRlKCcyMDE2LTA1LTEzVDAw
OjU1OjU3Ljg0MTM0NFonKSksCisgICAgfSk7Cit9CisKIGZ1bmN0aW9uIG9sZFdlYktpdENvbW1p
dCgpCiB7CiAgICAgcmV0dXJuIG5ldyBDb21taXRMb2coMiwgewpAQCAtMjcsNiArMzgsMTcgQEAg
ZnVuY3Rpb24gb2xkV2ViS2l0Q29tbWl0KCkKICAgICB9KTsKIH0KIAorZnVuY3Rpb24gb2xkV2Vi
S2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpCit7CisgICAgcmV0dXJuIG5ldyBDb21t
aXRMb2coMiwgeworICAgICAgICBpZDogMiwKKyAgICAgICAgcmVwb3NpdG9yeTogTW9ja01vZGVs
cy53ZWJraXQsCisgICAgICAgIHJldmlzaW9uOiAnMjAwNTc0JywKKyAgICAgICAgcmV2aXNpb25J
ZGVudGlmaWVyOiAnMTc1NjA1QG1haW4nLAorICAgICAgICB0aW1lOiArKG5ldyBEYXRlKCcyMDE2
LTA1LTA5VDE0OjU5OjIzLjU1Mzc2N1onKSksCisgICAgfSk7Cit9CisKIGZ1bmN0aW9uIGdpdFdl
YktpdENvbW1pdCgpCiB7CiAgICAgcmV0dXJuIG5ldyBDb21taXRMb2coMywgewpAQCAtMzcsNiAr
NTksMTcgQEAgZnVuY3Rpb24gZ2l0V2ViS2l0Q29tbWl0KCkKICAgICB9KTsKIH0KIAorZnVuY3Rp
b24gZ2l0V2ViS2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpCit7CisgICAgcmV0dXJu
IG5ldyBDb21taXRMb2coMywgeworICAgICAgICBpZDogMywKKyAgICAgICAgcmVwb3NpdG9yeTog
TW9ja01vZGVscy53ZWJraXQsCisgICAgICAgIHJldmlzaW9uOiAnNmY4YjBkYmJkYTk1YTQ0MDUw
M2I4OGRiMWRkMDNkYWQzYTdiMDdmYicsCisgICAgICAgIHJldmlzaW9uSWRlbnRpZmllcjogJzE4
NDI3NkBtYWluJywKKyAgICAgICAgdGltZTogKyhuZXcgRGF0ZSgnMjAxNi0wNS0xM1QwMDo1NTo1
Ny44NDEzNDRaJykpLAorICAgIH0pOworfQorCiBmdW5jdGlvbiBvbGRHaXRXZWJLaXRDb21taXQo
KQogewogICAgIHJldHVybiBuZXcgQ29tbWl0TG9nKDQsIHsKQEAgLTQ3LDYgKzgwLDE3IEBAIGZ1
bmN0aW9uIG9sZEdpdFdlYktpdENvbW1pdCgpCiAgICAgfSk7CiB9CiAKK2Z1bmN0aW9uIG9sZEdp
dFdlYktpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKQoreworICAgIHJldHVybiBuZXcg
Q29tbWl0TG9nKDQsIHsKKyAgICAgICAgaWQ6IDQsCisgICAgICAgIHJlcG9zaXRvcnk6IE1vY2tN
b2RlbHMud2Via2l0LAorICAgICAgICByZXZpc2lvbjogJ2ZmZGExNGU2ZGIwNzQ2ZDEwZDBmMDUw
OTA3ZTRhNzMyNTg1MWU1MDInLAorICAgICAgICByZXZpc2lvbklkZW50aWZpZXI6ICcxNzU2MDVA
bWFpbicsCisgICAgICAgIHRpbWU6ICsobmV3IERhdGUoJzIwMTYtMDUtMDlUMTQ6NTk6MjMuNTUz
NzY3WicpKSwKKyAgICB9KTsKK30KKwogZnVuY3Rpb24gb3N4Q29tbWl0KCkKIHsKICAgICByZXR1
cm4gbmV3IENvbW1pdExvZyg1LCB7CkBAIC0xNDcsMTAgKzE5MSwxOCBAQCBkZXNjcmliZSgnQ29t
bWl0TG9nJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdENv
bW1pdCgpLmxhYmVsKCksICdyMjAwODA1Jyk7CiAgICAgICAgIH0pOwogCi0gICAgICAgIGl0KCdz
aG91bGQgdHJ1bmNhdGUgYSBHaXQgaGFzaCBhdCA4dGggY2hhcmFjdGVyJywgZnVuY3Rpb24gKCkg
eworICAgICAgICBpdCgnc2hvdWxkIGRpc3BsYXkgcmV2aXNpb24gbGFiZWwgZm9sbG93ZWQgYnkg
c3ZuIHJlZml4ZWQgd2l0aCAiciInLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwod2Via2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpLmxhYmVsKCksICcxODQy
NzZAbWFpbiAocjIwMDgwNSknKQorICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHRy
dW5jYXRlIGEgR2l0IGhhc2ggYXQgMTJ0aCBjaGFyYWN0ZXInLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZ2l0V2ViS2l0Q29tbWl0KCkubGFiZWwoKSwgJzZmOGIwZGJi
ZGE5NScpOwogICAgICAgICB9KTsKIAorICAgICAgICBpdCgnc2hvdWxkIGRpc3BsYXkgcmV2aXNp
b24gbGFiZWwgZm9sbG93ZWQgYnkgZ2l0IGhhc2ggdHJ1bmNhdGVkJywgKCkgPT4geworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdpdFdlYktpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50
aWZpZXIoKS5sYWJlbCgpLCAnMTg0Mjc2QG1haW4gKDZmOGIwZGJiZGE5NSknKQorICAgICAgICB9
KTsKKwogICAgICAgICBpdCgnc2hvdWxkIG5vdCBtb2RpZnkgT1MgWCB2ZXJzaW9uJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdCgpLmxhYmVsKCksICcx
MC4xMS40IDE1RTY1Jyk7CiAgICAgICAgIH0pOwpAQCAtMTYxLDEwICsyMTMsMTggQEAgZGVzY3Jp
YmUoJ0NvbW1pdExvZycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3
ZWJraXRDb21taXQoKS50aXRsZSgpLCAnV2ViS2l0IGF0IHIyMDA4MDUnKTsKICAgICAgICAgfSk7
CiAKLSAgICAgICAgaXQoJ3Nob3VsZCB0cnVuY2F0ZSBhIEdpdCBoYXNoIGF0IDh0aCBjaGFyYWN0
ZXInLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGl0KCdzaG91bGQgaW5jbHVkZSByZXZpc2lvbiBs
YWJlbCcsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRDb21t
aXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKCkudGl0bGUoKSwgJ1dlYktpdCBhdCAxODQyNzZAbWFp
biAocjIwMDgwNSknKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCB0cnVuY2F0
ZSBhIEdpdCBoYXNoIGF0IDEydGggY2hhcmFjdGVyJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGdpdFdlYktpdENvbW1pdCgpLnRpdGxlKCksICdXZWJLaXQgYXQgNmY4
YjBkYmJkYTk1Jyk7CiAgICAgICAgIH0pOwogCisgICAgICAgIGl0KCdzaG91bGQgZGlzcGxheSBy
ZXZpc2lvbiBsYWJlbCBmb2xsb3dlZCBieSBnaXQgaGFzaCB0cnVuY2F0ZWQnLCAgKCkgPT4gewor
ICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdpdFdlYktpdENvbW1pdFdpdGhSZXZpc2lv
bklkZW50aWZpZXIoKS50aXRsZSgpLCAnV2ViS2l0IGF0IDE4NDI3NkBtYWluICg2ZjhiMGRiYmRh
OTUpJyk7CisgICAgICAgIH0pOworCiAgICAgICAgIGl0KCdzaG91bGQgbm90IG1vZGlmeSBPUyBY
IHZlcnNpb24nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29t
bWl0KCkudGl0bGUoKSwgJ09TIFggYXQgMTAuMTEuNCAxNUU2NScpOwogICAgICAgICB9KTsKQEAg
LTIyMyw2ICsyODMsMzEgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZycsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgICAgICByZXBvc2l0b3J5OiBNb2NrTW9kZWxzLm9zeAogICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgZGlzcGxheSByZXZpc2lvbiBsYWJl
bCBmb2xsb3dlZCB3aXRoIHJldmlzb24gYW5kICBjb25uZWN0IHdpdGggIi0iLCBpZiBib3RoIGhh
dmUgcmV2aXNpb24gbGFiZWwnLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHdlYmtpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKS5kaWZmKG9sZFdlYktp
dENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKSksIHsKKyAgICAgICAgICAgICAgICBsYWJl
bDogJzE3NTYwNSAtIDE4NDI3NkBtYWluIChyMjAwNTc0LXIyMDA4MDUpJywKKyAgICAgICAgICAg
ICAgICB1cmw6ICcnLAorICAgICAgICAgICAgICAgIHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMud2Vi
a2l0CisgICAgICAgICAgICB9KQorICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIGRp
c3BsYXkgcmV2aXNpb24gbGFiZWwgZm9sbG93ZWQgd2l0aCByZXZpc29uIGFuZCAgY29ubmVjdCB3
aXRoICItIiwgaWYgYm90aCBoYXZlIHJldmlzaW9uIGxhYmVsJywgKCkgPT4geworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChnaXRXZWJLaXRDb21taXRXaXRoUmV2aXNpb25JZGVu
dGlmaWVyKCkuZGlmZihvbGRHaXRXZWJLaXRDb21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKCkp
LCB7CisgICAgICAgICAgICAgICAgbGFiZWw6ICcxNzU2MDUgLSAxODQyNzZAbWFpbiAoZmZkYTE0
ZTZkYjA3Li42ZjhiMGRiYmRhOTUpJywKKyAgICAgICAgICAgICAgICB1cmw6ICcnLAorICAgICAg
ICAgICAgICAgIHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMud2Via2l0CisgICAgICAgICAgICB9KQor
ICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIGNvbnRhaW4gcmV2aXNpb24gbGFiZWws
IGlmIG9uZSBvZiB0aGUgY29tbWl0cyBkb2VzbmB0IGhhdmUgdGhlIHJldmlzaW9uIGxhYmVsJywg
KCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh3ZWJraXRDb21taXRX
aXRoUmV2aXNpb25JZGVudGlmaWVyKCkuZGlmZihvbGRXZWJLaXRDb21taXQoKSksIHsKKyAgICAg
ICAgICAgICAgICBsYWJlbDogJ3IyMDA1NzQgLSAxODQyNzZAbWFpbiAocjIwMDgwNSknLAorICAg
ICAgICAgICAgICAgIHVybDogJycsCisgICAgICAgICAgICAgICAgcmVwb3NpdG9yeTogTW9ja01v
ZGVscy53ZWJraXQKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKwogICAgIH0pOwogCiAg
ICAgZGVzY3JpYmUoJ2hhc09yZGVyaW5nJywgKCkgPT4gewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424429</attachid>
            <date>2021-03-26 19:00:19 -0700</date>
            <delta_ts>2021-03-26 19:11:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222897-20210326190018.patch</filename>
            <type>text/plain</type>
            <size>53287</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MDYxCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1YTg1MWZkODI1NTA1YjQzMGFkNzg3ODZhNTQ1NzI0MzUwNTg0Zjc1Li4zNTA5NTFlOGRk
NWI2YzUyMzkwYWFiYjVmZGI5YTA0OTkxNWY2ZDY0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAyMS0wMy0xMCAgWmhpZmVpIEZhbmcgIDx6aGlmZWlf
ZmFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGNvbW1pdCByZXZpc2lvbiBsYWJlbCBzdXBw
b3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI4
OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
bmV3IGNvbHVtbiByZXZpc2lvbiBsYWJlbC4KKyAgICAgICAgTWFrZSBhbGwgY29tbWl0IGFwaSBh
bHNvIGNhbiB3b3JrIHdpdGggcmV2aXNpb24gbGFiZWwuCisgICAgICAgIENoYW5nZSB0aGUgY29t
bWl0IGxhYmVsIGRpc3BsYXkgd2l0aCBjb21taXQgcmV2aXNpb24gbGFiZWwuCisKKyAgICAgICAg
KiBicm93c2VyLXRlc3RzL2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzOiBGaXggYSBmYWlsZWQg
dGVzdCBjYXNlLCB3aGlsZSByZXF1ZXN0aW5nIHRoZSByZW1vdGUgYXBpLCAKKyAgICAgICAgd2Ug
c2hvdWxkIHdhaXQgZm9yIHRob3NlIHByb21pc2VzIHJlc29sdmVkIGFuZCB0aGVuIHdhaXQgZm9y
IGNvbW1wb25lbnQgdG8gcmVuZGVyLgorICAgICAgICAqIGluaXQtZGF0YWJhc2Uuc3FsOiBBZGQg
bmV3IGNvbHVtbiByZXZpc2lvbl9pZGVudGlmaWVyLgorICAgICAgICAqIG1pZ3JhdGUtZGF0YWJh
c2Uuc3FsOiBBZGQgbmV3IGNvbHVtbiByZXZpc2lvbl9pZGVudGlmaWVyLgorICAgICAgICAqIHB1
YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHA6IE1ha2UgYXBpIHRoYXQgd29ya3Mg
d2l0aCByZXZpc2lvbiBzaG91bGQgd29yayB3aXRoIHJldmlzaW9uIGxhYmVsLgorICAgICAgICAq
IHB1YmxpYy9pbmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocDogRGl0dG8uCisgICAgICAgICogcHVi
bGljL2luY2x1ZGUvcmVwb3J0LXByb2Nlc3Nvci5waHA6IE1ha2UgdGhlIHByb2Nlc3NvciBjYW4g
YWxzbyBpbnNlcnQgcmV2aXNpb24gbGFiZWwuCisgICAgICAgICogcHVibGljL3YzL21vZGVscy9j
b21taXQtbG9nLmpzOgorICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS51cGRhdGVTaW5nbGV0
b24pOgorICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS5yZXZpc2lvbklkZW50aWZpZXIpOgor
ICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS5sYWJlbCk6IE1ha2UgdGhlIGxhYmVsIGluY2x1
ZGUgcmV2aXNpb24gbGFiZWwgYW5kIHJldmlzaW9uLgorICAgICAgICAoQ29tbWl0TG9nLnByb3Rv
dHlwZS5kaWZmKTogTWFrZSB0aGUgZGlmZiBsYWJlbCBpbmNsdWRlIHJldmlzaW9uIGxhYmVsIGFu
ZCByZXZpc2lvbi4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanM6
CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtY29tbWl0cy10ZXN0cy5qczoKKyAg
ICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qczoKKyAgICAgICAgKHJlcG9y
dFdpdGhSZXZpc2lvbklkZW50aWZpZXJDb21taXQpOgorICAgICAgICAqIHVuaXQtdGVzdHMvY29t
bWl0LWxvZy10ZXN0cy5qczoKKwogMjAyMS0wMy0wNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbcGVyZiBkYXNoYm9hcmRdIE1vZGVybml6ZSBUaW1lU2VyaWVz
IGFuZCBUaW1lU2VyaWVzVmlldwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L2Jyb3dzZXItdGVzdHMvY29tbWl0LWxvZy12aWV3ZXItdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcwppbmRl
eCBkYmM0Y2ZjZDliYzIxNGI3MDhlZTE5OGYxZWE2NjVmMjI0MjI4NTYwLi5mODQ4OWU3Y2FjNDRl
MjMwMjBmN2U4ZjJjZTY0NDdhN2EyYzQyZjhiIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcworKysgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10
ZXN0cy5qcwpAQCAtNTUsNiArNTUsMTkgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZ1ZpZXdlcicsICgp
ID0+IHsKICAgICAgICAgIm1lc3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdlIiwKICAgICB9OwogCisg
ICAgY29uc3Qgd2Via2l0Q29tbWl0MjEwOTUwV2l0aFJldmlzaW9uSWRlbnRpZmllciA9IHsKKyAg
ICAgICAgImlkIjogIjE4NTMzOCIsCisgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NTAiLAorICAg
ICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3OEBtYWluIiwKKyAgICAgICAgInJlcG9z
aXRvcnkiOiAxLAorICAgICAgICAicHJldmlvdXNDb21taXQiOiBudWxsLAorICAgICAgICAib3du
c0NvbW1pdHMiOiBmYWxzZSwKKyAgICAgICAgInRpbWUiOiArbmV3IERhdGUoIjIwMTctMDEtMjBU
MDM6NDk6MzcuODg3WiIpLAorICAgICAgICAiYXV0aG9yTmFtZSI6ICJDb21taXQgUXVldWUiLAor
ICAgICAgICAiYXV0aG9yRW1haWwiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmciLAorICAgICAg
ICAibWVzc2FnZSI6ICJhbm90aGVyIG1lc3NhZ2UiLAorICAgIH07CisKICAgICBpdCgnc2hvdWxk
IGluaXRpYWxseSBiZSBlbXB0eSB3aXRoIG5vIHNwaW5uZXInLCAoKSA9PiB7CiAgICAgICAgIGNv
bnN0IGNvbnRleHQgPSBuZXcgQnJvd3NpbmdDb250ZXh0KCk7CiAgICAgICAgIHJldHVybiBpbXBv
cnRDb21taXRMb2dWaWV3ZXIoY29udGV4dCkudGhlbigoQ29tbWl0TG9nVmlld2VyKSA9PiB7CkBA
IC0xMjksOSArMTQyLDkgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZ1ZpZXdlcicsICgpID0+IHsKICAg
ICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIiwKICAgICAgICAgICAgICAgICAiY29tbWl0cyI6
IFt3ZWJraXRDb21taXQyMTA5NDhdLAogICAgICAgICAgICAgfSk7Ci0KKyAgICAgICAgICAgIGF3
YWl0IHJlcXVlc3RzWzBdLnByb21pc2U7CisgICAgICAgICAgICBhd2FpdCByZXF1ZXN0c1sxXS5w
cm9taXNlOwogICAgICAgICAgICAgYXdhaXQgd2FpdEZvckNvbXBvbmVudHNUb1JlbmRlcihjb250
ZXh0KTsKLQogICAgICAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdzcGlubmVyLWNvbnRh
aW5lcicpLm9mZnNldEhlaWdodCkudG8uYmUoMCk7CiAgICAgICAgICAgICBleHBlY3Qodmlld2Vy
LmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLm1hdGNoZXMoJzplbXB0eScpKS50by5iZShmYWxzZSk7
CiAgICAgICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLnRleHRD
b250ZW50KS50by5jb250YWluKCdyMjEwOTQ5Jyk7CkBAIC0xNDQsNCArMTU3LDQ3IEBAIGRlc2Ny
aWJlKCdDb21taXRMb2dWaWV3ZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogICAgIH0pOwogCisg
ICAgaXQoJ3Nob3VsZCBzaG93IHJldmlzaW9uIGxhYmVsJywgYXN5bmMgKCkgPT4geworICAgICAg
ICBjb25zdCBjb250ZXh0ID0gbmV3IEJyb3dzaW5nQ29udGV4dCgpOworICAgICAgICBjb25zdCBD
b21taXRMb2dWaWV3ZXIgPSBhd2FpdCBpbXBvcnRDb21taXRMb2dWaWV3ZXIoY29udGV4dCk7Cisg
ICAgICAgIGNvbnN0IFJlcG9zaXRvcnkgPSBjb250ZXh0LnN5bWJvbHMuUmVwb3NpdG9yeTsKKyAg
ICAgICAgY29uc3QgcmVxdWVzdHMgPSBjb250ZXh0LnN5bWJvbHMuUmVtb3RlQVBJLnJlcXVlc3Rz
OworICAgICAgICBjb25zdCB2aWV3ZXIgPSBuZXcgQ29tbWl0TG9nVmlld2VyOworICAgICAgICBj
b25zdCB3ZWJraXQgPSBuZXcgUmVwb3NpdG9yeSgxLCB7bmFtZTogJ1dlYktpdCd9KTsKKyAgICAg
ICAgY29udGV4dC5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZXdlci5lbGVtZW50KCkpOwor
CisgICAgICAgIHZpZXdlci5lbnF1ZXVlVG9SZW5kZXIoKTsKKyAgICAgICAgYXdhaXQgd2FpdEZv
ckNvbXBvbmVudHNUb1JlbmRlcihjb250ZXh0KTsKKworICAgICAgICB2aWV3ZXIudmlldyh3ZWJr
aXQsICcyMTA5NDgnLCAnMjEwOTUwJyk7CisgICAgICAgIGF3YWl0IHdhaXRGb3JDb21wb25lbnRz
VG9SZW5kZXIoY29udGV4dCk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnc3Bpbm5l
ci1jb250YWluZXInKS5vZmZzZXRIZWlnaHQpLnRvLm5vdC5iZSgwKTsKKyAgICAgICAgZXhwZWN0
KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxpc3QnKS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUo
dHJ1ZSk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgncmVwb3NpdG9yeS1uYW1lJyku
bWF0Y2hlcygnOmVtcHR5JykpLnRvLmJlKGZhbHNlKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5j
b250ZW50KCdyZXBvc2l0b3J5LW5hbWUnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignV2ViS2l0
Jyk7CisgICAgICAgIGV4cGVjdChyZXF1ZXN0cy5sZW5ndGgpLnRvLmJlKDIpOworICAgICAgICBl
eHBlY3QocmVxdWVzdHNbMF0udXJsKS50by5iZSgnL2FwaS9jb21taXRzLzEvP3ByZWNlZGluZ1Jl
dmlzaW9uPTIxMDk0OCZsYXN0UmV2aXNpb249MjEwOTUwJyk7CisgICAgICAgIGV4cGVjdChyZXF1
ZXN0c1sxXS51cmwpLnRvLmJlKCcvYXBpL2NvbW1pdHMvMS8yMTA5NDgnKTsKKyAgICAgICAgcmVx
dWVzdHNbMF0ucmVzb2x2ZSh7CisgICAgICAgICAgICAic3RhdHVzIjogIk9LIiwKKyAgICAgICAg
ICAgICJjb21taXRzIjogW3dlYmtpdENvbW1pdDIxMDk0OSwgd2Via2l0Q29tbWl0MjEwOTUwV2l0
aFJldmlzaW9uSWRlbnRpZmllcl0sCisgICAgICAgIH0pOworCisgICAgICAgIHJlcXVlc3RzWzFd
LnJlc29sdmUoeworICAgICAgICAgICAgInN0YXR1cyI6ICJPSyIsCisgICAgICAgICAgICAiY29t
bWl0cyI6IFt3ZWJraXRDb21taXQyMTA5NDhdLAorICAgICAgICB9KTsKKworICAgICAgICBhd2Fp
dCByZXF1ZXN0c1swXS5wcm9taXNlOworICAgICAgICBhd2FpdCByZXF1ZXN0c1sxXS5wcm9taXNl
OworICAgICAgICBhd2FpdCB3YWl0Rm9yQ29tcG9uZW50c1RvUmVuZGVyKGNvbnRleHQpOworICAg
ICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ3NwaW5uZXItY29udGFpbmVyJykub2Zmc2V0SGVp
Z2h0KS50by5iZSgwKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxp
c3QnKS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUoZmFsc2UpOworICAgICAgICBleHBlY3Qodmll
d2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLnRleHRDb250ZW50KS50by5jb250YWluKCcxODQy
NzhAbWFpbiAocjIxMDk1MCknKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdjb21t
aXRzLWxpc3QnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignQ29tbWl0IFF1ZXVlJyk7CisgICAg
ICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgncmVwb3NpdG9yeS1uYW1lJykubWF0Y2hlcygnOmVt
cHR5JykpLnRvLmJlKGZhbHNlKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdyZXBv
c2l0b3J5LW5hbWUnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignV2ViS2l0Jyk7CisgICAgICAg
IGV4cGVjdCh2aWV3ZXIuY29udGVudCgnY29tbWl0cy1saXN0JykucXVlcnlTZWxlY3RvcignYScp
KS50by5iZShudWxsKTsKKyAgICB9KTsKKwogfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
aW5pdC1kYXRhYmFzZS5zcWwKaW5kZXggN2ZmYzg5YWQ4MmM3NjEwNDFkMWE1NTZlODNmN2M5Njc4
YTMyZmFjMS4uMGRlY2RjZGM1NWM1YjU2YTViZTBhZDMyMGJmMWUzNWMzNjYxY2VkNCAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbApAQCAtMTAyLDYgKzEwMiw3
IEBAIENSRUFURSBUQUJMRSBjb21taXRzICgKICAgICBjb21taXRfaWQgc2VyaWFsIFBSSU1BUlkg
S0VZLAogICAgIGNvbW1pdF9yZXBvc2l0b3J5IGludGVnZXIgTk9UIE5VTEwgUkVGRVJFTkNFUyBy
ZXBvc2l0b3JpZXMgT04gREVMRVRFIENBU0NBREUsCiAgICAgY29tbWl0X3JldmlzaW9uIHZhcmNo
YXIoNjQpIE5PVCBOVUxMLAorICAgIGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyIHZhcmNoYXIo
NjQpIERFRkFVTFQgTlVMTCwKICAgICBjb21taXRfcHJldmlvdXNfY29tbWl0IGludGVnZXIgUkVG
RVJFTkNFUyBjb21taXRzIE9OIERFTEVURSBDQVNDQURFLAogICAgIGNvbW1pdF90aW1lIHRpbWVz
dGFtcCwKICAgICBjb21taXRfb3JkZXIgaW50ZWdlciwKQEAgLTEwOSw3ICsxMTAsOCBAQCBDUkVB
VEUgVEFCTEUgY29tbWl0cyAoCiAgICAgY29tbWl0X21lc3NhZ2UgdGV4dCwKICAgICBjb21taXRf
cmVwb3J0ZWQgYm9vbGVhbiBOT1QgTlVMTCBERUZBVUxUIEZBTFNFLAogICAgIGNvbW1pdF90ZXN0
YWJpbGl0eSB2YXJjaGFyKDEyOCkgREVGQVVMVCBOVUxMLAotICAgIENPTlNUUkFJTlQgY29tbWl0
X2luX3JlcG9zaXRvcnlfbXVzdF9iZV91bmlxdWUgVU5JUVVFKGNvbW1pdF9yZXBvc2l0b3J5LCBj
b21taXRfcmV2aXNpb24pKTsKKyAgICBDT05TVFJBSU5UIGNvbW1pdF9pbl9yZXBvc2l0b3J5X211
c3RfYmVfdW5pcXVlIFVOSVFVRShjb21taXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uKSwK
KyAgICBDT05TVFJBSU5UIGNvbW1pdF9zdHJpbmdfaWRlbnRpZmllcl9pbl9yZXBvc2l0b3J5X211
c3RfYmVfdW5pcXVlIFVOSVFVRShjb21taXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uX2lk
ZW50aWZpZXIpKTsKIENSRUFURSBJTkRFWCBjb21taXRfdGltZV9pbmRleCBPTiBjb21taXRzKGNv
bW1pdF90aW1lKTsKIENSRUFURSBJTkRFWCBjb21taXRfb3JkZXJfaW5kZXggT04gY29tbWl0cyhj
b21taXRfb3JkZXIpOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWln
cmF0ZS1kYXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWlncmF0ZS1kYXRh
YmFzZS5zcWwKaW5kZXggNDliZDI0OWQyYTY4NTc3NjQ0OWQzNmU4MDUyNjhmY2M0Yjg3N2FjYS4u
ODVkMzU0YzY3ODdmNTg5NThmNGIwMmI0ZDMxYjYyMWI0ZmY1NDJiMiAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL21pZ3JhdGUtZGF0YWJhc2Uuc3FsCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbApAQCAtMyw2ICszLDkgQEAgRE8g
JCQKIEJFR0lOCiBBTFRFUiBUQUJMRSBidWlsZF9yZXF1ZXN0cyBBREQgQ09MVU1OIElGIE5PVCBF
WElTVFMgcmVxdWVzdF9zdGF0dXNfZGVzY3JpcHRpb24gdmFyY2hhcigxMDI0KSBERUZBVUxUIE5V
TEw7CiBBTFRFUiBUQUJMRSBwbGF0Zm9ybXMgQUREIENPTFVNTiAgSUYgTk9UIEVYSVNUUyBwbGF0
Zm9ybV9ncm91cCBpbnRlZ2VyIFJFRkVSRU5DRVMgcGxhdGZvcm1fZ3JvdXBzIERFRkFVTFQgTlVM
TDsKK0FMVEVSIFRBQkxFIGNvbW1pdHMgQUREIENPTFVNTiBJRiBOT1QgRVhJU1RTIGNvbW1pdF9y
ZXZpc2lvbl9pZGVudGlmaWVyIHZhcmNoYXIoNjQpIERFRkFVTFQgTlVMTDsKK0FMVEVSIFRBQkxF
IGNvbW1pdHMgRFJPUCBDT05TVFJBSU5UIGNvbW1pdF9zdHJpbmdfaWRlbnRpZmllcl9pbl9yZXBv
c2l0b3J5X211c3RfYmVfdW5pcXVlOworQUxURVIgVEFCTEUgY29tbWl0cyBBREQgQ09OU1RSQUlO
VCBjb21taXRfc3RyaW5nX2lkZW50aWZpZXJfaW5fcmVwb3NpdG9yeV9tdXN0X2JlX3VuaXF1ZSBV
TklRVUUoY29tbWl0X3JlcG9zaXRvcnksIGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyKTsKIAog
Q1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgcGxhdGZvcm1fZ3JvdXBzICgKICAgICBwbGF0Zm9y
bWdyb3VwX2lkIHNlcmlhbCBQUklNQVJZIEtFWSwKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAK
aW5kZXggNmUwYmVjZDBiYzgxNjRjMDQyZmQzZmIyZjM5OThjNDE1NGZlYjBlMS4uNTA1OGY3MTNl
YWI5ZDA5OGRkMDhjNWUxZWExMmJkZmJmZTczMmE1NiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hl
ci5waHAKQEAgLTgsMTQgKzgsMTYgQEAgY2xhc3MgQ29tbWl0TG9nRmV0Y2hlciB7CiAKICAgICBz
dGF0aWMgZnVuY3Rpb24gZmluZF9jb21taXRfaWRfYnlfcmV2aXNpb24oJGRiLCAkcmVwb3NpdG9y
eV9pZCwgJHJldmlzaW9uKQogICAgIHsKLSAgICAgICAgJGNvbW1pdF9yb3dzID0gJGRiLT5xdWVy
eV9hbmRfZmV0Y2hfYWxsKCdTRUxFQ1QgY29tbWl0X2lkIEZST00gY29tbWl0cyBXSEVSRSBjb21t
aXRfcmVwb3NpdG9yeSA9ICQxIEFORCBjb21taXRfcmV2aXNpb24gPSAkMicsIGFycmF5KCRyZXBv
c2l0b3J5X2lkLCAkcmV2aXNpb24pKTsKKyAgICAgICAgJGNvbHVtbl9uYW1lID0gQ29tbWl0TG9n
RmV0Y2hlcjo6aXNfY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXIoJHJldmlzaW9uKSA/ICdjb21t
aXRfcmV2aXNpb25faWRlbnRpZmllcicgOiAnY29tbWl0X3JldmlzaW9uJzsKKyAgICAgICAgCisg
ICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgiU0VMRUNUIGNv
bW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkgPSAkMSBBTkQgJGNv
bHVtbl9uYW1lID0gJDIiLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uKSk7CiAgICAg
ICAgIGlmICgkY29tbWl0X3Jvd3MpCiAgICAgICAgICAgICByZXR1cm4gJGNvbW1pdF9yb3dzWzBd
Wydjb21taXRfaWQnXTsKIAogICAgICAgICBpZiAoIWN0eXBlX2FsbnVtKCRyZXZpc2lvbikpCiAg
ICAgICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgICAgICAkY29tbWl0X3Jvd3MgPSAkZGItPnF1
ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCBjb21taXRfaWQgRlJPTSBjb21taXRzIFdIRVJFIGNv
bW1pdF9yZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF9yZXZpc2lvbiBMSUtFICQyIExJTUlUIDIn
LCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNp
b24pIC4gJyUnKSk7CisgICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNo
X2FsbCgiU0VMRUNUIGNvbW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRv
cnkgPSAkMSBBTkQgJGNvbHVtbl9uYW1lICBMSUtFICQyIExJTUlUIDIiLCBhcnJheSgkcmVwb3Np
dG9yeV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb24pIC4gJyUnKSk7CiAg
ICAgICAgIGlmICghJGNvbW1pdF9yb3dzKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAg
ICAgIGlmIChjb3VudCgkY29tbWl0X3Jvd3MpID4gMSkKQEAgLTU1LDYgKzU3LDcgQEAgY2xhc3Mg
Q29tbWl0TG9nRmV0Y2hlciB7CiAgICAgewogICAgICAgICAkc3RhdGVtZW50cyA9ICdTRUxFQ1Qg
Y29tbWl0X2lkIGFzICJpZCIsCiAgICAgICAgICAgICBjb21taXRfcmV2aXNpb24gYXMgInJldmlz
aW9uIiwKKyAgICAgICAgICAgIGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyIGFzICJyZXZpc2lv
bklkZW50aWZpZXIiLAogICAgICAgICAgICAgY29tbWl0X3ByZXZpb3VzX2NvbW1pdCBhcyAicHJl
dmlvdXNDb21taXQiLAogICAgICAgICAgICAgY29tbWl0X3RpbWUgYXMgInRpbWUiLAogICAgICAg
ICAgICAgY29tbWl0dGVyX25hbWUgYXMgImF1dGhvck5hbWUiLApAQCAtMTkyLDggKzE5NSwxNCBA
QCBjbGFzcyBDb21taXRMb2dGZXRjaGVyIHsKICAgICAgICAgcmV0dXJuICR0aGlzLT5mb3JtYXRf
c2luZ2xlX2NvbW1pdCgkY29tbWl0KTsKICAgICB9CiAKKyAgICBwcml2YXRlIHN0YXRpYyBmdW5j
dGlvbiBpc19jb21taXRfcmV2aXNpb25faWRlbnRpZmllcigkY29tbWl0X3JldmlzaW9uX29yX3Jl
dmlzaW9uX2lkZW50aWZpZXIpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIHByZWdfbWF0Y2goJy9e
XGQrQFtcd1wuXC1dKiQvJywgJGNvbW1pdF9yZXZpc2lvbl9vcl9yZXZpc2lvbl9pZGVudGlmaWVy
KTsKKyAgICB9CisKICAgICBwcml2YXRlIGZ1bmN0aW9uIGNvbW1pdF9mb3JfcmV2aXNpb24oJHJl
cG9zaXRvcnlfaWQsICRyZXZpc2lvbikgewotICAgICAgICAkY29tbWl0X2luZm8gPSBhcnJheSgn
cmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlfaWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uKTsK
KyAgICAgICAgJGNvbW1pdF9pbmZvID0gYXJyYXkoJ3JlcG9zaXRvcnknID0+ICRyZXBvc2l0b3J5
X2lkKTsgCisgICAgICAgICRjb21taXRfaW5mb1skdGhpcy0+aXNfY29tbWl0X3JldmlzaW9uX2lk
ZW50aWZpZXIoJHJldmlzaW9uKSA/ICdyZXZpc2lvbl9pZGVudGlmaWVyJyA6ICdyZXZpc2lvbidd
ID0gJHJldmlzaW9uOwogICAgICAgICAkcm93ID0gJHRoaXMtPmRiLT5zZWxlY3RfbGFzdF9yb3co
J2NvbW1pdHMnLCAnY29tbWl0JywgJGNvbW1pdF9pbmZvKTsKICAgICAgICAgaWYgKCEkcm93KQog
ICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdVbmtub3duQ29tbWl0JywgJGNvbW1pdF9pbmZv
KTsKQEAgLTIwMSw3ICsyMTAsOCBAQCBjbGFzcyBDb21taXRMb2dGZXRjaGVyIHsKICAgICB9CiAK
ICAgICBwcml2YXRlIGZ1bmN0aW9uIGNvbW1pdF9mb3JfcmV2aXNpb25fcHJlZml4KCRyZXBvc2l0
b3J5X2lkLCAkcmV2aXNpb25fcHJlZml4KSB7Ci0gICAgICAgICRyb3dzID0gJHRoaXMtPmRiLT5x
dWVyeV9hbmRfZmV0Y2hfYWxsKCdTRUxFQ1QgKiBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3Jl
cG9zaXRvcnkgPSAkMSBBTkQgY29tbWl0X3JldmlzaW9uIExJS0UgJDIgT1JERVIgQlkgY29tbWl0
X3JldmlzaW9uIExJTUlUIDInLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0YWJhc2U6OmVzY2Fw
ZV9mb3JfbGlrZSgkcmV2aXNpb25fcHJlZml4KSAuICclJykpOworICAgICAgICAkY29sdW1uX25h
bWUgPSAkdGhpcy0+aXNfY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXIoJHJldmlzaW9uX3ByZWZp
eCkgPyAncmV2aXNpb25faWRlbnRpZmllcicgOiAncmV2aXNpb24nOworICAgICAgICAkcm93cyA9
ICR0aGlzLT5kYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgiU0VMRUNUICogRlJPTSBjb21taXRzIFdI
RVJFIGNvbW1pdF9yZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF8kY29sdW1uX25hbWUgTElLRSAk
MiBPUkRFUiBCWSBjb21taXRfJGNvbHVtbl9uYW1lIExJTUlUIDIiLCBhcnJheSgkcmVwb3NpdG9y
eV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb25fcHJlZml4KSAuICclJykp
OwogICAgICAgICBpZiAoY291bnQoJHJvd3MpID09IDApCiAgICAgICAgICAgICBleGl0X3dpdGhf
ZXJyb3IoJ1Vua25vd25Db21taXQnLCBhcnJheSgncmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlf
aWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uX3ByZWZpeCkpOwogICAgICAgICBpZiAoY291bnQo
JHJvd3MpID09IDIpIHsKQEAgLTIyNCw2ICsyMzQsNyBAQCBjbGFzcyBDb21taXRMb2dGZXRjaGVy
IHsKICAgICAgICAgcmV0dXJuIGFycmF5KAogICAgICAgICAgICAgJ2lkJyA9PiAkY29tbWl0X3Jv
d1snY29tbWl0X2lkJ10sCiAgICAgICAgICAgICAncmV2aXNpb24nID0+ICRjb21taXRfcm93Wydj
b21taXRfcmV2aXNpb24nXSwKKyAgICAgICAgICAgICdyZXZpc2lvbklkZW50aWZpZXInID0+ICRj
b21taXRfcm93Wydjb21taXRfcmV2aXNpb25faWRlbnRpZmllciddLAogICAgICAgICAgICAgJ3Jl
cG9zaXRvcnknID0+ICRjb21taXRfcm93Wydjb21taXRfcmVwb3NpdG9yeSddLAogICAgICAgICAg
ICAgJ3ByZXZpb3VzQ29tbWl0JyA9PiAkY29tbWl0X3Jvd1snY29tbWl0X3ByZXZpb3VzX2NvbW1p
dCddLAogICAgICAgICAgICAgJ3RpbWUnID0+IERhdGFiYXNlOjp0b19qc190aW1lKCRjb21taXRf
cm93Wydjb21taXRfdGltZSddKSwKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvaW5jbHVkZS9jb21taXQtdXBkYXRlci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LXVwZGF0ZXIucGhwCmluZGV4IDA4YzY4YmJlNjQx
MGFmZjA2ZGI4NzU0OTkyYTQ4YzkzN2U3MGUzMmYuLjQzMjIwZDMxOTMyMjA3ZWM4MjI4ZTIyM2Y2
NDI4NmQzYmMwYjgwNmMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvaW5jbHVkZS9jb21taXQtdXBkYXRlci5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocApAQCAtMzAsNyArMzAsNiBAQCBj
bGFzcyBDb21taXRVcGRhdGVyIHsKICAgICBwcml2YXRlIGZ1bmN0aW9uIHVwZGF0ZV9jb21taXQo
JiR1cGRhdGUsICRvd25lcl9jb21taXRfaWQsICRvd25lcl9yZXBvc2l0b3J5X2lkLCAkc2hvdWxk
X2luc2VydCkKICAgICB7CiAgICAgICAgICRjb21taXRfZGF0YSA9ICYkdGhpcy0+cmVzb2x2ZV9m
aWVsZHNfZnJvbV9kYXRhYmFzZSgkdXBkYXRlLCAkb3duZXJfcmVwb3NpdG9yeV9pZCwgJHNob3Vs
ZF9pbnNlcnQpOwotCiAgICAgICAgICRjb21taXRfc2VsZWN0X3F1ZXJ5ID0gYXJyYXkoJ3JlcG9z
aXRvcnknID0+ICRjb21taXRfZGF0YVsncmVwb3NpdG9yeSddLCAncmV2aXNpb24nID0+ICRjb21t
aXRfZGF0YVsncmV2aXNpb24nXSk7CiAgICAgICAgIGlmICgkc2hvdWxkX2luc2VydCkgewogICAg
ICAgICAgICAgJGNvbW1pdF9pZCA9ICR0aGlzLT5kYi0+dXBkYXRlX29yX2luc2VydF9yb3coJ2Nv
bW1pdHMnLCAnY29tbWl0JywgJGNvbW1pdF9zZWxlY3RfcXVlcnksICRjb21taXRfZGF0YSk7CkBA
IC03NCw2ICs3Myw3IEBAIGNsYXNzIENvbW1pdFVwZGF0ZXIgewogICAgIHByaXZhdGUgZnVuY3Rp
b24gJmNvbnN0cnVjdF91cGRhdGVfbGlzdCgmJGNvbW1pdF9pbmZvX2xpc3QsICRzaG91bGRfaW5z
ZXJ0KQogICAgIHsKICAgICAgICAgJHVwZGF0ZV9saXN0ID0gYXJyYXkoKTsKKyAgICAgICAgJGNv
bW1pdF9yZXZpc2lvbl9pZGVudGlmaWVycyA9IGFycmF5KCk7CiAKICAgICAgICAgZm9yZWFjaCAo
JGNvbW1pdF9pbmZvX2xpc3QgYXMgJiRjb21taXRfaW5mbykgewogICAgICAgICAgICAgc2VsZjo6
dmFsaWRhdGVfY29tbWl0cygkY29tbWl0X2luZm8pOwpAQCAtODEsNiArODEsMTEgQEAgY2xhc3Mg
Q29tbWl0VXBkYXRlciB7CiAgICAgICAgICAgICAkaGFzX3VwZGF0ZSA9IGNvdW50KCRjb21taXRf
ZGF0YSkgPiAxOwogCiAgICAgICAgICAgICAkdXBkYXRlID0gYXJyYXkoJ2NvbW1pdCcgPT4gJiRj
b21taXRfZGF0YSwgJ3JlcG9zaXRvcnknID0+ICYkY29tbWl0X2luZm9bJ3JlcG9zaXRvcnknXSk7
CisgICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncmV2aXNpb25JZGVudGlmaWVyJywg
JGNvbW1pdF9pbmZvKSkgeworICAgICAgICAgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCRj
b21taXRfaW5mb1sncmV2aXNpb25JZGVudGlmaWVyJ10sICRjb21taXRfcmV2aXNpb25faWRlbnRp
ZmllcnMpKQorICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZXhpdF93aXRoX2Vycm9yKCdEdXBs
aWNhdGVkUmV2aXNpb25JZGVudGlmaWVyJywgYXJyYXkoJ2NvbW1pdCcgPT4gJGNvbW1pdF9pbmZv
KSk7CisgICAgICAgICAgICAgICAgJGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyc1skY29tbWl0
X2luZm9bJ3JldmlzaW9uSWRlbnRpZmllciddXSA9IHRydWU7CisgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncHJldmlvdXNDb21taXQnLCAkY29tbWl0X2lu
Zm8pKSB7CiAgICAgICAgICAgICAgICAgJGhhc191cGRhdGUgPSB0cnVlOwogICAgICAgICAgICAg
ICAgICR1cGRhdGVbJ3ByZXZpb3VzX2NvbW1pdCddID0gJiRjb21taXRfaW5mb1sncHJldmlvdXND
b21taXQnXTsKQEAgLTEwNCw2ICsxMDksNyBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsKIAogICAg
ICAgICAgICAgJG93bmVkX2NvbW1pdF91cGRhdGVfbGlzdCA9IGFycmF5KCk7CiAgICAgICAgICAg
ICBmb3JlYWNoKCRjb21taXRfaW5mb1snb3duZWRDb21taXRzJ10gYXMgJG93bmVkX3JlcG9zaXRv
cnlfbmFtZSA9PiAmJG93bmVkX2NvbW1pdF9pbmZvKSB7CisgICAgICAgICAgICAgICAgc2VsZjo6
dmFsaWRhdGVfY29tbWl0cygkb3duZWRfY29tbWl0X2luZm8sIHRydWUpOwogICAgICAgICAgICAg
ICAgICRvd25lZF9jb21taXQgPSAmc2VsZjo6Y29uc3RydWN0X2NvbW1pdF9kYXRhKCRvd25lZF9j
b21taXRfaW5mbywgJG93bmVkX3JlcG9zaXRvcnlfbmFtZSwgJHNob3VsZF9pbnNlcnQpOwogICAg
ICAgICAgICAgICAgICRvd25lZF9jb21taXRfdXBkYXRlID0gYXJyYXkoJ2NvbW1pdCcgPT4gJiRv
d25lZF9jb21taXQsICdyZXBvc2l0b3J5JyA9PiAkb3duZWRfcmVwb3NpdG9yeV9uYW1lKTsKIApA
QCAtMTQzLDE1ICsxNDksMTggQEAgY2xhc3MgQ29tbWl0VXBkYXRlciB7CiAgICAgICAgICAgICAk
Y29tbWl0X2RhdGFbJ3RpbWUnXSA9ICRjb21taXRfaW5mb1sndGltZSddOwogICAgICAgICB9CiAK
KyAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJ3JldmlzaW9uSWRlbnRpZmllcicsICRjb21t
aXRfaW5mbykpCisgICAgICAgICAgICAkY29tbWl0X2RhdGFbJ3JldmlzaW9uX2lkZW50aWZpZXIn
XSA9ICRjb21taXRfaW5mb1sncmV2aXNpb25JZGVudGlmaWVyJ107CisKICAgICAgICAgaWYgKCRz
aG91bGRfaW5zZXJ0KQogICAgICAgICAgICAgJGNvbW1pdF9kYXRhWydyZXBvcnRlZCddID0gdHJ1
ZTsKIAogICAgICAgICByZXR1cm4gJGNvbW1pdF9kYXRhOwogICAgIH0KIAotICAgIHByaXZhdGUg
c3RhdGljIGZ1bmN0aW9uIHZhbGlkYXRlX2NvbW1pdHMoJiRjb21taXRfaW5mbykKKyAgICBwcml2
YXRlIHN0YXRpYyBmdW5jdGlvbiB2YWxpZGF0ZV9jb21taXRzKCYkY29tbWl0X2luZm8sICRpc19v
d25fY29tbWl0ID0gZmFsc2UpCiAgICAgewotICAgICAgICBpZiAoIWFycmF5X2tleV9leGlzdHMo
J3JlcG9zaXRvcnknLCAkY29tbWl0X2luZm8pKQorICAgICAgICBpZiAoIWFycmF5X2tleV9leGlz
dHMoJ3JlcG9zaXRvcnknLCAkY29tbWl0X2luZm8pICYmICEkaXNfb3duX2NvbW1pdCkKICAgICAg
ICAgICAgIGV4aXRfd2l0aF9lcnJvcignTWlzc2luZ1JlcG9zaXRvcnlOYW1lJywgYXJyYXkoJ2Nv
bW1pdCcgPT4gJGNvbW1pdF9pbmZvKSk7CiAgICAgICAgIGlmICghYXJyYXlfa2V5X2V4aXN0cygn
cmV2aXNpb24nLCAkY29tbWl0X2luZm8pKQogICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdN
aXNzaW5nUmV2aXNpb24nLCBhcnJheSgnY29tbWl0JyA9PiAkY29tbWl0X2luZm8pKTsKQEAgLTE2
MCw2ICsxNjksOCBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsKICAgICAgICAgICAgIGV4aXRfd2l0
aF9lcnJvcignSW52YWxpZEF1dGhvckZvcm1hdCcsIGFycmF5KCdjb21taXQnID0+ICRjb21taXRf
aW5mbykpOwogICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncHJldmlvdXNDb21taXQnLCAk
Y29tbWl0X2luZm8pKQogICAgICAgICAgICAgcmVxdWlyZV9mb3JtYXQoJ1JldmlzaW9uJywgJGNv
bW1pdF9pbmZvWydwcmV2aW91c0NvbW1pdCddLCAnL15bQS1aYS16MC05IFwuXSskLycpOworICAg
ICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncmV2aXNpb25JZGVudGlmaWVyJywgJGNvbW1pdF9p
bmZvKSkKKyAgICAgICAgICAgIHJlcXVpcmVfZm9ybWF0KCdSZXZpc2lvbklkZW50aWZpZXInLCAk
Y29tbWl0X2luZm9bJ3JldmlzaW9uSWRlbnRpZmllciddLCAnL15cZCtAW1x3XC5cLV0rJC8nKTsK
ICAgICB9CiAKICAgICBwcml2YXRlIGZ1bmN0aW9uIHJlc29sdmVfcmVwb3NpdG9yeSgkcmVwb3Np
dG9yeV9uYW1lLCAkb3duZXJfcmVwb3NpdG9yeV9pZCwgJHNob3VsZF9pbnNlcnQpCmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3J0LXByb2Nl
c3Nvci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3J0
LXByb2Nlc3Nvci5waHAKaW5kZXggMWJjMWRiNjQyZGJlZmVmOGVjYjA3MmUxOGI1N2U5YzkxYmMw
NzIzYy4uYWJlZDhhZTAwOGNkZmM4NGQ2MjM4N2IyZGEwZTlhMjM0MTZhMjRjNyAxMDA2NDQKLS0t
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL3JlcG9ydC1wcm9jZXNz
b3IucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9yZXBv
cnQtcHJvY2Vzc29yLnBocApAQCAtMTU5LDE0ICsxNTksMTYgQEAgY2xhc3MgUmVwb3J0UHJvY2Vz
c29yIHsKICAgICAgICAgICAgICAgICAkdGhpcy0+cm9sbGJhY2tfd2l0aF9lcnJvcignRmFpbGVk
VG9VcGRhdGVCdWlsZFJlcXVlc3QnLCBhcnJheSgnYnVpbGRSZXF1ZXN0JyA9PiAkYnVpbGRfcmVx
dWVzdF9pZCwgJ2J1aWxkJyA9PiAkYnVpbGRfaWQpKTsKICAgICAgICAgfQogCi0KICAgICAgICAg
Zm9yZWFjaCAoJHJldmlzaW9ucyBhcyAkcmVwb3NpdG9yeV9uYW1lID0+ICRyZXZpc2lvbl9kYXRh
KSB7CiAgICAgICAgICAgICAkcmVwb3NpdG9yeV9pZCA9ICR0aGlzLT5kYi0+c2VsZWN0X29yX2lu
c2VydF9yb3coJ3JlcG9zaXRvcmllcycsICdyZXBvc2l0b3J5JywgYXJyYXkoJ25hbWUnID0+ICRy
ZXBvc2l0b3J5X25hbWUsICdvd25lcicgPT4gTlVMTCkpOwogICAgICAgICAgICAgaWYgKCEkcmVw
b3NpdG9yeV9pZCkKICAgICAgICAgICAgICAgICAkdGhpcy0+cm9sbGJhY2tfd2l0aF9lcnJvcign
RmFpbGVkVG9JbnNlcnRSZXBvc2l0b3J5JywgYXJyYXkoJ25hbWUnID0+ICRyZXBvc2l0b3J5X25h
bWUpKTsKIAotICAgICAgICAgICAgJGNvbW1pdF9kYXRhID0gYXJyYXkoJ3JlcG9zaXRvcnknID0+
ICRyZXBvc2l0b3J5X2lkLCAncmV2aXNpb24nID0+ICRyZXZpc2lvbl9kYXRhWydyZXZpc2lvbidd
LCAndGltZScgPT4gYXJyYXlfZ2V0KCRyZXZpc2lvbl9kYXRhLCAndGltZXN0YW1wJykpOwotCisg
ICAgICAgICAgICAkY29tbWl0X2RhdGEgPSBhcnJheSgKKyAgICAgICAgICAgICAgICAncmVwb3Np
dG9yeScgPT4gJHJlcG9zaXRvcnlfaWQsIAorICAgICAgICAgICAgICAgICdyZXZpc2lvbicgPT4g
JHJldmlzaW9uX2RhdGFbJ3JldmlzaW9uJ10sIAorICAgICAgICAgICAgICAgICd0aW1lJyA9PiBh
cnJheV9nZXQoJHJldmlzaW9uX2RhdGEsICd0aW1lc3RhbXAnKSwgCisgICAgICAgICAgICAgICAg
J3JldmlzaW9uX2lkZW50aWZpZXInID0+IGFycmF5X2dldCgkcmV2aXNpb25fZGF0YSwgJ3Jldmlz
aW9uSWRlbnRpZmllcicsIG51bGwpKTsKICAgICAgICAgICAgICRtaXNtYXRjaGluZ19jb21taXQg
PSAkdGhpcy0+ZGItPnF1ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCAqIEZST00gYnVpbGRfY29t
bWl0cywgY29tbWl0cwogICAgICAgICAgICAgICAgIFdIRVJFIGJ1aWxkX2NvbW1pdCA9IGNvbW1p
dF9pZCBBTkQgY29tbWl0X2J1aWxkID0gJDEgQU5EIGNvbW1pdF9yZXBvc2l0b3J5ID0gJDIgQU5E
IGNvbW1pdF9yZXZpc2lvbiAhPSAkMyBMSU1JVCAxJywKICAgICAgICAgICAgICAgICBhcnJheSgk
YnVpbGRfaWQsICRyZXBvc2l0b3J5X2lkLCAkcmV2aXNpb25fZGF0YVsncmV2aXNpb24nXSkpOwpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29t
bWl0LWxvZy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2Nv
bW1pdC1sb2cuanMKaW5kZXggZTZkNGQ0NGFiYjU1NDEzNDZlMmY0YTlkNDQwMDlmNzlhNzgyOTAw
Yi4uMTgzYmM5M2Y5MDJmYjM2ODdmYzUwYzZhM2NmOTBhYjU0N2U1NWQxOCAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9n
LmpzCkBAIC0yMCw2ICsyMCw3IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9i
amVjdCB7CiAKICAgICAgICAgY29uc29sZS5hc3NlcnQoK3RoaXMuX3Jhd0RhdGFbJ3RpbWUnXSA9
PSArcmF3RGF0YVsndGltZSddKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fcmF3RGF0
YVsncmV2aXNpb24nXSA9PSByYXdEYXRhWydyZXZpc2lvbiddKTsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQodGhpcy5fcmF3RGF0YVsncmV2aXNpb25JZGVudGlmaWVyJ10gPT0gcmF3RGF0YVsncmV2
aXNpb25JZGVudGlmaWVyJ10pOwogCiAgICAgICAgIGlmIChyYXdEYXRhLmF1dGhvck5hbWUpCiAg
ICAgICAgICAgICB0aGlzLl9yYXdEYXRhLmF1dGhvck5hbWUgPSByYXdEYXRhLmF1dGhvck5hbWU7
CkBAIC0zOSw2ICs0MCw3IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVj
dCB7CiAgICAgdGVzdGFiaWxpdHkoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWyd0ZXN0YWJpbGl0
eSddOyB9CiAgICAgYXV0aG9yKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsnYXV0aG9yTmFtZSdd
OyB9CiAgICAgcmV2aXNpb24oKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydyZXZpc2lvbiddOyB9
CisgICAgcmV2aXNpb25JZGVudGlmaWVyKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsncmV2aXNp
b25JZGVudGlmaWVyJ107IH0KICAgICBtZXNzYWdlKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsn
bWVzc2FnZSddOyB9CiAgICAgdXJsKCkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeS51cmxGb3JS
ZXZpc2lvbih0aGlzLl9yYXdEYXRhWydyZXZpc2lvbiddKTsgfQogICAgIG93bnNDb21taXRzKCkg
eyByZXR1cm4gdGhpcy5fcmF3RGF0YVsnb3duc0NvbW1pdHMnXTsgfQpAQCAtNDgsMTUgKzUwLDQw
IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgaGFzQ29t
bWl0T3JkZXIoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydvcmRlciddICE9IG51bGw7IH0KICAg
ICBzZXRPd25lckNvbW1pdHMob3duZXJDb21taXQpIHsgdGhpcy5fb3duZXJDb21taXQgPSBvd25l
ckNvbW1pdDsgfQogCi0gICAgbGFiZWwoKQorICAgIGxhYmVsKCkgeyByZXR1cm4gQ29tbWl0TG9n
Ll9mb3JtYXR0dGVkUmV2aXNpb24odGhpcy5yZXZpc2lvbigpLCB0aGlzLnJldmlzaW9uSWRlbnRp
ZmllcigpKTsgfQorCisgICAgc3RhdGljIHJlcG9zaXRvcnlUeXBlKHJldmlzaW9uKQorICAgIHsK
KyAgICAgICAgaWYgKHBhcnNlSW50KHJldmlzaW9uKSA9PSByZXZpc2lvbikKKyAgICAgICAgICAg
IHJldHVybiAnc3ZuJzsKKyAgICAgICAgaWYgKHJldmlzaW9uLmxlbmd0aCA9PSA0MCkKKyAgICAg
ICAgICAgIHJldHVybiAnZ2l0JzsKKyAgICB9CisKKyAgICBzdGF0aWMgX2Zvcm1hdHR0ZWRSZXZp
c2lvbihyZXZpc2lvbiwgcmV2aXNpb25JZGVudGlmaWVyPW51bGwpIAogICAgIHsKLSAgICAgICAg
Y29uc3QgcmV2aXNpb24gPSB0aGlzLnJldmlzaW9uKCk7Ci0gICAgICAgIGlmIChwYXJzZUludChy
ZXZpc2lvbikgPT0gcmV2aXNpb24pIC8vIGUuZy4gcjEyMzQ1Ci0gICAgICAgICAgICByZXR1cm4g
J3InICsgcmV2aXNpb247Ci0gICAgICAgIGlmIChyZXZpc2lvbi5sZW5ndGggPT0gNDApIC8vIGUu
Zy4gZ2l0IGhhc2gKLSAgICAgICAgICAgIHJldHVybiByZXZpc2lvbi5zdWJzdHJpbmcoMCwgMTIp
OwotICAgICAgICByZXR1cm4gcmV2aXNpb247CisgICAgICAgIGxldCBmb3JtYXR0ZWRSZXZpc2lv
biA9IHJldmlzaW9uOworICAgICAgICBsZXQgcmVwb3NpdG9yeVR5cGUgPSBDb21taXRMb2cucmVw
b3NpdG9yeVR5cGUocmV2aXNpb24pOworICAgICAgICBpZiAocmVwb3NpdG9yeVR5cGUgPT0gJ3N2
bicpIC8vIGUuZy4gcjEyMzQ1CisgICAgICAgICAgICBmb3JtYXR0ZWRSZXZpc2lvbiA9ICAncicg
KyByZXZpc2lvbjsKKyAgICAgICAgaWYgKHJlcG9zaXRvcnlUeXBlID09ICdnaXQnKSAvLyBlLmcu
IGdpdCBoYXNoCisgICAgICAgICAgICBmb3JtYXR0ZWRSZXZpc2lvbiA9IHJldmlzaW9uLnN1YnN0
cmluZygwLCAxMik7CisgICAgICAgIGlmIChyZXZpc2lvbklkZW50aWZpZXIpCisgICAgICAgICAg
ICBmb3JtYXR0ZWRSZXZpc2lvbiA9IGAke3JldmlzaW9uSWRlbnRpZmllcn0gKCR7Zm9ybWF0dGVk
UmV2aXNpb259KWA7CisgICAgICAgIHJldHVybiBmb3JtYXR0ZWRSZXZpc2lvbjsKICAgICB9CisK
KyAgICByZXZpc2lvbklkZW50aWZpZXJQYXJ0cygpIAorICAgIHsgCisgICAgICAgIGNvbnN0IHJl
dmlzaW9uSWRlbnRpZmllciA9ICB0aGlzLnJldmlzaW9uSWRlbnRpZmllcigpOworICAgICAgICBp
ZiAoIXJldmlzaW9uSWRlbnRpZmllcikKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAg
ICBjb25zdCBpZGVudGlmaWVyUmUgPSAvKD88bnVtYmVyPlxkKylAKD88YnJhbmNoPltcd1wuXC1d
KykvOworICAgICAgICBjb25zdCBtYXRjaGVzID0gaWRlbnRpZmllclJlLmV4ZWMocmV2aXNpb25J
ZGVudGlmaWVyKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQobWF0Y2hlcyk7CisgICAgICAgIHJl
dHVybiBtYXRjaGVzLmdyb3VwczsKKyAgICB9CisKICAgICB0aXRsZSgpIHsgcmV0dXJuIHRoaXMu
X3JlcG9zaXRvcnkubmFtZSgpICsgJyBhdCAnICsgdGhpcy5sYWJlbCgpOyB9CiAKICAgICBkaWZm
KHByZXZpb3VzQ29tbWl0KQpAQCAtNjgsMTcgKzk1LDI0IEBAIGNsYXNzIENvbW1pdExvZyBleHRl
bmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgICAgIGlmICghcHJldmlvdXNDb21taXQpCiAgICAg
ICAgICAgICByZXR1cm4ge3JlcG9zaXRvcnk6IHJlcG9zaXRvcnksIGxhYmVsOiB0aGlzLmxhYmVs
KCksIHVybDogdGhpcy51cmwoKX07CiAKLSAgICAgICAgY29uc3QgdG8gPSB0aGlzLnJldmlzaW9u
KCk7Ci0gICAgICAgIGNvbnN0IGZyb20gPSBwcmV2aW91c0NvbW1pdC5yZXZpc2lvbigpOwotICAg
ICAgICBsZXQgbGFiZWwgPSBudWxsOwotICAgICAgICBpZiAocGFyc2VJbnQoZnJvbSkgPT0gZnJv
bSkvLyBlLmcuIHIxMjM0NS4KLSAgICAgICAgICAgIGxhYmVsID0gYHIke2Zyb219LXIke3RoaXMu
cmV2aXNpb24oKX1gOwotICAgICAgICBlbHNlIGlmICh0by5sZW5ndGggPT0gNDApIC8vIGUuZy4g
Z2l0IGhhc2gKLSAgICAgICAgICAgIGxhYmVsID0gYCR7ZnJvbS5zdWJzdHJpbmcoMCwgMTIpfS4u
JHt0by5zdWJzdHJpbmcoMCwgMTIpfWA7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGxhYmVs
ID0gYCR7ZnJvbX0gLSAke3RvfWA7Ci0KLSAgICAgICAgcmV0dXJuIHtyZXBvc2l0b3J5OiByZXBv
c2l0b3J5LCBsYWJlbDogbGFiZWwsIHVybDogcmVwb3NpdG9yeS51cmxGb3JSZXZpc2lvblJhbmdl
KGZyb20sIHRvKX07CisgICAgICAgIGNvbnN0IHRvUmV2aXNpb24gPSB0aGlzLnJldmlzaW9uKCk7
CisgICAgICAgIGNvbnN0IGZyb21SZXZpc2lvbiA9IHByZXZpb3VzQ29tbWl0LnJldmlzaW9uKCk7
CisgICAgICAgIGNvbnN0IHRvTWF0Y2ggPSB0aGlzLnJldmlzaW9uSWRlbnRpZmllclBhcnRzKCk7
CisgICAgICAgIGNvbnN0IGZyb21NYXRjaCA9IHByZXZpb3VzQ29tbWl0LnJldmlzaW9uSWRlbnRp
ZmllclBhcnRzKCk7CisgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlUeXBlID0gQ29tbWl0TG9nLnJl
cG9zaXRvcnlUeXBlKHRvUmV2aXNpb24pOworICAgICAgIAorICAgICAgICBsZXQgbGFiZWwgPSAo
KCkgPT4geworICAgICAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gcmVwb3NpdG9yeVR5cGUgPT0g
J2dpdCcgPyAnLi4nIDogKHJlcG9zaXRvcnlUeXBlID09ICdzdm4nID8gJy0nIDogJyAtICcpOwor
ICAgICAgICAgICAgaWYgKGZyb21NYXRjaCAmJiB0b01hdGNoKSB7CisgICAgICAgICAgICAgICAg
Y29uc29sZS5hc3NlcnQoZnJvbU1hdGNoLmJyYW5jaCA9PSB0b01hdGNoLmJyYW5jaCk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIGAke2Zyb21NYXRjaC5udW1iZXJ9LSR7dG9NYXRjaC5udW1iZXJ9
QCR7ZnJvbU1hdGNoLmJyYW5jaH0gKCR7Q29tbWl0TG9nLl9mb3JtYXR0dGVkUmV2aXNpb24oZnJv
bVJldmlzaW9uKX0ke3NlcGFyYXRvcn0ke0NvbW1pdExvZy5fZm9ybWF0dHRlZFJldmlzaW9uKHRv
UmV2aXNpb24pfSlgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZnJvbU1hdGNoIHx8
IHRvTWF0Y2gpCisgICAgICAgICAgICAgICAgcmV0dXJuIGAke3ByZXZpb3VzQ29tbWl0LmxhYmVs
KCl9IC0gJHt0aGlzLmxhYmVsKCl9YDsKKyAgICAgICAgICAgIHJldHVybiBgJHtwcmV2aW91c0Nv
bW1pdC5sYWJlbCgpfSR7c2VwYXJhdG9yfSR7dGhpcy5sYWJlbCgpfWA7CisgICAgICAgIH0pKCk7
CisKKyAgICAgICAgcmV0dXJuIHtyZXBvc2l0b3J5OiByZXBvc2l0b3J5LCBsYWJlbDogbGFiZWws
IHVybDogcmVwb3NpdG9yeS51cmxGb3JSZXZpc2lvblJhbmdlKGZyb21SZXZpc2lvbiwgdG9SZXZp
c2lvbil9OwogICAgIH0KIAogICAgIHN0YXRpYyBmZXRjaExhdGVzdENvbW1pdEZvclBsYXRmb3Jt
KHJlcG9zaXRvcnksIHBsYXRmb3JtKQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMKaW5kZXggMjg1NjlmMDYz
NzMwNGUzYTYyY2Y3NzAwOTIzOTNmN2YwZTczNjU5Ny4uYTMzMTIxYTBlYzExYWYzMDE0ZWZmNDRl
OTAwMmNiYjAxZTRjMDRkZiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzCkBAIC0xNyw2ICsxNyw3IEBA
IGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCiAgICAgICAgICAgICAgICAg
InJldmlzaW9uIjogIjIxMDk0OCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmll
ciI6ICIxODQyNzZAbWFpbiIsCiAgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQw
Mjo1MjozNC41NzdaIiwKICAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIlphbGFu
IEJ1anRhcyIsICJhY2NvdW50IjogInphbGFuQGFwcGxlLmNvbSJ9LAogICAgICAgICAgICAgICAg
ICJtZXNzYWdlIjogImEgbWVzc2FnZSIsCkBAIC0yNCw2ICsyNSw3IEBAIGRlc2NyaWJlKCIvYXBp
L2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICJyZXBvc2l0b3J5IjogIldlYktpdCIsCiAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIx
MDk0OSIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxODQyNzdAbWFp
biIsCiAgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMzoyMzo1MC42NDVaIiwK
ICAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNocmlzIER1bWV6IiwgImFjY291
bnQiOiAiY2R1bWV6QGFwcGxlLmNvbSJ9LAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogInNv
bWUgbWVzc2FnZSIsCkBAIC0zMiwxMiArMzQsNTMgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8i
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwK
ICAgICAgICAgICAgICAgICAicHJldmlvdXNDb21taXQiOiAiMjEwOTQ5IiwKICAgICAgICAgICAg
ICAgICAicmV2aXNpb24iOiAiMjEwOTUwIiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVu
dGlmaWVyIjogIjE4NDI3OEBtYWluIiwKICAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAx
LTIwVDAzOjQ5OjM3Ljg4N1oiLAogICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAi
Q29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmcifSwKICAg
ICAgICAgICAgICAgICAibWVzc2FnZSI6ICJhbm90aGVyIG1lc3NhZ2UiLAorICAgICAgICAgICAg
fSwKKyAgICAgICAgXQorICAgIH07CisKKyAgICBjb25zdCBzdWJjZXJzaW9uQ29tbWl0c1dpdGhG
YWtlUmV2aXNpb25JZGVudGlmaWVyID0geworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2
ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJj
b21taXRzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5Ijog
IldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OCIsCisgICAgICAg
ICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxODQyNzZAbWFpbiIsCisgICAgICAgICAg
ICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMjo1MjozNC41NzdaIiwKKyAgICAgICAgICAgICAg
ICAiYXV0aG9yIjogeyJuYW1lIjogIlphbGFuIEJ1anRhcyIsICJhY2NvdW50IjogInphbGFuQGFw
cGxlLmNvbSJ9LAorICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImEgbWVzc2FnZSIsCisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5Ijog
IldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OSIsCisgICAgICAg
ICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxODQyNzdAbWFpbiIsCisgICAgICAgICAg
ICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMzoyMzo1MC42NDVaIiwKKyAgICAgICAgICAgICAg
ICAiYXV0aG9yIjogeyJuYW1lIjogIkNocmlzIER1bWV6IiwgImFjY291bnQiOiAiY2R1bWV6QGFw
cGxlLmNvbSJ9LAorICAgICAgICAgICAgICAgICJtZXNzYWdlIjogInNvbWUgbWVzc2FnZSIsCisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5
IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInByZXZpb3VzQ29tbWl0IjogIjIxMDk0OSIs
CisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk1MCIsCisgICAgICAgICAgICAgICAg
InJldmlzaW9uSWRlbnRpZmllciI6ICIxODQyNzhAbWFpbiIsCisgICAgICAgICAgICAgICAgInRp
bWUiOiAiMjAxNy0wMS0yMFQwMzo0OTozNy44ODdaIiwKKyAgICAgICAgICAgICAgICAiYXV0aG9y
IjogeyJuYW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50IjogImNvbW1pdC1xdWV1ZUB3ZWJr
aXQub3JnIn0sCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdlIiwK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9zaXRv
cnkiOiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTUxIiwKKyAg
ICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3OEBzb21ldGhpbmciLAor
ICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDM6NDk6NDAuODg3WiIsCisgICAg
ICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3VudCI6
ICJjb21taXQtcXVldWVAd2Via2l0Lm9yZyJ9LAorICAgICAgICAgICAgICAgICJtZXNzYWdlIjog
ImFub3RoZXIgbWVzc2FnZSIsCiAgICAgICAgICAgICB9CiAgICAgICAgIF0KLSAgICB9CisgICAg
fTsKIAogICAgIGNvbnN0IGNvbW1pdHNPbmVQcmVmaXhPZlRoZU90aGVyID0gewogICAgICAgICAi
c2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCkBAIC00Niw2ICs4OSw3IEBAIGRlc2NyaWJlKCIvYXBp
L2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICJyZXBvc2l0b3J5IjogIldlYktpdCIsCiAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIx
MDk0IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3MkBtYWlu
IiwKICAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAyOjUyOjM0LjU3N1oiLAog
ICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiWmFsYW4gQnVqdGFzIiwgImFjY291
bnQiOiAiemFsYW5AYXBwbGUuY29tIn0sCiAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYSBt
ZXNzYWdlIiwKQEAgLTUzLDYgKzk3LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAi
V2ViS2l0IiwKICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQ5IiwKKyAgICAgICAg
ICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3N0BtYWluIiwKICAgICAgICAgICAg
ICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjIzOjUwLjY0NVoiLAogICAgICAgICAgICAgICAg
ICJhdXRob3IiOiB7Im5hbWUiOiAiQ2hyaXMgRHVtZXoiLCAiYWNjb3VudCI6ICJjZHVtZXpAYXBw
bGUuY29tIn0sCiAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAic29tZSBtZXNzYWdlIiwKQEAg
LTUyNCw2ICs1NjksNDEgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoInNob3VsZCByZXR1
cm4gY29tbWl0IHdpdGggY29tbWl0IHJldmlzaW9uIGxhYmVsIiwgYXN5bmMgKCkgPT4geworICAg
ICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpOworICAg
ICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXRzKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKGAvYXBpL2NvbW1pdHMvV2ViS2l0LyR7c3VidmVyc2lvbkNvbW1pdHMuY29tbWl0c1swXS5y
ZXZpc2lvbklkZW50aWZpZXJ9YCk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0LmNvbW1pdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFz
T25lU3VibWl0dGVkKHJlc3VsdC5jb21taXRzWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0cy5jb21taXRz
WzBdKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gJ0FtYmlndW91
c1JldmlzaW9uUHJlZml4JyB3aGVuIG1vcmUgdGhhbiBvbmUgY29tbWl0cyBhcmUgZm91bmQgZm9y
IGEgcmV2aXNpb24gbGFiZWwgcHJlZml4IiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29u
c3QgcmVtb3RlID0gVGVzdFNlcnZlci5yZW1vdGVBUEkoKTsKKyAgICAgICAgICAgIGF3YWl0IGFk
ZFNsYXZlRm9yUmVwb3J0KHN1YmNlcnNpb25Db21taXRzV2l0aEZha2VSZXZpc2lvbklkZW50aWZp
ZXIpOworICAgICAgICAgICAgYXdhaXQgcmVtb3RlLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9y
ZXBvcnQtY29tbWl0cy8nLCBzdWJjZXJzaW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25JZGVudGlm
aWVyKTsKKyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcv
YXBpL2NvbW1pdHMvV2ViS2l0LzE4NDI3OEA/cHJlZml4LW1hdGNoPXRydWUnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnQW1iaWd1b3VzUmV2aXNp
b25QcmVmaXgnKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoInNob3VsZCBub3QgcmV0dXJu
ICdBbWJpZ3VvdXNSZXZpc2lvblByZWZpeCcgd2hlbiB0aGVyZSBpcyBhIGNvbW1pdCByZXZpc2lv
biBsYWJlbCBleHRyYWN0IG1hdGNoZXMgc3BlY2lmaWVkIHJldmlzaW9uIHByZWZpeCIsIGFzeW5j
ICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCk7CisgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJjZXJzaW9uQ29tbWl0
c1dpdGhGYWtlUmV2aXNpb25JZGVudGlmaWVyKTsKKyAgICAgICAgICAgIGF3YWl0IHJlbW90ZS5w
b3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3ViY2Vyc2lvbkNvbW1p
dHNXaXRoRmFrZVJldmlzaW9uSWRlbnRpZmllcik7CisgICAgICAgICAgICBjb25zdCByZXN1bHQg
PSBhd2FpdCByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8xODQyNzhAbWFpbj9w
cmVmaXgtbWF0Y2g9dHJ1ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Vs
dFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChy
ZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNT
YW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1YmNlcnNpb25Db21taXRz
V2l0aEZha2VSZXZpc2lvbklkZW50aWZpZXJbJ2NvbW1pdHMnXVsyXSk7CisgICAgICAgIH0pOwor
CisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuICdVbmtub3duQ29tbWl0JyB3aGVuIG5vIGNvbW1p
dCBpcyBmb3VuZCBmb3IgYSByZXZpc2lvbiBsYWJlbCBwcmVmaXgiLCBhc3luYyAoKSA9PiB7Cisg
ICAgICAgICAgICBjb25zdCByZW1vdGUgPSBUZXN0U2VydmVyLnJlbW90ZUFQSSgpOworICAgICAg
ICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3ViY2Vyc2lvbkNvbW1pdHNXaXRoRmFrZVJl
dmlzaW9uSWRlbnRpZmllcik7CisgICAgICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRo
U3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YmNlcnNpb25Db21taXRzV2l0aEZha2VS
ZXZpc2lvbklkZW50aWZpZXIpOworICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVt
b3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMTg0Mjc4QHg/cHJlZml4LW1hdGNoPXRy
dWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAn
VW5rbm93bkNvbW1pdCcpOworICAgICAgICB9KTsKICAgICB9KTsKIAogICAgIGRlc2NyaWJlKCcv
YXBpL2NvbW1pdHMvPHJlcG9zaXRvcnk+L293bmVkLWNvbW1pdHM/b3duZXItcmV2aXNpb249PGNv
bW1pdD4nLCAoKSA9PiB7CkBAIC03MjcsNiArODA3LDMzIEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1p
dHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCisgICAg
ICAgIGl0KCJzaG91bGQgcmV0dXJuIHJlcG9ydGVkIGNvbW1pdHMgaW4gdGhlIHNwZWNpZmllZCBy
ZXZpc2lvbiBsYWJlbCByYW5nZSIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGRi
ID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdy
ZXBvc2l0b3JpZXMnLCB7J2lkJzogMSwgJ25hbWUnOiAnV2ViS2l0J30pOworICAgICAgICAgICAg
YXdhaXQgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzog
JzIxMDk0OCcsICdyZXZpc2lvbl9pZGVudGlmaWVyJzogJzE4NDI3NkBtYWluJywgJ3RpbWUnOiAn
MjAxNy0wMS0yMFQwMjo1MjozNC41NzdaJywgJ3JlcG9ydGVkJzogdHJ1ZX0pOworICAgICAgICAg
ICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9u
JzogJzIxMDk0OScsICdyZXZpc2lvbl9pZGVudGlmaWVyJzogJzE4NDI3N0BtYWluJywgJ3RpbWUn
OiAnMjAxNy0wMS0yMFQwMzoyMzo1MC42NDVaJywgJ3JlcG9ydGVkJzogdHJ1ZX0pOworICAgICAg
ICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3Jldmlz
aW9uJzogJzIxMDk1MCcsICdyZXZpc2lvbl9pZGVudGlmaWVyJzogJzE4NDI3OEBtYWluJywgJ3Rp
bWUnOiAnMjAxNy0wMS0yMFQwMzo0OTozNy44ODdaJywgJ3JlcG9ydGVkJzogdHJ1ZX0pOworICAg
ICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRK
U09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRpbmdSZXZpc2lvbj0xODQyNzZAbWFpbiZs
YXN0UmV2aXNpb249MTg0Mjc4QG1haW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0
RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydENv
bW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCB7CisgICAgICAg
ICAgICAgICAgcHJldmlvdXNDb21taXQ6IG51bGwsCisgICAgICAgICAgICAgICAgcmV2aXNpb246
ICcyMTA5NDknLAorICAgICAgICAgICAgICAgIHJldmlzaW9uSWRlbnRpZmllcjogJzE4NDI4OUBt
YWluJywKKyAgICAgICAgICAgICAgICB0aW1lOiAnMjAxNy0wMS0yMFQwMzoyMzo1MC42NDVaJywK
KyAgICAgICAgICAgICAgICBhdXRob3I6IHtuYW1lOiBudWxsLCBhY2NvdW50OiBudWxsfSwKKyAg
ICAgICAgICAgICAgICBtZXNzYWdlOiBudWxsLAorICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVsxXSwg
eworICAgICAgICAgICAgICAgIHByZXZpb3VzQ29tbWl0OiBudWxsLAorICAgICAgICAgICAgICAg
IHJldmlzaW9uOiAnMjEwOTUwJywKKyAgICAgICAgICAgICAgICByZXZpc2lvbklkZW50aWZpZXI6
ICcxODQyOTBAbWFpbicsCisgICAgICAgICAgICAgICAgdGltZTogJzIwMTctMDEtMjBUMDM6NDk6
MzcuODg3WicsCisgICAgICAgICAgICAgICAgYXV0aG9yOiB7bmFtZTogbnVsbCwgYWNjb3VudDog
bnVsbH0sCisgICAgICAgICAgICAgICAgbWVzc2FnZTogbnVsbCwKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9KTsKKwogICAgICAgICBpdCgic2hvdWxkIG5vdCBpbmNsdWRlIGEgcmV2aXNpb24g
bm90IHdpdGhpbiB0aGUgc3BlY2lmaWVkIHJhbmdlIiwgKCkgPT4gewogICAgICAgICAgICAgY29u
c3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CiAgICAgICAgICAgICBjb25zdCByZW1vdGUg
PSBUZXN0U2VydmVyLnJlbW90ZUFQSSgpOwpAQCAtNzUwLDYgKzg1NywyMyBAQCBkZXNjcmliZSgi
L2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9
KTsKIAorICAgICAgICBpdCgic2hvdWxkIG5vdCBpbmNsdWRlIGEgcmV2aXNpb24gbm90IHdpdGhp
biB0aGUgc3BlY2lmaWVkIGNvbW1pdCByZXZpc2lvbiBsYWJlbCByYW5nZSIsIGFzeW5jICgpID0+
IHsKKyAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAg
ICAgICAgY29uc3QgcmVtb3RlID0gVGVzdFNlcnZlci5yZW1vdGVBUEkoKTsKKyAgICAgICAgICAg
IGF3YWl0IGRiLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEsICduYW1lJzogJ1dlYktp
dCd9KSwKKyAgICAgICAgICAgIGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9y
eSc6IDEsICdyZXZpc2lvbic6ICcyMTA5NDcnLCAncmV2aXNpb25faWRlbnRpZmllcic6ICcxODQy
NzVAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDI6Mzg6NDUuNDg1WicsICdyZXBvcnRlZCc6
IGZhbHNlfSk7CisgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9z
aXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTQ4JywgJ3JldmlzaW9uX2lkZW50aWZpZXInOiAn
MTg0Mjc2QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIwVDAyOjUyOjM0LjU3N1onLCAncmVwb3J0
ZWQnOiBmYWxzZX0pOworICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21taXRzJywgeydy
ZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk0OScsICdyZXZpc2lvbl9pZGVudGlmaWVy
JzogJzE4NDI3N0BtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMzoyMzo1MC42NDVaJywgJ3Jl
cG9ydGVkJzogZmFsc2V9KTsKKyAgICAgICAgICAgIGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycs
IHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6ICcyMTA5NTAnLCAncmV2aXNpb25faWRlbnRp
Zmllcic6ICcxODQyNzhAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDM6NDk6MzcuODg3Wics
ICdyZXBvcnRlZCc6IGZhbHNlfSk7CisgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9y
dChzdWJ2ZXJzaW9uQ29tbWl0cyk7CisgICAgICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT05X
aXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXRzKTsKKyAg
ICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1p
dHMvV2ViS2l0Lz9wcmVjZWRpbmdSZXZpc2lvbj0xODQyNzVAbWFpbiZsYXN0UmV2aXNpb249MTg0
Mjc3QG1haW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1
cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25l
U3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0c1snY29tbWl0
cyddWzBdKTsKKyAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJl
c3VsdFsnY29tbWl0cyddWzFdLCBzdWJ2ZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzFdKTsKKyAg
ICAgICAgfSk7CisKICAgICB9KTsKIAogfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtY29tbWl0cy10ZXN0cy5qcyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3Rz
LmpzCmluZGV4IGI0ZWU3MjZmMzU1MzAyYWIxOGQ2YzczNmNiYjQwYzMwYzRiMTg1OWIuLjllNmEw
MGE5NzdmYTIxYjk0NGY0OWRjYWYxZTc2ZDc5ZWQ0MzZmYzEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpz
CisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1j
b21taXRzLXRlc3RzLmpzCkBAIC0yNiw2ICsyNiwyMCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQt
Y29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0K
ICAgICAgICAgXSwKICAgICB9OworICAgIGNvbnN0IHN1YnZlcnNpb25Db21taXRXaXRoUmV2aXNp
b25JZGVudGlmaWVyID0geworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAg
ICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjog
WworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIs
CisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3NyIsCisgICAgICAgICAgICAgICAg
InJldmlzaW9uSWRlbnRpZmllciI6ICIxMjcyMzFAbWFpbiIsCisgICAgICAgICAgICAgICAgInRp
bWUiOiAiMjAxMy0wMi0wNlQwODo1NToyMC45WiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6
IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Via2l0
Lm9yZyJ9LAorICAgICAgICAgICAgICAgICJtZXNzYWdlIjogInNvbWUgbWVzc2FnZSIsCisgICAg
ICAgICAgICB9CisgICAgICAgIF0sCisgICAgfTsKICAgICBjb25zdCBzdWJ2ZXJzaW9uSW52YWxp
ZENvbW1pdCA9IHsKICAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAogICAgICAgICAi
c2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLApAQCAtNzYsNiArOTAsNDQgQEAgZGVzY3Jp
YmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIF0KICAgICB9CiAKKyAgICBjb25zdCBkdXBsaWNhdGVkQ29tbWl0UmV2aXNpb25J
ZGVudGlmaWVyQ29tbWl0cyA9IHsKKyAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAor
ICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAiY29tbWl0
cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJL
aXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDgiLAorICAgICAgICAgICAg
ICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0Mjc2QG1haW4iLAorICAgICAgICAgICAgICAg
ICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6NTI6MzQuNTc3WiIsCisgICAgICAgICAgICAgICAgImF1
dGhvciI6IHsibmFtZSI6ICJaYWxhbiBCdWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5j
b20ifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJhIG1lc3NhZ2UiLAorICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJL
aXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDkiLAorICAgICAgICAgICAg
ICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0Mjc2QG1haW4iLAorICAgICAgICAgICAgICAg
ICJ0aW1lIjogIjIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1WiIsCisgICAgICAgICAgICAgICAgImF1
dGhvciI6IHsibmFtZSI6ICJDaHJpcyBEdW1leiIsICJhY2NvdW50IjogImNkdW1lekBhcHBsZS5j
b20ifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJzb21lIG1lc3NhZ2UiLAorICAgICAg
ICAgICAgfSwKKyAgICAgICAgXQorICAgIH0KKworICAgIGNvbnN0IGludmFsaWRDb21taXRSZXZp
c2lvbklkZW50aWZpZXJDb21taXRzID0geworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2
ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJj
b21taXRzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5Ijog
IldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OCIsCisgICAgICAg
ICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxODQyNzYiLAorICAgICAgICAgICAgICAg
ICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6NTI6MzQuNTc3WiIsCisgICAgICAgICAgICAgICAgImF1
dGhvciI6IHsibmFtZSI6ICJaYWxhbiBCdWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5j
b20ifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJhIG1lc3NhZ2UiLAorICAgICAgICAg
ICAgfSwKKyAgICAgICAgXQorICAgIH0KKwogICAgIGl0KCJzaG91bGQgcmVqZWN0IGVycm9yIHdo
ZW4gc2xhdmUgbmFtZSBpcyBtaXNzaW5nIiwgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCB7fSkudGhl
bigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdNaXNzaW5nU2xhdmVOYW1lJyk7CkBAIC0xNDUsNiArMTk3LDIyIEBAIGRl
c2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24g
KCkgewogICAgICAgICB9KTsKICAgICB9KTsKIAorICAgIGl0KCJzaG91bGQgcmVqZWN0IGFuIGlu
dmFsaWQgcmV2aXNpb24gbGFiZWwiLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFNs
YXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXQpOworICAgICAgICBjb25zdCByZXNwb25zZSA9
IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1p
dHMvJywgaW52YWxpZENvbW1pdFJldmlzaW9uSWRlbnRpZmllckNvbW1pdHMpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJldmlzaW9uSWRl
bnRpZmllcicpOworICAgICAgICBjb25zdCByb3dzID0gYXdhaXQgVGVzdFNlcnZlci5kYXRhYmFz
ZSgpLnNlbGVjdEFsbCgnY29tbWl0cycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93
cy5sZW5ndGgsIDApOworICAgIH0pOworCisgICAgaXQoInNob3VsZCByZWplY3Qgd2l0aCBkdXBs
aWNhdGVkIGNvbW1pdCByZXZpc2lvbiBsYWJlbHMiLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3
YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXQpOworICAgICAgICBjb25zdCBy
ZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVw
b3J0LWNvbW1pdHMvJywgZHVwbGljYXRlZENvbW1pdFJldmlzaW9uSWRlbnRpZmllckNvbW1pdHMp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnRHVwbGlj
YXRlZFJldmlzaW9uSWRlbnRpZmllcicpOworICAgICAgICBjb25zdCByb3dzID0gYXdhaXQgVGVz
dFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnY29tbWl0cycpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDApOworICAgIH0pOworCiAgICAgaXQoInNob3VsZCBz
dG9yZSB0d28gY29tbWl0cyBmcm9tIGEgdmFsaWQgc2xhdmUiLCAoKSA9PiB7CiAgICAgICAgIHJl
dHVybiBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uVHdvQ29tbWl0cykudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2Fw
aS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uVHdvQ29tbWl0cyk7CkBAIC0yMTUsNiArMjgz
LDI1IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICB9KTsKICAgICB9KTsKIAorICAgIGl0KCJzaG91bGQgdXBk
YXRlIGFuIGV4aXN0aW5nIGNvbW1pdCB3aXRoIGNvbW1pdCBsYWJlbCBpZiB0aGVyZSBpcyBvbmUi
LCBhc3luYyAoKSA9PiB7CisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgp
OworICAgICAgICBjb25zdCByZXBvcnRlZERhdGEgPSBzdWJ2ZXJzaW9uQ29tbWl0V2l0aFJldmlz
aW9uSWRlbnRpZmllci5jb21taXRzWzBdOworICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9y
dChzdWJ2ZXJzaW9uQ29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcik7CisgICAgICAgIGF3YWl0
IGRiLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEsICduYW1lJzogJ1dlYktpdCd9KSwK
KyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3Jl
dmlzaW9uJzogcmVwb3J0ZWREYXRhWydyZXZpc2lvbiddLCAndGltZSc6IHJlcG9ydGVkRGF0YVsn
dGltZSddfSkKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXRX
aXRoUmV2aXNpb25JZGVudGlmaWVyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3Bv
bnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGNvbnN0IGNvbW1pdHMgPSBhd2FpdCBkYi5z
ZWxlY3RBbGwoJ2NvbW1pdHMnKTsKKyAgICAgICAgY29uc3QgY29tbWl0dGVycyA9IGF3YWl0IGRi
LnNlbGVjdEFsbCgnY29tbWl0dGVycycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29t
bWl0cy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVycy5s
ZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnbWVzc2Fn
ZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChjb21taXRzWzBdWydyZXZpc2lvbl9pZGVudGlmaWVyJ10sIHJlcG9ydGVkRGF0YVsncmV2aXNp
b25JZGVudGlmaWVyJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsn
Y29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1l
J10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCdd
LCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50J10pOworICAgIH0pOworCiAgICAgaXQo
InNob3VsZCBub3QgdXBkYXRlIGFuIHVucmVsYXRlZCBjb21taXQiLCAoKSA9PiB7CiAgICAgICAg
IGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwogICAgICAgICBjb25zdCBmaXJzdERh
dGEgPSBzdWJ2ZXJzaW9uVHdvQ29tbWl0cy5jb21taXRzWzBdOwpAQCAtNTkwLDYgKzY3NywxMTEg
QEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnT3duZWRDb21taXRTaG91bGROb3RDb250YWluVGltZXN0YW1wJyk7CiAgICAgICAgIH0p
OwogICAgIH0pOworCisgICAgY29uc3QgaW52YWxpZE93bmVkQ29tbWl0VXNlUmV2aXNpb25JZGVu
dGlmaWVyQXNSZXZpc29uID0geworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisg
ICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRz
IjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIk9TWCIs
CisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIlNpZXJyYTE2RDMyIiwKKyAgICAgICAgICAg
ICAgICAib3JkZXIiOiAxLAorICAgICAgICAgICAgICAgICJvd25lZENvbW1pdHMiOiB7CisgICAg
ICAgICAgICAgICAgICAgICJXZWJLaXQiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAicmV2
aXNpb24iOiAiMTI3MjMyQG1haW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgImF1dGhvciI6
IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Via2l0
Lm9yZyJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiV2ViS2l0IENvbW1p
dCIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisgICAgICAgIF0KKyAgICB9OworCisgICAgaXQoInNob3VsZCByZWplY3QgaW5zZXJ0aW5n
IG9uZSBjb21taXQgd2l0aCBvd25lZCBjb21taXRzIHRoYXQgdXNlIHJldmlzaW9uIGxhYmVsIGFz
IHJldmlzaW9uIiwgYXN5bmMgKCkgPT4geworICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9y
dChpbnZhbGlkT3duZWRDb21taXRVc2VSZXZpc2lvbklkZW50aWZpZXJBc1Jldmlzb24pOworICAg
ICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgaW52YWxpZE93bmVkQ29tbWl0VXNlUmV2aXNpb25J
ZGVudGlmaWVyQXNSZXZpc29uKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ0ludmFsaWRSZXZpc2lvbicpOworICAgIH0pOworCisgICAgY29uc3QgaW52
YWxpZFJldmlzaW9uSWRlbnRpZmllck93bmVkQ29tbWl0ID0geworICAgICAgICAic2xhdmVOYW1l
IjogInNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIs
CisgICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJy
ZXBvc2l0b3J5IjogIk9TWCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIlNpZXJyYTE2
RDMyIiwKKyAgICAgICAgICAgICAgICAib3JkZXIiOiAxLAorICAgICAgICAgICAgICAgICJvd25l
ZENvbW1pdHMiOiB7CisgICAgICAgICAgICAgICAgICAgICJXZWJLaXQiOiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTQxOTc4IiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTI3MjMyIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmcifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJtZXNzYWdlIjog
IldlYktpdCBDb21taXQiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQorICAgICAgICBdCisgICAgfTsKKworICAgIGl0KCJzaG91bGQgcmVq
ZWN0IGluc2VydGluZyBvbmUgY29tbWl0IHdpdGggb3duZWQgY29tbWl0cyB0aGF0IGhhdmUgaW52
YWxpZCByZXZpc2lvbiBsYWJlbCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkU2xh
dmVGb3JSZXBvcnQoaW52YWxpZFJldmlzaW9uSWRlbnRpZmllck93bmVkQ29tbWl0KTsKKyAgICAg
ICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09O
KCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGludmFsaWRSZXZpc2lvbklkZW50aWZpZXJPd25lZENv
bW1pdCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJ
bnZhbGlkUmV2aXNpb25JZGVudGlmaWVyJyk7CisgICAgfSk7CisKKyAgICBjb25zdCBpbnZhbGlk
QXV0aG9yT3duZWRDb21taXQgPSB7CisgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwK
KyAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgImNvbW1p
dHMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiT1NY
IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiU2llcnJhMTZEMzIiLAorICAgICAgICAg
ICAgICAgICJvcmRlciI6IDEsCisgICAgICAgICAgICAgICAgIm93bmVkQ29tbWl0cyI6IHsKKyAg
ICAgICAgICAgICAgICAgICAgIldlYktpdCI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICJy
ZXZpc2lvbiI6ICIxNDE5NzgiLAorICAgICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uSWRl
bnRpZmllciI6ICIxMjcyMzJAbWFpbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAiYXV0aG9y
IjogbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIldlYktpdCBDb21t
aXQiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQorICAgICAgICBdCisgICAgfTsKKyAgICBpdCgic2hvdWxkIHJlamVjdCBpbnNlcnRpbmcg
b25lIGNvbW1pdCB3aXRoIG93bmVkIGNvbW1pdHMgdGhhdCBoYXZlIGludmFsaWQgYXV0aG9yIiwg
YXN5bmMgKCkgPT4geworICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChpbnZhbGlkQXV0
aG9yT3duZWRDb21taXQpOworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgaW52YWxpZEF1
dGhvck93bmVkQ29tbWl0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydz
dGF0dXMnXSwgJ0ludmFsaWRBdXRob3JGb3JtYXQnKTsKKyAgICB9KTsKKworICAgIGNvbnN0IG93
bmVkQ29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllciA9IHsKKyAgICAgICAgInNsYXZlTmFtZSI6
ICJzb21lU2xhdmUiLAorICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAor
ICAgICAgICAiY29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVw
b3NpdG9yeSI6ICJPU1giLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICJTaWVycmExNkQz
MiIsCisgICAgICAgICAgICAgICAgIm9yZGVyIjogMSwKKyAgICAgICAgICAgICAgICAib3duZWRD
b21taXRzIjogeworICAgICAgICAgICAgICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAgICAg
ICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3OCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAicmV2aXNpb25JZGVudGlmaWVyIjogIjEyNzIzMkBtYWluIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29t
bWl0LXF1ZXVlQHdlYmtpdC5vcmcifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJtZXNzYWdl
IjogIldlYktpdCBDb21taXQiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgfQorICAgICAgICBdCisgICAgfTsKKworICAgIGl0KCJzaG91bGQg
aW5zZXJ0IG9uZSBjb21taXQgd2l0aCBjb21taXQgcmV2aXNpb24gbGFiZWwiLCBhc3luYyAoKSA9
PiB7CisgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KG93bmVkQ29tbWl0V2l0aFJldmlz
aW9uSWRlbnRpZmllcik7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBvd25lZENvbW1p
dFdpdGhSZXZpc2lvbklkZW50aWZpZXIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRh
dGFiYXNlKCk7CisgICAgICAgIGNvbnN0IGNvbW1pdCA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ2Nv
bW1pdHMnLCB7J3JldmlzaW9uJzogJzE0MTk3OCd9KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGNvbW1pdFswXS5yZXZpc2lvbl9pZGVudGlmaWVyLCBvd25lZENvbW1pdFdpdGhSZXZpc2lv
bklkZW50aWZpZXIuY29tbWl0c1swXS5vd25lZENvbW1pdHNbJ1dlYktpdCddLnJldmlzaW9uSWRl
bnRpZmllcik7CisgICAgfSk7CiB9KTsKIAogZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMv
IHdpdGggaW5zZXJ0PWZhbHNlIiwgZnVuY3Rpb24gKCkgewpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzCmluZGV4
IDVjNDQ1ZmVmYzBkNzIwNGMwYmI1YTE2ZTAyY2Y2MTM3MmZmM2ZiNjkuLmM1YTJhMmVlYzBiMzFh
OGMzMGJhZDk2ZTkwMzA0NmMzOTA2ZGJlZTMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtdGVzdHMuanMKQEAgLTc3LDYg
Kzc3LDI5IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
fTsKICAgICB9CiAKKyAgICBmdW5jdGlvbiByZXBvcnRXaXRoUmV2aXNpb25JZGVudGlmaWVyQ29t
bWl0KCkKKyAgICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAiYnVpbGRUYWciOiAi
MTIzIiwKKyAgICAgICAgICAgICJidWlsZFRpbWUiOiAiMjAxMy0wMi0yOFQxMDoxMjowMy4zODgz
MDQiLAorICAgICAgICAgICAgImJ1aWxkZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKKyAgICAgICAg
ICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAgICAgICAgICAgICJidWlsZGVyUGFzc3dv
cmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBM
aW9uIiwKKyAgICAgICAgICAgICJ0ZXN0cyI6IHt9LAorICAgICAgICAgICAgInJldmlzaW9ucyI6
IHsKKyAgICAgICAgICAgICAgICAibWFjT1MiOiB7CisgICAgICAgICAgICAgICAgICAgICJyZXZp
c2lvbiI6ICIxMC44LjIgMTJDNjAiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAg
ICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTQxOTc3IiwK
KyAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxMjcyMzFAbWFpbiIs
CisgICAgICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAiMjAxMy0wMi0wNlQwODo1NToyMC45
WiIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQor
CiAgICAgZnVuY3Rpb24gZW1wdHlTbGF2ZVJlcG9ydCgpCiAgICAgewogICAgICAgICByZXR1cm4g
ewpAQCAtMzUxLDYgKzM3NCwzNyBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIH0pOwogICAgIH0pOwogCisgICAgaXQoInNob3VsZCBhZGQgcmV2aXNpb24g
bGFiZWwiLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZEJ1aWxkZXJGb3JSZXBvcnQo
cmVwb3J0V2l0aFJldmlzaW9uSWRlbnRpZmllckNvbW1pdCgpKTsKKyAgICAgICAgYXdhaXQgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9ydFdpdGhS
ZXZpc2lvbklkZW50aWZpZXJDb21taXQoKV0pOworICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2
ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgY29uc3QgcmVwb3NpdG9yaWVzID0gYXdhaXQgZGIuc2Vs
ZWN0QWxsKCdyZXBvc2l0b3JpZXMnKTsKKyAgICAgICAgY29uc3QgY29tbWl0cyA9ICBhd2FpdCBk
Yi5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsKKyAgICAgICAgY29uc3QgYnVpbGRDb21taXRzUmVsYXRp
b25zID0gYXdhaXQgIGRiLnNlbGVjdEFsbCgnYnVpbGRfY29tbWl0cycsICdidWlsZF9jb21taXQn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDIpOwor
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcmllcy5tYXAoKHJvdykgPT4g
cm93WyduYW1lJ10pLnNvcnQoKSwgWydXZWJLaXQnLCAnbWFjT1MnXSk7CisKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9ucy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRDb21taXRzUmVsYXRpb25zWzBdWydidWlsZF9jb21taXQnXSwgY29t
bWl0c1swXVsnaWQnXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1pdHNS
ZWxhdGlvbnNbMV1bJ2J1aWxkX2NvbW1pdCddLCBjb21taXRzWzFdWydpZCddKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1swXVsnY29tbWl0X2J1aWxk
J10sIGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1sxXVsnY29tbWl0X2J1aWxkJ10pOworCisgICAgICAg
IGxldCByZXBvc2l0b3J5SWRUb05hbWUgPSB7fTsKKyAgICAgICAgZm9yIChsZXQgcmVwb3NpdG9y
eSBvZiByZXBvc2l0b3JpZXMpCisgICAgICAgICAgICByZXBvc2l0b3J5SWRUb05hbWVbcmVwb3Np
dG9yeVsnaWQnXV0gPSByZXBvc2l0b3J5WyduYW1lJ107CisKKyAgICAgICAgbGV0IHJlcG9zaXRv
cnlOYW1lVG9SZXZpc2lvblJvdyA9IHt9OworICAgICAgICBmb3IgKGxldCBjb21taXQgb2YgY29t
bWl0cykKKyAgICAgICAgICAgIHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1tyZXBvc2l0b3J5
SWRUb05hbWVbY29tbWl0WydyZXBvc2l0b3J5J11dXSA9IGNvbW1pdDsKKworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydtYWNPUyddWydyZXZp
c2lvbiddLCAnMTAuOC4yIDEyQzYwJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
c2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktpdCddWydyZXZpc2lvbiddLCAnMTQxOTc3Jyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3db
J1dlYktpdCddWydyZXZpc2lvbl9pZGVudGlmaWVyJ10sICcxMjcyMzFAbWFpbicpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydXZWJLaXQn
XVsndGltZSddLnRvU3RyaW5nKCksCisgICAgICAgICAgICBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAw
ODo1NToyMC45JykudG9TdHJpbmcoKSk7CisgICAgfSk7CisKICAgICBpdCgic2hvdWxkIG5vdCBj
cmVhdGUgYSBkdXBsaWNhdGUgYnVpbGQgZm9yIHRoZSBzYW1lIGJ1aWxkIG51bWJlciBpZiBidWls
ZCB0aW1lcyBhcmUgY2xvc2UiLCAoKSA9PiB7CiAgICAgICAgIGNvbnN0IGZpcnN0UmVwb3J0ID0g
ZW1wdHlSZXBvcnQoKTsKICAgICAgICAgZmlyc3RSZXBvcnRbJ2J1aWxkVGltZSddID0gJzIwMTMt
MDItMjhUMTA6MTI6MDQnOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9yZXNvdXJjZXMvdGVzdC1zZXJ2ZXIuY29uZiBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmNvbmYKaW5kZXggOTM2
YjRmNGJmYWZmMDdlZGIwMzU4MzNjNDYzZWUxNjliZmMxNWExMS4uY2E1NTRiMTdmZDU5NDRlZGU3
MWVjMWM3M2EzOWU5MGFhMGRiMzAyMCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVzdC1zZXJ2ZXIuY29uZgorKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy90ZXN0LXNlcnZlci5jb25m
CkBAIC0xLDYgKzEsOCBAQAogU2VydmVyUm9vdCAiL3VzciIKIExpc3RlbiA4MDgwCiAKK0xvYWRN
b2R1bGUgbXBtX3ByZWZvcmtfbW9kdWxlIGxpYmV4ZWMvYXBhY2hlMi9tb2RfbXBtX3ByZWZvcmsu
c28KK0xvYWRNb2R1bGUgcGhwN19tb2R1bGUgL3Vzci9sb2NhbC9DZWxsYXIvcGhwQDcuNC83LjQu
MTYvbGliL2h0dHBkL21vZHVsZXMvbGlicGhwNy5zbwogTG9hZE1vZHVsZSBhdXRobl9jb3JlX21v
ZHVsZSBsaWJleGVjL2FwYWNoZTIvbW9kX2F1dGhuX2NvcmUuc28KIExvYWRNb2R1bGUgYXV0aHpf
Y29yZV9tb2R1bGUgbGliZXhlYy9hcGFjaGUyL21vZF9hdXRoel9jb3JlLnNvCiBMb2FkTW9kdWxl
IGRlZmxhdGVfbW9kdWxlIGxpYmV4ZWMvYXBhY2hlMi9tb2RfZGVmbGF0ZS5zbwpkaWZmIC0tZ2l0
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5q
cyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2NvbW1pdC1sb2ctdGVzdHMu
anMKaW5kZXggNzBhYmRlYmY4MWU4YWI2MGQxZDE4MTYzZTM5OTE4NzljYjQ3MzhiNi4uOTBhNTRi
NjI5ZmJjYTEyMmFmODBiZWFmYWE5OGI4YjBkYzkyODVhOCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qcworKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9jb21taXQtbG9nLXRlc3RzLmpzCkBAIC0x
Nyw2ICsxNywxNyBAQCBmdW5jdGlvbiB3ZWJraXRDb21taXQoKQogICAgIH0pOwogfQogCitmdW5j
dGlvbiB3ZWJraXRDb21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKCkgCit7CisgICAgcmV0dXJu
IG5ldyBDb21taXRMb2coMSwgeworICAgICAgICBpZDogMSwKKyAgICAgICAgcmVwb3NpdG9yeTog
TW9ja01vZGVscy53ZWJraXQsCisgICAgICAgIHJldmlzaW9uOiAnMjAwODA1JywKKyAgICAgICAg
cmV2aXNpb25JZGVudGlmaWVyOiAnMTg0Mjc2QG1haW4nLAorICAgICAgICB0aW1lOiArKG5ldyBE
YXRlKCcyMDE2LTA1LTEzVDAwOjU1OjU3Ljg0MTM0NFonKSksCisgICAgfSk7Cit9CisKIGZ1bmN0
aW9uIG9sZFdlYktpdENvbW1pdCgpCiB7CiAgICAgcmV0dXJuIG5ldyBDb21taXRMb2coMiwgewpA
QCAtMjcsNiArMzgsMTcgQEAgZnVuY3Rpb24gb2xkV2ViS2l0Q29tbWl0KCkKICAgICB9KTsKIH0K
IAorZnVuY3Rpb24gb2xkV2ViS2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpCit7Cisg
ICAgcmV0dXJuIG5ldyBDb21taXRMb2coMiwgeworICAgICAgICBpZDogMiwKKyAgICAgICAgcmVw
b3NpdG9yeTogTW9ja01vZGVscy53ZWJraXQsCisgICAgICAgIHJldmlzaW9uOiAnMjAwNTc0JywK
KyAgICAgICAgcmV2aXNpb25JZGVudGlmaWVyOiAnMTc1NjA1QG1haW4nLAorICAgICAgICB0aW1l
OiArKG5ldyBEYXRlKCcyMDE2LTA1LTA5VDE0OjU5OjIzLjU1Mzc2N1onKSksCisgICAgfSk7Cit9
CisKIGZ1bmN0aW9uIGdpdFdlYktpdENvbW1pdCgpCiB7CiAgICAgcmV0dXJuIG5ldyBDb21taXRM
b2coMywgewpAQCAtMzcsNiArNTksMTcgQEAgZnVuY3Rpb24gZ2l0V2ViS2l0Q29tbWl0KCkKICAg
ICB9KTsKIH0KIAorZnVuY3Rpb24gZ2l0V2ViS2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmll
cigpCit7CisgICAgcmV0dXJuIG5ldyBDb21taXRMb2coMywgeworICAgICAgICBpZDogMywKKyAg
ICAgICAgcmVwb3NpdG9yeTogTW9ja01vZGVscy53ZWJraXQsCisgICAgICAgIHJldmlzaW9uOiAn
NmY4YjBkYmJkYTk1YTQ0MDUwM2I4OGRiMWRkMDNkYWQzYTdiMDdmYicsCisgICAgICAgIHJldmlz
aW9uSWRlbnRpZmllcjogJzE4NDI3NkBtYWluJywKKyAgICAgICAgdGltZTogKyhuZXcgRGF0ZSgn
MjAxNi0wNS0xM1QwMDo1NTo1Ny44NDEzNDRaJykpLAorICAgIH0pOworfQorCiBmdW5jdGlvbiBv
bGRHaXRXZWJLaXRDb21taXQoKQogewogICAgIHJldHVybiBuZXcgQ29tbWl0TG9nKDQsIHsKQEAg
LTQ3LDYgKzgwLDE3IEBAIGZ1bmN0aW9uIG9sZEdpdFdlYktpdENvbW1pdCgpCiAgICAgfSk7CiB9
CiAKK2Z1bmN0aW9uIG9sZEdpdFdlYktpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKQor
eworICAgIHJldHVybiBuZXcgQ29tbWl0TG9nKDQsIHsKKyAgICAgICAgaWQ6IDQsCisgICAgICAg
IHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMud2Via2l0LAorICAgICAgICByZXZpc2lvbjogJ2ZmZGEx
NGU2ZGIwNzQ2ZDEwZDBmMDUwOTA3ZTRhNzMyNTg1MWU1MDInLAorICAgICAgICByZXZpc2lvbklk
ZW50aWZpZXI6ICcxNzU2MDVAbWFpbicsCisgICAgICAgIHRpbWU6ICsobmV3IERhdGUoJzIwMTYt
MDUtMDlUMTQ6NTk6MjMuNTUzNzY3WicpKSwKKyAgICB9KTsKK30KKwogZnVuY3Rpb24gb3N4Q29t
bWl0KCkKIHsKICAgICByZXR1cm4gbmV3IENvbW1pdExvZyg1LCB7CkBAIC0xNDcsMTAgKzE5MSwx
OCBAQCBkZXNjcmliZSgnQ29tbWl0TG9nJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHdlYmtpdENvbW1pdCgpLmxhYmVsKCksICdyMjAwODA1Jyk7CiAgICAgICAgIH0p
OwogCi0gICAgICAgIGl0KCdzaG91bGQgdHJ1bmNhdGUgYSBHaXQgaGFzaCBhdCA4dGggY2hhcmFj
dGVyJywgZnVuY3Rpb24gKCkgeworICAgICAgICBpdCgnc2hvdWxkIGRpc3BsYXkgcmV2aXNpb24g
bGFiZWwgZm9sbG93ZWQgYnkgc3ZuIHJlZml4ZWQgd2l0aCAiciInLCAoKSA9PiB7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmll
cigpLmxhYmVsKCksICcxODQyNzZAbWFpbiAocjIwMDgwNSknKQorICAgICAgICB9KTsKKworICAg
ICAgICBpdCgnc2hvdWxkIHRydW5jYXRlIGEgR2l0IGhhc2ggYXQgMTJ0aCBjaGFyYWN0ZXInLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ2l0V2ViS2l0Q29tbWl0KCku
bGFiZWwoKSwgJzZmOGIwZGJiZGE5NScpOwogICAgICAgICB9KTsKIAorICAgICAgICBpdCgnc2hv
dWxkIGRpc3BsYXkgcmV2aXNpb24gbGFiZWwgZm9sbG93ZWQgYnkgZ2l0IGhhc2ggdHJ1bmNhdGVk
JywgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdpdFdlYktpdENvbW1p
dFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKS5sYWJlbCgpLCAnMTg0Mjc2QG1haW4gKDZmOGIwZGJi
ZGE5NSknKQorICAgICAgICB9KTsKKwogICAgICAgICBpdCgnc2hvdWxkIG5vdCBtb2RpZnkgT1Mg
WCB2ZXJzaW9uJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENv
bW1pdCgpLmxhYmVsKCksICcxMC4xMS40IDE1RTY1Jyk7CiAgICAgICAgIH0pOwpAQCAtMTYxLDEw
ICsyMTMsMTggQEAgZGVzY3JpYmUoJ0NvbW1pdExvZycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh3ZWJraXRDb21taXQoKS50aXRsZSgpLCAnV2ViS2l0IGF0IHIyMDA4
MDUnKTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgaXQoJ3Nob3VsZCB0cnVuY2F0ZSBhIEdpdCBo
YXNoIGF0IDh0aCBjaGFyYWN0ZXInLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGl0KCdzaG91bGQg
aW5jbHVkZSByZXZpc2lvbiBsYWJlbCcsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh3ZWJraXRDb21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKCkudGl0bGUoKSwgJ1dl
YktpdCBhdCAxODQyNzZAbWFpbiAocjIwMDgwNSknKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAg
aXQoJ3Nob3VsZCB0cnVuY2F0ZSBhIEdpdCBoYXNoIGF0IDEydGggY2hhcmFjdGVyJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdpdFdlYktpdENvbW1pdCgpLnRpdGxl
KCksICdXZWJLaXQgYXQgNmY4YjBkYmJkYTk1Jyk7CiAgICAgICAgIH0pOwogCisgICAgICAgIGl0
KCdzaG91bGQgZGlzcGxheSByZXZpc2lvbiBsYWJlbCBmb2xsb3dlZCBieSBnaXQgaGFzaCB0cnVu
Y2F0ZWQnLCAgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdpdFdlYktp
dENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKS50aXRsZSgpLCAnV2ViS2l0IGF0IDE4NDI3
NkBtYWluICg2ZjhiMGRiYmRhOTUpJyk7CisgICAgICAgIH0pOworCiAgICAgICAgIGl0KCdzaG91
bGQgbm90IG1vZGlmeSBPUyBYIHZlcnNpb24nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3N4Q29tbWl0KCkudGl0bGUoKSwgJ09TIFggYXQgMTAuMTEuNCAxNUU2NScp
OwogICAgICAgICB9KTsKQEAgLTIyMyw2ICsyODMsMzEgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZycs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICByZXBvc2l0b3J5OiBNb2NrTW9kZWxzLm9z
eAogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgZGlz
cGxheSByZXZpc2lvbiBsYWJlbCBmb2xsb3dlZCB3aXRoIHJldmlzb24gYW5kICBjb25uZWN0IHdp
dGggIi0iLCBpZiBib3RoIGhhdmUgcmV2aXNpb24gbGFiZWwnLCAoKSA9PiB7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHdlYmtpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZp
ZXIoKS5kaWZmKG9sZFdlYktpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKSksIHsKKyAg
ICAgICAgICAgICAgICBsYWJlbDogJzE3NTYwNS0xODQyNzZAbWFpbiAocjIwMDU3NC1yMjAwODA1
KScsCisgICAgICAgICAgICAgICAgdXJsOiAnJywKKyAgICAgICAgICAgICAgICByZXBvc2l0b3J5
OiBNb2NrTW9kZWxzLndlYmtpdAorICAgICAgICAgICAgfSkKKyAgICAgICAgfSk7CisKKyAgICAg
ICAgaXQoJ3Nob3VsZCBkaXNwbGF5IHJldmlzaW9uIGxhYmVsIGZvbGxvd2VkIHdpdGggcmV2aXNv
biBhbmQgIGNvbm5lY3Qgd2l0aCAiLSIsIGlmIGJvdGggaGF2ZSByZXZpc2lvbiBsYWJlbCcsICgp
ID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZ2l0V2ViS2l0Q29tbWl0
V2l0aFJldmlzaW9uSWRlbnRpZmllcigpLmRpZmYob2xkR2l0V2ViS2l0Q29tbWl0V2l0aFJldmlz
aW9uSWRlbnRpZmllcigpKSwgeworICAgICAgICAgICAgICAgIGxhYmVsOiAnMTc1NjA1LTE4NDI3
NkBtYWluIChmZmRhMTRlNmRiMDcuLjZmOGIwZGJiZGE5NSknLAorICAgICAgICAgICAgICAgIHVy
bDogJycsCisgICAgICAgICAgICAgICAgcmVwb3NpdG9yeTogTW9ja01vZGVscy53ZWJraXQKKyAg
ICAgICAgICAgIH0pCisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgY29udGFpbiBy
ZXZpc2lvbiBsYWJlbCwgaWYgb25lIG9mIHRoZSBjb21taXRzIGRvZXNuYHQgaGF2ZSB0aGUgcmV2
aXNpb24gbGFiZWwnLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHdlYmtpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKS5kaWZmKG9sZFdlYktpdENvbW1p
dCgpKSwgeworICAgICAgICAgICAgICAgIGxhYmVsOiAncjIwMDU3NCAtIDE4NDI3NkBtYWluIChy
MjAwODA1KScsCisgICAgICAgICAgICAgICAgdXJsOiAnJywKKyAgICAgICAgICAgICAgICByZXBv
c2l0b3J5OiBNb2NrTW9kZWxzLndlYmtpdAorICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOwor
CiAgICAgfSk7CiAKICAgICBkZXNjcmliZSgnaGFzT3JkZXJpbmcnLCAoKSA9PiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424430</attachid>
            <date>2021-03-26 19:11:15 -0700</date>
            <delta_ts>2021-03-26 20:21:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222897-20210326191114.patch</filename>
            <type>text/plain</type>
            <size>53243</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MDYxCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1YTg1MWZkODI1NTA1YjQzMGFkNzg3ODZhNTQ1NzI0MzUwNTg0Zjc1Li4zNTA5NTFlOGRk
NWI2YzUyMzkwYWFiYjVmZGI5YTA0OTkxNWY2ZDY0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAyMS0wMy0xMCAgWmhpZmVpIEZhbmcgIDx6aGlmZWlf
ZmFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGNvbW1pdCByZXZpc2lvbiBsYWJlbCBzdXBw
b3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI4
OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
bmV3IGNvbHVtbiByZXZpc2lvbiBsYWJlbC4KKyAgICAgICAgTWFrZSBhbGwgY29tbWl0IGFwaSBh
bHNvIGNhbiB3b3JrIHdpdGggcmV2aXNpb24gbGFiZWwuCisgICAgICAgIENoYW5nZSB0aGUgY29t
bWl0IGxhYmVsIGRpc3BsYXkgd2l0aCBjb21taXQgcmV2aXNpb24gbGFiZWwuCisKKyAgICAgICAg
KiBicm93c2VyLXRlc3RzL2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzOiBGaXggYSBmYWlsZWQg
dGVzdCBjYXNlLCB3aGlsZSByZXF1ZXN0aW5nIHRoZSByZW1vdGUgYXBpLCAKKyAgICAgICAgd2Ug
c2hvdWxkIHdhaXQgZm9yIHRob3NlIHByb21pc2VzIHJlc29sdmVkIGFuZCB0aGVuIHdhaXQgZm9y
IGNvbW1wb25lbnQgdG8gcmVuZGVyLgorICAgICAgICAqIGluaXQtZGF0YWJhc2Uuc3FsOiBBZGQg
bmV3IGNvbHVtbiByZXZpc2lvbl9pZGVudGlmaWVyLgorICAgICAgICAqIG1pZ3JhdGUtZGF0YWJh
c2Uuc3FsOiBBZGQgbmV3IGNvbHVtbiByZXZpc2lvbl9pZGVudGlmaWVyLgorICAgICAgICAqIHB1
YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHA6IE1ha2UgYXBpIHRoYXQgd29ya3Mg
d2l0aCByZXZpc2lvbiBzaG91bGQgd29yayB3aXRoIHJldmlzaW9uIGxhYmVsLgorICAgICAgICAq
IHB1YmxpYy9pbmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocDogRGl0dG8uCisgICAgICAgICogcHVi
bGljL2luY2x1ZGUvcmVwb3J0LXByb2Nlc3Nvci5waHA6IE1ha2UgdGhlIHByb2Nlc3NvciBjYW4g
YWxzbyBpbnNlcnQgcmV2aXNpb24gbGFiZWwuCisgICAgICAgICogcHVibGljL3YzL21vZGVscy9j
b21taXQtbG9nLmpzOgorICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS51cGRhdGVTaW5nbGV0
b24pOgorICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS5yZXZpc2lvbklkZW50aWZpZXIpOgor
ICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS5sYWJlbCk6IE1ha2UgdGhlIGxhYmVsIGluY2x1
ZGUgcmV2aXNpb24gbGFiZWwgYW5kIHJldmlzaW9uLgorICAgICAgICAoQ29tbWl0TG9nLnByb3Rv
dHlwZS5kaWZmKTogTWFrZSB0aGUgZGlmZiBsYWJlbCBpbmNsdWRlIHJldmlzaW9uIGxhYmVsIGFu
ZCByZXZpc2lvbi4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanM6
CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtY29tbWl0cy10ZXN0cy5qczoKKyAg
ICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qczoKKyAgICAgICAgKHJlcG9y
dFdpdGhSZXZpc2lvbklkZW50aWZpZXJDb21taXQpOgorICAgICAgICAqIHVuaXQtdGVzdHMvY29t
bWl0LWxvZy10ZXN0cy5qczoKKwogMjAyMS0wMy0wNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbcGVyZiBkYXNoYm9hcmRdIE1vZGVybml6ZSBUaW1lU2VyaWVz
IGFuZCBUaW1lU2VyaWVzVmlldwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L2Jyb3dzZXItdGVzdHMvY29tbWl0LWxvZy12aWV3ZXItdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcwppbmRl
eCBkYmM0Y2ZjZDliYzIxNGI3MDhlZTE5OGYxZWE2NjVmMjI0MjI4NTYwLi5mODQ4OWU3Y2FjNDRl
MjMwMjBmN2U4ZjJjZTY0NDdhN2EyYzQyZjhiIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcworKysgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10
ZXN0cy5qcwpAQCAtNTUsNiArNTUsMTkgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZ1ZpZXdlcicsICgp
ID0+IHsKICAgICAgICAgIm1lc3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdlIiwKICAgICB9OwogCisg
ICAgY29uc3Qgd2Via2l0Q29tbWl0MjEwOTUwV2l0aFJldmlzaW9uSWRlbnRpZmllciA9IHsKKyAg
ICAgICAgImlkIjogIjE4NTMzOCIsCisgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NTAiLAorICAg
ICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3OEBtYWluIiwKKyAgICAgICAgInJlcG9z
aXRvcnkiOiAxLAorICAgICAgICAicHJldmlvdXNDb21taXQiOiBudWxsLAorICAgICAgICAib3du
c0NvbW1pdHMiOiBmYWxzZSwKKyAgICAgICAgInRpbWUiOiArbmV3IERhdGUoIjIwMTctMDEtMjBU
MDM6NDk6MzcuODg3WiIpLAorICAgICAgICAiYXV0aG9yTmFtZSI6ICJDb21taXQgUXVldWUiLAor
ICAgICAgICAiYXV0aG9yRW1haWwiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmciLAorICAgICAg
ICAibWVzc2FnZSI6ICJhbm90aGVyIG1lc3NhZ2UiLAorICAgIH07CisKICAgICBpdCgnc2hvdWxk
IGluaXRpYWxseSBiZSBlbXB0eSB3aXRoIG5vIHNwaW5uZXInLCAoKSA9PiB7CiAgICAgICAgIGNv
bnN0IGNvbnRleHQgPSBuZXcgQnJvd3NpbmdDb250ZXh0KCk7CiAgICAgICAgIHJldHVybiBpbXBv
cnRDb21taXRMb2dWaWV3ZXIoY29udGV4dCkudGhlbigoQ29tbWl0TG9nVmlld2VyKSA9PiB7CkBA
IC0xMjksOSArMTQyLDkgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZ1ZpZXdlcicsICgpID0+IHsKICAg
ICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIiwKICAgICAgICAgICAgICAgICAiY29tbWl0cyI6
IFt3ZWJraXRDb21taXQyMTA5NDhdLAogICAgICAgICAgICAgfSk7Ci0KKyAgICAgICAgICAgIGF3
YWl0IHJlcXVlc3RzWzBdLnByb21pc2U7CisgICAgICAgICAgICBhd2FpdCByZXF1ZXN0c1sxXS5w
cm9taXNlOwogICAgICAgICAgICAgYXdhaXQgd2FpdEZvckNvbXBvbmVudHNUb1JlbmRlcihjb250
ZXh0KTsKLQogICAgICAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdzcGlubmVyLWNvbnRh
aW5lcicpLm9mZnNldEhlaWdodCkudG8uYmUoMCk7CiAgICAgICAgICAgICBleHBlY3Qodmlld2Vy
LmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLm1hdGNoZXMoJzplbXB0eScpKS50by5iZShmYWxzZSk7
CiAgICAgICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLnRleHRD
b250ZW50KS50by5jb250YWluKCdyMjEwOTQ5Jyk7CkBAIC0xNDQsNCArMTU3LDQ3IEBAIGRlc2Ny
aWJlKCdDb21taXRMb2dWaWV3ZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogICAgIH0pOwogCisg
ICAgaXQoJ3Nob3VsZCBzaG93IHJldmlzaW9uIGxhYmVsJywgYXN5bmMgKCkgPT4geworICAgICAg
ICBjb25zdCBjb250ZXh0ID0gbmV3IEJyb3dzaW5nQ29udGV4dCgpOworICAgICAgICBjb25zdCBD
b21taXRMb2dWaWV3ZXIgPSBhd2FpdCBpbXBvcnRDb21taXRMb2dWaWV3ZXIoY29udGV4dCk7Cisg
ICAgICAgIGNvbnN0IFJlcG9zaXRvcnkgPSBjb250ZXh0LnN5bWJvbHMuUmVwb3NpdG9yeTsKKyAg
ICAgICAgY29uc3QgcmVxdWVzdHMgPSBjb250ZXh0LnN5bWJvbHMuUmVtb3RlQVBJLnJlcXVlc3Rz
OworICAgICAgICBjb25zdCB2aWV3ZXIgPSBuZXcgQ29tbWl0TG9nVmlld2VyOworICAgICAgICBj
b25zdCB3ZWJraXQgPSBuZXcgUmVwb3NpdG9yeSgxLCB7bmFtZTogJ1dlYktpdCd9KTsKKyAgICAg
ICAgY29udGV4dC5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZXdlci5lbGVtZW50KCkpOwor
CisgICAgICAgIHZpZXdlci5lbnF1ZXVlVG9SZW5kZXIoKTsKKyAgICAgICAgYXdhaXQgd2FpdEZv
ckNvbXBvbmVudHNUb1JlbmRlcihjb250ZXh0KTsKKworICAgICAgICB2aWV3ZXIudmlldyh3ZWJr
aXQsICcyMTA5NDgnLCAnMjEwOTUwJyk7CisgICAgICAgIGF3YWl0IHdhaXRGb3JDb21wb25lbnRz
VG9SZW5kZXIoY29udGV4dCk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnc3Bpbm5l
ci1jb250YWluZXInKS5vZmZzZXRIZWlnaHQpLnRvLm5vdC5iZSgwKTsKKyAgICAgICAgZXhwZWN0
KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxpc3QnKS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUo
dHJ1ZSk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgncmVwb3NpdG9yeS1uYW1lJyku
bWF0Y2hlcygnOmVtcHR5JykpLnRvLmJlKGZhbHNlKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5j
b250ZW50KCdyZXBvc2l0b3J5LW5hbWUnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignV2ViS2l0
Jyk7CisgICAgICAgIGV4cGVjdChyZXF1ZXN0cy5sZW5ndGgpLnRvLmJlKDIpOworICAgICAgICBl
eHBlY3QocmVxdWVzdHNbMF0udXJsKS50by5iZSgnL2FwaS9jb21taXRzLzEvP3ByZWNlZGluZ1Jl
dmlzaW9uPTIxMDk0OCZsYXN0UmV2aXNpb249MjEwOTUwJyk7CisgICAgICAgIGV4cGVjdChyZXF1
ZXN0c1sxXS51cmwpLnRvLmJlKCcvYXBpL2NvbW1pdHMvMS8yMTA5NDgnKTsKKyAgICAgICAgcmVx
dWVzdHNbMF0ucmVzb2x2ZSh7CisgICAgICAgICAgICAic3RhdHVzIjogIk9LIiwKKyAgICAgICAg
ICAgICJjb21taXRzIjogW3dlYmtpdENvbW1pdDIxMDk0OSwgd2Via2l0Q29tbWl0MjEwOTUwV2l0
aFJldmlzaW9uSWRlbnRpZmllcl0sCisgICAgICAgIH0pOworCisgICAgICAgIHJlcXVlc3RzWzFd
LnJlc29sdmUoeworICAgICAgICAgICAgInN0YXR1cyI6ICJPSyIsCisgICAgICAgICAgICAiY29t
bWl0cyI6IFt3ZWJraXRDb21taXQyMTA5NDhdLAorICAgICAgICB9KTsKKworICAgICAgICBhd2Fp
dCByZXF1ZXN0c1swXS5wcm9taXNlOworICAgICAgICBhd2FpdCByZXF1ZXN0c1sxXS5wcm9taXNl
OworICAgICAgICBhd2FpdCB3YWl0Rm9yQ29tcG9uZW50c1RvUmVuZGVyKGNvbnRleHQpOworICAg
ICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ3NwaW5uZXItY29udGFpbmVyJykub2Zmc2V0SGVp
Z2h0KS50by5iZSgwKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxp
c3QnKS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUoZmFsc2UpOworICAgICAgICBleHBlY3Qodmll
d2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLnRleHRDb250ZW50KS50by5jb250YWluKCcxODQy
NzhAbWFpbiAocjIxMDk1MCknKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdjb21t
aXRzLWxpc3QnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignQ29tbWl0IFF1ZXVlJyk7CisgICAg
ICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgncmVwb3NpdG9yeS1uYW1lJykubWF0Y2hlcygnOmVt
cHR5JykpLnRvLmJlKGZhbHNlKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdyZXBv
c2l0b3J5LW5hbWUnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignV2ViS2l0Jyk7CisgICAgICAg
IGV4cGVjdCh2aWV3ZXIuY29udGVudCgnY29tbWl0cy1saXN0JykucXVlcnlTZWxlY3RvcignYScp
KS50by5iZShudWxsKTsKKyAgICB9KTsKKwogfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
aW5pdC1kYXRhYmFzZS5zcWwKaW5kZXggN2ZmYzg5YWQ4MmM3NjEwNDFkMWE1NTZlODNmN2M5Njc4
YTMyZmFjMS4uMGRlY2RjZGM1NWM1YjU2YTViZTBhZDMyMGJmMWUzNWMzNjYxY2VkNCAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbApAQCAtMTAyLDYgKzEwMiw3
IEBAIENSRUFURSBUQUJMRSBjb21taXRzICgKICAgICBjb21taXRfaWQgc2VyaWFsIFBSSU1BUlkg
S0VZLAogICAgIGNvbW1pdF9yZXBvc2l0b3J5IGludGVnZXIgTk9UIE5VTEwgUkVGRVJFTkNFUyBy
ZXBvc2l0b3JpZXMgT04gREVMRVRFIENBU0NBREUsCiAgICAgY29tbWl0X3JldmlzaW9uIHZhcmNo
YXIoNjQpIE5PVCBOVUxMLAorICAgIGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyIHZhcmNoYXIo
NjQpIERFRkFVTFQgTlVMTCwKICAgICBjb21taXRfcHJldmlvdXNfY29tbWl0IGludGVnZXIgUkVG
RVJFTkNFUyBjb21taXRzIE9OIERFTEVURSBDQVNDQURFLAogICAgIGNvbW1pdF90aW1lIHRpbWVz
dGFtcCwKICAgICBjb21taXRfb3JkZXIgaW50ZWdlciwKQEAgLTEwOSw3ICsxMTAsOCBAQCBDUkVB
VEUgVEFCTEUgY29tbWl0cyAoCiAgICAgY29tbWl0X21lc3NhZ2UgdGV4dCwKICAgICBjb21taXRf
cmVwb3J0ZWQgYm9vbGVhbiBOT1QgTlVMTCBERUZBVUxUIEZBTFNFLAogICAgIGNvbW1pdF90ZXN0
YWJpbGl0eSB2YXJjaGFyKDEyOCkgREVGQVVMVCBOVUxMLAotICAgIENPTlNUUkFJTlQgY29tbWl0
X2luX3JlcG9zaXRvcnlfbXVzdF9iZV91bmlxdWUgVU5JUVVFKGNvbW1pdF9yZXBvc2l0b3J5LCBj
b21taXRfcmV2aXNpb24pKTsKKyAgICBDT05TVFJBSU5UIGNvbW1pdF9pbl9yZXBvc2l0b3J5X211
c3RfYmVfdW5pcXVlIFVOSVFVRShjb21taXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uKSwK
KyAgICBDT05TVFJBSU5UIGNvbW1pdF9zdHJpbmdfaWRlbnRpZmllcl9pbl9yZXBvc2l0b3J5X211
c3RfYmVfdW5pcXVlIFVOSVFVRShjb21taXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uX2lk
ZW50aWZpZXIpKTsKIENSRUFURSBJTkRFWCBjb21taXRfdGltZV9pbmRleCBPTiBjb21taXRzKGNv
bW1pdF90aW1lKTsKIENSRUFURSBJTkRFWCBjb21taXRfb3JkZXJfaW5kZXggT04gY29tbWl0cyhj
b21taXRfb3JkZXIpOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWln
cmF0ZS1kYXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWlncmF0ZS1kYXRh
YmFzZS5zcWwKaW5kZXggNDliZDI0OWQyYTY4NTc3NjQ0OWQzNmU4MDUyNjhmY2M0Yjg3N2FjYS4u
ODVkMzU0YzY3ODdmNTg5NThmNGIwMmI0ZDMxYjYyMWI0ZmY1NDJiMiAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL21pZ3JhdGUtZGF0YWJhc2Uuc3FsCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbApAQCAtMyw2ICszLDkgQEAgRE8g
JCQKIEJFR0lOCiBBTFRFUiBUQUJMRSBidWlsZF9yZXF1ZXN0cyBBREQgQ09MVU1OIElGIE5PVCBF
WElTVFMgcmVxdWVzdF9zdGF0dXNfZGVzY3JpcHRpb24gdmFyY2hhcigxMDI0KSBERUZBVUxUIE5V
TEw7CiBBTFRFUiBUQUJMRSBwbGF0Zm9ybXMgQUREIENPTFVNTiAgSUYgTk9UIEVYSVNUUyBwbGF0
Zm9ybV9ncm91cCBpbnRlZ2VyIFJFRkVSRU5DRVMgcGxhdGZvcm1fZ3JvdXBzIERFRkFVTFQgTlVM
TDsKK0FMVEVSIFRBQkxFIGNvbW1pdHMgQUREIENPTFVNTiBJRiBOT1QgRVhJU1RTIGNvbW1pdF9y
ZXZpc2lvbl9pZGVudGlmaWVyIHZhcmNoYXIoNjQpIERFRkFVTFQgTlVMTDsKK0FMVEVSIFRBQkxF
IGNvbW1pdHMgRFJPUCBDT05TVFJBSU5UIGNvbW1pdF9zdHJpbmdfaWRlbnRpZmllcl9pbl9yZXBv
c2l0b3J5X211c3RfYmVfdW5pcXVlOworQUxURVIgVEFCTEUgY29tbWl0cyBBREQgQ09OU1RSQUlO
VCBjb21taXRfc3RyaW5nX2lkZW50aWZpZXJfaW5fcmVwb3NpdG9yeV9tdXN0X2JlX3VuaXF1ZSBV
TklRVUUoY29tbWl0X3JlcG9zaXRvcnksIGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyKTsKIAog
Q1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgcGxhdGZvcm1fZ3JvdXBzICgKICAgICBwbGF0Zm9y
bWdyb3VwX2lkIHNlcmlhbCBQUklNQVJZIEtFWSwKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAK
aW5kZXggNmUwYmVjZDBiYzgxNjRjMDQyZmQzZmIyZjM5OThjNDE1NGZlYjBlMS4uNTA1OGY3MTNl
YWI5ZDA5OGRkMDhjNWUxZWExMmJkZmJmZTczMmE1NiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hl
ci5waHAKQEAgLTgsMTQgKzgsMTYgQEAgY2xhc3MgQ29tbWl0TG9nRmV0Y2hlciB7CiAKICAgICBz
dGF0aWMgZnVuY3Rpb24gZmluZF9jb21taXRfaWRfYnlfcmV2aXNpb24oJGRiLCAkcmVwb3NpdG9y
eV9pZCwgJHJldmlzaW9uKQogICAgIHsKLSAgICAgICAgJGNvbW1pdF9yb3dzID0gJGRiLT5xdWVy
eV9hbmRfZmV0Y2hfYWxsKCdTRUxFQ1QgY29tbWl0X2lkIEZST00gY29tbWl0cyBXSEVSRSBjb21t
aXRfcmVwb3NpdG9yeSA9ICQxIEFORCBjb21taXRfcmV2aXNpb24gPSAkMicsIGFycmF5KCRyZXBv
c2l0b3J5X2lkLCAkcmV2aXNpb24pKTsKKyAgICAgICAgJGNvbHVtbl9uYW1lID0gQ29tbWl0TG9n
RmV0Y2hlcjo6aXNfY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXIoJHJldmlzaW9uKSA/ICdjb21t
aXRfcmV2aXNpb25faWRlbnRpZmllcicgOiAnY29tbWl0X3JldmlzaW9uJzsKKyAgICAgICAgCisg
ICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgiU0VMRUNUIGNv
bW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkgPSAkMSBBTkQgJGNv
bHVtbl9uYW1lID0gJDIiLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uKSk7CiAgICAg
ICAgIGlmICgkY29tbWl0X3Jvd3MpCiAgICAgICAgICAgICByZXR1cm4gJGNvbW1pdF9yb3dzWzBd
Wydjb21taXRfaWQnXTsKIAogICAgICAgICBpZiAoIWN0eXBlX2FsbnVtKCRyZXZpc2lvbikpCiAg
ICAgICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgICAgICAkY29tbWl0X3Jvd3MgPSAkZGItPnF1
ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCBjb21taXRfaWQgRlJPTSBjb21taXRzIFdIRVJFIGNv
bW1pdF9yZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF9yZXZpc2lvbiBMSUtFICQyIExJTUlUIDIn
LCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNp
b24pIC4gJyUnKSk7CisgICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNo
X2FsbCgiU0VMRUNUIGNvbW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRv
cnkgPSAkMSBBTkQgJGNvbHVtbl9uYW1lICBMSUtFICQyIExJTUlUIDIiLCBhcnJheSgkcmVwb3Np
dG9yeV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb24pIC4gJyUnKSk7CiAg
ICAgICAgIGlmICghJGNvbW1pdF9yb3dzKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAg
ICAgIGlmIChjb3VudCgkY29tbWl0X3Jvd3MpID4gMSkKQEAgLTU1LDYgKzU3LDcgQEAgY2xhc3Mg
Q29tbWl0TG9nRmV0Y2hlciB7CiAgICAgewogICAgICAgICAkc3RhdGVtZW50cyA9ICdTRUxFQ1Qg
Y29tbWl0X2lkIGFzICJpZCIsCiAgICAgICAgICAgICBjb21taXRfcmV2aXNpb24gYXMgInJldmlz
aW9uIiwKKyAgICAgICAgICAgIGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyIGFzICJyZXZpc2lv
bklkZW50aWZpZXIiLAogICAgICAgICAgICAgY29tbWl0X3ByZXZpb3VzX2NvbW1pdCBhcyAicHJl
dmlvdXNDb21taXQiLAogICAgICAgICAgICAgY29tbWl0X3RpbWUgYXMgInRpbWUiLAogICAgICAg
ICAgICAgY29tbWl0dGVyX25hbWUgYXMgImF1dGhvck5hbWUiLApAQCAtMTkyLDggKzE5NSwxNCBA
QCBjbGFzcyBDb21taXRMb2dGZXRjaGVyIHsKICAgICAgICAgcmV0dXJuICR0aGlzLT5mb3JtYXRf
c2luZ2xlX2NvbW1pdCgkY29tbWl0KTsKICAgICB9CiAKKyAgICBwcml2YXRlIHN0YXRpYyBmdW5j
dGlvbiBpc19jb21taXRfcmV2aXNpb25faWRlbnRpZmllcigkY29tbWl0X3JldmlzaW9uX29yX3Jl
dmlzaW9uX2lkZW50aWZpZXIpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIHByZWdfbWF0Y2goJy9e
XGQrQFtcd1wuXC1dKiQvJywgJGNvbW1pdF9yZXZpc2lvbl9vcl9yZXZpc2lvbl9pZGVudGlmaWVy
KTsKKyAgICB9CisKICAgICBwcml2YXRlIGZ1bmN0aW9uIGNvbW1pdF9mb3JfcmV2aXNpb24oJHJl
cG9zaXRvcnlfaWQsICRyZXZpc2lvbikgewotICAgICAgICAkY29tbWl0X2luZm8gPSBhcnJheSgn
cmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlfaWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uKTsK
KyAgICAgICAgJGNvbW1pdF9pbmZvID0gYXJyYXkoJ3JlcG9zaXRvcnknID0+ICRyZXBvc2l0b3J5
X2lkKTsgCisgICAgICAgICRjb21taXRfaW5mb1skdGhpcy0+aXNfY29tbWl0X3JldmlzaW9uX2lk
ZW50aWZpZXIoJHJldmlzaW9uKSA/ICdyZXZpc2lvbl9pZGVudGlmaWVyJyA6ICdyZXZpc2lvbidd
ID0gJHJldmlzaW9uOwogICAgICAgICAkcm93ID0gJHRoaXMtPmRiLT5zZWxlY3RfbGFzdF9yb3co
J2NvbW1pdHMnLCAnY29tbWl0JywgJGNvbW1pdF9pbmZvKTsKICAgICAgICAgaWYgKCEkcm93KQog
ICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdVbmtub3duQ29tbWl0JywgJGNvbW1pdF9pbmZv
KTsKQEAgLTIwMSw3ICsyMTAsOCBAQCBjbGFzcyBDb21taXRMb2dGZXRjaGVyIHsKICAgICB9CiAK
ICAgICBwcml2YXRlIGZ1bmN0aW9uIGNvbW1pdF9mb3JfcmV2aXNpb25fcHJlZml4KCRyZXBvc2l0
b3J5X2lkLCAkcmV2aXNpb25fcHJlZml4KSB7Ci0gICAgICAgICRyb3dzID0gJHRoaXMtPmRiLT5x
dWVyeV9hbmRfZmV0Y2hfYWxsKCdTRUxFQ1QgKiBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3Jl
cG9zaXRvcnkgPSAkMSBBTkQgY29tbWl0X3JldmlzaW9uIExJS0UgJDIgT1JERVIgQlkgY29tbWl0
X3JldmlzaW9uIExJTUlUIDInLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0YWJhc2U6OmVzY2Fw
ZV9mb3JfbGlrZSgkcmV2aXNpb25fcHJlZml4KSAuICclJykpOworICAgICAgICAkY29sdW1uX25h
bWUgPSAkdGhpcy0+aXNfY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXIoJHJldmlzaW9uX3ByZWZp
eCkgPyAncmV2aXNpb25faWRlbnRpZmllcicgOiAncmV2aXNpb24nOworICAgICAgICAkcm93cyA9
ICR0aGlzLT5kYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgiU0VMRUNUICogRlJPTSBjb21taXRzIFdI
RVJFIGNvbW1pdF9yZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF8kY29sdW1uX25hbWUgTElLRSAk
MiBPUkRFUiBCWSBjb21taXRfJGNvbHVtbl9uYW1lIExJTUlUIDIiLCBhcnJheSgkcmVwb3NpdG9y
eV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb25fcHJlZml4KSAuICclJykp
OwogICAgICAgICBpZiAoY291bnQoJHJvd3MpID09IDApCiAgICAgICAgICAgICBleGl0X3dpdGhf
ZXJyb3IoJ1Vua25vd25Db21taXQnLCBhcnJheSgncmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlf
aWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uX3ByZWZpeCkpOwogICAgICAgICBpZiAoY291bnQo
JHJvd3MpID09IDIpIHsKQEAgLTIyNCw2ICsyMzQsNyBAQCBjbGFzcyBDb21taXRMb2dGZXRjaGVy
IHsKICAgICAgICAgcmV0dXJuIGFycmF5KAogICAgICAgICAgICAgJ2lkJyA9PiAkY29tbWl0X3Jv
d1snY29tbWl0X2lkJ10sCiAgICAgICAgICAgICAncmV2aXNpb24nID0+ICRjb21taXRfcm93Wydj
b21taXRfcmV2aXNpb24nXSwKKyAgICAgICAgICAgICdyZXZpc2lvbklkZW50aWZpZXInID0+ICRj
b21taXRfcm93Wydjb21taXRfcmV2aXNpb25faWRlbnRpZmllciddLAogICAgICAgICAgICAgJ3Jl
cG9zaXRvcnknID0+ICRjb21taXRfcm93Wydjb21taXRfcmVwb3NpdG9yeSddLAogICAgICAgICAg
ICAgJ3ByZXZpb3VzQ29tbWl0JyA9PiAkY29tbWl0X3Jvd1snY29tbWl0X3ByZXZpb3VzX2NvbW1p
dCddLAogICAgICAgICAgICAgJ3RpbWUnID0+IERhdGFiYXNlOjp0b19qc190aW1lKCRjb21taXRf
cm93Wydjb21taXRfdGltZSddKSwKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvaW5jbHVkZS9jb21taXQtdXBkYXRlci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LXVwZGF0ZXIucGhwCmluZGV4IDA4YzY4YmJlNjQx
MGFmZjA2ZGI4NzU0OTkyYTQ4YzkzN2U3MGUzMmYuLjQzMjIwZDMxOTMyMjA3ZWM4MjI4ZTIyM2Y2
NDI4NmQzYmMwYjgwNmMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvaW5jbHVkZS9jb21taXQtdXBkYXRlci5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocApAQCAtMzAsNyArMzAsNiBAQCBj
bGFzcyBDb21taXRVcGRhdGVyIHsKICAgICBwcml2YXRlIGZ1bmN0aW9uIHVwZGF0ZV9jb21taXQo
JiR1cGRhdGUsICRvd25lcl9jb21taXRfaWQsICRvd25lcl9yZXBvc2l0b3J5X2lkLCAkc2hvdWxk
X2luc2VydCkKICAgICB7CiAgICAgICAgICRjb21taXRfZGF0YSA9ICYkdGhpcy0+cmVzb2x2ZV9m
aWVsZHNfZnJvbV9kYXRhYmFzZSgkdXBkYXRlLCAkb3duZXJfcmVwb3NpdG9yeV9pZCwgJHNob3Vs
ZF9pbnNlcnQpOwotCiAgICAgICAgICRjb21taXRfc2VsZWN0X3F1ZXJ5ID0gYXJyYXkoJ3JlcG9z
aXRvcnknID0+ICRjb21taXRfZGF0YVsncmVwb3NpdG9yeSddLCAncmV2aXNpb24nID0+ICRjb21t
aXRfZGF0YVsncmV2aXNpb24nXSk7CiAgICAgICAgIGlmICgkc2hvdWxkX2luc2VydCkgewogICAg
ICAgICAgICAgJGNvbW1pdF9pZCA9ICR0aGlzLT5kYi0+dXBkYXRlX29yX2luc2VydF9yb3coJ2Nv
bW1pdHMnLCAnY29tbWl0JywgJGNvbW1pdF9zZWxlY3RfcXVlcnksICRjb21taXRfZGF0YSk7CkBA
IC03NCw2ICs3Myw3IEBAIGNsYXNzIENvbW1pdFVwZGF0ZXIgewogICAgIHByaXZhdGUgZnVuY3Rp
b24gJmNvbnN0cnVjdF91cGRhdGVfbGlzdCgmJGNvbW1pdF9pbmZvX2xpc3QsICRzaG91bGRfaW5z
ZXJ0KQogICAgIHsKICAgICAgICAgJHVwZGF0ZV9saXN0ID0gYXJyYXkoKTsKKyAgICAgICAgJGNv
bW1pdF9yZXZpc2lvbl9pZGVudGlmaWVycyA9IGFycmF5KCk7CiAKICAgICAgICAgZm9yZWFjaCAo
JGNvbW1pdF9pbmZvX2xpc3QgYXMgJiRjb21taXRfaW5mbykgewogICAgICAgICAgICAgc2VsZjo6
dmFsaWRhdGVfY29tbWl0cygkY29tbWl0X2luZm8pOwpAQCAtODEsNiArODEsMTEgQEAgY2xhc3Mg
Q29tbWl0VXBkYXRlciB7CiAgICAgICAgICAgICAkaGFzX3VwZGF0ZSA9IGNvdW50KCRjb21taXRf
ZGF0YSkgPiAxOwogCiAgICAgICAgICAgICAkdXBkYXRlID0gYXJyYXkoJ2NvbW1pdCcgPT4gJiRj
b21taXRfZGF0YSwgJ3JlcG9zaXRvcnknID0+ICYkY29tbWl0X2luZm9bJ3JlcG9zaXRvcnknXSk7
CisgICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncmV2aXNpb25JZGVudGlmaWVyJywg
JGNvbW1pdF9pbmZvKSkgeworICAgICAgICAgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCRj
b21taXRfaW5mb1sncmV2aXNpb25JZGVudGlmaWVyJ10sICRjb21taXRfcmV2aXNpb25faWRlbnRp
ZmllcnMpKQorICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZXhpdF93aXRoX2Vycm9yKCdEdXBs
aWNhdGVkUmV2aXNpb25JZGVudGlmaWVyJywgYXJyYXkoJ2NvbW1pdCcgPT4gJGNvbW1pdF9pbmZv
KSk7CisgICAgICAgICAgICAgICAgJGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyc1skY29tbWl0
X2luZm9bJ3JldmlzaW9uSWRlbnRpZmllciddXSA9IHRydWU7CisgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncHJldmlvdXNDb21taXQnLCAkY29tbWl0X2lu
Zm8pKSB7CiAgICAgICAgICAgICAgICAgJGhhc191cGRhdGUgPSB0cnVlOwogICAgICAgICAgICAg
ICAgICR1cGRhdGVbJ3ByZXZpb3VzX2NvbW1pdCddID0gJiRjb21taXRfaW5mb1sncHJldmlvdXND
b21taXQnXTsKQEAgLTEwNCw2ICsxMDksNyBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsKIAogICAg
ICAgICAgICAgJG93bmVkX2NvbW1pdF91cGRhdGVfbGlzdCA9IGFycmF5KCk7CiAgICAgICAgICAg
ICBmb3JlYWNoKCRjb21taXRfaW5mb1snb3duZWRDb21taXRzJ10gYXMgJG93bmVkX3JlcG9zaXRv
cnlfbmFtZSA9PiAmJG93bmVkX2NvbW1pdF9pbmZvKSB7CisgICAgICAgICAgICAgICAgc2VsZjo6
dmFsaWRhdGVfY29tbWl0cygkb3duZWRfY29tbWl0X2luZm8sIHRydWUpOwogICAgICAgICAgICAg
ICAgICRvd25lZF9jb21taXQgPSAmc2VsZjo6Y29uc3RydWN0X2NvbW1pdF9kYXRhKCRvd25lZF9j
b21taXRfaW5mbywgJG93bmVkX3JlcG9zaXRvcnlfbmFtZSwgJHNob3VsZF9pbnNlcnQpOwogICAg
ICAgICAgICAgICAgICRvd25lZF9jb21taXRfdXBkYXRlID0gYXJyYXkoJ2NvbW1pdCcgPT4gJiRv
d25lZF9jb21taXQsICdyZXBvc2l0b3J5JyA9PiAkb3duZWRfcmVwb3NpdG9yeV9uYW1lKTsKIApA
QCAtMTQzLDE1ICsxNDksMTggQEAgY2xhc3MgQ29tbWl0VXBkYXRlciB7CiAgICAgICAgICAgICAk
Y29tbWl0X2RhdGFbJ3RpbWUnXSA9ICRjb21taXRfaW5mb1sndGltZSddOwogICAgICAgICB9CiAK
KyAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJ3JldmlzaW9uSWRlbnRpZmllcicsICRjb21t
aXRfaW5mbykpCisgICAgICAgICAgICAkY29tbWl0X2RhdGFbJ3JldmlzaW9uX2lkZW50aWZpZXIn
XSA9ICRjb21taXRfaW5mb1sncmV2aXNpb25JZGVudGlmaWVyJ107CisKICAgICAgICAgaWYgKCRz
aG91bGRfaW5zZXJ0KQogICAgICAgICAgICAgJGNvbW1pdF9kYXRhWydyZXBvcnRlZCddID0gdHJ1
ZTsKIAogICAgICAgICByZXR1cm4gJGNvbW1pdF9kYXRhOwogICAgIH0KIAotICAgIHByaXZhdGUg
c3RhdGljIGZ1bmN0aW9uIHZhbGlkYXRlX2NvbW1pdHMoJiRjb21taXRfaW5mbykKKyAgICBwcml2
YXRlIHN0YXRpYyBmdW5jdGlvbiB2YWxpZGF0ZV9jb21taXRzKCYkY29tbWl0X2luZm8sICRpc19v
d25fY29tbWl0ID0gZmFsc2UpCiAgICAgewotICAgICAgICBpZiAoIWFycmF5X2tleV9leGlzdHMo
J3JlcG9zaXRvcnknLCAkY29tbWl0X2luZm8pKQorICAgICAgICBpZiAoIWFycmF5X2tleV9leGlz
dHMoJ3JlcG9zaXRvcnknLCAkY29tbWl0X2luZm8pICYmICEkaXNfb3duX2NvbW1pdCkKICAgICAg
ICAgICAgIGV4aXRfd2l0aF9lcnJvcignTWlzc2luZ1JlcG9zaXRvcnlOYW1lJywgYXJyYXkoJ2Nv
bW1pdCcgPT4gJGNvbW1pdF9pbmZvKSk7CiAgICAgICAgIGlmICghYXJyYXlfa2V5X2V4aXN0cygn
cmV2aXNpb24nLCAkY29tbWl0X2luZm8pKQogICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdN
aXNzaW5nUmV2aXNpb24nLCBhcnJheSgnY29tbWl0JyA9PiAkY29tbWl0X2luZm8pKTsKQEAgLTE2
MCw2ICsxNjksOCBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsKICAgICAgICAgICAgIGV4aXRfd2l0
aF9lcnJvcignSW52YWxpZEF1dGhvckZvcm1hdCcsIGFycmF5KCdjb21taXQnID0+ICRjb21taXRf
aW5mbykpOwogICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncHJldmlvdXNDb21taXQnLCAk
Y29tbWl0X2luZm8pKQogICAgICAgICAgICAgcmVxdWlyZV9mb3JtYXQoJ1JldmlzaW9uJywgJGNv
bW1pdF9pbmZvWydwcmV2aW91c0NvbW1pdCddLCAnL15bQS1aYS16MC05IFwuXSskLycpOworICAg
ICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncmV2aXNpb25JZGVudGlmaWVyJywgJGNvbW1pdF9p
bmZvKSkKKyAgICAgICAgICAgIHJlcXVpcmVfZm9ybWF0KCdSZXZpc2lvbklkZW50aWZpZXInLCAk
Y29tbWl0X2luZm9bJ3JldmlzaW9uSWRlbnRpZmllciddLCAnL15cZCtAW1x3XC5cLV0rJC8nKTsK
ICAgICB9CiAKICAgICBwcml2YXRlIGZ1bmN0aW9uIHJlc29sdmVfcmVwb3NpdG9yeSgkcmVwb3Np
dG9yeV9uYW1lLCAkb3duZXJfcmVwb3NpdG9yeV9pZCwgJHNob3VsZF9pbnNlcnQpCmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3J0LXByb2Nl
c3Nvci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3J0
LXByb2Nlc3Nvci5waHAKaW5kZXggMWJjMWRiNjQyZGJlZmVmOGVjYjA3MmUxOGI1N2U5YzkxYmMw
NzIzYy4uYWJlZDhhZTAwOGNkZmM4NGQ2MjM4N2IyZGEwZTlhMjM0MTZhMjRjNyAxMDA2NDQKLS0t
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL3JlcG9ydC1wcm9jZXNz
b3IucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9yZXBv
cnQtcHJvY2Vzc29yLnBocApAQCAtMTU5LDE0ICsxNTksMTYgQEAgY2xhc3MgUmVwb3J0UHJvY2Vz
c29yIHsKICAgICAgICAgICAgICAgICAkdGhpcy0+cm9sbGJhY2tfd2l0aF9lcnJvcignRmFpbGVk
VG9VcGRhdGVCdWlsZFJlcXVlc3QnLCBhcnJheSgnYnVpbGRSZXF1ZXN0JyA9PiAkYnVpbGRfcmVx
dWVzdF9pZCwgJ2J1aWxkJyA9PiAkYnVpbGRfaWQpKTsKICAgICAgICAgfQogCi0KICAgICAgICAg
Zm9yZWFjaCAoJHJldmlzaW9ucyBhcyAkcmVwb3NpdG9yeV9uYW1lID0+ICRyZXZpc2lvbl9kYXRh
KSB7CiAgICAgICAgICAgICAkcmVwb3NpdG9yeV9pZCA9ICR0aGlzLT5kYi0+c2VsZWN0X29yX2lu
c2VydF9yb3coJ3JlcG9zaXRvcmllcycsICdyZXBvc2l0b3J5JywgYXJyYXkoJ25hbWUnID0+ICRy
ZXBvc2l0b3J5X25hbWUsICdvd25lcicgPT4gTlVMTCkpOwogICAgICAgICAgICAgaWYgKCEkcmVw
b3NpdG9yeV9pZCkKICAgICAgICAgICAgICAgICAkdGhpcy0+cm9sbGJhY2tfd2l0aF9lcnJvcign
RmFpbGVkVG9JbnNlcnRSZXBvc2l0b3J5JywgYXJyYXkoJ25hbWUnID0+ICRyZXBvc2l0b3J5X25h
bWUpKTsKIAotICAgICAgICAgICAgJGNvbW1pdF9kYXRhID0gYXJyYXkoJ3JlcG9zaXRvcnknID0+
ICRyZXBvc2l0b3J5X2lkLCAncmV2aXNpb24nID0+ICRyZXZpc2lvbl9kYXRhWydyZXZpc2lvbidd
LCAndGltZScgPT4gYXJyYXlfZ2V0KCRyZXZpc2lvbl9kYXRhLCAndGltZXN0YW1wJykpOwotCisg
ICAgICAgICAgICAkY29tbWl0X2RhdGEgPSBhcnJheSgKKyAgICAgICAgICAgICAgICAncmVwb3Np
dG9yeScgPT4gJHJlcG9zaXRvcnlfaWQsIAorICAgICAgICAgICAgICAgICdyZXZpc2lvbicgPT4g
JHJldmlzaW9uX2RhdGFbJ3JldmlzaW9uJ10sIAorICAgICAgICAgICAgICAgICd0aW1lJyA9PiBh
cnJheV9nZXQoJHJldmlzaW9uX2RhdGEsICd0aW1lc3RhbXAnKSwgCisgICAgICAgICAgICAgICAg
J3JldmlzaW9uX2lkZW50aWZpZXInID0+IGFycmF5X2dldCgkcmV2aXNpb25fZGF0YSwgJ3Jldmlz
aW9uSWRlbnRpZmllcicsIG51bGwpKTsKICAgICAgICAgICAgICRtaXNtYXRjaGluZ19jb21taXQg
PSAkdGhpcy0+ZGItPnF1ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCAqIEZST00gYnVpbGRfY29t
bWl0cywgY29tbWl0cwogICAgICAgICAgICAgICAgIFdIRVJFIGJ1aWxkX2NvbW1pdCA9IGNvbW1p
dF9pZCBBTkQgY29tbWl0X2J1aWxkID0gJDEgQU5EIGNvbW1pdF9yZXBvc2l0b3J5ID0gJDIgQU5E
IGNvbW1pdF9yZXZpc2lvbiAhPSAkMyBMSU1JVCAxJywKICAgICAgICAgICAgICAgICBhcnJheSgk
YnVpbGRfaWQsICRyZXBvc2l0b3J5X2lkLCAkcmV2aXNpb25fZGF0YVsncmV2aXNpb24nXSkpOwpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29t
bWl0LWxvZy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2Nv
bW1pdC1sb2cuanMKaW5kZXggZTZkNGQ0NGFiYjU1NDEzNDZlMmY0YTlkNDQwMDlmNzlhNzgyOTAw
Yi4uNGUzMTA3Y2Q5YWNhNWYxNWQzM2YyZjNkMGUxYTFlYjA1ZTZkNmI0MCAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9n
LmpzCkBAIC0yMCw2ICsyMCw3IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9i
amVjdCB7CiAKICAgICAgICAgY29uc29sZS5hc3NlcnQoK3RoaXMuX3Jhd0RhdGFbJ3RpbWUnXSA9
PSArcmF3RGF0YVsndGltZSddKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fcmF3RGF0
YVsncmV2aXNpb24nXSA9PSByYXdEYXRhWydyZXZpc2lvbiddKTsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQodGhpcy5fcmF3RGF0YVsncmV2aXNpb25JZGVudGlmaWVyJ10gPT0gcmF3RGF0YVsncmV2
aXNpb25JZGVudGlmaWVyJ10pOwogCiAgICAgICAgIGlmIChyYXdEYXRhLmF1dGhvck5hbWUpCiAg
ICAgICAgICAgICB0aGlzLl9yYXdEYXRhLmF1dGhvck5hbWUgPSByYXdEYXRhLmF1dGhvck5hbWU7
CkBAIC0zOSw2ICs0MCw3IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVj
dCB7CiAgICAgdGVzdGFiaWxpdHkoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWyd0ZXN0YWJpbGl0
eSddOyB9CiAgICAgYXV0aG9yKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsnYXV0aG9yTmFtZSdd
OyB9CiAgICAgcmV2aXNpb24oKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydyZXZpc2lvbiddOyB9
CisgICAgcmV2aXNpb25JZGVudGlmaWVyKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsncmV2aXNp
b25JZGVudGlmaWVyJ107IH0KICAgICBtZXNzYWdlKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsn
bWVzc2FnZSddOyB9CiAgICAgdXJsKCkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeS51cmxGb3JS
ZXZpc2lvbih0aGlzLl9yYXdEYXRhWydyZXZpc2lvbiddKTsgfQogICAgIG93bnNDb21taXRzKCkg
eyByZXR1cm4gdGhpcy5fcmF3RGF0YVsnb3duc0NvbW1pdHMnXTsgfQpAQCAtNDgsMTUgKzUwLDM5
IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgaGFzQ29t
bWl0T3JkZXIoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydvcmRlciddICE9IG51bGw7IH0KICAg
ICBzZXRPd25lckNvbW1pdHMob3duZXJDb21taXQpIHsgdGhpcy5fb3duZXJDb21taXQgPSBvd25l
ckNvbW1pdDsgfQogCi0gICAgbGFiZWwoKQorICAgIGxhYmVsKCkgeyByZXR1cm4gQ29tbWl0TG9n
Ll9mb3JtYXR0dGVkUmV2aXNpb24odGhpcy5yZXZpc2lvbigpLCB0aGlzLnJldmlzaW9uSWRlbnRp
ZmllcigpKTsgfQorCisgICAgc3RhdGljIHJlcG9zaXRvcnlUeXBlKHJldmlzaW9uKQorICAgIHsK
KyAgICAgICAgaWYgKHBhcnNlSW50KHJldmlzaW9uKSA9PSByZXZpc2lvbikKKyAgICAgICAgICAg
IHJldHVybiAnc3ZuJzsKKyAgICAgICAgaWYgKHJldmlzaW9uLmxlbmd0aCA9PSA0MCkKKyAgICAg
ICAgICAgIHJldHVybiAnZ2l0JzsKKyAgICB9CisKKyAgICBzdGF0aWMgX2Zvcm1hdHR0ZWRSZXZp
c2lvbihyZXZpc2lvbiwgcmV2aXNpb25JZGVudGlmaWVyPW51bGwpIAogICAgIHsKLSAgICAgICAg
Y29uc3QgcmV2aXNpb24gPSB0aGlzLnJldmlzaW9uKCk7Ci0gICAgICAgIGlmIChwYXJzZUludChy
ZXZpc2lvbikgPT0gcmV2aXNpb24pIC8vIGUuZy4gcjEyMzQ1Ci0gICAgICAgICAgICByZXR1cm4g
J3InICsgcmV2aXNpb247Ci0gICAgICAgIGlmIChyZXZpc2lvbi5sZW5ndGggPT0gNDApIC8vIGUu
Zy4gZ2l0IGhhc2gKLSAgICAgICAgICAgIHJldHVybiByZXZpc2lvbi5zdWJzdHJpbmcoMCwgMTIp
OwotICAgICAgICByZXR1cm4gcmV2aXNpb247CisgICAgICAgIGxldCBmb3JtYXR0ZWRSZXZpc2lv
biA9IHJldmlzaW9uOworICAgICAgICBsZXQgcmVwb3NpdG9yeVR5cGUgPSBDb21taXRMb2cucmVw
b3NpdG9yeVR5cGUocmV2aXNpb24pOworICAgICAgICBpZiAocmVwb3NpdG9yeVR5cGUgPT0gJ3N2
bicpIC8vIGUuZy4gcjEyMzQ1CisgICAgICAgICAgICBmb3JtYXR0ZWRSZXZpc2lvbiA9ICAncicg
KyByZXZpc2lvbjsKKyAgICAgICAgaWYgKHJlcG9zaXRvcnlUeXBlID09ICdnaXQnKSAvLyBlLmcu
IGdpdCBoYXNoCisgICAgICAgICAgICBmb3JtYXR0ZWRSZXZpc2lvbiA9IHJldmlzaW9uLnN1YnN0
cmluZygwLCAxMik7CisgICAgICAgIGlmIChyZXZpc2lvbklkZW50aWZpZXIpCisgICAgICAgICAg
ICBmb3JtYXR0ZWRSZXZpc2lvbiA9IGAke3JldmlzaW9uSWRlbnRpZmllcn0gKCR7Zm9ybWF0dGVk
UmV2aXNpb259KWA7CisgICAgICAgIHJldHVybiBmb3JtYXR0ZWRSZXZpc2lvbjsKICAgICB9CisK
KyAgICByZXZpc2lvbklkZW50aWZpZXJQYXJ0cygpIAorICAgIHsgCisgICAgICAgIGNvbnN0IHJl
dmlzaW9uSWRlbnRpZmllciA9ICB0aGlzLnJldmlzaW9uSWRlbnRpZmllcigpOworICAgICAgICBp
ZiAoIXJldmlzaW9uSWRlbnRpZmllcikKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAg
ICBjb25zdCBtYXRjaGVzID0gLyg/PG51bWJlcj5cZCspQCg/PGJyYW5jaD5bXHdcLlwtXSspLy5l
eGVjKHJldmlzaW9uSWRlbnRpZmllcik7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KG1hdGNoZXMp
OworICAgICAgICByZXR1cm4gbWF0Y2hlcy5ncm91cHM7CisgICAgfQorCiAgICAgdGl0bGUoKSB7
IHJldHVybiB0aGlzLl9yZXBvc2l0b3J5Lm5hbWUoKSArICcgYXQgJyArIHRoaXMubGFiZWwoKTsg
fQogCiAgICAgZGlmZihwcmV2aW91c0NvbW1pdCkKQEAgLTY4LDE3ICs5NCwyNCBAQCBjbGFzcyBD
b21taXRMb2cgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogICAgICAgICBpZiAoIXByZXZpb3Vz
Q29tbWl0KQogICAgICAgICAgICAgcmV0dXJuIHtyZXBvc2l0b3J5OiByZXBvc2l0b3J5LCBsYWJl
bDogdGhpcy5sYWJlbCgpLCB1cmw6IHRoaXMudXJsKCl9OwogCi0gICAgICAgIGNvbnN0IHRvID0g
dGhpcy5yZXZpc2lvbigpOwotICAgICAgICBjb25zdCBmcm9tID0gcHJldmlvdXNDb21taXQucmV2
aXNpb24oKTsKLSAgICAgICAgbGV0IGxhYmVsID0gbnVsbDsKLSAgICAgICAgaWYgKHBhcnNlSW50
KGZyb20pID09IGZyb20pLy8gZS5nLiByMTIzNDUuCi0gICAgICAgICAgICBsYWJlbCA9IGByJHtm
cm9tfS1yJHt0aGlzLnJldmlzaW9uKCl9YDsKLSAgICAgICAgZWxzZSBpZiAodG8ubGVuZ3RoID09
IDQwKSAvLyBlLmcuIGdpdCBoYXNoCi0gICAgICAgICAgICBsYWJlbCA9IGAke2Zyb20uc3Vic3Ry
aW5nKDAsIDEyKX0uLiR7dG8uc3Vic3RyaW5nKDAsIDEyKX1gOwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBsYWJlbCA9IGAke2Zyb219IC0gJHt0b31gOwotCi0gICAgICAgIHJldHVybiB7cmVw
b3NpdG9yeTogcmVwb3NpdG9yeSwgbGFiZWw6IGxhYmVsLCB1cmw6IHJlcG9zaXRvcnkudXJsRm9y
UmV2aXNpb25SYW5nZShmcm9tLCB0byl9OworICAgICAgICBjb25zdCB0b1JldmlzaW9uID0gdGhp
cy5yZXZpc2lvbigpOworICAgICAgICBjb25zdCBmcm9tUmV2aXNpb24gPSBwcmV2aW91c0NvbW1p
dC5yZXZpc2lvbigpOworICAgICAgICBjb25zdCB0b01hdGNoID0gdGhpcy5yZXZpc2lvbklkZW50
aWZpZXJQYXJ0cygpOworICAgICAgICBjb25zdCBmcm9tTWF0Y2ggPSBwcmV2aW91c0NvbW1pdC5y
ZXZpc2lvbklkZW50aWZpZXJQYXJ0cygpOworICAgICAgICBjb25zdCByZXBvc2l0b3J5VHlwZSA9
IENvbW1pdExvZy5yZXBvc2l0b3J5VHlwZSh0b1JldmlzaW9uKTsKKyAgICAgICAKKyAgICAgICAg
bGV0IGxhYmVsID0gKCgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IHJlcG9z
aXRvcnlUeXBlID09ICdnaXQnID8gJy4uJyA6IChyZXBvc2l0b3J5VHlwZSA9PSAnc3ZuJyA/ICct
JyA6ICcgLSAnKTsKKyAgICAgICAgICAgIGlmIChmcm9tTWF0Y2ggJiYgdG9NYXRjaCkgeworICAg
ICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZyb21NYXRjaC5icmFuY2ggPT0gdG9NYXRjaC5i
cmFuY2gpOworICAgICAgICAgICAgICAgIHJldHVybiBgJHtmcm9tTWF0Y2gubnVtYmVyfS0ke3Rv
TWF0Y2gubnVtYmVyfUAke2Zyb21NYXRjaC5icmFuY2h9ICgke0NvbW1pdExvZy5fZm9ybWF0dHRl
ZFJldmlzaW9uKGZyb21SZXZpc2lvbil9JHtzZXBhcmF0b3J9JHtDb21taXRMb2cuX2Zvcm1hdHR0
ZWRSZXZpc2lvbih0b1JldmlzaW9uKX0pYAorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYg
KGZyb21NYXRjaCB8fCB0b01hdGNoKQorICAgICAgICAgICAgICAgIHJldHVybiBgJHtwcmV2aW91
c0NvbW1pdC5sYWJlbCgpfSAtICR7dGhpcy5sYWJlbCgpfWA7CisgICAgICAgICAgICByZXR1cm4g
YCR7cHJldmlvdXNDb21taXQubGFiZWwoKX0ke3NlcGFyYXRvcn0ke3RoaXMubGFiZWwoKX1gOwor
ICAgICAgICB9KSgpOworCisgICAgICAgIHJldHVybiB7cmVwb3NpdG9yeTogcmVwb3NpdG9yeSwg
bGFiZWw6IGxhYmVsLCB1cmw6IHJlcG9zaXRvcnkudXJsRm9yUmV2aXNpb25SYW5nZShmcm9tUmV2
aXNpb24sIHRvUmV2aXNpb24pfTsKICAgICB9CiAKICAgICBzdGF0aWMgZmV0Y2hMYXRlc3RDb21t
aXRGb3JQbGF0Zm9ybShyZXBvc2l0b3J5LCBwbGF0Zm9ybSkKZGlmZiAtLWdpdCBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzCmlu
ZGV4IDI4NTY5ZjA2MzczMDRlM2E2MmNmNzcwMDkyMzkzZjdmMGU3MzY1OTcuLmEzMzEyMWEwZWMx
MWFmMzAxNGVmZjQ0ZTkwMDJjYmIwMWU0YzA0ZGYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMKKysrIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcwpAQCAt
MTcsNiArMTcsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAogICAg
ICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDgiLAorICAgICAgICAgICAgICAgICJyZXZp
c2lvbklkZW50aWZpZXIiOiAiMTg0Mjc2QG1haW4iLAogICAgICAgICAgICAgICAgICJ0aW1lIjog
IjIwMTctMDEtMjBUMDI6NTI6MzQuNTc3WiIsCiAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsi
bmFtZSI6ICJaYWxhbiBCdWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKICAg
ICAgICAgICAgICAgICAibWVzc2FnZSI6ICJhIG1lc3NhZ2UiLApAQCAtMjQsNiArMjUsNyBAQCBk
ZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAogICAgICAgICAgICAgICAgICJy
ZXZpc2lvbiI6ICIyMTA5NDkiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIi
OiAiMTg0Mjc3QG1haW4iLAogICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDM6
MjM6NTAuNjQ1WiIsCiAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDaHJpcyBE
dW1leiIsICJhY2NvdW50IjogImNkdW1lekBhcHBsZS5jb20ifSwKICAgICAgICAgICAgICAgICAi
bWVzc2FnZSI6ICJzb21lIG1lc3NhZ2UiLApAQCAtMzIsMTIgKzM0LDUzIEBAIGRlc2NyaWJlKCIv
YXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5
IjogIldlYktpdCIsCiAgICAgICAgICAgICAgICAgInByZXZpb3VzQ29tbWl0IjogIjIxMDk0OSIs
CiAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk1MCIsCisgICAgICAgICAgICAgICAg
InJldmlzaW9uSWRlbnRpZmllciI6ICIxODQyNzhAbWFpbiIsCiAgICAgICAgICAgICAgICAgInRp
bWUiOiAiMjAxNy0wMS0yMFQwMzo0OTozNy44ODdaIiwKICAgICAgICAgICAgICAgICAiYXV0aG9y
IjogeyJuYW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50IjogImNvbW1pdC1xdWV1ZUB3ZWJr
aXQub3JnIn0sCiAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdlIiwK
KyAgICAgICAgICAgIH0sCisgICAgICAgIF0KKyAgICB9OworCisgICAgY29uc3Qgc3ViY2Vyc2lv
bkNvbW1pdHNXaXRoRmFrZVJldmlzaW9uSWRlbnRpZmllciA9IHsKKyAgICAgICAgInNsYXZlTmFt
ZSI6ICJzb21lU2xhdmUiLAorICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQi
LAorICAgICAgICAiY29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAi
cmVwb3NpdG9yeSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5
NDgiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0Mjc2QG1haW4i
LAorICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6NTI6MzQuNTc3WiIsCisg
ICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJaYWxhbiBCdWp0YXMiLCAiYWNjb3Vu
dCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJhIG1l
c3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAi
cmVwb3NpdG9yeSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5
NDkiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0Mjc3QG1haW4i
LAorICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1WiIsCisg
ICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDaHJpcyBEdW1leiIsICJhY2NvdW50
IjogImNkdW1lekBhcHBsZS5jb20ifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJzb21l
IG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJwcmV2aW91c0NvbW1p
dCI6ICIyMTA5NDkiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NTAiLAorICAg
ICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0Mjc4QG1haW4iLAorICAgICAg
ICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDM6NDk6MzcuODg3WiIsCisgICAgICAgICAg
ICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3VudCI6ICJjb21t
aXQtcXVldWVAd2Via2l0Lm9yZyJ9LAorICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImFub3Ro
ZXIgbWVzc2FnZSIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjog
IjIxMDk1MSIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxODQyNzhA
c29tZXRoaW5nIiwKKyAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjQ5OjQw
Ljg4N1oiLAorICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVl
IiwgImFjY291bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmcifSwKKyAgICAgICAgICAgICAg
ICAibWVzc2FnZSI6ICJhbm90aGVyIG1lc3NhZ2UiLAogICAgICAgICAgICAgfQogICAgICAgICBd
Ci0gICAgfQorICAgIH07CiAKICAgICBjb25zdCBjb21taXRzT25lUHJlZml4T2ZUaGVPdGhlciA9
IHsKICAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLApAQCAtNDYsNiArODksNyBAQCBk
ZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAogICAgICAgICAgICAgICAgICJy
ZXZpc2lvbiI6ICIyMTA5NCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6
ICIxODQyNzJAbWFpbiIsCiAgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMjo1
MjozNC41NzdaIiwKICAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIlphbGFuIEJ1
anRhcyIsICJhY2NvdW50IjogInphbGFuQGFwcGxlLmNvbSJ9LAogICAgICAgICAgICAgICAgICJt
ZXNzYWdlIjogImEgbWVzc2FnZSIsCkBAIC01Myw2ICs5Nyw3IEBAIGRlc2NyaWJlKCIvYXBpL2Nv
bW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJy
ZXBvc2l0b3J5IjogIldlYktpdCIsCiAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0
OSIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxODQyNzdAbWFpbiIs
CiAgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMzoyMzo1MC42NDVaIiwKICAg
ICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNocmlzIER1bWV6IiwgImFjY291bnQi
OiAiY2R1bWV6QGFwcGxlLmNvbSJ9LAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogInNvbWUg
bWVzc2FnZSIsCkBAIC01MjQsNiArNTY5LDQxIEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCisgICAgICAgIGl0
KCJzaG91bGQgcmV0dXJuIGNvbW1pdCB3aXRoIGNvbW1pdCByZXZpc2lvbiBsYWJlbCIsIGFzeW5j
ICgpID0+IHsKKyAgICAgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25D
b21taXRzKTsKKyAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29t
bWl0cyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTihgL2FwaS9jb21taXRzL1dlYktpdC8ke3N1YnZlcnNpb25Db21taXRz
LmNvbW1pdHNbMF0ucmV2aXNpb25JZGVudGlmaWVyfWApOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdC5jb21taXRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnRD
b21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHQuY29tbWl0c1swXSwgc3VidmVyc2lvbkNv
bW1pdHMuY29tbWl0c1swXSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCJzaG91bGQgcmV0
dXJuICdBbWJpZ3VvdXNSZXZpc2lvblByZWZpeCcgd2hlbiBtb3JlIHRoYW4gb25lIGNvbW1pdHMg
YXJlIGZvdW5kIGZvciBhIHJldmlzaW9uIGxhYmVsIHByZWZpeCIsIGFzeW5jICgpID0+IHsKKyAg
ICAgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7CisgICAgICAg
ICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJjZXJzaW9uQ29tbWl0c1dpdGhGYWtlUmV2
aXNpb25JZGVudGlmaWVyKTsKKyAgICAgICAgICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhT
dGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3ViY2Vyc2lvbkNvbW1pdHNXaXRoRmFrZVJl
dmlzaW9uSWRlbnRpZmllcik7CisgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1v
dGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8xODQyNzhAP3ByZWZpeC1tYXRjaD10cnVl
Jyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ0Ft
YmlndW91c1JldmlzaW9uUHJlZml4Jyk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCJzaG91
bGQgbm90IHJldHVybiAnQW1iaWd1b3VzUmV2aXNpb25QcmVmaXgnIHdoZW4gdGhlcmUgaXMgYSBj
b21taXQgcmV2aXNpb24gbGFiZWwgZXh0cmFjdCBtYXRjaGVzIHNwZWNpZmllZCByZXZpc2lvbiBw
cmVmaXgiLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCByZW1vdGUgPSBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpOworICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3Vi
Y2Vyc2lvbkNvbW1pdHNXaXRoRmFrZVJldmlzaW9uSWRlbnRpZmllcik7CisgICAgICAgICAgICBh
d2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1
YmNlcnNpb25Db21taXRzV2l0aEZha2VSZXZpc2lvbklkZW50aWZpZXIpOworICAgICAgICAgICAg
Y29uc3QgcmVzdWx0ID0gYXdhaXQgcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQv
MTg0Mjc4QG1haW4/cHJlZml4LW1hdGNoPXRydWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFz
c2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJj
ZXJzaW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25JZGVudGlmaWVyWydjb21taXRzJ11bMl0pOwor
ICAgICAgICB9KTsKKworICAgICAgICBpdCgic2hvdWxkIHJldHVybiAnVW5rbm93bkNvbW1pdCcg
d2hlbiBubyBjb21taXQgaXMgZm91bmQgZm9yIGEgcmV2aXNpb24gbGFiZWwgcHJlZml4IiwgYXN5
bmMgKCkgPT4geworICAgICAgICAgICAgY29uc3QgcmVtb3RlID0gVGVzdFNlcnZlci5yZW1vdGVB
UEkoKTsKKyAgICAgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YmNlcnNpb25Db21t
aXRzV2l0aEZha2VSZXZpc2lvbklkZW50aWZpZXIpOworICAgICAgICAgICAgYXdhaXQgcmVtb3Rl
LnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJjZXJzaW9uQ29t
bWl0c1dpdGhGYWtlUmV2aXNpb25JZGVudGlmaWVyKTsKKyAgICAgICAgICAgIGNvbnN0IHJlc3Vs
dCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzE4NDI3OEB4P3By
ZWZpeC1tYXRjaD10cnVlJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0
WydzdGF0dXMnXSwgJ1Vua25vd25Db21taXQnKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiAKICAg
ICBkZXNjcmliZSgnL2FwaS9jb21taXRzLzxyZXBvc2l0b3J5Pi9vd25lZC1jb21taXRzP293bmVy
LXJldmlzaW9uPTxjb21taXQ+JywgKCkgPT4gewpAQCAtNzI3LDYgKzgwNywzMyBAQCBkZXNjcmli
ZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9KTsKIAorICAgICAgICBpdCgic2hvdWxkIHJldHVybiByZXBvcnRlZCBjb21taXRzIGluIHRo
ZSBzcGVjaWZpZWQgcmV2aXNpb24gbGFiZWwgcmFuZ2UiLCBhc3luYyAoKSA9PiB7CisgICAgICAg
ICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgICAgIGF3YWl0
IGRiLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEsICduYW1lJzogJ1dlYktpdCd9KTsK
KyAgICAgICAgICAgIGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEs
ICdyZXZpc2lvbic6ICcyMTA5NDgnLCAncmV2aXNpb25faWRlbnRpZmllcic6ICcxODQyNzZAbWFp
bicsICd0aW1lJzogJzIwMTctMDEtMjBUMDI6NTI6MzQuNTc3WicsICdyZXBvcnRlZCc6IHRydWV9
KTsKKyAgICAgICAgICAgIGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6
IDEsICdyZXZpc2lvbic6ICcyMTA5NDknLCAncmV2aXNpb25faWRlbnRpZmllcic6ICcxODQyNzdA
bWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1WicsICdyZXBvcnRlZCc6IHRy
dWV9KTsKKyAgICAgICAgICAgIGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9y
eSc6IDEsICdyZXZpc2lvbic6ICcyMTA5NTAnLCAncmV2aXNpb25faWRlbnRpZmllcic6ICcxODQy
NzhAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDM6NDk6MzcuODg3WicsICdyZXBvcnRlZCc6
IHRydWV9KTsKKyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8/cHJlY2VkaW5nUmV2aXNpb249
MTg0Mjc2QG1haW4mbGFzdFJldmlzaW9uPTE4NDI3OEBtYWluJyk7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMik7CisgICAgICAg
ICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVsw
XSwgeworICAgICAgICAgICAgICAgIHByZXZpb3VzQ29tbWl0OiBudWxsLAorICAgICAgICAgICAg
ICAgIHJldmlzaW9uOiAnMjEwOTQ5JywKKyAgICAgICAgICAgICAgICByZXZpc2lvbklkZW50aWZp
ZXI6ICcxODQyODlAbWFpbicsCisgICAgICAgICAgICAgICAgdGltZTogJzIwMTctMDEtMjBUMDM6
MjM6NTAuNjQ1WicsCisgICAgICAgICAgICAgICAgYXV0aG9yOiB7bmFtZTogbnVsbCwgYWNjb3Vu
dDogbnVsbH0sCisgICAgICAgICAgICAgICAgbWVzc2FnZTogbnVsbCwKKyAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydj
b21taXRzJ11bMV0sIHsKKyAgICAgICAgICAgICAgICBwcmV2aW91c0NvbW1pdDogbnVsbCwKKyAg
ICAgICAgICAgICAgICByZXZpc2lvbjogJzIxMDk1MCcsCisgICAgICAgICAgICAgICAgcmV2aXNp
b25JZGVudGlmaWVyOiAnMTg0MjkwQG1haW4nLAorICAgICAgICAgICAgICAgIHRpbWU6ICcyMDE3
LTAxLTIwVDAzOjQ5OjM3Ljg4N1onLAorICAgICAgICAgICAgICAgIGF1dGhvcjoge25hbWU6IG51
bGwsIGFjY291bnQ6IG51bGx9LAorICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG51bGwsCisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKICAgICAgICAgaXQoInNob3VsZCBub3QgaW5jbHVk
ZSBhIHJldmlzaW9uIG5vdCB3aXRoaW4gdGhlIHNwZWNpZmllZCByYW5nZSIsICgpID0+IHsKICAg
ICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwogICAgICAgICAgICAg
Y29uc3QgcmVtb3RlID0gVGVzdFNlcnZlci5yZW1vdGVBUEkoKTsKQEAgLTc1MCw2ICs4NTcsMjMg
QEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoInNob3VsZCBub3QgaW5jbHVkZSBhIHJldmlz
aW9uIG5vdCB3aXRoaW4gdGhlIHNwZWNpZmllZCBjb21taXQgcmV2aXNpb24gbGFiZWwgcmFuZ2Ui
LCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKTsKKyAgICAgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7
CisgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHsnaWQnOiAxLCAn
bmFtZSc6ICdXZWJLaXQnfSksCisgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1pdHMn
LCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTQ3JywgJ3JldmlzaW9uX2lkZW50
aWZpZXInOiAnMTg0Mjc1QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIwVDAyOjM4OjQ1LjQ4NVon
LCAncmVwb3J0ZWQnOiBmYWxzZX0pOworICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21t
aXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk0OCcsICdyZXZpc2lvbl9p
ZGVudGlmaWVyJzogJzE4NDI3NkBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMjo1MjozNC41
NzdaJywgJ3JlcG9ydGVkJzogZmFsc2V9KTsKKyAgICAgICAgICAgIGF3YWl0IGRiLmluc2VydCgn
Y29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6ICcyMTA5NDknLCAncmV2aXNp
b25faWRlbnRpZmllcic6ICcxODQyNzdAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDM6MjM6
NTAuNjQ1WicsICdyZXBvcnRlZCc6IGZhbHNlfSk7CisgICAgICAgICAgICBhd2FpdCBkYi5pbnNl
cnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTUwJywgJ3Jl
dmlzaW9uX2lkZW50aWZpZXInOiAnMTg0Mjc4QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIwVDAz
OjQ5OjM3Ljg4N1onLCAncmVwb3J0ZWQnOiBmYWxzZX0pOworICAgICAgICAgICAgYXdhaXQgYWRk
U2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpOworICAgICAgICAgICAgYXdhaXQgcmVt
b3RlLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9u
Q29tbWl0cyk7CisgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0SlNP
TignL2FwaS9jb21taXRzL1dlYktpdC8/cHJlY2VkaW5nUmV2aXNpb249MTg0Mjc1QG1haW4mbGFz
dFJldmlzaW9uPTE4NDI3N0BtYWluJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVx
dWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnRDb21t
aXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNv
bW1pdHNbJ2NvbW1pdHMnXVswXSk7CisgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09u
ZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVsxXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2NvbW1p
dHMnXVsxXSk7CisgICAgICAgIH0pOworCiAgICAgfSk7CiAKIH0pOwpkaWZmIC0tZ2l0IGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVz
dHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQt
Y29tbWl0cy10ZXN0cy5qcwppbmRleCBiNGVlNzI2ZjM1NTMwMmFiMThkNmM3MzZjYmI0MGMzMGM0
YjE4NTliLi45ZTZhMDBhOTc3ZmEyMWI5NDRmNDlkY2FmMWU3NmQ3OWVkNDM2ZmMxIDEwMDY0NAot
LS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtY29t
bWl0cy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L2FwaS1yZXBvcnQtY29tbWl0cy10ZXN0cy5qcwpAQCAtMjYsNiArMjYsMjAgQEAgZGVzY3JpYmUo
Ii9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIF0sCiAgICAgfTsKKyAgICBjb25zdCBzdWJ2ZXJzaW9uQ29t
bWl0V2l0aFJldmlzaW9uSWRlbnRpZmllciA9IHsKKyAgICAgICAgInNsYXZlTmFtZSI6ICJzb21l
U2xhdmUiLAorICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAg
ICAiY29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9y
eSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNDE5NzciLAorICAg
ICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTI3MjMxQG1haW4iLAorICAgICAg
ICAgICAgICAgICJ0aW1lIjogIjIwMTMtMDItMDZUMDg6NTU6MjAuOVoiLAorICAgICAgICAgICAg
ICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmcifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJzb21lIG1l
c3NhZ2UiLAorICAgICAgICAgICAgfQorICAgICAgICBdLAorICAgIH07CiAgICAgY29uc3Qgc3Vi
dmVyc2lvbkludmFsaWRDb21taXQgPSB7CiAgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZl
IiwKICAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKQEAgLTc2LDYgKzkw
LDQ0IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICBdCiAgICAgfQogCisgICAgY29uc3QgZHVwbGljYXRlZENv
bW1pdFJldmlzaW9uSWRlbnRpZmllckNvbW1pdHMgPSB7CisgICAgICAgICJzbGF2ZU5hbWUiOiAi
c29tZVNsYXZlIiwKKyAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAg
ICAgICAgImNvbW1pdHMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9z
aXRvcnkiOiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQ4IiwK
KyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3NkBtYWluIiwKKyAg
ICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAyOjUyOjM0LjU3N1oiLAorICAgICAg
ICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiWmFsYW4gQnVqdGFzIiwgImFjY291bnQiOiAi
emFsYW5AYXBwbGUuY29tIn0sCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYSBtZXNzYWdl
IiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9z
aXRvcnkiOiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQ5IiwK
KyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3NkBtYWluIiwKKyAg
ICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjIzOjUwLjY0NVoiLAorICAgICAg
ICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ2hyaXMgRHVtZXoiLCAiYWNjb3VudCI6ICJj
ZHVtZXpAYXBwbGUuY29tIn0sCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAic29tZSBtZXNz
YWdlIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgIF0KKyAgICB9CisKKyAgICBjb25zdCBpbnZh
bGlkQ29tbWl0UmV2aXNpb25JZGVudGlmaWVyQ29tbWl0cyA9IHsKKyAgICAgICAgInNsYXZlTmFt
ZSI6ICJzb21lU2xhdmUiLAorICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQi
LAorICAgICAgICAiY29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAi
cmVwb3NpdG9yeSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5
NDgiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0Mjc2IiwKKyAg
ICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAyOjUyOjM0LjU3N1oiLAorICAgICAg
ICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiWmFsYW4gQnVqdGFzIiwgImFjY291bnQiOiAi
emFsYW5AYXBwbGUuY29tIn0sCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYSBtZXNzYWdl
IiwKKyAgICAgICAgICAgIH0sCisgICAgICAgIF0KKyAgICB9CisKICAgICBpdCgic2hvdWxkIHJl
amVjdCBlcnJvciB3aGVuIHNsYXZlIG5hbWUgaXMgbWlzc2luZyIsICgpID0+IHsKICAgICAgICAg
cmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1p
dHMvJywge30pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ1NsYXZlTmFtZScpOwpAQCAtMTQ1LDYg
KzE5NywyMiBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1
ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKKyAgICBpdCgic2hvdWxk
IHJlamVjdCBhbiBpbnZhbGlkIHJldmlzaW9uIGxhYmVsIiwgYXN5bmMgKCkgPT4geworICAgICAg
ICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0KTsKKyAgICAgICAgY29u
c3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBp
L3JlcG9ydC1jb21taXRzLycsIGludmFsaWRDb21taXRSZXZpc2lvbklkZW50aWZpZXJDb21taXRz
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFs
aWRSZXZpc2lvbklkZW50aWZpZXInKTsKKyAgICAgICAgY29uc3Qgcm93cyA9IGF3YWl0IFRlc3RT
ZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKKyAgICB9KTsKKworICAgIGl0KCJzaG91bGQgcmVq
ZWN0IHdpdGggZHVwbGljYXRlZCBjb21taXQgcmV2aXNpb24gbGFiZWxzIiwgYXN5bmMgKCkgPT4g
eworICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0KTsKKyAg
ICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RK
U09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGR1cGxpY2F0ZWRDb21taXRSZXZpc2lvbklkZW50
aWZpZXJDb21taXRzKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ0R1cGxpY2F0ZWRSZXZpc2lvbklkZW50aWZpZXInKTsKKyAgICAgICAgY29uc3Qgcm93
cyA9IGF3YWl0IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKKyAgICB9KTsKKwogICAg
IGl0KCJzaG91bGQgc3RvcmUgdHdvIGNvbW1pdHMgZnJvbSBhIHZhbGlkIHNsYXZlIiwgKCkgPT4g
ewogICAgICAgICByZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvblR3b0NvbW1pdHMp
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvblR3b0NvbW1pdHMpOwpA
QCAtMjE1LDYgKzI4MywyNSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBp
bnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKKyAgICBp
dCgic2hvdWxkIHVwZGF0ZSBhbiBleGlzdGluZyBjb21taXQgd2l0aCBjb21taXQgbGFiZWwgaWYg
dGhlcmUgaXMgb25lIiwgYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2
ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgY29uc3QgcmVwb3J0ZWREYXRhID0gc3VidmVyc2lvbkNv
bW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIuY29tbWl0c1swXTsKKyAgICAgICAgYXdhaXQgYWRk
U2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIpOwor
ICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHsnaWQnOiAxLCAnbmFtZSc6
ICdXZWJLaXQnfSksCisgICAgICAgIGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3Np
dG9yeSc6IDEsICdyZXZpc2lvbic6IHJlcG9ydGVkRGF0YVsncmV2aXNpb24nXSwgJ3RpbWUnOiBy
ZXBvcnRlZERhdGFbJ3RpbWUnXX0pCisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2
ZXJzaW9uQ29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcik7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBjb25zdCBjb21taXRz
ID0gYXdhaXQgZGIuc2VsZWN0QWxsKCdjb21taXRzJyk7CisgICAgICAgIGNvbnN0IGNvbW1pdHRl
cnMgPSBhd2FpdCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHRlcnMnKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dHNbMF1bJ21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsncmV2aXNpb25faWRlbnRpZmllciddLCByZXBvcnRl
ZERhdGFbJ3JldmlzaW9uSWRlbnRpZmllciddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzBdWydpZCddKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydh
dXRob3InXVsnbmFtZSddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNb
MF1bJ2FjY291bnQnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKKyAgICB9
KTsKKwogICAgIGl0KCJzaG91bGQgbm90IHVwZGF0ZSBhbiB1bnJlbGF0ZWQgY29tbWl0IiwgKCkg
PT4gewogICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKICAgICAgICAg
Y29uc3QgZmlyc3REYXRhID0gc3VidmVyc2lvblR3b0NvbW1pdHMuY29tbWl0c1swXTsKQEAgLTU5
MCw2ICs2NzcsMTExIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2Vy
dD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ093bmVkQ29tbWl0U2hvdWxkTm90Q29udGFpblRpbWVzdGFtcCcp
OwogICAgICAgICB9KTsKICAgICB9KTsKKworICAgIGNvbnN0IGludmFsaWRPd25lZENvbW1pdFVz
ZVJldmlzaW9uSWRlbnRpZmllckFzUmV2aXNvbiA9IHsKKyAgICAgICAgInNsYXZlTmFtZSI6ICJz
b21lU2xhdmUiLAorICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAg
ICAgICAiY29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3Np
dG9yeSI6ICJPU1giLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICJTaWVycmExNkQzMiIs
CisgICAgICAgICAgICAgICAgIm9yZGVyIjogMSwKKyAgICAgICAgICAgICAgICAib3duZWRDb21t
aXRzIjogeworICAgICAgICAgICAgICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAg
ICAgICAgICAgInJldmlzaW9uIjogIjEyNzIzMkBtYWluIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmcifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJtZXNzYWdlIjog
IldlYktpdCBDb21taXQiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQorICAgICAgICBdCisgICAgfTsKKworICAgIGl0KCJzaG91bGQgcmVq
ZWN0IGluc2VydGluZyBvbmUgY29tbWl0IHdpdGggb3duZWQgY29tbWl0cyB0aGF0IHVzZSByZXZp
c2lvbiBsYWJlbCBhcyByZXZpc2lvbiIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRk
U2xhdmVGb3JSZXBvcnQoaW52YWxpZE93bmVkQ29tbWl0VXNlUmV2aXNpb25JZGVudGlmaWVyQXNS
ZXZpc29uKTsKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGludmFsaWRPd25lZENvbW1p
dFVzZVJldmlzaW9uSWRlbnRpZmllckFzUmV2aXNvbik7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmV2aXNpb24nKTsKKyAgICB9KTsKKwor
ICAgIGNvbnN0IGludmFsaWRSZXZpc2lvbklkZW50aWZpZXJPd25lZENvbW1pdCA9IHsKKyAgICAg
ICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAorICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJz
b21lUGFzc3dvcmQiLAorICAgICAgICAiY29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJPU1giLAorICAgICAgICAgICAgICAgICJyZXZpc2lv
biI6ICJTaWVycmExNkQzMiIsCisgICAgICAgICAgICAgICAgIm9yZGVyIjogMSwKKyAgICAgICAg
ICAgICAgICAib3duZWRDb21taXRzIjogeworICAgICAgICAgICAgICAgICAgICAiV2ViS2l0Ijog
eworICAgICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3OCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjEyNzIzMiIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2Nv
dW50IjogImNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnIn0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAibWVzc2FnZSI6ICJXZWJLaXQgQ29tbWl0IiwKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgXQorICAgIH07CisKKyAgICBp
dCgic2hvdWxkIHJlamVjdCBpbnNlcnRpbmcgb25lIGNvbW1pdCB3aXRoIG93bmVkIGNvbW1pdHMg
dGhhdCBoYXZlIGludmFsaWQgcmV2aXNpb24gbGFiZWwiLCBhc3luYyAoKSA9PiB7CisgICAgICAg
IGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KGludmFsaWRSZXZpc2lvbklkZW50aWZpZXJPd25lZENv
bW1pdCk7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBpbnZhbGlkUmV2aXNpb25JZGVu
dGlmaWVyT3duZWRDb21taXQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2Vb
J3N0YXR1cyddLCAnSW52YWxpZFJldmlzaW9uSWRlbnRpZmllcicpOworICAgIH0pOworCisgICAg
Y29uc3QgaW52YWxpZEF1dGhvck93bmVkQ29tbWl0ID0geworICAgICAgICAic2xhdmVOYW1lIjog
InNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisg
ICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBv
c2l0b3J5IjogIk9TWCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIlNpZXJyYTE2RDMy
IiwKKyAgICAgICAgICAgICAgICAib3JkZXIiOiAxLAorICAgICAgICAgICAgICAgICJvd25lZENv
bW1pdHMiOiB7CisgICAgICAgICAgICAgICAgICAgICJXZWJLaXQiOiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAicmV2aXNpb24iOiAiMTQxOTc4IiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTI3MjMyQG1haW4iLAorICAgICAgICAgICAgICAgICAg
ICAgICAgImF1dGhvciI6IG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAibWVzc2FnZSI6
ICJXZWJLaXQgQ29tbWl0IiwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgXQorICAgIH07CisgICAgaXQoInNob3VsZCByZWpl
Y3QgaW5zZXJ0aW5nIG9uZSBjb21taXQgd2l0aCBvd25lZCBjb21taXRzIHRoYXQgaGF2ZSBpbnZh
bGlkIGF1dGhvciIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBv
cnQoaW52YWxpZEF1dGhvck93bmVkQ29tbWl0KTsKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBh
d2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRz
LycsIGludmFsaWRBdXRob3JPd25lZENvbW1pdCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkQXV0aG9yRm9ybWF0Jyk7CisgICAgfSk7CisK
KyAgICBjb25zdCBvd25lZENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIgPSB7CisgICAgICAg
ICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29t
ZVBhc3N3b3JkIiwKKyAgICAgICAgImNvbW1pdHMiOiBbCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgInJlcG9zaXRvcnkiOiAiT1NYIiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24i
OiAiU2llcnJhMTZEMzIiLAorICAgICAgICAgICAgICAgICJvcmRlciI6IDEsCisgICAgICAgICAg
ICAgICAgIm93bmVkQ29tbWl0cyI6IHsKKyAgICAgICAgICAgICAgICAgICAgIldlYktpdCI6IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNDE5NzgiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxMjcyMzJAbWFpbiIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNvbW1pdCBRdWV1ZSIsICJh
Y2NvdW50IjogImNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnIn0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAibWVzc2FnZSI6ICJXZWJLaXQgQ29tbWl0IiwKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgXQorICAgIH07CisKKyAg
ICBpdCgic2hvdWxkIGluc2VydCBvbmUgY29tbWl0IHdpdGggY29tbWl0IHJldmlzaW9uIGxhYmVs
IiwgYXN5bmMgKCkgPT4geworICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChvd25lZENv
bW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIpOworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMv
Jywgb3duZWRDb21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGNvbnN0IGRiID0g
VGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBjb25zdCBjb21taXQgPSBhd2FpdCBkYi5z
ZWxlY3RSb3dzKCdjb21taXRzJywgeydyZXZpc2lvbic6ICcxNDE5NzgnfSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRbMF0ucmV2aXNpb25faWRlbnRpZmllciwgb3duZWRDb21t
aXRXaXRoUmV2aXNpb25JZGVudGlmaWVyLmNvbW1pdHNbMF0ub3duZWRDb21taXRzWydXZWJLaXQn
XS5yZXZpc2lvbklkZW50aWZpZXIpOworICAgIH0pOwogfSk7CiAKIGRlc2NyaWJlKCIvYXBpL3Jl
cG9ydC1jb21taXRzLyB3aXRoIGluc2VydD1mYWxzZSIsIGZ1bmN0aW9uICgpIHsKZGlmZiAtLWdp
dCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0
cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10
ZXN0cy5qcwppbmRleCA1YzQ0NWZlZmMwZDcyMDRjMGJiNWExNmUwMmNmNjEzNzJmZjNmYjY5Li5j
NWEyYTJlZWMwYjMxYThjMzBiYWQ5NmU5MDMwNDZjMzkwNmRiZWUzIDEwMDY0NAotLS0gYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtdGVzdHMuanMKKysr
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3Rz
LmpzCkBAIC03Nyw2ICs3NywyOSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgIH07CiAgICAgfQogCisgICAgZnVuY3Rpb24gcmVwb3J0V2l0aFJldmlzaW9u
SWRlbnRpZmllckNvbW1pdCgpCisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAg
ImJ1aWxkVGFnIjogIjEyMyIsCisgICAgICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhU
MTA6MTI6MDMuMzg4MzA0IiwKKyAgICAgICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRl
ciIsCisgICAgICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICAgICAi
YnVpbGRlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICAgICAicGxhdGZvcm0i
OiAiTW91bnRhaW4gTGlvbiIsCisgICAgICAgICAgICAidGVzdHMiOiB7fSwKKyAgICAgICAgICAg
ICJyZXZpc2lvbnMiOiB7CisgICAgICAgICAgICAgICAgIm1hY09TIjogeworICAgICAgICAgICAg
ICAgICAgICAicmV2aXNpb24iOiAiMTAuOC4yIDEyQzYwIgorICAgICAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAgICAgIldlYktpdCI6IHsKKyAgICAgICAgICAgICAgICAgICAgInJldmlzaW9u
IjogIjE0MTk3NyIsCisgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAi
MTI3MjMxQG1haW4iLAorICAgICAgICAgICAgICAgICAgICAidGltZXN0YW1wIjogIjIwMTMtMDIt
MDZUMDg6NTU6MjAuOVoiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAg
ICB9OworICAgIH0KKwogICAgIGZ1bmN0aW9uIGVtcHR5U2xhdmVSZXBvcnQoKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIHsKQEAgLTM1MSw2ICszNzQsMzcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KTsKICAgICB9KTsKIAorICAgIGl0KCJzaG91bGQg
YWRkIHJldmlzaW9uIGxhYmVsIiwgYXN5bmMgKCkgPT4geworICAgICAgICBhd2FpdCBhZGRCdWls
ZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhSZXZpc2lvbklkZW50aWZpZXJDb21taXQoKSk7CisgICAg
ICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0Lycs
IFtyZXBvcnRXaXRoUmV2aXNpb25JZGVudGlmaWVyQ29tbWl0KCldKTsKKyAgICAgICAgY29uc3Qg
ZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIGNvbnN0IHJlcG9zaXRvcmllcyA9
IGF3YWl0IGRiLnNlbGVjdEFsbCgncmVwb3NpdG9yaWVzJyk7CisgICAgICAgIGNvbnN0IGNvbW1p
dHMgPSAgYXdhaXQgZGIuc2VsZWN0QWxsKCdjb21taXRzJyk7CisgICAgICAgIGNvbnN0IGJ1aWxk
Q29tbWl0c1JlbGF0aW9ucyA9IGF3YWl0ICBkYi5zZWxlY3RBbGwoJ2J1aWxkX2NvbW1pdHMnLCAn
YnVpbGRfY29tbWl0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3JpZXMu
bGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3JpZXMu
bWFwKChyb3cpID0+IHJvd1snbmFtZSddKS5zb3J0KCksIFsnV2ViS2l0JywgJ21hY09TJ10pOwor
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0aCwgMik7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnMubGVuZ3RoLCAyKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1swXVsnYnVpbGRf
Y29tbWl0J10sIGNvbW1pdHNbMF1bJ2lkJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
YnVpbGRDb21taXRzUmVsYXRpb25zWzFdWydidWlsZF9jb21taXQnXSwgY29tbWl0c1sxXVsnaWQn
XSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNbMF1b
J2NvbW1pdF9idWlsZCddLCBidWlsZENvbW1pdHNSZWxhdGlvbnNbMV1bJ2NvbW1pdF9idWlsZCdd
KTsKKworICAgICAgICBsZXQgcmVwb3NpdG9yeUlkVG9OYW1lID0ge307CisgICAgICAgIGZvciAo
bGV0IHJlcG9zaXRvcnkgb2YgcmVwb3NpdG9yaWVzKQorICAgICAgICAgICAgcmVwb3NpdG9yeUlk
VG9OYW1lW3JlcG9zaXRvcnlbJ2lkJ11dID0gcmVwb3NpdG9yeVsnbmFtZSddOworCisgICAgICAg
IGxldCByZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3cgPSB7fTsKKyAgICAgICAgZm9yIChsZXQg
Y29tbWl0IG9mIGNvbW1pdHMpCisgICAgICAgICAgICByZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25S
b3dbcmVwb3NpdG9yeUlkVG9OYW1lW2NvbW1pdFsncmVwb3NpdG9yeSddXV0gPSBjb21taXQ7CisK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1sn
bWFjT1MnXVsncmV2aXNpb24nXSwgJzEwLjguMiAxMkM2MCcpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydXZWJLaXQnXVsncmV2aXNpb24n
XSwgJzE0MTk3NycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeU5hbWVU
b1JldmlzaW9uUm93WydXZWJLaXQnXVsncmV2aXNpb25faWRlbnRpZmllciddLCAnMTI3MjMxQG1h
aW4nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lv
blJvd1snV2ViS2l0J11bJ3RpbWUnXS50b1N0cmluZygpLAorICAgICAgICAgICAgbmV3IERhdGUo
JzIwMTMtMDItMDYgMDg6NTU6MjAuOScpLnRvU3RyaW5nKCkpOworICAgIH0pOworCiAgICAgaXQo
InNob3VsZCBub3QgY3JlYXRlIGEgZHVwbGljYXRlIGJ1aWxkIGZvciB0aGUgc2FtZSBidWlsZCBu
dW1iZXIgaWYgYnVpbGQgdGltZXMgYXJlIGNsb3NlIiwgKCkgPT4gewogICAgICAgICBjb25zdCBm
aXJzdFJlcG9ydCA9IGVtcHR5UmVwb3J0KCk7CiAgICAgICAgIGZpcnN0UmVwb3J0WydidWlsZFRp
bWUnXSA9ICcyMDEzLTAyLTI4VDEwOjEyOjA0JzsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmNvbmYgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy90ZXN0LXNlcnZlci5j
b25mCmluZGV4IDkzNmI0ZjRiZmFmZjA3ZWRiMDM1ODMzYzQ2M2VlMTY5YmZjMTVhMTEuLmNhNTU0
YjE3ZmQ1OTQ0ZWRlNzFlYzFjNzNhMzllOTBhYTBkYjMwMjAgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmNvbmYK
KysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVz
dC1zZXJ2ZXIuY29uZgpAQCAtMSw2ICsxLDggQEAKIFNlcnZlclJvb3QgIi91c3IiCiBMaXN0ZW4g
ODA4MAogCitMb2FkTW9kdWxlIG1wbV9wcmVmb3JrX21vZHVsZSBsaWJleGVjL2FwYWNoZTIvbW9k
X21wbV9wcmVmb3JrLnNvCitMb2FkTW9kdWxlIHBocDdfbW9kdWxlIC91c3IvbG9jYWwvQ2VsbGFy
L3BocEA3LjQvNy40LjE2L2xpYi9odHRwZC9tb2R1bGVzL2xpYnBocDcuc28KIExvYWRNb2R1bGUg
YXV0aG5fY29yZV9tb2R1bGUgbGliZXhlYy9hcGFjaGUyL21vZF9hdXRobl9jb3JlLnNvCiBMb2Fk
TW9kdWxlIGF1dGh6X2NvcmVfbW9kdWxlIGxpYmV4ZWMvYXBhY2hlMi9tb2RfYXV0aHpfY29yZS5z
bwogTG9hZE1vZHVsZSBkZWZsYXRlX21vZHVsZSBsaWJleGVjL2FwYWNoZTIvbW9kX2RlZmxhdGUu
c28KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2NvbW1p
dC1sb2ctdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9jb21t
aXQtbG9nLXRlc3RzLmpzCmluZGV4IDcwYWJkZWJmODFlOGFiNjBkMWQxODE2M2UzOTkxODc5Y2I0
NzM4YjYuLjkwYTU0YjYyOWZiY2ExMjJhZjgwYmVhZmFhOThiOGIwZGM5Mjg1YTggMTAwNjQ0Ci0t
LSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2NvbW1pdC1sb2ctdGVzdHMu
anMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY29tbWl0LWxvZy10
ZXN0cy5qcwpAQCAtMTcsNiArMTcsMTcgQEAgZnVuY3Rpb24gd2Via2l0Q29tbWl0KCkKICAgICB9
KTsKIH0KIAorZnVuY3Rpb24gd2Via2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpIAor
eworICAgIHJldHVybiBuZXcgQ29tbWl0TG9nKDEsIHsKKyAgICAgICAgaWQ6IDEsCisgICAgICAg
IHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMud2Via2l0LAorICAgICAgICByZXZpc2lvbjogJzIwMDgw
NScsCisgICAgICAgIHJldmlzaW9uSWRlbnRpZmllcjogJzE4NDI3NkBtYWluJywKKyAgICAgICAg
dGltZTogKyhuZXcgRGF0ZSgnMjAxNi0wNS0xM1QwMDo1NTo1Ny44NDEzNDRaJykpLAorICAgIH0p
OworfQorCiBmdW5jdGlvbiBvbGRXZWJLaXRDb21taXQoKQogewogICAgIHJldHVybiBuZXcgQ29t
bWl0TG9nKDIsIHsKQEAgLTI3LDYgKzM4LDE3IEBAIGZ1bmN0aW9uIG9sZFdlYktpdENvbW1pdCgp
CiAgICAgfSk7CiB9CiAKK2Z1bmN0aW9uIG9sZFdlYktpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50
aWZpZXIoKQoreworICAgIHJldHVybiBuZXcgQ29tbWl0TG9nKDIsIHsKKyAgICAgICAgaWQ6IDIs
CisgICAgICAgIHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMud2Via2l0LAorICAgICAgICByZXZpc2lv
bjogJzIwMDU3NCcsCisgICAgICAgIHJldmlzaW9uSWRlbnRpZmllcjogJzE3NTYwNUBtYWluJywK
KyAgICAgICAgdGltZTogKyhuZXcgRGF0ZSgnMjAxNi0wNS0wOVQxNDo1OToyMy41NTM3NjdaJykp
LAorICAgIH0pOworfQorCiBmdW5jdGlvbiBnaXRXZWJLaXRDb21taXQoKQogewogICAgIHJldHVy
biBuZXcgQ29tbWl0TG9nKDMsIHsKQEAgLTM3LDYgKzU5LDE3IEBAIGZ1bmN0aW9uIGdpdFdlYktp
dENvbW1pdCgpCiAgICAgfSk7CiB9CiAKK2Z1bmN0aW9uIGdpdFdlYktpdENvbW1pdFdpdGhSZXZp
c2lvbklkZW50aWZpZXIoKQoreworICAgIHJldHVybiBuZXcgQ29tbWl0TG9nKDMsIHsKKyAgICAg
ICAgaWQ6IDMsCisgICAgICAgIHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMud2Via2l0LAorICAgICAg
ICByZXZpc2lvbjogJzZmOGIwZGJiZGE5NWE0NDA1MDNiODhkYjFkZDAzZGFkM2E3YjA3ZmInLAor
ICAgICAgICByZXZpc2lvbklkZW50aWZpZXI6ICcxODQyNzZAbWFpbicsCisgICAgICAgIHRpbWU6
ICsobmV3IERhdGUoJzIwMTYtMDUtMTNUMDA6NTU6NTcuODQxMzQ0WicpKSwKKyAgICB9KTsKK30K
KwogZnVuY3Rpb24gb2xkR2l0V2ViS2l0Q29tbWl0KCkKIHsKICAgICByZXR1cm4gbmV3IENvbW1p
dExvZyg0LCB7CkBAIC00Nyw2ICs4MCwxNyBAQCBmdW5jdGlvbiBvbGRHaXRXZWJLaXRDb21taXQo
KQogICAgIH0pOwogfQogCitmdW5jdGlvbiBvbGRHaXRXZWJLaXRDb21taXRXaXRoUmV2aXNpb25J
ZGVudGlmaWVyKCkKK3sKKyAgICByZXR1cm4gbmV3IENvbW1pdExvZyg0LCB7CisgICAgICAgIGlk
OiA0LAorICAgICAgICByZXBvc2l0b3J5OiBNb2NrTW9kZWxzLndlYmtpdCwKKyAgICAgICAgcmV2
aXNpb246ICdmZmRhMTRlNmRiMDc0NmQxMGQwZjA1MDkwN2U0YTczMjU4NTFlNTAyJywKKyAgICAg
ICAgcmV2aXNpb25JZGVudGlmaWVyOiAnMTc1NjA1QG1haW4nLAorICAgICAgICB0aW1lOiArKG5l
dyBEYXRlKCcyMDE2LTA1LTA5VDE0OjU5OjIzLjU1Mzc2N1onKSksCisgICAgfSk7Cit9CisKIGZ1
bmN0aW9uIG9zeENvbW1pdCgpCiB7CiAgICAgcmV0dXJuIG5ldyBDb21taXRMb2coNSwgewpAQCAt
MTQ3LDEwICsxOTEsMTggQEAgZGVzY3JpYmUoJ0NvbW1pdExvZycsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRDb21taXQoKS5sYWJlbCgpLCAncjIwMDgwNScp
OwogICAgICAgICB9KTsKIAotICAgICAgICBpdCgnc2hvdWxkIHRydW5jYXRlIGEgR2l0IGhhc2gg
YXQgOHRoIGNoYXJhY3RlcicsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgaXQoJ3Nob3VsZCBkaXNw
bGF5IHJldmlzaW9uIGxhYmVsIGZvbGxvd2VkIGJ5IHN2biByZWZpeGVkIHdpdGggInIiJywgKCkg
PT4geworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdENvbW1pdFdpdGhSZXZp
c2lvbklkZW50aWZpZXIoKS5sYWJlbCgpLCAnMTg0Mjc2QG1haW4gKHIyMDA4MDUpJykKKyAgICAg
ICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCB0cnVuY2F0ZSBhIEdpdCBoYXNoIGF0IDEydGgg
Y2hhcmFjdGVyJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdpdFdl
YktpdENvbW1pdCgpLmxhYmVsKCksICc2ZjhiMGRiYmRhOTUnKTsKICAgICAgICAgfSk7CiAKKyAg
ICAgICAgaXQoJ3Nob3VsZCBkaXNwbGF5IHJldmlzaW9uIGxhYmVsIGZvbGxvd2VkIGJ5IGdpdCBo
YXNoIHRydW5jYXRlZCcsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChn
aXRXZWJLaXRDb21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKCkubGFiZWwoKSwgJzE4NDI3NkBt
YWluICg2ZjhiMGRiYmRhOTUpJykKKyAgICAgICAgfSk7CisKICAgICAgICAgaXQoJ3Nob3VsZCBu
b3QgbW9kaWZ5IE9TIFggdmVyc2lvbicsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvc3hDb21taXQoKS5sYWJlbCgpLCAnMTAuMTEuNCAxNUU2NScpOwogICAgICAgICB9
KTsKQEAgLTE2MSwxMCArMjEzLDE4IEBAIGRlc2NyaWJlKCdDb21taXRMb2cnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Q29tbWl0KCkudGl0bGUoKSwgJ1dl
YktpdCBhdCByMjAwODA1Jyk7CiAgICAgICAgIH0pOwogCi0gICAgICAgIGl0KCdzaG91bGQgdHJ1
bmNhdGUgYSBHaXQgaGFzaCBhdCA4dGggY2hhcmFjdGVyJywgZnVuY3Rpb24gKCkgeworICAgICAg
ICBpdCgnc2hvdWxkIGluY2x1ZGUgcmV2aXNpb24gbGFiZWwnLCAoKSA9PiB7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigp
LnRpdGxlKCksICdXZWJLaXQgYXQgMTg0Mjc2QG1haW4gKHIyMDA4MDUpJyk7CisgICAgICAgIH0p
OworCisgICAgICAgIGl0KCdzaG91bGQgdHJ1bmNhdGUgYSBHaXQgaGFzaCBhdCAxMnRoIGNoYXJh
Y3RlcicsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChnaXRXZWJLaXRD
b21taXQoKS50aXRsZSgpLCAnV2ViS2l0IGF0IDZmOGIwZGJiZGE5NScpOwogICAgICAgICB9KTsK
IAorICAgICAgICBpdCgnc2hvdWxkIGRpc3BsYXkgcmV2aXNpb24gbGFiZWwgZm9sbG93ZWQgYnkg
Z2l0IGhhc2ggdHJ1bmNhdGVkJywgICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChnaXRXZWJLaXRDb21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKCkudGl0bGUoKSwgJ1dl
YktpdCBhdCAxODQyNzZAbWFpbiAoNmY4YjBkYmJkYTk1KScpOworICAgICAgICB9KTsKKwogICAg
ICAgICBpdCgnc2hvdWxkIG5vdCBtb2RpZnkgT1MgWCB2ZXJzaW9uJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdCgpLnRpdGxlKCksICdPUyBYIGF0IDEw
LjExLjQgMTVFNjUnKTsKICAgICAgICAgfSk7CkBAIC0yMjMsNiArMjgzLDMxIEBAIGRlc2NyaWJl
KCdDb21taXRMb2cnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeTog
TW9ja01vZGVscy5vc3gKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKKworICAgICAgICBp
dCgnc2hvdWxkIGRpc3BsYXkgcmV2aXNpb24gbGFiZWwgZm9sbG93ZWQgd2l0aCByZXZpc29uIGFu
ZCAgY29ubmVjdCB3aXRoICItIiwgaWYgYm90aCBoYXZlIHJldmlzaW9uIGxhYmVsJywgKCkgPT4g
eworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh3ZWJraXRDb21taXRXaXRoUmV2
aXNpb25JZGVudGlmaWVyKCkuZGlmZihvbGRXZWJLaXRDb21taXRXaXRoUmV2aXNpb25JZGVudGlm
aWVyKCkpLCB7CisgICAgICAgICAgICAgICAgbGFiZWw6ICcxNzU2MDUtMTg0Mjc2QG1haW4gKHIy
MDA1NzQtcjIwMDgwNSknLAorICAgICAgICAgICAgICAgIHVybDogJycsCisgICAgICAgICAgICAg
ICAgcmVwb3NpdG9yeTogTW9ja01vZGVscy53ZWJraXQKKyAgICAgICAgICAgIH0pCisgICAgICAg
IH0pOworCisgICAgICAgIGl0KCdzaG91bGQgZGlzcGxheSByZXZpc2lvbiBsYWJlbCBmb2xsb3dl
ZCB3aXRoIHJldmlzb24gYW5kICBjb25uZWN0IHdpdGggIi0iLCBpZiBib3RoIGhhdmUgcmV2aXNp
b24gbGFiZWwnLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGdp
dFdlYktpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKS5kaWZmKG9sZEdpdFdlYktpdENv
bW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKSksIHsKKyAgICAgICAgICAgICAgICBsYWJlbDog
JzE3NTYwNS0xODQyNzZAbWFpbiAoZmZkYTE0ZTZkYjA3Li42ZjhiMGRiYmRhOTUpJywKKyAgICAg
ICAgICAgICAgICB1cmw6ICcnLAorICAgICAgICAgICAgICAgIHJlcG9zaXRvcnk6IE1vY2tNb2Rl
bHMud2Via2l0CisgICAgICAgICAgICB9KQorICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hv
dWxkIGNvbnRhaW4gcmV2aXNpb24gbGFiZWwsIGlmIG9uZSBvZiB0aGUgY29tbWl0cyBkb2VzbmB0
IGhhdmUgdGhlIHJldmlzaW9uIGxhYmVsJywgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbCh3ZWJraXRDb21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKCkuZGlmZihv
bGRXZWJLaXRDb21taXQoKSksIHsKKyAgICAgICAgICAgICAgICBsYWJlbDogJ3IyMDA1NzQgLSAx
ODQyNzZAbWFpbiAocjIwMDgwNSknLAorICAgICAgICAgICAgICAgIHVybDogJycsCisgICAgICAg
ICAgICAgICAgcmVwb3NpdG9yeTogTW9ja01vZGVscy53ZWJraXQKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9KTsKKwogICAgIH0pOwogCiAgICAgZGVzY3JpYmUoJ2hhc09yZGVyaW5nJywgKCkg
PT4gewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424433</attachid>
            <date>2021-03-26 19:28:07 -0700</date>
            <delta_ts>2021-03-26 20:21:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222897-20210326192806.patch</filename>
            <type>text/plain</type>
            <size>53026</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MDYxCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1YTg1MWZkODI1NTA1YjQzMGFkNzg3ODZhNTQ1NzI0MzUwNTg0Zjc1Li4zNTA5NTFlOGRk
NWI2YzUyMzkwYWFiYjVmZGI5YTA0OTkxNWY2ZDY0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAyMS0wMy0xMCAgWmhpZmVpIEZhbmcgIDx6aGlmZWlf
ZmFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGNvbW1pdCByZXZpc2lvbiBsYWJlbCBzdXBw
b3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI4
OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
bmV3IGNvbHVtbiByZXZpc2lvbiBsYWJlbC4KKyAgICAgICAgTWFrZSBhbGwgY29tbWl0IGFwaSBh
bHNvIGNhbiB3b3JrIHdpdGggcmV2aXNpb24gbGFiZWwuCisgICAgICAgIENoYW5nZSB0aGUgY29t
bWl0IGxhYmVsIGRpc3BsYXkgd2l0aCBjb21taXQgcmV2aXNpb24gbGFiZWwuCisKKyAgICAgICAg
KiBicm93c2VyLXRlc3RzL2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzOiBGaXggYSBmYWlsZWQg
dGVzdCBjYXNlLCB3aGlsZSByZXF1ZXN0aW5nIHRoZSByZW1vdGUgYXBpLCAKKyAgICAgICAgd2Ug
c2hvdWxkIHdhaXQgZm9yIHRob3NlIHByb21pc2VzIHJlc29sdmVkIGFuZCB0aGVuIHdhaXQgZm9y
IGNvbW1wb25lbnQgdG8gcmVuZGVyLgorICAgICAgICAqIGluaXQtZGF0YWJhc2Uuc3FsOiBBZGQg
bmV3IGNvbHVtbiByZXZpc2lvbl9pZGVudGlmaWVyLgorICAgICAgICAqIG1pZ3JhdGUtZGF0YWJh
c2Uuc3FsOiBBZGQgbmV3IGNvbHVtbiByZXZpc2lvbl9pZGVudGlmaWVyLgorICAgICAgICAqIHB1
YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHA6IE1ha2UgYXBpIHRoYXQgd29ya3Mg
d2l0aCByZXZpc2lvbiBzaG91bGQgd29yayB3aXRoIHJldmlzaW9uIGxhYmVsLgorICAgICAgICAq
IHB1YmxpYy9pbmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocDogRGl0dG8uCisgICAgICAgICogcHVi
bGljL2luY2x1ZGUvcmVwb3J0LXByb2Nlc3Nvci5waHA6IE1ha2UgdGhlIHByb2Nlc3NvciBjYW4g
YWxzbyBpbnNlcnQgcmV2aXNpb24gbGFiZWwuCisgICAgICAgICogcHVibGljL3YzL21vZGVscy9j
b21taXQtbG9nLmpzOgorICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS51cGRhdGVTaW5nbGV0
b24pOgorICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS5yZXZpc2lvbklkZW50aWZpZXIpOgor
ICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS5sYWJlbCk6IE1ha2UgdGhlIGxhYmVsIGluY2x1
ZGUgcmV2aXNpb24gbGFiZWwgYW5kIHJldmlzaW9uLgorICAgICAgICAoQ29tbWl0TG9nLnByb3Rv
dHlwZS5kaWZmKTogTWFrZSB0aGUgZGlmZiBsYWJlbCBpbmNsdWRlIHJldmlzaW9uIGxhYmVsIGFu
ZCByZXZpc2lvbi4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanM6
CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtY29tbWl0cy10ZXN0cy5qczoKKyAg
ICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qczoKKyAgICAgICAgKHJlcG9y
dFdpdGhSZXZpc2lvbklkZW50aWZpZXJDb21taXQpOgorICAgICAgICAqIHVuaXQtdGVzdHMvY29t
bWl0LWxvZy10ZXN0cy5qczoKKwogMjAyMS0wMy0wNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbcGVyZiBkYXNoYm9hcmRdIE1vZGVybml6ZSBUaW1lU2VyaWVz
IGFuZCBUaW1lU2VyaWVzVmlldwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L2Jyb3dzZXItdGVzdHMvY29tbWl0LWxvZy12aWV3ZXItdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcwppbmRl
eCBkYmM0Y2ZjZDliYzIxNGI3MDhlZTE5OGYxZWE2NjVmMjI0MjI4NTYwLi5mODQ4OWU3Y2FjNDRl
MjMwMjBmN2U4ZjJjZTY0NDdhN2EyYzQyZjhiIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcworKysgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10
ZXN0cy5qcwpAQCAtNTUsNiArNTUsMTkgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZ1ZpZXdlcicsICgp
ID0+IHsKICAgICAgICAgIm1lc3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdlIiwKICAgICB9OwogCisg
ICAgY29uc3Qgd2Via2l0Q29tbWl0MjEwOTUwV2l0aFJldmlzaW9uSWRlbnRpZmllciA9IHsKKyAg
ICAgICAgImlkIjogIjE4NTMzOCIsCisgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NTAiLAorICAg
ICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3OEBtYWluIiwKKyAgICAgICAgInJlcG9z
aXRvcnkiOiAxLAorICAgICAgICAicHJldmlvdXNDb21taXQiOiBudWxsLAorICAgICAgICAib3du
c0NvbW1pdHMiOiBmYWxzZSwKKyAgICAgICAgInRpbWUiOiArbmV3IERhdGUoIjIwMTctMDEtMjBU
MDM6NDk6MzcuODg3WiIpLAorICAgICAgICAiYXV0aG9yTmFtZSI6ICJDb21taXQgUXVldWUiLAor
ICAgICAgICAiYXV0aG9yRW1haWwiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmciLAorICAgICAg
ICAibWVzc2FnZSI6ICJhbm90aGVyIG1lc3NhZ2UiLAorICAgIH07CisKICAgICBpdCgnc2hvdWxk
IGluaXRpYWxseSBiZSBlbXB0eSB3aXRoIG5vIHNwaW5uZXInLCAoKSA9PiB7CiAgICAgICAgIGNv
bnN0IGNvbnRleHQgPSBuZXcgQnJvd3NpbmdDb250ZXh0KCk7CiAgICAgICAgIHJldHVybiBpbXBv
cnRDb21taXRMb2dWaWV3ZXIoY29udGV4dCkudGhlbigoQ29tbWl0TG9nVmlld2VyKSA9PiB7CkBA
IC0xMjksOSArMTQyLDkgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZ1ZpZXdlcicsICgpID0+IHsKICAg
ICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIiwKICAgICAgICAgICAgICAgICAiY29tbWl0cyI6
IFt3ZWJraXRDb21taXQyMTA5NDhdLAogICAgICAgICAgICAgfSk7Ci0KKyAgICAgICAgICAgIGF3
YWl0IHJlcXVlc3RzWzBdLnByb21pc2U7CisgICAgICAgICAgICBhd2FpdCByZXF1ZXN0c1sxXS5w
cm9taXNlOwogICAgICAgICAgICAgYXdhaXQgd2FpdEZvckNvbXBvbmVudHNUb1JlbmRlcihjb250
ZXh0KTsKLQogICAgICAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdzcGlubmVyLWNvbnRh
aW5lcicpLm9mZnNldEhlaWdodCkudG8uYmUoMCk7CiAgICAgICAgICAgICBleHBlY3Qodmlld2Vy
LmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLm1hdGNoZXMoJzplbXB0eScpKS50by5iZShmYWxzZSk7
CiAgICAgICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLnRleHRD
b250ZW50KS50by5jb250YWluKCdyMjEwOTQ5Jyk7CkBAIC0xNDQsNCArMTU3LDQ3IEBAIGRlc2Ny
aWJlKCdDb21taXRMb2dWaWV3ZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogICAgIH0pOwogCisg
ICAgaXQoJ3Nob3VsZCBzaG93IHJldmlzaW9uIGxhYmVsJywgYXN5bmMgKCkgPT4geworICAgICAg
ICBjb25zdCBjb250ZXh0ID0gbmV3IEJyb3dzaW5nQ29udGV4dCgpOworICAgICAgICBjb25zdCBD
b21taXRMb2dWaWV3ZXIgPSBhd2FpdCBpbXBvcnRDb21taXRMb2dWaWV3ZXIoY29udGV4dCk7Cisg
ICAgICAgIGNvbnN0IFJlcG9zaXRvcnkgPSBjb250ZXh0LnN5bWJvbHMuUmVwb3NpdG9yeTsKKyAg
ICAgICAgY29uc3QgcmVxdWVzdHMgPSBjb250ZXh0LnN5bWJvbHMuUmVtb3RlQVBJLnJlcXVlc3Rz
OworICAgICAgICBjb25zdCB2aWV3ZXIgPSBuZXcgQ29tbWl0TG9nVmlld2VyOworICAgICAgICBj
b25zdCB3ZWJraXQgPSBuZXcgUmVwb3NpdG9yeSgxLCB7bmFtZTogJ1dlYktpdCd9KTsKKyAgICAg
ICAgY29udGV4dC5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZXdlci5lbGVtZW50KCkpOwor
CisgICAgICAgIHZpZXdlci5lbnF1ZXVlVG9SZW5kZXIoKTsKKyAgICAgICAgYXdhaXQgd2FpdEZv
ckNvbXBvbmVudHNUb1JlbmRlcihjb250ZXh0KTsKKworICAgICAgICB2aWV3ZXIudmlldyh3ZWJr
aXQsICcyMTA5NDgnLCAnMjEwOTUwJyk7CisgICAgICAgIGF3YWl0IHdhaXRGb3JDb21wb25lbnRz
VG9SZW5kZXIoY29udGV4dCk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnc3Bpbm5l
ci1jb250YWluZXInKS5vZmZzZXRIZWlnaHQpLnRvLm5vdC5iZSgwKTsKKyAgICAgICAgZXhwZWN0
KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxpc3QnKS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUo
dHJ1ZSk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgncmVwb3NpdG9yeS1uYW1lJyku
bWF0Y2hlcygnOmVtcHR5JykpLnRvLmJlKGZhbHNlKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5j
b250ZW50KCdyZXBvc2l0b3J5LW5hbWUnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignV2ViS2l0
Jyk7CisgICAgICAgIGV4cGVjdChyZXF1ZXN0cy5sZW5ndGgpLnRvLmJlKDIpOworICAgICAgICBl
eHBlY3QocmVxdWVzdHNbMF0udXJsKS50by5iZSgnL2FwaS9jb21taXRzLzEvP3ByZWNlZGluZ1Jl
dmlzaW9uPTIxMDk0OCZsYXN0UmV2aXNpb249MjEwOTUwJyk7CisgICAgICAgIGV4cGVjdChyZXF1
ZXN0c1sxXS51cmwpLnRvLmJlKCcvYXBpL2NvbW1pdHMvMS8yMTA5NDgnKTsKKyAgICAgICAgcmVx
dWVzdHNbMF0ucmVzb2x2ZSh7CisgICAgICAgICAgICAic3RhdHVzIjogIk9LIiwKKyAgICAgICAg
ICAgICJjb21taXRzIjogW3dlYmtpdENvbW1pdDIxMDk0OSwgd2Via2l0Q29tbWl0MjEwOTUwV2l0
aFJldmlzaW9uSWRlbnRpZmllcl0sCisgICAgICAgIH0pOworCisgICAgICAgIHJlcXVlc3RzWzFd
LnJlc29sdmUoeworICAgICAgICAgICAgInN0YXR1cyI6ICJPSyIsCisgICAgICAgICAgICAiY29t
bWl0cyI6IFt3ZWJraXRDb21taXQyMTA5NDhdLAorICAgICAgICB9KTsKKworICAgICAgICBhd2Fp
dCByZXF1ZXN0c1swXS5wcm9taXNlOworICAgICAgICBhd2FpdCByZXF1ZXN0c1sxXS5wcm9taXNl
OworICAgICAgICBhd2FpdCB3YWl0Rm9yQ29tcG9uZW50c1RvUmVuZGVyKGNvbnRleHQpOworICAg
ICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ3NwaW5uZXItY29udGFpbmVyJykub2Zmc2V0SGVp
Z2h0KS50by5iZSgwKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxp
c3QnKS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUoZmFsc2UpOworICAgICAgICBleHBlY3Qodmll
d2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLnRleHRDb250ZW50KS50by5jb250YWluKCcxODQy
NzhAbWFpbiAocjIxMDk1MCknKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdjb21t
aXRzLWxpc3QnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignQ29tbWl0IFF1ZXVlJyk7CisgICAg
ICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgncmVwb3NpdG9yeS1uYW1lJykubWF0Y2hlcygnOmVt
cHR5JykpLnRvLmJlKGZhbHNlKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdyZXBv
c2l0b3J5LW5hbWUnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignV2ViS2l0Jyk7CisgICAgICAg
IGV4cGVjdCh2aWV3ZXIuY29udGVudCgnY29tbWl0cy1saXN0JykucXVlcnlTZWxlY3RvcignYScp
KS50by5iZShudWxsKTsKKyAgICB9KTsKKwogfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
aW5pdC1kYXRhYmFzZS5zcWwKaW5kZXggN2ZmYzg5YWQ4MmM3NjEwNDFkMWE1NTZlODNmN2M5Njc4
YTMyZmFjMS4uMGRlY2RjZGM1NWM1YjU2YTViZTBhZDMyMGJmMWUzNWMzNjYxY2VkNCAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbApAQCAtMTAyLDYgKzEwMiw3
IEBAIENSRUFURSBUQUJMRSBjb21taXRzICgKICAgICBjb21taXRfaWQgc2VyaWFsIFBSSU1BUlkg
S0VZLAogICAgIGNvbW1pdF9yZXBvc2l0b3J5IGludGVnZXIgTk9UIE5VTEwgUkVGRVJFTkNFUyBy
ZXBvc2l0b3JpZXMgT04gREVMRVRFIENBU0NBREUsCiAgICAgY29tbWl0X3JldmlzaW9uIHZhcmNo
YXIoNjQpIE5PVCBOVUxMLAorICAgIGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyIHZhcmNoYXIo
NjQpIERFRkFVTFQgTlVMTCwKICAgICBjb21taXRfcHJldmlvdXNfY29tbWl0IGludGVnZXIgUkVG
RVJFTkNFUyBjb21taXRzIE9OIERFTEVURSBDQVNDQURFLAogICAgIGNvbW1pdF90aW1lIHRpbWVz
dGFtcCwKICAgICBjb21taXRfb3JkZXIgaW50ZWdlciwKQEAgLTEwOSw3ICsxMTAsOCBAQCBDUkVB
VEUgVEFCTEUgY29tbWl0cyAoCiAgICAgY29tbWl0X21lc3NhZ2UgdGV4dCwKICAgICBjb21taXRf
cmVwb3J0ZWQgYm9vbGVhbiBOT1QgTlVMTCBERUZBVUxUIEZBTFNFLAogICAgIGNvbW1pdF90ZXN0
YWJpbGl0eSB2YXJjaGFyKDEyOCkgREVGQVVMVCBOVUxMLAotICAgIENPTlNUUkFJTlQgY29tbWl0
X2luX3JlcG9zaXRvcnlfbXVzdF9iZV91bmlxdWUgVU5JUVVFKGNvbW1pdF9yZXBvc2l0b3J5LCBj
b21taXRfcmV2aXNpb24pKTsKKyAgICBDT05TVFJBSU5UIGNvbW1pdF9pbl9yZXBvc2l0b3J5X211
c3RfYmVfdW5pcXVlIFVOSVFVRShjb21taXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uKSwK
KyAgICBDT05TVFJBSU5UIGNvbW1pdF9zdHJpbmdfaWRlbnRpZmllcl9pbl9yZXBvc2l0b3J5X211
c3RfYmVfdW5pcXVlIFVOSVFVRShjb21taXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uX2lk
ZW50aWZpZXIpKTsKIENSRUFURSBJTkRFWCBjb21taXRfdGltZV9pbmRleCBPTiBjb21taXRzKGNv
bW1pdF90aW1lKTsKIENSRUFURSBJTkRFWCBjb21taXRfb3JkZXJfaW5kZXggT04gY29tbWl0cyhj
b21taXRfb3JkZXIpOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWln
cmF0ZS1kYXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWlncmF0ZS1kYXRh
YmFzZS5zcWwKaW5kZXggNDliZDI0OWQyYTY4NTc3NjQ0OWQzNmU4MDUyNjhmY2M0Yjg3N2FjYS4u
ODVkMzU0YzY3ODdmNTg5NThmNGIwMmI0ZDMxYjYyMWI0ZmY1NDJiMiAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL21pZ3JhdGUtZGF0YWJhc2Uuc3FsCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbApAQCAtMyw2ICszLDkgQEAgRE8g
JCQKIEJFR0lOCiBBTFRFUiBUQUJMRSBidWlsZF9yZXF1ZXN0cyBBREQgQ09MVU1OIElGIE5PVCBF
WElTVFMgcmVxdWVzdF9zdGF0dXNfZGVzY3JpcHRpb24gdmFyY2hhcigxMDI0KSBERUZBVUxUIE5V
TEw7CiBBTFRFUiBUQUJMRSBwbGF0Zm9ybXMgQUREIENPTFVNTiAgSUYgTk9UIEVYSVNUUyBwbGF0
Zm9ybV9ncm91cCBpbnRlZ2VyIFJFRkVSRU5DRVMgcGxhdGZvcm1fZ3JvdXBzIERFRkFVTFQgTlVM
TDsKK0FMVEVSIFRBQkxFIGNvbW1pdHMgQUREIENPTFVNTiBJRiBOT1QgRVhJU1RTIGNvbW1pdF9y
ZXZpc2lvbl9pZGVudGlmaWVyIHZhcmNoYXIoNjQpIERFRkFVTFQgTlVMTDsKK0FMVEVSIFRBQkxF
IGNvbW1pdHMgRFJPUCBDT05TVFJBSU5UIGNvbW1pdF9zdHJpbmdfaWRlbnRpZmllcl9pbl9yZXBv
c2l0b3J5X211c3RfYmVfdW5pcXVlOworQUxURVIgVEFCTEUgY29tbWl0cyBBREQgQ09OU1RSQUlO
VCBjb21taXRfc3RyaW5nX2lkZW50aWZpZXJfaW5fcmVwb3NpdG9yeV9tdXN0X2JlX3VuaXF1ZSBV
TklRVUUoY29tbWl0X3JlcG9zaXRvcnksIGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyKTsKIAog
Q1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgcGxhdGZvcm1fZ3JvdXBzICgKICAgICBwbGF0Zm9y
bWdyb3VwX2lkIHNlcmlhbCBQUklNQVJZIEtFWSwKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAK
aW5kZXggNmUwYmVjZDBiYzgxNjRjMDQyZmQzZmIyZjM5OThjNDE1NGZlYjBlMS4uNTA1OGY3MTNl
YWI5ZDA5OGRkMDhjNWUxZWExMmJkZmJmZTczMmE1NiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hl
ci5waHAKQEAgLTgsMTQgKzgsMTYgQEAgY2xhc3MgQ29tbWl0TG9nRmV0Y2hlciB7CiAKICAgICBz
dGF0aWMgZnVuY3Rpb24gZmluZF9jb21taXRfaWRfYnlfcmV2aXNpb24oJGRiLCAkcmVwb3NpdG9y
eV9pZCwgJHJldmlzaW9uKQogICAgIHsKLSAgICAgICAgJGNvbW1pdF9yb3dzID0gJGRiLT5xdWVy
eV9hbmRfZmV0Y2hfYWxsKCdTRUxFQ1QgY29tbWl0X2lkIEZST00gY29tbWl0cyBXSEVSRSBjb21t
aXRfcmVwb3NpdG9yeSA9ICQxIEFORCBjb21taXRfcmV2aXNpb24gPSAkMicsIGFycmF5KCRyZXBv
c2l0b3J5X2lkLCAkcmV2aXNpb24pKTsKKyAgICAgICAgJGNvbHVtbl9uYW1lID0gQ29tbWl0TG9n
RmV0Y2hlcjo6aXNfY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXIoJHJldmlzaW9uKSA/ICdjb21t
aXRfcmV2aXNpb25faWRlbnRpZmllcicgOiAnY29tbWl0X3JldmlzaW9uJzsKKyAgICAgICAgCisg
ICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgiU0VMRUNUIGNv
bW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkgPSAkMSBBTkQgJGNv
bHVtbl9uYW1lID0gJDIiLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uKSk7CiAgICAg
ICAgIGlmICgkY29tbWl0X3Jvd3MpCiAgICAgICAgICAgICByZXR1cm4gJGNvbW1pdF9yb3dzWzBd
Wydjb21taXRfaWQnXTsKIAogICAgICAgICBpZiAoIWN0eXBlX2FsbnVtKCRyZXZpc2lvbikpCiAg
ICAgICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgICAgICAkY29tbWl0X3Jvd3MgPSAkZGItPnF1
ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCBjb21taXRfaWQgRlJPTSBjb21taXRzIFdIRVJFIGNv
bW1pdF9yZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF9yZXZpc2lvbiBMSUtFICQyIExJTUlUIDIn
LCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNp
b24pIC4gJyUnKSk7CisgICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNo
X2FsbCgiU0VMRUNUIGNvbW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRv
cnkgPSAkMSBBTkQgJGNvbHVtbl9uYW1lICBMSUtFICQyIExJTUlUIDIiLCBhcnJheSgkcmVwb3Np
dG9yeV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb24pIC4gJyUnKSk7CiAg
ICAgICAgIGlmICghJGNvbW1pdF9yb3dzKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAg
ICAgIGlmIChjb3VudCgkY29tbWl0X3Jvd3MpID4gMSkKQEAgLTU1LDYgKzU3LDcgQEAgY2xhc3Mg
Q29tbWl0TG9nRmV0Y2hlciB7CiAgICAgewogICAgICAgICAkc3RhdGVtZW50cyA9ICdTRUxFQ1Qg
Y29tbWl0X2lkIGFzICJpZCIsCiAgICAgICAgICAgICBjb21taXRfcmV2aXNpb24gYXMgInJldmlz
aW9uIiwKKyAgICAgICAgICAgIGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyIGFzICJyZXZpc2lv
bklkZW50aWZpZXIiLAogICAgICAgICAgICAgY29tbWl0X3ByZXZpb3VzX2NvbW1pdCBhcyAicHJl
dmlvdXNDb21taXQiLAogICAgICAgICAgICAgY29tbWl0X3RpbWUgYXMgInRpbWUiLAogICAgICAg
ICAgICAgY29tbWl0dGVyX25hbWUgYXMgImF1dGhvck5hbWUiLApAQCAtMTkyLDggKzE5NSwxNCBA
QCBjbGFzcyBDb21taXRMb2dGZXRjaGVyIHsKICAgICAgICAgcmV0dXJuICR0aGlzLT5mb3JtYXRf
c2luZ2xlX2NvbW1pdCgkY29tbWl0KTsKICAgICB9CiAKKyAgICBwcml2YXRlIHN0YXRpYyBmdW5j
dGlvbiBpc19jb21taXRfcmV2aXNpb25faWRlbnRpZmllcigkY29tbWl0X3JldmlzaW9uX29yX3Jl
dmlzaW9uX2lkZW50aWZpZXIpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIHByZWdfbWF0Y2goJy9e
XGQrQFtcd1wuXC1dKiQvJywgJGNvbW1pdF9yZXZpc2lvbl9vcl9yZXZpc2lvbl9pZGVudGlmaWVy
KTsKKyAgICB9CisKICAgICBwcml2YXRlIGZ1bmN0aW9uIGNvbW1pdF9mb3JfcmV2aXNpb24oJHJl
cG9zaXRvcnlfaWQsICRyZXZpc2lvbikgewotICAgICAgICAkY29tbWl0X2luZm8gPSBhcnJheSgn
cmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlfaWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uKTsK
KyAgICAgICAgJGNvbW1pdF9pbmZvID0gYXJyYXkoJ3JlcG9zaXRvcnknID0+ICRyZXBvc2l0b3J5
X2lkKTsgCisgICAgICAgICRjb21taXRfaW5mb1skdGhpcy0+aXNfY29tbWl0X3JldmlzaW9uX2lk
ZW50aWZpZXIoJHJldmlzaW9uKSA/ICdyZXZpc2lvbl9pZGVudGlmaWVyJyA6ICdyZXZpc2lvbidd
ID0gJHJldmlzaW9uOwogICAgICAgICAkcm93ID0gJHRoaXMtPmRiLT5zZWxlY3RfbGFzdF9yb3co
J2NvbW1pdHMnLCAnY29tbWl0JywgJGNvbW1pdF9pbmZvKTsKICAgICAgICAgaWYgKCEkcm93KQog
ICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdVbmtub3duQ29tbWl0JywgJGNvbW1pdF9pbmZv
KTsKQEAgLTIwMSw3ICsyMTAsOCBAQCBjbGFzcyBDb21taXRMb2dGZXRjaGVyIHsKICAgICB9CiAK
ICAgICBwcml2YXRlIGZ1bmN0aW9uIGNvbW1pdF9mb3JfcmV2aXNpb25fcHJlZml4KCRyZXBvc2l0
b3J5X2lkLCAkcmV2aXNpb25fcHJlZml4KSB7Ci0gICAgICAgICRyb3dzID0gJHRoaXMtPmRiLT5x
dWVyeV9hbmRfZmV0Y2hfYWxsKCdTRUxFQ1QgKiBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3Jl
cG9zaXRvcnkgPSAkMSBBTkQgY29tbWl0X3JldmlzaW9uIExJS0UgJDIgT1JERVIgQlkgY29tbWl0
X3JldmlzaW9uIExJTUlUIDInLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0YWJhc2U6OmVzY2Fw
ZV9mb3JfbGlrZSgkcmV2aXNpb25fcHJlZml4KSAuICclJykpOworICAgICAgICAkY29sdW1uX25h
bWUgPSAkdGhpcy0+aXNfY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXIoJHJldmlzaW9uX3ByZWZp
eCkgPyAncmV2aXNpb25faWRlbnRpZmllcicgOiAncmV2aXNpb24nOworICAgICAgICAkcm93cyA9
ICR0aGlzLT5kYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgiU0VMRUNUICogRlJPTSBjb21taXRzIFdI
RVJFIGNvbW1pdF9yZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF8kY29sdW1uX25hbWUgTElLRSAk
MiBPUkRFUiBCWSBjb21taXRfJGNvbHVtbl9uYW1lIExJTUlUIDIiLCBhcnJheSgkcmVwb3NpdG9y
eV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb25fcHJlZml4KSAuICclJykp
OwogICAgICAgICBpZiAoY291bnQoJHJvd3MpID09IDApCiAgICAgICAgICAgICBleGl0X3dpdGhf
ZXJyb3IoJ1Vua25vd25Db21taXQnLCBhcnJheSgncmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlf
aWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uX3ByZWZpeCkpOwogICAgICAgICBpZiAoY291bnQo
JHJvd3MpID09IDIpIHsKQEAgLTIyNCw2ICsyMzQsNyBAQCBjbGFzcyBDb21taXRMb2dGZXRjaGVy
IHsKICAgICAgICAgcmV0dXJuIGFycmF5KAogICAgICAgICAgICAgJ2lkJyA9PiAkY29tbWl0X3Jv
d1snY29tbWl0X2lkJ10sCiAgICAgICAgICAgICAncmV2aXNpb24nID0+ICRjb21taXRfcm93Wydj
b21taXRfcmV2aXNpb24nXSwKKyAgICAgICAgICAgICdyZXZpc2lvbklkZW50aWZpZXInID0+ICRj
b21taXRfcm93Wydjb21taXRfcmV2aXNpb25faWRlbnRpZmllciddLAogICAgICAgICAgICAgJ3Jl
cG9zaXRvcnknID0+ICRjb21taXRfcm93Wydjb21taXRfcmVwb3NpdG9yeSddLAogICAgICAgICAg
ICAgJ3ByZXZpb3VzQ29tbWl0JyA9PiAkY29tbWl0X3Jvd1snY29tbWl0X3ByZXZpb3VzX2NvbW1p
dCddLAogICAgICAgICAgICAgJ3RpbWUnID0+IERhdGFiYXNlOjp0b19qc190aW1lKCRjb21taXRf
cm93Wydjb21taXRfdGltZSddKSwKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvaW5jbHVkZS9jb21taXQtdXBkYXRlci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LXVwZGF0ZXIucGhwCmluZGV4IDA4YzY4YmJlNjQx
MGFmZjA2ZGI4NzU0OTkyYTQ4YzkzN2U3MGUzMmYuLjQzMjIwZDMxOTMyMjA3ZWM4MjI4ZTIyM2Y2
NDI4NmQzYmMwYjgwNmMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvaW5jbHVkZS9jb21taXQtdXBkYXRlci5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocApAQCAtMzAsNyArMzAsNiBAQCBj
bGFzcyBDb21taXRVcGRhdGVyIHsKICAgICBwcml2YXRlIGZ1bmN0aW9uIHVwZGF0ZV9jb21taXQo
JiR1cGRhdGUsICRvd25lcl9jb21taXRfaWQsICRvd25lcl9yZXBvc2l0b3J5X2lkLCAkc2hvdWxk
X2luc2VydCkKICAgICB7CiAgICAgICAgICRjb21taXRfZGF0YSA9ICYkdGhpcy0+cmVzb2x2ZV9m
aWVsZHNfZnJvbV9kYXRhYmFzZSgkdXBkYXRlLCAkb3duZXJfcmVwb3NpdG9yeV9pZCwgJHNob3Vs
ZF9pbnNlcnQpOwotCiAgICAgICAgICRjb21taXRfc2VsZWN0X3F1ZXJ5ID0gYXJyYXkoJ3JlcG9z
aXRvcnknID0+ICRjb21taXRfZGF0YVsncmVwb3NpdG9yeSddLCAncmV2aXNpb24nID0+ICRjb21t
aXRfZGF0YVsncmV2aXNpb24nXSk7CiAgICAgICAgIGlmICgkc2hvdWxkX2luc2VydCkgewogICAg
ICAgICAgICAgJGNvbW1pdF9pZCA9ICR0aGlzLT5kYi0+dXBkYXRlX29yX2luc2VydF9yb3coJ2Nv
bW1pdHMnLCAnY29tbWl0JywgJGNvbW1pdF9zZWxlY3RfcXVlcnksICRjb21taXRfZGF0YSk7CkBA
IC03NCw2ICs3Myw3IEBAIGNsYXNzIENvbW1pdFVwZGF0ZXIgewogICAgIHByaXZhdGUgZnVuY3Rp
b24gJmNvbnN0cnVjdF91cGRhdGVfbGlzdCgmJGNvbW1pdF9pbmZvX2xpc3QsICRzaG91bGRfaW5z
ZXJ0KQogICAgIHsKICAgICAgICAgJHVwZGF0ZV9saXN0ID0gYXJyYXkoKTsKKyAgICAgICAgJGNv
bW1pdF9yZXZpc2lvbl9pZGVudGlmaWVycyA9IGFycmF5KCk7CiAKICAgICAgICAgZm9yZWFjaCAo
JGNvbW1pdF9pbmZvX2xpc3QgYXMgJiRjb21taXRfaW5mbykgewogICAgICAgICAgICAgc2VsZjo6
dmFsaWRhdGVfY29tbWl0cygkY29tbWl0X2luZm8pOwpAQCAtODEsNiArODEsMTEgQEAgY2xhc3Mg
Q29tbWl0VXBkYXRlciB7CiAgICAgICAgICAgICAkaGFzX3VwZGF0ZSA9IGNvdW50KCRjb21taXRf
ZGF0YSkgPiAxOwogCiAgICAgICAgICAgICAkdXBkYXRlID0gYXJyYXkoJ2NvbW1pdCcgPT4gJiRj
b21taXRfZGF0YSwgJ3JlcG9zaXRvcnknID0+ICYkY29tbWl0X2luZm9bJ3JlcG9zaXRvcnknXSk7
CisgICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncmV2aXNpb25JZGVudGlmaWVyJywg
JGNvbW1pdF9pbmZvKSkgeworICAgICAgICAgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCRj
b21taXRfaW5mb1sncmV2aXNpb25JZGVudGlmaWVyJ10sICRjb21taXRfcmV2aXNpb25faWRlbnRp
ZmllcnMpKQorICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZXhpdF93aXRoX2Vycm9yKCdEdXBs
aWNhdGVkUmV2aXNpb25JZGVudGlmaWVyJywgYXJyYXkoJ2NvbW1pdCcgPT4gJGNvbW1pdF9pbmZv
KSk7CisgICAgICAgICAgICAgICAgJGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyc1skY29tbWl0
X2luZm9bJ3JldmlzaW9uSWRlbnRpZmllciddXSA9IHRydWU7CisgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncHJldmlvdXNDb21taXQnLCAkY29tbWl0X2lu
Zm8pKSB7CiAgICAgICAgICAgICAgICAgJGhhc191cGRhdGUgPSB0cnVlOwogICAgICAgICAgICAg
ICAgICR1cGRhdGVbJ3ByZXZpb3VzX2NvbW1pdCddID0gJiRjb21taXRfaW5mb1sncHJldmlvdXND
b21taXQnXTsKQEAgLTEwNCw2ICsxMDksNyBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsKIAogICAg
ICAgICAgICAgJG93bmVkX2NvbW1pdF91cGRhdGVfbGlzdCA9IGFycmF5KCk7CiAgICAgICAgICAg
ICBmb3JlYWNoKCRjb21taXRfaW5mb1snb3duZWRDb21taXRzJ10gYXMgJG93bmVkX3JlcG9zaXRv
cnlfbmFtZSA9PiAmJG93bmVkX2NvbW1pdF9pbmZvKSB7CisgICAgICAgICAgICAgICAgc2VsZjo6
dmFsaWRhdGVfY29tbWl0cygkb3duZWRfY29tbWl0X2luZm8sIHRydWUpOwogICAgICAgICAgICAg
ICAgICRvd25lZF9jb21taXQgPSAmc2VsZjo6Y29uc3RydWN0X2NvbW1pdF9kYXRhKCRvd25lZF9j
b21taXRfaW5mbywgJG93bmVkX3JlcG9zaXRvcnlfbmFtZSwgJHNob3VsZF9pbnNlcnQpOwogICAg
ICAgICAgICAgICAgICRvd25lZF9jb21taXRfdXBkYXRlID0gYXJyYXkoJ2NvbW1pdCcgPT4gJiRv
d25lZF9jb21taXQsICdyZXBvc2l0b3J5JyA9PiAkb3duZWRfcmVwb3NpdG9yeV9uYW1lKTsKIApA
QCAtMTQzLDE1ICsxNDksMTggQEAgY2xhc3MgQ29tbWl0VXBkYXRlciB7CiAgICAgICAgICAgICAk
Y29tbWl0X2RhdGFbJ3RpbWUnXSA9ICRjb21taXRfaW5mb1sndGltZSddOwogICAgICAgICB9CiAK
KyAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJ3JldmlzaW9uSWRlbnRpZmllcicsICRjb21t
aXRfaW5mbykpCisgICAgICAgICAgICAkY29tbWl0X2RhdGFbJ3JldmlzaW9uX2lkZW50aWZpZXIn
XSA9ICRjb21taXRfaW5mb1sncmV2aXNpb25JZGVudGlmaWVyJ107CisKICAgICAgICAgaWYgKCRz
aG91bGRfaW5zZXJ0KQogICAgICAgICAgICAgJGNvbW1pdF9kYXRhWydyZXBvcnRlZCddID0gdHJ1
ZTsKIAogICAgICAgICByZXR1cm4gJGNvbW1pdF9kYXRhOwogICAgIH0KIAotICAgIHByaXZhdGUg
c3RhdGljIGZ1bmN0aW9uIHZhbGlkYXRlX2NvbW1pdHMoJiRjb21taXRfaW5mbykKKyAgICBwcml2
YXRlIHN0YXRpYyBmdW5jdGlvbiB2YWxpZGF0ZV9jb21taXRzKCYkY29tbWl0X2luZm8sICRpc19v
d25fY29tbWl0ID0gZmFsc2UpCiAgICAgewotICAgICAgICBpZiAoIWFycmF5X2tleV9leGlzdHMo
J3JlcG9zaXRvcnknLCAkY29tbWl0X2luZm8pKQorICAgICAgICBpZiAoIWFycmF5X2tleV9leGlz
dHMoJ3JlcG9zaXRvcnknLCAkY29tbWl0X2luZm8pICYmICEkaXNfb3duX2NvbW1pdCkKICAgICAg
ICAgICAgIGV4aXRfd2l0aF9lcnJvcignTWlzc2luZ1JlcG9zaXRvcnlOYW1lJywgYXJyYXkoJ2Nv
bW1pdCcgPT4gJGNvbW1pdF9pbmZvKSk7CiAgICAgICAgIGlmICghYXJyYXlfa2V5X2V4aXN0cygn
cmV2aXNpb24nLCAkY29tbWl0X2luZm8pKQogICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdN
aXNzaW5nUmV2aXNpb24nLCBhcnJheSgnY29tbWl0JyA9PiAkY29tbWl0X2luZm8pKTsKQEAgLTE2
MCw2ICsxNjksOCBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsKICAgICAgICAgICAgIGV4aXRfd2l0
aF9lcnJvcignSW52YWxpZEF1dGhvckZvcm1hdCcsIGFycmF5KCdjb21taXQnID0+ICRjb21taXRf
aW5mbykpOwogICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncHJldmlvdXNDb21taXQnLCAk
Y29tbWl0X2luZm8pKQogICAgICAgICAgICAgcmVxdWlyZV9mb3JtYXQoJ1JldmlzaW9uJywgJGNv
bW1pdF9pbmZvWydwcmV2aW91c0NvbW1pdCddLCAnL15bQS1aYS16MC05IFwuXSskLycpOworICAg
ICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncmV2aXNpb25JZGVudGlmaWVyJywgJGNvbW1pdF9p
bmZvKSkKKyAgICAgICAgICAgIHJlcXVpcmVfZm9ybWF0KCdSZXZpc2lvbklkZW50aWZpZXInLCAk
Y29tbWl0X2luZm9bJ3JldmlzaW9uSWRlbnRpZmllciddLCAnL15cZCtAW1x3XC5cLV0rJC8nKTsK
ICAgICB9CiAKICAgICBwcml2YXRlIGZ1bmN0aW9uIHJlc29sdmVfcmVwb3NpdG9yeSgkcmVwb3Np
dG9yeV9uYW1lLCAkb3duZXJfcmVwb3NpdG9yeV9pZCwgJHNob3VsZF9pbnNlcnQpCmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3J0LXByb2Nl
c3Nvci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3J0
LXByb2Nlc3Nvci5waHAKaW5kZXggMWJjMWRiNjQyZGJlZmVmOGVjYjA3MmUxOGI1N2U5YzkxYmMw
NzIzYy4uYWJlZDhhZTAwOGNkZmM4NGQ2MjM4N2IyZGEwZTlhMjM0MTZhMjRjNyAxMDA2NDQKLS0t
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL3JlcG9ydC1wcm9jZXNz
b3IucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9yZXBv
cnQtcHJvY2Vzc29yLnBocApAQCAtMTU5LDE0ICsxNTksMTYgQEAgY2xhc3MgUmVwb3J0UHJvY2Vz
c29yIHsKICAgICAgICAgICAgICAgICAkdGhpcy0+cm9sbGJhY2tfd2l0aF9lcnJvcignRmFpbGVk
VG9VcGRhdGVCdWlsZFJlcXVlc3QnLCBhcnJheSgnYnVpbGRSZXF1ZXN0JyA9PiAkYnVpbGRfcmVx
dWVzdF9pZCwgJ2J1aWxkJyA9PiAkYnVpbGRfaWQpKTsKICAgICAgICAgfQogCi0KICAgICAgICAg
Zm9yZWFjaCAoJHJldmlzaW9ucyBhcyAkcmVwb3NpdG9yeV9uYW1lID0+ICRyZXZpc2lvbl9kYXRh
KSB7CiAgICAgICAgICAgICAkcmVwb3NpdG9yeV9pZCA9ICR0aGlzLT5kYi0+c2VsZWN0X29yX2lu
c2VydF9yb3coJ3JlcG9zaXRvcmllcycsICdyZXBvc2l0b3J5JywgYXJyYXkoJ25hbWUnID0+ICRy
ZXBvc2l0b3J5X25hbWUsICdvd25lcicgPT4gTlVMTCkpOwogICAgICAgICAgICAgaWYgKCEkcmVw
b3NpdG9yeV9pZCkKICAgICAgICAgICAgICAgICAkdGhpcy0+cm9sbGJhY2tfd2l0aF9lcnJvcign
RmFpbGVkVG9JbnNlcnRSZXBvc2l0b3J5JywgYXJyYXkoJ25hbWUnID0+ICRyZXBvc2l0b3J5X25h
bWUpKTsKIAotICAgICAgICAgICAgJGNvbW1pdF9kYXRhID0gYXJyYXkoJ3JlcG9zaXRvcnknID0+
ICRyZXBvc2l0b3J5X2lkLCAncmV2aXNpb24nID0+ICRyZXZpc2lvbl9kYXRhWydyZXZpc2lvbidd
LCAndGltZScgPT4gYXJyYXlfZ2V0KCRyZXZpc2lvbl9kYXRhLCAndGltZXN0YW1wJykpOwotCisg
ICAgICAgICAgICAkY29tbWl0X2RhdGEgPSBhcnJheSgKKyAgICAgICAgICAgICAgICAncmVwb3Np
dG9yeScgPT4gJHJlcG9zaXRvcnlfaWQsIAorICAgICAgICAgICAgICAgICdyZXZpc2lvbicgPT4g
JHJldmlzaW9uX2RhdGFbJ3JldmlzaW9uJ10sIAorICAgICAgICAgICAgICAgICd0aW1lJyA9PiBh
cnJheV9nZXQoJHJldmlzaW9uX2RhdGEsICd0aW1lc3RhbXAnKSwgCisgICAgICAgICAgICAgICAg
J3JldmlzaW9uX2lkZW50aWZpZXInID0+IGFycmF5X2dldCgkcmV2aXNpb25fZGF0YSwgJ3Jldmlz
aW9uSWRlbnRpZmllcicsIG51bGwpKTsKICAgICAgICAgICAgICRtaXNtYXRjaGluZ19jb21taXQg
PSAkdGhpcy0+ZGItPnF1ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCAqIEZST00gYnVpbGRfY29t
bWl0cywgY29tbWl0cwogICAgICAgICAgICAgICAgIFdIRVJFIGJ1aWxkX2NvbW1pdCA9IGNvbW1p
dF9pZCBBTkQgY29tbWl0X2J1aWxkID0gJDEgQU5EIGNvbW1pdF9yZXBvc2l0b3J5ID0gJDIgQU5E
IGNvbW1pdF9yZXZpc2lvbiAhPSAkMyBMSU1JVCAxJywKICAgICAgICAgICAgICAgICBhcnJheSgk
YnVpbGRfaWQsICRyZXBvc2l0b3J5X2lkLCAkcmV2aXNpb25fZGF0YVsncmV2aXNpb24nXSkpOwpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29t
bWl0LWxvZy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2Nv
bW1pdC1sb2cuanMKaW5kZXggZTZkNGQ0NGFiYjU1NDEzNDZlMmY0YTlkNDQwMDlmNzlhNzgyOTAw
Yi4uYjg3OGVjNGZkYTA0NDA0OTk0NmM1MjE0ZWVhMDhjMGE3YjE3MjkwZiAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9n
LmpzCkBAIC0yMCw2ICsyMCw3IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9i
amVjdCB7CiAKICAgICAgICAgY29uc29sZS5hc3NlcnQoK3RoaXMuX3Jhd0RhdGFbJ3RpbWUnXSA9
PSArcmF3RGF0YVsndGltZSddKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fcmF3RGF0
YVsncmV2aXNpb24nXSA9PSByYXdEYXRhWydyZXZpc2lvbiddKTsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQodGhpcy5fcmF3RGF0YVsncmV2aXNpb25JZGVudGlmaWVyJ10gPT0gcmF3RGF0YVsncmV2
aXNpb25JZGVudGlmaWVyJ10pOwogCiAgICAgICAgIGlmIChyYXdEYXRhLmF1dGhvck5hbWUpCiAg
ICAgICAgICAgICB0aGlzLl9yYXdEYXRhLmF1dGhvck5hbWUgPSByYXdEYXRhLmF1dGhvck5hbWU7
CkBAIC0zOSw2ICs0MCw3IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVj
dCB7CiAgICAgdGVzdGFiaWxpdHkoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWyd0ZXN0YWJpbGl0
eSddOyB9CiAgICAgYXV0aG9yKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsnYXV0aG9yTmFtZSdd
OyB9CiAgICAgcmV2aXNpb24oKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydyZXZpc2lvbiddOyB9
CisgICAgcmV2aXNpb25JZGVudGlmaWVyKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsncmV2aXNp
b25JZGVudGlmaWVyJ107IH0KICAgICBtZXNzYWdlKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsn
bWVzc2FnZSddOyB9CiAgICAgdXJsKCkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeS51cmxGb3JS
ZXZpc2lvbih0aGlzLl9yYXdEYXRhWydyZXZpc2lvbiddKTsgfQogICAgIG93bnNDb21taXRzKCkg
eyByZXR1cm4gdGhpcy5fcmF3RGF0YVsnb3duc0NvbW1pdHMnXTsgfQpAQCAtNDgsMTUgKzUwLDI5
IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgaGFzQ29t
bWl0T3JkZXIoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydvcmRlciddICE9IG51bGw7IH0KICAg
ICBzZXRPd25lckNvbW1pdHMob3duZXJDb21taXQpIHsgdGhpcy5fb3duZXJDb21taXQgPSBvd25l
ckNvbW1pdDsgfQogCi0gICAgbGFiZWwoKQorICAgIGxhYmVsKCkgeyByZXR1cm4gQ29tbWl0TG9n
Ll9mb3JtYXR0dGVkUmV2aXNpb24odGhpcy5yZXZpc2lvbigpLCB0aGlzLnJldmlzaW9uSWRlbnRp
ZmllcigpKTsgfQorCisgICAgc3RhdGljIHJlcG9zaXRvcnlUeXBlKHJldmlzaW9uKQogICAgIHsK
LSAgICAgICAgY29uc3QgcmV2aXNpb24gPSB0aGlzLnJldmlzaW9uKCk7Ci0gICAgICAgIGlmIChw
YXJzZUludChyZXZpc2lvbikgPT0gcmV2aXNpb24pIC8vIGUuZy4gcjEyMzQ1Ci0gICAgICAgICAg
ICByZXR1cm4gJ3InICsgcmV2aXNpb247Ci0gICAgICAgIGlmIChyZXZpc2lvbi5sZW5ndGggPT0g
NDApIC8vIGUuZy4gZ2l0IGhhc2gKLSAgICAgICAgICAgIHJldHVybiByZXZpc2lvbi5zdWJzdHJp
bmcoMCwgMTIpOwotICAgICAgICByZXR1cm4gcmV2aXNpb247CisgICAgICAgIGlmIChwYXJzZUlu
dChyZXZpc2lvbikgPT0gcmV2aXNpb24pCisgICAgICAgICAgICByZXR1cm4gJ3N2bic7CisgICAg
ICAgIGlmIChyZXZpc2lvbi5sZW5ndGggPT0gNDApCisgICAgICAgICAgICByZXR1cm4gJ2dpdCc7
CiAgICAgfQorCisgICAgc3RhdGljIF9mb3JtYXR0dGVkUmV2aXNpb24ocmV2aXNpb24sIHJldmlz
aW9uSWRlbnRpZmllcj1udWxsKSAKKyAgICB7CisgICAgICAgIGxldCBmb3JtYXR0ZWRSZXZpc2lv
biA9IHJldmlzaW9uOworICAgICAgICBsZXQgcmVwb3NpdG9yeVR5cGUgPSBDb21taXRMb2cucmVw
b3NpdG9yeVR5cGUocmV2aXNpb24pOworICAgICAgICBpZiAocmVwb3NpdG9yeVR5cGUgPT0gJ3N2
bicpIC8vIGUuZy4gcjEyMzQ1CisgICAgICAgICAgICBmb3JtYXR0ZWRSZXZpc2lvbiA9ICAncicg
KyByZXZpc2lvbjsKKyAgICAgICAgaWYgKHJlcG9zaXRvcnlUeXBlID09ICdnaXQnKSAvLyBlLmcu
IGdpdCBoYXNoCisgICAgICAgICAgICBmb3JtYXR0ZWRSZXZpc2lvbiA9IHJldmlzaW9uLnN1YnN0
cmluZygwLCAxMik7CisgICAgICAgIGlmIChyZXZpc2lvbklkZW50aWZpZXIpCisgICAgICAgICAg
ICBmb3JtYXR0ZWRSZXZpc2lvbiA9IGAke3JldmlzaW9uSWRlbnRpZmllcn0gKCR7Zm9ybWF0dGVk
UmV2aXNpb259KWA7CisgICAgICAgIHJldHVybiBmb3JtYXR0ZWRSZXZpc2lvbjsKKyAgICB9CisK
ICAgICB0aXRsZSgpIHsgcmV0dXJuIHRoaXMuX3JlcG9zaXRvcnkubmFtZSgpICsgJyBhdCAnICsg
dGhpcy5sYWJlbCgpOyB9CiAKICAgICBkaWZmKHByZXZpb3VzQ29tbWl0KQpAQCAtNjgsMTcgKzg0
LDIzIEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgICAg
IGlmICghcHJldmlvdXNDb21taXQpCiAgICAgICAgICAgICByZXR1cm4ge3JlcG9zaXRvcnk6IHJl
cG9zaXRvcnksIGxhYmVsOiB0aGlzLmxhYmVsKCksIHVybDogdGhpcy51cmwoKX07CiAKLSAgICAg
ICAgY29uc3QgdG8gPSB0aGlzLnJldmlzaW9uKCk7Ci0gICAgICAgIGNvbnN0IGZyb20gPSBwcmV2
aW91c0NvbW1pdC5yZXZpc2lvbigpOwotICAgICAgICBsZXQgbGFiZWwgPSBudWxsOwotICAgICAg
ICBpZiAocGFyc2VJbnQoZnJvbSkgPT0gZnJvbSkvLyBlLmcuIHIxMjM0NS4KLSAgICAgICAgICAg
IGxhYmVsID0gYHIke2Zyb219LXIke3RoaXMucmV2aXNpb24oKX1gOwotICAgICAgICBlbHNlIGlm
ICh0by5sZW5ndGggPT0gNDApIC8vIGUuZy4gZ2l0IGhhc2gKLSAgICAgICAgICAgIGxhYmVsID0g
YCR7ZnJvbS5zdWJzdHJpbmcoMCwgMTIpfS4uJHt0by5zdWJzdHJpbmcoMCwgMTIpfWA7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIGxhYmVsID0gYCR7ZnJvbX0gLSAke3RvfWA7Ci0KLSAgICAg
ICAgcmV0dXJuIHtyZXBvc2l0b3J5OiByZXBvc2l0b3J5LCBsYWJlbDogbGFiZWwsIHVybDogcmVw
b3NpdG9yeS51cmxGb3JSZXZpc2lvblJhbmdlKGZyb20sIHRvKX07CisgICAgICAgIGNvbnN0IHRv
UmV2aXNpb24gPSB0aGlzLnJldmlzaW9uKCk7CisgICAgICAgIGNvbnN0IGZyb21SZXZpc2lvbiA9
IHByZXZpb3VzQ29tbWl0LnJldmlzaW9uKCk7CisgICAgICAgIGNvbnN0IGlkZW50aWZpZXJQYXR0
ZXJuID0gLyg/PG51bWJlcj5cZCspQCg/PGJyYW5jaD5bXHdcLlwtXSspLzsKKyAgICAgICAgY29u
c3QgcmVwb3NpdG9yeVR5cGUgPSBDb21taXRMb2cucmVwb3NpdG9yeVR5cGUodG9SZXZpc2lvbik7
CisgICAgICAgCisgICAgICAgIGxldCBsYWJlbCA9ICgoZnJvbU1hdGNoLCB0b01hdGNoKSA9PiB7
CisgICAgICAgICAgICBjb25zdCBzZXBhcmF0b3IgPSByZXBvc2l0b3J5VHlwZSA9PSAnZ2l0JyA/
ICcuLicgOiAocmVwb3NpdG9yeVR5cGUgPT0gJ3N2bicgPyAnLScgOiAnIC0gJyk7CisgICAgICAg
ICAgICBpZiAoZnJvbU1hdGNoICYmIHRvTWF0Y2gpIHsKKyAgICAgICAgICAgICAgICBjb25zb2xl
LmFzc2VydChmcm9tTWF0Y2guZ3JvdXBzLmJyYW5jaCA9PSB0b01hdGNoLmdyb3Vwcy5icmFuY2gp
OworICAgICAgICAgICAgICAgIHJldHVybiBgJHtmcm9tTWF0Y2guZ3JvdXBzLm51bWJlcn0tJHt0
b01hdGNoLmdyb3Vwcy5udW1iZXJ9QCR7ZnJvbU1hdGNoLmdyb3Vwcy5icmFuY2h9ICgke0NvbW1p
dExvZy5fZm9ybWF0dHRlZFJldmlzaW9uKGZyb21SZXZpc2lvbil9JHtzZXBhcmF0b3J9JHtDb21t
aXRMb2cuX2Zvcm1hdHR0ZWRSZXZpc2lvbih0b1JldmlzaW9uKX0pYAorICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaWYgKGZyb21NYXRjaCB8fCB0b01hdGNoKQorICAgICAgICAgICAgICAgIHJl
dHVybiBgJHtwcmV2aW91c0NvbW1pdC5sYWJlbCgpfSAtICR7dGhpcy5sYWJlbCgpfWA7CisgICAg
ICAgICAgICByZXR1cm4gYCR7cHJldmlvdXNDb21taXQubGFiZWwoKX0ke3NlcGFyYXRvcn0ke3Ro
aXMubGFiZWwoKX1gOworICAgICAgICB9KShpZGVudGlmaWVyUGF0dGVybi5leGVjKHByZXZpb3Vz
Q29tbWl0LnJldmlzaW9uSWRlbnRpZmllcigpKSwgaWRlbnRpZmllclBhdHRlcm4uZXhlYyh0aGlz
LnJldmlzaW9uSWRlbnRpZmllcigpKSk7CisKKyAgICAgICAgcmV0dXJuIHtyZXBvc2l0b3J5OiBy
ZXBvc2l0b3J5LCBsYWJlbDogbGFiZWwsIHVybDogcmVwb3NpdG9yeS51cmxGb3JSZXZpc2lvblJh
bmdlKGZyb21SZXZpc2lvbiwgdG9SZXZpc2lvbil9OwogICAgIH0KIAogICAgIHN0YXRpYyBmZXRj
aExhdGVzdENvbW1pdEZvclBsYXRmb3JtKHJlcG9zaXRvcnksIHBsYXRmb3JtKQpkaWZmIC0tZ2l0
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0
cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMt
dGVzdHMuanMKaW5kZXggMjg1NjlmMDYzNzMwNGUzYTYyY2Y3NzAwOTIzOTNmN2YwZTczNjU5Ny4u
YTMzMTIxYTBlYzExYWYzMDE0ZWZmNDRlOTAwMmNiYjAxZTRjMDRkZiAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRl
c3RzLmpzCkBAIC0xNyw2ICsxNyw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldl
YktpdCIsCiAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OCIsCisgICAgICAgICAg
ICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxODQyNzZAbWFpbiIsCiAgICAgICAgICAgICAg
ICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMjo1MjozNC41NzdaIiwKICAgICAgICAgICAgICAgICAi
YXV0aG9yIjogeyJuYW1lIjogIlphbGFuIEJ1anRhcyIsICJhY2NvdW50IjogInphbGFuQGFwcGxl
LmNvbSJ9LAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImEgbWVzc2FnZSIsCkBAIC0yNCw2
ICsyNSw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCiAgICAgICAg
ICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OSIsCisgICAgICAgICAgICAgICAgInJldmlzaW9u
SWRlbnRpZmllciI6ICIxODQyNzdAbWFpbiIsCiAgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAx
Ny0wMS0yMFQwMzoyMzo1MC42NDVaIiwKICAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1l
IjogIkNocmlzIER1bWV6IiwgImFjY291bnQiOiAiY2R1bWV6QGFwcGxlLmNvbSJ9LAogICAgICAg
ICAgICAgICAgICJtZXNzYWdlIjogInNvbWUgbWVzc2FnZSIsCkBAIC0zMiwxMiArMzQsNTMgQEAg
ZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAg
InJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKICAgICAgICAgICAgICAgICAicHJldmlvdXNDb21taXQi
OiAiMjEwOTQ5IiwKICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTUwIiwKKyAgICAg
ICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3OEBtYWluIiwKICAgICAgICAg
ICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjQ5OjM3Ljg4N1oiLAogICAgICAgICAgICAg
ICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmcifSwKICAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJhbm90aGVy
IG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgXQorICAgIH07CisKKyAgICBjb25z
dCBzdWJjZXJzaW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25JZGVudGlmaWVyID0geworICAgICAg
ICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNv
bWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlz
aW9uIjogIjIxMDk0OCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIx
ODQyNzZAbWFpbiIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMjo1Mjoz
NC41NzdaIiwKKyAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIlphbGFuIEJ1anRh
cyIsICJhY2NvdW50IjogInphbGFuQGFwcGxlLmNvbSJ9LAorICAgICAgICAgICAgICAgICJtZXNz
YWdlIjogImEgbWVzc2FnZSIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlz
aW9uIjogIjIxMDk0OSIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIx
ODQyNzdAbWFpbiIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMzoyMzo1
MC42NDVaIiwKKyAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNocmlzIER1bWV6
IiwgImFjY291bnQiOiAiY2R1bWV6QGFwcGxlLmNvbSJ9LAorICAgICAgICAgICAgICAgICJtZXNz
YWdlIjogInNvbWUgbWVzc2FnZSIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInBy
ZXZpb3VzQ29tbWl0IjogIjIxMDk0OSIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIx
MDk1MCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxODQyNzhAbWFp
biIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMzo0OTozNy44ODdaIiwK
KyAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2Nv
dW50IjogImNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnIn0sCisgICAgICAgICAgICAgICAgIm1lc3Nh
Z2UiOiAiYW5vdGhlciBtZXNzYWdlIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAi
cmV2aXNpb24iOiAiMjEwOTUxIiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVy
IjogIjE4NDI3OEBzb21ldGhpbmciLAorICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEt
MjBUMDM6NDk6NDAuODg3WiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJD
b21taXQgUXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Via2l0Lm9yZyJ9LAorICAg
ICAgICAgICAgICAgICJtZXNzYWdlIjogImFub3RoZXIgbWVzc2FnZSIsCiAgICAgICAgICAgICB9
CiAgICAgICAgIF0KLSAgICB9CisgICAgfTsKIAogICAgIGNvbnN0IGNvbW1pdHNPbmVQcmVmaXhP
ZlRoZU90aGVyID0gewogICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCkBAIC00Niw2
ICs4OSw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCiAgICAgICAg
ICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25J
ZGVudGlmaWVyIjogIjE4NDI3MkBtYWluIiwKICAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3
LTAxLTIwVDAyOjUyOjM0LjU3N1oiLAogICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUi
OiAiWmFsYW4gQnVqdGFzIiwgImFjY291bnQiOiAiemFsYW5AYXBwbGUuY29tIn0sCiAgICAgICAg
ICAgICAgICAgIm1lc3NhZ2UiOiAiYSBtZXNzYWdlIiwKQEAgLTUzLDYgKzk3LDcgQEAgZGVzY3Jp
YmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKICAgICAgICAgICAgICAgICAicmV2aXNp
b24iOiAiMjEwOTQ5IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4
NDI3N0BtYWluIiwKICAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjIzOjUw
LjY0NVoiLAogICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ2hyaXMgRHVtZXoi
LCAiYWNjb3VudCI6ICJjZHVtZXpAYXBwbGUuY29tIn0sCiAgICAgICAgICAgICAgICAgIm1lc3Nh
Z2UiOiAic29tZSBtZXNzYWdlIiwKQEAgLTUyNCw2ICs1NjksNDEgQEAgZGVzY3JpYmUoIi9hcGkv
Y29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAK
KyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gY29tbWl0IHdpdGggY29tbWl0IHJldmlzaW9uIGxh
YmVsIiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQo
c3VidmVyc2lvbkNvbW1pdHMpOworICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1
YnZlcnNpb25Db21taXRzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKGAvYXBpL2NvbW1pdHMvV2ViS2l0LyR7c3VidmVy
c2lvbkNvbW1pdHMuY29tbWl0c1swXS5yZXZpc2lvbklkZW50aWZpZXJ9YCk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0LmNvbW1pdHMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdC5jb21taXRzWzBdLCBz
dWJ2ZXJzaW9uQ29tbWl0cy5jb21taXRzWzBdKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQo
InNob3VsZCByZXR1cm4gJ0FtYmlndW91c1JldmlzaW9uUHJlZml4JyB3aGVuIG1vcmUgdGhhbiBv
bmUgY29tbWl0cyBhcmUgZm91bmQgZm9yIGEgcmV2aXNpb24gbGFiZWwgcHJlZml4IiwgYXN5bmMg
KCkgPT4geworICAgICAgICAgICAgY29uc3QgcmVtb3RlID0gVGVzdFNlcnZlci5yZW1vdGVBUEko
KTsKKyAgICAgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YmNlcnNpb25Db21taXRz
V2l0aEZha2VSZXZpc2lvbklkZW50aWZpZXIpOworICAgICAgICAgICAgYXdhaXQgcmVtb3RlLnBv
c3RKU09OV2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJjZXJzaW9uQ29tbWl0
c1dpdGhGYWtlUmV2aXNpb25JZGVudGlmaWVyKTsKKyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9
IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzE4NDI3OEA/cHJlZml4
LW1hdGNoPXRydWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0
YXR1cyddLCAnQW1iaWd1b3VzUmV2aXNpb25QcmVmaXgnKTsKKyAgICAgICAgfSk7CisKKyAgICAg
ICAgaXQoInNob3VsZCBub3QgcmV0dXJuICdBbWJpZ3VvdXNSZXZpc2lvblByZWZpeCcgd2hlbiB0
aGVyZSBpcyBhIGNvbW1pdCByZXZpc2lvbiBsYWJlbCBleHRyYWN0IG1hdGNoZXMgc3BlY2lmaWVk
IHJldmlzaW9uIHByZWZpeCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHJlbW90
ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7CisgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZv
clJlcG9ydChzdWJjZXJzaW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25JZGVudGlmaWVyKTsKKyAg
ICAgICAgICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNv
bW1pdHMvJywgc3ViY2Vyc2lvbkNvbW1pdHNXaXRoRmFrZVJldmlzaW9uSWRlbnRpZmllcik7Cisg
ICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21t
aXRzL1dlYktpdC8xODQyNzhAbWFpbj9wcmVmaXgtbWF0Y2g9dHJ1ZScpOworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRz
J11bMF0sIHN1YmNlcnNpb25Db21taXRzV2l0aEZha2VSZXZpc2lvbklkZW50aWZpZXJbJ2NvbW1p
dHMnXVsyXSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuICdVbmtu
b3duQ29tbWl0JyB3aGVuIG5vIGNvbW1pdCBpcyBmb3VuZCBmb3IgYSByZXZpc2lvbiBsYWJlbCBw
cmVmaXgiLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCByZW1vdGUgPSBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpOworICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3Vi
Y2Vyc2lvbkNvbW1pdHNXaXRoRmFrZVJldmlzaW9uSWRlbnRpZmllcik7CisgICAgICAgICAgICBh
d2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1
YmNlcnNpb25Db21taXRzV2l0aEZha2VSZXZpc2lvbklkZW50aWZpZXIpOworICAgICAgICAgICAg
Y29uc3QgcmVzdWx0ID0gYXdhaXQgcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQv
MTg0Mjc4QHg/cHJlZml4LW1hdGNoPXRydWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnVW5rbm93bkNvbW1pdCcpOworICAgICAgICB9KTsKICAg
ICB9KTsKIAogICAgIGRlc2NyaWJlKCcvYXBpL2NvbW1pdHMvPHJlcG9zaXRvcnk+L293bmVkLWNv
bW1pdHM/b3duZXItcmV2aXNpb249PGNvbW1pdD4nLCAoKSA9PiB7CkBAIC03MjcsNiArODA3LDMz
IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOwogCisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHJlcG9ydGVkIGNv
bW1pdHMgaW4gdGhlIHNwZWNpZmllZCByZXZpc2lvbiBsYWJlbCByYW5nZSIsIGFzeW5jICgpID0+
IHsKKyAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAg
ICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7J2lkJzogMSwgJ25hbWUnOiAn
V2ViS2l0J30pOworICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBv
c2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk0OCcsICdyZXZpc2lvbl9pZGVudGlmaWVyJzog
JzE4NDI3NkBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMjo1MjozNC41NzdaJywgJ3JlcG9y
dGVkJzogdHJ1ZX0pOworICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21taXRzJywgeydy
ZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk0OScsICdyZXZpc2lvbl9pZGVudGlmaWVy
JzogJzE4NDI3N0BtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMzoyMzo1MC42NDVaJywgJ3Jl
cG9ydGVkJzogdHJ1ZX0pOworICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21taXRzJywg
eydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk1MCcsICdyZXZpc2lvbl9pZGVudGlm
aWVyJzogJzE4NDI3OEBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMzo0OTozNy44ODdaJywg
J3JlcG9ydGVkJzogdHJ1ZX0pOworICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRp
bmdSZXZpc2lvbj0xODQyNzZAbWFpbiZsYXN0UmV2aXNpb249MTg0Mjc4QG1haW4nKTsKKyAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAy
KTsKKyAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsn
Y29tbWl0cyddWzBdLCB7CisgICAgICAgICAgICAgICAgcHJldmlvdXNDb21taXQ6IG51bGwsCisg
ICAgICAgICAgICAgICAgcmV2aXNpb246ICcyMTA5NDknLAorICAgICAgICAgICAgICAgIHJldmlz
aW9uSWRlbnRpZmllcjogJzE4NDI4OUBtYWluJywKKyAgICAgICAgICAgICAgICB0aW1lOiAnMjAx
Ny0wMS0yMFQwMzoyMzo1MC42NDVaJywKKyAgICAgICAgICAgICAgICBhdXRob3I6IHtuYW1lOiBu
dWxsLCBhY2NvdW50OiBudWxsfSwKKyAgICAgICAgICAgICAgICBtZXNzYWdlOiBudWxsLAorICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRl
ZChyZXN1bHRbJ2NvbW1pdHMnXVsxXSwgeworICAgICAgICAgICAgICAgIHByZXZpb3VzQ29tbWl0
OiBudWxsLAorICAgICAgICAgICAgICAgIHJldmlzaW9uOiAnMjEwOTUwJywKKyAgICAgICAgICAg
ICAgICByZXZpc2lvbklkZW50aWZpZXI6ICcxODQyOTBAbWFpbicsCisgICAgICAgICAgICAgICAg
dGltZTogJzIwMTctMDEtMjBUMDM6NDk6MzcuODg3WicsCisgICAgICAgICAgICAgICAgYXV0aG9y
OiB7bmFtZTogbnVsbCwgYWNjb3VudDogbnVsbH0sCisgICAgICAgICAgICAgICAgbWVzc2FnZTog
bnVsbCwKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKwogICAgICAgICBpdCgic2hvdWxk
IG5vdCBpbmNsdWRlIGEgcmV2aXNpb24gbm90IHdpdGhpbiB0aGUgc3BlY2lmaWVkIHJhbmdlIiwg
KCkgPT4gewogICAgICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CiAg
ICAgICAgICAgICBjb25zdCByZW1vdGUgPSBUZXN0U2VydmVyLnJlbW90ZUFQSSgpOwpAQCAtNzUw
LDYgKzg1NywyMyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIAorICAgICAgICBpdCgic2hvdWxkIG5vdCBpbmNs
dWRlIGEgcmV2aXNpb24gbm90IHdpdGhpbiB0aGUgc3BlY2lmaWVkIGNvbW1pdCByZXZpc2lvbiBs
YWJlbCByYW5nZSIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNl
cnZlci5kYXRhYmFzZSgpOworICAgICAgICAgICAgY29uc3QgcmVtb3RlID0gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKTsKKyAgICAgICAgICAgIGF3YWl0IGRiLmluc2VydCgncmVwb3NpdG9yaWVzJywg
eydpZCc6IDEsICduYW1lJzogJ1dlYktpdCd9KSwKKyAgICAgICAgICAgIGF3YWl0IGRiLmluc2Vy
dCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6ICcyMTA5NDcnLCAncmV2
aXNpb25faWRlbnRpZmllcic6ICcxODQyNzVAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDI6
Mzg6NDUuNDg1WicsICdyZXBvcnRlZCc6IGZhbHNlfSk7CisgICAgICAgICAgICBhd2FpdCBkYi5p
bnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTQ4Jywg
J3JldmlzaW9uX2lkZW50aWZpZXInOiAnMTg0Mjc2QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIw
VDAyOjUyOjM0LjU3N1onLCAncmVwb3J0ZWQnOiBmYWxzZX0pOworICAgICAgICAgICAgYXdhaXQg
ZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk0
OScsICdyZXZpc2lvbl9pZGVudGlmaWVyJzogJzE4NDI3N0BtYWluJywgJ3RpbWUnOiAnMjAxNy0w
MS0yMFQwMzoyMzo1MC42NDVaJywgJ3JlcG9ydGVkJzogZmFsc2V9KTsKKyAgICAgICAgICAgIGF3
YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6ICcy
MTA5NTAnLCAncmV2aXNpb25faWRlbnRpZmllcic6ICcxODQyNzhAbWFpbicsICd0aW1lJzogJzIw
MTctMDEtMjBUMDM6NDk6MzcuODg3WicsICdyZXBvcnRlZCc6IGZhbHNlfSk7CisgICAgICAgICAg
ICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CisgICAgICAgICAg
ICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycs
IHN1YnZlcnNpb25Db21taXRzKTsKKyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJl
bW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRpbmdSZXZpc2lvbj0xODQy
NzVAbWFpbiZsYXN0UmV2aXNpb249MTg0Mjc3QG1haW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAyKTsKKyAgICAgICAgICAg
IGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBz
dWJ2ZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzBdKTsKKyAgICAgICAgICAgIGFzc2VydENvbW1p
dElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzFdLCBzdWJ2ZXJzaW9uQ29t
bWl0c1snY29tbWl0cyddWzFdKTsKKyAgICAgICAgfSk7CisKICAgICB9KTsKIAogfSk7CmRpZmYg
LS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQt
Y29tbWl0cy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
YXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCmluZGV4IGI0ZWU3MjZmMzU1MzAyYWIxOGQ2Yzcz
NmNiYjQwYzMwYzRiMTg1OWIuLjllNmEwMGE5NzdmYTIxYjk0NGY0OWRjYWYxZTc2ZDc5ZWQ0MzZm
YzEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCkBAIC0yNiw2ICsyNiwyMCBA
QCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIH0KICAgICAgICAgXSwKICAgICB9OworICAgIGNvbnN0IHN1
YnZlcnNpb25Db21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyID0geworICAgICAgICAic2xhdmVO
YW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29y
ZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0
MTk3NyIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxMjcyMzFAbWFp
biIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxMy0wMi0wNlQwODo1NToyMC45WiIsCisg
ICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3Vu
dCI6ICJjb21taXQtcXVldWVAd2Via2l0Lm9yZyJ9LAorICAgICAgICAgICAgICAgICJtZXNzYWdl
IjogInNvbWUgbWVzc2FnZSIsCisgICAgICAgICAgICB9CisgICAgICAgIF0sCisgICAgfTsKICAg
ICBjb25zdCBzdWJ2ZXJzaW9uSW52YWxpZENvbW1pdCA9IHsKICAgICAgICAgInNsYXZlTmFtZSI6
ICJzb21lU2xhdmUiLAogICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLApA
QCAtNzYsNiArOTAsNDQgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5z
ZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIF0KICAgICB9CiAKKyAgICBjb25zdCBk
dXBsaWNhdGVkQ29tbWl0UmV2aXNpb25JZGVudGlmaWVyQ29tbWl0cyA9IHsKKyAgICAgICAgInNs
YXZlTmFtZSI6ICJzb21lU2xhdmUiLAorICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFz
c3dvcmQiLAorICAgICAgICAiY29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6
ICIyMTA5NDgiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0Mjc2
QG1haW4iLAorICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6NTI6MzQuNTc3
WiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJaYWxhbiBCdWp0YXMiLCAi
YWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6
ICJhIG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6
ICIyMTA5NDkiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0Mjc2
QG1haW4iLAorICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1
WiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDaHJpcyBEdW1leiIsICJh
Y2NvdW50IjogImNkdW1lekBhcHBsZS5jb20ifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6
ICJzb21lIG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgXQorICAgIH0KKworICAg
IGNvbnN0IGludmFsaWRDb21taXRSZXZpc2lvbklkZW50aWZpZXJDb21taXRzID0geworICAgICAg
ICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNv
bWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlz
aW9uIjogIjIxMDk0OCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIx
ODQyNzYiLAorICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6NTI6MzQuNTc3
WiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJaYWxhbiBCdWp0YXMiLCAi
YWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6
ICJhIG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgXQorICAgIH0KKwogICAgIGl0
KCJzaG91bGQgcmVqZWN0IGVycm9yIHdoZW4gc2xhdmUgbmFtZSBpcyBtaXNzaW5nIiwgKCkgPT4g
ewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9y
ZXBvcnQtY29tbWl0cy8nLCB7fSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNzaW5nU2xhdmVOYW1lJyk7
CkBAIC0xNDUsNiArMTk3LDIyIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRo
IGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KTsKICAgICB9KTsKIAorICAg
IGl0KCJzaG91bGQgcmVqZWN0IGFuIGludmFsaWQgcmV2aXNpb24gbGFiZWwiLCBhc3luYyAoKSA9
PiB7CisgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXQpOwor
ICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgaW52YWxpZENvbW1pdFJldmlzaW9uSWRlbnRp
ZmllckNvbW1pdHMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1
cyddLCAnSW52YWxpZFJldmlzaW9uSWRlbnRpZmllcicpOworICAgICAgICBjb25zdCByb3dzID0g
YXdhaXQgVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnY29tbWl0cycpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDApOworICAgIH0pOworCisgICAgaXQo
InNob3VsZCByZWplY3Qgd2l0aCBkdXBsaWNhdGVkIGNvbW1pdCByZXZpc2lvbiBsYWJlbHMiLCBh
c3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25D
b21taXQpOworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgZHVwbGljYXRlZENvbW1pdFJl
dmlzaW9uSWRlbnRpZmllckNvbW1pdHMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnRHVwbGljYXRlZFJldmlzaW9uSWRlbnRpZmllcicpOworICAgICAg
ICBjb25zdCByb3dzID0gYXdhaXQgVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnY29t
bWl0cycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDApOworICAg
IH0pOworCiAgICAgaXQoInNob3VsZCBzdG9yZSB0d28gY29tbWl0cyBmcm9tIGEgdmFsaWQgc2xh
dmUiLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9u
VHdvQ29tbWl0cykudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uVHdv
Q29tbWl0cyk7CkBAIC0yMTUsNiArMjgzLDI1IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21t
aXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KTsKICAgICB9
KTsKIAorICAgIGl0KCJzaG91bGQgdXBkYXRlIGFuIGV4aXN0aW5nIGNvbW1pdCB3aXRoIGNvbW1p
dCBsYWJlbCBpZiB0aGVyZSBpcyBvbmUiLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGNvbnN0IGRi
ID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBjb25zdCByZXBvcnRlZERhdGEgPSBz
dWJ2ZXJzaW9uQ29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllci5jb21taXRzWzBdOworICAgICAg
ICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0V2l0aFJldmlzaW9uSWRl
bnRpZmllcik7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6
IDEsICduYW1lJzogJ1dlYktpdCd9KSwKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21taXRz
JywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogcmVwb3J0ZWREYXRhWydyZXZpc2lvbidd
LCAndGltZSc6IHJlcG9ydGVkRGF0YVsndGltZSddfSkKKyAgICAgICAgY29uc3QgcmVzcG9uc2Ug
PSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21t
aXRzLycsIHN1YnZlcnNpb25Db21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGNv
bnN0IGNvbW1pdHMgPSBhd2FpdCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsKKyAgICAgICAgY29u
c3QgY29tbWl0dGVycyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgnY29tbWl0dGVycycpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0dGVycy5sZW5ndGgsIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3NhZ2UnXSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydyZXZpc2lvbl9pZGVudGlmaWVy
J10sIHJlcG9ydGVkRGF0YVsncmV2aXNpb25JZGVudGlmaWVyJ10pOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNbMF1bJ2lkJ10p
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnbmFtZSddLCByZXBv
cnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWydhY2NvdW50
J10pOworICAgIH0pOworCiAgICAgaXQoInNob3VsZCBub3QgdXBkYXRlIGFuIHVucmVsYXRlZCBj
b21taXQiLCAoKSA9PiB7CiAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgp
OwogICAgICAgICBjb25zdCBmaXJzdERhdGEgPSBzdWJ2ZXJzaW9uVHdvQ29tbWl0cy5jb21taXRz
WzBdOwpAQCAtNTkwLDYgKzY3NywxMTEgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMv
IHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT3duZWRDb21taXRTaG91bGROb3RDb250YWlu
VGltZXN0YW1wJyk7CiAgICAgICAgIH0pOwogICAgIH0pOworCisgICAgY29uc3QgaW52YWxpZE93
bmVkQ29tbWl0VXNlUmV2aXNpb25JZGVudGlmaWVyQXNSZXZpc29uID0geworICAgICAgICAic2xh
dmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNz
d29yZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICJyZXBvc2l0b3J5IjogIk9TWCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIlNp
ZXJyYTE2RDMyIiwKKyAgICAgICAgICAgICAgICAib3JkZXIiOiAxLAorICAgICAgICAgICAgICAg
ICJvd25lZENvbW1pdHMiOiB7CisgICAgICAgICAgICAgICAgICAgICJXZWJLaXQiOiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTI3MjMyQG1haW4iLAorICAgICAgICAg
ICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3Vu
dCI6ICJjb21taXQtcXVldWVAd2Via2l0Lm9yZyJ9LAorICAgICAgICAgICAgICAgICAgICAgICAg
Im1lc3NhZ2UiOiAiV2ViS2l0IENvbW1pdCIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIF0KKyAgICB9OworCisgICAgaXQo
InNob3VsZCByZWplY3QgaW5zZXJ0aW5nIG9uZSBjb21taXQgd2l0aCBvd25lZCBjb21taXRzIHRo
YXQgdXNlIHJldmlzaW9uIGxhYmVsIGFzIHJldmlzaW9uIiwgYXN5bmMgKCkgPT4geworICAgICAg
ICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChpbnZhbGlkT3duZWRDb21taXRVc2VSZXZpc2lvbklk
ZW50aWZpZXJBc1Jldmlzb24pOworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgaW52YWxp
ZE93bmVkQ29tbWl0VXNlUmV2aXNpb25JZGVudGlmaWVyQXNSZXZpc29uKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXZpc2lvbicpOwor
ICAgIH0pOworCisgICAgY29uc3QgaW52YWxpZFJldmlzaW9uSWRlbnRpZmllck93bmVkQ29tbWl0
ID0geworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2ZVBh
c3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIk9TWCIsCisgICAgICAgICAgICAg
ICAgInJldmlzaW9uIjogIlNpZXJyYTE2RDMyIiwKKyAgICAgICAgICAgICAgICAib3JkZXIiOiAx
LAorICAgICAgICAgICAgICAgICJvd25lZENvbW1pdHMiOiB7CisgICAgICAgICAgICAgICAgICAg
ICJXZWJLaXQiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTQxOTc4
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTI3MjMy
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1
ZXVlIiwgImFjY291bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmcifSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICJtZXNzYWdlIjogIldlYktpdCBDb21taXQiLAorICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICBdCisgICAg
fTsKKworICAgIGl0KCJzaG91bGQgcmVqZWN0IGluc2VydGluZyBvbmUgY29tbWl0IHdpdGggb3du
ZWQgY29tbWl0cyB0aGF0IGhhdmUgaW52YWxpZCByZXZpc2lvbiBsYWJlbCIsIGFzeW5jICgpID0+
IHsKKyAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoaW52YWxpZFJldmlzaW9uSWRlbnRp
Zmllck93bmVkQ29tbWl0KTsKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGludmFsaWRS
ZXZpc2lvbklkZW50aWZpZXJPd25lZENvbW1pdCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmV2aXNpb25JZGVudGlmaWVyJyk7CisgICAg
fSk7CisKKyAgICBjb25zdCBpbnZhbGlkQXV0aG9yT3duZWRDb21taXQgPSB7CisgICAgICAgICJz
bGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBh
c3N3b3JkIiwKKyAgICAgICAgImNvbW1pdHMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgInJlcG9zaXRvcnkiOiAiT1NYIiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAi
U2llcnJhMTZEMzIiLAorICAgICAgICAgICAgICAgICJvcmRlciI6IDEsCisgICAgICAgICAgICAg
ICAgIm93bmVkQ29tbWl0cyI6IHsKKyAgICAgICAgICAgICAgICAgICAgIldlYktpdCI6IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNDE5NzgiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxMjcyMzJAbWFpbiIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAiYXV0aG9yIjogbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICJtZXNzYWdlIjogIldlYktpdCBDb21taXQiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICBdCisgICAgfTsKKyAgICBpdCgi
c2hvdWxkIHJlamVjdCBpbnNlcnRpbmcgb25lIGNvbW1pdCB3aXRoIG93bmVkIGNvbW1pdHMgdGhh
dCBoYXZlIGludmFsaWQgYXV0aG9yIiwgYXN5bmMgKCkgPT4geworICAgICAgICBhd2FpdCBhZGRT
bGF2ZUZvclJlcG9ydChpbnZhbGlkQXV0aG9yT3duZWRDb21taXQpOworICAgICAgICBjb25zdCBy
ZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVw
b3J0LWNvbW1pdHMvJywgaW52YWxpZEF1dGhvck93bmVkQ29tbWl0KTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRBdXRob3JGb3JtYXQnKTsK
KyAgICB9KTsKKworICAgIGNvbnN0IG93bmVkQ29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllciA9
IHsKKyAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAorICAgICAgICAic2xhdmVQYXNz
d29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAiY29tbWl0cyI6IFsKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJPU1giLAorICAgICAgICAgICAgICAg
ICJyZXZpc2lvbiI6ICJTaWVycmExNkQzMiIsCisgICAgICAgICAgICAgICAgIm9yZGVyIjogMSwK
KyAgICAgICAgICAgICAgICAib3duZWRDb21taXRzIjogeworICAgICAgICAgICAgICAgICAgICAi
V2ViS2l0IjogeworICAgICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3OCIs
CisgICAgICAgICAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjEyNzIzMkBt
YWluIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0
IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmcifSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIldlYktpdCBDb21taXQiLAorICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICBdCisg
ICAgfTsKKworICAgIGl0KCJzaG91bGQgaW5zZXJ0IG9uZSBjb21taXQgd2l0aCBjb21taXQgcmV2
aXNpb24gbGFiZWwiLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVw
b3J0KG93bmVkQ29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcik7CisgICAgICAgIGNvbnN0IHJl
c3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBv
cnQtY29tbWl0cy8nLCBvd25lZENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAg
Y29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIGNvbnN0IGNvbW1pdCA9
IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7J3JldmlzaW9uJzogJzE0MTk3OCd9KTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFswXS5yZXZpc2lvbl9pZGVudGlmaWVy
LCBvd25lZENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIuY29tbWl0c1swXS5vd25lZENvbW1p
dHNbJ1dlYktpdCddLnJldmlzaW9uSWRlbnRpZmllcik7CisgICAgfSk7CiB9KTsKIAogZGVzY3Jp
YmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PWZhbHNlIiwgZnVuY3Rpb24gKCkg
ewpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
cmVwb3J0LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9h
cGktcmVwb3J0LXRlc3RzLmpzCmluZGV4IDVjNDQ1ZmVmYzBkNzIwNGMwYmI1YTE2ZTAyY2Y2MTM3
MmZmM2ZiNjkuLmM1YTJhMmVlYzBiMzFhOGMzMGJhZDk2ZTkwMzA0NmMzOTA2ZGJlZTMgMTAwNjQ0
Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10
ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1y
ZXBvcnQtdGVzdHMuanMKQEAgLTc3LDYgKzc3LDI5IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgfTsKICAgICB9CiAKKyAgICBmdW5jdGlvbiByZXBvcnRX
aXRoUmV2aXNpb25JZGVudGlmaWVyQ29tbWl0KCkKKyAgICB7CisgICAgICAgIHJldHVybiB7Cisg
ICAgICAgICAgICAiYnVpbGRUYWciOiAiMTIzIiwKKyAgICAgICAgICAgICJidWlsZFRpbWUiOiAi
MjAxMy0wMi0yOFQxMDoxMjowMy4zODgzMDQiLAorICAgICAgICAgICAgImJ1aWxkZXJOYW1lIjog
InNvbWVCdWlsZGVyIiwKKyAgICAgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAg
ICAgICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgICAg
ICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKKyAgICAgICAgICAgICJ0ZXN0cyI6IHt9LAor
ICAgICAgICAgICAgInJldmlzaW9ucyI6IHsKKyAgICAgICAgICAgICAgICAibWFjT1MiOiB7Cisg
ICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxMC44LjIgMTJDNjAiCisgICAgICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAgICAg
ICAicmV2aXNpb24iOiAiMTQxOTc3IiwKKyAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uSWRl
bnRpZmllciI6ICIxMjcyMzFAbWFpbiIsCisgICAgICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAi
OiAiMjAxMy0wMi0wNlQwODo1NToyMC45WiIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisgICAgICAgIH07CisgICAgfQorCiAgICAgZnVuY3Rpb24gZW1wdHlTbGF2ZVJlcG9ydCgp
CiAgICAgewogICAgICAgICByZXR1cm4gewpAQCAtMzUxLDYgKzM3NCwzNyBAQCBkZXNjcmliZSgi
L2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pOwogICAgIH0pOwogCisgICAg
aXQoInNob3VsZCBhZGQgcmV2aXNpb24gbGFiZWwiLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3
YWl0IGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uSWRlbnRpZmllckNvbW1p
dCgpKTsKKyAgICAgICAgYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2Fw
aS9yZXBvcnQvJywgW3JlcG9ydFdpdGhSZXZpc2lvbklkZW50aWZpZXJDb21taXQoKV0pOworICAg
ICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgY29uc3QgcmVw
b3NpdG9yaWVzID0gYXdhaXQgZGIuc2VsZWN0QWxsKCdyZXBvc2l0b3JpZXMnKTsKKyAgICAgICAg
Y29uc3QgY29tbWl0cyA9ICBhd2FpdCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsKKyAgICAgICAg
Y29uc3QgYnVpbGRDb21taXRzUmVsYXRpb25zID0gYXdhaXQgIGRiLnNlbGVjdEFsbCgnYnVpbGRf
Y29tbWl0cycsICdidWlsZF9jb21taXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cG9zaXRvcmllcy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJl
cG9zaXRvcmllcy5tYXAoKHJvdykgPT4gcm93WyduYW1lJ10pLnNvcnQoKSwgWydXZWJLaXQnLCAn
bWFjT1MnXSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAy
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9ucy5sZW5n
dGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRzUmVsYXRpb25z
WzBdWydidWlsZF9jb21taXQnXSwgY29tbWl0c1swXVsnaWQnXSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNbMV1bJ2J1aWxkX2NvbW1pdCddLCBjb21t
aXRzWzFdWydpZCddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkQ29tbWl0c1Jl
bGF0aW9uc1swXVsnY29tbWl0X2J1aWxkJ10sIGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1sxXVsnY29t
bWl0X2J1aWxkJ10pOworCisgICAgICAgIGxldCByZXBvc2l0b3J5SWRUb05hbWUgPSB7fTsKKyAg
ICAgICAgZm9yIChsZXQgcmVwb3NpdG9yeSBvZiByZXBvc2l0b3JpZXMpCisgICAgICAgICAgICBy
ZXBvc2l0b3J5SWRUb05hbWVbcmVwb3NpdG9yeVsnaWQnXV0gPSByZXBvc2l0b3J5WyduYW1lJ107
CisKKyAgICAgICAgbGV0IHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvdyA9IHt9OworICAgICAg
ICBmb3IgKGxldCBjb21taXQgb2YgY29tbWl0cykKKyAgICAgICAgICAgIHJlcG9zaXRvcnlOYW1l
VG9SZXZpc2lvblJvd1tyZXBvc2l0b3J5SWRUb05hbWVbY29tbWl0WydyZXBvc2l0b3J5J11dXSA9
IGNvbW1pdDsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeU5hbWVUb1Jl
dmlzaW9uUm93WydtYWNPUyddWydyZXZpc2lvbiddLCAnMTAuOC4yIDEyQzYwJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktpdCdd
WydyZXZpc2lvbiddLCAnMTQxOTc3Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBv
c2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktpdCddWydyZXZpc2lvbl9pZGVudGlmaWVyJ10s
ICcxMjcyMzFAbWFpbicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeU5h
bWVUb1JldmlzaW9uUm93WydXZWJLaXQnXVsndGltZSddLnRvU3RyaW5nKCksCisgICAgICAgICAg
ICBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7CisgICAgfSk7
CisKICAgICBpdCgic2hvdWxkIG5vdCBjcmVhdGUgYSBkdXBsaWNhdGUgYnVpbGQgZm9yIHRoZSBz
YW1lIGJ1aWxkIG51bWJlciBpZiBidWlsZCB0aW1lcyBhcmUgY2xvc2UiLCAoKSA9PiB7CiAgICAg
ICAgIGNvbnN0IGZpcnN0UmVwb3J0ID0gZW1wdHlSZXBvcnQoKTsKICAgICAgICAgZmlyc3RSZXBv
cnRbJ2J1aWxkVGltZSddID0gJzIwMTMtMDItMjhUMTA6MTI6MDQnOwpkaWZmIC0tZ2l0IGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVzdC1zZXJ2ZXIu
Y29uZiBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3Rl
c3Qtc2VydmVyLmNvbmYKaW5kZXggOTM2YjRmNGJmYWZmMDdlZGIwMzU4MzNjNDYzZWUxNjliZmMx
NWExMS4uY2E1NTRiMTdmZDU5NDRlZGU3MWVjMWM3M2EzOWU5MGFhMGRiMzAyMCAxMDA2NDQKLS0t
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVzdC1z
ZXJ2ZXIuY29uZgorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jl
c291cmNlcy90ZXN0LXNlcnZlci5jb25mCkBAIC0xLDYgKzEsOCBAQAogU2VydmVyUm9vdCAiL3Vz
ciIKIExpc3RlbiA4MDgwCiAKK0xvYWRNb2R1bGUgbXBtX3ByZWZvcmtfbW9kdWxlIGxpYmV4ZWMv
YXBhY2hlMi9tb2RfbXBtX3ByZWZvcmsuc28KK0xvYWRNb2R1bGUgcGhwN19tb2R1bGUgL3Vzci9s
b2NhbC9DZWxsYXIvcGhwQDcuNC83LjQuMTYvbGliL2h0dHBkL21vZHVsZXMvbGlicGhwNy5zbwog
TG9hZE1vZHVsZSBhdXRobl9jb3JlX21vZHVsZSBsaWJleGVjL2FwYWNoZTIvbW9kX2F1dGhuX2Nv
cmUuc28KIExvYWRNb2R1bGUgYXV0aHpfY29yZV9tb2R1bGUgbGliZXhlYy9hcGFjaGUyL21vZF9h
dXRoel9jb3JlLnNvCiBMb2FkTW9kdWxlIGRlZmxhdGVfbW9kdWxlIGxpYmV4ZWMvYXBhY2hlMi9t
b2RfZGVmbGF0ZS5zbwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQt
dGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0
LXRlc3RzL2NvbW1pdC1sb2ctdGVzdHMuanMKaW5kZXggNzBhYmRlYmY4MWU4YWI2MGQxZDE4MTYz
ZTM5OTE4NzljYjQ3MzhiNi4uOTBhNTRiNjI5ZmJjYTEyMmFmODBiZWFmYWE5OGI4YjBkYzkyODVh
OCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY29tbWl0
LWxvZy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9j
b21taXQtbG9nLXRlc3RzLmpzCkBAIC0xNyw2ICsxNywxNyBAQCBmdW5jdGlvbiB3ZWJraXRDb21t
aXQoKQogICAgIH0pOwogfQogCitmdW5jdGlvbiB3ZWJraXRDb21taXRXaXRoUmV2aXNpb25JZGVu
dGlmaWVyKCkgCit7CisgICAgcmV0dXJuIG5ldyBDb21taXRMb2coMSwgeworICAgICAgICBpZDog
MSwKKyAgICAgICAgcmVwb3NpdG9yeTogTW9ja01vZGVscy53ZWJraXQsCisgICAgICAgIHJldmlz
aW9uOiAnMjAwODA1JywKKyAgICAgICAgcmV2aXNpb25JZGVudGlmaWVyOiAnMTg0Mjc2QG1haW4n
LAorICAgICAgICB0aW1lOiArKG5ldyBEYXRlKCcyMDE2LTA1LTEzVDAwOjU1OjU3Ljg0MTM0NFon
KSksCisgICAgfSk7Cit9CisKIGZ1bmN0aW9uIG9sZFdlYktpdENvbW1pdCgpCiB7CiAgICAgcmV0
dXJuIG5ldyBDb21taXRMb2coMiwgewpAQCAtMjcsNiArMzgsMTcgQEAgZnVuY3Rpb24gb2xkV2Vi
S2l0Q29tbWl0KCkKICAgICB9KTsKIH0KIAorZnVuY3Rpb24gb2xkV2ViS2l0Q29tbWl0V2l0aFJl
dmlzaW9uSWRlbnRpZmllcigpCit7CisgICAgcmV0dXJuIG5ldyBDb21taXRMb2coMiwgeworICAg
ICAgICBpZDogMiwKKyAgICAgICAgcmVwb3NpdG9yeTogTW9ja01vZGVscy53ZWJraXQsCisgICAg
ICAgIHJldmlzaW9uOiAnMjAwNTc0JywKKyAgICAgICAgcmV2aXNpb25JZGVudGlmaWVyOiAnMTc1
NjA1QG1haW4nLAorICAgICAgICB0aW1lOiArKG5ldyBEYXRlKCcyMDE2LTA1LTA5VDE0OjU5OjIz
LjU1Mzc2N1onKSksCisgICAgfSk7Cit9CisKIGZ1bmN0aW9uIGdpdFdlYktpdENvbW1pdCgpCiB7
CiAgICAgcmV0dXJuIG5ldyBDb21taXRMb2coMywgewpAQCAtMzcsNiArNTksMTcgQEAgZnVuY3Rp
b24gZ2l0V2ViS2l0Q29tbWl0KCkKICAgICB9KTsKIH0KIAorZnVuY3Rpb24gZ2l0V2ViS2l0Q29t
bWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpCit7CisgICAgcmV0dXJuIG5ldyBDb21taXRMb2co
MywgeworICAgICAgICBpZDogMywKKyAgICAgICAgcmVwb3NpdG9yeTogTW9ja01vZGVscy53ZWJr
aXQsCisgICAgICAgIHJldmlzaW9uOiAnNmY4YjBkYmJkYTk1YTQ0MDUwM2I4OGRiMWRkMDNkYWQz
YTdiMDdmYicsCisgICAgICAgIHJldmlzaW9uSWRlbnRpZmllcjogJzE4NDI3NkBtYWluJywKKyAg
ICAgICAgdGltZTogKyhuZXcgRGF0ZSgnMjAxNi0wNS0xM1QwMDo1NTo1Ny44NDEzNDRaJykpLAor
ICAgIH0pOworfQorCiBmdW5jdGlvbiBvbGRHaXRXZWJLaXRDb21taXQoKQogewogICAgIHJldHVy
biBuZXcgQ29tbWl0TG9nKDQsIHsKQEAgLTQ3LDYgKzgwLDE3IEBAIGZ1bmN0aW9uIG9sZEdpdFdl
YktpdENvbW1pdCgpCiAgICAgfSk7CiB9CiAKK2Z1bmN0aW9uIG9sZEdpdFdlYktpdENvbW1pdFdp
dGhSZXZpc2lvbklkZW50aWZpZXIoKQoreworICAgIHJldHVybiBuZXcgQ29tbWl0TG9nKDQsIHsK
KyAgICAgICAgaWQ6IDQsCisgICAgICAgIHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMud2Via2l0LAor
ICAgICAgICByZXZpc2lvbjogJ2ZmZGExNGU2ZGIwNzQ2ZDEwZDBmMDUwOTA3ZTRhNzMyNTg1MWU1
MDInLAorICAgICAgICByZXZpc2lvbklkZW50aWZpZXI6ICcxNzU2MDVAbWFpbicsCisgICAgICAg
IHRpbWU6ICsobmV3IERhdGUoJzIwMTYtMDUtMDlUMTQ6NTk6MjMuNTUzNzY3WicpKSwKKyAgICB9
KTsKK30KKwogZnVuY3Rpb24gb3N4Q29tbWl0KCkKIHsKICAgICByZXR1cm4gbmV3IENvbW1pdExv
Zyg1LCB7CkBAIC0xNDcsMTAgKzE5MSwxOCBAQCBkZXNjcmliZSgnQ29tbWl0TG9nJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdENvbW1pdCgpLmxhYmVsKCks
ICdyMjAwODA1Jyk7CiAgICAgICAgIH0pOwogCi0gICAgICAgIGl0KCdzaG91bGQgdHJ1bmNhdGUg
YSBHaXQgaGFzaCBhdCA4dGggY2hhcmFjdGVyJywgZnVuY3Rpb24gKCkgeworICAgICAgICBpdCgn
c2hvdWxkIGRpc3BsYXkgcmV2aXNpb24gbGFiZWwgZm9sbG93ZWQgYnkgc3ZuIHJlZml4ZWQgd2l0
aCAiciInLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Q29t
bWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpLmxhYmVsKCksICcxODQyNzZAbWFpbiAocjIwMDgw
NSknKQorICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHRydW5jYXRlIGEgR2l0IGhh
c2ggYXQgMTJ0aCBjaGFyYWN0ZXInLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZ2l0V2ViS2l0Q29tbWl0KCkubGFiZWwoKSwgJzZmOGIwZGJiZGE5NScpOwogICAgICAg
ICB9KTsKIAorICAgICAgICBpdCgnc2hvdWxkIGRpc3BsYXkgcmV2aXNpb24gbGFiZWwgZm9sbG93
ZWQgYnkgZ2l0IGhhc2ggdHJ1bmNhdGVkJywgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGdpdFdlYktpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKS5sYWJlbCgp
LCAnMTg0Mjc2QG1haW4gKDZmOGIwZGJiZGE5NSknKQorICAgICAgICB9KTsKKwogICAgICAgICBp
dCgnc2hvdWxkIG5vdCBtb2RpZnkgT1MgWCB2ZXJzaW9uJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdCgpLmxhYmVsKCksICcxMC4xMS40IDE1RTY1Jyk7
CiAgICAgICAgIH0pOwpAQCAtMTYxLDEwICsyMTMsMTggQEAgZGVzY3JpYmUoJ0NvbW1pdExvZycs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRDb21taXQoKS50
aXRsZSgpLCAnV2ViS2l0IGF0IHIyMDA4MDUnKTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgaXQo
J3Nob3VsZCB0cnVuY2F0ZSBhIEdpdCBoYXNoIGF0IDh0aCBjaGFyYWN0ZXInLCBmdW5jdGlvbiAo
KSB7CisgICAgICAgIGl0KCdzaG91bGQgaW5jbHVkZSByZXZpc2lvbiBsYWJlbCcsICgpID0+IHsK
KyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRDb21taXRXaXRoUmV2aXNpb25J
ZGVudGlmaWVyKCkudGl0bGUoKSwgJ1dlYktpdCBhdCAxODQyNzZAbWFpbiAocjIwMDgwNSknKTsK
KyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCB0cnVuY2F0ZSBhIEdpdCBoYXNoIGF0
IDEydGggY2hhcmFjdGVyJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGdpdFdlYktpdENvbW1pdCgpLnRpdGxlKCksICdXZWJLaXQgYXQgNmY4YjBkYmJkYTk1Jyk7CiAg
ICAgICAgIH0pOwogCisgICAgICAgIGl0KCdzaG91bGQgZGlzcGxheSByZXZpc2lvbiBsYWJlbCBm
b2xsb3dlZCBieSBnaXQgaGFzaCB0cnVuY2F0ZWQnLCAgKCkgPT4geworICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGdpdFdlYktpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKS50
aXRsZSgpLCAnV2ViS2l0IGF0IDE4NDI3NkBtYWluICg2ZjhiMGRiYmRhOTUpJyk7CisgICAgICAg
IH0pOworCiAgICAgICAgIGl0KCdzaG91bGQgbm90IG1vZGlmeSBPUyBYIHZlcnNpb24nLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0KCkudGl0bGUoKSwg
J09TIFggYXQgMTAuMTEuNCAxNUU2NScpOwogICAgICAgICB9KTsKQEAgLTIyMyw2ICsyODMsMzEg
QEAgZGVzY3JpYmUoJ0NvbW1pdExvZycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBy
ZXBvc2l0b3J5OiBNb2NrTW9kZWxzLm9zeAogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwor
CisgICAgICAgIGl0KCdzaG91bGQgZGlzcGxheSByZXZpc2lvbiBsYWJlbCBmb2xsb3dlZCB3aXRo
IHJldmlzb24gYW5kICBjb25uZWN0IHdpdGggIi0iLCBpZiBib3RoIGhhdmUgcmV2aXNpb24gbGFi
ZWwnLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHdlYmtpdENv
bW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKS5kaWZmKG9sZFdlYktpdENvbW1pdFdpdGhSZXZp
c2lvbklkZW50aWZpZXIoKSksIHsKKyAgICAgICAgICAgICAgICBsYWJlbDogJzE3NTYwNS0xODQy
NzZAbWFpbiAocjIwMDU3NC1yMjAwODA1KScsCisgICAgICAgICAgICAgICAgdXJsOiAnJywKKyAg
ICAgICAgICAgICAgICByZXBvc2l0b3J5OiBNb2NrTW9kZWxzLndlYmtpdAorICAgICAgICAgICAg
fSkKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBkaXNwbGF5IHJldmlzaW9uIGxh
YmVsIGZvbGxvd2VkIHdpdGggcmV2aXNvbiBhbmQgIGNvbm5lY3Qgd2l0aCAiLSIsIGlmIGJvdGgg
aGF2ZSByZXZpc2lvbiBsYWJlbCcsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoZ2l0V2ViS2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpLmRpZmYob2xk
R2l0V2ViS2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpKSwgeworICAgICAgICAgICAg
ICAgIGxhYmVsOiAnMTc1NjA1LTE4NDI3NkBtYWluIChmZmRhMTRlNmRiMDcuLjZmOGIwZGJiZGE5
NSknLAorICAgICAgICAgICAgICAgIHVybDogJycsCisgICAgICAgICAgICAgICAgcmVwb3NpdG9y
eTogTW9ja01vZGVscy53ZWJraXQKKyAgICAgICAgICAgIH0pCisgICAgICAgIH0pOworCisgICAg
ICAgIGl0KCdzaG91bGQgY29udGFpbiByZXZpc2lvbiBsYWJlbCwgaWYgb25lIG9mIHRoZSBjb21t
aXRzIGRvZXNuYHQgaGF2ZSB0aGUgcmV2aXNpb24gbGFiZWwnLCAoKSA9PiB7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHdlYmtpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZp
ZXIoKS5kaWZmKG9sZFdlYktpdENvbW1pdCgpKSwgeworICAgICAgICAgICAgICAgIGxhYmVsOiAn
cjIwMDU3NCAtIDE4NDI3NkBtYWluIChyMjAwODA1KScsCisgICAgICAgICAgICAgICAgdXJsOiAn
JywKKyAgICAgICAgICAgICAgICByZXBvc2l0b3J5OiBNb2NrTW9kZWxzLndlYmtpdAorICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0pOworCiAgICAgfSk7CiAKICAgICBkZXNjcmliZSgnaGFzT3Jk
ZXJpbmcnLCAoKSA9PiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424437</attachid>
            <date>2021-03-26 20:21:44 -0700</date>
            <delta_ts>2021-03-26 21:50:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222897-20210326202143.patch</filename>
            <type>text/plain</type>
            <size>53092</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MDYxCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1YTg1MWZkODI1NTA1YjQzMGFkNzg3ODZhNTQ1NzI0MzUwNTg0Zjc1Li4zNTA5NTFlOGRk
NWI2YzUyMzkwYWFiYjVmZGI5YTA0OTkxNWY2ZDY0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAyMS0wMy0xMCAgWmhpZmVpIEZhbmcgIDx6aGlmZWlf
ZmFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGNvbW1pdCByZXZpc2lvbiBsYWJlbCBzdXBw
b3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI4
OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
bmV3IGNvbHVtbiByZXZpc2lvbiBsYWJlbC4KKyAgICAgICAgTWFrZSBhbGwgY29tbWl0IGFwaSBh
bHNvIGNhbiB3b3JrIHdpdGggcmV2aXNpb24gbGFiZWwuCisgICAgICAgIENoYW5nZSB0aGUgY29t
bWl0IGxhYmVsIGRpc3BsYXkgd2l0aCBjb21taXQgcmV2aXNpb24gbGFiZWwuCisKKyAgICAgICAg
KiBicm93c2VyLXRlc3RzL2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzOiBGaXggYSBmYWlsZWQg
dGVzdCBjYXNlLCB3aGlsZSByZXF1ZXN0aW5nIHRoZSByZW1vdGUgYXBpLCAKKyAgICAgICAgd2Ug
c2hvdWxkIHdhaXQgZm9yIHRob3NlIHByb21pc2VzIHJlc29sdmVkIGFuZCB0aGVuIHdhaXQgZm9y
IGNvbW1wb25lbnQgdG8gcmVuZGVyLgorICAgICAgICAqIGluaXQtZGF0YWJhc2Uuc3FsOiBBZGQg
bmV3IGNvbHVtbiByZXZpc2lvbl9pZGVudGlmaWVyLgorICAgICAgICAqIG1pZ3JhdGUtZGF0YWJh
c2Uuc3FsOiBBZGQgbmV3IGNvbHVtbiByZXZpc2lvbl9pZGVudGlmaWVyLgorICAgICAgICAqIHB1
YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHA6IE1ha2UgYXBpIHRoYXQgd29ya3Mg
d2l0aCByZXZpc2lvbiBzaG91bGQgd29yayB3aXRoIHJldmlzaW9uIGxhYmVsLgorICAgICAgICAq
IHB1YmxpYy9pbmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocDogRGl0dG8uCisgICAgICAgICogcHVi
bGljL2luY2x1ZGUvcmVwb3J0LXByb2Nlc3Nvci5waHA6IE1ha2UgdGhlIHByb2Nlc3NvciBjYW4g
YWxzbyBpbnNlcnQgcmV2aXNpb24gbGFiZWwuCisgICAgICAgICogcHVibGljL3YzL21vZGVscy9j
b21taXQtbG9nLmpzOgorICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS51cGRhdGVTaW5nbGV0
b24pOgorICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS5yZXZpc2lvbklkZW50aWZpZXIpOgor
ICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS5sYWJlbCk6IE1ha2UgdGhlIGxhYmVsIGluY2x1
ZGUgcmV2aXNpb24gbGFiZWwgYW5kIHJldmlzaW9uLgorICAgICAgICAoQ29tbWl0TG9nLnByb3Rv
dHlwZS5kaWZmKTogTWFrZSB0aGUgZGlmZiBsYWJlbCBpbmNsdWRlIHJldmlzaW9uIGxhYmVsIGFu
ZCByZXZpc2lvbi4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanM6
CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtY29tbWl0cy10ZXN0cy5qczoKKyAg
ICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qczoKKyAgICAgICAgKHJlcG9y
dFdpdGhSZXZpc2lvbklkZW50aWZpZXJDb21taXQpOgorICAgICAgICAqIHVuaXQtdGVzdHMvY29t
bWl0LWxvZy10ZXN0cy5qczoKKwogMjAyMS0wMy0wNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbcGVyZiBkYXNoYm9hcmRdIE1vZGVybml6ZSBUaW1lU2VyaWVz
IGFuZCBUaW1lU2VyaWVzVmlldwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L2Jyb3dzZXItdGVzdHMvY29tbWl0LWxvZy12aWV3ZXItdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcwppbmRl
eCBkYmM0Y2ZjZDliYzIxNGI3MDhlZTE5OGYxZWE2NjVmMjI0MjI4NTYwLi5mODQ4OWU3Y2FjNDRl
MjMwMjBmN2U4ZjJjZTY0NDdhN2EyYzQyZjhiIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcworKysgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10
ZXN0cy5qcwpAQCAtNTUsNiArNTUsMTkgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZ1ZpZXdlcicsICgp
ID0+IHsKICAgICAgICAgIm1lc3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdlIiwKICAgICB9OwogCisg
ICAgY29uc3Qgd2Via2l0Q29tbWl0MjEwOTUwV2l0aFJldmlzaW9uSWRlbnRpZmllciA9IHsKKyAg
ICAgICAgImlkIjogIjE4NTMzOCIsCisgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NTAiLAorICAg
ICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3OEBtYWluIiwKKyAgICAgICAgInJlcG9z
aXRvcnkiOiAxLAorICAgICAgICAicHJldmlvdXNDb21taXQiOiBudWxsLAorICAgICAgICAib3du
c0NvbW1pdHMiOiBmYWxzZSwKKyAgICAgICAgInRpbWUiOiArbmV3IERhdGUoIjIwMTctMDEtMjBU
MDM6NDk6MzcuODg3WiIpLAorICAgICAgICAiYXV0aG9yTmFtZSI6ICJDb21taXQgUXVldWUiLAor
ICAgICAgICAiYXV0aG9yRW1haWwiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmciLAorICAgICAg
ICAibWVzc2FnZSI6ICJhbm90aGVyIG1lc3NhZ2UiLAorICAgIH07CisKICAgICBpdCgnc2hvdWxk
IGluaXRpYWxseSBiZSBlbXB0eSB3aXRoIG5vIHNwaW5uZXInLCAoKSA9PiB7CiAgICAgICAgIGNv
bnN0IGNvbnRleHQgPSBuZXcgQnJvd3NpbmdDb250ZXh0KCk7CiAgICAgICAgIHJldHVybiBpbXBv
cnRDb21taXRMb2dWaWV3ZXIoY29udGV4dCkudGhlbigoQ29tbWl0TG9nVmlld2VyKSA9PiB7CkBA
IC0xMjksOSArMTQyLDkgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZ1ZpZXdlcicsICgpID0+IHsKICAg
ICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIiwKICAgICAgICAgICAgICAgICAiY29tbWl0cyI6
IFt3ZWJraXRDb21taXQyMTA5NDhdLAogICAgICAgICAgICAgfSk7Ci0KKyAgICAgICAgICAgIGF3
YWl0IHJlcXVlc3RzWzBdLnByb21pc2U7CisgICAgICAgICAgICBhd2FpdCByZXF1ZXN0c1sxXS5w
cm9taXNlOwogICAgICAgICAgICAgYXdhaXQgd2FpdEZvckNvbXBvbmVudHNUb1JlbmRlcihjb250
ZXh0KTsKLQogICAgICAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdzcGlubmVyLWNvbnRh
aW5lcicpLm9mZnNldEhlaWdodCkudG8uYmUoMCk7CiAgICAgICAgICAgICBleHBlY3Qodmlld2Vy
LmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLm1hdGNoZXMoJzplbXB0eScpKS50by5iZShmYWxzZSk7
CiAgICAgICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLnRleHRD
b250ZW50KS50by5jb250YWluKCdyMjEwOTQ5Jyk7CkBAIC0xNDQsNCArMTU3LDQ3IEBAIGRlc2Ny
aWJlKCdDb21taXRMb2dWaWV3ZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogICAgIH0pOwogCisg
ICAgaXQoJ3Nob3VsZCBzaG93IHJldmlzaW9uIGxhYmVsJywgYXN5bmMgKCkgPT4geworICAgICAg
ICBjb25zdCBjb250ZXh0ID0gbmV3IEJyb3dzaW5nQ29udGV4dCgpOworICAgICAgICBjb25zdCBD
b21taXRMb2dWaWV3ZXIgPSBhd2FpdCBpbXBvcnRDb21taXRMb2dWaWV3ZXIoY29udGV4dCk7Cisg
ICAgICAgIGNvbnN0IFJlcG9zaXRvcnkgPSBjb250ZXh0LnN5bWJvbHMuUmVwb3NpdG9yeTsKKyAg
ICAgICAgY29uc3QgcmVxdWVzdHMgPSBjb250ZXh0LnN5bWJvbHMuUmVtb3RlQVBJLnJlcXVlc3Rz
OworICAgICAgICBjb25zdCB2aWV3ZXIgPSBuZXcgQ29tbWl0TG9nVmlld2VyOworICAgICAgICBj
b25zdCB3ZWJraXQgPSBuZXcgUmVwb3NpdG9yeSgxLCB7bmFtZTogJ1dlYktpdCd9KTsKKyAgICAg
ICAgY29udGV4dC5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZXdlci5lbGVtZW50KCkpOwor
CisgICAgICAgIHZpZXdlci5lbnF1ZXVlVG9SZW5kZXIoKTsKKyAgICAgICAgYXdhaXQgd2FpdEZv
ckNvbXBvbmVudHNUb1JlbmRlcihjb250ZXh0KTsKKworICAgICAgICB2aWV3ZXIudmlldyh3ZWJr
aXQsICcyMTA5NDgnLCAnMjEwOTUwJyk7CisgICAgICAgIGF3YWl0IHdhaXRGb3JDb21wb25lbnRz
VG9SZW5kZXIoY29udGV4dCk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnc3Bpbm5l
ci1jb250YWluZXInKS5vZmZzZXRIZWlnaHQpLnRvLm5vdC5iZSgwKTsKKyAgICAgICAgZXhwZWN0
KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxpc3QnKS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUo
dHJ1ZSk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgncmVwb3NpdG9yeS1uYW1lJyku
bWF0Y2hlcygnOmVtcHR5JykpLnRvLmJlKGZhbHNlKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5j
b250ZW50KCdyZXBvc2l0b3J5LW5hbWUnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignV2ViS2l0
Jyk7CisgICAgICAgIGV4cGVjdChyZXF1ZXN0cy5sZW5ndGgpLnRvLmJlKDIpOworICAgICAgICBl
eHBlY3QocmVxdWVzdHNbMF0udXJsKS50by5iZSgnL2FwaS9jb21taXRzLzEvP3ByZWNlZGluZ1Jl
dmlzaW9uPTIxMDk0OCZsYXN0UmV2aXNpb249MjEwOTUwJyk7CisgICAgICAgIGV4cGVjdChyZXF1
ZXN0c1sxXS51cmwpLnRvLmJlKCcvYXBpL2NvbW1pdHMvMS8yMTA5NDgnKTsKKyAgICAgICAgcmVx
dWVzdHNbMF0ucmVzb2x2ZSh7CisgICAgICAgICAgICAic3RhdHVzIjogIk9LIiwKKyAgICAgICAg
ICAgICJjb21taXRzIjogW3dlYmtpdENvbW1pdDIxMDk0OSwgd2Via2l0Q29tbWl0MjEwOTUwV2l0
aFJldmlzaW9uSWRlbnRpZmllcl0sCisgICAgICAgIH0pOworCisgICAgICAgIHJlcXVlc3RzWzFd
LnJlc29sdmUoeworICAgICAgICAgICAgInN0YXR1cyI6ICJPSyIsCisgICAgICAgICAgICAiY29t
bWl0cyI6IFt3ZWJraXRDb21taXQyMTA5NDhdLAorICAgICAgICB9KTsKKworICAgICAgICBhd2Fp
dCByZXF1ZXN0c1swXS5wcm9taXNlOworICAgICAgICBhd2FpdCByZXF1ZXN0c1sxXS5wcm9taXNl
OworICAgICAgICBhd2FpdCB3YWl0Rm9yQ29tcG9uZW50c1RvUmVuZGVyKGNvbnRleHQpOworICAg
ICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ3NwaW5uZXItY29udGFpbmVyJykub2Zmc2V0SGVp
Z2h0KS50by5iZSgwKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxp
c3QnKS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUoZmFsc2UpOworICAgICAgICBleHBlY3Qodmll
d2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLnRleHRDb250ZW50KS50by5jb250YWluKCcxODQy
NzhAbWFpbiAocjIxMDk1MCknKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdjb21t
aXRzLWxpc3QnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignQ29tbWl0IFF1ZXVlJyk7CisgICAg
ICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgncmVwb3NpdG9yeS1uYW1lJykubWF0Y2hlcygnOmVt
cHR5JykpLnRvLmJlKGZhbHNlKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdyZXBv
c2l0b3J5LW5hbWUnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignV2ViS2l0Jyk7CisgICAgICAg
IGV4cGVjdCh2aWV3ZXIuY29udGVudCgnY29tbWl0cy1saXN0JykucXVlcnlTZWxlY3RvcignYScp
KS50by5iZShudWxsKTsKKyAgICB9KTsKKwogfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
aW5pdC1kYXRhYmFzZS5zcWwKaW5kZXggN2ZmYzg5YWQ4MmM3NjEwNDFkMWE1NTZlODNmN2M5Njc4
YTMyZmFjMS4uMGRlY2RjZGM1NWM1YjU2YTViZTBhZDMyMGJmMWUzNWMzNjYxY2VkNCAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbApAQCAtMTAyLDYgKzEwMiw3
IEBAIENSRUFURSBUQUJMRSBjb21taXRzICgKICAgICBjb21taXRfaWQgc2VyaWFsIFBSSU1BUlkg
S0VZLAogICAgIGNvbW1pdF9yZXBvc2l0b3J5IGludGVnZXIgTk9UIE5VTEwgUkVGRVJFTkNFUyBy
ZXBvc2l0b3JpZXMgT04gREVMRVRFIENBU0NBREUsCiAgICAgY29tbWl0X3JldmlzaW9uIHZhcmNo
YXIoNjQpIE5PVCBOVUxMLAorICAgIGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyIHZhcmNoYXIo
NjQpIERFRkFVTFQgTlVMTCwKICAgICBjb21taXRfcHJldmlvdXNfY29tbWl0IGludGVnZXIgUkVG
RVJFTkNFUyBjb21taXRzIE9OIERFTEVURSBDQVNDQURFLAogICAgIGNvbW1pdF90aW1lIHRpbWVz
dGFtcCwKICAgICBjb21taXRfb3JkZXIgaW50ZWdlciwKQEAgLTEwOSw3ICsxMTAsOCBAQCBDUkVB
VEUgVEFCTEUgY29tbWl0cyAoCiAgICAgY29tbWl0X21lc3NhZ2UgdGV4dCwKICAgICBjb21taXRf
cmVwb3J0ZWQgYm9vbGVhbiBOT1QgTlVMTCBERUZBVUxUIEZBTFNFLAogICAgIGNvbW1pdF90ZXN0
YWJpbGl0eSB2YXJjaGFyKDEyOCkgREVGQVVMVCBOVUxMLAotICAgIENPTlNUUkFJTlQgY29tbWl0
X2luX3JlcG9zaXRvcnlfbXVzdF9iZV91bmlxdWUgVU5JUVVFKGNvbW1pdF9yZXBvc2l0b3J5LCBj
b21taXRfcmV2aXNpb24pKTsKKyAgICBDT05TVFJBSU5UIGNvbW1pdF9pbl9yZXBvc2l0b3J5X211
c3RfYmVfdW5pcXVlIFVOSVFVRShjb21taXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uKSwK
KyAgICBDT05TVFJBSU5UIGNvbW1pdF9zdHJpbmdfaWRlbnRpZmllcl9pbl9yZXBvc2l0b3J5X211
c3RfYmVfdW5pcXVlIFVOSVFVRShjb21taXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uX2lk
ZW50aWZpZXIpKTsKIENSRUFURSBJTkRFWCBjb21taXRfdGltZV9pbmRleCBPTiBjb21taXRzKGNv
bW1pdF90aW1lKTsKIENSRUFURSBJTkRFWCBjb21taXRfb3JkZXJfaW5kZXggT04gY29tbWl0cyhj
b21taXRfb3JkZXIpOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWln
cmF0ZS1kYXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWlncmF0ZS1kYXRh
YmFzZS5zcWwKaW5kZXggNDliZDI0OWQyYTY4NTc3NjQ0OWQzNmU4MDUyNjhmY2M0Yjg3N2FjYS4u
ODVkMzU0YzY3ODdmNTg5NThmNGIwMmI0ZDMxYjYyMWI0ZmY1NDJiMiAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL21pZ3JhdGUtZGF0YWJhc2Uuc3FsCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbApAQCAtMyw2ICszLDkgQEAgRE8g
JCQKIEJFR0lOCiBBTFRFUiBUQUJMRSBidWlsZF9yZXF1ZXN0cyBBREQgQ09MVU1OIElGIE5PVCBF
WElTVFMgcmVxdWVzdF9zdGF0dXNfZGVzY3JpcHRpb24gdmFyY2hhcigxMDI0KSBERUZBVUxUIE5V
TEw7CiBBTFRFUiBUQUJMRSBwbGF0Zm9ybXMgQUREIENPTFVNTiAgSUYgTk9UIEVYSVNUUyBwbGF0
Zm9ybV9ncm91cCBpbnRlZ2VyIFJFRkVSRU5DRVMgcGxhdGZvcm1fZ3JvdXBzIERFRkFVTFQgTlVM
TDsKK0FMVEVSIFRBQkxFIGNvbW1pdHMgQUREIENPTFVNTiBJRiBOT1QgRVhJU1RTIGNvbW1pdF9y
ZXZpc2lvbl9pZGVudGlmaWVyIHZhcmNoYXIoNjQpIERFRkFVTFQgTlVMTDsKK0FMVEVSIFRBQkxF
IGNvbW1pdHMgRFJPUCBDT05TVFJBSU5UIGNvbW1pdF9zdHJpbmdfaWRlbnRpZmllcl9pbl9yZXBv
c2l0b3J5X211c3RfYmVfdW5pcXVlOworQUxURVIgVEFCTEUgY29tbWl0cyBBREQgQ09OU1RSQUlO
VCBjb21taXRfc3RyaW5nX2lkZW50aWZpZXJfaW5fcmVwb3NpdG9yeV9tdXN0X2JlX3VuaXF1ZSBV
TklRVUUoY29tbWl0X3JlcG9zaXRvcnksIGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyKTsKIAog
Q1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgcGxhdGZvcm1fZ3JvdXBzICgKICAgICBwbGF0Zm9y
bWdyb3VwX2lkIHNlcmlhbCBQUklNQVJZIEtFWSwKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAK
aW5kZXggNmUwYmVjZDBiYzgxNjRjMDQyZmQzZmIyZjM5OThjNDE1NGZlYjBlMS4uNTA1OGY3MTNl
YWI5ZDA5OGRkMDhjNWUxZWExMmJkZmJmZTczMmE1NiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hl
ci5waHAKQEAgLTgsMTQgKzgsMTYgQEAgY2xhc3MgQ29tbWl0TG9nRmV0Y2hlciB7CiAKICAgICBz
dGF0aWMgZnVuY3Rpb24gZmluZF9jb21taXRfaWRfYnlfcmV2aXNpb24oJGRiLCAkcmVwb3NpdG9y
eV9pZCwgJHJldmlzaW9uKQogICAgIHsKLSAgICAgICAgJGNvbW1pdF9yb3dzID0gJGRiLT5xdWVy
eV9hbmRfZmV0Y2hfYWxsKCdTRUxFQ1QgY29tbWl0X2lkIEZST00gY29tbWl0cyBXSEVSRSBjb21t
aXRfcmVwb3NpdG9yeSA9ICQxIEFORCBjb21taXRfcmV2aXNpb24gPSAkMicsIGFycmF5KCRyZXBv
c2l0b3J5X2lkLCAkcmV2aXNpb24pKTsKKyAgICAgICAgJGNvbHVtbl9uYW1lID0gQ29tbWl0TG9n
RmV0Y2hlcjo6aXNfY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXIoJHJldmlzaW9uKSA/ICdjb21t
aXRfcmV2aXNpb25faWRlbnRpZmllcicgOiAnY29tbWl0X3JldmlzaW9uJzsKKyAgICAgICAgCisg
ICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgiU0VMRUNUIGNv
bW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkgPSAkMSBBTkQgJGNv
bHVtbl9uYW1lID0gJDIiLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uKSk7CiAgICAg
ICAgIGlmICgkY29tbWl0X3Jvd3MpCiAgICAgICAgICAgICByZXR1cm4gJGNvbW1pdF9yb3dzWzBd
Wydjb21taXRfaWQnXTsKIAogICAgICAgICBpZiAoIWN0eXBlX2FsbnVtKCRyZXZpc2lvbikpCiAg
ICAgICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgICAgICAkY29tbWl0X3Jvd3MgPSAkZGItPnF1
ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCBjb21taXRfaWQgRlJPTSBjb21taXRzIFdIRVJFIGNv
bW1pdF9yZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF9yZXZpc2lvbiBMSUtFICQyIExJTUlUIDIn
LCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNp
b24pIC4gJyUnKSk7CisgICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNo
X2FsbCgiU0VMRUNUIGNvbW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRv
cnkgPSAkMSBBTkQgJGNvbHVtbl9uYW1lICBMSUtFICQyIExJTUlUIDIiLCBhcnJheSgkcmVwb3Np
dG9yeV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb24pIC4gJyUnKSk7CiAg
ICAgICAgIGlmICghJGNvbW1pdF9yb3dzKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAg
ICAgIGlmIChjb3VudCgkY29tbWl0X3Jvd3MpID4gMSkKQEAgLTU1LDYgKzU3LDcgQEAgY2xhc3Mg
Q29tbWl0TG9nRmV0Y2hlciB7CiAgICAgewogICAgICAgICAkc3RhdGVtZW50cyA9ICdTRUxFQ1Qg
Y29tbWl0X2lkIGFzICJpZCIsCiAgICAgICAgICAgICBjb21taXRfcmV2aXNpb24gYXMgInJldmlz
aW9uIiwKKyAgICAgICAgICAgIGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyIGFzICJyZXZpc2lv
bklkZW50aWZpZXIiLAogICAgICAgICAgICAgY29tbWl0X3ByZXZpb3VzX2NvbW1pdCBhcyAicHJl
dmlvdXNDb21taXQiLAogICAgICAgICAgICAgY29tbWl0X3RpbWUgYXMgInRpbWUiLAogICAgICAg
ICAgICAgY29tbWl0dGVyX25hbWUgYXMgImF1dGhvck5hbWUiLApAQCAtMTkyLDggKzE5NSwxNCBA
QCBjbGFzcyBDb21taXRMb2dGZXRjaGVyIHsKICAgICAgICAgcmV0dXJuICR0aGlzLT5mb3JtYXRf
c2luZ2xlX2NvbW1pdCgkY29tbWl0KTsKICAgICB9CiAKKyAgICBwcml2YXRlIHN0YXRpYyBmdW5j
dGlvbiBpc19jb21taXRfcmV2aXNpb25faWRlbnRpZmllcigkY29tbWl0X3JldmlzaW9uX29yX3Jl
dmlzaW9uX2lkZW50aWZpZXIpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIHByZWdfbWF0Y2goJy9e
XGQrQFtcd1wuXC1dKiQvJywgJGNvbW1pdF9yZXZpc2lvbl9vcl9yZXZpc2lvbl9pZGVudGlmaWVy
KTsKKyAgICB9CisKICAgICBwcml2YXRlIGZ1bmN0aW9uIGNvbW1pdF9mb3JfcmV2aXNpb24oJHJl
cG9zaXRvcnlfaWQsICRyZXZpc2lvbikgewotICAgICAgICAkY29tbWl0X2luZm8gPSBhcnJheSgn
cmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlfaWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uKTsK
KyAgICAgICAgJGNvbW1pdF9pbmZvID0gYXJyYXkoJ3JlcG9zaXRvcnknID0+ICRyZXBvc2l0b3J5
X2lkKTsgCisgICAgICAgICRjb21taXRfaW5mb1skdGhpcy0+aXNfY29tbWl0X3JldmlzaW9uX2lk
ZW50aWZpZXIoJHJldmlzaW9uKSA/ICdyZXZpc2lvbl9pZGVudGlmaWVyJyA6ICdyZXZpc2lvbidd
ID0gJHJldmlzaW9uOwogICAgICAgICAkcm93ID0gJHRoaXMtPmRiLT5zZWxlY3RfbGFzdF9yb3co
J2NvbW1pdHMnLCAnY29tbWl0JywgJGNvbW1pdF9pbmZvKTsKICAgICAgICAgaWYgKCEkcm93KQog
ICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdVbmtub3duQ29tbWl0JywgJGNvbW1pdF9pbmZv
KTsKQEAgLTIwMSw3ICsyMTAsOCBAQCBjbGFzcyBDb21taXRMb2dGZXRjaGVyIHsKICAgICB9CiAK
ICAgICBwcml2YXRlIGZ1bmN0aW9uIGNvbW1pdF9mb3JfcmV2aXNpb25fcHJlZml4KCRyZXBvc2l0
b3J5X2lkLCAkcmV2aXNpb25fcHJlZml4KSB7Ci0gICAgICAgICRyb3dzID0gJHRoaXMtPmRiLT5x
dWVyeV9hbmRfZmV0Y2hfYWxsKCdTRUxFQ1QgKiBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3Jl
cG9zaXRvcnkgPSAkMSBBTkQgY29tbWl0X3JldmlzaW9uIExJS0UgJDIgT1JERVIgQlkgY29tbWl0
X3JldmlzaW9uIExJTUlUIDInLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0YWJhc2U6OmVzY2Fw
ZV9mb3JfbGlrZSgkcmV2aXNpb25fcHJlZml4KSAuICclJykpOworICAgICAgICAkY29sdW1uX25h
bWUgPSAkdGhpcy0+aXNfY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXIoJHJldmlzaW9uX3ByZWZp
eCkgPyAncmV2aXNpb25faWRlbnRpZmllcicgOiAncmV2aXNpb24nOworICAgICAgICAkcm93cyA9
ICR0aGlzLT5kYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgiU0VMRUNUICogRlJPTSBjb21taXRzIFdI
RVJFIGNvbW1pdF9yZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF8kY29sdW1uX25hbWUgTElLRSAk
MiBPUkRFUiBCWSBjb21taXRfJGNvbHVtbl9uYW1lIExJTUlUIDIiLCBhcnJheSgkcmVwb3NpdG9y
eV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb25fcHJlZml4KSAuICclJykp
OwogICAgICAgICBpZiAoY291bnQoJHJvd3MpID09IDApCiAgICAgICAgICAgICBleGl0X3dpdGhf
ZXJyb3IoJ1Vua25vd25Db21taXQnLCBhcnJheSgncmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlf
aWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uX3ByZWZpeCkpOwogICAgICAgICBpZiAoY291bnQo
JHJvd3MpID09IDIpIHsKQEAgLTIyNCw2ICsyMzQsNyBAQCBjbGFzcyBDb21taXRMb2dGZXRjaGVy
IHsKICAgICAgICAgcmV0dXJuIGFycmF5KAogICAgICAgICAgICAgJ2lkJyA9PiAkY29tbWl0X3Jv
d1snY29tbWl0X2lkJ10sCiAgICAgICAgICAgICAncmV2aXNpb24nID0+ICRjb21taXRfcm93Wydj
b21taXRfcmV2aXNpb24nXSwKKyAgICAgICAgICAgICdyZXZpc2lvbklkZW50aWZpZXInID0+ICRj
b21taXRfcm93Wydjb21taXRfcmV2aXNpb25faWRlbnRpZmllciddLAogICAgICAgICAgICAgJ3Jl
cG9zaXRvcnknID0+ICRjb21taXRfcm93Wydjb21taXRfcmVwb3NpdG9yeSddLAogICAgICAgICAg
ICAgJ3ByZXZpb3VzQ29tbWl0JyA9PiAkY29tbWl0X3Jvd1snY29tbWl0X3ByZXZpb3VzX2NvbW1p
dCddLAogICAgICAgICAgICAgJ3RpbWUnID0+IERhdGFiYXNlOjp0b19qc190aW1lKCRjb21taXRf
cm93Wydjb21taXRfdGltZSddKSwKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvaW5jbHVkZS9jb21taXQtdXBkYXRlci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LXVwZGF0ZXIucGhwCmluZGV4IDA4YzY4YmJlNjQx
MGFmZjA2ZGI4NzU0OTkyYTQ4YzkzN2U3MGUzMmYuLjQzMjIwZDMxOTMyMjA3ZWM4MjI4ZTIyM2Y2
NDI4NmQzYmMwYjgwNmMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvaW5jbHVkZS9jb21taXQtdXBkYXRlci5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocApAQCAtMzAsNyArMzAsNiBAQCBj
bGFzcyBDb21taXRVcGRhdGVyIHsKICAgICBwcml2YXRlIGZ1bmN0aW9uIHVwZGF0ZV9jb21taXQo
JiR1cGRhdGUsICRvd25lcl9jb21taXRfaWQsICRvd25lcl9yZXBvc2l0b3J5X2lkLCAkc2hvdWxk
X2luc2VydCkKICAgICB7CiAgICAgICAgICRjb21taXRfZGF0YSA9ICYkdGhpcy0+cmVzb2x2ZV9m
aWVsZHNfZnJvbV9kYXRhYmFzZSgkdXBkYXRlLCAkb3duZXJfcmVwb3NpdG9yeV9pZCwgJHNob3Vs
ZF9pbnNlcnQpOwotCiAgICAgICAgICRjb21taXRfc2VsZWN0X3F1ZXJ5ID0gYXJyYXkoJ3JlcG9z
aXRvcnknID0+ICRjb21taXRfZGF0YVsncmVwb3NpdG9yeSddLCAncmV2aXNpb24nID0+ICRjb21t
aXRfZGF0YVsncmV2aXNpb24nXSk7CiAgICAgICAgIGlmICgkc2hvdWxkX2luc2VydCkgewogICAg
ICAgICAgICAgJGNvbW1pdF9pZCA9ICR0aGlzLT5kYi0+dXBkYXRlX29yX2luc2VydF9yb3coJ2Nv
bW1pdHMnLCAnY29tbWl0JywgJGNvbW1pdF9zZWxlY3RfcXVlcnksICRjb21taXRfZGF0YSk7CkBA
IC03NCw2ICs3Myw3IEBAIGNsYXNzIENvbW1pdFVwZGF0ZXIgewogICAgIHByaXZhdGUgZnVuY3Rp
b24gJmNvbnN0cnVjdF91cGRhdGVfbGlzdCgmJGNvbW1pdF9pbmZvX2xpc3QsICRzaG91bGRfaW5z
ZXJ0KQogICAgIHsKICAgICAgICAgJHVwZGF0ZV9saXN0ID0gYXJyYXkoKTsKKyAgICAgICAgJGNv
bW1pdF9yZXZpc2lvbl9pZGVudGlmaWVycyA9IGFycmF5KCk7CiAKICAgICAgICAgZm9yZWFjaCAo
JGNvbW1pdF9pbmZvX2xpc3QgYXMgJiRjb21taXRfaW5mbykgewogICAgICAgICAgICAgc2VsZjo6
dmFsaWRhdGVfY29tbWl0cygkY29tbWl0X2luZm8pOwpAQCAtODEsNiArODEsMTEgQEAgY2xhc3Mg
Q29tbWl0VXBkYXRlciB7CiAgICAgICAgICAgICAkaGFzX3VwZGF0ZSA9IGNvdW50KCRjb21taXRf
ZGF0YSkgPiAxOwogCiAgICAgICAgICAgICAkdXBkYXRlID0gYXJyYXkoJ2NvbW1pdCcgPT4gJiRj
b21taXRfZGF0YSwgJ3JlcG9zaXRvcnknID0+ICYkY29tbWl0X2luZm9bJ3JlcG9zaXRvcnknXSk7
CisgICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncmV2aXNpb25JZGVudGlmaWVyJywg
JGNvbW1pdF9pbmZvKSkgeworICAgICAgICAgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCRj
b21taXRfaW5mb1sncmV2aXNpb25JZGVudGlmaWVyJ10sICRjb21taXRfcmV2aXNpb25faWRlbnRp
ZmllcnMpKQorICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZXhpdF93aXRoX2Vycm9yKCdEdXBs
aWNhdGVkUmV2aXNpb25JZGVudGlmaWVyJywgYXJyYXkoJ2NvbW1pdCcgPT4gJGNvbW1pdF9pbmZv
KSk7CisgICAgICAgICAgICAgICAgJGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyc1skY29tbWl0
X2luZm9bJ3JldmlzaW9uSWRlbnRpZmllciddXSA9IHRydWU7CisgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncHJldmlvdXNDb21taXQnLCAkY29tbWl0X2lu
Zm8pKSB7CiAgICAgICAgICAgICAgICAgJGhhc191cGRhdGUgPSB0cnVlOwogICAgICAgICAgICAg
ICAgICR1cGRhdGVbJ3ByZXZpb3VzX2NvbW1pdCddID0gJiRjb21taXRfaW5mb1sncHJldmlvdXND
b21taXQnXTsKQEAgLTEwNCw2ICsxMDksNyBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsKIAogICAg
ICAgICAgICAgJG93bmVkX2NvbW1pdF91cGRhdGVfbGlzdCA9IGFycmF5KCk7CiAgICAgICAgICAg
ICBmb3JlYWNoKCRjb21taXRfaW5mb1snb3duZWRDb21taXRzJ10gYXMgJG93bmVkX3JlcG9zaXRv
cnlfbmFtZSA9PiAmJG93bmVkX2NvbW1pdF9pbmZvKSB7CisgICAgICAgICAgICAgICAgc2VsZjo6
dmFsaWRhdGVfY29tbWl0cygkb3duZWRfY29tbWl0X2luZm8sIHRydWUpOwogICAgICAgICAgICAg
ICAgICRvd25lZF9jb21taXQgPSAmc2VsZjo6Y29uc3RydWN0X2NvbW1pdF9kYXRhKCRvd25lZF9j
b21taXRfaW5mbywgJG93bmVkX3JlcG9zaXRvcnlfbmFtZSwgJHNob3VsZF9pbnNlcnQpOwogICAg
ICAgICAgICAgICAgICRvd25lZF9jb21taXRfdXBkYXRlID0gYXJyYXkoJ2NvbW1pdCcgPT4gJiRv
d25lZF9jb21taXQsICdyZXBvc2l0b3J5JyA9PiAkb3duZWRfcmVwb3NpdG9yeV9uYW1lKTsKIApA
QCAtMTQzLDE1ICsxNDksMTggQEAgY2xhc3MgQ29tbWl0VXBkYXRlciB7CiAgICAgICAgICAgICAk
Y29tbWl0X2RhdGFbJ3RpbWUnXSA9ICRjb21taXRfaW5mb1sndGltZSddOwogICAgICAgICB9CiAK
KyAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJ3JldmlzaW9uSWRlbnRpZmllcicsICRjb21t
aXRfaW5mbykpCisgICAgICAgICAgICAkY29tbWl0X2RhdGFbJ3JldmlzaW9uX2lkZW50aWZpZXIn
XSA9ICRjb21taXRfaW5mb1sncmV2aXNpb25JZGVudGlmaWVyJ107CisKICAgICAgICAgaWYgKCRz
aG91bGRfaW5zZXJ0KQogICAgICAgICAgICAgJGNvbW1pdF9kYXRhWydyZXBvcnRlZCddID0gdHJ1
ZTsKIAogICAgICAgICByZXR1cm4gJGNvbW1pdF9kYXRhOwogICAgIH0KIAotICAgIHByaXZhdGUg
c3RhdGljIGZ1bmN0aW9uIHZhbGlkYXRlX2NvbW1pdHMoJiRjb21taXRfaW5mbykKKyAgICBwcml2
YXRlIHN0YXRpYyBmdW5jdGlvbiB2YWxpZGF0ZV9jb21taXRzKCYkY29tbWl0X2luZm8sICRpc19v
d25fY29tbWl0ID0gZmFsc2UpCiAgICAgewotICAgICAgICBpZiAoIWFycmF5X2tleV9leGlzdHMo
J3JlcG9zaXRvcnknLCAkY29tbWl0X2luZm8pKQorICAgICAgICBpZiAoIWFycmF5X2tleV9leGlz
dHMoJ3JlcG9zaXRvcnknLCAkY29tbWl0X2luZm8pICYmICEkaXNfb3duX2NvbW1pdCkKICAgICAg
ICAgICAgIGV4aXRfd2l0aF9lcnJvcignTWlzc2luZ1JlcG9zaXRvcnlOYW1lJywgYXJyYXkoJ2Nv
bW1pdCcgPT4gJGNvbW1pdF9pbmZvKSk7CiAgICAgICAgIGlmICghYXJyYXlfa2V5X2V4aXN0cygn
cmV2aXNpb24nLCAkY29tbWl0X2luZm8pKQogICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdN
aXNzaW5nUmV2aXNpb24nLCBhcnJheSgnY29tbWl0JyA9PiAkY29tbWl0X2luZm8pKTsKQEAgLTE2
MCw2ICsxNjksOCBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsKICAgICAgICAgICAgIGV4aXRfd2l0
aF9lcnJvcignSW52YWxpZEF1dGhvckZvcm1hdCcsIGFycmF5KCdjb21taXQnID0+ICRjb21taXRf
aW5mbykpOwogICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncHJldmlvdXNDb21taXQnLCAk
Y29tbWl0X2luZm8pKQogICAgICAgICAgICAgcmVxdWlyZV9mb3JtYXQoJ1JldmlzaW9uJywgJGNv
bW1pdF9pbmZvWydwcmV2aW91c0NvbW1pdCddLCAnL15bQS1aYS16MC05IFwuXSskLycpOworICAg
ICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncmV2aXNpb25JZGVudGlmaWVyJywgJGNvbW1pdF9p
bmZvKSkKKyAgICAgICAgICAgIHJlcXVpcmVfZm9ybWF0KCdSZXZpc2lvbklkZW50aWZpZXInLCAk
Y29tbWl0X2luZm9bJ3JldmlzaW9uSWRlbnRpZmllciddLCAnL15cZCtAW1x3XC5cLV0rJC8nKTsK
ICAgICB9CiAKICAgICBwcml2YXRlIGZ1bmN0aW9uIHJlc29sdmVfcmVwb3NpdG9yeSgkcmVwb3Np
dG9yeV9uYW1lLCAkb3duZXJfcmVwb3NpdG9yeV9pZCwgJHNob3VsZF9pbnNlcnQpCmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3J0LXByb2Nl
c3Nvci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3J0
LXByb2Nlc3Nvci5waHAKaW5kZXggMWJjMWRiNjQyZGJlZmVmOGVjYjA3MmUxOGI1N2U5YzkxYmMw
NzIzYy4uYWJlZDhhZTAwOGNkZmM4NGQ2MjM4N2IyZGEwZTlhMjM0MTZhMjRjNyAxMDA2NDQKLS0t
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL3JlcG9ydC1wcm9jZXNz
b3IucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9yZXBv
cnQtcHJvY2Vzc29yLnBocApAQCAtMTU5LDE0ICsxNTksMTYgQEAgY2xhc3MgUmVwb3J0UHJvY2Vz
c29yIHsKICAgICAgICAgICAgICAgICAkdGhpcy0+cm9sbGJhY2tfd2l0aF9lcnJvcignRmFpbGVk
VG9VcGRhdGVCdWlsZFJlcXVlc3QnLCBhcnJheSgnYnVpbGRSZXF1ZXN0JyA9PiAkYnVpbGRfcmVx
dWVzdF9pZCwgJ2J1aWxkJyA9PiAkYnVpbGRfaWQpKTsKICAgICAgICAgfQogCi0KICAgICAgICAg
Zm9yZWFjaCAoJHJldmlzaW9ucyBhcyAkcmVwb3NpdG9yeV9uYW1lID0+ICRyZXZpc2lvbl9kYXRh
KSB7CiAgICAgICAgICAgICAkcmVwb3NpdG9yeV9pZCA9ICR0aGlzLT5kYi0+c2VsZWN0X29yX2lu
c2VydF9yb3coJ3JlcG9zaXRvcmllcycsICdyZXBvc2l0b3J5JywgYXJyYXkoJ25hbWUnID0+ICRy
ZXBvc2l0b3J5X25hbWUsICdvd25lcicgPT4gTlVMTCkpOwogICAgICAgICAgICAgaWYgKCEkcmVw
b3NpdG9yeV9pZCkKICAgICAgICAgICAgICAgICAkdGhpcy0+cm9sbGJhY2tfd2l0aF9lcnJvcign
RmFpbGVkVG9JbnNlcnRSZXBvc2l0b3J5JywgYXJyYXkoJ25hbWUnID0+ICRyZXBvc2l0b3J5X25h
bWUpKTsKIAotICAgICAgICAgICAgJGNvbW1pdF9kYXRhID0gYXJyYXkoJ3JlcG9zaXRvcnknID0+
ICRyZXBvc2l0b3J5X2lkLCAncmV2aXNpb24nID0+ICRyZXZpc2lvbl9kYXRhWydyZXZpc2lvbidd
LCAndGltZScgPT4gYXJyYXlfZ2V0KCRyZXZpc2lvbl9kYXRhLCAndGltZXN0YW1wJykpOwotCisg
ICAgICAgICAgICAkY29tbWl0X2RhdGEgPSBhcnJheSgKKyAgICAgICAgICAgICAgICAncmVwb3Np
dG9yeScgPT4gJHJlcG9zaXRvcnlfaWQsIAorICAgICAgICAgICAgICAgICdyZXZpc2lvbicgPT4g
JHJldmlzaW9uX2RhdGFbJ3JldmlzaW9uJ10sIAorICAgICAgICAgICAgICAgICd0aW1lJyA9PiBh
cnJheV9nZXQoJHJldmlzaW9uX2RhdGEsICd0aW1lc3RhbXAnKSwgCisgICAgICAgICAgICAgICAg
J3JldmlzaW9uX2lkZW50aWZpZXInID0+IGFycmF5X2dldCgkcmV2aXNpb25fZGF0YSwgJ3Jldmlz
aW9uSWRlbnRpZmllcicsIG51bGwpKTsKICAgICAgICAgICAgICRtaXNtYXRjaGluZ19jb21taXQg
PSAkdGhpcy0+ZGItPnF1ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCAqIEZST00gYnVpbGRfY29t
bWl0cywgY29tbWl0cwogICAgICAgICAgICAgICAgIFdIRVJFIGJ1aWxkX2NvbW1pdCA9IGNvbW1p
dF9pZCBBTkQgY29tbWl0X2J1aWxkID0gJDEgQU5EIGNvbW1pdF9yZXBvc2l0b3J5ID0gJDIgQU5E
IGNvbW1pdF9yZXZpc2lvbiAhPSAkMyBMSU1JVCAxJywKICAgICAgICAgICAgICAgICBhcnJheSgk
YnVpbGRfaWQsICRyZXBvc2l0b3J5X2lkLCAkcmV2aXNpb25fZGF0YVsncmV2aXNpb24nXSkpOwpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29t
bWl0LWxvZy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2Nv
bW1pdC1sb2cuanMKaW5kZXggZTZkNGQ0NGFiYjU1NDEzNDZlMmY0YTlkNDQwMDlmNzlhNzgyOTAw
Yi4uMDBmOTI3NjA5YzNkMjM1N2IwNDkwN2RiMmNiYWVkZWFjN2Y4NWUwOCAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9n
LmpzCkBAIC0yMCw2ICsyMCw3IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9i
amVjdCB7CiAKICAgICAgICAgY29uc29sZS5hc3NlcnQoK3RoaXMuX3Jhd0RhdGFbJ3RpbWUnXSA9
PSArcmF3RGF0YVsndGltZSddKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fcmF3RGF0
YVsncmV2aXNpb24nXSA9PSByYXdEYXRhWydyZXZpc2lvbiddKTsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQodGhpcy5fcmF3RGF0YVsncmV2aXNpb25JZGVudGlmaWVyJ10gPT0gcmF3RGF0YVsncmV2
aXNpb25JZGVudGlmaWVyJ10pOwogCiAgICAgICAgIGlmIChyYXdEYXRhLmF1dGhvck5hbWUpCiAg
ICAgICAgICAgICB0aGlzLl9yYXdEYXRhLmF1dGhvck5hbWUgPSByYXdEYXRhLmF1dGhvck5hbWU7
CkBAIC0zOSw2ICs0MCw3IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVj
dCB7CiAgICAgdGVzdGFiaWxpdHkoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWyd0ZXN0YWJpbGl0
eSddOyB9CiAgICAgYXV0aG9yKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsnYXV0aG9yTmFtZSdd
OyB9CiAgICAgcmV2aXNpb24oKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydyZXZpc2lvbiddOyB9
CisgICAgcmV2aXNpb25JZGVudGlmaWVyKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsncmV2aXNp
b25JZGVudGlmaWVyJ107IH0KICAgICBtZXNzYWdlKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsn
bWVzc2FnZSddOyB9CiAgICAgdXJsKCkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeS51cmxGb3JS
ZXZpc2lvbih0aGlzLl9yYXdEYXRhWydyZXZpc2lvbiddKTsgfQogICAgIG93bnNDb21taXRzKCkg
eyByZXR1cm4gdGhpcy5fcmF3RGF0YVsnb3duc0NvbW1pdHMnXTsgfQpAQCAtNDgsMTUgKzUwLDMy
IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgaGFzQ29t
bWl0T3JkZXIoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydvcmRlciddICE9IG51bGw7IH0KICAg
ICBzZXRPd25lckNvbW1pdHMob3duZXJDb21taXQpIHsgdGhpcy5fb3duZXJDb21taXQgPSBvd25l
ckNvbW1pdDsgfQogCi0gICAgbGFiZWwoKQorICAgIGxhYmVsKCkgeyByZXR1cm4gQ29tbWl0TG9n
Ll9mb3JtYXR0dGVkUmV2aXNpb24odGhpcy5yZXZpc2lvbigpLCB0aGlzLnJldmlzaW9uSWRlbnRp
ZmllcigpKTsgfQorCisgICAgc3RhdGljIF9yZXBvc2l0b3J5VHlwZShyZXZpc2lvbikKICAgICB7
Ci0gICAgICAgIGNvbnN0IHJldmlzaW9uID0gdGhpcy5yZXZpc2lvbigpOwotICAgICAgICBpZiAo
cGFyc2VJbnQocmV2aXNpb24pID09IHJldmlzaW9uKSAvLyBlLmcuIHIxMjM0NQotICAgICAgICAg
ICAgcmV0dXJuICdyJyArIHJldmlzaW9uOwotICAgICAgICBpZiAocmV2aXNpb24ubGVuZ3RoID09
IDQwKSAvLyBlLmcuIGdpdCBoYXNoCi0gICAgICAgICAgICByZXR1cm4gcmV2aXNpb24uc3Vic3Ry
aW5nKDAsIDEyKTsKLSAgICAgICAgcmV0dXJuIHJldmlzaW9uOworICAgICAgICBpZiAocGFyc2VJ
bnQocmV2aXNpb24pID09IHJldmlzaW9uKQorICAgICAgICAgICAgcmV0dXJuICdzdm4nOworICAg
ICAgICBpZiAocmV2aXNpb24ubGVuZ3RoID09IDQwKQorICAgICAgICAgICAgcmV0dXJuICdnaXQn
OwogICAgIH0KKworICAgIHN0YXRpYyBfZm9ybWF0dHRlZFJldmlzaW9uKHJldmlzaW9uLCByZXZp
c2lvbklkZW50aWZpZXIgPSBudWxsKSAKKyAgICB7CisgICAgICAgIGxldCBmb3JtYXR0ZWRSZXZp
c2lvbiA9ICAoKCkgPT4geworICAgICAgICAgICAgc3dpdGNoICh0aGlzLl9yZXBvc2l0b3J5VHlw
ZShyZXZpc2lvbikpIHsKKyAgICAgICAgICAgIGNhc2UgJ3N2bic6CisgICAgICAgICAgICAgICAg
cmV0dXJuICdyJyArIHJldmlzaW9uOyAvLyBlLmcuIHIxMjM0NQorICAgICAgICAgICAgY2FzZSAn
Z2l0JzoKKyAgICAgICAgICAgICAgICByZXR1cm4gcmV2aXNpb24uc3Vic3RyaW5nKDAsIDEyKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXZpc2lvbjsKKyAgICAgICAgfSko
KTsKKyAgICAgICAgaWYgKHJldmlzaW9uSWRlbnRpZmllcikKKyAgICAgICAgICAgIHJldHVybiBg
JHtyZXZpc2lvbklkZW50aWZpZXJ9ICgke2Zvcm1hdHRlZFJldmlzaW9ufSlgOworICAgICAgICBy
ZXR1cm4gZm9ybWF0dGVkUmV2aXNpb247CisgICAgfQorCiAgICAgdGl0bGUoKSB7IHJldHVybiB0
aGlzLl9yZXBvc2l0b3J5Lm5hbWUoKSArICcgYXQgJyArIHRoaXMubGFiZWwoKTsgfQogCiAgICAg
ZGlmZihwcmV2aW91c0NvbW1pdCkKQEAgLTY4LDE3ICs4NywyNSBAQCBjbGFzcyBDb21taXRMb2cg
ZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogICAgICAgICBpZiAoIXByZXZpb3VzQ29tbWl0KQog
ICAgICAgICAgICAgcmV0dXJuIHtyZXBvc2l0b3J5OiByZXBvc2l0b3J5LCBsYWJlbDogdGhpcy5s
YWJlbCgpLCB1cmw6IHRoaXMudXJsKCl9OwogCi0gICAgICAgIGNvbnN0IHRvID0gdGhpcy5yZXZp
c2lvbigpOwotICAgICAgICBjb25zdCBmcm9tID0gcHJldmlvdXNDb21taXQucmV2aXNpb24oKTsK
LSAgICAgICAgbGV0IGxhYmVsID0gbnVsbDsKLSAgICAgICAgaWYgKHBhcnNlSW50KGZyb20pID09
IGZyb20pLy8gZS5nLiByMTIzNDUuCi0gICAgICAgICAgICBsYWJlbCA9IGByJHtmcm9tfS1yJHt0
aGlzLnJldmlzaW9uKCl9YDsKLSAgICAgICAgZWxzZSBpZiAodG8ubGVuZ3RoID09IDQwKSAvLyBl
LmcuIGdpdCBoYXNoCi0gICAgICAgICAgICBsYWJlbCA9IGAke2Zyb20uc3Vic3RyaW5nKDAsIDEy
KX0uLiR7dG8uc3Vic3RyaW5nKDAsIDEyKX1gOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBs
YWJlbCA9IGAke2Zyb219IC0gJHt0b31gOwotCi0gICAgICAgIHJldHVybiB7cmVwb3NpdG9yeTog
cmVwb3NpdG9yeSwgbGFiZWw6IGxhYmVsLCB1cmw6IHJlcG9zaXRvcnkudXJsRm9yUmV2aXNpb25S
YW5nZShmcm9tLCB0byl9OworICAgICAgICBjb25zdCB0b1JldmlzaW9uID0gdGhpcy5yZXZpc2lv
bigpOworICAgICAgICBjb25zdCBmcm9tUmV2aXNpb24gPSBwcmV2aW91c0NvbW1pdC5yZXZpc2lv
bigpOworICAgICAgICBjb25zdCBpZGVudGlmaWVyUGF0dGVybiA9IC8oPzxudW1iZXI+XGQrKUAo
PzxicmFuY2g+W1x3XC5cLV0rKS87CisgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlUeXBlID0gQ29t
bWl0TG9nLl9yZXBvc2l0b3J5VHlwZSh0b1JldmlzaW9uKTsKKyAgICAgICAKKyAgICAgICAgY29u
c3QgbGFiZWwgPSAoKGZyb21NYXRjaCwgdG9NYXRjaCkgPT4geworICAgICAgICAgICAgY29uc3Qg
c2VwYXJhdG9yID0gcmVwb3NpdG9yeVR5cGUgPT0gJ2dpdCcgPyAnLi4nIDogKHJlcG9zaXRvcnlU
eXBlID09ICdzdm4nID8gJy0nIDogJyAtICcpOworICAgICAgICAgICAgaWYgKGZyb21NYXRjaCAm
JiB0b01hdGNoKSB7CisgICAgICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoZnJvbU1hdGNoLmdy
b3Vwcy5icmFuY2ggPT0gdG9NYXRjaC5ncm91cHMuYnJhbmNoKTsKKyAgICAgICAgICAgICAgICBj
b25zdCBmb3JtYXR0ZWRGcm9tID0gQ29tbWl0TG9nLl9mb3JtYXR0dGVkUmV2aXNpb24oZnJvbVJl
dmlzaW9uKTsKKyAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRUbyA9IENvbW1pdExvZy5f
Zm9ybWF0dHRlZFJldmlzaW9uKHRvUmV2aXNpb24pOworICAgICAgICAgICAgICAgIHJldHVybiBg
JHtmcm9tTWF0Y2guZ3JvdXBzLm51bWJlcn0tJHt0b01hdGNoLmdyb3Vwcy5udW1iZXJ9QCR7ZnJv
bU1hdGNoLmdyb3Vwcy5icmFuY2h9ICgke2Zvcm1hdHRlZEZyb219JHtzZXBhcmF0b3J9JHtmb3Jt
YXR0ZWRUb30pYDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmcm9tTWF0Y2ggfHwg
dG9NYXRjaCkKKyAgICAgICAgICAgICAgICByZXR1cm4gYCR7cHJldmlvdXNDb21taXQubGFiZWwo
KX0gLSAke3RoaXMubGFiZWwoKX1gOworICAgICAgICAgICAgcmV0dXJuIGAke3ByZXZpb3VzQ29t
bWl0LmxhYmVsKCl9JHtzZXBhcmF0b3J9JHt0aGlzLmxhYmVsKCl9YDsKKyAgICAgICAgfSkoaWRl
bnRpZmllclBhdHRlcm4uZXhlYyhwcmV2aW91c0NvbW1pdC5yZXZpc2lvbklkZW50aWZpZXIoKSks
IGlkZW50aWZpZXJQYXR0ZXJuLmV4ZWModGhpcy5yZXZpc2lvbklkZW50aWZpZXIoKSkpOworCisg
ICAgICAgIHJldHVybiB7cmVwb3NpdG9yeSwgbGFiZWwsIHVybDogcmVwb3NpdG9yeS51cmxGb3JS
ZXZpc2lvblJhbmdlKGZyb21SZXZpc2lvbiwgdG9SZXZpc2lvbil9OwogICAgIH0KIAogICAgIHN0
YXRpYyBmZXRjaExhdGVzdENvbW1pdEZvclBsYXRmb3JtKHJlcG9zaXRvcnksIHBsYXRmb3JtKQpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29t
bWl0cy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LWNvbW1pdHMtdGVzdHMuanMKaW5kZXggMjg1NjlmMDYzNzMwNGUzYTYyY2Y3NzAwOTIzOTNmN2Yw
ZTczNjU5Ny4uYTMzMTIxYTBlYzExYWYzMDE0ZWZmNDRlOTAwMmNiYjAxZTRjMDRkZiAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10
ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1j
b21taXRzLXRlc3RzLmpzCkBAIC0xNyw2ICsxNyw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMv
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJyZXBvc2l0
b3J5IjogIldlYktpdCIsCiAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OCIsCisg
ICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxODQyNzZAbWFpbiIsCiAgICAg
ICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMjo1MjozNC41NzdaIiwKICAgICAgICAg
ICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIlphbGFuIEJ1anRhcyIsICJhY2NvdW50IjogInph
bGFuQGFwcGxlLmNvbSJ9LAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImEgbWVzc2FnZSIs
CkBAIC0yNCw2ICsyNSw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIs
CiAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OSIsCisgICAgICAgICAgICAgICAg
InJldmlzaW9uSWRlbnRpZmllciI6ICIxODQyNzdAbWFpbiIsCiAgICAgICAgICAgICAgICAgInRp
bWUiOiAiMjAxNy0wMS0yMFQwMzoyMzo1MC42NDVaIiwKICAgICAgICAgICAgICAgICAiYXV0aG9y
IjogeyJuYW1lIjogIkNocmlzIER1bWV6IiwgImFjY291bnQiOiAiY2R1bWV6QGFwcGxlLmNvbSJ9
LAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogInNvbWUgbWVzc2FnZSIsCkBAIC0zMiwxMiAr
MzQsNTMgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKICAgICAgICAgICAgICAgICAicHJldmlv
dXNDb21taXQiOiAiMjEwOTQ5IiwKICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTUw
IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3OEBtYWluIiwK
ICAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjQ5OjM3Ljg4N1oiLAogICAg
ICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQi
OiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmcifSwKICAgICAgICAgICAgICAgICAibWVzc2FnZSI6
ICJhbm90aGVyIG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgXQorICAgIH07CisK
KyAgICBjb25zdCBzdWJjZXJzaW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25JZGVudGlmaWVyID0g
eworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3
b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAg
ICAgInJldmlzaW9uIjogIjIxMDk0OCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRp
ZmllciI6ICIxODQyNzZAbWFpbiIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0y
MFQwMjo1MjozNC41NzdaIiwKKyAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIlph
bGFuIEJ1anRhcyIsICJhY2NvdW50IjogInphbGFuQGFwcGxlLmNvbSJ9LAorICAgICAgICAgICAg
ICAgICJtZXNzYWdlIjogImEgbWVzc2FnZSIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAg
ICAgInJldmlzaW9uIjogIjIxMDk0OSIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRp
ZmllciI6ICIxODQyNzdAbWFpbiIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0y
MFQwMzoyMzo1MC42NDVaIiwKKyAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNo
cmlzIER1bWV6IiwgImFjY291bnQiOiAiY2R1bWV6QGFwcGxlLmNvbSJ9LAorICAgICAgICAgICAg
ICAgICJtZXNzYWdlIjogInNvbWUgbWVzc2FnZSIsCisgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAg
ICAgICAgInByZXZpb3VzQ29tbWl0IjogIjIxMDk0OSIsCisgICAgICAgICAgICAgICAgInJldmlz
aW9uIjogIjIxMDk1MCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIx
ODQyNzhAbWFpbiIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMzo0OToz
Ny44ODdaIiwKKyAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNvbW1pdCBRdWV1
ZSIsICJhY2NvdW50IjogImNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnIn0sCisgICAgICAgICAgICAg
ICAgIm1lc3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdlIiwKKyAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKKyAgICAgICAg
ICAgICAgICAicmV2aXNpb24iOiAiMjEwOTUxIiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25J
ZGVudGlmaWVyIjogIjE4NDI3OEBzb21ldGhpbmciLAorICAgICAgICAgICAgICAgICJ0aW1lIjog
IjIwMTctMDEtMjBUMDM6NDk6NDAuODg3WiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsi
bmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Via2l0Lm9y
ZyJ9LAorICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImFub3RoZXIgbWVzc2FnZSIsCiAgICAg
ICAgICAgICB9CiAgICAgICAgIF0KLSAgICB9CisgICAgfTsKIAogICAgIGNvbnN0IGNvbW1pdHNP
bmVQcmVmaXhPZlRoZU90aGVyID0gewogICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIs
CkBAIC00Niw2ICs4OSw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIs
CiAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0IiwKKyAgICAgICAgICAgICAgICAi
cmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3MkBtYWluIiwKICAgICAgICAgICAgICAgICAidGlt
ZSI6ICIyMDE3LTAxLTIwVDAyOjUyOjM0LjU3N1oiLAogICAgICAgICAgICAgICAgICJhdXRob3Ii
OiB7Im5hbWUiOiAiWmFsYW4gQnVqdGFzIiwgImFjY291bnQiOiAiemFsYW5AYXBwbGUuY29tIn0s
CiAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYSBtZXNzYWdlIiwKQEAgLTUzLDYgKzk3LDcg
QEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKICAgICAgICAgICAgICAg
ICAicmV2aXNpb24iOiAiMjEwOTQ5IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlm
aWVyIjogIjE4NDI3N0BtYWluIiwKICAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIw
VDAzOjIzOjUwLjY0NVoiLAogICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ2hy
aXMgRHVtZXoiLCAiYWNjb3VudCI6ICJjZHVtZXpAYXBwbGUuY29tIn0sCiAgICAgICAgICAgICAg
ICAgIm1lc3NhZ2UiOiAic29tZSBtZXNzYWdlIiwKQEAgLTUyNCw2ICs1NjksNDEgQEAgZGVzY3Jp
YmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KTsKICAgICAg
ICAgfSk7CiAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gY29tbWl0IHdpdGggY29tbWl0IHJl
dmlzaW9uIGxhYmVsIiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVG
b3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdHMpOworICAgICAgICAgICAgY29uc3QgcmVzcG9uc2Ug
PSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21t
aXRzLycsIHN1YnZlcnNpb25Db21taXRzKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0g
YXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKGAvYXBpL2NvbW1pdHMvV2ViS2l0
LyR7c3VidmVyc2lvbkNvbW1pdHMuY29tbWl0c1swXS5yZXZpc2lvbklkZW50aWZpZXJ9YCk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0LmNvbW1pdHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdC5jb21t
aXRzWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0cy5jb21taXRzWzBdKTsKKyAgICAgICAgfSk7CisKKyAg
ICAgICAgaXQoInNob3VsZCByZXR1cm4gJ0FtYmlndW91c1JldmlzaW9uUHJlZml4JyB3aGVuIG1v
cmUgdGhhbiBvbmUgY29tbWl0cyBhcmUgZm91bmQgZm9yIGEgcmV2aXNpb24gbGFiZWwgcHJlZml4
IiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29uc3QgcmVtb3RlID0gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKTsKKyAgICAgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YmNlcnNp
b25Db21taXRzV2l0aEZha2VSZXZpc2lvbklkZW50aWZpZXIpOworICAgICAgICAgICAgYXdhaXQg
cmVtb3RlLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJjZXJz
aW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25JZGVudGlmaWVyKTsKKyAgICAgICAgICAgIGNvbnN0
IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzE4NDI3
OEA/cHJlZml4LW1hdGNoPXRydWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXN1bHRbJ3N0YXR1cyddLCAnQW1iaWd1b3VzUmV2aXNpb25QcmVmaXgnKTsKKyAgICAgICAgfSk7
CisKKyAgICAgICAgaXQoInNob3VsZCBub3QgcmV0dXJuICdBbWJpZ3VvdXNSZXZpc2lvblByZWZp
eCcgd2hlbiB0aGVyZSBpcyBhIGNvbW1pdCByZXZpc2lvbiBsYWJlbCBleHRyYWN0IG1hdGNoZXMg
c3BlY2lmaWVkIHJldmlzaW9uIHByZWZpeCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNv
bnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7CisgICAgICAgICAgICBhd2FpdCBh
ZGRTbGF2ZUZvclJlcG9ydChzdWJjZXJzaW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25JZGVudGlm
aWVyKTsKKyAgICAgICAgICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkv
cmVwb3J0LWNvbW1pdHMvJywgc3ViY2Vyc2lvbkNvbW1pdHNXaXRoRmFrZVJldmlzaW9uSWRlbnRp
Zmllcik7CisgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTign
L2FwaS9jb21taXRzL1dlYktpdC8xODQyNzhAbWFpbj9wcmVmaXgtbWF0Y2g9dHJ1ZScpOworICAg
ICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0
Wydjb21taXRzJ11bMF0sIHN1YmNlcnNpb25Db21taXRzV2l0aEZha2VSZXZpc2lvbklkZW50aWZp
ZXJbJ2NvbW1pdHMnXVsyXSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCJzaG91bGQgcmV0
dXJuICdVbmtub3duQ29tbWl0JyB3aGVuIG5vIGNvbW1pdCBpcyBmb3VuZCBmb3IgYSByZXZpc2lv
biBsYWJlbCBwcmVmaXgiLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCByZW1vdGUg
PSBUZXN0U2VydmVyLnJlbW90ZUFQSSgpOworICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JS
ZXBvcnQoc3ViY2Vyc2lvbkNvbW1pdHNXaXRoRmFrZVJldmlzaW9uSWRlbnRpZmllcik7CisgICAg
ICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21t
aXRzLycsIHN1YmNlcnNpb25Db21taXRzV2l0aEZha2VSZXZpc2lvbklkZW50aWZpZXIpOworICAg
ICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0
cy9XZWJLaXQvMTg0Mjc4QHg/cHJlZml4LW1hdGNoPXRydWUnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnVW5rbm93bkNvbW1pdCcpOworICAgICAg
ICB9KTsKICAgICB9KTsKIAogICAgIGRlc2NyaWJlKCcvYXBpL2NvbW1pdHMvPHJlcG9zaXRvcnk+
L293bmVkLWNvbW1pdHM/b3duZXItcmV2aXNpb249PGNvbW1pdD4nLCAoKSA9PiB7CkBAIC03Mjcs
NiArODA3LDMzIEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuIHJl
cG9ydGVkIGNvbW1pdHMgaW4gdGhlIHNwZWNpZmllZCByZXZpc2lvbiBsYWJlbCByYW5nZSIsIGFz
eW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgp
OworICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7J2lkJzogMSwg
J25hbWUnOiAnV2ViS2l0J30pOworICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21taXRz
JywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk0OCcsICdyZXZpc2lvbl9pZGVu
dGlmaWVyJzogJzE4NDI3NkBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMjo1MjozNC41Nzda
JywgJ3JlcG9ydGVkJzogdHJ1ZX0pOworICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21t
aXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk0OScsICdyZXZpc2lvbl9p
ZGVudGlmaWVyJzogJzE4NDI3N0BtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMzoyMzo1MC42
NDVaJywgJ3JlcG9ydGVkJzogdHJ1ZX0pOworICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdj
b21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk1MCcsICdyZXZpc2lv
bl9pZGVudGlmaWVyJzogJzE4NDI3OEBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMzo0OToz
Ny44ODdaJywgJ3JlcG9ydGVkJzogdHJ1ZX0pOworICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0g
YXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0
Lz9wcmVjZWRpbmdSZXZpc2lvbj0xODQyNzZAbWFpbiZsYXN0UmV2aXNpb249MTg0Mjc4QG1haW4n
KTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0sn
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10u
bGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVk
KHJlc3VsdFsnY29tbWl0cyddWzBdLCB7CisgICAgICAgICAgICAgICAgcHJldmlvdXNDb21taXQ6
IG51bGwsCisgICAgICAgICAgICAgICAgcmV2aXNpb246ICcyMTA5NDknLAorICAgICAgICAgICAg
ICAgIHJldmlzaW9uSWRlbnRpZmllcjogJzE4NDI4OUBtYWluJywKKyAgICAgICAgICAgICAgICB0
aW1lOiAnMjAxNy0wMS0yMFQwMzoyMzo1MC42NDVaJywKKyAgICAgICAgICAgICAgICBhdXRob3I6
IHtuYW1lOiBudWxsLCBhY2NvdW50OiBudWxsfSwKKyAgICAgICAgICAgICAgICBtZXNzYWdlOiBu
dWxsLAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09u
ZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVsxXSwgeworICAgICAgICAgICAgICAgIHByZXZp
b3VzQ29tbWl0OiBudWxsLAorICAgICAgICAgICAgICAgIHJldmlzaW9uOiAnMjEwOTUwJywKKyAg
ICAgICAgICAgICAgICByZXZpc2lvbklkZW50aWZpZXI6ICcxODQyOTBAbWFpbicsCisgICAgICAg
ICAgICAgICAgdGltZTogJzIwMTctMDEtMjBUMDM6NDk6MzcuODg3WicsCisgICAgICAgICAgICAg
ICAgYXV0aG9yOiB7bmFtZTogbnVsbCwgYWNjb3VudDogbnVsbH0sCisgICAgICAgICAgICAgICAg
bWVzc2FnZTogbnVsbCwKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKwogICAgICAgICBp
dCgic2hvdWxkIG5vdCBpbmNsdWRlIGEgcmV2aXNpb24gbm90IHdpdGhpbiB0aGUgc3BlY2lmaWVk
IHJhbmdlIiwgKCkgPT4gewogICAgICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFi
YXNlKCk7CiAgICAgICAgICAgICBjb25zdCByZW1vdGUgPSBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
OwpAQCAtNzUwLDYgKzg1NywyMyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIAorICAgICAgICBpdCgic2hvdWxk
IG5vdCBpbmNsdWRlIGEgcmV2aXNpb24gbm90IHdpdGhpbiB0aGUgc3BlY2lmaWVkIGNvbW1pdCBy
ZXZpc2lvbiBsYWJlbCByYW5nZSIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGRi
ID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICAgICAgY29uc3QgcmVtb3RlID0gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKTsKKyAgICAgICAgICAgIGF3YWl0IGRiLmluc2VydCgncmVwb3Np
dG9yaWVzJywgeydpZCc6IDEsICduYW1lJzogJ1dlYktpdCd9KSwKKyAgICAgICAgICAgIGF3YWl0
IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6ICcyMTA5
NDcnLCAncmV2aXNpb25faWRlbnRpZmllcic6ICcxODQyNzVAbWFpbicsICd0aW1lJzogJzIwMTct
MDEtMjBUMDI6Mzg6NDUuNDg1WicsICdyZXBvcnRlZCc6IGZhbHNlfSk7CisgICAgICAgICAgICBh
d2FpdCBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAn
MjEwOTQ4JywgJ3JldmlzaW9uX2lkZW50aWZpZXInOiAnMTg0Mjc2QG1haW4nLCAndGltZSc6ICcy
MDE3LTAxLTIwVDAyOjUyOjM0LjU3N1onLCAncmVwb3J0ZWQnOiBmYWxzZX0pOworICAgICAgICAg
ICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9u
JzogJzIxMDk0OScsICdyZXZpc2lvbl9pZGVudGlmaWVyJzogJzE4NDI3N0BtYWluJywgJ3RpbWUn
OiAnMjAxNy0wMS0yMFQwMzoyMzo1MC42NDVaJywgJ3JlcG9ydGVkJzogZmFsc2V9KTsKKyAgICAg
ICAgICAgIGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZp
c2lvbic6ICcyMTA5NTAnLCAncmV2aXNpb25faWRlbnRpZmllcic6ICcxODQyNzhAbWFpbicsICd0
aW1lJzogJzIwMTctMDEtMjBUMDM6NDk6MzcuODg3WicsICdyZXBvcnRlZCc6IGZhbHNlfSk7Cisg
ICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7Cisg
ICAgICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1j
b21taXRzLycsIHN1YnZlcnNpb25Db21taXRzKTsKKyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9
IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRpbmdSZXZp
c2lvbj0xODQyNzVAbWFpbiZsYXN0UmV2aXNpb249MTg0Mjc3QG1haW4nKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAyKTsKKyAg
ICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0
cyddWzBdLCBzdWJ2ZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzBdKTsKKyAgICAgICAgICAgIGFz
c2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzFdLCBzdWJ2
ZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzFdKTsKKyAgICAgICAgfSk7CisKICAgICB9KTsKIAog
fSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2Fw
aS1yZXBvcnQtY29tbWl0cy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCmluZGV4IGI0ZWU3MjZmMzU1MzAy
YWIxOGQ2YzczNmNiYjQwYzMwYzRiMTg1OWIuLjllNmEwMGE5NzdmYTIxYjk0NGY0OWRjYWYxZTc2
ZDc5ZWQ0MzZmYzEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCkBAIC0yNiw2
ICsyNiwyMCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1
ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0KICAgICAgICAgXSwKICAgICB9OworICAg
IGNvbnN0IHN1YnZlcnNpb25Db21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyID0geworICAgICAg
ICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNv
bWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlz
aW9uIjogIjE0MTk3NyIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIx
MjcyMzFAbWFpbiIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxMy0wMi0wNlQwODo1NToy
MC45WiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQgUXVldWUi
LCAiYWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Via2l0Lm9yZyJ9LAorICAgICAgICAgICAgICAg
ICJtZXNzYWdlIjogInNvbWUgbWVzc2FnZSIsCisgICAgICAgICAgICB9CisgICAgICAgIF0sCisg
ICAgfTsKICAgICBjb25zdCBzdWJ2ZXJzaW9uSW52YWxpZENvbW1pdCA9IHsKICAgICAgICAgInNs
YXZlTmFtZSI6ICJzb21lU2xhdmUiLAogICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFz
c3dvcmQiLApAQCAtNzYsNiArOTAsNDQgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMv
IHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIF0KICAgICB9CiAKKyAg
ICBjb25zdCBkdXBsaWNhdGVkQ29tbWl0UmV2aXNpb25JZGVudGlmaWVyQ29tbWl0cyA9IHsKKyAg
ICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAorICAgICAgICAic2xhdmVQYXNzd29yZCI6
ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAiY29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJy
ZXZpc2lvbiI6ICIyMTA5NDgiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIi
OiAiMTg0Mjc2QG1haW4iLAorICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6
NTI6MzQuNTc3WiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJaYWxhbiBC
dWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKKyAgICAgICAgICAgICAgICAi
bWVzc2FnZSI6ICJhIG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJy
ZXZpc2lvbiI6ICIyMTA5NDkiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIi
OiAiMTg0Mjc2QG1haW4iLAorICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDM6
MjM6NTAuNjQ1WiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDaHJpcyBE
dW1leiIsICJhY2NvdW50IjogImNkdW1lekBhcHBsZS5jb20ifSwKKyAgICAgICAgICAgICAgICAi
bWVzc2FnZSI6ICJzb21lIG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgXQorICAg
IH0KKworICAgIGNvbnN0IGludmFsaWRDb21taXRSZXZpc2lvbklkZW50aWZpZXJDb21taXRzID0g
eworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3
b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAg
ICAgInJldmlzaW9uIjogIjIxMDk0OCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRp
ZmllciI6ICIxODQyNzYiLAorICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6
NTI6MzQuNTc3WiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJaYWxhbiBC
dWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKKyAgICAgICAgICAgICAgICAi
bWVzc2FnZSI6ICJhIG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgXQorICAgIH0K
KwogICAgIGl0KCJzaG91bGQgcmVqZWN0IGVycm9yIHdoZW4gc2xhdmUgbmFtZSBpcyBtaXNzaW5n
IiwgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNP
TignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCB7fSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNzaW5nU2xh
dmVOYW1lJyk7CkBAIC0xNDUsNiArMTk3LDIyIEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21t
aXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9KTsKICAgICB9
KTsKIAorICAgIGl0KCJzaG91bGQgcmVqZWN0IGFuIGludmFsaWQgcmV2aXNpb24gbGFiZWwiLCBh
c3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25D
b21taXQpOworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgaW52YWxpZENvbW1pdFJldmlz
aW9uSWRlbnRpZmllckNvbW1pdHMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnSW52YWxpZFJldmlzaW9uSWRlbnRpZmllcicpOworICAgICAgICBjb25z
dCByb3dzID0gYXdhaXQgVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnY29tbWl0cycp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDApOworICAgIH0pOwor
CisgICAgaXQoInNob3VsZCByZWplY3Qgd2l0aCBkdXBsaWNhdGVkIGNvbW1pdCByZXZpc2lvbiBs
YWJlbHMiLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1
YnZlcnNpb25Db21taXQpOworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgZHVwbGljYXRl
ZENvbW1pdFJldmlzaW9uSWRlbnRpZmllckNvbW1pdHMpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnRHVwbGljYXRlZFJldmlzaW9uSWRlbnRpZmllcicp
OworICAgICAgICBjb25zdCByb3dzID0gYXdhaXQgVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVj
dEFsbCgnY29tbWl0cycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgs
IDApOworICAgIH0pOworCiAgICAgaXQoInNob3VsZCBzdG9yZSB0d28gY29tbWl0cyBmcm9tIGEg
dmFsaWQgc2xhdmUiLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChz
dWJ2ZXJzaW9uVHdvQ29tbWl0cykudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2
ZXJzaW9uVHdvQ29tbWl0cyk7CkBAIC0yMTUsNiArMjgzLDI1IEBAIGRlc2NyaWJlKCIvYXBpL3Jl
cG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9
KTsKICAgICB9KTsKIAorICAgIGl0KCJzaG91bGQgdXBkYXRlIGFuIGV4aXN0aW5nIGNvbW1pdCB3
aXRoIGNvbW1pdCBsYWJlbCBpZiB0aGVyZSBpcyBvbmUiLCBhc3luYyAoKSA9PiB7CisgICAgICAg
IGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBjb25zdCByZXBvcnRl
ZERhdGEgPSBzdWJ2ZXJzaW9uQ29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllci5jb21taXRzWzBd
OworICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0V2l0aFJl
dmlzaW9uSWRlbnRpZmllcik7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgncmVwb3NpdG9yaWVz
JywgeydpZCc6IDEsICduYW1lJzogJ1dlYktpdCd9KSwKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0
KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogcmVwb3J0ZWREYXRhWydy
ZXZpc2lvbiddLCAndGltZSc6IHJlcG9ydGVkRGF0YVsndGltZSddfSkKKyAgICAgICAgY29uc3Qg
cmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7Cisg
ICAgICAgIGNvbnN0IGNvbW1pdHMgPSBhd2FpdCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsKKyAg
ICAgICAgY29uc3QgY29tbWl0dGVycyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgnY29tbWl0dGVycycp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDEpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVycy5sZW5ndGgsIDEpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21lc3Nh
Z2UnXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydyZXZpc2lvbl9p
ZGVudGlmaWVyJ10sIHJlcG9ydGVkRGF0YVsncmV2aXNpb25JZGVudGlmaWVyJ10pOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRlcnNb
MF1bJ2lkJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnbmFt
ZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhvcidd
WydhY2NvdW50J10pOworICAgIH0pOworCiAgICAgaXQoInNob3VsZCBub3QgdXBkYXRlIGFuIHVu
cmVsYXRlZCBjb21taXQiLCAoKSA9PiB7CiAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5k
YXRhYmFzZSgpOwogICAgICAgICBjb25zdCBmaXJzdERhdGEgPSBzdWJ2ZXJzaW9uVHdvQ29tbWl0
cy5jb21taXRzWzBdOwpAQCAtNTkwLDYgKzY3NywxMTEgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0
LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT3duZWRDb21taXRTaG91bGRO
b3RDb250YWluVGltZXN0YW1wJyk7CiAgICAgICAgIH0pOwogICAgIH0pOworCisgICAgY29uc3Qg
aW52YWxpZE93bmVkQ29tbWl0VXNlUmV2aXNpb25JZGVudGlmaWVyQXNSZXZpc29uID0geworICAg
ICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjog
InNvbWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIk9TWCIsCisgICAgICAgICAgICAgICAgInJldmlz
aW9uIjogIlNpZXJyYTE2RDMyIiwKKyAgICAgICAgICAgICAgICAib3JkZXIiOiAxLAorICAgICAg
ICAgICAgICAgICJvd25lZENvbW1pdHMiOiB7CisgICAgICAgICAgICAgICAgICAgICJXZWJLaXQi
OiB7CisgICAgICAgICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTI3MjMyQG1haW4iLAor
ICAgICAgICAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQgUXVldWUi
LCAiYWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Via2l0Lm9yZyJ9LAorICAgICAgICAgICAgICAg
ICAgICAgICAgIm1lc3NhZ2UiOiAiV2ViS2l0IENvbW1pdCIsCisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIF0KKyAgICB9Owor
CisgICAgaXQoInNob3VsZCByZWplY3QgaW5zZXJ0aW5nIG9uZSBjb21taXQgd2l0aCBvd25lZCBj
b21taXRzIHRoYXQgdXNlIHJldmlzaW9uIGxhYmVsIGFzIHJldmlzaW9uIiwgYXN5bmMgKCkgPT4g
eworICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChpbnZhbGlkT3duZWRDb21taXRVc2VS
ZXZpc2lvbklkZW50aWZpZXJBc1Jldmlzb24pOworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMv
JywgaW52YWxpZE93bmVkQ29tbWl0VXNlUmV2aXNpb25JZGVudGlmaWVyQXNSZXZpc29uKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXZp
c2lvbicpOworICAgIH0pOworCisgICAgY29uc3QgaW52YWxpZFJldmlzaW9uSWRlbnRpZmllck93
bmVkQ29tbWl0ID0geworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAg
ICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWwor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIk9TWCIsCisgICAg
ICAgICAgICAgICAgInJldmlzaW9uIjogIlNpZXJyYTE2RDMyIiwKKyAgICAgICAgICAgICAgICAi
b3JkZXIiOiAxLAorICAgICAgICAgICAgICAgICJvd25lZENvbW1pdHMiOiB7CisgICAgICAgICAg
ICAgICAgICAgICJXZWJLaXQiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAicmV2aXNpb24i
OiAiMTQxOTc4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIi
OiAiMTI3MjMyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAi
Q29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmcifSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIldlYktpdCBDb21taXQiLAorICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAg
ICBdCisgICAgfTsKKworICAgIGl0KCJzaG91bGQgcmVqZWN0IGluc2VydGluZyBvbmUgY29tbWl0
IHdpdGggb3duZWQgY29tbWl0cyB0aGF0IGhhdmUgaW52YWxpZCByZXZpc2lvbiBsYWJlbCIsIGFz
eW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoaW52YWxpZFJldmlz
aW9uSWRlbnRpZmllck93bmVkQ29tbWl0KTsKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2Fp
dCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycs
IGludmFsaWRSZXZpc2lvbklkZW50aWZpZXJPd25lZENvbW1pdCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmV2aXNpb25JZGVudGlmaWVy
Jyk7CisgICAgfSk7CisKKyAgICBjb25zdCBpbnZhbGlkQXV0aG9yT3duZWRDb21taXQgPSB7Cisg
ICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAgICAgICAgInNsYXZlUGFzc3dvcmQi
OiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgImNvbW1pdHMiOiBbCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiT1NYIiwKKyAgICAgICAgICAgICAgICAicmV2
aXNpb24iOiAiU2llcnJhMTZEMzIiLAorICAgICAgICAgICAgICAgICJvcmRlciI6IDEsCisgICAg
ICAgICAgICAgICAgIm93bmVkQ29tbWl0cyI6IHsKKyAgICAgICAgICAgICAgICAgICAgIldlYktp
dCI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNDE5NzgiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxMjcyMzJAbWFpbiIs
CisgICAgICAgICAgICAgICAgICAgICAgICAiYXV0aG9yIjogbnVsbCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICJtZXNzYWdlIjogIldlYktpdCBDb21taXQiLAorICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICBdCisgICAgfTsK
KyAgICBpdCgic2hvdWxkIHJlamVjdCBpbnNlcnRpbmcgb25lIGNvbW1pdCB3aXRoIG93bmVkIGNv
bW1pdHMgdGhhdCBoYXZlIGludmFsaWQgYXV0aG9yIiwgYXN5bmMgKCkgPT4geworICAgICAgICBh
d2FpdCBhZGRTbGF2ZUZvclJlcG9ydChpbnZhbGlkQXV0aG9yT3duZWRDb21taXQpOworICAgICAg
ICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04o
Jy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgaW52YWxpZEF1dGhvck93bmVkQ29tbWl0KTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRBdXRob3JG
b3JtYXQnKTsKKyAgICB9KTsKKworICAgIGNvbnN0IG93bmVkQ29tbWl0V2l0aFJldmlzaW9uSWRl
bnRpZmllciA9IHsKKyAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAorICAgICAgICAi
c2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAiY29tbWl0cyI6IFsKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJPU1giLAorICAgICAg
ICAgICAgICAgICJyZXZpc2lvbiI6ICJTaWVycmExNkQzMiIsCisgICAgICAgICAgICAgICAgIm9y
ZGVyIjogMSwKKyAgICAgICAgICAgICAgICAib3duZWRDb21taXRzIjogeworICAgICAgICAgICAg
ICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjog
IjE0MTk3OCIsCisgICAgICAgICAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjog
IjEyNzIzMkBtYWluIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUi
OiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmcifSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIldlYktpdCBDb21taXQiLAorICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAg
ICAgICBdCisgICAgfTsKKworICAgIGl0KCJzaG91bGQgaW5zZXJ0IG9uZSBjb21taXQgd2l0aCBj
b21taXQgcmV2aXNpb24gbGFiZWwiLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFNs
YXZlRm9yUmVwb3J0KG93bmVkQ29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcik7CisgICAgICAg
IGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTign
L2FwaS9yZXBvcnQtY29tbWl0cy8nLCBvd25lZENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIGNvbnN0
IGNvbW1pdCA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7J3JldmlzaW9uJzogJzE0
MTk3OCd9KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFswXS5yZXZpc2lvbl9p
ZGVudGlmaWVyLCBvd25lZENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIuY29tbWl0c1swXS5v
d25lZENvbW1pdHNbJ1dlYktpdCddLnJldmlzaW9uSWRlbnRpZmllcik7CisgICAgfSk7CiB9KTsK
IAogZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PWZhbHNlIiwgZnVu
Y3Rpb24gKCkgewpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzCmluZGV4IDVjNDQ1ZmVmYzBkNzIwNGMwYmI1YTE2
ZTAyY2Y2MTM3MmZmM2ZiNjkuLmM1YTJhMmVlYzBiMzFhOGMzMGJhZDk2ZTkwMzA0NmMzOTA2ZGJl
ZTMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LXJlcG9ydC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL2FwaS1yZXBvcnQtdGVzdHMuanMKQEAgLTc3LDYgKzc3LDI5IEBAIGRlc2NyaWJlKCIvYXBp
L3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfTsKICAgICB9CiAKKyAgICBmdW5jdGlv
biByZXBvcnRXaXRoUmV2aXNpb25JZGVudGlmaWVyQ29tbWl0KCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB7CisgICAgICAgICAgICAiYnVpbGRUYWciOiAiMTIzIiwKKyAgICAgICAgICAgICJidWls
ZFRpbWUiOiAiMjAxMy0wMi0yOFQxMDoxMjowMy4zODgzMDQiLAorICAgICAgICAgICAgImJ1aWxk
ZXJOYW1lIjogInNvbWVCdWlsZGVyIiwKKyAgICAgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNs
YXZlIiwKKyAgICAgICAgICAgICJidWlsZGVyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAg
ICAgICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9uIiwKKyAgICAgICAgICAgICJ0ZXN0
cyI6IHt9LAorICAgICAgICAgICAgInJldmlzaW9ucyI6IHsKKyAgICAgICAgICAgICAgICAibWFj
T1MiOiB7CisgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxMC44LjIgMTJDNjAiCisg
ICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAg
ICAgICAgICAgICAicmV2aXNpb24iOiAiMTQxOTc3IiwKKyAgICAgICAgICAgICAgICAgICAgInJl
dmlzaW9uSWRlbnRpZmllciI6ICIxMjcyMzFAbWFpbiIsCisgICAgICAgICAgICAgICAgICAgICJ0
aW1lc3RhbXAiOiAiMjAxMy0wMi0wNlQwODo1NToyMC45WiIKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorCiAgICAgZnVuY3Rpb24gZW1wdHlTbGF2
ZVJlcG9ydCgpCiAgICAgewogICAgICAgICByZXR1cm4gewpAQCAtMzUxLDYgKzM3NCwzNyBAQCBk
ZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pOwogICAgIH0p
OwogCisgICAgaXQoInNob3VsZCBhZGQgcmV2aXNpb24gbGFiZWwiLCBhc3luYyAoKSA9PiB7Cisg
ICAgICAgIGF3YWl0IGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uSWRlbnRp
ZmllckNvbW1pdCgpKTsKKyAgICAgICAgYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTignL2FwaS9yZXBvcnQvJywgW3JlcG9ydFdpdGhSZXZpc2lvbklkZW50aWZpZXJDb21taXQo
KV0pOworICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAg
Y29uc3QgcmVwb3NpdG9yaWVzID0gYXdhaXQgZGIuc2VsZWN0QWxsKCdyZXBvc2l0b3JpZXMnKTsK
KyAgICAgICAgY29uc3QgY29tbWl0cyA9ICBhd2FpdCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsK
KyAgICAgICAgY29uc3QgYnVpbGRDb21taXRzUmVsYXRpb25zID0gYXdhaXQgIGRiLnNlbGVjdEFs
bCgnYnVpbGRfY29tbWl0cycsICdidWlsZF9jb21taXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJlcG9zaXRvcmllcy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHJlcG9zaXRvcmllcy5tYXAoKHJvdykgPT4gcm93WyduYW1lJ10pLnNvcnQoKSwgWydX
ZWJLaXQnLCAnbWFjT1MnXSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMu
bGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0
aW9ucy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRz
UmVsYXRpb25zWzBdWydidWlsZF9jb21taXQnXSwgY29tbWl0c1swXVsnaWQnXSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNbMV1bJ2J1aWxkX2NvbW1p
dCddLCBjb21taXRzWzFdWydpZCddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
Q29tbWl0c1JlbGF0aW9uc1swXVsnY29tbWl0X2J1aWxkJ10sIGJ1aWxkQ29tbWl0c1JlbGF0aW9u
c1sxXVsnY29tbWl0X2J1aWxkJ10pOworCisgICAgICAgIGxldCByZXBvc2l0b3J5SWRUb05hbWUg
PSB7fTsKKyAgICAgICAgZm9yIChsZXQgcmVwb3NpdG9yeSBvZiByZXBvc2l0b3JpZXMpCisgICAg
ICAgICAgICByZXBvc2l0b3J5SWRUb05hbWVbcmVwb3NpdG9yeVsnaWQnXV0gPSByZXBvc2l0b3J5
WyduYW1lJ107CisKKyAgICAgICAgbGV0IHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvdyA9IHt9
OworICAgICAgICBmb3IgKGxldCBjb21taXQgb2YgY29tbWl0cykKKyAgICAgICAgICAgIHJlcG9z
aXRvcnlOYW1lVG9SZXZpc2lvblJvd1tyZXBvc2l0b3J5SWRUb05hbWVbY29tbWl0WydyZXBvc2l0
b3J5J11dXSA9IGNvbW1pdDsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9y
eU5hbWVUb1JldmlzaW9uUm93WydtYWNPUyddWydyZXZpc2lvbiddLCAnMTAuOC4yIDEyQzYwJyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3db
J1dlYktpdCddWydyZXZpc2lvbiddLCAnMTQxOTc3Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktpdCddWydyZXZpc2lvbl9pZGVu
dGlmaWVyJ10sICcxMjcyMzFAbWFpbicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVw
b3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydXZWJLaXQnXVsndGltZSddLnRvU3RyaW5nKCksCisg
ICAgICAgICAgICBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7
CisgICAgfSk7CisKICAgICBpdCgic2hvdWxkIG5vdCBjcmVhdGUgYSBkdXBsaWNhdGUgYnVpbGQg
Zm9yIHRoZSBzYW1lIGJ1aWxkIG51bWJlciBpZiBidWlsZCB0aW1lcyBhcmUgY2xvc2UiLCAoKSA9
PiB7CiAgICAgICAgIGNvbnN0IGZpcnN0UmVwb3J0ID0gZW1wdHlSZXBvcnQoKTsKICAgICAgICAg
Zmlyc3RSZXBvcnRbJ2J1aWxkVGltZSddID0gJzIwMTMtMDItMjhUMTA6MTI6MDQnOwpkaWZmIC0t
Z2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVz
dC1zZXJ2ZXIuY29uZiBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVz
b3VyY2VzL3Rlc3Qtc2VydmVyLmNvbmYKaW5kZXggOTM2YjRmNGJmYWZmMDdlZGIwMzU4MzNjNDYz
ZWUxNjliZmMxNWExMS4uY2E1NTRiMTdmZDU5NDRlZGU3MWVjMWM3M2EzOWU5MGFhMGRiMzAyMCAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJj
ZXMvdGVzdC1zZXJ2ZXIuY29uZgorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL3Jlc291cmNlcy90ZXN0LXNlcnZlci5jb25mCkBAIC0xLDYgKzEsOCBAQAogU2VydmVy
Um9vdCAiL3VzciIKIExpc3RlbiA4MDgwCiAKK0xvYWRNb2R1bGUgbXBtX3ByZWZvcmtfbW9kdWxl
IGxpYmV4ZWMvYXBhY2hlMi9tb2RfbXBtX3ByZWZvcmsuc28KK0xvYWRNb2R1bGUgcGhwN19tb2R1
bGUgL3Vzci9sb2NhbC9DZWxsYXIvcGhwQDcuNC83LjQuMTYvbGliL2h0dHBkL21vZHVsZXMvbGli
cGhwNy5zbwogTG9hZE1vZHVsZSBhdXRobl9jb3JlX21vZHVsZSBsaWJleGVjL2FwYWNoZTIvbW9k
X2F1dGhuX2NvcmUuc28KIExvYWRNb2R1bGUgYXV0aHpfY29yZV9tb2R1bGUgbGliZXhlYy9hcGFj
aGUyL21vZF9hdXRoel9jb3JlLnNvCiBMb2FkTW9kdWxlIGRlZmxhdGVfbW9kdWxlIGxpYmV4ZWMv
YXBhY2hlMi9tb2RfZGVmbGF0ZS5zbwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3VuaXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy91bml0LXRlc3RzL2NvbW1pdC1sb2ctdGVzdHMuanMKaW5kZXggNzBhYmRlYmY4MWU4YWI2
MGQxZDE4MTYzZTM5OTE4NzljYjQ3MzhiNi4uOTBhNTRiNjI5ZmJjYTEyMmFmODBiZWFmYWE5OGI4
YjBkYzkyODVhOCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVz
dHMvY29tbWl0LWxvZy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5p
dC10ZXN0cy9jb21taXQtbG9nLXRlc3RzLmpzCkBAIC0xNyw2ICsxNywxNyBAQCBmdW5jdGlvbiB3
ZWJraXRDb21taXQoKQogICAgIH0pOwogfQogCitmdW5jdGlvbiB3ZWJraXRDb21taXRXaXRoUmV2
aXNpb25JZGVudGlmaWVyKCkgCit7CisgICAgcmV0dXJuIG5ldyBDb21taXRMb2coMSwgeworICAg
ICAgICBpZDogMSwKKyAgICAgICAgcmVwb3NpdG9yeTogTW9ja01vZGVscy53ZWJraXQsCisgICAg
ICAgIHJldmlzaW9uOiAnMjAwODA1JywKKyAgICAgICAgcmV2aXNpb25JZGVudGlmaWVyOiAnMTg0
Mjc2QG1haW4nLAorICAgICAgICB0aW1lOiArKG5ldyBEYXRlKCcyMDE2LTA1LTEzVDAwOjU1OjU3
Ljg0MTM0NFonKSksCisgICAgfSk7Cit9CisKIGZ1bmN0aW9uIG9sZFdlYktpdENvbW1pdCgpCiB7
CiAgICAgcmV0dXJuIG5ldyBDb21taXRMb2coMiwgewpAQCAtMjcsNiArMzgsMTcgQEAgZnVuY3Rp
b24gb2xkV2ViS2l0Q29tbWl0KCkKICAgICB9KTsKIH0KIAorZnVuY3Rpb24gb2xkV2ViS2l0Q29t
bWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpCit7CisgICAgcmV0dXJuIG5ldyBDb21taXRMb2co
MiwgeworICAgICAgICBpZDogMiwKKyAgICAgICAgcmVwb3NpdG9yeTogTW9ja01vZGVscy53ZWJr
aXQsCisgICAgICAgIHJldmlzaW9uOiAnMjAwNTc0JywKKyAgICAgICAgcmV2aXNpb25JZGVudGlm
aWVyOiAnMTc1NjA1QG1haW4nLAorICAgICAgICB0aW1lOiArKG5ldyBEYXRlKCcyMDE2LTA1LTA5
VDE0OjU5OjIzLjU1Mzc2N1onKSksCisgICAgfSk7Cit9CisKIGZ1bmN0aW9uIGdpdFdlYktpdENv
bW1pdCgpCiB7CiAgICAgcmV0dXJuIG5ldyBDb21taXRMb2coMywgewpAQCAtMzcsNiArNTksMTcg
QEAgZnVuY3Rpb24gZ2l0V2ViS2l0Q29tbWl0KCkKICAgICB9KTsKIH0KIAorZnVuY3Rpb24gZ2l0
V2ViS2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpCit7CisgICAgcmV0dXJuIG5ldyBD
b21taXRMb2coMywgeworICAgICAgICBpZDogMywKKyAgICAgICAgcmVwb3NpdG9yeTogTW9ja01v
ZGVscy53ZWJraXQsCisgICAgICAgIHJldmlzaW9uOiAnNmY4YjBkYmJkYTk1YTQ0MDUwM2I4OGRi
MWRkMDNkYWQzYTdiMDdmYicsCisgICAgICAgIHJldmlzaW9uSWRlbnRpZmllcjogJzE4NDI3NkBt
YWluJywKKyAgICAgICAgdGltZTogKyhuZXcgRGF0ZSgnMjAxNi0wNS0xM1QwMDo1NTo1Ny44NDEz
NDRaJykpLAorICAgIH0pOworfQorCiBmdW5jdGlvbiBvbGRHaXRXZWJLaXRDb21taXQoKQogewog
ICAgIHJldHVybiBuZXcgQ29tbWl0TG9nKDQsIHsKQEAgLTQ3LDYgKzgwLDE3IEBAIGZ1bmN0aW9u
IG9sZEdpdFdlYktpdENvbW1pdCgpCiAgICAgfSk7CiB9CiAKK2Z1bmN0aW9uIG9sZEdpdFdlYktp
dENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKQoreworICAgIHJldHVybiBuZXcgQ29tbWl0
TG9nKDQsIHsKKyAgICAgICAgaWQ6IDQsCisgICAgICAgIHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMu
d2Via2l0LAorICAgICAgICByZXZpc2lvbjogJ2ZmZGExNGU2ZGIwNzQ2ZDEwZDBmMDUwOTA3ZTRh
NzMyNTg1MWU1MDInLAorICAgICAgICByZXZpc2lvbklkZW50aWZpZXI6ICcxNzU2MDVAbWFpbics
CisgICAgICAgIHRpbWU6ICsobmV3IERhdGUoJzIwMTYtMDUtMDlUMTQ6NTk6MjMuNTUzNzY3Wicp
KSwKKyAgICB9KTsKK30KKwogZnVuY3Rpb24gb3N4Q29tbWl0KCkKIHsKICAgICByZXR1cm4gbmV3
IENvbW1pdExvZyg1LCB7CkBAIC0xNDcsMTAgKzE5MSwxOCBAQCBkZXNjcmliZSgnQ29tbWl0TG9n
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdENvbW1pdCgp
LmxhYmVsKCksICdyMjAwODA1Jyk7CiAgICAgICAgIH0pOwogCi0gICAgICAgIGl0KCdzaG91bGQg
dHJ1bmNhdGUgYSBHaXQgaGFzaCBhdCA4dGggY2hhcmFjdGVyJywgZnVuY3Rpb24gKCkgeworICAg
ICAgICBpdCgnc2hvdWxkIGRpc3BsYXkgcmV2aXNpb24gbGFiZWwgZm9sbG93ZWQgYnkgc3ZuIHJl
Zml4ZWQgd2l0aCAiciInLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
d2Via2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpLmxhYmVsKCksICcxODQyNzZAbWFp
biAocjIwMDgwNSknKQorICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHRydW5jYXRl
IGEgR2l0IGhhc2ggYXQgMTJ0aCBjaGFyYWN0ZXInLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZ2l0V2ViS2l0Q29tbWl0KCkubGFiZWwoKSwgJzZmOGIwZGJiZGE5NScp
OwogICAgICAgICB9KTsKIAorICAgICAgICBpdCgnc2hvdWxkIGRpc3BsYXkgcmV2aXNpb24gbGFi
ZWwgZm9sbG93ZWQgYnkgZ2l0IGhhc2ggdHJ1bmNhdGVkJywgKCkgPT4geworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGdpdFdlYktpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIo
KS5sYWJlbCgpLCAnMTg0Mjc2QG1haW4gKDZmOGIwZGJiZGE5NSknKQorICAgICAgICB9KTsKKwog
ICAgICAgICBpdCgnc2hvdWxkIG5vdCBtb2RpZnkgT1MgWCB2ZXJzaW9uJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdCgpLmxhYmVsKCksICcxMC4xMS40
IDE1RTY1Jyk7CiAgICAgICAgIH0pOwpAQCAtMTYxLDEwICsyMTMsMTggQEAgZGVzY3JpYmUoJ0Nv
bW1pdExvZycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRD
b21taXQoKS50aXRsZSgpLCAnV2ViS2l0IGF0IHIyMDA4MDUnKTsKICAgICAgICAgfSk7CiAKLSAg
ICAgICAgaXQoJ3Nob3VsZCB0cnVuY2F0ZSBhIEdpdCBoYXNoIGF0IDh0aCBjaGFyYWN0ZXInLCBm
dW5jdGlvbiAoKSB7CisgICAgICAgIGl0KCdzaG91bGQgaW5jbHVkZSByZXZpc2lvbiBsYWJlbCcs
ICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRDb21taXRXaXRo
UmV2aXNpb25JZGVudGlmaWVyKCkudGl0bGUoKSwgJ1dlYktpdCBhdCAxODQyNzZAbWFpbiAocjIw
MDgwNSknKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCB0cnVuY2F0ZSBhIEdp
dCBoYXNoIGF0IDEydGggY2hhcmFjdGVyJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGdpdFdlYktpdENvbW1pdCgpLnRpdGxlKCksICdXZWJLaXQgYXQgNmY4YjBkYmJk
YTk1Jyk7CiAgICAgICAgIH0pOwogCisgICAgICAgIGl0KCdzaG91bGQgZGlzcGxheSByZXZpc2lv
biBsYWJlbCBmb2xsb3dlZCBieSBnaXQgaGFzaCB0cnVuY2F0ZWQnLCAgKCkgPT4geworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdpdFdlYktpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50
aWZpZXIoKS50aXRsZSgpLCAnV2ViS2l0IGF0IDE4NDI3NkBtYWluICg2ZjhiMGRiYmRhOTUpJyk7
CisgICAgICAgIH0pOworCiAgICAgICAgIGl0KCdzaG91bGQgbm90IG1vZGlmeSBPUyBYIHZlcnNp
b24nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0KCku
dGl0bGUoKSwgJ09TIFggYXQgMTAuMTEuNCAxNUU2NScpOwogICAgICAgICB9KTsKQEAgLTIyMyw2
ICsyODMsMzEgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgICAgICByZXBvc2l0b3J5OiBNb2NrTW9kZWxzLm9zeAogICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgZGlzcGxheSByZXZpc2lvbiBsYWJlbCBmb2xs
b3dlZCB3aXRoIHJldmlzb24gYW5kICBjb25uZWN0IHdpdGggIi0iLCBpZiBib3RoIGhhdmUgcmV2
aXNpb24gbGFiZWwnLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHdlYmtpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKS5kaWZmKG9sZFdlYktpdENvbW1p
dFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKSksIHsKKyAgICAgICAgICAgICAgICBsYWJlbDogJzE3
NTYwNS0xODQyNzZAbWFpbiAocjIwMDU3NC1yMjAwODA1KScsCisgICAgICAgICAgICAgICAgdXJs
OiAnJywKKyAgICAgICAgICAgICAgICByZXBvc2l0b3J5OiBNb2NrTW9kZWxzLndlYmtpdAorICAg
ICAgICAgICAgfSkKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBkaXNwbGF5IHJl
dmlzaW9uIGxhYmVsIGZvbGxvd2VkIHdpdGggcmV2aXNvbiBhbmQgIGNvbm5lY3Qgd2l0aCAiLSIs
IGlmIGJvdGggaGF2ZSByZXZpc2lvbiBsYWJlbCcsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwoZ2l0V2ViS2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigp
LmRpZmYob2xkR2l0V2ViS2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpKSwgeworICAg
ICAgICAgICAgICAgIGxhYmVsOiAnMTc1NjA1LTE4NDI3NkBtYWluIChmZmRhMTRlNmRiMDcuLjZm
OGIwZGJiZGE5NSknLAorICAgICAgICAgICAgICAgIHVybDogJycsCisgICAgICAgICAgICAgICAg
cmVwb3NpdG9yeTogTW9ja01vZGVscy53ZWJraXQKKyAgICAgICAgICAgIH0pCisgICAgICAgIH0p
OworCisgICAgICAgIGl0KCdzaG91bGQgY29udGFpbiByZXZpc2lvbiBsYWJlbCwgaWYgb25lIG9m
IHRoZSBjb21taXRzIGRvZXNuYHQgaGF2ZSB0aGUgcmV2aXNpb24gbGFiZWwnLCAoKSA9PiB7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHdlYmtpdENvbW1pdFdpdGhSZXZpc2lv
bklkZW50aWZpZXIoKS5kaWZmKG9sZFdlYktpdENvbW1pdCgpKSwgeworICAgICAgICAgICAgICAg
IGxhYmVsOiAncjIwMDU3NCAtIDE4NDI3NkBtYWluIChyMjAwODA1KScsCisgICAgICAgICAgICAg
ICAgdXJsOiAnJywKKyAgICAgICAgICAgICAgICByZXBvc2l0b3J5OiBNb2NrTW9kZWxzLndlYmtp
dAorICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCiAgICAgfSk7CiAKICAgICBkZXNjcmli
ZSgnaGFzT3JkZXJpbmcnLCAoKSA9PiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424442</attachid>
            <date>2021-03-26 21:50:46 -0700</date>
            <delta_ts>2021-03-29 12:58:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222897-20210326215045.patch</filename>
            <type>text/plain</type>
            <size>53003</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MDYxCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1YTg1MWZkODI1NTA1YjQzMGFkNzg3ODZhNTQ1NzI0MzUwNTg0Zjc1Li4zNTA5NTFlOGRk
NWI2YzUyMzkwYWFiYjVmZGI5YTA0OTkxNWY2ZDY0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAyMS0wMy0xMCAgWmhpZmVpIEZhbmcgIDx6aGlmZWlf
ZmFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGNvbW1pdCByZXZpc2lvbiBsYWJlbCBzdXBw
b3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI4
OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
bmV3IGNvbHVtbiByZXZpc2lvbiBsYWJlbC4KKyAgICAgICAgTWFrZSBhbGwgY29tbWl0IGFwaSBh
bHNvIGNhbiB3b3JrIHdpdGggcmV2aXNpb24gbGFiZWwuCisgICAgICAgIENoYW5nZSB0aGUgY29t
bWl0IGxhYmVsIGRpc3BsYXkgd2l0aCBjb21taXQgcmV2aXNpb24gbGFiZWwuCisKKyAgICAgICAg
KiBicm93c2VyLXRlc3RzL2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzOiBGaXggYSBmYWlsZWQg
dGVzdCBjYXNlLCB3aGlsZSByZXF1ZXN0aW5nIHRoZSByZW1vdGUgYXBpLCAKKyAgICAgICAgd2Ug
c2hvdWxkIHdhaXQgZm9yIHRob3NlIHByb21pc2VzIHJlc29sdmVkIGFuZCB0aGVuIHdhaXQgZm9y
IGNvbW1wb25lbnQgdG8gcmVuZGVyLgorICAgICAgICAqIGluaXQtZGF0YWJhc2Uuc3FsOiBBZGQg
bmV3IGNvbHVtbiByZXZpc2lvbl9pZGVudGlmaWVyLgorICAgICAgICAqIG1pZ3JhdGUtZGF0YWJh
c2Uuc3FsOiBBZGQgbmV3IGNvbHVtbiByZXZpc2lvbl9pZGVudGlmaWVyLgorICAgICAgICAqIHB1
YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHA6IE1ha2UgYXBpIHRoYXQgd29ya3Mg
d2l0aCByZXZpc2lvbiBzaG91bGQgd29yayB3aXRoIHJldmlzaW9uIGxhYmVsLgorICAgICAgICAq
IHB1YmxpYy9pbmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocDogRGl0dG8uCisgICAgICAgICogcHVi
bGljL2luY2x1ZGUvcmVwb3J0LXByb2Nlc3Nvci5waHA6IE1ha2UgdGhlIHByb2Nlc3NvciBjYW4g
YWxzbyBpbnNlcnQgcmV2aXNpb24gbGFiZWwuCisgICAgICAgICogcHVibGljL3YzL21vZGVscy9j
b21taXQtbG9nLmpzOgorICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS51cGRhdGVTaW5nbGV0
b24pOgorICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS5yZXZpc2lvbklkZW50aWZpZXIpOgor
ICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS5sYWJlbCk6IE1ha2UgdGhlIGxhYmVsIGluY2x1
ZGUgcmV2aXNpb24gbGFiZWwgYW5kIHJldmlzaW9uLgorICAgICAgICAoQ29tbWl0TG9nLnByb3Rv
dHlwZS5kaWZmKTogTWFrZSB0aGUgZGlmZiBsYWJlbCBpbmNsdWRlIHJldmlzaW9uIGxhYmVsIGFu
ZCByZXZpc2lvbi4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanM6
CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtY29tbWl0cy10ZXN0cy5qczoKKyAg
ICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qczoKKyAgICAgICAgKHJlcG9y
dFdpdGhSZXZpc2lvbklkZW50aWZpZXJDb21taXQpOgorICAgICAgICAqIHVuaXQtdGVzdHMvY29t
bWl0LWxvZy10ZXN0cy5qczoKKwogMjAyMS0wMy0wNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbcGVyZiBkYXNoYm9hcmRdIE1vZGVybml6ZSBUaW1lU2VyaWVz
IGFuZCBUaW1lU2VyaWVzVmlldwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L2Jyb3dzZXItdGVzdHMvY29tbWl0LWxvZy12aWV3ZXItdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcwppbmRl
eCBkYmM0Y2ZjZDliYzIxNGI3MDhlZTE5OGYxZWE2NjVmMjI0MjI4NTYwLi5mODQ4OWU3Y2FjNDRl
MjMwMjBmN2U4ZjJjZTY0NDdhN2EyYzQyZjhiIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcworKysgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10
ZXN0cy5qcwpAQCAtNTUsNiArNTUsMTkgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZ1ZpZXdlcicsICgp
ID0+IHsKICAgICAgICAgIm1lc3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdlIiwKICAgICB9OwogCisg
ICAgY29uc3Qgd2Via2l0Q29tbWl0MjEwOTUwV2l0aFJldmlzaW9uSWRlbnRpZmllciA9IHsKKyAg
ICAgICAgImlkIjogIjE4NTMzOCIsCisgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NTAiLAorICAg
ICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3OEBtYWluIiwKKyAgICAgICAgInJlcG9z
aXRvcnkiOiAxLAorICAgICAgICAicHJldmlvdXNDb21taXQiOiBudWxsLAorICAgICAgICAib3du
c0NvbW1pdHMiOiBmYWxzZSwKKyAgICAgICAgInRpbWUiOiArbmV3IERhdGUoIjIwMTctMDEtMjBU
MDM6NDk6MzcuODg3WiIpLAorICAgICAgICAiYXV0aG9yTmFtZSI6ICJDb21taXQgUXVldWUiLAor
ICAgICAgICAiYXV0aG9yRW1haWwiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmciLAorICAgICAg
ICAibWVzc2FnZSI6ICJhbm90aGVyIG1lc3NhZ2UiLAorICAgIH07CisKICAgICBpdCgnc2hvdWxk
IGluaXRpYWxseSBiZSBlbXB0eSB3aXRoIG5vIHNwaW5uZXInLCAoKSA9PiB7CiAgICAgICAgIGNv
bnN0IGNvbnRleHQgPSBuZXcgQnJvd3NpbmdDb250ZXh0KCk7CiAgICAgICAgIHJldHVybiBpbXBv
cnRDb21taXRMb2dWaWV3ZXIoY29udGV4dCkudGhlbigoQ29tbWl0TG9nVmlld2VyKSA9PiB7CkBA
IC0xMjksOSArMTQyLDkgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZ1ZpZXdlcicsICgpID0+IHsKICAg
ICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIiwKICAgICAgICAgICAgICAgICAiY29tbWl0cyI6
IFt3ZWJraXRDb21taXQyMTA5NDhdLAogICAgICAgICAgICAgfSk7Ci0KKyAgICAgICAgICAgIGF3
YWl0IHJlcXVlc3RzWzBdLnByb21pc2U7CisgICAgICAgICAgICBhd2FpdCByZXF1ZXN0c1sxXS5w
cm9taXNlOwogICAgICAgICAgICAgYXdhaXQgd2FpdEZvckNvbXBvbmVudHNUb1JlbmRlcihjb250
ZXh0KTsKLQogICAgICAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdzcGlubmVyLWNvbnRh
aW5lcicpLm9mZnNldEhlaWdodCkudG8uYmUoMCk7CiAgICAgICAgICAgICBleHBlY3Qodmlld2Vy
LmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLm1hdGNoZXMoJzplbXB0eScpKS50by5iZShmYWxzZSk7
CiAgICAgICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLnRleHRD
b250ZW50KS50by5jb250YWluKCdyMjEwOTQ5Jyk7CkBAIC0xNDQsNCArMTU3LDQ3IEBAIGRlc2Ny
aWJlKCdDb21taXRMb2dWaWV3ZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogICAgIH0pOwogCisg
ICAgaXQoJ3Nob3VsZCBzaG93IHJldmlzaW9uIGxhYmVsJywgYXN5bmMgKCkgPT4geworICAgICAg
ICBjb25zdCBjb250ZXh0ID0gbmV3IEJyb3dzaW5nQ29udGV4dCgpOworICAgICAgICBjb25zdCBD
b21taXRMb2dWaWV3ZXIgPSBhd2FpdCBpbXBvcnRDb21taXRMb2dWaWV3ZXIoY29udGV4dCk7Cisg
ICAgICAgIGNvbnN0IFJlcG9zaXRvcnkgPSBjb250ZXh0LnN5bWJvbHMuUmVwb3NpdG9yeTsKKyAg
ICAgICAgY29uc3QgcmVxdWVzdHMgPSBjb250ZXh0LnN5bWJvbHMuUmVtb3RlQVBJLnJlcXVlc3Rz
OworICAgICAgICBjb25zdCB2aWV3ZXIgPSBuZXcgQ29tbWl0TG9nVmlld2VyOworICAgICAgICBj
b25zdCB3ZWJraXQgPSBuZXcgUmVwb3NpdG9yeSgxLCB7bmFtZTogJ1dlYktpdCd9KTsKKyAgICAg
ICAgY29udGV4dC5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZXdlci5lbGVtZW50KCkpOwor
CisgICAgICAgIHZpZXdlci5lbnF1ZXVlVG9SZW5kZXIoKTsKKyAgICAgICAgYXdhaXQgd2FpdEZv
ckNvbXBvbmVudHNUb1JlbmRlcihjb250ZXh0KTsKKworICAgICAgICB2aWV3ZXIudmlldyh3ZWJr
aXQsICcyMTA5NDgnLCAnMjEwOTUwJyk7CisgICAgICAgIGF3YWl0IHdhaXRGb3JDb21wb25lbnRz
VG9SZW5kZXIoY29udGV4dCk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnc3Bpbm5l
ci1jb250YWluZXInKS5vZmZzZXRIZWlnaHQpLnRvLm5vdC5iZSgwKTsKKyAgICAgICAgZXhwZWN0
KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxpc3QnKS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUo
dHJ1ZSk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgncmVwb3NpdG9yeS1uYW1lJyku
bWF0Y2hlcygnOmVtcHR5JykpLnRvLmJlKGZhbHNlKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5j
b250ZW50KCdyZXBvc2l0b3J5LW5hbWUnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignV2ViS2l0
Jyk7CisgICAgICAgIGV4cGVjdChyZXF1ZXN0cy5sZW5ndGgpLnRvLmJlKDIpOworICAgICAgICBl
eHBlY3QocmVxdWVzdHNbMF0udXJsKS50by5iZSgnL2FwaS9jb21taXRzLzEvP3ByZWNlZGluZ1Jl
dmlzaW9uPTIxMDk0OCZsYXN0UmV2aXNpb249MjEwOTUwJyk7CisgICAgICAgIGV4cGVjdChyZXF1
ZXN0c1sxXS51cmwpLnRvLmJlKCcvYXBpL2NvbW1pdHMvMS8yMTA5NDgnKTsKKyAgICAgICAgcmVx
dWVzdHNbMF0ucmVzb2x2ZSh7CisgICAgICAgICAgICAic3RhdHVzIjogIk9LIiwKKyAgICAgICAg
ICAgICJjb21taXRzIjogW3dlYmtpdENvbW1pdDIxMDk0OSwgd2Via2l0Q29tbWl0MjEwOTUwV2l0
aFJldmlzaW9uSWRlbnRpZmllcl0sCisgICAgICAgIH0pOworCisgICAgICAgIHJlcXVlc3RzWzFd
LnJlc29sdmUoeworICAgICAgICAgICAgInN0YXR1cyI6ICJPSyIsCisgICAgICAgICAgICAiY29t
bWl0cyI6IFt3ZWJraXRDb21taXQyMTA5NDhdLAorICAgICAgICB9KTsKKworICAgICAgICBhd2Fp
dCByZXF1ZXN0c1swXS5wcm9taXNlOworICAgICAgICBhd2FpdCByZXF1ZXN0c1sxXS5wcm9taXNl
OworICAgICAgICBhd2FpdCB3YWl0Rm9yQ29tcG9uZW50c1RvUmVuZGVyKGNvbnRleHQpOworICAg
ICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ3NwaW5uZXItY29udGFpbmVyJykub2Zmc2V0SGVp
Z2h0KS50by5iZSgwKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxp
c3QnKS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUoZmFsc2UpOworICAgICAgICBleHBlY3Qodmll
d2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLnRleHRDb250ZW50KS50by5jb250YWluKCcxODQy
NzhAbWFpbiAocjIxMDk1MCknKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdjb21t
aXRzLWxpc3QnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignQ29tbWl0IFF1ZXVlJyk7CisgICAg
ICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgncmVwb3NpdG9yeS1uYW1lJykubWF0Y2hlcygnOmVt
cHR5JykpLnRvLmJlKGZhbHNlKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdyZXBv
c2l0b3J5LW5hbWUnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignV2ViS2l0Jyk7CisgICAgICAg
IGV4cGVjdCh2aWV3ZXIuY29udGVudCgnY29tbWl0cy1saXN0JykucXVlcnlTZWxlY3RvcignYScp
KS50by5iZShudWxsKTsKKyAgICB9KTsKKwogfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
aW5pdC1kYXRhYmFzZS5zcWwKaW5kZXggN2ZmYzg5YWQ4MmM3NjEwNDFkMWE1NTZlODNmN2M5Njc4
YTMyZmFjMS4uMGRlY2RjZGM1NWM1YjU2YTViZTBhZDMyMGJmMWUzNWMzNjYxY2VkNCAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbApAQCAtMTAyLDYgKzEwMiw3
IEBAIENSRUFURSBUQUJMRSBjb21taXRzICgKICAgICBjb21taXRfaWQgc2VyaWFsIFBSSU1BUlkg
S0VZLAogICAgIGNvbW1pdF9yZXBvc2l0b3J5IGludGVnZXIgTk9UIE5VTEwgUkVGRVJFTkNFUyBy
ZXBvc2l0b3JpZXMgT04gREVMRVRFIENBU0NBREUsCiAgICAgY29tbWl0X3JldmlzaW9uIHZhcmNo
YXIoNjQpIE5PVCBOVUxMLAorICAgIGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyIHZhcmNoYXIo
NjQpIERFRkFVTFQgTlVMTCwKICAgICBjb21taXRfcHJldmlvdXNfY29tbWl0IGludGVnZXIgUkVG
RVJFTkNFUyBjb21taXRzIE9OIERFTEVURSBDQVNDQURFLAogICAgIGNvbW1pdF90aW1lIHRpbWVz
dGFtcCwKICAgICBjb21taXRfb3JkZXIgaW50ZWdlciwKQEAgLTEwOSw3ICsxMTAsOCBAQCBDUkVB
VEUgVEFCTEUgY29tbWl0cyAoCiAgICAgY29tbWl0X21lc3NhZ2UgdGV4dCwKICAgICBjb21taXRf
cmVwb3J0ZWQgYm9vbGVhbiBOT1QgTlVMTCBERUZBVUxUIEZBTFNFLAogICAgIGNvbW1pdF90ZXN0
YWJpbGl0eSB2YXJjaGFyKDEyOCkgREVGQVVMVCBOVUxMLAotICAgIENPTlNUUkFJTlQgY29tbWl0
X2luX3JlcG9zaXRvcnlfbXVzdF9iZV91bmlxdWUgVU5JUVVFKGNvbW1pdF9yZXBvc2l0b3J5LCBj
b21taXRfcmV2aXNpb24pKTsKKyAgICBDT05TVFJBSU5UIGNvbW1pdF9pbl9yZXBvc2l0b3J5X211
c3RfYmVfdW5pcXVlIFVOSVFVRShjb21taXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uKSwK
KyAgICBDT05TVFJBSU5UIGNvbW1pdF9zdHJpbmdfaWRlbnRpZmllcl9pbl9yZXBvc2l0b3J5X211
c3RfYmVfdW5pcXVlIFVOSVFVRShjb21taXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uX2lk
ZW50aWZpZXIpKTsKIENSRUFURSBJTkRFWCBjb21taXRfdGltZV9pbmRleCBPTiBjb21taXRzKGNv
bW1pdF90aW1lKTsKIENSRUFURSBJTkRFWCBjb21taXRfb3JkZXJfaW5kZXggT04gY29tbWl0cyhj
b21taXRfb3JkZXIpOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWln
cmF0ZS1kYXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWlncmF0ZS1kYXRh
YmFzZS5zcWwKaW5kZXggNDliZDI0OWQyYTY4NTc3NjQ0OWQzNmU4MDUyNjhmY2M0Yjg3N2FjYS4u
ODVkMzU0YzY3ODdmNTg5NThmNGIwMmI0ZDMxYjYyMWI0ZmY1NDJiMiAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL21pZ3JhdGUtZGF0YWJhc2Uuc3FsCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbApAQCAtMyw2ICszLDkgQEAgRE8g
JCQKIEJFR0lOCiBBTFRFUiBUQUJMRSBidWlsZF9yZXF1ZXN0cyBBREQgQ09MVU1OIElGIE5PVCBF
WElTVFMgcmVxdWVzdF9zdGF0dXNfZGVzY3JpcHRpb24gdmFyY2hhcigxMDI0KSBERUZBVUxUIE5V
TEw7CiBBTFRFUiBUQUJMRSBwbGF0Zm9ybXMgQUREIENPTFVNTiAgSUYgTk9UIEVYSVNUUyBwbGF0
Zm9ybV9ncm91cCBpbnRlZ2VyIFJFRkVSRU5DRVMgcGxhdGZvcm1fZ3JvdXBzIERFRkFVTFQgTlVM
TDsKK0FMVEVSIFRBQkxFIGNvbW1pdHMgQUREIENPTFVNTiBJRiBOT1QgRVhJU1RTIGNvbW1pdF9y
ZXZpc2lvbl9pZGVudGlmaWVyIHZhcmNoYXIoNjQpIERFRkFVTFQgTlVMTDsKK0FMVEVSIFRBQkxF
IGNvbW1pdHMgRFJPUCBDT05TVFJBSU5UIGNvbW1pdF9zdHJpbmdfaWRlbnRpZmllcl9pbl9yZXBv
c2l0b3J5X211c3RfYmVfdW5pcXVlOworQUxURVIgVEFCTEUgY29tbWl0cyBBREQgQ09OU1RSQUlO
VCBjb21taXRfc3RyaW5nX2lkZW50aWZpZXJfaW5fcmVwb3NpdG9yeV9tdXN0X2JlX3VuaXF1ZSBV
TklRVUUoY29tbWl0X3JlcG9zaXRvcnksIGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyKTsKIAog
Q1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgcGxhdGZvcm1fZ3JvdXBzICgKICAgICBwbGF0Zm9y
bWdyb3VwX2lkIHNlcmlhbCBQUklNQVJZIEtFWSwKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAK
aW5kZXggNmUwYmVjZDBiYzgxNjRjMDQyZmQzZmIyZjM5OThjNDE1NGZlYjBlMS4uNTA1OGY3MTNl
YWI5ZDA5OGRkMDhjNWUxZWExMmJkZmJmZTczMmE1NiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hl
ci5waHAKQEAgLTgsMTQgKzgsMTYgQEAgY2xhc3MgQ29tbWl0TG9nRmV0Y2hlciB7CiAKICAgICBz
dGF0aWMgZnVuY3Rpb24gZmluZF9jb21taXRfaWRfYnlfcmV2aXNpb24oJGRiLCAkcmVwb3NpdG9y
eV9pZCwgJHJldmlzaW9uKQogICAgIHsKLSAgICAgICAgJGNvbW1pdF9yb3dzID0gJGRiLT5xdWVy
eV9hbmRfZmV0Y2hfYWxsKCdTRUxFQ1QgY29tbWl0X2lkIEZST00gY29tbWl0cyBXSEVSRSBjb21t
aXRfcmVwb3NpdG9yeSA9ICQxIEFORCBjb21taXRfcmV2aXNpb24gPSAkMicsIGFycmF5KCRyZXBv
c2l0b3J5X2lkLCAkcmV2aXNpb24pKTsKKyAgICAgICAgJGNvbHVtbl9uYW1lID0gQ29tbWl0TG9n
RmV0Y2hlcjo6aXNfY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXIoJHJldmlzaW9uKSA/ICdjb21t
aXRfcmV2aXNpb25faWRlbnRpZmllcicgOiAnY29tbWl0X3JldmlzaW9uJzsKKyAgICAgICAgCisg
ICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgiU0VMRUNUIGNv
bW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkgPSAkMSBBTkQgJGNv
bHVtbl9uYW1lID0gJDIiLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uKSk7CiAgICAg
ICAgIGlmICgkY29tbWl0X3Jvd3MpCiAgICAgICAgICAgICByZXR1cm4gJGNvbW1pdF9yb3dzWzBd
Wydjb21taXRfaWQnXTsKIAogICAgICAgICBpZiAoIWN0eXBlX2FsbnVtKCRyZXZpc2lvbikpCiAg
ICAgICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgICAgICAkY29tbWl0X3Jvd3MgPSAkZGItPnF1
ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCBjb21taXRfaWQgRlJPTSBjb21taXRzIFdIRVJFIGNv
bW1pdF9yZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF9yZXZpc2lvbiBMSUtFICQyIExJTUlUIDIn
LCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNp
b24pIC4gJyUnKSk7CisgICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNo
X2FsbCgiU0VMRUNUIGNvbW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRv
cnkgPSAkMSBBTkQgJGNvbHVtbl9uYW1lICBMSUtFICQyIExJTUlUIDIiLCBhcnJheSgkcmVwb3Np
dG9yeV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb24pIC4gJyUnKSk7CiAg
ICAgICAgIGlmICghJGNvbW1pdF9yb3dzKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAg
ICAgIGlmIChjb3VudCgkY29tbWl0X3Jvd3MpID4gMSkKQEAgLTU1LDYgKzU3LDcgQEAgY2xhc3Mg
Q29tbWl0TG9nRmV0Y2hlciB7CiAgICAgewogICAgICAgICAkc3RhdGVtZW50cyA9ICdTRUxFQ1Qg
Y29tbWl0X2lkIGFzICJpZCIsCiAgICAgICAgICAgICBjb21taXRfcmV2aXNpb24gYXMgInJldmlz
aW9uIiwKKyAgICAgICAgICAgIGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyIGFzICJyZXZpc2lv
bklkZW50aWZpZXIiLAogICAgICAgICAgICAgY29tbWl0X3ByZXZpb3VzX2NvbW1pdCBhcyAicHJl
dmlvdXNDb21taXQiLAogICAgICAgICAgICAgY29tbWl0X3RpbWUgYXMgInRpbWUiLAogICAgICAg
ICAgICAgY29tbWl0dGVyX25hbWUgYXMgImF1dGhvck5hbWUiLApAQCAtMTkyLDggKzE5NSwxNCBA
QCBjbGFzcyBDb21taXRMb2dGZXRjaGVyIHsKICAgICAgICAgcmV0dXJuICR0aGlzLT5mb3JtYXRf
c2luZ2xlX2NvbW1pdCgkY29tbWl0KTsKICAgICB9CiAKKyAgICBwcml2YXRlIHN0YXRpYyBmdW5j
dGlvbiBpc19jb21taXRfcmV2aXNpb25faWRlbnRpZmllcigkY29tbWl0X3JldmlzaW9uX29yX3Jl
dmlzaW9uX2lkZW50aWZpZXIpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIHByZWdfbWF0Y2goJy9e
XGQrQFtcd1wuXC1dKiQvJywgJGNvbW1pdF9yZXZpc2lvbl9vcl9yZXZpc2lvbl9pZGVudGlmaWVy
KTsKKyAgICB9CisKICAgICBwcml2YXRlIGZ1bmN0aW9uIGNvbW1pdF9mb3JfcmV2aXNpb24oJHJl
cG9zaXRvcnlfaWQsICRyZXZpc2lvbikgewotICAgICAgICAkY29tbWl0X2luZm8gPSBhcnJheSgn
cmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlfaWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uKTsK
KyAgICAgICAgJGNvbW1pdF9pbmZvID0gYXJyYXkoJ3JlcG9zaXRvcnknID0+ICRyZXBvc2l0b3J5
X2lkKTsgCisgICAgICAgICRjb21taXRfaW5mb1skdGhpcy0+aXNfY29tbWl0X3JldmlzaW9uX2lk
ZW50aWZpZXIoJHJldmlzaW9uKSA/ICdyZXZpc2lvbl9pZGVudGlmaWVyJyA6ICdyZXZpc2lvbidd
ID0gJHJldmlzaW9uOwogICAgICAgICAkcm93ID0gJHRoaXMtPmRiLT5zZWxlY3RfbGFzdF9yb3co
J2NvbW1pdHMnLCAnY29tbWl0JywgJGNvbW1pdF9pbmZvKTsKICAgICAgICAgaWYgKCEkcm93KQog
ICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdVbmtub3duQ29tbWl0JywgJGNvbW1pdF9pbmZv
KTsKQEAgLTIwMSw3ICsyMTAsOCBAQCBjbGFzcyBDb21taXRMb2dGZXRjaGVyIHsKICAgICB9CiAK
ICAgICBwcml2YXRlIGZ1bmN0aW9uIGNvbW1pdF9mb3JfcmV2aXNpb25fcHJlZml4KCRyZXBvc2l0
b3J5X2lkLCAkcmV2aXNpb25fcHJlZml4KSB7Ci0gICAgICAgICRyb3dzID0gJHRoaXMtPmRiLT5x
dWVyeV9hbmRfZmV0Y2hfYWxsKCdTRUxFQ1QgKiBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3Jl
cG9zaXRvcnkgPSAkMSBBTkQgY29tbWl0X3JldmlzaW9uIExJS0UgJDIgT1JERVIgQlkgY29tbWl0
X3JldmlzaW9uIExJTUlUIDInLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0YWJhc2U6OmVzY2Fw
ZV9mb3JfbGlrZSgkcmV2aXNpb25fcHJlZml4KSAuICclJykpOworICAgICAgICAkY29sdW1uX25h
bWUgPSAkdGhpcy0+aXNfY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXIoJHJldmlzaW9uX3ByZWZp
eCkgPyAncmV2aXNpb25faWRlbnRpZmllcicgOiAncmV2aXNpb24nOworICAgICAgICAkcm93cyA9
ICR0aGlzLT5kYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgiU0VMRUNUICogRlJPTSBjb21taXRzIFdI
RVJFIGNvbW1pdF9yZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF8kY29sdW1uX25hbWUgTElLRSAk
MiBPUkRFUiBCWSBjb21taXRfJGNvbHVtbl9uYW1lIExJTUlUIDIiLCBhcnJheSgkcmVwb3NpdG9y
eV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb25fcHJlZml4KSAuICclJykp
OwogICAgICAgICBpZiAoY291bnQoJHJvd3MpID09IDApCiAgICAgICAgICAgICBleGl0X3dpdGhf
ZXJyb3IoJ1Vua25vd25Db21taXQnLCBhcnJheSgncmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlf
aWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uX3ByZWZpeCkpOwogICAgICAgICBpZiAoY291bnQo
JHJvd3MpID09IDIpIHsKQEAgLTIyNCw2ICsyMzQsNyBAQCBjbGFzcyBDb21taXRMb2dGZXRjaGVy
IHsKICAgICAgICAgcmV0dXJuIGFycmF5KAogICAgICAgICAgICAgJ2lkJyA9PiAkY29tbWl0X3Jv
d1snY29tbWl0X2lkJ10sCiAgICAgICAgICAgICAncmV2aXNpb24nID0+ICRjb21taXRfcm93Wydj
b21taXRfcmV2aXNpb24nXSwKKyAgICAgICAgICAgICdyZXZpc2lvbklkZW50aWZpZXInID0+ICRj
b21taXRfcm93Wydjb21taXRfcmV2aXNpb25faWRlbnRpZmllciddLAogICAgICAgICAgICAgJ3Jl
cG9zaXRvcnknID0+ICRjb21taXRfcm93Wydjb21taXRfcmVwb3NpdG9yeSddLAogICAgICAgICAg
ICAgJ3ByZXZpb3VzQ29tbWl0JyA9PiAkY29tbWl0X3Jvd1snY29tbWl0X3ByZXZpb3VzX2NvbW1p
dCddLAogICAgICAgICAgICAgJ3RpbWUnID0+IERhdGFiYXNlOjp0b19qc190aW1lKCRjb21taXRf
cm93Wydjb21taXRfdGltZSddKSwKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvaW5jbHVkZS9jb21taXQtdXBkYXRlci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LXVwZGF0ZXIucGhwCmluZGV4IDA4YzY4YmJlNjQx
MGFmZjA2ZGI4NzU0OTkyYTQ4YzkzN2U3MGUzMmYuLjQzMjIwZDMxOTMyMjA3ZWM4MjI4ZTIyM2Y2
NDI4NmQzYmMwYjgwNmMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvaW5jbHVkZS9jb21taXQtdXBkYXRlci5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocApAQCAtMzAsNyArMzAsNiBAQCBj
bGFzcyBDb21taXRVcGRhdGVyIHsKICAgICBwcml2YXRlIGZ1bmN0aW9uIHVwZGF0ZV9jb21taXQo
JiR1cGRhdGUsICRvd25lcl9jb21taXRfaWQsICRvd25lcl9yZXBvc2l0b3J5X2lkLCAkc2hvdWxk
X2luc2VydCkKICAgICB7CiAgICAgICAgICRjb21taXRfZGF0YSA9ICYkdGhpcy0+cmVzb2x2ZV9m
aWVsZHNfZnJvbV9kYXRhYmFzZSgkdXBkYXRlLCAkb3duZXJfcmVwb3NpdG9yeV9pZCwgJHNob3Vs
ZF9pbnNlcnQpOwotCiAgICAgICAgICRjb21taXRfc2VsZWN0X3F1ZXJ5ID0gYXJyYXkoJ3JlcG9z
aXRvcnknID0+ICRjb21taXRfZGF0YVsncmVwb3NpdG9yeSddLCAncmV2aXNpb24nID0+ICRjb21t
aXRfZGF0YVsncmV2aXNpb24nXSk7CiAgICAgICAgIGlmICgkc2hvdWxkX2luc2VydCkgewogICAg
ICAgICAgICAgJGNvbW1pdF9pZCA9ICR0aGlzLT5kYi0+dXBkYXRlX29yX2luc2VydF9yb3coJ2Nv
bW1pdHMnLCAnY29tbWl0JywgJGNvbW1pdF9zZWxlY3RfcXVlcnksICRjb21taXRfZGF0YSk7CkBA
IC03NCw2ICs3Myw3IEBAIGNsYXNzIENvbW1pdFVwZGF0ZXIgewogICAgIHByaXZhdGUgZnVuY3Rp
b24gJmNvbnN0cnVjdF91cGRhdGVfbGlzdCgmJGNvbW1pdF9pbmZvX2xpc3QsICRzaG91bGRfaW5z
ZXJ0KQogICAgIHsKICAgICAgICAgJHVwZGF0ZV9saXN0ID0gYXJyYXkoKTsKKyAgICAgICAgJGNv
bW1pdF9yZXZpc2lvbl9pZGVudGlmaWVycyA9IGFycmF5KCk7CiAKICAgICAgICAgZm9yZWFjaCAo
JGNvbW1pdF9pbmZvX2xpc3QgYXMgJiRjb21taXRfaW5mbykgewogICAgICAgICAgICAgc2VsZjo6
dmFsaWRhdGVfY29tbWl0cygkY29tbWl0X2luZm8pOwpAQCAtODEsNiArODEsMTEgQEAgY2xhc3Mg
Q29tbWl0VXBkYXRlciB7CiAgICAgICAgICAgICAkaGFzX3VwZGF0ZSA9IGNvdW50KCRjb21taXRf
ZGF0YSkgPiAxOwogCiAgICAgICAgICAgICAkdXBkYXRlID0gYXJyYXkoJ2NvbW1pdCcgPT4gJiRj
b21taXRfZGF0YSwgJ3JlcG9zaXRvcnknID0+ICYkY29tbWl0X2luZm9bJ3JlcG9zaXRvcnknXSk7
CisgICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncmV2aXNpb25JZGVudGlmaWVyJywg
JGNvbW1pdF9pbmZvKSkgeworICAgICAgICAgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCRj
b21taXRfaW5mb1sncmV2aXNpb25JZGVudGlmaWVyJ10sICRjb21taXRfcmV2aXNpb25faWRlbnRp
ZmllcnMpKQorICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZXhpdF93aXRoX2Vycm9yKCdEdXBs
aWNhdGVkUmV2aXNpb25JZGVudGlmaWVyJywgYXJyYXkoJ2NvbW1pdCcgPT4gJGNvbW1pdF9pbmZv
KSk7CisgICAgICAgICAgICAgICAgJGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyc1skY29tbWl0
X2luZm9bJ3JldmlzaW9uSWRlbnRpZmllciddXSA9IHRydWU7CisgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncHJldmlvdXNDb21taXQnLCAkY29tbWl0X2lu
Zm8pKSB7CiAgICAgICAgICAgICAgICAgJGhhc191cGRhdGUgPSB0cnVlOwogICAgICAgICAgICAg
ICAgICR1cGRhdGVbJ3ByZXZpb3VzX2NvbW1pdCddID0gJiRjb21taXRfaW5mb1sncHJldmlvdXND
b21taXQnXTsKQEAgLTEwNCw2ICsxMDksNyBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsKIAogICAg
ICAgICAgICAgJG93bmVkX2NvbW1pdF91cGRhdGVfbGlzdCA9IGFycmF5KCk7CiAgICAgICAgICAg
ICBmb3JlYWNoKCRjb21taXRfaW5mb1snb3duZWRDb21taXRzJ10gYXMgJG93bmVkX3JlcG9zaXRv
cnlfbmFtZSA9PiAmJG93bmVkX2NvbW1pdF9pbmZvKSB7CisgICAgICAgICAgICAgICAgc2VsZjo6
dmFsaWRhdGVfY29tbWl0cygkb3duZWRfY29tbWl0X2luZm8sIHRydWUpOwogICAgICAgICAgICAg
ICAgICRvd25lZF9jb21taXQgPSAmc2VsZjo6Y29uc3RydWN0X2NvbW1pdF9kYXRhKCRvd25lZF9j
b21taXRfaW5mbywgJG93bmVkX3JlcG9zaXRvcnlfbmFtZSwgJHNob3VsZF9pbnNlcnQpOwogICAg
ICAgICAgICAgICAgICRvd25lZF9jb21taXRfdXBkYXRlID0gYXJyYXkoJ2NvbW1pdCcgPT4gJiRv
d25lZF9jb21taXQsICdyZXBvc2l0b3J5JyA9PiAkb3duZWRfcmVwb3NpdG9yeV9uYW1lKTsKIApA
QCAtMTQzLDE1ICsxNDksMTggQEAgY2xhc3MgQ29tbWl0VXBkYXRlciB7CiAgICAgICAgICAgICAk
Y29tbWl0X2RhdGFbJ3RpbWUnXSA9ICRjb21taXRfaW5mb1sndGltZSddOwogICAgICAgICB9CiAK
KyAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJ3JldmlzaW9uSWRlbnRpZmllcicsICRjb21t
aXRfaW5mbykpCisgICAgICAgICAgICAkY29tbWl0X2RhdGFbJ3JldmlzaW9uX2lkZW50aWZpZXIn
XSA9ICRjb21taXRfaW5mb1sncmV2aXNpb25JZGVudGlmaWVyJ107CisKICAgICAgICAgaWYgKCRz
aG91bGRfaW5zZXJ0KQogICAgICAgICAgICAgJGNvbW1pdF9kYXRhWydyZXBvcnRlZCddID0gdHJ1
ZTsKIAogICAgICAgICByZXR1cm4gJGNvbW1pdF9kYXRhOwogICAgIH0KIAotICAgIHByaXZhdGUg
c3RhdGljIGZ1bmN0aW9uIHZhbGlkYXRlX2NvbW1pdHMoJiRjb21taXRfaW5mbykKKyAgICBwcml2
YXRlIHN0YXRpYyBmdW5jdGlvbiB2YWxpZGF0ZV9jb21taXRzKCYkY29tbWl0X2luZm8sICRpc19v
d25fY29tbWl0ID0gZmFsc2UpCiAgICAgewotICAgICAgICBpZiAoIWFycmF5X2tleV9leGlzdHMo
J3JlcG9zaXRvcnknLCAkY29tbWl0X2luZm8pKQorICAgICAgICBpZiAoIWFycmF5X2tleV9leGlz
dHMoJ3JlcG9zaXRvcnknLCAkY29tbWl0X2luZm8pICYmICEkaXNfb3duX2NvbW1pdCkKICAgICAg
ICAgICAgIGV4aXRfd2l0aF9lcnJvcignTWlzc2luZ1JlcG9zaXRvcnlOYW1lJywgYXJyYXkoJ2Nv
bW1pdCcgPT4gJGNvbW1pdF9pbmZvKSk7CiAgICAgICAgIGlmICghYXJyYXlfa2V5X2V4aXN0cygn
cmV2aXNpb24nLCAkY29tbWl0X2luZm8pKQogICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdN
aXNzaW5nUmV2aXNpb24nLCBhcnJheSgnY29tbWl0JyA9PiAkY29tbWl0X2luZm8pKTsKQEAgLTE2
MCw2ICsxNjksOCBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsKICAgICAgICAgICAgIGV4aXRfd2l0
aF9lcnJvcignSW52YWxpZEF1dGhvckZvcm1hdCcsIGFycmF5KCdjb21taXQnID0+ICRjb21taXRf
aW5mbykpOwogICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncHJldmlvdXNDb21taXQnLCAk
Y29tbWl0X2luZm8pKQogICAgICAgICAgICAgcmVxdWlyZV9mb3JtYXQoJ1JldmlzaW9uJywgJGNv
bW1pdF9pbmZvWydwcmV2aW91c0NvbW1pdCddLCAnL15bQS1aYS16MC05IFwuXSskLycpOworICAg
ICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncmV2aXNpb25JZGVudGlmaWVyJywgJGNvbW1pdF9p
bmZvKSkKKyAgICAgICAgICAgIHJlcXVpcmVfZm9ybWF0KCdSZXZpc2lvbklkZW50aWZpZXInLCAk
Y29tbWl0X2luZm9bJ3JldmlzaW9uSWRlbnRpZmllciddLCAnL15cZCtAW1x3XC5cLV0rJC8nKTsK
ICAgICB9CiAKICAgICBwcml2YXRlIGZ1bmN0aW9uIHJlc29sdmVfcmVwb3NpdG9yeSgkcmVwb3Np
dG9yeV9uYW1lLCAkb3duZXJfcmVwb3NpdG9yeV9pZCwgJHNob3VsZF9pbnNlcnQpCmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3J0LXByb2Nl
c3Nvci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3J0
LXByb2Nlc3Nvci5waHAKaW5kZXggMWJjMWRiNjQyZGJlZmVmOGVjYjA3MmUxOGI1N2U5YzkxYmMw
NzIzYy4uYWJlZDhhZTAwOGNkZmM4NGQ2MjM4N2IyZGEwZTlhMjM0MTZhMjRjNyAxMDA2NDQKLS0t
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL3JlcG9ydC1wcm9jZXNz
b3IucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9yZXBv
cnQtcHJvY2Vzc29yLnBocApAQCAtMTU5LDE0ICsxNTksMTYgQEAgY2xhc3MgUmVwb3J0UHJvY2Vz
c29yIHsKICAgICAgICAgICAgICAgICAkdGhpcy0+cm9sbGJhY2tfd2l0aF9lcnJvcignRmFpbGVk
VG9VcGRhdGVCdWlsZFJlcXVlc3QnLCBhcnJheSgnYnVpbGRSZXF1ZXN0JyA9PiAkYnVpbGRfcmVx
dWVzdF9pZCwgJ2J1aWxkJyA9PiAkYnVpbGRfaWQpKTsKICAgICAgICAgfQogCi0KICAgICAgICAg
Zm9yZWFjaCAoJHJldmlzaW9ucyBhcyAkcmVwb3NpdG9yeV9uYW1lID0+ICRyZXZpc2lvbl9kYXRh
KSB7CiAgICAgICAgICAgICAkcmVwb3NpdG9yeV9pZCA9ICR0aGlzLT5kYi0+c2VsZWN0X29yX2lu
c2VydF9yb3coJ3JlcG9zaXRvcmllcycsICdyZXBvc2l0b3J5JywgYXJyYXkoJ25hbWUnID0+ICRy
ZXBvc2l0b3J5X25hbWUsICdvd25lcicgPT4gTlVMTCkpOwogICAgICAgICAgICAgaWYgKCEkcmVw
b3NpdG9yeV9pZCkKICAgICAgICAgICAgICAgICAkdGhpcy0+cm9sbGJhY2tfd2l0aF9lcnJvcign
RmFpbGVkVG9JbnNlcnRSZXBvc2l0b3J5JywgYXJyYXkoJ25hbWUnID0+ICRyZXBvc2l0b3J5X25h
bWUpKTsKIAotICAgICAgICAgICAgJGNvbW1pdF9kYXRhID0gYXJyYXkoJ3JlcG9zaXRvcnknID0+
ICRyZXBvc2l0b3J5X2lkLCAncmV2aXNpb24nID0+ICRyZXZpc2lvbl9kYXRhWydyZXZpc2lvbidd
LCAndGltZScgPT4gYXJyYXlfZ2V0KCRyZXZpc2lvbl9kYXRhLCAndGltZXN0YW1wJykpOwotCisg
ICAgICAgICAgICAkY29tbWl0X2RhdGEgPSBhcnJheSgKKyAgICAgICAgICAgICAgICAncmVwb3Np
dG9yeScgPT4gJHJlcG9zaXRvcnlfaWQsIAorICAgICAgICAgICAgICAgICdyZXZpc2lvbicgPT4g
JHJldmlzaW9uX2RhdGFbJ3JldmlzaW9uJ10sIAorICAgICAgICAgICAgICAgICd0aW1lJyA9PiBh
cnJheV9nZXQoJHJldmlzaW9uX2RhdGEsICd0aW1lc3RhbXAnKSwgCisgICAgICAgICAgICAgICAg
J3JldmlzaW9uX2lkZW50aWZpZXInID0+IGFycmF5X2dldCgkcmV2aXNpb25fZGF0YSwgJ3Jldmlz
aW9uSWRlbnRpZmllcicsIG51bGwpKTsKICAgICAgICAgICAgICRtaXNtYXRjaGluZ19jb21taXQg
PSAkdGhpcy0+ZGItPnF1ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCAqIEZST00gYnVpbGRfY29t
bWl0cywgY29tbWl0cwogICAgICAgICAgICAgICAgIFdIRVJFIGJ1aWxkX2NvbW1pdCA9IGNvbW1p
dF9pZCBBTkQgY29tbWl0X2J1aWxkID0gJDEgQU5EIGNvbW1pdF9yZXBvc2l0b3J5ID0gJDIgQU5E
IGNvbW1pdF9yZXZpc2lvbiAhPSAkMyBMSU1JVCAxJywKICAgICAgICAgICAgICAgICBhcnJheSgk
YnVpbGRfaWQsICRyZXBvc2l0b3J5X2lkLCAkcmV2aXNpb25fZGF0YVsncmV2aXNpb24nXSkpOwpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29t
bWl0LWxvZy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2Nv
bW1pdC1sb2cuanMKaW5kZXggZTZkNGQ0NGFiYjU1NDEzNDZlMmY0YTlkNDQwMDlmNzlhNzgyOTAw
Yi4uYTE4MDQ2NjJlNWRlNjgwMjMzOTNhYjhmYTI2NmQ3MmNmOTRjNjYxMCAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9n
LmpzCkBAIC0yMCw2ICsyMCw3IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9i
amVjdCB7CiAKICAgICAgICAgY29uc29sZS5hc3NlcnQoK3RoaXMuX3Jhd0RhdGFbJ3RpbWUnXSA9
PSArcmF3RGF0YVsndGltZSddKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fcmF3RGF0
YVsncmV2aXNpb24nXSA9PSByYXdEYXRhWydyZXZpc2lvbiddKTsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQodGhpcy5fcmF3RGF0YVsncmV2aXNpb25JZGVudGlmaWVyJ10gPT0gcmF3RGF0YVsncmV2
aXNpb25JZGVudGlmaWVyJ10pOwogCiAgICAgICAgIGlmIChyYXdEYXRhLmF1dGhvck5hbWUpCiAg
ICAgICAgICAgICB0aGlzLl9yYXdEYXRhLmF1dGhvck5hbWUgPSByYXdEYXRhLmF1dGhvck5hbWU7
CkBAIC0zOSw2ICs0MCw3IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVj
dCB7CiAgICAgdGVzdGFiaWxpdHkoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWyd0ZXN0YWJpbGl0
eSddOyB9CiAgICAgYXV0aG9yKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsnYXV0aG9yTmFtZSdd
OyB9CiAgICAgcmV2aXNpb24oKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydyZXZpc2lvbiddOyB9
CisgICAgcmV2aXNpb25JZGVudGlmaWVyKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsncmV2aXNp
b25JZGVudGlmaWVyJ107IH0KICAgICBtZXNzYWdlKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsn
bWVzc2FnZSddOyB9CiAgICAgdXJsKCkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeS51cmxGb3JS
ZXZpc2lvbih0aGlzLl9yYXdEYXRhWydyZXZpc2lvbiddKTsgfQogICAgIG93bnNDb21taXRzKCkg
eyByZXR1cm4gdGhpcy5fcmF3RGF0YVsnb3duc0NvbW1pdHMnXTsgfQpAQCAtNDgsMTUgKzUwLDMy
IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgaGFzQ29t
bWl0T3JkZXIoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydvcmRlciddICE9IG51bGw7IH0KICAg
ICBzZXRPd25lckNvbW1pdHMob3duZXJDb21taXQpIHsgdGhpcy5fb3duZXJDb21taXQgPSBvd25l
ckNvbW1pdDsgfQogCi0gICAgbGFiZWwoKQorICAgIGxhYmVsKCkgeyByZXR1cm4gQ29tbWl0TG9n
Ll9mb3JtYXR0dGVkUmV2aXNpb24odGhpcy5yZXZpc2lvbigpLCB0aGlzLnJldmlzaW9uSWRlbnRp
ZmllcigpKTsgfQorCisgICAgc3RhdGljIF9yZXBvc2l0b3J5VHlwZShyZXZpc2lvbikKICAgICB7
Ci0gICAgICAgIGNvbnN0IHJldmlzaW9uID0gdGhpcy5yZXZpc2lvbigpOwotICAgICAgICBpZiAo
cGFyc2VJbnQocmV2aXNpb24pID09IHJldmlzaW9uKSAvLyBlLmcuIHIxMjM0NQotICAgICAgICAg
ICAgcmV0dXJuICdyJyArIHJldmlzaW9uOwotICAgICAgICBpZiAocmV2aXNpb24ubGVuZ3RoID09
IDQwKSAvLyBlLmcuIGdpdCBoYXNoCi0gICAgICAgICAgICByZXR1cm4gcmV2aXNpb24uc3Vic3Ry
aW5nKDAsIDEyKTsKLSAgICAgICAgcmV0dXJuIHJldmlzaW9uOworICAgICAgICBpZiAocGFyc2VJ
bnQocmV2aXNpb24pID09IHJldmlzaW9uKQorICAgICAgICAgICAgcmV0dXJuICdzdm4nOworICAg
ICAgICBpZiAocmV2aXNpb24ubGVuZ3RoID09IDQwKQorICAgICAgICAgICAgcmV0dXJuICdnaXQn
OwogICAgIH0KKworICAgIHN0YXRpYyBfZm9ybWF0dHRlZFJldmlzaW9uKHJldmlzaW9uLCByZXZp
c2lvbklkZW50aWZpZXIgPSBudWxsKSAKKyAgICB7CisgICAgICAgIGNvbnN0IGZvcm1hdHRlZFJl
dmlzaW9uID0gKCgpID0+IHsKKyAgICAgICAgICAgIHN3aXRjaCAodGhpcy5fcmVwb3NpdG9yeVR5
cGUocmV2aXNpb24pKSB7CisgICAgICAgICAgICBjYXNlICdzdm4nOgorICAgICAgICAgICAgICAg
IHJldHVybiAncicgKyByZXZpc2lvbjsgLy8gZS5nLiByMTIzNDUKKyAgICAgICAgICAgIGNhc2Ug
J2dpdCc6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJldmlzaW9uLnN1YnN0cmluZygwLCAxMik7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmV2aXNpb247CisgICAgICAgIH0p
KCk7CisgICAgICAgIGlmIChyZXZpc2lvbklkZW50aWZpZXIpCisgICAgICAgICAgICByZXR1cm4g
YCR7cmV2aXNpb25JZGVudGlmaWVyfSAoJHtmb3JtYXR0ZWRSZXZpc2lvbn0pYDsKKyAgICAgICAg
cmV0dXJuIGZvcm1hdHRlZFJldmlzaW9uOworICAgIH0KKwogICAgIHRpdGxlKCkgeyByZXR1cm4g
dGhpcy5fcmVwb3NpdG9yeS5uYW1lKCkgKyAnIGF0ICcgKyB0aGlzLmxhYmVsKCk7IH0KIAogICAg
IGRpZmYocHJldmlvdXNDb21taXQpCkBAIC02OCwxNyArODcsMjQgQEAgY2xhc3MgQ29tbWl0TG9n
IGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKICAgICAgICAgaWYgKCFwcmV2aW91c0NvbW1pdCkK
ICAgICAgICAgICAgIHJldHVybiB7cmVwb3NpdG9yeTogcmVwb3NpdG9yeSwgbGFiZWw6IHRoaXMu
bGFiZWwoKSwgdXJsOiB0aGlzLnVybCgpfTsKIAotICAgICAgICBjb25zdCB0byA9IHRoaXMucmV2
aXNpb24oKTsKLSAgICAgICAgY29uc3QgZnJvbSA9IHByZXZpb3VzQ29tbWl0LnJldmlzaW9uKCk7
Ci0gICAgICAgIGxldCBsYWJlbCA9IG51bGw7Ci0gICAgICAgIGlmIChwYXJzZUludChmcm9tKSA9
PSBmcm9tKS8vIGUuZy4gcjEyMzQ1LgotICAgICAgICAgICAgbGFiZWwgPSBgciR7ZnJvbX0tciR7
dGhpcy5yZXZpc2lvbigpfWA7Ci0gICAgICAgIGVsc2UgaWYgKHRvLmxlbmd0aCA9PSA0MCkgLy8g
ZS5nLiBnaXQgaGFzaAotICAgICAgICAgICAgbGFiZWwgPSBgJHtmcm9tLnN1YnN0cmluZygwLCAx
Mil9Li4ke3RvLnN1YnN0cmluZygwLCAxMil9YDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
bGFiZWwgPSBgJHtmcm9tfSAtICR7dG99YDsKLQotICAgICAgICByZXR1cm4ge3JlcG9zaXRvcnk6
IHJlcG9zaXRvcnksIGxhYmVsOiBsYWJlbCwgdXJsOiByZXBvc2l0b3J5LnVybEZvclJldmlzaW9u
UmFuZ2UoZnJvbSwgdG8pfTsKKyAgICAgICAgY29uc3QgdG9SZXZpc2lvbiA9IHRoaXMucmV2aXNp
b24oKTsKKyAgICAgICAgY29uc3QgZnJvbVJldmlzaW9uID0gcHJldmlvdXNDb21taXQucmV2aXNp
b24oKTsKKyAgICAgICAgY29uc3QgaWRlbnRpZmllclBhdHRlcm4gPSAvKD88bnVtYmVyPlxkKylA
KD88YnJhbmNoPltcd1wuXC1dKykvOworICAgICAgICBjb25zdCByZXBvc2l0b3J5VHlwZSA9IENv
bW1pdExvZy5fcmVwb3NpdG9yeVR5cGUodG9SZXZpc2lvbik7CisgICAgICAgCisgICAgICAgIGNv
bnN0IGxhYmVsID0gKChmcm9tTWF0Y2gsIHRvTWF0Y2gpID0+IHsKKyAgICAgICAgICAgIGNvbnN0
IHNlcGFyYXRvciA9IHJlcG9zaXRvcnlUeXBlID09ICdnaXQnID8gJy4uJyA6IChyZXBvc2l0b3J5
VHlwZSA9PSAnc3ZuJyA/ICctJyA6ICcgLSAnKTsKKyAgICAgICAgICAgIGNvbnN0IHJldmlzaW9u
UmFuZ2UgPSBgJHtDb21taXRMb2cuX2Zvcm1hdHR0ZWRSZXZpc2lvbihmcm9tUmV2aXNpb24pfSR7
c2VwYXJhdG9yfSR7Q29tbWl0TG9nLl9mb3JtYXR0dGVkUmV2aXNpb24odG9SZXZpc2lvbil9YDsK
KyAgICAgICAgICAgIGlmIChmcm9tTWF0Y2ggJiYgdG9NYXRjaCkgeworICAgICAgICAgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KGZyb21NYXRjaC5ncm91cHMuYnJhbmNoID09IHRvTWF0Y2guZ3JvdXBz
LmJyYW5jaCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGAke2Zyb21NYXRjaC5ncm91cHMubnVt
YmVyfS0ke3RvTWF0Y2guZ3JvdXBzLm51bWJlcn1AJHtmcm9tTWF0Y2guZ3JvdXBzLmJyYW5jaH0g
KCR7cmV2aXNpb25SYW5nZX0pYDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmcm9t
TWF0Y2ggfHwgdG9NYXRjaCkKKyAgICAgICAgICAgICAgICByZXR1cm4gYCR7cHJldmlvdXNDb21t
aXQubGFiZWwoKX0gLSAke3RoaXMubGFiZWwoKX1gOworICAgICAgICAgICAgcmV0dXJuIHJldmlz
aW9uUmFuZ2U7CisgICAgICAgIH0pKGlkZW50aWZpZXJQYXR0ZXJuLmV4ZWMocHJldmlvdXNDb21t
aXQucmV2aXNpb25JZGVudGlmaWVyKCkpLCBpZGVudGlmaWVyUGF0dGVybi5leGVjKHRoaXMucmV2
aXNpb25JZGVudGlmaWVyKCkpKTsKKworICAgICAgICByZXR1cm4ge3JlcG9zaXRvcnksIGxhYmVs
LCB1cmw6IHJlcG9zaXRvcnkudXJsRm9yUmV2aXNpb25SYW5nZShmcm9tUmV2aXNpb24sIHRvUmV2
aXNpb24pfTsKICAgICB9CiAKICAgICBzdGF0aWMgZmV0Y2hMYXRlc3RDb21taXRGb3JQbGF0Zm9y
bShyZXBvc2l0b3J5LCBwbGF0Zm9ybSkKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzCmluZGV4IDI4NTY5ZjA2
MzczMDRlM2E2MmNmNzcwMDkyMzkzZjdmMGU3MzY1OTcuLmEzMzEyMWEwZWMxMWFmMzAxNGVmZjQ0
ZTkwMDJjYmIwMWU0YzA0ZGYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcwpAQCAtMTcsNiArMTcsNyBA
QCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAogICAgICAgICAgICAgICAg
ICJyZXZpc2lvbiI6ICIyMTA5NDgiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZp
ZXIiOiAiMTg0Mjc2QG1haW4iLAogICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBU
MDI6NTI6MzQuNTc3WiIsCiAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJaYWxh
biBCdWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKICAgICAgICAgICAgICAg
ICAibWVzc2FnZSI6ICJhIG1lc3NhZ2UiLApAQCAtMjQsNiArMjUsNyBAQCBkZXNjcmliZSgiL2Fw
aS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAogICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIy
MTA5NDkiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0Mjc3QG1h
aW4iLAogICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1WiIs
CiAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDaHJpcyBEdW1leiIsICJhY2Nv
dW50IjogImNkdW1lekBhcHBsZS5jb20ifSwKICAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJz
b21lIG1lc3NhZ2UiLApAQCAtMzIsMTIgKzM0LDUzIEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMv
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIs
CiAgICAgICAgICAgICAgICAgInByZXZpb3VzQ29tbWl0IjogIjIxMDk0OSIsCiAgICAgICAgICAg
ICAgICAgInJldmlzaW9uIjogIjIxMDk1MCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRl
bnRpZmllciI6ICIxODQyNzhAbWFpbiIsCiAgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0w
MS0yMFQwMzo0OTozNy44ODdaIiwKICAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjog
IkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50IjogImNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnIn0sCiAg
ICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdlIiwKKyAgICAgICAgICAg
IH0sCisgICAgICAgIF0KKyAgICB9OworCisgICAgY29uc3Qgc3ViY2Vyc2lvbkNvbW1pdHNXaXRo
RmFrZVJldmlzaW9uSWRlbnRpZmllciA9IHsKKyAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xh
dmUiLAorICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAi
Y29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6
ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDgiLAorICAgICAg
ICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0Mjc2QG1haW4iLAorICAgICAgICAg
ICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6NTI6MzQuNTc3WiIsCisgICAgICAgICAgICAg
ICAgImF1dGhvciI6IHsibmFtZSI6ICJaYWxhbiBCdWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBh
cHBsZS5jb20ifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJhIG1lc3NhZ2UiLAorICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6
ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDkiLAorICAgICAg
ICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0Mjc3QG1haW4iLAorICAgICAgICAg
ICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1WiIsCisgICAgICAgICAgICAg
ICAgImF1dGhvciI6IHsibmFtZSI6ICJDaHJpcyBEdW1leiIsICJhY2NvdW50IjogImNkdW1lekBh
cHBsZS5jb20ifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJzb21lIG1lc3NhZ2UiLAor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9y
eSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJwcmV2aW91c0NvbW1pdCI6ICIyMTA5NDki
LAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NTAiLAorICAgICAgICAgICAgICAg
ICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0Mjc4QG1haW4iLAorICAgICAgICAgICAgICAgICJ0
aW1lIjogIjIwMTctMDEtMjBUMDM6NDk6MzcuODg3WiIsCisgICAgICAgICAgICAgICAgImF1dGhv
ciI6IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Vi
a2l0Lm9yZyJ9LAorICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImFub3RoZXIgbWVzc2FnZSIs
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0
b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk1MSIsCisg
ICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxODQyNzhAc29tZXRoaW5nIiwK
KyAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjQ5OjQwLjg4N1oiLAorICAg
ICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQi
OiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmcifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6
ICJhbm90aGVyIG1lc3NhZ2UiLAogICAgICAgICAgICAgfQogICAgICAgICBdCi0gICAgfQorICAg
IH07CiAKICAgICBjb25zdCBjb21taXRzT25lUHJlZml4T2ZUaGVPdGhlciA9IHsKICAgICAgICAg
InNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLApAQCAtNDYsNiArODksNyBAQCBkZXNjcmliZSgiL2Fw
aS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAogICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIy
MTA5NCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxODQyNzJAbWFp
biIsCiAgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMjo1MjozNC41NzdaIiwK
ICAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIlphbGFuIEJ1anRhcyIsICJhY2Nv
dW50IjogInphbGFuQGFwcGxlLmNvbSJ9LAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImEg
bWVzc2FnZSIsCkBAIC01Myw2ICs5Nyw3IEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5Ijog
IldlYktpdCIsCiAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0OSIsCisgICAgICAg
ICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxODQyNzdAbWFpbiIsCiAgICAgICAgICAg
ICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMzoyMzo1MC42NDVaIiwKICAgICAgICAgICAgICAg
ICAiYXV0aG9yIjogeyJuYW1lIjogIkNocmlzIER1bWV6IiwgImFjY291bnQiOiAiY2R1bWV6QGFw
cGxlLmNvbSJ9LAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogInNvbWUgbWVzc2FnZSIsCkBA
IC01MjQsNiArNTY5LDQxIEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCisgICAgICAgIGl0KCJzaG91bGQgcmV0
dXJuIGNvbW1pdCB3aXRoIGNvbW1pdCByZXZpc2lvbiBsYWJlbCIsIGFzeW5jICgpID0+IHsKKyAg
ICAgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRzKTsKKyAg
ICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5w
b3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0cyk7CisgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAg
ICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTihgL2FwaS9jb21taXRzL1dlYktpdC8ke3N1YnZlcnNpb25Db21taXRzLmNvbW1pdHNbMF0u
cmV2aXNpb25JZGVudGlmaWVyfWApOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3VsdC5jb21taXRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVB
c09uZVN1Ym1pdHRlZChyZXN1bHQuY29tbWl0c1swXSwgc3VidmVyc2lvbkNvbW1pdHMuY29tbWl0
c1swXSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuICdBbWJpZ3Vv
dXNSZXZpc2lvblByZWZpeCcgd2hlbiBtb3JlIHRoYW4gb25lIGNvbW1pdHMgYXJlIGZvdW5kIGZv
ciBhIHJldmlzaW9uIGxhYmVsIHByZWZpeCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNv
bnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7CisgICAgICAgICAgICBhd2FpdCBh
ZGRTbGF2ZUZvclJlcG9ydChzdWJjZXJzaW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25JZGVudGlm
aWVyKTsKKyAgICAgICAgICAgIGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkv
cmVwb3J0LWNvbW1pdHMvJywgc3ViY2Vyc2lvbkNvbW1pdHNXaXRoRmFrZVJldmlzaW9uSWRlbnRp
Zmllcik7CisgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTign
L2FwaS9jb21taXRzL1dlYktpdC8xODQyNzhAP3ByZWZpeC1tYXRjaD10cnVlJyk7CisgICAgICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ0FtYmlndW91c1Jldmlz
aW9uUHJlZml4Jyk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCJzaG91bGQgbm90IHJldHVy
biAnQW1iaWd1b3VzUmV2aXNpb25QcmVmaXgnIHdoZW4gdGhlcmUgaXMgYSBjb21taXQgcmV2aXNp
b24gbGFiZWwgZXh0cmFjdCBtYXRjaGVzIHNwZWNpZmllZCByZXZpc2lvbiBwcmVmaXgiLCBhc3lu
YyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCByZW1vdGUgPSBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpOworICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3ViY2Vyc2lvbkNvbW1p
dHNXaXRoRmFrZVJldmlzaW9uSWRlbnRpZmllcik7CisgICAgICAgICAgICBhd2FpdCByZW1vdGUu
cG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YmNlcnNpb25Db21t
aXRzV2l0aEZha2VSZXZpc2lvbklkZW50aWZpZXIpOworICAgICAgICAgICAgY29uc3QgcmVzdWx0
ID0gYXdhaXQgcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMTg0Mjc4QG1haW4/
cHJlZml4LW1hdGNoPXRydWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1
bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
cmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydENvbW1pdElz
U2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJjZXJzaW9uQ29tbWl0
c1dpdGhGYWtlUmV2aXNpb25JZGVudGlmaWVyWydjb21taXRzJ11bMl0pOworICAgICAgICB9KTsK
KworICAgICAgICBpdCgic2hvdWxkIHJldHVybiAnVW5rbm93bkNvbW1pdCcgd2hlbiBubyBjb21t
aXQgaXMgZm91bmQgZm9yIGEgcmV2aXNpb24gbGFiZWwgcHJlZml4IiwgYXN5bmMgKCkgPT4gewor
ICAgICAgICAgICAgY29uc3QgcmVtb3RlID0gVGVzdFNlcnZlci5yZW1vdGVBUEkoKTsKKyAgICAg
ICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YmNlcnNpb25Db21taXRzV2l0aEZha2VS
ZXZpc2lvbklkZW50aWZpZXIpOworICAgICAgICAgICAgYXdhaXQgcmVtb3RlLnBvc3RKU09OV2l0
aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJjZXJzaW9uQ29tbWl0c1dpdGhGYWtl
UmV2aXNpb25JZGVudGlmaWVyKTsKKyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJl
bW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzE4NDI3OEB4P3ByZWZpeC1tYXRjaD10
cnVlJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwg
J1Vua25vd25Db21taXQnKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiAKICAgICBkZXNjcmliZSgn
L2FwaS9jb21taXRzLzxyZXBvc2l0b3J5Pi9vd25lZC1jb21taXRzP293bmVyLXJldmlzaW9uPTxj
b21taXQ+JywgKCkgPT4gewpAQCAtNzI3LDYgKzgwNywzMyBAQCBkZXNjcmliZSgiL2FwaS9jb21t
aXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIAorICAg
ICAgICBpdCgic2hvdWxkIHJldHVybiByZXBvcnRlZCBjb21taXRzIGluIHRoZSBzcGVjaWZpZWQg
cmV2aXNpb24gbGFiZWwgcmFuZ2UiLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBk
YiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgICAgIGF3YWl0IGRiLmluc2VydCgn
cmVwb3NpdG9yaWVzJywgeydpZCc6IDEsICduYW1lJzogJ1dlYktpdCd9KTsKKyAgICAgICAgICAg
IGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6
ICcyMTA5NDgnLCAncmV2aXNpb25faWRlbnRpZmllcic6ICcxODQyNzZAbWFpbicsICd0aW1lJzog
JzIwMTctMDEtMjBUMDI6NTI6MzQuNTc3WicsICdyZXBvcnRlZCc6IHRydWV9KTsKKyAgICAgICAg
ICAgIGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lv
bic6ICcyMTA5NDknLCAncmV2aXNpb25faWRlbnRpZmllcic6ICcxODQyNzdAbWFpbicsICd0aW1l
JzogJzIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1WicsICdyZXBvcnRlZCc6IHRydWV9KTsKKyAgICAg
ICAgICAgIGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZp
c2lvbic6ICcyMTA5NTAnLCAncmV2aXNpb25faWRlbnRpZmllcic6ICcxODQyNzhAbWFpbicsICd0
aW1lJzogJzIwMTctMDEtMjBUMDM6NDk6MzcuODg3WicsICdyZXBvcnRlZCc6IHRydWV9KTsKKyAg
ICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8/cHJlY2VkaW5nUmV2aXNpb249MTg0Mjc2QG1haW4m
bGFzdFJldmlzaW9uPTE4NDI3OEBtYWluJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnRD
b21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgeworICAgICAg
ICAgICAgICAgIHByZXZpb3VzQ29tbWl0OiBudWxsLAorICAgICAgICAgICAgICAgIHJldmlzaW9u
OiAnMjEwOTQ5JywKKyAgICAgICAgICAgICAgICByZXZpc2lvbklkZW50aWZpZXI6ICcxODQyODlA
bWFpbicsCisgICAgICAgICAgICAgICAgdGltZTogJzIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1Wics
CisgICAgICAgICAgICAgICAgYXV0aG9yOiB7bmFtZTogbnVsbCwgYWNjb3VudDogbnVsbH0sCisg
ICAgICAgICAgICAgICAgbWVzc2FnZTogbnVsbCwKKyAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMV0s
IHsKKyAgICAgICAgICAgICAgICBwcmV2aW91c0NvbW1pdDogbnVsbCwKKyAgICAgICAgICAgICAg
ICByZXZpc2lvbjogJzIxMDk1MCcsCisgICAgICAgICAgICAgICAgcmV2aXNpb25JZGVudGlmaWVy
OiAnMTg0MjkwQG1haW4nLAorICAgICAgICAgICAgICAgIHRpbWU6ICcyMDE3LTAxLTIwVDAzOjQ5
OjM3Ljg4N1onLAorICAgICAgICAgICAgICAgIGF1dGhvcjoge25hbWU6IG51bGwsIGFjY291bnQ6
IG51bGx9LAorICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG51bGwsCisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfSk7CisKICAgICAgICAgaXQoInNob3VsZCBub3QgaW5jbHVkZSBhIHJldmlzaW9u
IG5vdCB3aXRoaW4gdGhlIHNwZWNpZmllZCByYW5nZSIsICgpID0+IHsKICAgICAgICAgICAgIGNv
bnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwogICAgICAgICAgICAgY29uc3QgcmVtb3Rl
ID0gVGVzdFNlcnZlci5yZW1vdGVBUEkoKTsKQEAgLTc1MCw2ICs4NTcsMjMgQEAgZGVzY3JpYmUo
Ii9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CiAKKyAgICAgICAgaXQoInNob3VsZCBub3QgaW5jbHVkZSBhIHJldmlzaW9uIG5vdCB3aXRo
aW4gdGhlIHNwZWNpZmllZCBjb21taXQgcmV2aXNpb24gbGFiZWwgcmFuZ2UiLCBhc3luYyAoKSA9
PiB7CisgICAgICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAg
ICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7CisgICAgICAgICAg
ICBhd2FpdCBkYi5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHsnaWQnOiAxLCAnbmFtZSc6ICdXZWJL
aXQnfSksCisgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRv
cnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTQ3JywgJ3JldmlzaW9uX2lkZW50aWZpZXInOiAnMTg0
Mjc1QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIwVDAyOjM4OjQ1LjQ4NVonLCAncmVwb3J0ZWQn
OiBmYWxzZX0pOworICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBv
c2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk0OCcsICdyZXZpc2lvbl9pZGVudGlmaWVyJzog
JzE4NDI3NkBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMjo1MjozNC41NzdaJywgJ3JlcG9y
dGVkJzogZmFsc2V9KTsKKyAgICAgICAgICAgIGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsn
cmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6ICcyMTA5NDknLCAncmV2aXNpb25faWRlbnRpZmll
cic6ICcxODQyNzdAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1WicsICdy
ZXBvcnRlZCc6IGZhbHNlfSk7CisgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1pdHMn
LCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTUwJywgJ3JldmlzaW9uX2lkZW50
aWZpZXInOiAnMTg0Mjc4QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIwVDAzOjQ5OjM3Ljg4N1on
LCAncmVwb3J0ZWQnOiBmYWxzZX0pOworICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBv
cnQoc3VidmVyc2lvbkNvbW1pdHMpOworICAgICAgICAgICAgYXdhaXQgcmVtb3RlLnBvc3RKU09O
V2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0cyk7Cisg
ICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21t
aXRzL1dlYktpdC8/cHJlY2VkaW5nUmV2aXNpb249MTg0Mjc1QG1haW4mbGFzdFJldmlzaW9uPTE4
NDI3N0BtYWluJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdFsn
Y29tbWl0cyddLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09u
ZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMnXVswXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2NvbW1p
dHMnXVswXSk7CisgICAgICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChy
ZXN1bHRbJ2NvbW1pdHMnXVsxXSwgc3VidmVyc2lvbkNvbW1pdHNbJ2NvbW1pdHMnXVsxXSk7Cisg
ICAgICAgIH0pOworCiAgICAgfSk7CiAKIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtY29tbWl0cy10ZXN0
cy5qcwppbmRleCBiNGVlNzI2ZjM1NTMwMmFiMThkNmM3MzZjYmI0MGMzMGM0YjE4NTliLi45ZTZh
MDBhOTc3ZmEyMWI5NDRmNDlkY2FmMWU3NmQ3OWVkNDM2ZmMxIDEwMDY0NAotLS0gYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtY29tbWl0cy10ZXN0cy5q
cworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQt
Y29tbWl0cy10ZXN0cy5qcwpAQCAtMjYsNiArMjYsMjAgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0
LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9
CiAgICAgICAgIF0sCiAgICAgfTsKKyAgICBjb25zdCBzdWJ2ZXJzaW9uQ29tbWl0V2l0aFJldmlz
aW9uSWRlbnRpZmllciA9IHsKKyAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAorICAg
ICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAiY29tbWl0cyI6
IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQi
LAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNDE5NzciLAorICAgICAgICAgICAgICAg
ICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTI3MjMxQG1haW4iLAorICAgICAgICAgICAgICAgICJ0
aW1lIjogIjIwMTMtMDItMDZUMDg6NTU6MjAuOVoiLAorICAgICAgICAgICAgICAgICJhdXRob3Ii
OiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmcifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJzb21lIG1lc3NhZ2UiLAorICAg
ICAgICAgICAgfQorICAgICAgICBdLAorICAgIH07CiAgICAgY29uc3Qgc3VidmVyc2lvbkludmFs
aWRDb21taXQgPSB7CiAgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKICAgICAgICAg
InNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKQEAgLTc2LDYgKzkwLDQ0IEBAIGRlc2Ny
aWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICBdCiAgICAgfQogCisgICAgY29uc3QgZHVwbGljYXRlZENvbW1pdFJldmlzaW9u
SWRlbnRpZmllckNvbW1pdHMgPSB7CisgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwK
KyAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgImNvbW1p
dHMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2Vi
S2l0IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQ4IiwKKyAgICAgICAgICAg
ICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3NkBtYWluIiwKKyAgICAgICAgICAgICAg
ICAidGltZSI6ICIyMDE3LTAxLTIwVDAyOjUyOjM0LjU3N1oiLAorICAgICAgICAgICAgICAgICJh
dXRob3IiOiB7Im5hbWUiOiAiWmFsYW4gQnVqdGFzIiwgImFjY291bnQiOiAiemFsYW5AYXBwbGUu
Y29tIn0sCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYSBtZXNzYWdlIiwKKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2Vi
S2l0IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQ5IiwKKyAgICAgICAgICAg
ICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3NkBtYWluIiwKKyAgICAgICAgICAgICAg
ICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjIzOjUwLjY0NVoiLAorICAgICAgICAgICAgICAgICJh
dXRob3IiOiB7Im5hbWUiOiAiQ2hyaXMgRHVtZXoiLCAiYWNjb3VudCI6ICJjZHVtZXpAYXBwbGUu
Y29tIn0sCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAic29tZSBtZXNzYWdlIiwKKyAgICAg
ICAgICAgIH0sCisgICAgICAgIF0KKyAgICB9CisKKyAgICBjb25zdCBpbnZhbGlkQ29tbWl0UmV2
aXNpb25JZGVudGlmaWVyQ29tbWl0cyA9IHsKKyAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xh
dmUiLAorICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAi
Y29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6
ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDgiLAorICAgICAg
ICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0Mjc2IiwKKyAgICAgICAgICAgICAg
ICAidGltZSI6ICIyMDE3LTAxLTIwVDAyOjUyOjM0LjU3N1oiLAorICAgICAgICAgICAgICAgICJh
dXRob3IiOiB7Im5hbWUiOiAiWmFsYW4gQnVqdGFzIiwgImFjY291bnQiOiAiemFsYW5AYXBwbGUu
Y29tIn0sCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYSBtZXNzYWdlIiwKKyAgICAgICAg
ICAgIH0sCisgICAgICAgIF0KKyAgICB9CisKICAgICBpdCgic2hvdWxkIHJlamVjdCBlcnJvciB3
aGVuIHNsYXZlIG5hbWUgaXMgbWlzc2luZyIsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywge30pLnRo
ZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9u
c2VbJ3N0YXR1cyddLCAnTWlzc2luZ1NsYXZlTmFtZScpOwpAQCAtMTQ1LDYgKzE5NywyMiBAQCBk
ZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKKyAgICBpdCgic2hvdWxkIHJlamVjdCBhbiBp
bnZhbGlkIHJldmlzaW9uIGxhYmVsIiwgYXN5bmMgKCkgPT4geworICAgICAgICBhd2FpdCBhZGRT
bGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0KTsKKyAgICAgICAgY29uc3QgcmVzcG9uc2Ug
PSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21t
aXRzLycsIGludmFsaWRDb21taXRSZXZpc2lvbklkZW50aWZpZXJDb21taXRzKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXZpc2lvbklk
ZW50aWZpZXInKTsKKyAgICAgICAgY29uc3Qgcm93cyA9IGF3YWl0IFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKS5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJv
d3MubGVuZ3RoLCAwKTsKKyAgICB9KTsKKworICAgIGl0KCJzaG91bGQgcmVqZWN0IHdpdGggZHVw
bGljYXRlZCBjb21taXQgcmV2aXNpb24gbGFiZWxzIiwgYXN5bmMgKCkgPT4geworICAgICAgICBh
d2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0KTsKKyAgICAgICAgY29uc3Qg
cmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC1jb21taXRzLycsIGR1cGxpY2F0ZWRDb21taXRSZXZpc2lvbklkZW50aWZpZXJDb21taXRz
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0R1cGxp
Y2F0ZWRSZXZpc2lvbklkZW50aWZpZXInKTsKKyAgICAgICAgY29uc3Qgcm93cyA9IGF3YWl0IFRl
c3RTZXJ2ZXIuZGF0YWJhc2UoKS5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAwKTsKKyAgICB9KTsKKwogICAgIGl0KCJzaG91bGQg
c3RvcmUgdHdvIGNvbW1pdHMgZnJvbSBhIHZhbGlkIHNsYXZlIiwgKCkgPT4gewogICAgICAgICBy
ZXR1cm4gYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvblR3b0NvbW1pdHMpLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9h
cGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lvblR3b0NvbW1pdHMpOwpAQCAtMjE1LDYgKzI4
MywyNSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKKyAgICBpdCgic2hvdWxkIHVw
ZGF0ZSBhbiBleGlzdGluZyBjb21taXQgd2l0aCBjb21taXQgbGFiZWwgaWYgdGhlcmUgaXMgb25l
IiwgYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2Uo
KTsKKyAgICAgICAgY29uc3QgcmVwb3J0ZWREYXRhID0gc3VidmVyc2lvbkNvbW1pdFdpdGhSZXZp
c2lvbklkZW50aWZpZXIuY29tbWl0c1swXTsKKyAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBv
cnQoc3VidmVyc2lvbkNvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIpOworICAgICAgICBhd2Fp
dCBkYi5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHsnaWQnOiAxLCAnbmFtZSc6ICdXZWJLaXQnfSks
CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdy
ZXZpc2lvbic6IHJlcG9ydGVkRGF0YVsncmV2aXNpb24nXSwgJ3RpbWUnOiByZXBvcnRlZERhdGFb
J3RpbWUnXX0pCisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0
V2l0aFJldmlzaW9uSWRlbnRpZmllcik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBjb25zdCBjb21taXRzID0gYXdhaXQgZGIu
c2VsZWN0QWxsKCdjb21taXRzJyk7CisgICAgICAgIGNvbnN0IGNvbW1pdHRlcnMgPSBhd2FpdCBk
Yi5zZWxlY3RBbGwoJ2NvbW1pdHRlcnMnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNv
bW1pdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ21lc3Nh
Z2UnXSwgcmVwb3J0ZWREYXRhWydtZXNzYWdlJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0c1swXVsncmV2aXNpb25faWRlbnRpZmllciddLCByZXBvcnRlZERhdGFbJ3Jldmlz
aW9uSWRlbnRpZmllciddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1b
J2NvbW1pdHRlciddLCBjb21taXR0ZXJzWzBdWydpZCddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdHRlcnNbMF1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFt
ZSddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNbMF1bJ2FjY291bnQn
XSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnYWNjb3VudCddKTsKKyAgICB9KTsKKwogICAgIGl0
KCJzaG91bGQgbm90IHVwZGF0ZSBhbiB1bnJlbGF0ZWQgY29tbWl0IiwgKCkgPT4gewogICAgICAg
ICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKICAgICAgICAgY29uc3QgZmlyc3RE
YXRhID0gc3VidmVyc2lvblR3b0NvbW1pdHMuY29tbWl0c1swXTsKQEAgLTU5MCw2ICs2NzcsMTEx
IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ093bmVkQ29tbWl0U2hvdWxkTm90Q29udGFpblRpbWVzdGFtcCcpOwogICAgICAgICB9
KTsKICAgICB9KTsKKworICAgIGNvbnN0IGludmFsaWRPd25lZENvbW1pdFVzZVJldmlzaW9uSWRl
bnRpZmllckFzUmV2aXNvbiA9IHsKKyAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAor
ICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAiY29tbWl0
cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJPU1gi
LAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICJTaWVycmExNkQzMiIsCisgICAgICAgICAg
ICAgICAgIm9yZGVyIjogMSwKKyAgICAgICAgICAgICAgICAib3duZWRDb21taXRzIjogeworICAg
ICAgICAgICAgICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAgICAgICAgICAgInJl
dmlzaW9uIjogIjEyNzIzMkBtYWluIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJhdXRob3Ii
OiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmcifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIldlYktpdCBDb21t
aXQiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQorICAgICAgICBdCisgICAgfTsKKworICAgIGl0KCJzaG91bGQgcmVqZWN0IGluc2VydGlu
ZyBvbmUgY29tbWl0IHdpdGggb3duZWQgY29tbWl0cyB0aGF0IHVzZSByZXZpc2lvbiBsYWJlbCBh
cyByZXZpc2lvbiIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBv
cnQoaW52YWxpZE93bmVkQ29tbWl0VXNlUmV2aXNpb25JZGVudGlmaWVyQXNSZXZpc29uKTsKKyAg
ICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RK
U09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGludmFsaWRPd25lZENvbW1pdFVzZVJldmlzaW9u
SWRlbnRpZmllckFzUmV2aXNvbik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdJbnZhbGlkUmV2aXNpb24nKTsKKyAgICB9KTsKKworICAgIGNvbnN0IGlu
dmFsaWRSZXZpc2lvbklkZW50aWZpZXJPd25lZENvbW1pdCA9IHsKKyAgICAgICAgInNsYXZlTmFt
ZSI6ICJzb21lU2xhdmUiLAorICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQi
LAorICAgICAgICAiY29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAi
cmVwb3NpdG9yeSI6ICJPU1giLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICJTaWVycmEx
NkQzMiIsCisgICAgICAgICAgICAgICAgIm9yZGVyIjogMSwKKyAgICAgICAgICAgICAgICAib3du
ZWRDb21taXRzIjogeworICAgICAgICAgICAgICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAg
ICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3OCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjEyNzIzMiIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50IjogImNvbW1p
dC1xdWV1ZUB3ZWJraXQub3JnIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAibWVzc2FnZSI6
ICJXZWJLaXQgQ29tbWl0IiwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgXQorICAgIH07CisKKyAgICBpdCgic2hvdWxkIHJl
amVjdCBpbnNlcnRpbmcgb25lIGNvbW1pdCB3aXRoIG93bmVkIGNvbW1pdHMgdGhhdCBoYXZlIGlu
dmFsaWQgcmV2aXNpb24gbGFiZWwiLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFNs
YXZlRm9yUmVwb3J0KGludmFsaWRSZXZpc2lvbklkZW50aWZpZXJPd25lZENvbW1pdCk7CisgICAg
ICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNP
TignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBpbnZhbGlkUmV2aXNpb25JZGVudGlmaWVyT3duZWRD
b21taXQpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
SW52YWxpZFJldmlzaW9uSWRlbnRpZmllcicpOworICAgIH0pOworCisgICAgY29uc3QgaW52YWxp
ZEF1dGhvck93bmVkQ29tbWl0ID0geworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIs
CisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJjb21t
aXRzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIk9T
WCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIlNpZXJyYTE2RDMyIiwKKyAgICAgICAg
ICAgICAgICAib3JkZXIiOiAxLAorICAgICAgICAgICAgICAgICJvd25lZENvbW1pdHMiOiB7Cisg
ICAgICAgICAgICAgICAgICAgICJXZWJLaXQiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAi
cmV2aXNpb24iOiAiMTQxOTc4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbklk
ZW50aWZpZXIiOiAiMTI3MjMyQG1haW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgImF1dGhv
ciI6IG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJXZWJLaXQgQ29t
bWl0IiwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKyAgICAgICAgXQorICAgIH07CisgICAgaXQoInNob3VsZCByZWplY3QgaW5zZXJ0aW5n
IG9uZSBjb21taXQgd2l0aCBvd25lZCBjb21taXRzIHRoYXQgaGF2ZSBpbnZhbGlkIGF1dGhvciIs
IGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoaW52YWxpZEF1
dGhvck93bmVkQ29tbWl0KTsKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGludmFsaWRB
dXRob3JPd25lZENvbW1pdCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsn
c3RhdHVzJ10sICdJbnZhbGlkQXV0aG9yRm9ybWF0Jyk7CisgICAgfSk7CisKKyAgICBjb25zdCBv
d25lZENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIgPSB7CisgICAgICAgICJzbGF2ZU5hbWUi
OiAic29tZVNsYXZlIiwKKyAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwK
KyAgICAgICAgImNvbW1pdHMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJl
cG9zaXRvcnkiOiAiT1NYIiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiU2llcnJhMTZE
MzIiLAorICAgICAgICAgICAgICAgICJvcmRlciI6IDEsCisgICAgICAgICAgICAgICAgIm93bmVk
Q29tbWl0cyI6IHsKKyAgICAgICAgICAgICAgICAgICAgIldlYktpdCI6IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNDE5NzgiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxMjcyMzJAbWFpbiIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50IjogImNv
bW1pdC1xdWV1ZUB3ZWJraXQub3JnIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAibWVzc2Fn
ZSI6ICJXZWJLaXQgQ29tbWl0IiwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgXQorICAgIH07CisKKyAgICBpdCgic2hvdWxk
IGluc2VydCBvbmUgY29tbWl0IHdpdGggY29tbWl0IHJldmlzaW9uIGxhYmVsIiwgYXN5bmMgKCkg
PT4geworICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChvd25lZENvbW1pdFdpdGhSZXZp
c2lvbklkZW50aWZpZXIpOworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgb3duZWRDb21t
aXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
c3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5k
YXRhYmFzZSgpOworICAgICAgICBjb25zdCBjb21taXQgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCdj
b21taXRzJywgeydyZXZpc2lvbic6ICcxNDE5NzgnfSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRbMF0ucmV2aXNpb25faWRlbnRpZmllciwgb3duZWRDb21taXRXaXRoUmV2aXNp
b25JZGVudGlmaWVyLmNvbW1pdHNbMF0ub3duZWRDb21taXRzWydXZWJLaXQnXS5yZXZpc2lvbklk
ZW50aWZpZXIpOworICAgIH0pOwogfSk7CiAKIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRz
LyB3aXRoIGluc2VydD1mYWxzZSIsIGZ1bmN0aW9uICgpIHsKZGlmZiAtLWdpdCBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qcyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qcwppbmRl
eCA1YzQ0NWZlZmMwZDcyMDRjMGJiNWExNmUwMmNmNjEzNzJmZjNmYjY5Li5jNWEyYTJlZWMwYjMx
YThjMzBiYWQ5NmU5MDMwNDZjMzkwNmRiZWUzIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzCkBAIC03Nyw2
ICs3NywyOSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IH07CiAgICAgfQogCisgICAgZnVuY3Rpb24gcmVwb3J0V2l0aFJldmlzaW9uSWRlbnRpZmllckNv
bW1pdCgpCisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgImJ1aWxkVGFnIjog
IjEyMyIsCisgICAgICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMTA6MTI6MDMuMzg4
MzA0IiwKKyAgICAgICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCisgICAgICAg
ICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICAgICAiYnVpbGRlclBhc3N3
b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4g
TGlvbiIsCisgICAgICAgICAgICAidGVzdHMiOiB7fSwKKyAgICAgICAgICAgICJyZXZpc2lvbnMi
OiB7CisgICAgICAgICAgICAgICAgIm1hY09TIjogeworICAgICAgICAgICAgICAgICAgICAicmV2
aXNpb24iOiAiMTAuOC4yIDEyQzYwIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAg
ICAgIldlYktpdCI6IHsKKyAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3NyIs
CisgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTI3MjMxQG1haW4i
LAorICAgICAgICAgICAgICAgICAgICAidGltZXN0YW1wIjogIjIwMTMtMDItMDZUMDg6NTU6MjAu
OVoiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0K
KwogICAgIGZ1bmN0aW9uIGVtcHR5U2xhdmVSZXBvcnQoKQogICAgIHsKICAgICAgICAgcmV0dXJu
IHsKQEAgLTM1MSw2ICszNzQsMzcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24g
KCkgewogICAgICAgICB9KTsKICAgICB9KTsKIAorICAgIGl0KCJzaG91bGQgYWRkIHJldmlzaW9u
IGxhYmVsIiwgYXN5bmMgKCkgPT4geworICAgICAgICBhd2FpdCBhZGRCdWlsZGVyRm9yUmVwb3J0
KHJlcG9ydFdpdGhSZXZpc2lvbklkZW50aWZpZXJDb21taXQoKSk7CisgICAgICAgIGF3YWl0IFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRXaXRo
UmV2aXNpb25JZGVudGlmaWVyQ29tbWl0KCldKTsKKyAgICAgICAgY29uc3QgZGIgPSBUZXN0U2Vy
dmVyLmRhdGFiYXNlKCk7CisgICAgICAgIGNvbnN0IHJlcG9zaXRvcmllcyA9IGF3YWl0IGRiLnNl
bGVjdEFsbCgncmVwb3NpdG9yaWVzJyk7CisgICAgICAgIGNvbnN0IGNvbW1pdHMgPSAgYXdhaXQg
ZGIuc2VsZWN0QWxsKCdjb21taXRzJyk7CisgICAgICAgIGNvbnN0IGJ1aWxkQ29tbWl0c1JlbGF0
aW9ucyA9IGF3YWl0ICBkYi5zZWxlY3RBbGwoJ2J1aWxkX2NvbW1pdHMnLCAnYnVpbGRfY29tbWl0
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAyKTsK
KyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3JpZXMubWFwKChyb3cpID0+
IHJvd1snbmFtZSddKS5zb3J0KCksIFsnV2ViS2l0JywgJ21hY09TJ10pOworCisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1swXVsnYnVpbGRfY29tbWl0J10sIGNv
bW1pdHNbMF1bJ2lkJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRz
UmVsYXRpb25zWzFdWydidWlsZF9jb21taXQnXSwgY29tbWl0c1sxXVsnaWQnXSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNbMF1bJ2NvbW1pdF9idWls
ZCddLCBidWlsZENvbW1pdHNSZWxhdGlvbnNbMV1bJ2NvbW1pdF9idWlsZCddKTsKKworICAgICAg
ICBsZXQgcmVwb3NpdG9yeUlkVG9OYW1lID0ge307CisgICAgICAgIGZvciAobGV0IHJlcG9zaXRv
cnkgb2YgcmVwb3NpdG9yaWVzKQorICAgICAgICAgICAgcmVwb3NpdG9yeUlkVG9OYW1lW3JlcG9z
aXRvcnlbJ2lkJ11dID0gcmVwb3NpdG9yeVsnbmFtZSddOworCisgICAgICAgIGxldCByZXBvc2l0
b3J5TmFtZVRvUmV2aXNpb25Sb3cgPSB7fTsKKyAgICAgICAgZm9yIChsZXQgY29tbWl0IG9mIGNv
bW1pdHMpCisgICAgICAgICAgICByZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbcmVwb3NpdG9y
eUlkVG9OYW1lW2NvbW1pdFsncmVwb3NpdG9yeSddXV0gPSBjb21taXQ7CisKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snbWFjT1MnXVsncmV2
aXNpb24nXSwgJzEwLjguMiAxMkM2MCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVw
b3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydXZWJLaXQnXVsncmV2aXNpb24nXSwgJzE0MTk3Nycp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93
WydXZWJLaXQnXVsncmV2aXNpb25faWRlbnRpZmllciddLCAnMTI3MjMxQG1haW4nKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snV2ViS2l0
J11bJ3RpbWUnXS50b1N0cmluZygpLAorICAgICAgICAgICAgbmV3IERhdGUoJzIwMTMtMDItMDYg
MDg6NTU6MjAuOScpLnRvU3RyaW5nKCkpOworICAgIH0pOworCiAgICAgaXQoInNob3VsZCBub3Qg
Y3JlYXRlIGEgZHVwbGljYXRlIGJ1aWxkIGZvciB0aGUgc2FtZSBidWlsZCBudW1iZXIgaWYgYnVp
bGQgdGltZXMgYXJlIGNsb3NlIiwgKCkgPT4gewogICAgICAgICBjb25zdCBmaXJzdFJlcG9ydCA9
IGVtcHR5UmVwb3J0KCk7CiAgICAgICAgIGZpcnN0UmVwb3J0WydidWlsZFRpbWUnXSA9ICcyMDEz
LTAyLTI4VDEwOjEyOjA0JzsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmNvbmYgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy90ZXN0LXNlcnZlci5jb25mCmluZGV4IDkz
NmI0ZjRiZmFmZjA3ZWRiMDM1ODMzYzQ2M2VlMTY5YmZjMTVhMTEuLmNhNTU0YjE3ZmQ1OTQ0ZWRl
NzFlYzFjNzNhMzllOTBhYTBkYjMwMjAgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmNvbmYKKysrIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVzdC1zZXJ2ZXIuY29u
ZgpAQCAtMSw2ICsxLDggQEAKIFNlcnZlclJvb3QgIi91c3IiCiBMaXN0ZW4gODA4MAogCitMb2Fk
TW9kdWxlIG1wbV9wcmVmb3JrX21vZHVsZSBsaWJleGVjL2FwYWNoZTIvbW9kX21wbV9wcmVmb3Jr
LnNvCitMb2FkTW9kdWxlIHBocDdfbW9kdWxlIC91c3IvbG9jYWwvQ2VsbGFyL3BocEA3LjQvNy40
LjE2L2xpYi9odHRwZC9tb2R1bGVzL2xpYnBocDcuc28KIExvYWRNb2R1bGUgYXV0aG5fY29yZV9t
b2R1bGUgbGliZXhlYy9hcGFjaGUyL21vZF9hdXRobl9jb3JlLnNvCiBMb2FkTW9kdWxlIGF1dGh6
X2NvcmVfbW9kdWxlIGxpYmV4ZWMvYXBhY2hlMi9tb2RfYXV0aHpfY29yZS5zbwogTG9hZE1vZHVs
ZSBkZWZsYXRlX21vZHVsZSBsaWJleGVjL2FwYWNoZTIvbW9kX2RlZmxhdGUuc28KZGlmZiAtLWdp
dCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2NvbW1pdC1sb2ctdGVzdHMu
anMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9jb21taXQtbG9nLXRlc3Rz
LmpzCmluZGV4IDcwYWJkZWJmODFlOGFiNjBkMWQxODE2M2UzOTkxODc5Y2I0NzM4YjYuLjkwYTU0
YjYyOWZiY2ExMjJhZjgwYmVhZmFhOThiOGIwZGM5Mjg1YTggMTAwNjQ0Ci0tLSBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2NvbW1pdC1sb2ctdGVzdHMuanMKKysrIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qcwpAQCAt
MTcsNiArMTcsMTcgQEAgZnVuY3Rpb24gd2Via2l0Q29tbWl0KCkKICAgICB9KTsKIH0KIAorZnVu
Y3Rpb24gd2Via2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpIAoreworICAgIHJldHVy
biBuZXcgQ29tbWl0TG9nKDEsIHsKKyAgICAgICAgaWQ6IDEsCisgICAgICAgIHJlcG9zaXRvcnk6
IE1vY2tNb2RlbHMud2Via2l0LAorICAgICAgICByZXZpc2lvbjogJzIwMDgwNScsCisgICAgICAg
IHJldmlzaW9uSWRlbnRpZmllcjogJzE4NDI3NkBtYWluJywKKyAgICAgICAgdGltZTogKyhuZXcg
RGF0ZSgnMjAxNi0wNS0xM1QwMDo1NTo1Ny44NDEzNDRaJykpLAorICAgIH0pOworfQorCiBmdW5j
dGlvbiBvbGRXZWJLaXRDb21taXQoKQogewogICAgIHJldHVybiBuZXcgQ29tbWl0TG9nKDIsIHsK
QEAgLTI3LDYgKzM4LDE3IEBAIGZ1bmN0aW9uIG9sZFdlYktpdENvbW1pdCgpCiAgICAgfSk7CiB9
CiAKK2Z1bmN0aW9uIG9sZFdlYktpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKQorewor
ICAgIHJldHVybiBuZXcgQ29tbWl0TG9nKDIsIHsKKyAgICAgICAgaWQ6IDIsCisgICAgICAgIHJl
cG9zaXRvcnk6IE1vY2tNb2RlbHMud2Via2l0LAorICAgICAgICByZXZpc2lvbjogJzIwMDU3NCcs
CisgICAgICAgIHJldmlzaW9uSWRlbnRpZmllcjogJzE3NTYwNUBtYWluJywKKyAgICAgICAgdGlt
ZTogKyhuZXcgRGF0ZSgnMjAxNi0wNS0wOVQxNDo1OToyMy41NTM3NjdaJykpLAorICAgIH0pOwor
fQorCiBmdW5jdGlvbiBnaXRXZWJLaXRDb21taXQoKQogewogICAgIHJldHVybiBuZXcgQ29tbWl0
TG9nKDMsIHsKQEAgLTM3LDYgKzU5LDE3IEBAIGZ1bmN0aW9uIGdpdFdlYktpdENvbW1pdCgpCiAg
ICAgfSk7CiB9CiAKK2Z1bmN0aW9uIGdpdFdlYktpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZp
ZXIoKQoreworICAgIHJldHVybiBuZXcgQ29tbWl0TG9nKDMsIHsKKyAgICAgICAgaWQ6IDMsCisg
ICAgICAgIHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMud2Via2l0LAorICAgICAgICByZXZpc2lvbjog
JzZmOGIwZGJiZGE5NWE0NDA1MDNiODhkYjFkZDAzZGFkM2E3YjA3ZmInLAorICAgICAgICByZXZp
c2lvbklkZW50aWZpZXI6ICcxODQyNzZAbWFpbicsCisgICAgICAgIHRpbWU6ICsobmV3IERhdGUo
JzIwMTYtMDUtMTNUMDA6NTU6NTcuODQxMzQ0WicpKSwKKyAgICB9KTsKK30KKwogZnVuY3Rpb24g
b2xkR2l0V2ViS2l0Q29tbWl0KCkKIHsKICAgICByZXR1cm4gbmV3IENvbW1pdExvZyg0LCB7CkBA
IC00Nyw2ICs4MCwxNyBAQCBmdW5jdGlvbiBvbGRHaXRXZWJLaXRDb21taXQoKQogICAgIH0pOwog
fQogCitmdW5jdGlvbiBvbGRHaXRXZWJLaXRDb21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKCkK
K3sKKyAgICByZXR1cm4gbmV3IENvbW1pdExvZyg0LCB7CisgICAgICAgIGlkOiA0LAorICAgICAg
ICByZXBvc2l0b3J5OiBNb2NrTW9kZWxzLndlYmtpdCwKKyAgICAgICAgcmV2aXNpb246ICdmZmRh
MTRlNmRiMDc0NmQxMGQwZjA1MDkwN2U0YTczMjU4NTFlNTAyJywKKyAgICAgICAgcmV2aXNpb25J
ZGVudGlmaWVyOiAnMTc1NjA1QG1haW4nLAorICAgICAgICB0aW1lOiArKG5ldyBEYXRlKCcyMDE2
LTA1LTA5VDE0OjU5OjIzLjU1Mzc2N1onKSksCisgICAgfSk7Cit9CisKIGZ1bmN0aW9uIG9zeENv
bW1pdCgpCiB7CiAgICAgcmV0dXJuIG5ldyBDb21taXRMb2coNSwgewpAQCAtMTQ3LDEwICsxOTEs
MTggQEAgZGVzY3JpYmUoJ0NvbW1pdExvZycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh3ZWJraXRDb21taXQoKS5sYWJlbCgpLCAncjIwMDgwNScpOwogICAgICAgICB9
KTsKIAotICAgICAgICBpdCgnc2hvdWxkIHRydW5jYXRlIGEgR2l0IGhhc2ggYXQgOHRoIGNoYXJh
Y3RlcicsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgaXQoJ3Nob3VsZCBkaXNwbGF5IHJldmlzaW9u
IGxhYmVsIGZvbGxvd2VkIGJ5IHN2biByZWZpeGVkIHdpdGggInIiJywgKCkgPT4geworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZp
ZXIoKS5sYWJlbCgpLCAnMTg0Mjc2QG1haW4gKHIyMDA4MDUpJykKKyAgICAgICAgfSk7CisKKyAg
ICAgICAgaXQoJ3Nob3VsZCB0cnVuY2F0ZSBhIEdpdCBoYXNoIGF0IDEydGggY2hhcmFjdGVyJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdpdFdlYktpdENvbW1pdCgp
LmxhYmVsKCksICc2ZjhiMGRiYmRhOTUnKTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoJ3No
b3VsZCBkaXNwbGF5IHJldmlzaW9uIGxhYmVsIGZvbGxvd2VkIGJ5IGdpdCBoYXNoIHRydW5jYXRl
ZCcsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChnaXRXZWJLaXRDb21t
aXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKCkubGFiZWwoKSwgJzE4NDI3NkBtYWluICg2ZjhiMGRi
YmRhOTUpJykKKyAgICAgICAgfSk7CisKICAgICAgICAgaXQoJ3Nob3VsZCBub3QgbW9kaWZ5IE9T
IFggdmVyc2lvbicsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hD
b21taXQoKS5sYWJlbCgpLCAnMTAuMTEuNCAxNUU2NScpOwogICAgICAgICB9KTsKQEAgLTE2MSwx
MCArMjEzLDE4IEBAIGRlc2NyaWJlKCdDb21taXRMb2cnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwod2Via2l0Q29tbWl0KCkudGl0bGUoKSwgJ1dlYktpdCBhdCByMjAw
ODA1Jyk7CiAgICAgICAgIH0pOwogCi0gICAgICAgIGl0KCdzaG91bGQgdHJ1bmNhdGUgYSBHaXQg
aGFzaCBhdCA4dGggY2hhcmFjdGVyJywgZnVuY3Rpb24gKCkgeworICAgICAgICBpdCgnc2hvdWxk
IGluY2x1ZGUgcmV2aXNpb24gbGFiZWwnLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwod2Via2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpLnRpdGxlKCksICdX
ZWJLaXQgYXQgMTg0Mjc2QG1haW4gKHIyMDA4MDUpJyk7CisgICAgICAgIH0pOworCisgICAgICAg
IGl0KCdzaG91bGQgdHJ1bmNhdGUgYSBHaXQgaGFzaCBhdCAxMnRoIGNoYXJhY3RlcicsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChnaXRXZWJLaXRDb21taXQoKS50aXRs
ZSgpLCAnV2ViS2l0IGF0IDZmOGIwZGJiZGE5NScpOwogICAgICAgICB9KTsKIAorICAgICAgICBp
dCgnc2hvdWxkIGRpc3BsYXkgcmV2aXNpb24gbGFiZWwgZm9sbG93ZWQgYnkgZ2l0IGhhc2ggdHJ1
bmNhdGVkJywgICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChnaXRXZWJL
aXRDb21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKCkudGl0bGUoKSwgJ1dlYktpdCBhdCAxODQy
NzZAbWFpbiAoNmY4YjBkYmJkYTk1KScpOworICAgICAgICB9KTsKKwogICAgICAgICBpdCgnc2hv
dWxkIG5vdCBtb2RpZnkgT1MgWCB2ZXJzaW9uJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG9zeENvbW1pdCgpLnRpdGxlKCksICdPUyBYIGF0IDEwLjExLjQgMTVFNjUn
KTsKICAgICAgICAgfSk7CkBAIC0yMjMsNiArMjgzLDMxIEBAIGRlc2NyaWJlKCdDb21taXRMb2cn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeTogTW9ja01vZGVscy5v
c3gKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIGRp
c3BsYXkgcmV2aXNpb24gbGFiZWwgZm9sbG93ZWQgd2l0aCByZXZpc29uIGFuZCAgY29ubmVjdCB3
aXRoICItIiwgaWYgYm90aCBoYXZlIHJldmlzaW9uIGxhYmVsJywgKCkgPT4geworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh3ZWJraXRDb21taXRXaXRoUmV2aXNpb25JZGVudGlm
aWVyKCkuZGlmZihvbGRXZWJLaXRDb21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKCkpLCB7Cisg
ICAgICAgICAgICAgICAgbGFiZWw6ICcxNzU2MDUtMTg0Mjc2QG1haW4gKHIyMDA1NzQtcjIwMDgw
NSknLAorICAgICAgICAgICAgICAgIHVybDogJycsCisgICAgICAgICAgICAgICAgcmVwb3NpdG9y
eTogTW9ja01vZGVscy53ZWJraXQKKyAgICAgICAgICAgIH0pCisgICAgICAgIH0pOworCisgICAg
ICAgIGl0KCdzaG91bGQgZGlzcGxheSByZXZpc2lvbiBsYWJlbCBmb2xsb3dlZCB3aXRoIHJldmlz
b24gYW5kICBjb25uZWN0IHdpdGggIi0iLCBpZiBib3RoIGhhdmUgcmV2aXNpb24gbGFiZWwnLCAo
KSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGdpdFdlYktpdENvbW1p
dFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKS5kaWZmKG9sZEdpdFdlYktpdENvbW1pdFdpdGhSZXZp
c2lvbklkZW50aWZpZXIoKSksIHsKKyAgICAgICAgICAgICAgICBsYWJlbDogJzE3NTYwNS0xODQy
NzZAbWFpbiAoZmZkYTE0ZTZkYjA3Li42ZjhiMGRiYmRhOTUpJywKKyAgICAgICAgICAgICAgICB1
cmw6ICcnLAorICAgICAgICAgICAgICAgIHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMud2Via2l0Cisg
ICAgICAgICAgICB9KQorICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIGNvbnRhaW4g
cmV2aXNpb24gbGFiZWwsIGlmIG9uZSBvZiB0aGUgY29tbWl0cyBkb2VzbmB0IGhhdmUgdGhlIHJl
dmlzaW9uIGxhYmVsJywgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVh
bCh3ZWJraXRDb21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKCkuZGlmZihvbGRXZWJLaXRDb21t
aXQoKSksIHsKKyAgICAgICAgICAgICAgICBsYWJlbDogJ3IyMDA1NzQgLSAxODQyNzZAbWFpbiAo
cjIwMDgwNSknLAorICAgICAgICAgICAgICAgIHVybDogJycsCisgICAgICAgICAgICAgICAgcmVw
b3NpdG9yeTogTW9ja01vZGVscy53ZWJraXQKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsK
KwogICAgIH0pOwogCiAgICAgZGVzY3JpYmUoJ2hhc09yZGVyaW5nJywgKCkgPT4gewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424566</attachid>
            <date>2021-03-29 12:58:12 -0700</date>
            <delta_ts>2021-03-31 11:56:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222897-20210329125811.patch</filename>
            <type>text/plain</type>
            <size>53029</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MDYxCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1YTg1MWZkODI1NTA1YjQzMGFkNzg3ODZhNTQ1NzI0MzUwNTg0Zjc1Li4zNTA5NTFlOGRk
NWI2YzUyMzkwYWFiYjVmZGI5YTA0OTkxNWY2ZDY0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAyMS0wMy0xMCAgWmhpZmVpIEZhbmcgIDx6aGlmZWlf
ZmFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGNvbW1pdCByZXZpc2lvbiBsYWJlbCBzdXBw
b3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI4
OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
bmV3IGNvbHVtbiByZXZpc2lvbiBsYWJlbC4KKyAgICAgICAgTWFrZSBhbGwgY29tbWl0IGFwaSBh
bHNvIGNhbiB3b3JrIHdpdGggcmV2aXNpb24gbGFiZWwuCisgICAgICAgIENoYW5nZSB0aGUgY29t
bWl0IGxhYmVsIGRpc3BsYXkgd2l0aCBjb21taXQgcmV2aXNpb24gbGFiZWwuCisKKyAgICAgICAg
KiBicm93c2VyLXRlc3RzL2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzOiBGaXggYSBmYWlsZWQg
dGVzdCBjYXNlLCB3aGlsZSByZXF1ZXN0aW5nIHRoZSByZW1vdGUgYXBpLCAKKyAgICAgICAgd2Ug
c2hvdWxkIHdhaXQgZm9yIHRob3NlIHByb21pc2VzIHJlc29sdmVkIGFuZCB0aGVuIHdhaXQgZm9y
IGNvbW1wb25lbnQgdG8gcmVuZGVyLgorICAgICAgICAqIGluaXQtZGF0YWJhc2Uuc3FsOiBBZGQg
bmV3IGNvbHVtbiByZXZpc2lvbl9pZGVudGlmaWVyLgorICAgICAgICAqIG1pZ3JhdGUtZGF0YWJh
c2Uuc3FsOiBBZGQgbmV3IGNvbHVtbiByZXZpc2lvbl9pZGVudGlmaWVyLgorICAgICAgICAqIHB1
YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHA6IE1ha2UgYXBpIHRoYXQgd29ya3Mg
d2l0aCByZXZpc2lvbiBzaG91bGQgd29yayB3aXRoIHJldmlzaW9uIGxhYmVsLgorICAgICAgICAq
IHB1YmxpYy9pbmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocDogRGl0dG8uCisgICAgICAgICogcHVi
bGljL2luY2x1ZGUvcmVwb3J0LXByb2Nlc3Nvci5waHA6IE1ha2UgdGhlIHByb2Nlc3NvciBjYW4g
YWxzbyBpbnNlcnQgcmV2aXNpb24gbGFiZWwuCisgICAgICAgICogcHVibGljL3YzL21vZGVscy9j
b21taXQtbG9nLmpzOgorICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS51cGRhdGVTaW5nbGV0
b24pOgorICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS5yZXZpc2lvbklkZW50aWZpZXIpOgor
ICAgICAgICAoQ29tbWl0TG9nLnByb3RvdHlwZS5sYWJlbCk6IE1ha2UgdGhlIGxhYmVsIGluY2x1
ZGUgcmV2aXNpb24gbGFiZWwgYW5kIHJldmlzaW9uLgorICAgICAgICAoQ29tbWl0TG9nLnByb3Rv
dHlwZS5kaWZmKTogTWFrZSB0aGUgZGlmZiBsYWJlbCBpbmNsdWRlIHJldmlzaW9uIGxhYmVsIGFu
ZCByZXZpc2lvbi4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanM6
CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtY29tbWl0cy10ZXN0cy5qczoKKyAg
ICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qczoKKyAgICAgICAgKHJlcG9y
dFdpdGhSZXZpc2lvbklkZW50aWZpZXJDb21taXQpOgorICAgICAgICAqIHVuaXQtdGVzdHMvY29t
bWl0LWxvZy10ZXN0cy5qczoKKwogMjAyMS0wMy0wNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbcGVyZiBkYXNoYm9hcmRdIE1vZGVybml6ZSBUaW1lU2VyaWVz
IGFuZCBUaW1lU2VyaWVzVmlldwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L2Jyb3dzZXItdGVzdHMvY29tbWl0LWxvZy12aWV3ZXItdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcwppbmRl
eCBkYmM0Y2ZjZDliYzIxNGI3MDhlZTE5OGYxZWE2NjVmMjI0MjI4NTYwLi5mODQ4OWU3Y2FjNDRl
MjMwMjBmN2U4ZjJjZTY0NDdhN2EyYzQyZjhiIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcworKysgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10
ZXN0cy5qcwpAQCAtNTUsNiArNTUsMTkgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZ1ZpZXdlcicsICgp
ID0+IHsKICAgICAgICAgIm1lc3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdlIiwKICAgICB9OwogCisg
ICAgY29uc3Qgd2Via2l0Q29tbWl0MjEwOTUwV2l0aFJldmlzaW9uSWRlbnRpZmllciA9IHsKKyAg
ICAgICAgImlkIjogIjE4NTMzOCIsCisgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NTAiLAorICAg
ICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3OEBtYWluIiwKKyAgICAgICAgInJlcG9z
aXRvcnkiOiAxLAorICAgICAgICAicHJldmlvdXNDb21taXQiOiBudWxsLAorICAgICAgICAib3du
c0NvbW1pdHMiOiBmYWxzZSwKKyAgICAgICAgInRpbWUiOiArbmV3IERhdGUoIjIwMTctMDEtMjBU
MDM6NDk6MzcuODg3WiIpLAorICAgICAgICAiYXV0aG9yTmFtZSI6ICJDb21taXQgUXVldWUiLAor
ICAgICAgICAiYXV0aG9yRW1haWwiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmciLAorICAgICAg
ICAibWVzc2FnZSI6ICJhbm90aGVyIG1lc3NhZ2UiLAorICAgIH07CisKICAgICBpdCgnc2hvdWxk
IGluaXRpYWxseSBiZSBlbXB0eSB3aXRoIG5vIHNwaW5uZXInLCAoKSA9PiB7CiAgICAgICAgIGNv
bnN0IGNvbnRleHQgPSBuZXcgQnJvd3NpbmdDb250ZXh0KCk7CiAgICAgICAgIHJldHVybiBpbXBv
cnRDb21taXRMb2dWaWV3ZXIoY29udGV4dCkudGhlbigoQ29tbWl0TG9nVmlld2VyKSA9PiB7CkBA
IC0xMjksOSArMTQyLDkgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZ1ZpZXdlcicsICgpID0+IHsKICAg
ICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIiwKICAgICAgICAgICAgICAgICAiY29tbWl0cyI6
IFt3ZWJraXRDb21taXQyMTA5NDhdLAogICAgICAgICAgICAgfSk7Ci0KKyAgICAgICAgICAgIGF3
YWl0IHJlcXVlc3RzWzBdLnByb21pc2U7CisgICAgICAgICAgICBhd2FpdCByZXF1ZXN0c1sxXS5w
cm9taXNlOwogICAgICAgICAgICAgYXdhaXQgd2FpdEZvckNvbXBvbmVudHNUb1JlbmRlcihjb250
ZXh0KTsKLQogICAgICAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdzcGlubmVyLWNvbnRh
aW5lcicpLm9mZnNldEhlaWdodCkudG8uYmUoMCk7CiAgICAgICAgICAgICBleHBlY3Qodmlld2Vy
LmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLm1hdGNoZXMoJzplbXB0eScpKS50by5iZShmYWxzZSk7
CiAgICAgICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLnRleHRD
b250ZW50KS50by5jb250YWluKCdyMjEwOTQ5Jyk7CkBAIC0xNDQsNCArMTU3LDQ3IEBAIGRlc2Ny
aWJlKCdDb21taXRMb2dWaWV3ZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogICAgIH0pOwogCisg
ICAgaXQoJ3Nob3VsZCBzaG93IHJldmlzaW9uIGxhYmVsJywgYXN5bmMgKCkgPT4geworICAgICAg
ICBjb25zdCBjb250ZXh0ID0gbmV3IEJyb3dzaW5nQ29udGV4dCgpOworICAgICAgICBjb25zdCBD
b21taXRMb2dWaWV3ZXIgPSBhd2FpdCBpbXBvcnRDb21taXRMb2dWaWV3ZXIoY29udGV4dCk7Cisg
ICAgICAgIGNvbnN0IFJlcG9zaXRvcnkgPSBjb250ZXh0LnN5bWJvbHMuUmVwb3NpdG9yeTsKKyAg
ICAgICAgY29uc3QgcmVxdWVzdHMgPSBjb250ZXh0LnN5bWJvbHMuUmVtb3RlQVBJLnJlcXVlc3Rz
OworICAgICAgICBjb25zdCB2aWV3ZXIgPSBuZXcgQ29tbWl0TG9nVmlld2VyOworICAgICAgICBj
b25zdCB3ZWJraXQgPSBuZXcgUmVwb3NpdG9yeSgxLCB7bmFtZTogJ1dlYktpdCd9KTsKKyAgICAg
ICAgY29udGV4dC5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZXdlci5lbGVtZW50KCkpOwor
CisgICAgICAgIHZpZXdlci5lbnF1ZXVlVG9SZW5kZXIoKTsKKyAgICAgICAgYXdhaXQgd2FpdEZv
ckNvbXBvbmVudHNUb1JlbmRlcihjb250ZXh0KTsKKworICAgICAgICB2aWV3ZXIudmlldyh3ZWJr
aXQsICcyMTA5NDgnLCAnMjEwOTUwJyk7CisgICAgICAgIGF3YWl0IHdhaXRGb3JDb21wb25lbnRz
VG9SZW5kZXIoY29udGV4dCk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnc3Bpbm5l
ci1jb250YWluZXInKS5vZmZzZXRIZWlnaHQpLnRvLm5vdC5iZSgwKTsKKyAgICAgICAgZXhwZWN0
KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxpc3QnKS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUo
dHJ1ZSk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgncmVwb3NpdG9yeS1uYW1lJyku
bWF0Y2hlcygnOmVtcHR5JykpLnRvLmJlKGZhbHNlKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5j
b250ZW50KCdyZXBvc2l0b3J5LW5hbWUnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignV2ViS2l0
Jyk7CisgICAgICAgIGV4cGVjdChyZXF1ZXN0cy5sZW5ndGgpLnRvLmJlKDIpOworICAgICAgICBl
eHBlY3QocmVxdWVzdHNbMF0udXJsKS50by5iZSgnL2FwaS9jb21taXRzLzEvP3ByZWNlZGluZ1Jl
dmlzaW9uPTIxMDk0OCZsYXN0UmV2aXNpb249MjEwOTUwJyk7CisgICAgICAgIGV4cGVjdChyZXF1
ZXN0c1sxXS51cmwpLnRvLmJlKCcvYXBpL2NvbW1pdHMvMS8yMTA5NDgnKTsKKyAgICAgICAgcmVx
dWVzdHNbMF0ucmVzb2x2ZSh7CisgICAgICAgICAgICAic3RhdHVzIjogIk9LIiwKKyAgICAgICAg
ICAgICJjb21taXRzIjogW3dlYmtpdENvbW1pdDIxMDk0OSwgd2Via2l0Q29tbWl0MjEwOTUwV2l0
aFJldmlzaW9uSWRlbnRpZmllcl0sCisgICAgICAgIH0pOworCisgICAgICAgIHJlcXVlc3RzWzFd
LnJlc29sdmUoeworICAgICAgICAgICAgInN0YXR1cyI6ICJPSyIsCisgICAgICAgICAgICAiY29t
bWl0cyI6IFt3ZWJraXRDb21taXQyMTA5NDhdLAorICAgICAgICB9KTsKKworICAgICAgICBhd2Fp
dCByZXF1ZXN0c1swXS5wcm9taXNlOworICAgICAgICBhd2FpdCByZXF1ZXN0c1sxXS5wcm9taXNl
OworICAgICAgICBhd2FpdCB3YWl0Rm9yQ29tcG9uZW50c1RvUmVuZGVyKGNvbnRleHQpOworICAg
ICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ3NwaW5uZXItY29udGFpbmVyJykub2Zmc2V0SGVp
Z2h0KS50by5iZSgwKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxp
c3QnKS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUoZmFsc2UpOworICAgICAgICBleHBlY3Qodmll
d2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLnRleHRDb250ZW50KS50by5jb250YWluKCcxODQy
NzhAbWFpbiAocjIxMDk1MCknKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdjb21t
aXRzLWxpc3QnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignQ29tbWl0IFF1ZXVlJyk7CisgICAg
ICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgncmVwb3NpdG9yeS1uYW1lJykubWF0Y2hlcygnOmVt
cHR5JykpLnRvLmJlKGZhbHNlKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdyZXBv
c2l0b3J5LW5hbWUnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignV2ViS2l0Jyk7CisgICAgICAg
IGV4cGVjdCh2aWV3ZXIuY29udGVudCgnY29tbWl0cy1saXN0JykucXVlcnlTZWxlY3RvcignYScp
KS50by5iZShudWxsKTsKKyAgICB9KTsKKwogfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
aW5pdC1kYXRhYmFzZS5zcWwKaW5kZXggN2ZmYzg5YWQ4MmM3NjEwNDFkMWE1NTZlODNmN2M5Njc4
YTMyZmFjMS4uMGRlY2RjZGM1NWM1YjU2YTViZTBhZDMyMGJmMWUzNWMzNjYxY2VkNCAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbApAQCAtMTAyLDYgKzEwMiw3
IEBAIENSRUFURSBUQUJMRSBjb21taXRzICgKICAgICBjb21taXRfaWQgc2VyaWFsIFBSSU1BUlkg
S0VZLAogICAgIGNvbW1pdF9yZXBvc2l0b3J5IGludGVnZXIgTk9UIE5VTEwgUkVGRVJFTkNFUyBy
ZXBvc2l0b3JpZXMgT04gREVMRVRFIENBU0NBREUsCiAgICAgY29tbWl0X3JldmlzaW9uIHZhcmNo
YXIoNjQpIE5PVCBOVUxMLAorICAgIGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyIHZhcmNoYXIo
NjQpIERFRkFVTFQgTlVMTCwKICAgICBjb21taXRfcHJldmlvdXNfY29tbWl0IGludGVnZXIgUkVG
RVJFTkNFUyBjb21taXRzIE9OIERFTEVURSBDQVNDQURFLAogICAgIGNvbW1pdF90aW1lIHRpbWVz
dGFtcCwKICAgICBjb21taXRfb3JkZXIgaW50ZWdlciwKQEAgLTEwOSw3ICsxMTAsOCBAQCBDUkVB
VEUgVEFCTEUgY29tbWl0cyAoCiAgICAgY29tbWl0X21lc3NhZ2UgdGV4dCwKICAgICBjb21taXRf
cmVwb3J0ZWQgYm9vbGVhbiBOT1QgTlVMTCBERUZBVUxUIEZBTFNFLAogICAgIGNvbW1pdF90ZXN0
YWJpbGl0eSB2YXJjaGFyKDEyOCkgREVGQVVMVCBOVUxMLAotICAgIENPTlNUUkFJTlQgY29tbWl0
X2luX3JlcG9zaXRvcnlfbXVzdF9iZV91bmlxdWUgVU5JUVVFKGNvbW1pdF9yZXBvc2l0b3J5LCBj
b21taXRfcmV2aXNpb24pKTsKKyAgICBDT05TVFJBSU5UIGNvbW1pdF9pbl9yZXBvc2l0b3J5X211
c3RfYmVfdW5pcXVlIFVOSVFVRShjb21taXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uKSwK
KyAgICBDT05TVFJBSU5UIGNvbW1pdF9zdHJpbmdfaWRlbnRpZmllcl9pbl9yZXBvc2l0b3J5X211
c3RfYmVfdW5pcXVlIFVOSVFVRShjb21taXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uX2lk
ZW50aWZpZXIpKTsKIENSRUFURSBJTkRFWCBjb21taXRfdGltZV9pbmRleCBPTiBjb21taXRzKGNv
bW1pdF90aW1lKTsKIENSRUFURSBJTkRFWCBjb21taXRfb3JkZXJfaW5kZXggT04gY29tbWl0cyhj
b21taXRfb3JkZXIpOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWln
cmF0ZS1kYXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWlncmF0ZS1kYXRh
YmFzZS5zcWwKaW5kZXggNDliZDI0OWQyYTY4NTc3NjQ0OWQzNmU4MDUyNjhmY2M0Yjg3N2FjYS4u
ODVkMzU0YzY3ODdmNTg5NThmNGIwMmI0ZDMxYjYyMWI0ZmY1NDJiMiAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL21pZ3JhdGUtZGF0YWJhc2Uuc3FsCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbApAQCAtMyw2ICszLDkgQEAgRE8g
JCQKIEJFR0lOCiBBTFRFUiBUQUJMRSBidWlsZF9yZXF1ZXN0cyBBREQgQ09MVU1OIElGIE5PVCBF
WElTVFMgcmVxdWVzdF9zdGF0dXNfZGVzY3JpcHRpb24gdmFyY2hhcigxMDI0KSBERUZBVUxUIE5V
TEw7CiBBTFRFUiBUQUJMRSBwbGF0Zm9ybXMgQUREIENPTFVNTiAgSUYgTk9UIEVYSVNUUyBwbGF0
Zm9ybV9ncm91cCBpbnRlZ2VyIFJFRkVSRU5DRVMgcGxhdGZvcm1fZ3JvdXBzIERFRkFVTFQgTlVM
TDsKK0FMVEVSIFRBQkxFIGNvbW1pdHMgQUREIENPTFVNTiBJRiBOT1QgRVhJU1RTIGNvbW1pdF9y
ZXZpc2lvbl9pZGVudGlmaWVyIHZhcmNoYXIoNjQpIERFRkFVTFQgTlVMTDsKK0FMVEVSIFRBQkxF
IGNvbW1pdHMgRFJPUCBDT05TVFJBSU5UIGNvbW1pdF9zdHJpbmdfaWRlbnRpZmllcl9pbl9yZXBv
c2l0b3J5X211c3RfYmVfdW5pcXVlOworQUxURVIgVEFCTEUgY29tbWl0cyBBREQgQ09OU1RSQUlO
VCBjb21taXRfc3RyaW5nX2lkZW50aWZpZXJfaW5fcmVwb3NpdG9yeV9tdXN0X2JlX3VuaXF1ZSBV
TklRVUUoY29tbWl0X3JlcG9zaXRvcnksIGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyKTsKIAog
Q1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgcGxhdGZvcm1fZ3JvdXBzICgKICAgICBwbGF0Zm9y
bWdyb3VwX2lkIHNlcmlhbCBQUklNQVJZIEtFWSwKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAK
aW5kZXggNmUwYmVjZDBiYzgxNjRjMDQyZmQzZmIyZjM5OThjNDE1NGZlYjBlMS4uNTA1OGY3MTNl
YWI5ZDA5OGRkMDhjNWUxZWExMmJkZmJmZTczMmE1NiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hl
ci5waHAKQEAgLTgsMTQgKzgsMTYgQEAgY2xhc3MgQ29tbWl0TG9nRmV0Y2hlciB7CiAKICAgICBz
dGF0aWMgZnVuY3Rpb24gZmluZF9jb21taXRfaWRfYnlfcmV2aXNpb24oJGRiLCAkcmVwb3NpdG9y
eV9pZCwgJHJldmlzaW9uKQogICAgIHsKLSAgICAgICAgJGNvbW1pdF9yb3dzID0gJGRiLT5xdWVy
eV9hbmRfZmV0Y2hfYWxsKCdTRUxFQ1QgY29tbWl0X2lkIEZST00gY29tbWl0cyBXSEVSRSBjb21t
aXRfcmVwb3NpdG9yeSA9ICQxIEFORCBjb21taXRfcmV2aXNpb24gPSAkMicsIGFycmF5KCRyZXBv
c2l0b3J5X2lkLCAkcmV2aXNpb24pKTsKKyAgICAgICAgJGNvbHVtbl9uYW1lID0gQ29tbWl0TG9n
RmV0Y2hlcjo6aXNfY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXIoJHJldmlzaW9uKSA/ICdjb21t
aXRfcmV2aXNpb25faWRlbnRpZmllcicgOiAnY29tbWl0X3JldmlzaW9uJzsKKyAgICAgICAgCisg
ICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgiU0VMRUNUIGNv
bW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkgPSAkMSBBTkQgJGNv
bHVtbl9uYW1lID0gJDIiLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uKSk7CiAgICAg
ICAgIGlmICgkY29tbWl0X3Jvd3MpCiAgICAgICAgICAgICByZXR1cm4gJGNvbW1pdF9yb3dzWzBd
Wydjb21taXRfaWQnXTsKIAogICAgICAgICBpZiAoIWN0eXBlX2FsbnVtKCRyZXZpc2lvbikpCiAg
ICAgICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgICAgICAkY29tbWl0X3Jvd3MgPSAkZGItPnF1
ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCBjb21taXRfaWQgRlJPTSBjb21taXRzIFdIRVJFIGNv
bW1pdF9yZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF9yZXZpc2lvbiBMSUtFICQyIExJTUlUIDIn
LCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNp
b24pIC4gJyUnKSk7CisgICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNo
X2FsbCgiU0VMRUNUIGNvbW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRv
cnkgPSAkMSBBTkQgJGNvbHVtbl9uYW1lICBMSUtFICQyIExJTUlUIDIiLCBhcnJheSgkcmVwb3Np
dG9yeV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb24pIC4gJyUnKSk7CiAg
ICAgICAgIGlmICghJGNvbW1pdF9yb3dzKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAg
ICAgIGlmIChjb3VudCgkY29tbWl0X3Jvd3MpID4gMSkKQEAgLTU1LDYgKzU3LDcgQEAgY2xhc3Mg
Q29tbWl0TG9nRmV0Y2hlciB7CiAgICAgewogICAgICAgICAkc3RhdGVtZW50cyA9ICdTRUxFQ1Qg
Y29tbWl0X2lkIGFzICJpZCIsCiAgICAgICAgICAgICBjb21taXRfcmV2aXNpb24gYXMgInJldmlz
aW9uIiwKKyAgICAgICAgICAgIGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyIGFzICJyZXZpc2lv
bklkZW50aWZpZXIiLAogICAgICAgICAgICAgY29tbWl0X3ByZXZpb3VzX2NvbW1pdCBhcyAicHJl
dmlvdXNDb21taXQiLAogICAgICAgICAgICAgY29tbWl0X3RpbWUgYXMgInRpbWUiLAogICAgICAg
ICAgICAgY29tbWl0dGVyX25hbWUgYXMgImF1dGhvck5hbWUiLApAQCAtMTkyLDggKzE5NSwxNCBA
QCBjbGFzcyBDb21taXRMb2dGZXRjaGVyIHsKICAgICAgICAgcmV0dXJuICR0aGlzLT5mb3JtYXRf
c2luZ2xlX2NvbW1pdCgkY29tbWl0KTsKICAgICB9CiAKKyAgICBwcml2YXRlIHN0YXRpYyBmdW5j
dGlvbiBpc19jb21taXRfcmV2aXNpb25faWRlbnRpZmllcigkY29tbWl0X3JldmlzaW9uX29yX3Jl
dmlzaW9uX2lkZW50aWZpZXIpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIHByZWdfbWF0Y2goJy9e
XGQrQFtcd1wuXC1dKiQvJywgJGNvbW1pdF9yZXZpc2lvbl9vcl9yZXZpc2lvbl9pZGVudGlmaWVy
KTsKKyAgICB9CisKICAgICBwcml2YXRlIGZ1bmN0aW9uIGNvbW1pdF9mb3JfcmV2aXNpb24oJHJl
cG9zaXRvcnlfaWQsICRyZXZpc2lvbikgewotICAgICAgICAkY29tbWl0X2luZm8gPSBhcnJheSgn
cmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlfaWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uKTsK
KyAgICAgICAgJGNvbW1pdF9pbmZvID0gYXJyYXkoJ3JlcG9zaXRvcnknID0+ICRyZXBvc2l0b3J5
X2lkKTsgCisgICAgICAgICRjb21taXRfaW5mb1skdGhpcy0+aXNfY29tbWl0X3JldmlzaW9uX2lk
ZW50aWZpZXIoJHJldmlzaW9uKSA/ICdyZXZpc2lvbl9pZGVudGlmaWVyJyA6ICdyZXZpc2lvbidd
ID0gJHJldmlzaW9uOwogICAgICAgICAkcm93ID0gJHRoaXMtPmRiLT5zZWxlY3RfbGFzdF9yb3co
J2NvbW1pdHMnLCAnY29tbWl0JywgJGNvbW1pdF9pbmZvKTsKICAgICAgICAgaWYgKCEkcm93KQog
ICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdVbmtub3duQ29tbWl0JywgJGNvbW1pdF9pbmZv
KTsKQEAgLTIwMSw3ICsyMTAsOCBAQCBjbGFzcyBDb21taXRMb2dGZXRjaGVyIHsKICAgICB9CiAK
ICAgICBwcml2YXRlIGZ1bmN0aW9uIGNvbW1pdF9mb3JfcmV2aXNpb25fcHJlZml4KCRyZXBvc2l0
b3J5X2lkLCAkcmV2aXNpb25fcHJlZml4KSB7Ci0gICAgICAgICRyb3dzID0gJHRoaXMtPmRiLT5x
dWVyeV9hbmRfZmV0Y2hfYWxsKCdTRUxFQ1QgKiBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3Jl
cG9zaXRvcnkgPSAkMSBBTkQgY29tbWl0X3JldmlzaW9uIExJS0UgJDIgT1JERVIgQlkgY29tbWl0
X3JldmlzaW9uIExJTUlUIDInLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0YWJhc2U6OmVzY2Fw
ZV9mb3JfbGlrZSgkcmV2aXNpb25fcHJlZml4KSAuICclJykpOworICAgICAgICAkY29sdW1uX25h
bWUgPSAkdGhpcy0+aXNfY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXIoJHJldmlzaW9uX3ByZWZp
eCkgPyAncmV2aXNpb25faWRlbnRpZmllcicgOiAncmV2aXNpb24nOworICAgICAgICAkcm93cyA9
ICR0aGlzLT5kYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgiU0VMRUNUICogRlJPTSBjb21taXRzIFdI
RVJFIGNvbW1pdF9yZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF8kY29sdW1uX25hbWUgTElLRSAk
MiBPUkRFUiBCWSBjb21taXRfJGNvbHVtbl9uYW1lIExJTUlUIDIiLCBhcnJheSgkcmVwb3NpdG9y
eV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb25fcHJlZml4KSAuICclJykp
OwogICAgICAgICBpZiAoY291bnQoJHJvd3MpID09IDApCiAgICAgICAgICAgICBleGl0X3dpdGhf
ZXJyb3IoJ1Vua25vd25Db21taXQnLCBhcnJheSgncmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlf
aWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uX3ByZWZpeCkpOwogICAgICAgICBpZiAoY291bnQo
JHJvd3MpID09IDIpIHsKQEAgLTIyNCw2ICsyMzQsNyBAQCBjbGFzcyBDb21taXRMb2dGZXRjaGVy
IHsKICAgICAgICAgcmV0dXJuIGFycmF5KAogICAgICAgICAgICAgJ2lkJyA9PiAkY29tbWl0X3Jv
d1snY29tbWl0X2lkJ10sCiAgICAgICAgICAgICAncmV2aXNpb24nID0+ICRjb21taXRfcm93Wydj
b21taXRfcmV2aXNpb24nXSwKKyAgICAgICAgICAgICdyZXZpc2lvbklkZW50aWZpZXInID0+ICRj
b21taXRfcm93Wydjb21taXRfcmV2aXNpb25faWRlbnRpZmllciddLAogICAgICAgICAgICAgJ3Jl
cG9zaXRvcnknID0+ICRjb21taXRfcm93Wydjb21taXRfcmVwb3NpdG9yeSddLAogICAgICAgICAg
ICAgJ3ByZXZpb3VzQ29tbWl0JyA9PiAkY29tbWl0X3Jvd1snY29tbWl0X3ByZXZpb3VzX2NvbW1p
dCddLAogICAgICAgICAgICAgJ3RpbWUnID0+IERhdGFiYXNlOjp0b19qc190aW1lKCRjb21taXRf
cm93Wydjb21taXRfdGltZSddKSwKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvaW5jbHVkZS9jb21taXQtdXBkYXRlci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LXVwZGF0ZXIucGhwCmluZGV4IDA4YzY4YmJlNjQx
MGFmZjA2ZGI4NzU0OTkyYTQ4YzkzN2U3MGUzMmYuLjQzMjIwZDMxOTMyMjA3ZWM4MjI4ZTIyM2Y2
NDI4NmQzYmMwYjgwNmMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvaW5jbHVkZS9jb21taXQtdXBkYXRlci5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocApAQCAtMzAsNyArMzAsNiBAQCBj
bGFzcyBDb21taXRVcGRhdGVyIHsKICAgICBwcml2YXRlIGZ1bmN0aW9uIHVwZGF0ZV9jb21taXQo
JiR1cGRhdGUsICRvd25lcl9jb21taXRfaWQsICRvd25lcl9yZXBvc2l0b3J5X2lkLCAkc2hvdWxk
X2luc2VydCkKICAgICB7CiAgICAgICAgICRjb21taXRfZGF0YSA9ICYkdGhpcy0+cmVzb2x2ZV9m
aWVsZHNfZnJvbV9kYXRhYmFzZSgkdXBkYXRlLCAkb3duZXJfcmVwb3NpdG9yeV9pZCwgJHNob3Vs
ZF9pbnNlcnQpOwotCiAgICAgICAgICRjb21taXRfc2VsZWN0X3F1ZXJ5ID0gYXJyYXkoJ3JlcG9z
aXRvcnknID0+ICRjb21taXRfZGF0YVsncmVwb3NpdG9yeSddLCAncmV2aXNpb24nID0+ICRjb21t
aXRfZGF0YVsncmV2aXNpb24nXSk7CiAgICAgICAgIGlmICgkc2hvdWxkX2luc2VydCkgewogICAg
ICAgICAgICAgJGNvbW1pdF9pZCA9ICR0aGlzLT5kYi0+dXBkYXRlX29yX2luc2VydF9yb3coJ2Nv
bW1pdHMnLCAnY29tbWl0JywgJGNvbW1pdF9zZWxlY3RfcXVlcnksICRjb21taXRfZGF0YSk7CkBA
IC03NCw2ICs3Myw3IEBAIGNsYXNzIENvbW1pdFVwZGF0ZXIgewogICAgIHByaXZhdGUgZnVuY3Rp
b24gJmNvbnN0cnVjdF91cGRhdGVfbGlzdCgmJGNvbW1pdF9pbmZvX2xpc3QsICRzaG91bGRfaW5z
ZXJ0KQogICAgIHsKICAgICAgICAgJHVwZGF0ZV9saXN0ID0gYXJyYXkoKTsKKyAgICAgICAgJGNv
bW1pdF9yZXZpc2lvbl9pZGVudGlmaWVycyA9IGFycmF5KCk7CiAKICAgICAgICAgZm9yZWFjaCAo
JGNvbW1pdF9pbmZvX2xpc3QgYXMgJiRjb21taXRfaW5mbykgewogICAgICAgICAgICAgc2VsZjo6
dmFsaWRhdGVfY29tbWl0cygkY29tbWl0X2luZm8pOwpAQCAtODEsNiArODEsMTEgQEAgY2xhc3Mg
Q29tbWl0VXBkYXRlciB7CiAgICAgICAgICAgICAkaGFzX3VwZGF0ZSA9IGNvdW50KCRjb21taXRf
ZGF0YSkgPiAxOwogCiAgICAgICAgICAgICAkdXBkYXRlID0gYXJyYXkoJ2NvbW1pdCcgPT4gJiRj
b21taXRfZGF0YSwgJ3JlcG9zaXRvcnknID0+ICYkY29tbWl0X2luZm9bJ3JlcG9zaXRvcnknXSk7
CisgICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncmV2aXNpb25JZGVudGlmaWVyJywg
JGNvbW1pdF9pbmZvKSkgeworICAgICAgICAgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCRj
b21taXRfaW5mb1sncmV2aXNpb25JZGVudGlmaWVyJ10sICRjb21taXRfcmV2aXNpb25faWRlbnRp
ZmllcnMpKQorICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZXhpdF93aXRoX2Vycm9yKCdEdXBs
aWNhdGVkUmV2aXNpb25JZGVudGlmaWVyJywgYXJyYXkoJ2NvbW1pdCcgPT4gJGNvbW1pdF9pbmZv
KSk7CisgICAgICAgICAgICAgICAgJGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyc1skY29tbWl0
X2luZm9bJ3JldmlzaW9uSWRlbnRpZmllciddXSA9IHRydWU7CisgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncHJldmlvdXNDb21taXQnLCAkY29tbWl0X2lu
Zm8pKSB7CiAgICAgICAgICAgICAgICAgJGhhc191cGRhdGUgPSB0cnVlOwogICAgICAgICAgICAg
ICAgICR1cGRhdGVbJ3ByZXZpb3VzX2NvbW1pdCddID0gJiRjb21taXRfaW5mb1sncHJldmlvdXND
b21taXQnXTsKQEAgLTEwNCw2ICsxMDksNyBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsKIAogICAg
ICAgICAgICAgJG93bmVkX2NvbW1pdF91cGRhdGVfbGlzdCA9IGFycmF5KCk7CiAgICAgICAgICAg
ICBmb3JlYWNoKCRjb21taXRfaW5mb1snb3duZWRDb21taXRzJ10gYXMgJG93bmVkX3JlcG9zaXRv
cnlfbmFtZSA9PiAmJG93bmVkX2NvbW1pdF9pbmZvKSB7CisgICAgICAgICAgICAgICAgc2VsZjo6
dmFsaWRhdGVfY29tbWl0cygkb3duZWRfY29tbWl0X2luZm8sIHRydWUpOwogICAgICAgICAgICAg
ICAgICRvd25lZF9jb21taXQgPSAmc2VsZjo6Y29uc3RydWN0X2NvbW1pdF9kYXRhKCRvd25lZF9j
b21taXRfaW5mbywgJG93bmVkX3JlcG9zaXRvcnlfbmFtZSwgJHNob3VsZF9pbnNlcnQpOwogICAg
ICAgICAgICAgICAgICRvd25lZF9jb21taXRfdXBkYXRlID0gYXJyYXkoJ2NvbW1pdCcgPT4gJiRv
d25lZF9jb21taXQsICdyZXBvc2l0b3J5JyA9PiAkb3duZWRfcmVwb3NpdG9yeV9uYW1lKTsKIApA
QCAtMTQzLDE1ICsxNDksMTggQEAgY2xhc3MgQ29tbWl0VXBkYXRlciB7CiAgICAgICAgICAgICAk
Y29tbWl0X2RhdGFbJ3RpbWUnXSA9ICRjb21taXRfaW5mb1sndGltZSddOwogICAgICAgICB9CiAK
KyAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJ3JldmlzaW9uSWRlbnRpZmllcicsICRjb21t
aXRfaW5mbykpCisgICAgICAgICAgICAkY29tbWl0X2RhdGFbJ3JldmlzaW9uX2lkZW50aWZpZXIn
XSA9ICRjb21taXRfaW5mb1sncmV2aXNpb25JZGVudGlmaWVyJ107CisKICAgICAgICAgaWYgKCRz
aG91bGRfaW5zZXJ0KQogICAgICAgICAgICAgJGNvbW1pdF9kYXRhWydyZXBvcnRlZCddID0gdHJ1
ZTsKIAogICAgICAgICByZXR1cm4gJGNvbW1pdF9kYXRhOwogICAgIH0KIAotICAgIHByaXZhdGUg
c3RhdGljIGZ1bmN0aW9uIHZhbGlkYXRlX2NvbW1pdHMoJiRjb21taXRfaW5mbykKKyAgICBwcml2
YXRlIHN0YXRpYyBmdW5jdGlvbiB2YWxpZGF0ZV9jb21taXRzKCYkY29tbWl0X2luZm8sICRpc19v
d25fY29tbWl0ID0gZmFsc2UpCiAgICAgewotICAgICAgICBpZiAoIWFycmF5X2tleV9leGlzdHMo
J3JlcG9zaXRvcnknLCAkY29tbWl0X2luZm8pKQorICAgICAgICBpZiAoIWFycmF5X2tleV9leGlz
dHMoJ3JlcG9zaXRvcnknLCAkY29tbWl0X2luZm8pICYmICEkaXNfb3duX2NvbW1pdCkKICAgICAg
ICAgICAgIGV4aXRfd2l0aF9lcnJvcignTWlzc2luZ1JlcG9zaXRvcnlOYW1lJywgYXJyYXkoJ2Nv
bW1pdCcgPT4gJGNvbW1pdF9pbmZvKSk7CiAgICAgICAgIGlmICghYXJyYXlfa2V5X2V4aXN0cygn
cmV2aXNpb24nLCAkY29tbWl0X2luZm8pKQogICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdN
aXNzaW5nUmV2aXNpb24nLCBhcnJheSgnY29tbWl0JyA9PiAkY29tbWl0X2luZm8pKTsKQEAgLTE2
MCw2ICsxNjksOCBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsKICAgICAgICAgICAgIGV4aXRfd2l0
aF9lcnJvcignSW52YWxpZEF1dGhvckZvcm1hdCcsIGFycmF5KCdjb21taXQnID0+ICRjb21taXRf
aW5mbykpOwogICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncHJldmlvdXNDb21taXQnLCAk
Y29tbWl0X2luZm8pKQogICAgICAgICAgICAgcmVxdWlyZV9mb3JtYXQoJ1JldmlzaW9uJywgJGNv
bW1pdF9pbmZvWydwcmV2aW91c0NvbW1pdCddLCAnL15bQS1aYS16MC05IFwuXSskLycpOworICAg
ICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncmV2aXNpb25JZGVudGlmaWVyJywgJGNvbW1pdF9p
bmZvKSkKKyAgICAgICAgICAgIHJlcXVpcmVfZm9ybWF0KCdSZXZpc2lvbklkZW50aWZpZXInLCAk
Y29tbWl0X2luZm9bJ3JldmlzaW9uSWRlbnRpZmllciddLCAnL15cZCtAW1x3XC5cLV0rJC8nKTsK
ICAgICB9CiAKICAgICBwcml2YXRlIGZ1bmN0aW9uIHJlc29sdmVfcmVwb3NpdG9yeSgkcmVwb3Np
dG9yeV9uYW1lLCAkb3duZXJfcmVwb3NpdG9yeV9pZCwgJHNob3VsZF9pbnNlcnQpCmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3J0LXByb2Nl
c3Nvci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3J0
LXByb2Nlc3Nvci5waHAKaW5kZXggMWJjMWRiNjQyZGJlZmVmOGVjYjA3MmUxOGI1N2U5YzkxYmMw
NzIzYy4uYWJlZDhhZTAwOGNkZmM4NGQ2MjM4N2IyZGEwZTlhMjM0MTZhMjRjNyAxMDA2NDQKLS0t
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL3JlcG9ydC1wcm9jZXNz
b3IucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9yZXBv
cnQtcHJvY2Vzc29yLnBocApAQCAtMTU5LDE0ICsxNTksMTYgQEAgY2xhc3MgUmVwb3J0UHJvY2Vz
c29yIHsKICAgICAgICAgICAgICAgICAkdGhpcy0+cm9sbGJhY2tfd2l0aF9lcnJvcignRmFpbGVk
VG9VcGRhdGVCdWlsZFJlcXVlc3QnLCBhcnJheSgnYnVpbGRSZXF1ZXN0JyA9PiAkYnVpbGRfcmVx
dWVzdF9pZCwgJ2J1aWxkJyA9PiAkYnVpbGRfaWQpKTsKICAgICAgICAgfQogCi0KICAgICAgICAg
Zm9yZWFjaCAoJHJldmlzaW9ucyBhcyAkcmVwb3NpdG9yeV9uYW1lID0+ICRyZXZpc2lvbl9kYXRh
KSB7CiAgICAgICAgICAgICAkcmVwb3NpdG9yeV9pZCA9ICR0aGlzLT5kYi0+c2VsZWN0X29yX2lu
c2VydF9yb3coJ3JlcG9zaXRvcmllcycsICdyZXBvc2l0b3J5JywgYXJyYXkoJ25hbWUnID0+ICRy
ZXBvc2l0b3J5X25hbWUsICdvd25lcicgPT4gTlVMTCkpOwogICAgICAgICAgICAgaWYgKCEkcmVw
b3NpdG9yeV9pZCkKICAgICAgICAgICAgICAgICAkdGhpcy0+cm9sbGJhY2tfd2l0aF9lcnJvcign
RmFpbGVkVG9JbnNlcnRSZXBvc2l0b3J5JywgYXJyYXkoJ25hbWUnID0+ICRyZXBvc2l0b3J5X25h
bWUpKTsKIAotICAgICAgICAgICAgJGNvbW1pdF9kYXRhID0gYXJyYXkoJ3JlcG9zaXRvcnknID0+
ICRyZXBvc2l0b3J5X2lkLCAncmV2aXNpb24nID0+ICRyZXZpc2lvbl9kYXRhWydyZXZpc2lvbidd
LCAndGltZScgPT4gYXJyYXlfZ2V0KCRyZXZpc2lvbl9kYXRhLCAndGltZXN0YW1wJykpOwotCisg
ICAgICAgICAgICAkY29tbWl0X2RhdGEgPSBhcnJheSgKKyAgICAgICAgICAgICAgICAncmVwb3Np
dG9yeScgPT4gJHJlcG9zaXRvcnlfaWQsIAorICAgICAgICAgICAgICAgICdyZXZpc2lvbicgPT4g
JHJldmlzaW9uX2RhdGFbJ3JldmlzaW9uJ10sIAorICAgICAgICAgICAgICAgICd0aW1lJyA9PiBh
cnJheV9nZXQoJHJldmlzaW9uX2RhdGEsICd0aW1lc3RhbXAnKSwgCisgICAgICAgICAgICAgICAg
J3JldmlzaW9uX2lkZW50aWZpZXInID0+IGFycmF5X2dldCgkcmV2aXNpb25fZGF0YSwgJ3Jldmlz
aW9uSWRlbnRpZmllcicsIG51bGwpKTsKICAgICAgICAgICAgICRtaXNtYXRjaGluZ19jb21taXQg
PSAkdGhpcy0+ZGItPnF1ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCAqIEZST00gYnVpbGRfY29t
bWl0cywgY29tbWl0cwogICAgICAgICAgICAgICAgIFdIRVJFIGJ1aWxkX2NvbW1pdCA9IGNvbW1p
dF9pZCBBTkQgY29tbWl0X2J1aWxkID0gJDEgQU5EIGNvbW1pdF9yZXBvc2l0b3J5ID0gJDIgQU5E
IGNvbW1pdF9yZXZpc2lvbiAhPSAkMyBMSU1JVCAxJywKICAgICAgICAgICAgICAgICBhcnJheSgk
YnVpbGRfaWQsICRyZXBvc2l0b3J5X2lkLCAkcmV2aXNpb25fZGF0YVsncmV2aXNpb24nXSkpOwpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29t
bWl0LWxvZy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2Nv
bW1pdC1sb2cuanMKaW5kZXggZTZkNGQ0NGFiYjU1NDEzNDZlMmY0YTlkNDQwMDlmNzlhNzgyOTAw
Yi4uZDMzN2IxZDEyYzJmNDA3YTZiM2MyZDBmOWM1ZTFkYmI0NmVhODA2NyAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9n
LmpzCkBAIC0yMCw2ICsyMCw3IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9i
amVjdCB7CiAKICAgICAgICAgY29uc29sZS5hc3NlcnQoK3RoaXMuX3Jhd0RhdGFbJ3RpbWUnXSA9
PSArcmF3RGF0YVsndGltZSddKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fcmF3RGF0
YVsncmV2aXNpb24nXSA9PSByYXdEYXRhWydyZXZpc2lvbiddKTsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQodGhpcy5fcmF3RGF0YVsncmV2aXNpb25JZGVudGlmaWVyJ10gPT0gcmF3RGF0YVsncmV2
aXNpb25JZGVudGlmaWVyJ10pOwogCiAgICAgICAgIGlmIChyYXdEYXRhLmF1dGhvck5hbWUpCiAg
ICAgICAgICAgICB0aGlzLl9yYXdEYXRhLmF1dGhvck5hbWUgPSByYXdEYXRhLmF1dGhvck5hbWU7
CkBAIC0zOSw2ICs0MCw3IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVj
dCB7CiAgICAgdGVzdGFiaWxpdHkoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWyd0ZXN0YWJpbGl0
eSddOyB9CiAgICAgYXV0aG9yKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsnYXV0aG9yTmFtZSdd
OyB9CiAgICAgcmV2aXNpb24oKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydyZXZpc2lvbiddOyB9
CisgICAgcmV2aXNpb25JZGVudGlmaWVyKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsncmV2aXNp
b25JZGVudGlmaWVyJ107IH0KICAgICBtZXNzYWdlKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsn
bWVzc2FnZSddOyB9CiAgICAgdXJsKCkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeS51cmxGb3JS
ZXZpc2lvbih0aGlzLl9yYXdEYXRhWydyZXZpc2lvbiddKTsgfQogICAgIG93bnNDb21taXRzKCkg
eyByZXR1cm4gdGhpcy5fcmF3RGF0YVsnb3duc0NvbW1pdHMnXTsgfQpAQCAtNDgsMTUgKzUwLDMz
IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgaGFzQ29t
bWl0T3JkZXIoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydvcmRlciddICE9IG51bGw7IH0KICAg
ICBzZXRPd25lckNvbW1pdHMob3duZXJDb21taXQpIHsgdGhpcy5fb3duZXJDb21taXQgPSBvd25l
ckNvbW1pdDsgfQogCi0gICAgbGFiZWwoKQorICAgIGxhYmVsKCkgeyByZXR1cm4gQ29tbWl0TG9n
Ll9mb3JtYXR0dGVkUmV2aXNpb24odGhpcy5yZXZpc2lvbigpLCB0aGlzLnJldmlzaW9uSWRlbnRp
ZmllcigpKTsgfQorCisgICAgc3RhdGljIF9yZXBvc2l0b3J5VHlwZShyZXZpc2lvbikKICAgICB7
Ci0gICAgICAgIGNvbnN0IHJldmlzaW9uID0gdGhpcy5yZXZpc2lvbigpOwotICAgICAgICBpZiAo
cGFyc2VJbnQocmV2aXNpb24pID09IHJldmlzaW9uKSAvLyBlLmcuIHIxMjM0NQotICAgICAgICAg
ICAgcmV0dXJuICdyJyArIHJldmlzaW9uOwotICAgICAgICBpZiAocmV2aXNpb24ubGVuZ3RoID09
IDQwKSAvLyBlLmcuIGdpdCBoYXNoCi0gICAgICAgICAgICByZXR1cm4gcmV2aXNpb24uc3Vic3Ry
aW5nKDAsIDEyKTsKLSAgICAgICAgcmV0dXJuIHJldmlzaW9uOworICAgICAgICBpZiAocGFyc2VJ
bnQocmV2aXNpb24pID09IHJldmlzaW9uKQorICAgICAgICAgICAgcmV0dXJuICdzdm4nOworICAg
ICAgICBpZiAocmV2aXNpb24ubGVuZ3RoID09IDQwKQorICAgICAgICAgICAgcmV0dXJuICdnaXQn
OworICAgICAgICByZXR1cm4gbnVsbDsKICAgICB9CisKKyAgICBzdGF0aWMgX2Zvcm1hdHR0ZWRS
ZXZpc2lvbihyZXZpc2lvbiwgcmV2aXNpb25JZGVudGlmaWVyID0gbnVsbCkgCisgICAgeworICAg
ICAgICBjb25zdCBmb3JtYXR0ZWRSZXZpc2lvbiA9ICgoKSA9PiB7CisgICAgICAgICAgICBzd2l0
Y2ggKHRoaXMuX3JlcG9zaXRvcnlUeXBlKHJldmlzaW9uKSkgeworICAgICAgICAgICAgY2FzZSAn
c3ZuJzoKKyAgICAgICAgICAgICAgICByZXR1cm4gJ3InICsgcmV2aXNpb247IC8vIGUuZy4gcjEy
MzQ1CisgICAgICAgICAgICBjYXNlICdnaXQnOgorICAgICAgICAgICAgICAgIHJldHVybiByZXZp
c2lvbi5zdWJzdHJpbmcoMCwgMTIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJu
IHJldmlzaW9uOworICAgICAgICB9KSgpOworICAgICAgICBpZiAocmV2aXNpb25JZGVudGlmaWVy
KQorICAgICAgICAgICAgcmV0dXJuIGAke3JldmlzaW9uSWRlbnRpZmllcn0gKCR7Zm9ybWF0dGVk
UmV2aXNpb259KWA7CisgICAgICAgIHJldHVybiBmb3JtYXR0ZWRSZXZpc2lvbjsKKyAgICB9CisK
ICAgICB0aXRsZSgpIHsgcmV0dXJuIHRoaXMuX3JlcG9zaXRvcnkubmFtZSgpICsgJyBhdCAnICsg
dGhpcy5sYWJlbCgpOyB9CiAKICAgICBkaWZmKHByZXZpb3VzQ29tbWl0KQpAQCAtNjgsMTcgKzg4
LDI0IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgICAg
IGlmICghcHJldmlvdXNDb21taXQpCiAgICAgICAgICAgICByZXR1cm4ge3JlcG9zaXRvcnk6IHJl
cG9zaXRvcnksIGxhYmVsOiB0aGlzLmxhYmVsKCksIHVybDogdGhpcy51cmwoKX07CiAKLSAgICAg
ICAgY29uc3QgdG8gPSB0aGlzLnJldmlzaW9uKCk7Ci0gICAgICAgIGNvbnN0IGZyb20gPSBwcmV2
aW91c0NvbW1pdC5yZXZpc2lvbigpOwotICAgICAgICBsZXQgbGFiZWwgPSBudWxsOwotICAgICAg
ICBpZiAocGFyc2VJbnQoZnJvbSkgPT0gZnJvbSkvLyBlLmcuIHIxMjM0NS4KLSAgICAgICAgICAg
IGxhYmVsID0gYHIke2Zyb219LXIke3RoaXMucmV2aXNpb24oKX1gOwotICAgICAgICBlbHNlIGlm
ICh0by5sZW5ndGggPT0gNDApIC8vIGUuZy4gZ2l0IGhhc2gKLSAgICAgICAgICAgIGxhYmVsID0g
YCR7ZnJvbS5zdWJzdHJpbmcoMCwgMTIpfS4uJHt0by5zdWJzdHJpbmcoMCwgMTIpfWA7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIGxhYmVsID0gYCR7ZnJvbX0gLSAke3RvfWA7Ci0KLSAgICAg
ICAgcmV0dXJuIHtyZXBvc2l0b3J5OiByZXBvc2l0b3J5LCBsYWJlbDogbGFiZWwsIHVybDogcmVw
b3NpdG9yeS51cmxGb3JSZXZpc2lvblJhbmdlKGZyb20sIHRvKX07CisgICAgICAgIGNvbnN0IHRv
UmV2aXNpb24gPSB0aGlzLnJldmlzaW9uKCk7CisgICAgICAgIGNvbnN0IGZyb21SZXZpc2lvbiA9
IHByZXZpb3VzQ29tbWl0LnJldmlzaW9uKCk7CisgICAgICAgIGNvbnN0IGlkZW50aWZpZXJQYXR0
ZXJuID0gLyg/PG51bWJlcj5cZCspQCg/PGJyYW5jaD5bXHdcLlwtXSspLzsKKyAgICAgICAgY29u
c3QgcmVwb3NpdG9yeVR5cGUgPSBDb21taXRMb2cuX3JlcG9zaXRvcnlUeXBlKHRvUmV2aXNpb24p
OworICAgICAgIAorICAgICAgICBjb25zdCBsYWJlbCA9ICgoZnJvbU1hdGNoLCB0b01hdGNoKSA9
PiB7CisgICAgICAgICAgICBjb25zdCBzZXBhcmF0b3IgPSByZXBvc2l0b3J5VHlwZSA9PSAnZ2l0
JyA/ICcuLicgOiAocmVwb3NpdG9yeVR5cGUgPT0gJ3N2bicgPyAnLScgOiAnIC0gJyk7CisgICAg
ICAgICAgICBjb25zdCByZXZpc2lvblJhbmdlID0gYCR7Q29tbWl0TG9nLl9mb3JtYXR0dGVkUmV2
aXNpb24oZnJvbVJldmlzaW9uKX0ke3NlcGFyYXRvcn0ke0NvbW1pdExvZy5fZm9ybWF0dHRlZFJl
dmlzaW9uKHRvUmV2aXNpb24pfWA7CisgICAgICAgICAgICBpZiAoZnJvbU1hdGNoICYmIHRvTWF0
Y2gpIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlLmFzc2VydChmcm9tTWF0Y2guZ3JvdXBzLmJy
YW5jaCA9PSB0b01hdGNoLmdyb3Vwcy5icmFuY2gpOworICAgICAgICAgICAgICAgIHJldHVybiBg
JHtmcm9tTWF0Y2guZ3JvdXBzLm51bWJlcn0tJHt0b01hdGNoLmdyb3Vwcy5udW1iZXJ9QCR7ZnJv
bU1hdGNoLmdyb3Vwcy5icmFuY2h9ICgke3JldmlzaW9uUmFuZ2V9KWA7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICBpZiAoZnJvbU1hdGNoIHx8IHRvTWF0Y2gpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGAke3ByZXZpb3VzQ29tbWl0LmxhYmVsKCl9IC0gJHt0aGlzLmxhYmVsKCl9YDsKKyAg
ICAgICAgICAgIHJldHVybiByZXZpc2lvblJhbmdlOworICAgICAgICB9KShpZGVudGlmaWVyUGF0
dGVybi5leGVjKHByZXZpb3VzQ29tbWl0LnJldmlzaW9uSWRlbnRpZmllcigpKSwgaWRlbnRpZmll
clBhdHRlcm4uZXhlYyh0aGlzLnJldmlzaW9uSWRlbnRpZmllcigpKSk7CisKKyAgICAgICAgcmV0
dXJuIHtyZXBvc2l0b3J5LCBsYWJlbCwgdXJsOiByZXBvc2l0b3J5LnVybEZvclJldmlzaW9uUmFu
Z2UoZnJvbVJldmlzaW9uLCB0b1JldmlzaW9uKX07CiAgICAgfQogCiAgICAgc3RhdGljIGZldGNo
TGF0ZXN0Q29tbWl0Rm9yUGxhdGZvcm0ocmVwb3NpdG9yeSwgcGxhdGZvcm0pCmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3Rz
LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10
ZXN0cy5qcwppbmRleCAyODU2OWYwNjM3MzA0ZTNhNjJjZjc3MDA5MjM5M2Y3ZjBlNzM2NTk3Li5h
MzMxMjFhMGVjMTFhZjMwMTRlZmY0NGU5MDAyY2JiMDFlNGMwNGRmIDEwMDY0NAotLS0gYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzCisr
KyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVz
dHMuanMKQEAgLTE3LDYgKzE3LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2Vi
S2l0IiwKICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQ4IiwKKyAgICAgICAgICAg
ICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3NkBtYWluIiwKICAgICAgICAgICAgICAg
ICAidGltZSI6ICIyMDE3LTAxLTIwVDAyOjUyOjM0LjU3N1oiLAogICAgICAgICAgICAgICAgICJh
dXRob3IiOiB7Im5hbWUiOiAiWmFsYW4gQnVqdGFzIiwgImFjY291bnQiOiAiemFsYW5AYXBwbGUu
Y29tIn0sCiAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYSBtZXNzYWdlIiwKQEAgLTI0LDYg
KzI1LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKICAgICAgICAg
ICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQ5IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25J
ZGVudGlmaWVyIjogIjE4NDI3N0BtYWluIiwKICAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3
LTAxLTIwVDAzOjIzOjUwLjY0NVoiLAogICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUi
OiAiQ2hyaXMgRHVtZXoiLCAiYWNjb3VudCI6ICJjZHVtZXpAYXBwbGUuY29tIn0sCiAgICAgICAg
ICAgICAgICAgIm1lc3NhZ2UiOiAic29tZSBtZXNzYWdlIiwKQEAgLTMyLDEyICszNCw1MyBAQCBk
ZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAi
cmVwb3NpdG9yeSI6ICJXZWJLaXQiLAogICAgICAgICAgICAgICAgICJwcmV2aW91c0NvbW1pdCI6
ICIyMTA5NDkiLAogICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NTAiLAorICAgICAg
ICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0Mjc4QG1haW4iLAogICAgICAgICAg
ICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDM6NDk6MzcuODg3WiIsCiAgICAgICAgICAgICAg
ICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQt
cXVldWVAd2Via2l0Lm9yZyJ9LAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImFub3RoZXIg
bWVzc2FnZSIsCisgICAgICAgICAgICB9LAorICAgICAgICBdCisgICAgfTsKKworICAgIGNvbnN0
IHN1YmNlcnNpb25Db21taXRzV2l0aEZha2VSZXZpc2lvbklkZW50aWZpZXIgPSB7CisgICAgICAg
ICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29t
ZVBhc3N3b3JkIiwKKyAgICAgICAgImNvbW1pdHMiOiBbCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAicmV2aXNp
b24iOiAiMjEwOTQ4IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4
NDI3NkBtYWluIiwKKyAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAyOjUyOjM0
LjU3N1oiLAorICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiWmFsYW4gQnVqdGFz
IiwgImFjY291bnQiOiAiemFsYW5AYXBwbGUuY29tIn0sCisgICAgICAgICAgICAgICAgIm1lc3Nh
Z2UiOiAiYSBtZXNzYWdlIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAicmV2aXNp
b24iOiAiMjEwOTQ5IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4
NDI3N0BtYWluIiwKKyAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjIzOjUw
LjY0NVoiLAorICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ2hyaXMgRHVtZXoi
LCAiYWNjb3VudCI6ICJjZHVtZXpAYXBwbGUuY29tIn0sCisgICAgICAgICAgICAgICAgIm1lc3Nh
Z2UiOiAic29tZSBtZXNzYWdlIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAicHJl
dmlvdXNDb21taXQiOiAiMjEwOTQ5IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEw
OTUwIiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3OEBtYWlu
IiwKKyAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjQ5OjM3Ljg4N1oiLAor
ICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291
bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmcifSwKKyAgICAgICAgICAgICAgICAibWVzc2Fn
ZSI6ICJhbm90aGVyIG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJy
ZXZpc2lvbiI6ICIyMTA5NTEiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIi
OiAiMTg0Mjc4QHNvbWV0aGluZyIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0y
MFQwMzo0OTo0MC44ODdaIiwKKyAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNv
bW1pdCBRdWV1ZSIsICJhY2NvdW50IjogImNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnIn0sCisgICAg
ICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdlIiwKICAgICAgICAgICAgIH0K
ICAgICAgICAgXQotICAgIH0KKyAgICB9OwogCiAgICAgY29uc3QgY29tbWl0c09uZVByZWZpeE9m
VGhlT3RoZXIgPSB7CiAgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKQEAgLTQ2LDYg
Kzg5LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKICAgICAgICAg
ICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklk
ZW50aWZpZXIiOiAiMTg0MjcyQG1haW4iLAogICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTct
MDEtMjBUMDI6NTI6MzQuNTc3WiIsCiAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6
ICJaYWxhbiBCdWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKICAgICAgICAg
ICAgICAgICAibWVzc2FnZSI6ICJhIG1lc3NhZ2UiLApAQCAtNTMsNiArOTcsNyBAQCBkZXNjcmli
ZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAogICAgICAgICAgICAgICAgICJyZXZpc2lv
biI6ICIyMTA5NDkiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0
Mjc3QG1haW4iLAogICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDM6MjM6NTAu
NjQ1WiIsCiAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDaHJpcyBEdW1leiIs
ICJhY2NvdW50IjogImNkdW1lekBhcHBsZS5jb20ifSwKICAgICAgICAgICAgICAgICAibWVzc2Fn
ZSI6ICJzb21lIG1lc3NhZ2UiLApAQCAtNTI0LDYgKzU2OSw0MSBAQCBkZXNjcmliZSgiL2FwaS9j
b21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIAor
ICAgICAgICBpdCgic2hvdWxkIHJldHVybiBjb21taXQgd2l0aCBjb21taXQgcmV2aXNpb24gbGFi
ZWwiLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChz
dWJ2ZXJzaW9uQ29tbWl0cyk7CisgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3Vi
dmVyc2lvbkNvbW1pdHMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oYC9hcGkvY29tbWl0cy9XZWJLaXQvJHtzdWJ2ZXJz
aW9uQ29tbWl0cy5jb21taXRzWzBdLnJldmlzaW9uSWRlbnRpZmllcn1gKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQuY29tbWl0cy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0LmNvbW1pdHNbMF0sIHN1
YnZlcnNpb25Db21taXRzLmNvbW1pdHNbMF0pOworICAgICAgICB9KTsKKworICAgICAgICBpdCgi
c2hvdWxkIHJldHVybiAnQW1iaWd1b3VzUmV2aXNpb25QcmVmaXgnIHdoZW4gbW9yZSB0aGFuIG9u
ZSBjb21taXRzIGFyZSBmb3VuZCBmb3IgYSByZXZpc2lvbiBsYWJlbCBwcmVmaXgiLCBhc3luYyAo
KSA9PiB7CisgICAgICAgICAgICBjb25zdCByZW1vdGUgPSBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
OworICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3ViY2Vyc2lvbkNvbW1pdHNX
aXRoRmFrZVJldmlzaW9uSWRlbnRpZmllcik7CisgICAgICAgICAgICBhd2FpdCByZW1vdGUucG9z
dEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YmNlcnNpb25Db21taXRz
V2l0aEZha2VSZXZpc2lvbklkZW50aWZpZXIpOworICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0g
YXdhaXQgcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMTg0Mjc4QD9wcmVmaXgt
bWF0Y2g9dHJ1ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3Rh
dHVzJ10sICdBbWJpZ3VvdXNSZXZpc2lvblByZWZpeCcpOworICAgICAgICB9KTsKKworICAgICAg
ICBpdCgic2hvdWxkIG5vdCByZXR1cm4gJ0FtYmlndW91c1JldmlzaW9uUHJlZml4JyB3aGVuIHRo
ZXJlIGlzIGEgY29tbWl0IHJldmlzaW9uIGxhYmVsIGV4dHJhY3QgbWF0Y2hlcyBzcGVjaWZpZWQg
cmV2aXNpb24gcHJlZml4IiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29uc3QgcmVtb3Rl
ID0gVGVzdFNlcnZlci5yZW1vdGVBUEkoKTsKKyAgICAgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9y
UmVwb3J0KHN1YmNlcnNpb25Db21taXRzV2l0aEZha2VSZXZpc2lvbklkZW50aWZpZXIpOworICAg
ICAgICAgICAgYXdhaXQgcmVtb3RlLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29t
bWl0cy8nLCBzdWJjZXJzaW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25JZGVudGlmaWVyKTsKKyAg
ICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1p
dHMvV2ViS2l0LzE4NDI3OEBtYWluP3ByZWZpeC1tYXRjaD10cnVlJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7CisgICAg
ICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMn
XVswXSwgc3ViY2Vyc2lvbkNvbW1pdHNXaXRoRmFrZVJldmlzaW9uSWRlbnRpZmllclsnY29tbWl0
cyddWzJdKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gJ1Vua25v
d25Db21taXQnIHdoZW4gbm8gY29tbWl0IGlzIGZvdW5kIGZvciBhIHJldmlzaW9uIGxhYmVsIHBy
ZWZpeCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCk7CisgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJj
ZXJzaW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25JZGVudGlmaWVyKTsKKyAgICAgICAgICAgIGF3
YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3Vi
Y2Vyc2lvbkNvbW1pdHNXaXRoRmFrZVJldmlzaW9uSWRlbnRpZmllcik7CisgICAgICAgICAgICBj
b25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8x
ODQyNzhAeD9wcmVmaXgtbWF0Y2g9dHJ1ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsnc3RhdHVzJ10sICdVbmtub3duQ29tbWl0Jyk7CisgICAgICAgIH0pOwogICAg
IH0pOwogCiAgICAgZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88cmVwb3NpdG9yeT4vb3duZWQtY29t
bWl0cz9vd25lci1yZXZpc2lvbj08Y29tbWl0PicsICgpID0+IHsKQEAgLTcyNyw2ICs4MDcsMzMg
QEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gcmVwb3J0ZWQgY29t
bWl0cyBpbiB0aGUgc3BlY2lmaWVkIHJldmlzaW9uIGxhYmVsIHJhbmdlIiwgYXN5bmMgKCkgPT4g
eworICAgICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAg
ICAgICBhd2FpdCBkYi5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHsnaWQnOiAxLCAnbmFtZSc6ICdX
ZWJLaXQnfSk7CisgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9z
aXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTQ4JywgJ3JldmlzaW9uX2lkZW50aWZpZXInOiAn
MTg0Mjc2QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIwVDAyOjUyOjM0LjU3N1onLCAncmVwb3J0
ZWQnOiB0cnVlfSk7CisgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3Jl
cG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTQ5JywgJ3JldmlzaW9uX2lkZW50aWZpZXIn
OiAnMTg0Mjc3QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIwVDAzOjIzOjUwLjY0NVonLCAncmVw
b3J0ZWQnOiB0cnVlfSk7CisgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7
J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTUwJywgJ3JldmlzaW9uX2lkZW50aWZp
ZXInOiAnMTg0Mjc4QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIwVDAzOjQ5OjM3Ljg4N1onLCAn
cmVwb3J0ZWQnOiB0cnVlfSk7CisgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvP3ByZWNlZGlu
Z1JldmlzaW9uPTE4NDI3NkBtYWluJmxhc3RSZXZpc2lvbj0xODQyNzhAbWFpbicpOworICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDIp
OworICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydj
b21taXRzJ11bMF0sIHsKKyAgICAgICAgICAgICAgICBwcmV2aW91c0NvbW1pdDogbnVsbCwKKyAg
ICAgICAgICAgICAgICByZXZpc2lvbjogJzIxMDk0OScsCisgICAgICAgICAgICAgICAgcmV2aXNp
b25JZGVudGlmaWVyOiAnMTg0Mjg5QG1haW4nLAorICAgICAgICAgICAgICAgIHRpbWU6ICcyMDE3
LTAxLTIwVDAzOjIzOjUwLjY0NVonLAorICAgICAgICAgICAgICAgIGF1dGhvcjoge25hbWU6IG51
bGwsIGFjY291bnQ6IG51bGx9LAorICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG51bGwsCisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVk
KHJlc3VsdFsnY29tbWl0cyddWzFdLCB7CisgICAgICAgICAgICAgICAgcHJldmlvdXNDb21taXQ6
IG51bGwsCisgICAgICAgICAgICAgICAgcmV2aXNpb246ICcyMTA5NTAnLAorICAgICAgICAgICAg
ICAgIHJldmlzaW9uSWRlbnRpZmllcjogJzE4NDI5MEBtYWluJywKKyAgICAgICAgICAgICAgICB0
aW1lOiAnMjAxNy0wMS0yMFQwMzo0OTozNy44ODdaJywKKyAgICAgICAgICAgICAgICBhdXRob3I6
IHtuYW1lOiBudWxsLCBhY2NvdW50OiBudWxsfSwKKyAgICAgICAgICAgICAgICBtZXNzYWdlOiBu
dWxsLAorICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCiAgICAgICAgIGl0KCJzaG91bGQg
bm90IGluY2x1ZGUgYSByZXZpc2lvbiBub3Qgd2l0aGluIHRoZSBzcGVjaWZpZWQgcmFuZ2UiLCAo
KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKICAg
ICAgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7CkBAIC03NTAs
NiArODU3LDIzIEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCisgICAgICAgIGl0KCJzaG91bGQgbm90IGluY2x1
ZGUgYSByZXZpc2lvbiBub3Qgd2l0aGluIHRoZSBzcGVjaWZpZWQgY29tbWl0IHJldmlzaW9uIGxh
YmVsIHJhbmdlIiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2Vy
dmVyLmRhdGFiYXNlKCk7CisgICAgICAgICAgICBjb25zdCByZW1vdGUgPSBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpOworICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7
J2lkJzogMSwgJ25hbWUnOiAnV2ViS2l0J30pLAorICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0
KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk0NycsICdyZXZp
c2lvbl9pZGVudGlmaWVyJzogJzE4NDI3NUBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMjoz
ODo0NS40ODVaJywgJ3JlcG9ydGVkJzogZmFsc2V9KTsKKyAgICAgICAgICAgIGF3YWl0IGRiLmlu
c2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6ICcyMTA5NDgnLCAn
cmV2aXNpb25faWRlbnRpZmllcic6ICcxODQyNzZAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBU
MDI6NTI6MzQuNTc3WicsICdyZXBvcnRlZCc6IGZhbHNlfSk7CisgICAgICAgICAgICBhd2FpdCBk
Yi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTQ5
JywgJ3JldmlzaW9uX2lkZW50aWZpZXInOiAnMTg0Mjc3QG1haW4nLCAndGltZSc6ICcyMDE3LTAx
LTIwVDAzOjIzOjUwLjY0NVonLCAncmVwb3J0ZWQnOiBmYWxzZX0pOworICAgICAgICAgICAgYXdh
aXQgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIx
MDk1MCcsICdyZXZpc2lvbl9pZGVudGlmaWVyJzogJzE4NDI3OEBtYWluJywgJ3RpbWUnOiAnMjAx
Ny0wMS0yMFQwMzo0OTozNy44ODdaJywgJ3JlcG9ydGVkJzogZmFsc2V9KTsKKyAgICAgICAgICAg
IGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRzKTsKKyAgICAgICAgICAg
IGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywg
c3VidmVyc2lvbkNvbW1pdHMpOworICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVt
b3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvP3ByZWNlZGluZ1JldmlzaW9uPTE4NDI3
NUBtYWluJmxhc3RSZXZpc2lvbj0xODQyNzdAbWFpbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDIpOworICAgICAgICAgICAg
YXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1
YnZlcnNpb25Db21taXRzWydjb21taXRzJ11bMF0pOworICAgICAgICAgICAgYXNzZXJ0Q29tbWl0
SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMV0sIHN1YnZlcnNpb25Db21t
aXRzWydjb21taXRzJ11bMV0pOworICAgICAgICB9KTsKKwogICAgIH0pOwogCiB9KTsKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1j
b21taXRzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9h
cGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKaW5kZXggYjRlZTcyNmYzNTUzMDJhYjE4ZDZjNzM2
Y2JiNDBjMzBjNGIxODU5Yi4uOWU2YTAwYTk3N2ZhMjFiOTQ0ZjQ5ZGNhZjFlNzZkNzllZDQzNmZj
MSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
cmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKQEAgLTI2LDYgKzI2LDIwIEBA
IGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgfQogICAgICAgICBdLAogICAgIH07CisgICAgY29uc3Qgc3Vi
dmVyc2lvbkNvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIgPSB7CisgICAgICAgICJzbGF2ZU5h
bWUiOiAic29tZVNsYXZlIiwKKyAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3b3Jk
IiwKKyAgICAgICAgImNvbW1pdHMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
InJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTQx
OTc3IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjEyNzIzMUBtYWlu
IiwKKyAgICAgICAgICAgICAgICAidGltZSI6ICIyMDEzLTAyLTA2VDA4OjU1OjIwLjlaIiwKKyAg
ICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50
IjogImNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnIn0sCisgICAgICAgICAgICAgICAgIm1lc3NhZ2Ui
OiAic29tZSBtZXNzYWdlIiwKKyAgICAgICAgICAgIH0KKyAgICAgICAgXSwKKyAgICB9OwogICAg
IGNvbnN0IHN1YnZlcnNpb25JbnZhbGlkQ29tbWl0ID0gewogICAgICAgICAic2xhdmVOYW1lIjog
InNvbWVTbGF2ZSIsCiAgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCkBA
IC03Niw2ICs5MCw0NCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNl
cnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgXQogICAgIH0KIAorICAgIGNvbnN0IGR1
cGxpY2F0ZWRDb21taXRSZXZpc2lvbklkZW50aWZpZXJDb21taXRzID0geworICAgICAgICAic2xh
dmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNz
d29yZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjog
IjIxMDk0OCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxODQyNzZA
bWFpbiIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMjo1MjozNC41Nzda
IiwKKyAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIlphbGFuIEJ1anRhcyIsICJh
Y2NvdW50IjogInphbGFuQGFwcGxlLmNvbSJ9LAorICAgICAgICAgICAgICAgICJtZXNzYWdlIjog
ImEgbWVzc2FnZSIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjog
IjIxMDk0OSIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxODQyNzZA
bWFpbiIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMzoyMzo1MC42NDVa
IiwKKyAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNocmlzIER1bWV6IiwgImFj
Y291bnQiOiAiY2R1bWV6QGFwcGxlLmNvbSJ9LAorICAgICAgICAgICAgICAgICJtZXNzYWdlIjog
InNvbWUgbWVzc2FnZSIsCisgICAgICAgICAgICB9LAorICAgICAgICBdCisgICAgfQorCisgICAg
Y29uc3QgaW52YWxpZENvbW1pdFJldmlzaW9uSWRlbnRpZmllckNvbW1pdHMgPSB7CisgICAgICAg
ICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29t
ZVBhc3N3b3JkIiwKKyAgICAgICAgImNvbW1pdHMiOiBbCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAicmV2aXNp
b24iOiAiMjEwOTQ4IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4
NDI3NiIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMjo1MjozNC41Nzda
IiwKKyAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIlphbGFuIEJ1anRhcyIsICJh
Y2NvdW50IjogInphbGFuQGFwcGxlLmNvbSJ9LAorICAgICAgICAgICAgICAgICJtZXNzYWdlIjog
ImEgbWVzc2FnZSIsCisgICAgICAgICAgICB9LAorICAgICAgICBdCisgICAgfQorCiAgICAgaXQo
InNob3VsZCByZWplY3QgZXJyb3Igd2hlbiBzbGF2ZSBuYW1lIGlzIG1pc3NpbmciLCAoKSA9PiB7
CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC1jb21taXRzLycsIHt9KS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ01pc3NpbmdTbGF2ZU5hbWUnKTsK
QEAgLTE0NSw2ICsxOTcsMjIgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGgg
aW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pOwogICAgIH0pOwogCisgICAg
aXQoInNob3VsZCByZWplY3QgYW4gaW52YWxpZCByZXZpc2lvbiBsYWJlbCIsIGFzeW5jICgpID0+
IHsKKyAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1pdCk7Cisg
ICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBpbnZhbGlkQ29tbWl0UmV2aXNpb25JZGVudGlm
aWVyQ29tbWl0cyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdJbnZhbGlkUmV2aXNpb25JZGVudGlmaWVyJyk7CisgICAgICAgIGNvbnN0IHJvd3MgPSBh
d2FpdCBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdjb21taXRzJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMCk7CisgICAgfSk7CisKKyAgICBpdCgi
c2hvdWxkIHJlamVjdCB3aXRoIGR1cGxpY2F0ZWQgY29tbWl0IHJldmlzaW9uIGxhYmVscyIsIGFz
eW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoc3VidmVyc2lvbkNv
bW1pdCk7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBkdXBsaWNhdGVkQ29tbWl0UmV2
aXNpb25JZGVudGlmaWVyQ29tbWl0cyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdEdXBsaWNhdGVkUmV2aXNpb25JZGVudGlmaWVyJyk7CisgICAgICAg
IGNvbnN0IHJvd3MgPSBhd2FpdCBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdjb21t
aXRzJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMCk7CisgICAg
fSk7CisKICAgICBpdCgic2hvdWxkIHN0b3JlIHR3byBjb21taXRzIGZyb20gYSB2YWxpZCBzbGF2
ZSIsICgpID0+IHsKICAgICAgICAgcmV0dXJuIGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25U
d29Db21taXRzKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Ud29D
b21taXRzKTsKQEAgLTIxNSw2ICsyODMsMjUgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1p
dHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pOwogICAgIH0p
OwogCisgICAgaXQoInNob3VsZCB1cGRhdGUgYW4gZXhpc3RpbmcgY29tbWl0IHdpdGggY29tbWl0
IGxhYmVsIGlmIHRoZXJlIGlzIG9uZSIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgY29uc3QgZGIg
PSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIGNvbnN0IHJlcG9ydGVkRGF0YSA9IHN1
YnZlcnNpb25Db21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyLmNvbW1pdHNbMF07CisgICAgICAg
IGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRXaXRoUmV2aXNpb25JZGVu
dGlmaWVyKTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7J2lkJzog
MSwgJ25hbWUnOiAnV2ViS2l0J30pLAorICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1pdHMn
LCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiByZXBvcnRlZERhdGFbJ3JldmlzaW9uJ10s
ICd0aW1lJzogcmVwb3J0ZWREYXRhWyd0aW1lJ119KQorICAgICAgICBjb25zdCByZXNwb25zZSA9
IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1p
dHMvJywgc3VidmVyc2lvbkNvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgY29u
c3QgY29tbWl0cyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgnY29tbWl0cycpOworICAgICAgICBjb25z
dCBjb21taXR0ZXJzID0gYXdhaXQgZGIuc2VsZWN0QWxsKCdjb21taXR0ZXJzJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXR0ZXJzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRzWzBdWydtZXNzYWdlJ10sIHJlcG9ydGVkRGF0YVsnbWVzc2FnZSddKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ3JldmlzaW9uX2lkZW50aWZpZXIn
XSwgcmVwb3J0ZWREYXRhWydyZXZpc2lvbklkZW50aWZpZXInXSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRzWzBdWydjb21taXR0ZXInXSwgY29tbWl0dGVyc1swXVsnaWQnXSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXR0ZXJzWzBdWyduYW1lJ10sIHJlcG9y
dGVkRGF0YVsnYXV0aG9yJ11bJ25hbWUnXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXR0ZXJzWzBdWydhY2NvdW50J10sIHJlcG9ydGVkRGF0YVsnYXV0aG9yJ11bJ2FjY291bnQn
XSk7CisgICAgfSk7CisKICAgICBpdCgic2hvdWxkIG5vdCB1cGRhdGUgYW4gdW5yZWxhdGVkIGNv
bW1pdCIsICgpID0+IHsKICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7
CiAgICAgICAgIGNvbnN0IGZpcnN0RGF0YSA9IHN1YnZlcnNpb25Ud29Db21taXRzLmNvbW1pdHNb
MF07CkBAIC01OTAsNiArNjc3LDExMSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8g
d2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPd25lZENvbW1pdFNob3VsZE5vdENvbnRhaW5U
aW1lc3RhbXAnKTsKICAgICAgICAgfSk7CiAgICAgfSk7CisKKyAgICBjb25zdCBpbnZhbGlkT3du
ZWRDb21taXRVc2VSZXZpc2lvbklkZW50aWZpZXJBc1Jldmlzb24gPSB7CisgICAgICAgICJzbGF2
ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAgICAgICAgInNsYXZlUGFzc3dvcmQiOiAic29tZVBhc3N3
b3JkIiwKKyAgICAgICAgImNvbW1pdHMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgInJlcG9zaXRvcnkiOiAiT1NYIiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiU2ll
cnJhMTZEMzIiLAorICAgICAgICAgICAgICAgICJvcmRlciI6IDEsCisgICAgICAgICAgICAgICAg
Im93bmVkQ29tbWl0cyI6IHsKKyAgICAgICAgICAgICAgICAgICAgIldlYktpdCI6IHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxMjcyMzJAbWFpbiIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50
IjogImNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAi
bWVzc2FnZSI6ICJXZWJLaXQgQ29tbWl0IiwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgXQorICAgIH07CisKKyAgICBpdCgi
c2hvdWxkIHJlamVjdCBpbnNlcnRpbmcgb25lIGNvbW1pdCB3aXRoIG93bmVkIGNvbW1pdHMgdGhh
dCB1c2UgcmV2aXNpb24gbGFiZWwgYXMgcmV2aXNpb24iLCBhc3luYyAoKSA9PiB7CisgICAgICAg
IGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KGludmFsaWRPd25lZENvbW1pdFVzZVJldmlzaW9uSWRl
bnRpZmllckFzUmV2aXNvbik7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBpbnZhbGlk
T3duZWRDb21taXRVc2VSZXZpc2lvbklkZW50aWZpZXJBc1Jldmlzb24pOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJldmlzaW9uJyk7Cisg
ICAgfSk7CisKKyAgICBjb25zdCBpbnZhbGlkUmV2aXNpb25JZGVudGlmaWVyT3duZWRDb21taXQg
PSB7CisgICAgICAgICJzbGF2ZU5hbWUiOiAic29tZVNsYXZlIiwKKyAgICAgICAgInNsYXZlUGFz
c3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgImNvbW1pdHMiOiBbCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiT1NYIiwKKyAgICAgICAgICAgICAg
ICAicmV2aXNpb24iOiAiU2llcnJhMTZEMzIiLAorICAgICAgICAgICAgICAgICJvcmRlciI6IDEs
CisgICAgICAgICAgICAgICAgIm93bmVkQ29tbWl0cyI6IHsKKyAgICAgICAgICAgICAgICAgICAg
IldlYktpdCI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxNDE5Nzgi
LAorICAgICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxMjcyMzIi
LAorICAgICAgICAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQgUXVl
dWUiLCAiYWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Via2l0Lm9yZyJ9LAorICAgICAgICAgICAg
ICAgICAgICAgICAgIm1lc3NhZ2UiOiAiV2ViS2l0IENvbW1pdCIsCisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIF0KKyAgICB9
OworCisgICAgaXQoInNob3VsZCByZWplY3QgaW5zZXJ0aW5nIG9uZSBjb21taXQgd2l0aCBvd25l
ZCBjb21taXRzIHRoYXQgaGF2ZSBpbnZhbGlkIHJldmlzaW9uIGxhYmVsIiwgYXN5bmMgKCkgPT4g
eworICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChpbnZhbGlkUmV2aXNpb25JZGVudGlm
aWVyT3duZWRDb21taXQpOworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgaW52YWxpZFJl
dmlzaW9uSWRlbnRpZmllck93bmVkQ29tbWl0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXZpc2lvbklkZW50aWZpZXInKTsKKyAgICB9
KTsKKworICAgIGNvbnN0IGludmFsaWRBdXRob3JPd25lZENvbW1pdCA9IHsKKyAgICAgICAgInNs
YXZlTmFtZSI6ICJzb21lU2xhdmUiLAorICAgICAgICAic2xhdmVQYXNzd29yZCI6ICJzb21lUGFz
c3dvcmQiLAorICAgICAgICAiY29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAicmVwb3NpdG9yeSI6ICJPU1giLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICJT
aWVycmExNkQzMiIsCisgICAgICAgICAgICAgICAgIm9yZGVyIjogMSwKKyAgICAgICAgICAgICAg
ICAib3duZWRDb21taXRzIjogeworICAgICAgICAgICAgICAgICAgICAiV2ViS2l0IjogeworICAg
ICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3OCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjEyNzIzMkBtYWluIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICJhdXRob3IiOiBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICAg
Im1lc3NhZ2UiOiAiV2ViS2l0IENvbW1pdCIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIF0KKyAgICB9OworICAgIGl0KCJz
aG91bGQgcmVqZWN0IGluc2VydGluZyBvbmUgY29tbWl0IHdpdGggb3duZWQgY29tbWl0cyB0aGF0
IGhhdmUgaW52YWxpZCBhdXRob3IiLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFNs
YXZlRm9yUmVwb3J0KGludmFsaWRBdXRob3JPd25lZENvbW1pdCk7CisgICAgICAgIGNvbnN0IHJl
c3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBv
cnQtY29tbWl0cy8nLCBpbnZhbGlkQXV0aG9yT3duZWRDb21taXQpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZEF1dGhvckZvcm1hdCcpOwor
ICAgIH0pOworCisgICAgY29uc3Qgb3duZWRDb21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyID0g
eworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAgICJzbGF2ZVBhc3N3
b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIk9TWCIsCisgICAgICAgICAgICAgICAg
InJldmlzaW9uIjogIlNpZXJyYTE2RDMyIiwKKyAgICAgICAgICAgICAgICAib3JkZXIiOiAxLAor
ICAgICAgICAgICAgICAgICJvd25lZENvbW1pdHMiOiB7CisgICAgICAgICAgICAgICAgICAgICJX
ZWJLaXQiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTQxOTc4IiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTI3MjMyQG1h
aW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQg
UXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Via2l0Lm9yZyJ9LAorICAgICAgICAg
ICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiV2ViS2l0IENvbW1pdCIsCisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIF0KKyAg
ICB9OworCisgICAgaXQoInNob3VsZCBpbnNlcnQgb25lIGNvbW1pdCB3aXRoIGNvbW1pdCByZXZp
c2lvbiBsYWJlbCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBv
cnQob3duZWRDb21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKTsKKyAgICAgICAgY29uc3QgcmVz
cG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9y
dC1jb21taXRzLycsIG93bmVkQ29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcik7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBj
b25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgY29uc3QgY29tbWl0ID0g
YXdhaXQgZGIuc2VsZWN0Um93cygnY29tbWl0cycsIHsncmV2aXNpb24nOiAnMTQxOTc4J30pOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0WzBdLnJldmlzaW9uX2lkZW50aWZpZXIs
IG93bmVkQ29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllci5jb21taXRzWzBdLm93bmVkQ29tbWl0
c1snV2ViS2l0J10ucmV2aXNpb25JZGVudGlmaWVyKTsKKyAgICB9KTsKIH0pOwogCiBkZXNjcmli
ZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9ZmFsc2UiLCBmdW5jdGlvbiAoKSB7
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1y
ZXBvcnQtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2Fw
aS1yZXBvcnQtdGVzdHMuanMKaW5kZXggNWM0NDVmZWZjMGQ3MjA0YzBiYjVhMTZlMDJjZjYxMzcy
ZmYzZmI2OS4uZTlkOWM0NzAwNDNjMGU1MTQ5ZTRkOTg5ODIxMjVlY2JlZGFlZDc1YSAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRl
c3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJl
cG9ydC10ZXN0cy5qcwpAQCAtNzcsNiArNzcsMjkgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0Iiwg
ZnVuY3Rpb24gKCkgewogICAgICAgICB9OwogICAgIH0KIAorICAgIGZ1bmN0aW9uIHJlcG9ydFdp
dGhSZXZpc2lvbklkZW50aWZpZXJDb21taXQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAg
ICAgICAgICAgICJidWlsZFRhZyI6ICIxMjMiLAorICAgICAgICAgICAgImJ1aWxkVGltZSI6ICIy
MDEzLTAyLTI4VDEwOjEyOjAzLjM4ODMwNCIsCisgICAgICAgICAgICAiYnVpbGRlck5hbWUiOiAi
c29tZUJ1aWxkZXIiLAorICAgICAgICAgICAgInNsYXZlTmFtZSI6ICJzb21lU2xhdmUiLAorICAg
ICAgICAgICAgImJ1aWxkZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAgICAg
InBsYXRmb3JtIjogIk1vdW50YWluIExpb24iLAorICAgICAgICAgICAgInRlc3RzIjoge30sCisg
ICAgICAgICAgICAicmV2aXNpb25zIjogeworICAgICAgICAgICAgICAgICJtYWNPUyI6IHsKKyAg
ICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjEwLjguMiAxMkM2MCIKKyAgICAgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgICAgICJXZWJLaXQiOiB7CisgICAgICAgICAgICAgICAgICAg
ICJyZXZpc2lvbiI6ICIxNDE5NzciLAorICAgICAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVu
dGlmaWVyIjogIjEyNzIzMUBtYWluIiwKKyAgICAgICAgICAgICAgICAgICAgInRpbWVzdGFtcCI6
ICIyMDEzLTAyLTA2VDA4OjU1OjIwLjlaIgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKyAgICAgICAgfTsKKyAgICB9CisKICAgICBmdW5jdGlvbiBlbXB0eVNsYXZlUmVwb3J0KCkK
ICAgICB7CiAgICAgICAgIHJldHVybiB7CkBAIC0zNTEsNiArMzc0LDM3IEBAIGRlc2NyaWJlKCIv
YXBpL3JlcG9ydCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKKyAgICBp
dCgic2hvdWxkIGFkZCByZXZpc2lvbiBsYWJlbCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdh
aXQgYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNpb25JZGVudGlmaWVyQ29tbWl0
KCkpOworICAgICAgICBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBp
L3JlcG9ydC8nLCBbcmVwb3J0V2l0aFJldmlzaW9uSWRlbnRpZmllckNvbW1pdCgpXSk7CisgICAg
ICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBjb25zdCByZXBv
c2l0b3JpZXMgPSBhd2FpdCBkYi5zZWxlY3RBbGwoJ3JlcG9zaXRvcmllcycpOworICAgICAgICBj
b25zdCBjb21taXRzID0gIGF3YWl0IGRiLnNlbGVjdEFsbCgnY29tbWl0cycpOworICAgICAgICBj
b25zdCBidWlsZENvbW1pdHNSZWxhdGlvbnMgPSBhd2FpdCAgZGIuc2VsZWN0QWxsKCdidWlsZF9j
b21taXRzJywgJ2J1aWxkX2NvbW1pdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVw
b3NpdG9yaWVzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVw
b3NpdG9yaWVzLm1hcCgocm93KSA9PiByb3dbJ25hbWUnXSkuc29ydCgpLCBbJ1dlYktpdCcsICdt
YWNPUyddKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDIp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRzUmVsYXRpb25zLmxlbmd0
aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNb
MF1bJ2J1aWxkX2NvbW1pdCddLCBjb21taXRzWzBdWydpZCddKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1sxXVsnYnVpbGRfY29tbWl0J10sIGNvbW1p
dHNbMV1bJ2lkJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRzUmVs
YXRpb25zWzBdWydjb21taXRfYnVpbGQnXSwgYnVpbGRDb21taXRzUmVsYXRpb25zWzFdWydjb21t
aXRfYnVpbGQnXSk7CisKKyAgICAgICAgbGV0IHJlcG9zaXRvcnlJZFRvTmFtZSA9IHt9OworICAg
ICAgICBmb3IgKGNvbnN0IHJlcG9zaXRvcnkgb2YgcmVwb3NpdG9yaWVzKQorICAgICAgICAgICAg
cmVwb3NpdG9yeUlkVG9OYW1lW3JlcG9zaXRvcnlbJ2lkJ11dID0gcmVwb3NpdG9yeVsnbmFtZSdd
OworCisgICAgICAgIGxldCByZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3cgPSB7fTsKKyAgICAg
ICAgZm9yIChjb25zdCBjb21taXQgb2YgY29tbWl0cykKKyAgICAgICAgICAgIHJlcG9zaXRvcnlO
YW1lVG9SZXZpc2lvblJvd1tyZXBvc2l0b3J5SWRUb05hbWVbY29tbWl0WydyZXBvc2l0b3J5J11d
XSA9IGNvbW1pdDsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeU5hbWVU
b1JldmlzaW9uUm93WydtYWNPUyddWydyZXZpc2lvbiddLCAnMTAuOC4yIDEyQzYwJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktp
dCddWydyZXZpc2lvbiddLCAnMTQxOTc3Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktpdCddWydyZXZpc2lvbl9pZGVudGlmaWVy
J10sICcxMjcyMzFAbWFpbicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9y
eU5hbWVUb1JldmlzaW9uUm93WydXZWJLaXQnXVsndGltZSddLnRvU3RyaW5nKCksCisgICAgICAg
ICAgICBuZXcgRGF0ZSgnMjAxMy0wMi0wNiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7CisgICAg
fSk7CisKICAgICBpdCgic2hvdWxkIG5vdCBjcmVhdGUgYSBkdXBsaWNhdGUgYnVpbGQgZm9yIHRo
ZSBzYW1lIGJ1aWxkIG51bWJlciBpZiBidWlsZCB0aW1lcyBhcmUgY2xvc2UiLCAoKSA9PiB7CiAg
ICAgICAgIGNvbnN0IGZpcnN0UmVwb3J0ID0gZW1wdHlSZXBvcnQoKTsKICAgICAgICAgZmlyc3RS
ZXBvcnRbJ2J1aWxkVGltZSddID0gJzIwMTMtMDItMjhUMTA6MTI6MDQnOwpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVzdC1zZXJ2
ZXIuY29uZiBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2Vz
L3Rlc3Qtc2VydmVyLmNvbmYKaW5kZXggOTM2YjRmNGJmYWZmMDdlZGIwMzU4MzNjNDYzZWUxNjli
ZmMxNWExMS4uY2E1NTRiMTdmZDU5NDRlZGU3MWVjMWM3M2EzOWU5MGFhMGRiMzAyMCAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVz
dC1zZXJ2ZXIuY29uZgorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L3Jlc291cmNlcy90ZXN0LXNlcnZlci5jb25mCkBAIC0xLDYgKzEsOCBAQAogU2VydmVyUm9vdCAi
L3VzciIKIExpc3RlbiA4MDgwCiAKK0xvYWRNb2R1bGUgbXBtX3ByZWZvcmtfbW9kdWxlIGxpYmV4
ZWMvYXBhY2hlMi9tb2RfbXBtX3ByZWZvcmsuc28KK0xvYWRNb2R1bGUgcGhwN19tb2R1bGUgL3Vz
ci9sb2NhbC9DZWxsYXIvcGhwQDcuNC83LjQuMTYvbGliL2h0dHBkL21vZHVsZXMvbGlicGhwNy5z
bwogTG9hZE1vZHVsZSBhdXRobl9jb3JlX21vZHVsZSBsaWJleGVjL2FwYWNoZTIvbW9kX2F1dGhu
X2NvcmUuc28KIExvYWRNb2R1bGUgYXV0aHpfY29yZV9tb2R1bGUgbGliZXhlYy9hcGFjaGUyL21v
ZF9hdXRoel9jb3JlLnNvCiBMb2FkTW9kdWxlIGRlZmxhdGVfbW9kdWxlIGxpYmV4ZWMvYXBhY2hl
Mi9tb2RfZGVmbGF0ZS5zbwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Vu
aXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91
bml0LXRlc3RzL2NvbW1pdC1sb2ctdGVzdHMuanMKaW5kZXggNzBhYmRlYmY4MWU4YWI2MGQxZDE4
MTYzZTM5OTE4NzljYjQ3MzhiNi4uOTBhNTRiNjI5ZmJjYTEyMmFmODBiZWFmYWE5OGI4YjBkYzky
ODVhOCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY29t
bWl0LWxvZy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0
cy9jb21taXQtbG9nLXRlc3RzLmpzCkBAIC0xNyw2ICsxNywxNyBAQCBmdW5jdGlvbiB3ZWJraXRD
b21taXQoKQogICAgIH0pOwogfQogCitmdW5jdGlvbiB3ZWJraXRDb21taXRXaXRoUmV2aXNpb25J
ZGVudGlmaWVyKCkgCit7CisgICAgcmV0dXJuIG5ldyBDb21taXRMb2coMSwgeworICAgICAgICBp
ZDogMSwKKyAgICAgICAgcmVwb3NpdG9yeTogTW9ja01vZGVscy53ZWJraXQsCisgICAgICAgIHJl
dmlzaW9uOiAnMjAwODA1JywKKyAgICAgICAgcmV2aXNpb25JZGVudGlmaWVyOiAnMTg0Mjc2QG1h
aW4nLAorICAgICAgICB0aW1lOiArKG5ldyBEYXRlKCcyMDE2LTA1LTEzVDAwOjU1OjU3Ljg0MTM0
NFonKSksCisgICAgfSk7Cit9CisKIGZ1bmN0aW9uIG9sZFdlYktpdENvbW1pdCgpCiB7CiAgICAg
cmV0dXJuIG5ldyBDb21taXRMb2coMiwgewpAQCAtMjcsNiArMzgsMTcgQEAgZnVuY3Rpb24gb2xk
V2ViS2l0Q29tbWl0KCkKICAgICB9KTsKIH0KIAorZnVuY3Rpb24gb2xkV2ViS2l0Q29tbWl0V2l0
aFJldmlzaW9uSWRlbnRpZmllcigpCit7CisgICAgcmV0dXJuIG5ldyBDb21taXRMb2coMiwgewor
ICAgICAgICBpZDogMiwKKyAgICAgICAgcmVwb3NpdG9yeTogTW9ja01vZGVscy53ZWJraXQsCisg
ICAgICAgIHJldmlzaW9uOiAnMjAwNTc0JywKKyAgICAgICAgcmV2aXNpb25JZGVudGlmaWVyOiAn
MTc1NjA1QG1haW4nLAorICAgICAgICB0aW1lOiArKG5ldyBEYXRlKCcyMDE2LTA1LTA5VDE0OjU5
OjIzLjU1Mzc2N1onKSksCisgICAgfSk7Cit9CisKIGZ1bmN0aW9uIGdpdFdlYktpdENvbW1pdCgp
CiB7CiAgICAgcmV0dXJuIG5ldyBDb21taXRMb2coMywgewpAQCAtMzcsNiArNTksMTcgQEAgZnVu
Y3Rpb24gZ2l0V2ViS2l0Q29tbWl0KCkKICAgICB9KTsKIH0KIAorZnVuY3Rpb24gZ2l0V2ViS2l0
Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpCit7CisgICAgcmV0dXJuIG5ldyBDb21taXRM
b2coMywgeworICAgICAgICBpZDogMywKKyAgICAgICAgcmVwb3NpdG9yeTogTW9ja01vZGVscy53
ZWJraXQsCisgICAgICAgIHJldmlzaW9uOiAnNmY4YjBkYmJkYTk1YTQ0MDUwM2I4OGRiMWRkMDNk
YWQzYTdiMDdmYicsCisgICAgICAgIHJldmlzaW9uSWRlbnRpZmllcjogJzE4NDI3NkBtYWluJywK
KyAgICAgICAgdGltZTogKyhuZXcgRGF0ZSgnMjAxNi0wNS0xM1QwMDo1NTo1Ny44NDEzNDRaJykp
LAorICAgIH0pOworfQorCiBmdW5jdGlvbiBvbGRHaXRXZWJLaXRDb21taXQoKQogewogICAgIHJl
dHVybiBuZXcgQ29tbWl0TG9nKDQsIHsKQEAgLTQ3LDYgKzgwLDE3IEBAIGZ1bmN0aW9uIG9sZEdp
dFdlYktpdENvbW1pdCgpCiAgICAgfSk7CiB9CiAKK2Z1bmN0aW9uIG9sZEdpdFdlYktpdENvbW1p
dFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKQoreworICAgIHJldHVybiBuZXcgQ29tbWl0TG9nKDQs
IHsKKyAgICAgICAgaWQ6IDQsCisgICAgICAgIHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMud2Via2l0
LAorICAgICAgICByZXZpc2lvbjogJ2ZmZGExNGU2ZGIwNzQ2ZDEwZDBmMDUwOTA3ZTRhNzMyNTg1
MWU1MDInLAorICAgICAgICByZXZpc2lvbklkZW50aWZpZXI6ICcxNzU2MDVAbWFpbicsCisgICAg
ICAgIHRpbWU6ICsobmV3IERhdGUoJzIwMTYtMDUtMDlUMTQ6NTk6MjMuNTUzNzY3WicpKSwKKyAg
ICB9KTsKK30KKwogZnVuY3Rpb24gb3N4Q29tbWl0KCkKIHsKICAgICByZXR1cm4gbmV3IENvbW1p
dExvZyg1LCB7CkBAIC0xNDcsMTAgKzE5MSwxOCBAQCBkZXNjcmliZSgnQ29tbWl0TG9nJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdENvbW1pdCgpLmxhYmVs
KCksICdyMjAwODA1Jyk7CiAgICAgICAgIH0pOwogCi0gICAgICAgIGl0KCdzaG91bGQgdHJ1bmNh
dGUgYSBHaXQgaGFzaCBhdCA4dGggY2hhcmFjdGVyJywgZnVuY3Rpb24gKCkgeworICAgICAgICBp
dCgnc2hvdWxkIGRpc3BsYXkgcmV2aXNpb24gbGFiZWwgZm9sbG93ZWQgYnkgc3ZuIHJlZml4ZWQg
d2l0aCAiciInLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0
Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpLmxhYmVsKCksICcxODQyNzZAbWFpbiAocjIw
MDgwNSknKQorICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHRydW5jYXRlIGEgR2l0
IGhhc2ggYXQgMTJ0aCBjaGFyYWN0ZXInLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZ2l0V2ViS2l0Q29tbWl0KCkubGFiZWwoKSwgJzZmOGIwZGJiZGE5NScpOwogICAg
ICAgICB9KTsKIAorICAgICAgICBpdCgnc2hvdWxkIGRpc3BsYXkgcmV2aXNpb24gbGFiZWwgZm9s
bG93ZWQgYnkgZ2l0IGhhc2ggdHJ1bmNhdGVkJywgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGdpdFdlYktpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKS5sYWJl
bCgpLCAnMTg0Mjc2QG1haW4gKDZmOGIwZGJiZGE5NSknKQorICAgICAgICB9KTsKKwogICAgICAg
ICBpdCgnc2hvdWxkIG5vdCBtb2RpZnkgT1MgWCB2ZXJzaW9uJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdCgpLmxhYmVsKCksICcxMC4xMS40IDE1RTY1
Jyk7CiAgICAgICAgIH0pOwpAQCAtMTYxLDEwICsyMTMsMTggQEAgZGVzY3JpYmUoJ0NvbW1pdExv
ZycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRDb21taXQo
KS50aXRsZSgpLCAnV2ViS2l0IGF0IHIyMDA4MDUnKTsKICAgICAgICAgfSk7CiAKLSAgICAgICAg
aXQoJ3Nob3VsZCB0cnVuY2F0ZSBhIEdpdCBoYXNoIGF0IDh0aCBjaGFyYWN0ZXInLCBmdW5jdGlv
biAoKSB7CisgICAgICAgIGl0KCdzaG91bGQgaW5jbHVkZSByZXZpc2lvbiBsYWJlbCcsICgpID0+
IHsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRDb21taXRXaXRoUmV2aXNp
b25JZGVudGlmaWVyKCkudGl0bGUoKSwgJ1dlYktpdCBhdCAxODQyNzZAbWFpbiAocjIwMDgwNSkn
KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCB0cnVuY2F0ZSBhIEdpdCBoYXNo
IGF0IDEydGggY2hhcmFjdGVyJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGdpdFdlYktpdENvbW1pdCgpLnRpdGxlKCksICdXZWJLaXQgYXQgNmY4YjBkYmJkYTk1Jyk7
CiAgICAgICAgIH0pOwogCisgICAgICAgIGl0KCdzaG91bGQgZGlzcGxheSByZXZpc2lvbiBsYWJl
bCBmb2xsb3dlZCBieSBnaXQgaGFzaCB0cnVuY2F0ZWQnLCAgKCkgPT4geworICAgICAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGdpdFdlYktpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIo
KS50aXRsZSgpLCAnV2ViS2l0IGF0IDE4NDI3NkBtYWluICg2ZjhiMGRiYmRhOTUpJyk7CisgICAg
ICAgIH0pOworCiAgICAgICAgIGl0KCdzaG91bGQgbm90IG1vZGlmeSBPUyBYIHZlcnNpb24nLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0KCkudGl0bGUo
KSwgJ09TIFggYXQgMTAuMTEuNCAxNUU2NScpOwogICAgICAgICB9KTsKQEAgLTIyMyw2ICsyODMs
MzEgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAg
ICByZXBvc2l0b3J5OiBNb2NrTW9kZWxzLm9zeAogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OworCisgICAgICAgIGl0KCdzaG91bGQgZGlzcGxheSByZXZpc2lvbiBsYWJlbCBmb2xsb3dlZCB3
aXRoIHJldmlzb24gYW5kICBjb25uZWN0IHdpdGggIi0iLCBpZiBib3RoIGhhdmUgcmV2aXNpb24g
bGFiZWwnLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHdlYmtp
dENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKS5kaWZmKG9sZFdlYktpdENvbW1pdFdpdGhS
ZXZpc2lvbklkZW50aWZpZXIoKSksIHsKKyAgICAgICAgICAgICAgICBsYWJlbDogJzE3NTYwNS0x
ODQyNzZAbWFpbiAocjIwMDU3NC1yMjAwODA1KScsCisgICAgICAgICAgICAgICAgdXJsOiAnJywK
KyAgICAgICAgICAgICAgICByZXBvc2l0b3J5OiBNb2NrTW9kZWxzLndlYmtpdAorICAgICAgICAg
ICAgfSkKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBkaXNwbGF5IHJldmlzaW9u
IGxhYmVsIGZvbGxvd2VkIHdpdGggcmV2aXNvbiBhbmQgIGNvbm5lY3Qgd2l0aCAiLSIsIGlmIGJv
dGggaGF2ZSByZXZpc2lvbiBsYWJlbCcsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwoZ2l0V2ViS2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpLmRpZmYo
b2xkR2l0V2ViS2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpKSwgeworICAgICAgICAg
ICAgICAgIGxhYmVsOiAnMTc1NjA1LTE4NDI3NkBtYWluIChmZmRhMTRlNmRiMDcuLjZmOGIwZGJi
ZGE5NSknLAorICAgICAgICAgICAgICAgIHVybDogJycsCisgICAgICAgICAgICAgICAgcmVwb3Np
dG9yeTogTW9ja01vZGVscy53ZWJraXQKKyAgICAgICAgICAgIH0pCisgICAgICAgIH0pOworCisg
ICAgICAgIGl0KCdzaG91bGQgY29udGFpbiByZXZpc2lvbiBsYWJlbCwgaWYgb25lIG9mIHRoZSBj
b21taXRzIGRvZXNuYHQgaGF2ZSB0aGUgcmV2aXNpb24gbGFiZWwnLCAoKSA9PiB7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHdlYmtpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50
aWZpZXIoKS5kaWZmKG9sZFdlYktpdENvbW1pdCgpKSwgeworICAgICAgICAgICAgICAgIGxhYmVs
OiAncjIwMDU3NCAtIDE4NDI3NkBtYWluIChyMjAwODA1KScsCisgICAgICAgICAgICAgICAgdXJs
OiAnJywKKyAgICAgICAgICAgICAgICByZXBvc2l0b3J5OiBNb2NrTW9kZWxzLndlYmtpdAorICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0pOworCiAgICAgfSk7CiAKICAgICBkZXNjcmliZSgnaGFz
T3JkZXJpbmcnLCAoKSA9PiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424796</attachid>
            <date>2021-03-31 11:56:36 -0700</date>
            <delta_ts>2021-03-31 13:42:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222897-20210331115635.patch</filename>
            <type>text/plain</type>
            <size>53065</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1Mjk4CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCAyZTQ4MWI2MTIzNDI1YWM2YzJkOTVmZTUwYjkxOGNhMGRjYzc4YmI0Li4xZTg5NjE5M2Rh
NTIzYjI3NzRkMDg0ZDA4NTYwNmQ3MGYwNDJkNDg0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAyMS0wMy0zMSAgWmhpZmVpIEZhbmcgIDx6aGlmZWlf
ZmFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGNvbW1pdCByZXZpc2lvbiBsYWJlbCBzdXBw
b3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI4
OTcKKworICAgICAgICBSZXZpZXdlZCBieSBybml3YUB3ZWJraXQub3JnLgorCisgICAgICAgIEFk
ZCBuZXcgY29sdW1uIHJldmlzaW9uIGxhYmVsLgorICAgICAgICBNYWtlIGFsbCBjb21taXQgYXBp
IGFsc28gY2FuIHdvcmsgd2l0aCByZXZpc2lvbiBsYWJlbC4KKyAgICAgICAgQ2hhbmdlIHRoZSBj
b21taXQgbGFiZWwgZGlzcGxheSB3aXRoIGNvbW1pdCByZXZpc2lvbiBsYWJlbC4KKworICAgICAg
ICAqIGJyb3dzZXItdGVzdHMvY29tbWl0LWxvZy12aWV3ZXItdGVzdHMuanM6IEZpeCBhIGZhaWxl
ZCB0ZXN0IGNhc2UsIHdoaWxlIHJlcXVlc3RpbmcgdGhlIHJlbW90ZSBhcGksIAorICAgICAgICB3
ZSBzaG91bGQgd2FpdCBmb3IgdGhvc2UgcHJvbWlzZXMgcmVzb2x2ZWQgYW5kIHRoZW4gd2FpdCBm
b3IgY29tbXBvbmVudCB0byByZW5kZXIuCisgICAgICAgICogaW5pdC1kYXRhYmFzZS5zcWw6IEFk
ZCBuZXcgY29sdW1uIHJldmlzaW9uX2lkZW50aWZpZXIuCisgICAgICAgICogbWlncmF0ZS1kYXRh
YmFzZS5zcWw6IEFkZCBuZXcgY29sdW1uIHJldmlzaW9uX2lkZW50aWZpZXIuCisgICAgICAgICog
cHVibGljL2luY2x1ZGUvY29tbWl0LWxvZy1mZXRjaGVyLnBocDogTWFrZSBhcGkgdGhhdCB3b3Jr
cyB3aXRoIHJldmlzaW9uIHNob3VsZCB3b3JrIHdpdGggcmV2aXNpb24gbGFiZWwuCisgICAgICAg
ICogcHVibGljL2luY2x1ZGUvY29tbWl0LXVwZGF0ZXIucGhwOiBEaXR0by4KKyAgICAgICAgKiBw
dWJsaWMvaW5jbHVkZS9yZXBvcnQtcHJvY2Vzc29yLnBocDogTWFrZSB0aGUgcHJvY2Vzc29yIGNh
biBhbHNvIGluc2VydCByZXZpc2lvbiBsYWJlbC4KKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxz
L2NvbW1pdC1sb2cuanM6CisgICAgICAgIChDb21taXRMb2cucHJvdG90eXBlLnVwZGF0ZVNpbmds
ZXRvbik6CisgICAgICAgIChDb21taXRMb2cucHJvdG90eXBlLnJldmlzaW9uSWRlbnRpZmllcik6
CisgICAgICAgIChDb21taXRMb2cucHJvdG90eXBlLmxhYmVsKTogTWFrZSB0aGUgbGFiZWwgaW5j
bHVkZSByZXZpc2lvbiBsYWJlbCBhbmQgcmV2aXNpb24uCisgICAgICAgIChDb21taXRMb2cucHJv
dG90eXBlLmRpZmYpOiBNYWtlIHRoZSBkaWZmIGxhYmVsIGluY2x1ZGUgcmV2aXNpb24gbGFiZWwg
YW5kIHJldmlzaW9uLgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5q
czoKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzOgor
ICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzOgorICAgICAgICAocmVw
b3J0V2l0aFJldmlzaW9uSWRlbnRpZmllckNvbW1pdCk6CisgICAgICAgICogdW5pdC10ZXN0cy9j
b21taXQtbG9nLXRlc3RzLmpzOgorCiAyMDIxLTAzLTIyICBEZXdlaSBaaHUgIDxkZXdlaV96aHVA
YXBwbGUuY29tPgogCiAgICAgICAgIFtwZXJmIGRhc2hib2FyZF0gUmVtb3ZlIHYxIGFuZCB2MiBj
b2RlLgpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMv
Y29tbWl0LWxvZy12aWV3ZXItdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJv
d3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcwppbmRleCBkYmM0Y2ZjZDliYzIx
NGI3MDhlZTE5OGYxZWE2NjVmMjI0MjI4NTYwLi5mODQ4OWU3Y2FjNDRlMjMwMjBmN2U4ZjJjZTY0
NDdhN2EyYzQyZjhiIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nl
ci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qcwpAQCAtNTUs
NiArNTUsMTkgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZ1ZpZXdlcicsICgpID0+IHsKICAgICAgICAg
Im1lc3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdlIiwKICAgICB9OwogCisgICAgY29uc3Qgd2Via2l0
Q29tbWl0MjEwOTUwV2l0aFJldmlzaW9uSWRlbnRpZmllciA9IHsKKyAgICAgICAgImlkIjogIjE4
NTMzOCIsCisgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NTAiLAorICAgICAgICAicmV2aXNpb25J
ZGVudGlmaWVyIjogIjE4NDI3OEBtYWluIiwKKyAgICAgICAgInJlcG9zaXRvcnkiOiAxLAorICAg
ICAgICAicHJldmlvdXNDb21taXQiOiBudWxsLAorICAgICAgICAib3duc0NvbW1pdHMiOiBmYWxz
ZSwKKyAgICAgICAgInRpbWUiOiArbmV3IERhdGUoIjIwMTctMDEtMjBUMDM6NDk6MzcuODg3WiIp
LAorICAgICAgICAiYXV0aG9yTmFtZSI6ICJDb21taXQgUXVldWUiLAorICAgICAgICAiYXV0aG9y
RW1haWwiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmciLAorICAgICAgICAibWVzc2FnZSI6ICJh
bm90aGVyIG1lc3NhZ2UiLAorICAgIH07CisKICAgICBpdCgnc2hvdWxkIGluaXRpYWxseSBiZSBl
bXB0eSB3aXRoIG5vIHNwaW5uZXInLCAoKSA9PiB7CiAgICAgICAgIGNvbnN0IGNvbnRleHQgPSBu
ZXcgQnJvd3NpbmdDb250ZXh0KCk7CiAgICAgICAgIHJldHVybiBpbXBvcnRDb21taXRMb2dWaWV3
ZXIoY29udGV4dCkudGhlbigoQ29tbWl0TG9nVmlld2VyKSA9PiB7CkBAIC0xMjksOSArMTQyLDkg
QEAgZGVzY3JpYmUoJ0NvbW1pdExvZ1ZpZXdlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICAi
c3RhdHVzIjogIk9LIiwKICAgICAgICAgICAgICAgICAiY29tbWl0cyI6IFt3ZWJraXRDb21taXQy
MTA5NDhdLAogICAgICAgICAgICAgfSk7Ci0KKyAgICAgICAgICAgIGF3YWl0IHJlcXVlc3RzWzBd
LnByb21pc2U7CisgICAgICAgICAgICBhd2FpdCByZXF1ZXN0c1sxXS5wcm9taXNlOwogICAgICAg
ICAgICAgYXdhaXQgd2FpdEZvckNvbXBvbmVudHNUb1JlbmRlcihjb250ZXh0KTsKLQogICAgICAg
ICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdzcGlubmVyLWNvbnRhaW5lcicpLm9mZnNldEhl
aWdodCkudG8uYmUoMCk7CiAgICAgICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ2NvbW1p
dHMtbGlzdCcpLm1hdGNoZXMoJzplbXB0eScpKS50by5iZShmYWxzZSk7CiAgICAgICAgICAgICBl
eHBlY3Qodmlld2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLnRleHRDb250ZW50KS50by5jb250
YWluKCdyMjEwOTQ5Jyk7CkBAIC0xNDQsNCArMTU3LDQ3IEBAIGRlc2NyaWJlKCdDb21taXRMb2dW
aWV3ZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogICAgIH0pOwogCisgICAgaXQoJ3Nob3VsZCBz
aG93IHJldmlzaW9uIGxhYmVsJywgYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCBjb250ZXh0
ID0gbmV3IEJyb3dzaW5nQ29udGV4dCgpOworICAgICAgICBjb25zdCBDb21taXRMb2dWaWV3ZXIg
PSBhd2FpdCBpbXBvcnRDb21taXRMb2dWaWV3ZXIoY29udGV4dCk7CisgICAgICAgIGNvbnN0IFJl
cG9zaXRvcnkgPSBjb250ZXh0LnN5bWJvbHMuUmVwb3NpdG9yeTsKKyAgICAgICAgY29uc3QgcmVx
dWVzdHMgPSBjb250ZXh0LnN5bWJvbHMuUmVtb3RlQVBJLnJlcXVlc3RzOworICAgICAgICBjb25z
dCB2aWV3ZXIgPSBuZXcgQ29tbWl0TG9nVmlld2VyOworICAgICAgICBjb25zdCB3ZWJraXQgPSBu
ZXcgUmVwb3NpdG9yeSgxLCB7bmFtZTogJ1dlYktpdCd9KTsKKyAgICAgICAgY29udGV4dC5kb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZXdlci5lbGVtZW50KCkpOworCisgICAgICAgIHZpZXdl
ci5lbnF1ZXVlVG9SZW5kZXIoKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvckNvbXBvbmVudHNUb1Jl
bmRlcihjb250ZXh0KTsKKworICAgICAgICB2aWV3ZXIudmlldyh3ZWJraXQsICcyMTA5NDgnLCAn
MjEwOTUwJyk7CisgICAgICAgIGF3YWl0IHdhaXRGb3JDb21wb25lbnRzVG9SZW5kZXIoY29udGV4
dCk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnc3Bpbm5lci1jb250YWluZXInKS5v
ZmZzZXRIZWlnaHQpLnRvLm5vdC5iZSgwKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50
KCdjb21taXRzLWxpc3QnKS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUodHJ1ZSk7CisgICAgICAg
IGV4cGVjdCh2aWV3ZXIuY29udGVudCgncmVwb3NpdG9yeS1uYW1lJykubWF0Y2hlcygnOmVtcHR5
JykpLnRvLmJlKGZhbHNlKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdyZXBvc2l0
b3J5LW5hbWUnKS50ZXh0Q29udGVudCkudG8uY29udGFpbignV2ViS2l0Jyk7CisgICAgICAgIGV4
cGVjdChyZXF1ZXN0cy5sZW5ndGgpLnRvLmJlKDIpOworICAgICAgICBleHBlY3QocmVxdWVzdHNb
MF0udXJsKS50by5iZSgnL2FwaS9jb21taXRzLzEvP3ByZWNlZGluZ1JldmlzaW9uPTIxMDk0OCZs
YXN0UmV2aXNpb249MjEwOTUwJyk7CisgICAgICAgIGV4cGVjdChyZXF1ZXN0c1sxXS51cmwpLnRv
LmJlKCcvYXBpL2NvbW1pdHMvMS8yMTA5NDgnKTsKKyAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2
ZSh7CisgICAgICAgICAgICAic3RhdHVzIjogIk9LIiwKKyAgICAgICAgICAgICJjb21taXRzIjog
W3dlYmtpdENvbW1pdDIxMDk0OSwgd2Via2l0Q29tbWl0MjEwOTUwV2l0aFJldmlzaW9uSWRlbnRp
Zmllcl0sCisgICAgICAgIH0pOworCisgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoeworICAg
ICAgICAgICAgInN0YXR1cyI6ICJPSyIsCisgICAgICAgICAgICAiY29tbWl0cyI6IFt3ZWJraXRD
b21taXQyMTA5NDhdLAorICAgICAgICB9KTsKKworICAgICAgICBhd2FpdCByZXF1ZXN0c1swXS5w
cm9taXNlOworICAgICAgICBhd2FpdCByZXF1ZXN0c1sxXS5wcm9taXNlOworICAgICAgICBhd2Fp
dCB3YWl0Rm9yQ29tcG9uZW50c1RvUmVuZGVyKGNvbnRleHQpOworICAgICAgICBleHBlY3Qodmll
d2VyLmNvbnRlbnQoJ3NwaW5uZXItY29udGFpbmVyJykub2Zmc2V0SGVpZ2h0KS50by5iZSgwKTsK
KyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxpc3QnKS5tYXRjaGVzKCc6
ZW1wdHknKSkudG8uYmUoZmFsc2UpOworICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ2Nv
bW1pdHMtbGlzdCcpLnRleHRDb250ZW50KS50by5jb250YWluKCcxODQyNzhAbWFpbiAocjIxMDk1
MCknKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdjb21taXRzLWxpc3QnKS50ZXh0
Q29udGVudCkudG8uY29udGFpbignQ29tbWl0IFF1ZXVlJyk7CisgICAgICAgIGV4cGVjdCh2aWV3
ZXIuY29udGVudCgncmVwb3NpdG9yeS1uYW1lJykubWF0Y2hlcygnOmVtcHR5JykpLnRvLmJlKGZh
bHNlKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdyZXBvc2l0b3J5LW5hbWUnKS50
ZXh0Q29udGVudCkudG8uY29udGFpbignV2ViS2l0Jyk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIu
Y29udGVudCgnY29tbWl0cy1saXN0JykucXVlcnlTZWxlY3RvcignYScpKS50by5iZShudWxsKTsK
KyAgICB9KTsKKwogfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5p
dC1kYXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5z
cWwKaW5kZXggNjA1NDk5MDM4ODUxY2Q3Y2FjMjYwYTIwNzUyZDRiZGMzNmM4YTI0MS4uZjY4YjVm
MGMwMzNhMjI2NDMwN2MyZjgzZjNkNGZiNzRiZGIxNTNlZCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCisrKyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbApAQCAtMTAyLDYgKzEwMiw3IEBAIENSRUFURSBUQUJM
RSBjb21taXRzICgKICAgICBjb21taXRfaWQgc2VyaWFsIFBSSU1BUlkgS0VZLAogICAgIGNvbW1p
dF9yZXBvc2l0b3J5IGludGVnZXIgTk9UIE5VTEwgUkVGRVJFTkNFUyByZXBvc2l0b3JpZXMgT04g
REVMRVRFIENBU0NBREUsCiAgICAgY29tbWl0X3JldmlzaW9uIHZhcmNoYXIoNjQpIE5PVCBOVUxM
LAorICAgIGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyIHZhcmNoYXIoNjQpIERFRkFVTFQgTlVM
TCwKICAgICBjb21taXRfcHJldmlvdXNfY29tbWl0IGludGVnZXIgUkVGRVJFTkNFUyBjb21taXRz
IE9OIERFTEVURSBDQVNDQURFLAogICAgIGNvbW1pdF90aW1lIHRpbWVzdGFtcCwKICAgICBjb21t
aXRfb3JkZXIgaW50ZWdlciwKQEAgLTEwOSw3ICsxMTAsOCBAQCBDUkVBVEUgVEFCTEUgY29tbWl0
cyAoCiAgICAgY29tbWl0X21lc3NhZ2UgdGV4dCwKICAgICBjb21taXRfcmVwb3J0ZWQgYm9vbGVh
biBOT1QgTlVMTCBERUZBVUxUIEZBTFNFLAogICAgIGNvbW1pdF90ZXN0YWJpbGl0eSB2YXJjaGFy
KDEyOCkgREVGQVVMVCBOVUxMLAotICAgIENPTlNUUkFJTlQgY29tbWl0X2luX3JlcG9zaXRvcnlf
bXVzdF9iZV91bmlxdWUgVU5JUVVFKGNvbW1pdF9yZXBvc2l0b3J5LCBjb21taXRfcmV2aXNpb24p
KTsKKyAgICBDT05TVFJBSU5UIGNvbW1pdF9pbl9yZXBvc2l0b3J5X211c3RfYmVfdW5pcXVlIFVO
SVFVRShjb21taXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uKSwKKyAgICBDT05TVFJBSU5U
IGNvbW1pdF9zdHJpbmdfaWRlbnRpZmllcl9pbl9yZXBvc2l0b3J5X211c3RfYmVfdW5pcXVlIFVO
SVFVRShjb21taXRfcmVwb3NpdG9yeSwgY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXIpKTsKIENS
RUFURSBJTkRFWCBjb21taXRfdGltZV9pbmRleCBPTiBjb21taXRzKGNvbW1pdF90aW1lKTsKIENS
RUFURSBJTkRFWCBjb21taXRfb3JkZXJfaW5kZXggT04gY29tbWl0cyhjb21taXRfb3JkZXIpOwog
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWlncmF0ZS1kYXRhYmFzZS5z
cWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWlncmF0ZS1kYXRhYmFzZS5zcWwKaW5kZXgg
OWU2MTMzNjA0MTE3YTcxMjMyYWVkNjgzZTU3MTQ5ODQ0YWExMTI4ZC4uMGVhOTEzM2RhNmVkZTMy
NWRkZjZjMjFkOGI5MzdmYjczNTY0MjU5YSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL21pZ3JhdGUtZGF0YWJhc2Uuc3FsCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9taWdyYXRlLWRhdGFiYXNlLnNxbApAQCAtMiw2ICsyLDEwIEBAIERPICQkCiAKIEJFR0lOCiBB
TFRFUiBUQUJMRSBidWlsZF9yZXF1ZXN0cyBBREQgQ09MVU1OIElGIE5PVCBFWElTVFMgcmVxdWVz
dF9zdGF0dXNfZGVzY3JpcHRpb24gdmFyY2hhcigxMDI0KSBERUZBVUxUIE5VTEw7CitBTFRFUiBU
QUJMRSBwbGF0Zm9ybXMgQUREIENPTFVNTiAgSUYgTk9UIEVYSVNUUyBwbGF0Zm9ybV9ncm91cCBp
bnRlZ2VyIFJFRkVSRU5DRVMgcGxhdGZvcm1fZ3JvdXBzIERFRkFVTFQgTlVMTDsKK0FMVEVSIFRB
QkxFIGNvbW1pdHMgQUREIENPTFVNTiBJRiBOT1QgRVhJU1RTIGNvbW1pdF9yZXZpc2lvbl9pZGVu
dGlmaWVyIHZhcmNoYXIoNjQpIERFRkFVTFQgTlVMTDsKK0FMVEVSIFRBQkxFIGNvbW1pdHMgRFJP
UCBDT05TVFJBSU5UIGNvbW1pdF9zdHJpbmdfaWRlbnRpZmllcl9pbl9yZXBvc2l0b3J5X211c3Rf
YmVfdW5pcXVlOworQUxURVIgVEFCTEUgY29tbWl0cyBBREQgQ09OU1RSQUlOVCBjb21taXRfc3Ry
aW5nX2lkZW50aWZpZXJfaW5fcmVwb3NpdG9yeV9tdXN0X2JlX3VuaXF1ZSBVTklRVUUoY29tbWl0
X3JlcG9zaXRvcnksIGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyKTsKIAogQ1JFQVRFIFRBQkxF
IElGIE5PVCBFWElTVFMgcGxhdGZvcm1fZ3JvdXBzICgKICAgICBwbGF0Zm9ybWdyb3VwX2lkIHNl
cmlhbCBQUklNQVJZIEtFWSwKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAKaW5kZXggNmUwYmVj
ZDBiYzgxNjRjMDQyZmQzZmIyZjM5OThjNDE1NGZlYjBlMS4uNTA1OGY3MTNlYWI5ZDA5OGRkMDhj
NWUxZWExMmJkZmJmZTczMmE1NiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAKKysrIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAKQEAgLTgs
MTQgKzgsMTYgQEAgY2xhc3MgQ29tbWl0TG9nRmV0Y2hlciB7CiAKICAgICBzdGF0aWMgZnVuY3Rp
b24gZmluZF9jb21taXRfaWRfYnlfcmV2aXNpb24oJGRiLCAkcmVwb3NpdG9yeV9pZCwgJHJldmlz
aW9uKQogICAgIHsKLSAgICAgICAgJGNvbW1pdF9yb3dzID0gJGRiLT5xdWVyeV9hbmRfZmV0Y2hf
YWxsKCdTRUxFQ1QgY29tbWl0X2lkIEZST00gY29tbWl0cyBXSEVSRSBjb21taXRfcmVwb3NpdG9y
eSA9ICQxIEFORCBjb21taXRfcmV2aXNpb24gPSAkMicsIGFycmF5KCRyZXBvc2l0b3J5X2lkLCAk
cmV2aXNpb24pKTsKKyAgICAgICAgJGNvbHVtbl9uYW1lID0gQ29tbWl0TG9nRmV0Y2hlcjo6aXNf
Y29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXIoJHJldmlzaW9uKSA/ICdjb21taXRfcmV2aXNpb25f
aWRlbnRpZmllcicgOiAnY29tbWl0X3JldmlzaW9uJzsKKyAgICAgICAgCisgICAgICAgICRjb21t
aXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgiU0VMRUNUIGNvbW1pdF9pZCBGUk9N
IGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkgPSAkMSBBTkQgJGNvbHVtbl9uYW1lID0g
JDIiLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uKSk7CiAgICAgICAgIGlmICgkY29t
bWl0X3Jvd3MpCiAgICAgICAgICAgICByZXR1cm4gJGNvbW1pdF9yb3dzWzBdWydjb21taXRfaWQn
XTsKIAogICAgICAgICBpZiAoIWN0eXBlX2FsbnVtKCRyZXZpc2lvbikpCiAgICAgICAgICAgICBy
ZXR1cm4gTlVMTDsKIAotICAgICAgICAkY29tbWl0X3Jvd3MgPSAkZGItPnF1ZXJ5X2FuZF9mZXRj
aF9hbGwoJ1NFTEVDVCBjb21taXRfaWQgRlJPTSBjb21taXRzIFdIRVJFIGNvbW1pdF9yZXBvc2l0
b3J5ID0gJDEgQU5EIGNvbW1pdF9yZXZpc2lvbiBMSUtFICQyIExJTUlUIDInLCBhcnJheSgkcmVw
b3NpdG9yeV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb24pIC4gJyUnKSk7
CisgICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgiU0VMRUNU
IGNvbW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkgPSAkMSBBTkQg
JGNvbHVtbl9uYW1lICBMSUtFICQyIExJTUlUIDIiLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0
YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb24pIC4gJyUnKSk7CiAgICAgICAgIGlmICgh
JGNvbW1pdF9yb3dzKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIGlmIChjb3Vu
dCgkY29tbWl0X3Jvd3MpID4gMSkKQEAgLTU1LDYgKzU3LDcgQEAgY2xhc3MgQ29tbWl0TG9nRmV0
Y2hlciB7CiAgICAgewogICAgICAgICAkc3RhdGVtZW50cyA9ICdTRUxFQ1QgY29tbWl0X2lkIGFz
ICJpZCIsCiAgICAgICAgICAgICBjb21taXRfcmV2aXNpb24gYXMgInJldmlzaW9uIiwKKyAgICAg
ICAgICAgIGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyIGFzICJyZXZpc2lvbklkZW50aWZpZXIi
LAogICAgICAgICAgICAgY29tbWl0X3ByZXZpb3VzX2NvbW1pdCBhcyAicHJldmlvdXNDb21taXQi
LAogICAgICAgICAgICAgY29tbWl0X3RpbWUgYXMgInRpbWUiLAogICAgICAgICAgICAgY29tbWl0
dGVyX25hbWUgYXMgImF1dGhvck5hbWUiLApAQCAtMTkyLDggKzE5NSwxNCBAQCBjbGFzcyBDb21t
aXRMb2dGZXRjaGVyIHsKICAgICAgICAgcmV0dXJuICR0aGlzLT5mb3JtYXRfc2luZ2xlX2NvbW1p
dCgkY29tbWl0KTsKICAgICB9CiAKKyAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBpc19jb21t
aXRfcmV2aXNpb25faWRlbnRpZmllcigkY29tbWl0X3JldmlzaW9uX29yX3JldmlzaW9uX2lkZW50
aWZpZXIpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIHByZWdfbWF0Y2goJy9eXGQrQFtcd1wuXC1d
KiQvJywgJGNvbW1pdF9yZXZpc2lvbl9vcl9yZXZpc2lvbl9pZGVudGlmaWVyKTsKKyAgICB9CisK
ICAgICBwcml2YXRlIGZ1bmN0aW9uIGNvbW1pdF9mb3JfcmV2aXNpb24oJHJlcG9zaXRvcnlfaWQs
ICRyZXZpc2lvbikgewotICAgICAgICAkY29tbWl0X2luZm8gPSBhcnJheSgncmVwb3NpdG9yeScg
PT4gJHJlcG9zaXRvcnlfaWQsICdyZXZpc2lvbicgPT4gJHJldmlzaW9uKTsKKyAgICAgICAgJGNv
bW1pdF9pbmZvID0gYXJyYXkoJ3JlcG9zaXRvcnknID0+ICRyZXBvc2l0b3J5X2lkKTsgCisgICAg
ICAgICRjb21taXRfaW5mb1skdGhpcy0+aXNfY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXIoJHJl
dmlzaW9uKSA/ICdyZXZpc2lvbl9pZGVudGlmaWVyJyA6ICdyZXZpc2lvbiddID0gJHJldmlzaW9u
OwogICAgICAgICAkcm93ID0gJHRoaXMtPmRiLT5zZWxlY3RfbGFzdF9yb3coJ2NvbW1pdHMnLCAn
Y29tbWl0JywgJGNvbW1pdF9pbmZvKTsKICAgICAgICAgaWYgKCEkcm93KQogICAgICAgICAgICAg
ZXhpdF93aXRoX2Vycm9yKCdVbmtub3duQ29tbWl0JywgJGNvbW1pdF9pbmZvKTsKQEAgLTIwMSw3
ICsyMTAsOCBAQCBjbGFzcyBDb21taXRMb2dGZXRjaGVyIHsKICAgICB9CiAKICAgICBwcml2YXRl
IGZ1bmN0aW9uIGNvbW1pdF9mb3JfcmV2aXNpb25fcHJlZml4KCRyZXBvc2l0b3J5X2lkLCAkcmV2
aXNpb25fcHJlZml4KSB7Ci0gICAgICAgICRyb3dzID0gJHRoaXMtPmRiLT5xdWVyeV9hbmRfZmV0
Y2hfYWxsKCdTRUxFQ1QgKiBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkgPSAk
MSBBTkQgY29tbWl0X3JldmlzaW9uIExJS0UgJDIgT1JERVIgQlkgY29tbWl0X3JldmlzaW9uIExJ
TUlUIDInLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0YWJhc2U6OmVzY2FwZV9mb3JfbGlrZSgk
cmV2aXNpb25fcHJlZml4KSAuICclJykpOworICAgICAgICAkY29sdW1uX25hbWUgPSAkdGhpcy0+
aXNfY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXIoJHJldmlzaW9uX3ByZWZpeCkgPyAncmV2aXNp
b25faWRlbnRpZmllcicgOiAncmV2aXNpb24nOworICAgICAgICAkcm93cyA9ICR0aGlzLT5kYi0+
cXVlcnlfYW5kX2ZldGNoX2FsbCgiU0VMRUNUICogRlJPTSBjb21taXRzIFdIRVJFIGNvbW1pdF9y
ZXBvc2l0b3J5ID0gJDEgQU5EIGNvbW1pdF8kY29sdW1uX25hbWUgTElLRSAkMiBPUkRFUiBCWSBj
b21taXRfJGNvbHVtbl9uYW1lIExJTUlUIDIiLCBhcnJheSgkcmVwb3NpdG9yeV9pZCwgRGF0YWJh
c2U6OmVzY2FwZV9mb3JfbGlrZSgkcmV2aXNpb25fcHJlZml4KSAuICclJykpOwogICAgICAgICBp
ZiAoY291bnQoJHJvd3MpID09IDApCiAgICAgICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ1Vua25v
d25Db21taXQnLCBhcnJheSgncmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlfaWQsICdyZXZpc2lv
bicgPT4gJHJldmlzaW9uX3ByZWZpeCkpOwogICAgICAgICBpZiAoY291bnQoJHJvd3MpID09IDIp
IHsKQEAgLTIyNCw2ICsyMzQsNyBAQCBjbGFzcyBDb21taXRMb2dGZXRjaGVyIHsKICAgICAgICAg
cmV0dXJuIGFycmF5KAogICAgICAgICAgICAgJ2lkJyA9PiAkY29tbWl0X3Jvd1snY29tbWl0X2lk
J10sCiAgICAgICAgICAgICAncmV2aXNpb24nID0+ICRjb21taXRfcm93Wydjb21taXRfcmV2aXNp
b24nXSwKKyAgICAgICAgICAgICdyZXZpc2lvbklkZW50aWZpZXInID0+ICRjb21taXRfcm93Wydj
b21taXRfcmV2aXNpb25faWRlbnRpZmllciddLAogICAgICAgICAgICAgJ3JlcG9zaXRvcnknID0+
ICRjb21taXRfcm93Wydjb21taXRfcmVwb3NpdG9yeSddLAogICAgICAgICAgICAgJ3ByZXZpb3Vz
Q29tbWl0JyA9PiAkY29tbWl0X3Jvd1snY29tbWl0X3ByZXZpb3VzX2NvbW1pdCddLAogICAgICAg
ICAgICAgJ3RpbWUnID0+IERhdGFiYXNlOjp0b19qc190aW1lKCRjb21taXRfcm93Wydjb21taXRf
dGltZSddKSwKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5j
bHVkZS9jb21taXQtdXBkYXRlci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L2luY2x1ZGUvY29tbWl0LXVwZGF0ZXIucGhwCmluZGV4IDA4YzY4YmJlNjQxMGFmZjA2ZGI4NzU0
OTkyYTQ4YzkzN2U3MGUzMmYuLjQzMjIwZDMxOTMyMjA3ZWM4MjI4ZTIyM2Y2NDI4NmQzYmMwYjgw
NmMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9j
b21taXQtdXBkYXRlci5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9p
bmNsdWRlL2NvbW1pdC11cGRhdGVyLnBocApAQCAtMzAsNyArMzAsNiBAQCBjbGFzcyBDb21taXRV
cGRhdGVyIHsKICAgICBwcml2YXRlIGZ1bmN0aW9uIHVwZGF0ZV9jb21taXQoJiR1cGRhdGUsICRv
d25lcl9jb21taXRfaWQsICRvd25lcl9yZXBvc2l0b3J5X2lkLCAkc2hvdWxkX2luc2VydCkKICAg
ICB7CiAgICAgICAgICRjb21taXRfZGF0YSA9ICYkdGhpcy0+cmVzb2x2ZV9maWVsZHNfZnJvbV9k
YXRhYmFzZSgkdXBkYXRlLCAkb3duZXJfcmVwb3NpdG9yeV9pZCwgJHNob3VsZF9pbnNlcnQpOwot
CiAgICAgICAgICRjb21taXRfc2VsZWN0X3F1ZXJ5ID0gYXJyYXkoJ3JlcG9zaXRvcnknID0+ICRj
b21taXRfZGF0YVsncmVwb3NpdG9yeSddLCAncmV2aXNpb24nID0+ICRjb21taXRfZGF0YVsncmV2
aXNpb24nXSk7CiAgICAgICAgIGlmICgkc2hvdWxkX2luc2VydCkgewogICAgICAgICAgICAgJGNv
bW1pdF9pZCA9ICR0aGlzLT5kYi0+dXBkYXRlX29yX2luc2VydF9yb3coJ2NvbW1pdHMnLCAnY29t
bWl0JywgJGNvbW1pdF9zZWxlY3RfcXVlcnksICRjb21taXRfZGF0YSk7CkBAIC03NCw2ICs3Myw3
IEBAIGNsYXNzIENvbW1pdFVwZGF0ZXIgewogICAgIHByaXZhdGUgZnVuY3Rpb24gJmNvbnN0cnVj
dF91cGRhdGVfbGlzdCgmJGNvbW1pdF9pbmZvX2xpc3QsICRzaG91bGRfaW5zZXJ0KQogICAgIHsK
ICAgICAgICAgJHVwZGF0ZV9saXN0ID0gYXJyYXkoKTsKKyAgICAgICAgJGNvbW1pdF9yZXZpc2lv
bl9pZGVudGlmaWVycyA9IGFycmF5KCk7CiAKICAgICAgICAgZm9yZWFjaCAoJGNvbW1pdF9pbmZv
X2xpc3QgYXMgJiRjb21taXRfaW5mbykgewogICAgICAgICAgICAgc2VsZjo6dmFsaWRhdGVfY29t
bWl0cygkY29tbWl0X2luZm8pOwpAQCAtODEsNiArODEsMTEgQEAgY2xhc3MgQ29tbWl0VXBkYXRl
ciB7CiAgICAgICAgICAgICAkaGFzX3VwZGF0ZSA9IGNvdW50KCRjb21taXRfZGF0YSkgPiAxOwog
CiAgICAgICAgICAgICAkdXBkYXRlID0gYXJyYXkoJ2NvbW1pdCcgPT4gJiRjb21taXRfZGF0YSwg
J3JlcG9zaXRvcnknID0+ICYkY29tbWl0X2luZm9bJ3JlcG9zaXRvcnknXSk7CisgICAgICAgICAg
ICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncmV2aXNpb25JZGVudGlmaWVyJywgJGNvbW1pdF9pbmZv
KSkgeworICAgICAgICAgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCRjb21taXRfaW5mb1sn
cmV2aXNpb25JZGVudGlmaWVyJ10sICRjb21taXRfcmV2aXNpb25faWRlbnRpZmllcnMpKQorICAg
ICAgICAgICAgICAgICAgICAkdGhpcy0+ZXhpdF93aXRoX2Vycm9yKCdEdXBsaWNhdGVkUmV2aXNp
b25JZGVudGlmaWVyJywgYXJyYXkoJ2NvbW1pdCcgPT4gJGNvbW1pdF9pbmZvKSk7CisgICAgICAg
ICAgICAgICAgJGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVyc1skY29tbWl0X2luZm9bJ3Jldmlz
aW9uSWRlbnRpZmllciddXSA9IHRydWU7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAo
YXJyYXlfa2V5X2V4aXN0cygncHJldmlvdXNDb21taXQnLCAkY29tbWl0X2luZm8pKSB7CiAgICAg
ICAgICAgICAgICAgJGhhc191cGRhdGUgPSB0cnVlOwogICAgICAgICAgICAgICAgICR1cGRhdGVb
J3ByZXZpb3VzX2NvbW1pdCddID0gJiRjb21taXRfaW5mb1sncHJldmlvdXNDb21taXQnXTsKQEAg
LTEwNCw2ICsxMDksNyBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsKIAogICAgICAgICAgICAgJG93
bmVkX2NvbW1pdF91cGRhdGVfbGlzdCA9IGFycmF5KCk7CiAgICAgICAgICAgICBmb3JlYWNoKCRj
b21taXRfaW5mb1snb3duZWRDb21taXRzJ10gYXMgJG93bmVkX3JlcG9zaXRvcnlfbmFtZSA9PiAm
JG93bmVkX2NvbW1pdF9pbmZvKSB7CisgICAgICAgICAgICAgICAgc2VsZjo6dmFsaWRhdGVfY29t
bWl0cygkb3duZWRfY29tbWl0X2luZm8sIHRydWUpOwogICAgICAgICAgICAgICAgICRvd25lZF9j
b21taXQgPSAmc2VsZjo6Y29uc3RydWN0X2NvbW1pdF9kYXRhKCRvd25lZF9jb21taXRfaW5mbywg
JG93bmVkX3JlcG9zaXRvcnlfbmFtZSwgJHNob3VsZF9pbnNlcnQpOwogICAgICAgICAgICAgICAg
ICRvd25lZF9jb21taXRfdXBkYXRlID0gYXJyYXkoJ2NvbW1pdCcgPT4gJiRvd25lZF9jb21taXQs
ICdyZXBvc2l0b3J5JyA9PiAkb3duZWRfcmVwb3NpdG9yeV9uYW1lKTsKIApAQCAtMTQzLDE1ICsx
NDksMTggQEAgY2xhc3MgQ29tbWl0VXBkYXRlciB7CiAgICAgICAgICAgICAkY29tbWl0X2RhdGFb
J3RpbWUnXSA9ICRjb21taXRfaW5mb1sndGltZSddOwogICAgICAgICB9CiAKKyAgICAgICAgaWYg
KGFycmF5X2tleV9leGlzdHMoJ3JldmlzaW9uSWRlbnRpZmllcicsICRjb21taXRfaW5mbykpCisg
ICAgICAgICAgICAkY29tbWl0X2RhdGFbJ3JldmlzaW9uX2lkZW50aWZpZXInXSA9ICRjb21taXRf
aW5mb1sncmV2aXNpb25JZGVudGlmaWVyJ107CisKICAgICAgICAgaWYgKCRzaG91bGRfaW5zZXJ0
KQogICAgICAgICAgICAgJGNvbW1pdF9kYXRhWydyZXBvcnRlZCddID0gdHJ1ZTsKIAogICAgICAg
ICByZXR1cm4gJGNvbW1pdF9kYXRhOwogICAgIH0KIAotICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0
aW9uIHZhbGlkYXRlX2NvbW1pdHMoJiRjb21taXRfaW5mbykKKyAgICBwcml2YXRlIHN0YXRpYyBm
dW5jdGlvbiB2YWxpZGF0ZV9jb21taXRzKCYkY29tbWl0X2luZm8sICRpc19vd25fY29tbWl0ID0g
ZmFsc2UpCiAgICAgewotICAgICAgICBpZiAoIWFycmF5X2tleV9leGlzdHMoJ3JlcG9zaXRvcnkn
LCAkY29tbWl0X2luZm8pKQorICAgICAgICBpZiAoIWFycmF5X2tleV9leGlzdHMoJ3JlcG9zaXRv
cnknLCAkY29tbWl0X2luZm8pICYmICEkaXNfb3duX2NvbW1pdCkKICAgICAgICAgICAgIGV4aXRf
d2l0aF9lcnJvcignTWlzc2luZ1JlcG9zaXRvcnlOYW1lJywgYXJyYXkoJ2NvbW1pdCcgPT4gJGNv
bW1pdF9pbmZvKSk7CiAgICAgICAgIGlmICghYXJyYXlfa2V5X2V4aXN0cygncmV2aXNpb24nLCAk
Y29tbWl0X2luZm8pKQogICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdNaXNzaW5nUmV2aXNp
b24nLCBhcnJheSgnY29tbWl0JyA9PiAkY29tbWl0X2luZm8pKTsKQEAgLTE2MCw2ICsxNjksOCBA
QCBjbGFzcyBDb21taXRVcGRhdGVyIHsKICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignSW52
YWxpZEF1dGhvckZvcm1hdCcsIGFycmF5KCdjb21taXQnID0+ICRjb21taXRfaW5mbykpOwogICAg
ICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygncHJldmlvdXNDb21taXQnLCAkY29tbWl0X2luZm8p
KQogICAgICAgICAgICAgcmVxdWlyZV9mb3JtYXQoJ1JldmlzaW9uJywgJGNvbW1pdF9pbmZvWydw
cmV2aW91c0NvbW1pdCddLCAnL15bQS1aYS16MC05IFwuXSskLycpOworICAgICAgICBpZiAoYXJy
YXlfa2V5X2V4aXN0cygncmV2aXNpb25JZGVudGlmaWVyJywgJGNvbW1pdF9pbmZvKSkKKyAgICAg
ICAgICAgIHJlcXVpcmVfZm9ybWF0KCdSZXZpc2lvbklkZW50aWZpZXInLCAkY29tbWl0X2luZm9b
J3JldmlzaW9uSWRlbnRpZmllciddLCAnL15cZCtAW1x3XC5cLV0rJC8nKTsKICAgICB9CiAKICAg
ICBwcml2YXRlIGZ1bmN0aW9uIHJlc29sdmVfcmVwb3NpdG9yeSgkcmVwb3NpdG9yeV9uYW1lLCAk
b3duZXJfcmVwb3NpdG9yeV9pZCwgJHNob3VsZF9pbnNlcnQpCmRpZmYgLS1naXQgYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3J0LXByb2Nlc3Nvci5waHAgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3J0LXByb2Nlc3Nvci5w
aHAKaW5kZXggN2NkN2VhNDBkODYzNTZkZTM5OGNjOWY2YzI5ZmVhOGRhOWJjMDAyNi4uMjI5NWEw
Nzk3MWM5ZjdiMzZkMDc5YzM3N2UwMzQ0MDUxZTQ0Y2M1YiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL3JlcG9ydC1wcm9jZXNzb3IucGhwCisrKyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9yZXBvcnQtcHJvY2Vzc29y
LnBocApAQCAtMTYyLDE0ICsxNjIsMTYgQEAgY2xhc3MgUmVwb3J0UHJvY2Vzc29yIHsKICAgICAg
ICAgICAgICAgICAkdGhpcy0+cm9sbGJhY2tfd2l0aF9lcnJvcignRmFpbGVkVG9VcGRhdGVCdWls
ZFJlcXVlc3QnLCBhcnJheSgnYnVpbGRSZXF1ZXN0JyA9PiAkYnVpbGRfcmVxdWVzdF9pZCwgJ2J1
aWxkJyA9PiAkYnVpbGRfaWQpKTsKICAgICAgICAgfQogCi0KICAgICAgICAgZm9yZWFjaCAoJHJl
dmlzaW9ucyBhcyAkcmVwb3NpdG9yeV9uYW1lID0+ICRyZXZpc2lvbl9kYXRhKSB7CiAgICAgICAg
ICAgICAkcmVwb3NpdG9yeV9pZCA9ICR0aGlzLT5kYi0+c2VsZWN0X29yX2luc2VydF9yb3coJ3Jl
cG9zaXRvcmllcycsICdyZXBvc2l0b3J5JywgYXJyYXkoJ25hbWUnID0+ICRyZXBvc2l0b3J5X25h
bWUsICdvd25lcicgPT4gTlVMTCkpOwogICAgICAgICAgICAgaWYgKCEkcmVwb3NpdG9yeV9pZCkK
ICAgICAgICAgICAgICAgICAkdGhpcy0+cm9sbGJhY2tfd2l0aF9lcnJvcignRmFpbGVkVG9JbnNl
cnRSZXBvc2l0b3J5JywgYXJyYXkoJ25hbWUnID0+ICRyZXBvc2l0b3J5X25hbWUpKTsKIAotICAg
ICAgICAgICAgJGNvbW1pdF9kYXRhID0gYXJyYXkoJ3JlcG9zaXRvcnknID0+ICRyZXBvc2l0b3J5
X2lkLCAncmV2aXNpb24nID0+ICRyZXZpc2lvbl9kYXRhWydyZXZpc2lvbiddLCAndGltZScgPT4g
YXJyYXlfZ2V0KCRyZXZpc2lvbl9kYXRhLCAndGltZXN0YW1wJykpOwotCisgICAgICAgICAgICAk
Y29tbWl0X2RhdGEgPSBhcnJheSgKKyAgICAgICAgICAgICAgICAncmVwb3NpdG9yeScgPT4gJHJl
cG9zaXRvcnlfaWQsIAorICAgICAgICAgICAgICAgICdyZXZpc2lvbicgPT4gJHJldmlzaW9uX2Rh
dGFbJ3JldmlzaW9uJ10sIAorICAgICAgICAgICAgICAgICd0aW1lJyA9PiBhcnJheV9nZXQoJHJl
dmlzaW9uX2RhdGEsICd0aW1lc3RhbXAnKSwgCisgICAgICAgICAgICAgICAgJ3JldmlzaW9uX2lk
ZW50aWZpZXInID0+IGFycmF5X2dldCgkcmV2aXNpb25fZGF0YSwgJ3JldmlzaW9uSWRlbnRpZmll
cicsIG51bGwpKTsKICAgICAgICAgICAgICRtaXNtYXRjaGluZ19jb21taXQgPSAkdGhpcy0+ZGIt
PnF1ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCAqIEZST00gYnVpbGRfY29tbWl0cywgY29tbWl0
cwogICAgICAgICAgICAgICAgIFdIRVJFIGJ1aWxkX2NvbW1pdCA9IGNvbW1pdF9pZCBBTkQgY29t
bWl0X2J1aWxkID0gJDEgQU5EIGNvbW1pdF9yZXBvc2l0b3J5ID0gJDIgQU5EIGNvbW1pdF9yZXZp
c2lvbiAhPSAkMyBMSU1JVCAxJywKICAgICAgICAgICAgICAgICBhcnJheSgkYnVpbGRfaWQsICRy
ZXBvc2l0b3J5X2lkLCAkcmV2aXNpb25fZGF0YVsncmV2aXNpb24nXSkpOwpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qcyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1sb2cuanMK
aW5kZXggZTZkNGQ0NGFiYjU1NDEzNDZlMmY0YTlkNDQwMDlmNzlhNzgyOTAwYi4uZDMzN2IxZDEy
YzJmNDA3YTZiM2MyZDBmOWM1ZTFkYmI0NmVhODA2NyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qcworKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9nLmpzCkBAIC0yMCw2
ICsyMCw3IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAKICAg
ICAgICAgY29uc29sZS5hc3NlcnQoK3RoaXMuX3Jhd0RhdGFbJ3RpbWUnXSA9PSArcmF3RGF0YVsn
dGltZSddKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fcmF3RGF0YVsncmV2aXNpb24n
XSA9PSByYXdEYXRhWydyZXZpc2lvbiddKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5f
cmF3RGF0YVsncmV2aXNpb25JZGVudGlmaWVyJ10gPT0gcmF3RGF0YVsncmV2aXNpb25JZGVudGlm
aWVyJ10pOwogCiAgICAgICAgIGlmIChyYXdEYXRhLmF1dGhvck5hbWUpCiAgICAgICAgICAgICB0
aGlzLl9yYXdEYXRhLmF1dGhvck5hbWUgPSByYXdEYXRhLmF1dGhvck5hbWU7CkBAIC0zOSw2ICs0
MCw3IEBAIGNsYXNzIENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgdGVz
dGFiaWxpdHkoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWyd0ZXN0YWJpbGl0eSddOyB9CiAgICAg
YXV0aG9yKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsnYXV0aG9yTmFtZSddOyB9CiAgICAgcmV2
aXNpb24oKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydyZXZpc2lvbiddOyB9CisgICAgcmV2aXNp
b25JZGVudGlmaWVyKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsncmV2aXNpb25JZGVudGlmaWVy
J107IH0KICAgICBtZXNzYWdlKCkgeyByZXR1cm4gdGhpcy5fcmF3RGF0YVsnbWVzc2FnZSddOyB9
CiAgICAgdXJsKCkgeyByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeS51cmxGb3JSZXZpc2lvbih0aGlz
Ll9yYXdEYXRhWydyZXZpc2lvbiddKTsgfQogICAgIG93bnNDb21taXRzKCkgeyByZXR1cm4gdGhp
cy5fcmF3RGF0YVsnb3duc0NvbW1pdHMnXTsgfQpAQCAtNDgsMTUgKzUwLDMzIEBAIGNsYXNzIENv
bW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgaGFzQ29tbWl0T3JkZXIoKSB7
IHJldHVybiB0aGlzLl9yYXdEYXRhWydvcmRlciddICE9IG51bGw7IH0KICAgICBzZXRPd25lckNv
bW1pdHMob3duZXJDb21taXQpIHsgdGhpcy5fb3duZXJDb21taXQgPSBvd25lckNvbW1pdDsgfQog
Ci0gICAgbGFiZWwoKQorICAgIGxhYmVsKCkgeyByZXR1cm4gQ29tbWl0TG9nLl9mb3JtYXR0dGVk
UmV2aXNpb24odGhpcy5yZXZpc2lvbigpLCB0aGlzLnJldmlzaW9uSWRlbnRpZmllcigpKTsgfQor
CisgICAgc3RhdGljIF9yZXBvc2l0b3J5VHlwZShyZXZpc2lvbikKICAgICB7Ci0gICAgICAgIGNv
bnN0IHJldmlzaW9uID0gdGhpcy5yZXZpc2lvbigpOwotICAgICAgICBpZiAocGFyc2VJbnQocmV2
aXNpb24pID09IHJldmlzaW9uKSAvLyBlLmcuIHIxMjM0NQotICAgICAgICAgICAgcmV0dXJuICdy
JyArIHJldmlzaW9uOwotICAgICAgICBpZiAocmV2aXNpb24ubGVuZ3RoID09IDQwKSAvLyBlLmcu
IGdpdCBoYXNoCi0gICAgICAgICAgICByZXR1cm4gcmV2aXNpb24uc3Vic3RyaW5nKDAsIDEyKTsK
LSAgICAgICAgcmV0dXJuIHJldmlzaW9uOworICAgICAgICBpZiAocGFyc2VJbnQocmV2aXNpb24p
ID09IHJldmlzaW9uKQorICAgICAgICAgICAgcmV0dXJuICdzdm4nOworICAgICAgICBpZiAocmV2
aXNpb24ubGVuZ3RoID09IDQwKQorICAgICAgICAgICAgcmV0dXJuICdnaXQnOworICAgICAgICBy
ZXR1cm4gbnVsbDsKICAgICB9CisKKyAgICBzdGF0aWMgX2Zvcm1hdHR0ZWRSZXZpc2lvbihyZXZp
c2lvbiwgcmV2aXNpb25JZGVudGlmaWVyID0gbnVsbCkgCisgICAgeworICAgICAgICBjb25zdCBm
b3JtYXR0ZWRSZXZpc2lvbiA9ICgoKSA9PiB7CisgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuX3Jl
cG9zaXRvcnlUeXBlKHJldmlzaW9uKSkgeworICAgICAgICAgICAgY2FzZSAnc3ZuJzoKKyAgICAg
ICAgICAgICAgICByZXR1cm4gJ3InICsgcmV2aXNpb247IC8vIGUuZy4gcjEyMzQ1CisgICAgICAg
ICAgICBjYXNlICdnaXQnOgorICAgICAgICAgICAgICAgIHJldHVybiByZXZpc2lvbi5zdWJzdHJp
bmcoMCwgMTIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJldmlzaW9uOwor
ICAgICAgICB9KSgpOworICAgICAgICBpZiAocmV2aXNpb25JZGVudGlmaWVyKQorICAgICAgICAg
ICAgcmV0dXJuIGAke3JldmlzaW9uSWRlbnRpZmllcn0gKCR7Zm9ybWF0dGVkUmV2aXNpb259KWA7
CisgICAgICAgIHJldHVybiBmb3JtYXR0ZWRSZXZpc2lvbjsKKyAgICB9CisKICAgICB0aXRsZSgp
IHsgcmV0dXJuIHRoaXMuX3JlcG9zaXRvcnkubmFtZSgpICsgJyBhdCAnICsgdGhpcy5sYWJlbCgp
OyB9CiAKICAgICBkaWZmKHByZXZpb3VzQ29tbWl0KQpAQCAtNjgsMTcgKzg4LDI0IEBAIGNsYXNz
IENvbW1pdExvZyBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgICAgIGlmICghcHJldmlv
dXNDb21taXQpCiAgICAgICAgICAgICByZXR1cm4ge3JlcG9zaXRvcnk6IHJlcG9zaXRvcnksIGxh
YmVsOiB0aGlzLmxhYmVsKCksIHVybDogdGhpcy51cmwoKX07CiAKLSAgICAgICAgY29uc3QgdG8g
PSB0aGlzLnJldmlzaW9uKCk7Ci0gICAgICAgIGNvbnN0IGZyb20gPSBwcmV2aW91c0NvbW1pdC5y
ZXZpc2lvbigpOwotICAgICAgICBsZXQgbGFiZWwgPSBudWxsOwotICAgICAgICBpZiAocGFyc2VJ
bnQoZnJvbSkgPT0gZnJvbSkvLyBlLmcuIHIxMjM0NS4KLSAgICAgICAgICAgIGxhYmVsID0gYHIk
e2Zyb219LXIke3RoaXMucmV2aXNpb24oKX1gOwotICAgICAgICBlbHNlIGlmICh0by5sZW5ndGgg
PT0gNDApIC8vIGUuZy4gZ2l0IGhhc2gKLSAgICAgICAgICAgIGxhYmVsID0gYCR7ZnJvbS5zdWJz
dHJpbmcoMCwgMTIpfS4uJHt0by5zdWJzdHJpbmcoMCwgMTIpfWA7Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIGxhYmVsID0gYCR7ZnJvbX0gLSAke3RvfWA7Ci0KLSAgICAgICAgcmV0dXJuIHty
ZXBvc2l0b3J5OiByZXBvc2l0b3J5LCBsYWJlbDogbGFiZWwsIHVybDogcmVwb3NpdG9yeS51cmxG
b3JSZXZpc2lvblJhbmdlKGZyb20sIHRvKX07CisgICAgICAgIGNvbnN0IHRvUmV2aXNpb24gPSB0
aGlzLnJldmlzaW9uKCk7CisgICAgICAgIGNvbnN0IGZyb21SZXZpc2lvbiA9IHByZXZpb3VzQ29t
bWl0LnJldmlzaW9uKCk7CisgICAgICAgIGNvbnN0IGlkZW50aWZpZXJQYXR0ZXJuID0gLyg/PG51
bWJlcj5cZCspQCg/PGJyYW5jaD5bXHdcLlwtXSspLzsKKyAgICAgICAgY29uc3QgcmVwb3NpdG9y
eVR5cGUgPSBDb21taXRMb2cuX3JlcG9zaXRvcnlUeXBlKHRvUmV2aXNpb24pOworICAgICAgIAor
ICAgICAgICBjb25zdCBsYWJlbCA9ICgoZnJvbU1hdGNoLCB0b01hdGNoKSA9PiB7CisgICAgICAg
ICAgICBjb25zdCBzZXBhcmF0b3IgPSByZXBvc2l0b3J5VHlwZSA9PSAnZ2l0JyA/ICcuLicgOiAo
cmVwb3NpdG9yeVR5cGUgPT0gJ3N2bicgPyAnLScgOiAnIC0gJyk7CisgICAgICAgICAgICBjb25z
dCByZXZpc2lvblJhbmdlID0gYCR7Q29tbWl0TG9nLl9mb3JtYXR0dGVkUmV2aXNpb24oZnJvbVJl
dmlzaW9uKX0ke3NlcGFyYXRvcn0ke0NvbW1pdExvZy5fZm9ybWF0dHRlZFJldmlzaW9uKHRvUmV2
aXNpb24pfWA7CisgICAgICAgICAgICBpZiAoZnJvbU1hdGNoICYmIHRvTWF0Y2gpIHsKKyAgICAg
ICAgICAgICAgICBjb25zb2xlLmFzc2VydChmcm9tTWF0Y2guZ3JvdXBzLmJyYW5jaCA9PSB0b01h
dGNoLmdyb3Vwcy5icmFuY2gpOworICAgICAgICAgICAgICAgIHJldHVybiBgJHtmcm9tTWF0Y2gu
Z3JvdXBzLm51bWJlcn0tJHt0b01hdGNoLmdyb3Vwcy5udW1iZXJ9QCR7ZnJvbU1hdGNoLmdyb3Vw
cy5icmFuY2h9ICgke3JldmlzaW9uUmFuZ2V9KWA7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBpZiAoZnJvbU1hdGNoIHx8IHRvTWF0Y2gpCisgICAgICAgICAgICAgICAgcmV0dXJuIGAke3By
ZXZpb3VzQ29tbWl0LmxhYmVsKCl9IC0gJHt0aGlzLmxhYmVsKCl9YDsKKyAgICAgICAgICAgIHJl
dHVybiByZXZpc2lvblJhbmdlOworICAgICAgICB9KShpZGVudGlmaWVyUGF0dGVybi5leGVjKHBy
ZXZpb3VzQ29tbWl0LnJldmlzaW9uSWRlbnRpZmllcigpKSwgaWRlbnRpZmllclBhdHRlcm4uZXhl
Yyh0aGlzLnJldmlzaW9uSWRlbnRpZmllcigpKSk7CisKKyAgICAgICAgcmV0dXJuIHtyZXBvc2l0
b3J5LCBsYWJlbCwgdXJsOiByZXBvc2l0b3J5LnVybEZvclJldmlzaW9uUmFuZ2UoZnJvbVJldmlz
aW9uLCB0b1JldmlzaW9uKX07CiAgICAgfQogCiAgICAgc3RhdGljIGZldGNoTGF0ZXN0Q29tbWl0
Rm9yUGxhdGZvcm0ocmVwb3NpdG9yeSwgcGxhdGZvcm0pCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcwppbmRl
eCBkYmYxZTY4ZjZjZGMxY2NmZGE0YzA3ODIyMWY0MjkwOWI4YmMwOGRmLi43ZTU5MmE5YWY5NzZk
ZTkyNzEyY2VkMGIxZDkyMzY2Yzk5OTQ5NGI5IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMKQEAgLTE3
LDYgKzE3LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKICAgICAg
ICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQ4IiwKKyAgICAgICAgICAgICAgICAicmV2aXNp
b25JZGVudGlmaWVyIjogIjE4NDI3NkBtYWluIiwKICAgICAgICAgICAgICAgICAidGltZSI6ICIy
MDE3LTAxLTIwVDAyOjUyOjM0LjU3N1oiLAogICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5h
bWUiOiAiWmFsYW4gQnVqdGFzIiwgImFjY291bnQiOiAiemFsYW5AYXBwbGUuY29tIn0sCiAgICAg
ICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYSBtZXNzYWdlIiwKQEAgLTI0LDYgKzI1LDcgQEAgZGVz
Y3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKICAgICAgICAgICAgICAgICAicmV2
aXNpb24iOiAiMjEwOTQ5IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjog
IjE4NDI3N0BtYWluIiwKICAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjIz
OjUwLjY0NVoiLAogICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ2hyaXMgRHVt
ZXoiLCAiYWNjb3VudCI6ICJjZHVtZXpAYXBwbGUuY29tIn0sCiAgICAgICAgICAgICAgICAgIm1l
c3NhZ2UiOiAic29tZSBtZXNzYWdlIiwKQEAgLTMyLDEyICszNCw1MyBAQCBkZXNjcmliZSgiL2Fw
aS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6
ICJXZWJLaXQiLAogICAgICAgICAgICAgICAgICJwcmV2aW91c0NvbW1pdCI6ICIyMTA5NDkiLAog
ICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NTAiLAorICAgICAgICAgICAgICAgICJy
ZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0Mjc4QG1haW4iLAogICAgICAgICAgICAgICAgICJ0aW1l
IjogIjIwMTctMDEtMjBUMDM6NDk6MzcuODg3WiIsCiAgICAgICAgICAgICAgICAgImF1dGhvciI6
IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Via2l0
Lm9yZyJ9LAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImFub3RoZXIgbWVzc2FnZSIsCisg
ICAgICAgICAgICB9LAorICAgICAgICBdCisgICAgfTsKKworICAgIGNvbnN0IHN1YmNlcnNpb25D
b21taXRzV2l0aEZha2VSZXZpc2lvbklkZW50aWZpZXIgPSB7CisgICAgICAgICJ3b3JrZXJOYW1l
IjogInNvbWVXb3JrZXIiLAorICAgICAgICAid29ya2VyUGFzc3dvcmQiOiAic29tZVBhc3N3b3Jk
IiwKKyAgICAgICAgImNvbW1pdHMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
InJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEw
OTQ4IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3NkBtYWlu
IiwKKyAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAyOjUyOjM0LjU3N1oiLAor
ICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiWmFsYW4gQnVqdGFzIiwgImFjY291
bnQiOiAiemFsYW5AYXBwbGUuY29tIn0sCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYSBt
ZXNzYWdlIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
InJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEw
OTQ5IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3N0BtYWlu
IiwKKyAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjIzOjUwLjY0NVoiLAor
ICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ2hyaXMgRHVtZXoiLCAiYWNjb3Vu
dCI6ICJjZHVtZXpAYXBwbGUuY29tIn0sCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAic29t
ZSBtZXNzYWdlIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAicHJldmlvdXNDb21t
aXQiOiAiMjEwOTQ5IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTUwIiwKKyAg
ICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3OEBtYWluIiwKKyAgICAg
ICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjQ5OjM3Ljg4N1oiLAorICAgICAgICAg
ICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29t
bWl0LXF1ZXVlQHdlYmtpdC5vcmcifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJhbm90
aGVyIG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6
ICIyMTA5NTEiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0Mjc4
QHNvbWV0aGluZyIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMzo0OTo0
MC44ODdaIiwKKyAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNvbW1pdCBRdWV1
ZSIsICJhY2NvdW50IjogImNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnIn0sCisgICAgICAgICAgICAg
ICAgIm1lc3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdlIiwKICAgICAgICAgICAgIH0KICAgICAgICAg
XQotICAgIH0KKyAgICB9OwogCiAgICAgY29uc3QgY29tbWl0c09uZVByZWZpeE9mVGhlT3RoZXIg
PSB7CiAgICAgICAgICJ3b3JrZXJOYW1lIjogInNvbWVXb3JrZXIiLApAQCAtNDYsNiArODksNyBA
QCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAogICAgICAgICAgICAgICAg
ICJyZXZpc2lvbiI6ICIyMTA5NCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmll
ciI6ICIxODQyNzJAbWFpbiIsCiAgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQw
Mjo1MjozNC41NzdaIiwKICAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIlphbGFu
IEJ1anRhcyIsICJhY2NvdW50IjogInphbGFuQGFwcGxlLmNvbSJ9LAogICAgICAgICAgICAgICAg
ICJtZXNzYWdlIjogImEgbWVzc2FnZSIsCkBAIC01Myw2ICs5Nyw3IEBAIGRlc2NyaWJlKCIvYXBp
L2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICJyZXBvc2l0b3J5IjogIldlYktpdCIsCiAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIx
MDk0OSIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxODQyNzdAbWFp
biIsCiAgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMzoyMzo1MC42NDVaIiwK
ICAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNocmlzIER1bWV6IiwgImFjY291
bnQiOiAiY2R1bWV6QGFwcGxlLmNvbSJ9LAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogInNv
bWUgbWVzc2FnZSIsCkBAIC01MjQsNiArNTY5LDQxIEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMv
IiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCisgICAgICAg
IGl0KCJzaG91bGQgcmV0dXJuIGNvbW1pdCB3aXRoIGNvbW1pdCByZXZpc2lvbiBsYWJlbCIsIGFz
eW5jICgpID0+IHsKKyAgICAgICAgICAgIGF3YWl0IGFkZFdvcmtlckZvclJlcG9ydChzdWJ2ZXJz
aW9uQ29tbWl0cyk7CisgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVyc2lv
bkNvbW1pdHMpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0
dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLmdldEpTT04oYC9hcGkvY29tbWl0cy9XZWJLaXQvJHtzdWJ2ZXJzaW9uQ29t
bWl0cy5jb21taXRzWzBdLnJldmlzaW9uSWRlbnRpZmllcn1gKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHQuY29tbWl0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNz
ZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0LmNvbW1pdHNbMF0sIHN1YnZlcnNp
b25Db21taXRzLmNvbW1pdHNbMF0pOworICAgICAgICB9KTsKKworICAgICAgICBpdCgic2hvdWxk
IHJldHVybiAnQW1iaWd1b3VzUmV2aXNpb25QcmVmaXgnIHdoZW4gbW9yZSB0aGFuIG9uZSBjb21t
aXRzIGFyZSBmb3VuZCBmb3IgYSByZXZpc2lvbiBsYWJlbCBwcmVmaXgiLCBhc3luYyAoKSA9PiB7
CisgICAgICAgICAgICBjb25zdCByZW1vdGUgPSBUZXN0U2VydmVyLnJlbW90ZUFQSSgpOworICAg
ICAgICAgICAgYXdhaXQgYWRkV29ya2VyRm9yUmVwb3J0KHN1YmNlcnNpb25Db21taXRzV2l0aEZh
a2VSZXZpc2lvbklkZW50aWZpZXIpOworICAgICAgICAgICAgYXdhaXQgcmVtb3RlLnBvc3RKU09O
V2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJjZXJzaW9uQ29tbWl0c1dpdGhG
YWtlUmV2aXNpb25JZGVudGlmaWVyKTsKKyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0
IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzE4NDI3OEA/cHJlZml4LW1hdGNo
PXRydWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cydd
LCAnQW1iaWd1b3VzUmV2aXNpb25QcmVmaXgnKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQo
InNob3VsZCBub3QgcmV0dXJuICdBbWJpZ3VvdXNSZXZpc2lvblByZWZpeCcgd2hlbiB0aGVyZSBp
cyBhIGNvbW1pdCByZXZpc2lvbiBsYWJlbCBleHRyYWN0IG1hdGNoZXMgc3BlY2lmaWVkIHJldmlz
aW9uIHByZWZpeCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCk7CisgICAgICAgICAgICBhd2FpdCBhZGRXb3JrZXJGb3JSZXBv
cnQoc3ViY2Vyc2lvbkNvbW1pdHNXaXRoRmFrZVJldmlzaW9uSWRlbnRpZmllcik7CisgICAgICAg
ICAgICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRz
LycsIHN1YmNlcnNpb25Db21taXRzV2l0aEZha2VSZXZpc2lvbklkZW50aWZpZXIpOworICAgICAg
ICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9X
ZWJLaXQvMTg0Mjc4QG1haW4/cHJlZml4LW1hdGNoPXRydWUnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwU3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBd
LCBzdWJjZXJzaW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25JZGVudGlmaWVyWydjb21taXRzJ11b
Ml0pOworICAgICAgICB9KTsKKworICAgICAgICBpdCgic2hvdWxkIHJldHVybiAnVW5rbm93bkNv
bW1pdCcgd2hlbiBubyBjb21taXQgaXMgZm91bmQgZm9yIGEgcmV2aXNpb24gbGFiZWwgcHJlZml4
IiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29uc3QgcmVtb3RlID0gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKTsKKyAgICAgICAgICAgIGF3YWl0IGFkZFdvcmtlckZvclJlcG9ydChzdWJjZXJz
aW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25JZGVudGlmaWVyKTsKKyAgICAgICAgICAgIGF3YWl0
IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3ViY2Vy
c2lvbkNvbW1pdHNXaXRoRmFrZVJldmlzaW9uSWRlbnRpZmllcik7CisgICAgICAgICAgICBjb25z
dCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8xODQy
NzhAeD9wcmVmaXgtbWF0Y2g9dHJ1ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHJlc3VsdFsnc3RhdHVzJ10sICdVbmtub3duQ29tbWl0Jyk7CisgICAgICAgIH0pOwogICAgIH0p
OwogCiAgICAgZGVzY3JpYmUoJy9hcGkvY29tbWl0cy88cmVwb3NpdG9yeT4vb3duZWQtY29tbWl0
cz9vd25lci1yZXZpc2lvbj08Y29tbWl0PicsICgpID0+IHsKQEAgLTcyNyw2ICs4MDcsMzMgQEAg
ZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KTsK
ICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoInNob3VsZCByZXR1cm4gcmVwb3J0ZWQgY29tbWl0
cyBpbiB0aGUgc3BlY2lmaWVkIHJldmlzaW9uIGxhYmVsIHJhbmdlIiwgYXN5bmMgKCkgPT4gewor
ICAgICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgICAg
ICBhd2FpdCBkYi5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHsnaWQnOiAxLCAnbmFtZSc6ICdXZWJL
aXQnfSk7CisgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRv
cnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTQ4JywgJ3JldmlzaW9uX2lkZW50aWZpZXInOiAnMTg0
Mjc2QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIwVDAyOjUyOjM0LjU3N1onLCAncmVwb3J0ZWQn
OiB0cnVlfSk7CisgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9z
aXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTQ5JywgJ3JldmlzaW9uX2lkZW50aWZpZXInOiAn
MTg0Mjc3QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIwVDAzOjIzOjUwLjY0NVonLCAncmVwb3J0
ZWQnOiB0cnVlfSk7CisgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3Jl
cG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTUwJywgJ3JldmlzaW9uX2lkZW50aWZpZXIn
OiAnMTg0Mjc4QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIwVDAzOjQ5OjM3Ljg4N1onLCAncmVw
b3J0ZWQnOiB0cnVlfSk7CisgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvP3ByZWNlZGluZ1Jl
dmlzaW9uPTE4NDI3NkBtYWluJmxhc3RSZXZpc2lvbj0xODQyNzhAbWFpbicpOworICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDIpOwor
ICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21t
aXRzJ11bMF0sIHsKKyAgICAgICAgICAgICAgICBwcmV2aW91c0NvbW1pdDogbnVsbCwKKyAgICAg
ICAgICAgICAgICByZXZpc2lvbjogJzIxMDk0OScsCisgICAgICAgICAgICAgICAgcmV2aXNpb25J
ZGVudGlmaWVyOiAnMTg0Mjg5QG1haW4nLAorICAgICAgICAgICAgICAgIHRpbWU6ICcyMDE3LTAx
LTIwVDAzOjIzOjUwLjY0NVonLAorICAgICAgICAgICAgICAgIGF1dGhvcjoge25hbWU6IG51bGws
IGFjY291bnQ6IG51bGx9LAorICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG51bGwsCisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJl
c3VsdFsnY29tbWl0cyddWzFdLCB7CisgICAgICAgICAgICAgICAgcHJldmlvdXNDb21taXQ6IG51
bGwsCisgICAgICAgICAgICAgICAgcmV2aXNpb246ICcyMTA5NTAnLAorICAgICAgICAgICAgICAg
IHJldmlzaW9uSWRlbnRpZmllcjogJzE4NDI5MEBtYWluJywKKyAgICAgICAgICAgICAgICB0aW1l
OiAnMjAxNy0wMS0yMFQwMzo0OTozNy44ODdaJywKKyAgICAgICAgICAgICAgICBhdXRob3I6IHtu
YW1lOiBudWxsLCBhY2NvdW50OiBudWxsfSwKKyAgICAgICAgICAgICAgICBtZXNzYWdlOiBudWxs
LAorICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCiAgICAgICAgIGl0KCJzaG91bGQgbm90
IGluY2x1ZGUgYSByZXZpc2lvbiBub3Qgd2l0aGluIHRoZSBzcGVjaWZpZWQgcmFuZ2UiLCAoKSA9
PiB7CiAgICAgICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKICAgICAg
ICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7CkBAIC03NTAsNiAr
ODU3LDIzIEBAIGRlc2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogCisgICAgICAgIGl0KCJzaG91bGQgbm90IGluY2x1ZGUg
YSByZXZpc2lvbiBub3Qgd2l0aGluIHRoZSBzcGVjaWZpZWQgY29tbWl0IHJldmlzaW9uIGxhYmVs
IHJhbmdlIiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVy
LmRhdGFiYXNlKCk7CisgICAgICAgICAgICBjb25zdCByZW1vdGUgPSBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpOworICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7J2lk
JzogMSwgJ25hbWUnOiAnV2ViS2l0J30pLAorICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdj
b21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk0NycsICdyZXZpc2lv
bl9pZGVudGlmaWVyJzogJzE4NDI3NUBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMjozODo0
NS40ODVaJywgJ3JlcG9ydGVkJzogZmFsc2V9KTsKKyAgICAgICAgICAgIGF3YWl0IGRiLmluc2Vy
dCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6ICcyMTA5NDgnLCAncmV2
aXNpb25faWRlbnRpZmllcic6ICcxODQyNzZAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDI6
NTI6MzQuNTc3WicsICdyZXBvcnRlZCc6IGZhbHNlfSk7CisgICAgICAgICAgICBhd2FpdCBkYi5p
bnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTQ5Jywg
J3JldmlzaW9uX2lkZW50aWZpZXInOiAnMTg0Mjc3QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIw
VDAzOjIzOjUwLjY0NVonLCAncmVwb3J0ZWQnOiBmYWxzZX0pOworICAgICAgICAgICAgYXdhaXQg
ZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk1
MCcsICdyZXZpc2lvbl9pZGVudGlmaWVyJzogJzE4NDI3OEBtYWluJywgJ3RpbWUnOiAnMjAxNy0w
MS0yMFQwMzo0OTozNy44ODdaJywgJ3JlcG9ydGVkJzogZmFsc2V9KTsKKyAgICAgICAgICAgIGF3
YWl0IGFkZFdvcmtlckZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7CisgICAgICAgICAgICBh
d2FpdCByZW1vdGUucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1
YnZlcnNpb25Db21taXRzKTsKKyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbW90
ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0Lz9wcmVjZWRpbmdSZXZpc2lvbj0xODQyNzVA
bWFpbiZsYXN0UmV2aXNpb249MTg0Mjc3QG1haW4nKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFz
c2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzBdLCBzdWJ2
ZXJzaW9uQ29tbWl0c1snY29tbWl0cyddWzBdKTsKKyAgICAgICAgICAgIGFzc2VydENvbW1pdElz
U2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsnY29tbWl0cyddWzFdLCBzdWJ2ZXJzaW9uQ29tbWl0
c1snY29tbWl0cyddWzFdKTsKKyAgICAgICAgfSk7CisKICAgICB9KTsKIAogfSk7CmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtY29t
bWl0cy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCmluZGV4IDg5YTBhNGVjODM4Mzg5Mzc5ZTk5OTRmZTQ5
ZTA2ZTE3YWU1YjRkMmEuLmM4OWYyN2U0M2M0MDhhOWEwMzM0NDNjZjU2MTYwZWZiZDJmNDBiZDkg
MTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJl
cG9ydC1jb21taXRzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRzLXRlc3RzLmpzCkBAIC0yNiw2ICsyNiwyMCBAQCBk
ZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIH0KICAgICAgICAgXSwKICAgICB9OworICAgIGNvbnN0IHN1YnZl
cnNpb25Db21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyID0geworICAgICAgICAid29ya2VyTmFt
ZSI6ICJzb21lV29ya2VyIiwKKyAgICAgICAgIndvcmtlclBhc3N3b3JkIjogInNvbWVQYXNzd29y
ZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0
MTk3NyIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxMjcyMzFAbWFp
biIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxMy0wMi0wNlQwODo1NToyMC45WiIsCisg
ICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3Vu
dCI6ICJjb21taXQtcXVldWVAd2Via2l0Lm9yZyJ9LAorICAgICAgICAgICAgICAgICJtZXNzYWdl
IjogInNvbWUgbWVzc2FnZSIsCisgICAgICAgICAgICB9CisgICAgICAgIF0sCisgICAgfTsKICAg
ICBjb25zdCBzdWJ2ZXJzaW9uSW52YWxpZENvbW1pdCA9IHsKICAgICAgICAgIndvcmtlck5hbWUi
OiAic29tZVdvcmtlciIsCiAgICAgICAgICJ3b3JrZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQi
LApAQCAtNzYsNiArOTAsNDQgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNvbW1pdHMvIHdpdGgg
aW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIF0KICAgICB9CiAKKyAgICBjb25z
dCBkdXBsaWNhdGVkQ29tbWl0UmV2aXNpb25JZGVudGlmaWVyQ29tbWl0cyA9IHsKKyAgICAgICAg
Indvcmtlck5hbWUiOiAic29tZVdvcmtlciIsCisgICAgICAgICJ3b3JrZXJQYXNzd29yZCI6ICJz
b21lUGFzc3dvcmQiLAorICAgICAgICAiY29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJyZXZp
c2lvbiI6ICIyMTA5NDgiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAi
MTg0Mjc2QG1haW4iLAorICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6NTI6
MzQuNTc3WiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJaYWxhbiBCdWp0
YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKKyAgICAgICAgICAgICAgICAibWVz
c2FnZSI6ICJhIG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJyZXZp
c2lvbiI6ICIyMTA5NDkiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAi
MTg0Mjc2QG1haW4iLAorICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDM6MjM6
NTAuNjQ1WiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDaHJpcyBEdW1l
eiIsICJhY2NvdW50IjogImNkdW1lekBhcHBsZS5jb20ifSwKKyAgICAgICAgICAgICAgICAibWVz
c2FnZSI6ICJzb21lIG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgXQorICAgIH0K
KworICAgIGNvbnN0IGludmFsaWRDb21taXRSZXZpc2lvbklkZW50aWZpZXJDb21taXRzID0gewor
ICAgICAgICAid29ya2VyTmFtZSI6ICJzb21lV29ya2VyIiwKKyAgICAgICAgIndvcmtlclBhc3N3
b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAg
ICAgInJldmlzaW9uIjogIjIxMDk0OCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRp
ZmllciI6ICIxODQyNzYiLAorICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6
NTI6MzQuNTc3WiIsCisgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJaYWxhbiBC
dWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKKyAgICAgICAgICAgICAgICAi
bWVzc2FnZSI6ICJhIG1lc3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgXQorICAgIH0K
KwogICAgIGl0KCJzaG91bGQgcmVqZWN0IGVycm9yIHdoZW4gd29ya2VyIG5hbWUgaXMgbWlzc2lu
ZyIsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywge30pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CiAgICAg
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnTWlzc2luZ1dv
cmtlck5hbWUnKTsKQEAgLTE0NSw2ICsxOTcsMjIgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0LWNv
bW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCisgICAgaXQoInNob3VsZCByZWplY3QgYW4gaW52YWxpZCByZXZpc2lvbiBsYWJlbCIs
IGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkV29ya2VyRm9yUmVwb3J0KHN1YnZlcnNp
b25Db21taXQpOworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgaW52YWxpZENvbW1pdFJl
dmlzaW9uSWRlbnRpZmllckNvbW1pdHMpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
cG9uc2VbJ3N0YXR1cyddLCAnSW52YWxpZFJldmlzaW9uSWRlbnRpZmllcicpOworICAgICAgICBj
b25zdCByb3dzID0gYXdhaXQgVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVjdEFsbCgnY29tbWl0
cycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDApOworICAgIH0p
OworCisgICAgaXQoInNob3VsZCByZWplY3Qgd2l0aCBkdXBsaWNhdGVkIGNvbW1pdCByZXZpc2lv
biBsYWJlbHMiLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFdvcmtlckZvclJlcG9y
dChzdWJ2ZXJzaW9uQ29tbWl0KTsKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGR1cGxp
Y2F0ZWRDb21taXRSZXZpc2lvbklkZW50aWZpZXJDb21taXRzKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0R1cGxpY2F0ZWRSZXZpc2lvbklkZW50aWZp
ZXInKTsKKyAgICAgICAgY29uc3Qgcm93cyA9IGF3YWl0IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKS5z
ZWxlY3RBbGwoJ2NvbW1pdHMnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVu
Z3RoLCAwKTsKKyAgICB9KTsKKwogICAgIGl0KCJzaG91bGQgc3RvcmUgdHdvIGNvbW1pdHMgZnJv
bSBhIHZhbGlkIHdvcmtlciIsICgpID0+IHsKICAgICAgICAgcmV0dXJuIGFkZFdvcmtlckZvclJl
cG9ydChzdWJ2ZXJzaW9uVHdvQ29tbWl0cykudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8n
LCBzdWJ2ZXJzaW9uVHdvQ29tbWl0cyk7CkBAIC0yMTUsNiArMjgzLDI1IEBAIGRlc2NyaWJlKCIv
YXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAg
ICAgICB9KTsKICAgICB9KTsKIAorICAgIGl0KCJzaG91bGQgdXBkYXRlIGFuIGV4aXN0aW5nIGNv
bW1pdCB3aXRoIGNvbW1pdCBsYWJlbCBpZiB0aGVyZSBpcyBvbmUiLCBhc3luYyAoKSA9PiB7Cisg
ICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBjb25zdCBy
ZXBvcnRlZERhdGEgPSBzdWJ2ZXJzaW9uQ29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllci5jb21t
aXRzWzBdOworICAgICAgICBhd2FpdCBhZGRXb3JrZXJGb3JSZXBvcnQoc3VidmVyc2lvbkNvbW1p
dFdpdGhSZXZpc2lvbklkZW50aWZpZXIpOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3JlcG9z
aXRvcmllcycsIHsnaWQnOiAxLCAnbmFtZSc6ICdXZWJLaXQnfSksCisgICAgICAgIGF3YWl0IGRi
Lmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6IHJlcG9ydGVk
RGF0YVsncmV2aXNpb24nXSwgJ3RpbWUnOiByZXBvcnRlZERhdGFbJ3RpbWUnXX0pCisgICAgICAg
IGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTign
L2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29tbWl0V2l0aFJldmlzaW9uSWRlbnRp
Zmllcik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdP
SycpOworICAgICAgICBjb25zdCBjb21taXRzID0gYXdhaXQgZGIuc2VsZWN0QWxsKCdjb21taXRz
Jyk7CisgICAgICAgIGNvbnN0IGNvbW1pdHRlcnMgPSBhd2FpdCBkYi5zZWxlY3RBbGwoJ2NvbW1p
dHRlcnMnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ21lc3NhZ2UnXSwgcmVwb3J0ZWREYXRh
WydtZXNzYWdlJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsncmV2
aXNpb25faWRlbnRpZmllciddLCByZXBvcnRlZERhdGFbJ3JldmlzaW9uSWRlbnRpZmllciddKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHNbMF1bJ2NvbW1pdHRlciddLCBjb21t
aXR0ZXJzWzBdWydpZCddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNb
MF1bJ25hbWUnXSwgcmVwb3J0ZWREYXRhWydhdXRob3InXVsnbmFtZSddKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGNvbW1pdHRlcnNbMF1bJ2FjY291bnQnXSwgcmVwb3J0ZWREYXRhWydh
dXRob3InXVsnYWNjb3VudCddKTsKKyAgICB9KTsKKwogICAgIGl0KCJzaG91bGQgbm90IHVwZGF0
ZSBhbiB1bnJlbGF0ZWQgY29tbWl0IiwgKCkgPT4gewogICAgICAgICBjb25zdCBkYiA9IFRlc3RT
ZXJ2ZXIuZGF0YWJhc2UoKTsKICAgICAgICAgY29uc3QgZmlyc3REYXRhID0gc3VidmVyc2lvblR3
b0NvbW1pdHMuY29tbWl0c1swXTsKQEAgLTU5MCw2ICs2NzcsMTExIEBAIGRlc2NyaWJlKCIvYXBp
L3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ093bmVkQ29tbWl0
U2hvdWxkTm90Q29udGFpblRpbWVzdGFtcCcpOwogICAgICAgICB9KTsKICAgICB9KTsKKworICAg
IGNvbnN0IGludmFsaWRPd25lZENvbW1pdFVzZVJldmlzaW9uSWRlbnRpZmllckFzUmV2aXNvbiA9
IHsKKyAgICAgICAgIndvcmtlck5hbWUiOiAic29tZVdvcmtlciIsCisgICAgICAgICJ3b3JrZXJQ
YXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAiY29tbWl0cyI6IFsKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJPU1giLAorICAgICAgICAgICAg
ICAgICJyZXZpc2lvbiI6ICJTaWVycmExNkQzMiIsCisgICAgICAgICAgICAgICAgIm9yZGVyIjog
MSwKKyAgICAgICAgICAgICAgICAib3duZWRDb21taXRzIjogeworICAgICAgICAgICAgICAgICAg
ICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjEyNzIz
MkBtYWluIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ29t
bWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmcifSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIldlYktpdCBDb21taXQiLAorICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICBd
CisgICAgfTsKKworICAgIGl0KCJzaG91bGQgcmVqZWN0IGluc2VydGluZyBvbmUgY29tbWl0IHdp
dGggb3duZWQgY29tbWl0cyB0aGF0IHVzZSByZXZpc2lvbiBsYWJlbCBhcyByZXZpc2lvbiIsIGFz
eW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkV29ya2VyRm9yUmVwb3J0KGludmFsaWRPd25l
ZENvbW1pdFVzZVJldmlzaW9uSWRlbnRpZmllckFzUmV2aXNvbik7CisgICAgICAgIGNvbnN0IHJl
c3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBv
cnQtY29tbWl0cy8nLCBpbnZhbGlkT3duZWRDb21taXRVc2VSZXZpc2lvbklkZW50aWZpZXJBc1Jl
dmlzb24pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAn
SW52YWxpZFJldmlzaW9uJyk7CisgICAgfSk7CisKKyAgICBjb25zdCBpbnZhbGlkUmV2aXNpb25J
ZGVudGlmaWVyT3duZWRDb21taXQgPSB7CisgICAgICAgICJ3b3JrZXJOYW1lIjogInNvbWVXb3Jr
ZXIiLAorICAgICAgICAid29ya2VyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAg
ImNvbW1pdHMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9zaXRvcnki
OiAiT1NYIiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiU2llcnJhMTZEMzIiLAorICAg
ICAgICAgICAgICAgICJvcmRlciI6IDEsCisgICAgICAgICAgICAgICAgIm93bmVkQ29tbWl0cyI6
IHsKKyAgICAgICAgICAgICAgICAgICAgIldlYktpdCI6IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICJyZXZpc2lvbiI6ICIxNDE5NzgiLAorICAgICAgICAgICAgICAgICAgICAgICAgInJldmlz
aW9uSWRlbnRpZmllciI6ICIxMjcyMzIiLAorICAgICAgICAgICAgICAgICAgICAgICAgImF1dGhv
ciI6IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Vi
a2l0Lm9yZyJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiV2ViS2l0IENv
bW1pdCIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9CisgICAgICAgIF0KKyAgICB9OworCisgICAgaXQoInNob3VsZCByZWplY3QgaW5zZXJ0
aW5nIG9uZSBjb21taXQgd2l0aCBvd25lZCBjb21taXRzIHRoYXQgaGF2ZSBpbnZhbGlkIHJldmlz
aW9uIGxhYmVsIiwgYXN5bmMgKCkgPT4geworICAgICAgICBhd2FpdCBhZGRXb3JrZXJGb3JSZXBv
cnQoaW52YWxpZFJldmlzaW9uSWRlbnRpZmllck93bmVkQ29tbWl0KTsKKyAgICAgICAgY29uc3Qg
cmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC1jb21taXRzLycsIGludmFsaWRSZXZpc2lvbklkZW50aWZpZXJPd25lZENvbW1pdCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZhbGlkUmV2
aXNpb25JZGVudGlmaWVyJyk7CisgICAgfSk7CisKKyAgICBjb25zdCBpbnZhbGlkQXV0aG9yT3du
ZWRDb21taXQgPSB7CisgICAgICAgICJ3b3JrZXJOYW1lIjogInNvbWVXb3JrZXIiLAorICAgICAg
ICAid29ya2VyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgImNvbW1pdHMiOiBb
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiT1NYIiwKKyAg
ICAgICAgICAgICAgICAicmV2aXNpb24iOiAiU2llcnJhMTZEMzIiLAorICAgICAgICAgICAgICAg
ICJvcmRlciI6IDEsCisgICAgICAgICAgICAgICAgIm93bmVkQ29tbWl0cyI6IHsKKyAgICAgICAg
ICAgICAgICAgICAgIldlYktpdCI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICJyZXZpc2lv
biI6ICIxNDE5NzgiLAorICAgICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmll
ciI6ICIxMjcyMzJAbWFpbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAiYXV0aG9yIjogbnVs
bCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIldlYktpdCBDb21taXQiLAor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
ICAgICAgICBdCisgICAgfTsKKyAgICBpdCgic2hvdWxkIHJlamVjdCBpbnNlcnRpbmcgb25lIGNv
bW1pdCB3aXRoIG93bmVkIGNvbW1pdHMgdGhhdCBoYXZlIGludmFsaWQgYXV0aG9yIiwgYXN5bmMg
KCkgPT4geworICAgICAgICBhd2FpdCBhZGRXb3JrZXJGb3JSZXBvcnQoaW52YWxpZEF1dGhvck93
bmVkQ29tbWl0KTsKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIGludmFsaWRBdXRob3JP
d25lZENvbW1pdCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVz
J10sICdJbnZhbGlkQXV0aG9yRm9ybWF0Jyk7CisgICAgfSk7CisKKyAgICBjb25zdCBvd25lZENv
bW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIgPSB7CisgICAgICAgICJ3b3JrZXJOYW1lIjogInNv
bWVXb3JrZXIiLAorICAgICAgICAid29ya2VyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwKKyAg
ICAgICAgImNvbW1pdHMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9z
aXRvcnkiOiAiT1NYIiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiU2llcnJhMTZEMzIi
LAorICAgICAgICAgICAgICAgICJvcmRlciI6IDEsCisgICAgICAgICAgICAgICAgIm93bmVkQ29t
bWl0cyI6IHsKKyAgICAgICAgICAgICAgICAgICAgIldlYktpdCI6IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICJyZXZpc2lvbiI6ICIxNDE5NzgiLAorICAgICAgICAgICAgICAgICAgICAgICAg
InJldmlzaW9uSWRlbnRpZmllciI6ICIxMjcyMzJAbWFpbiIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50IjogImNvbW1p
dC1xdWV1ZUB3ZWJraXQub3JnIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAibWVzc2FnZSI6
ICJXZWJLaXQgQ29tbWl0IiwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgXQorICAgIH07CisKKyAgICBpdCgic2hvdWxkIGlu
c2VydCBvbmUgY29tbWl0IHdpdGggY29tbWl0IHJldmlzaW9uIGxhYmVsIiwgYXN5bmMgKCkgPT4g
eworICAgICAgICBhd2FpdCBhZGRXb3JrZXJGb3JSZXBvcnQob3duZWRDb21taXRXaXRoUmV2aXNp
b25JZGVudGlmaWVyKTsKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIG93bmVkQ29tbWl0
V2l0aFJldmlzaW9uSWRlbnRpZmllcik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNw
b25zZVsnc3RhdHVzJ10sICdPSycpOworICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0
YWJhc2UoKTsKKyAgICAgICAgY29uc3QgY29tbWl0ID0gYXdhaXQgZGIuc2VsZWN0Um93cygnY29t
bWl0cycsIHsncmV2aXNpb24nOiAnMTQxOTc4J30pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoY29tbWl0WzBdLnJldmlzaW9uX2lkZW50aWZpZXIsIG93bmVkQ29tbWl0V2l0aFJldmlzaW9u
SWRlbnRpZmllci5jb21taXRzWzBdLm93bmVkQ29tbWl0c1snV2ViS2l0J10ucmV2aXNpb25JZGVu
dGlmaWVyKTsKKyAgICB9KTsKIH0pOwogCiBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8g
d2l0aCBpbnNlcnQ9ZmFsc2UiLCBmdW5jdGlvbiAoKSB7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtdGVzdHMuanMgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtdGVzdHMuanMKaW5kZXgg
NzdhZWJkZTAyYTc5YzIxMWFhMzM1ODVkMjA3NzJlMmU4NDBkMWY1MC4uY2U4NGI5YzVkNWUwZWMx
MzQyMjg3Njg1MWQzMzFhN2EwNjliYThjMiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qcwpAQCAtNzcsNiAr
NzcsMjkgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkgewogICAgICAgICB9
OwogICAgIH0KIAorICAgIGZ1bmN0aW9uIHJlcG9ydFdpdGhSZXZpc2lvbklkZW50aWZpZXJDb21t
aXQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICJidWlsZFRhZyI6ICIx
MjMiLAorICAgICAgICAgICAgImJ1aWxkVGltZSI6ICIyMDEzLTAyLTI4VDEwOjEyOjAzLjM4ODMw
NCIsCisgICAgICAgICAgICAiYnVpbGRlck5hbWUiOiAic29tZUJ1aWxkZXIiLAorICAgICAgICAg
ICAgIndvcmtlck5hbWUiOiAic29tZVdvcmtlciIsCisgICAgICAgICAgICAiYnVpbGRlclBhc3N3
b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICAgICAicGxhdGZvcm0iOiAiTW91bnRhaW4g
TGlvbiIsCisgICAgICAgICAgICAidGVzdHMiOiB7fSwKKyAgICAgICAgICAgICJyZXZpc2lvbnMi
OiB7CisgICAgICAgICAgICAgICAgIm1hY09TIjogeworICAgICAgICAgICAgICAgICAgICAicmV2
aXNpb24iOiAiMTAuOC4yIDEyQzYwIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAg
ICAgIldlYktpdCI6IHsKKyAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjE0MTk3NyIs
CisgICAgICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTI3MjMxQG1haW4i
LAorICAgICAgICAgICAgICAgICAgICAidGltZXN0YW1wIjogIjIwMTMtMDItMDZUMDg6NTU6MjAu
OVoiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0K
KwogICAgIGZ1bmN0aW9uIGVtcHR5V29ya2VyUmVwb3J0KCkKICAgICB7CiAgICAgICAgIHJldHVy
biB7CkBAIC0zNTEsNiArMzc0LDM3IEBAIGRlc2NyaWJlKCIvYXBpL3JlcG9ydCIsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKKyAgICBpdCgic2hvdWxkIGFkZCByZXZpc2lv
biBsYWJlbCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkQnVpbGRlckZvclJlcG9y
dChyZXBvcnRXaXRoUmV2aXNpb25JZGVudGlmaWVyQ29tbWl0KCkpOworICAgICAgICBhd2FpdCBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBbcmVwb3J0V2l0
aFJldmlzaW9uSWRlbnRpZmllckNvbW1pdCgpXSk7CisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNl
cnZlci5kYXRhYmFzZSgpOworICAgICAgICBjb25zdCByZXBvc2l0b3JpZXMgPSBhd2FpdCBkYi5z
ZWxlY3RBbGwoJ3JlcG9zaXRvcmllcycpOworICAgICAgICBjb25zdCBjb21taXRzID0gIGF3YWl0
IGRiLnNlbGVjdEFsbCgnY29tbWl0cycpOworICAgICAgICBjb25zdCBidWlsZENvbW1pdHNSZWxh
dGlvbnMgPSBhd2FpdCAgZGIuc2VsZWN0QWxsKCdidWlsZF9jb21taXRzJywgJ2J1aWxkX2NvbW1p
dCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzLmxlbmd0aCwgMik7
CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yaWVzLm1hcCgocm93KSA9
PiByb3dbJ25hbWUnXSkuc29ydCgpLCBbJ1dlYktpdCcsICdtYWNPUyddKTsKKworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRDb21taXRzUmVsYXRpb25zLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNbMF1bJ2J1aWxkX2NvbW1pdCddLCBj
b21taXRzWzBdWydpZCddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkQ29tbWl0
c1JlbGF0aW9uc1sxXVsnYnVpbGRfY29tbWl0J10sIGNvbW1pdHNbMV1bJ2lkJ10pOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRzUmVsYXRpb25zWzBdWydjb21taXRfYnVp
bGQnXSwgYnVpbGRDb21taXRzUmVsYXRpb25zWzFdWydjb21taXRfYnVpbGQnXSk7CisKKyAgICAg
ICAgbGV0IHJlcG9zaXRvcnlJZFRvTmFtZSA9IHt9OworICAgICAgICBmb3IgKGNvbnN0IHJlcG9z
aXRvcnkgb2YgcmVwb3NpdG9yaWVzKQorICAgICAgICAgICAgcmVwb3NpdG9yeUlkVG9OYW1lW3Jl
cG9zaXRvcnlbJ2lkJ11dID0gcmVwb3NpdG9yeVsnbmFtZSddOworCisgICAgICAgIGxldCByZXBv
c2l0b3J5TmFtZVRvUmV2aXNpb25Sb3cgPSB7fTsKKyAgICAgICAgZm9yIChjb25zdCBjb21taXQg
b2YgY29tbWl0cykKKyAgICAgICAgICAgIHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1tyZXBv
c2l0b3J5SWRUb05hbWVbY29tbWl0WydyZXBvc2l0b3J5J11dXSA9IGNvbW1pdDsKKworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydtYWNPUydd
WydyZXZpc2lvbiddLCAnMTAuOC4yIDEyQzYwJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktpdCddWydyZXZpc2lvbiddLCAnMTQx
OTc3Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNp
b25Sb3dbJ1dlYktpdCddWydyZXZpc2lvbl9pZGVudGlmaWVyJ10sICcxMjcyMzFAbWFpbicpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93WydX
ZWJLaXQnXVsndGltZSddLnRvU3RyaW5nKCksCisgICAgICAgICAgICBuZXcgRGF0ZSgnMjAxMy0w
Mi0wNiAwODo1NToyMC45JykudG9TdHJpbmcoKSk7CisgICAgfSk7CisKICAgICBpdCgic2hvdWxk
IG5vdCBjcmVhdGUgYSBkdXBsaWNhdGUgYnVpbGQgZm9yIHRoZSBzYW1lIGJ1aWxkIG51bWJlciBp
ZiBidWlsZCB0aW1lcyBhcmUgY2xvc2UiLCAoKSA9PiB7CiAgICAgICAgIGNvbnN0IGZpcnN0UmVw
b3J0ID0gZW1wdHlSZXBvcnQoKTsKICAgICAgICAgZmlyc3RSZXBvcnRbJ2J1aWxkVGltZSddID0g
JzIwMTMtMDItMjhUMTA6MTI6MDQnOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVzdC1zZXJ2ZXIuY29uZiBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmNvbmYKaW5k
ZXggOTM2YjRmNGJmYWZmMDdlZGIwMzU4MzNjNDYzZWUxNjliZmMxNWExMS4uY2E1NTRiMTdmZDU5
NDRlZGU3MWVjMWM3M2EzOWU5MGFhMGRiMzAyMCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvdGVzdC1zZXJ2ZXIuY29uZgorKysgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy90ZXN0LXNlcnZl
ci5jb25mCkBAIC0xLDYgKzEsOCBAQAogU2VydmVyUm9vdCAiL3VzciIKIExpc3RlbiA4MDgwCiAK
K0xvYWRNb2R1bGUgbXBtX3ByZWZvcmtfbW9kdWxlIGxpYmV4ZWMvYXBhY2hlMi9tb2RfbXBtX3By
ZWZvcmsuc28KK0xvYWRNb2R1bGUgcGhwN19tb2R1bGUgL3Vzci9sb2NhbC9DZWxsYXIvcGhwQDcu
NC83LjQuMTYvbGliL2h0dHBkL21vZHVsZXMvbGlicGhwNy5zbwogTG9hZE1vZHVsZSBhdXRobl9j
b3JlX21vZHVsZSBsaWJleGVjL2FwYWNoZTIvbW9kX2F1dGhuX2NvcmUuc28KIExvYWRNb2R1bGUg
YXV0aHpfY29yZV9tb2R1bGUgbGliZXhlYy9hcGFjaGUyL21vZF9hdXRoel9jb3JlLnNvCiBMb2Fk
TW9kdWxlIGRlZmxhdGVfbW9kdWxlIGxpYmV4ZWMvYXBhY2hlMi9tb2RfZGVmbGF0ZS5zbwpkaWZm
IC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY29tbWl0LWxvZy10
ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2NvbW1pdC1sb2ct
dGVzdHMuanMKaW5kZXggNzBhYmRlYmY4MWU4YWI2MGQxZDE4MTYzZTM5OTE4NzljYjQ3MzhiNi4u
OTBhNTRiNjI5ZmJjYTEyMmFmODBiZWFmYWE5OGI4YjBkYzkyODVhOCAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qcworKysg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9jb21taXQtbG9nLXRlc3RzLmpz
CkBAIC0xNyw2ICsxNywxNyBAQCBmdW5jdGlvbiB3ZWJraXRDb21taXQoKQogICAgIH0pOwogfQog
CitmdW5jdGlvbiB3ZWJraXRDb21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKCkgCit7CisgICAg
cmV0dXJuIG5ldyBDb21taXRMb2coMSwgeworICAgICAgICBpZDogMSwKKyAgICAgICAgcmVwb3Np
dG9yeTogTW9ja01vZGVscy53ZWJraXQsCisgICAgICAgIHJldmlzaW9uOiAnMjAwODA1JywKKyAg
ICAgICAgcmV2aXNpb25JZGVudGlmaWVyOiAnMTg0Mjc2QG1haW4nLAorICAgICAgICB0aW1lOiAr
KG5ldyBEYXRlKCcyMDE2LTA1LTEzVDAwOjU1OjU3Ljg0MTM0NFonKSksCisgICAgfSk7Cit9CisK
IGZ1bmN0aW9uIG9sZFdlYktpdENvbW1pdCgpCiB7CiAgICAgcmV0dXJuIG5ldyBDb21taXRMb2co
MiwgewpAQCAtMjcsNiArMzgsMTcgQEAgZnVuY3Rpb24gb2xkV2ViS2l0Q29tbWl0KCkKICAgICB9
KTsKIH0KIAorZnVuY3Rpb24gb2xkV2ViS2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigp
Cit7CisgICAgcmV0dXJuIG5ldyBDb21taXRMb2coMiwgeworICAgICAgICBpZDogMiwKKyAgICAg
ICAgcmVwb3NpdG9yeTogTW9ja01vZGVscy53ZWJraXQsCisgICAgICAgIHJldmlzaW9uOiAnMjAw
NTc0JywKKyAgICAgICAgcmV2aXNpb25JZGVudGlmaWVyOiAnMTc1NjA1QG1haW4nLAorICAgICAg
ICB0aW1lOiArKG5ldyBEYXRlKCcyMDE2LTA1LTA5VDE0OjU5OjIzLjU1Mzc2N1onKSksCisgICAg
fSk7Cit9CisKIGZ1bmN0aW9uIGdpdFdlYktpdENvbW1pdCgpCiB7CiAgICAgcmV0dXJuIG5ldyBD
b21taXRMb2coMywgewpAQCAtMzcsNiArNTksMTcgQEAgZnVuY3Rpb24gZ2l0V2ViS2l0Q29tbWl0
KCkKICAgICB9KTsKIH0KIAorZnVuY3Rpb24gZ2l0V2ViS2l0Q29tbWl0V2l0aFJldmlzaW9uSWRl
bnRpZmllcigpCit7CisgICAgcmV0dXJuIG5ldyBDb21taXRMb2coMywgeworICAgICAgICBpZDog
MywKKyAgICAgICAgcmVwb3NpdG9yeTogTW9ja01vZGVscy53ZWJraXQsCisgICAgICAgIHJldmlz
aW9uOiAnNmY4YjBkYmJkYTk1YTQ0MDUwM2I4OGRiMWRkMDNkYWQzYTdiMDdmYicsCisgICAgICAg
IHJldmlzaW9uSWRlbnRpZmllcjogJzE4NDI3NkBtYWluJywKKyAgICAgICAgdGltZTogKyhuZXcg
RGF0ZSgnMjAxNi0wNS0xM1QwMDo1NTo1Ny44NDEzNDRaJykpLAorICAgIH0pOworfQorCiBmdW5j
dGlvbiBvbGRHaXRXZWJLaXRDb21taXQoKQogewogICAgIHJldHVybiBuZXcgQ29tbWl0TG9nKDQs
IHsKQEAgLTQ3LDYgKzgwLDE3IEBAIGZ1bmN0aW9uIG9sZEdpdFdlYktpdENvbW1pdCgpCiAgICAg
fSk7CiB9CiAKK2Z1bmN0aW9uIG9sZEdpdFdlYktpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZp
ZXIoKQoreworICAgIHJldHVybiBuZXcgQ29tbWl0TG9nKDQsIHsKKyAgICAgICAgaWQ6IDQsCisg
ICAgICAgIHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMud2Via2l0LAorICAgICAgICByZXZpc2lvbjog
J2ZmZGExNGU2ZGIwNzQ2ZDEwZDBmMDUwOTA3ZTRhNzMyNTg1MWU1MDInLAorICAgICAgICByZXZp
c2lvbklkZW50aWZpZXI6ICcxNzU2MDVAbWFpbicsCisgICAgICAgIHRpbWU6ICsobmV3IERhdGUo
JzIwMTYtMDUtMDlUMTQ6NTk6MjMuNTUzNzY3WicpKSwKKyAgICB9KTsKK30KKwogZnVuY3Rpb24g
b3N4Q29tbWl0KCkKIHsKICAgICByZXR1cm4gbmV3IENvbW1pdExvZyg1LCB7CkBAIC0xNDcsMTAg
KzE5MSwxOCBAQCBkZXNjcmliZSgnQ29tbWl0TG9nJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHdlYmtpdENvbW1pdCgpLmxhYmVsKCksICdyMjAwODA1Jyk7CiAgICAg
ICAgIH0pOwogCi0gICAgICAgIGl0KCdzaG91bGQgdHJ1bmNhdGUgYSBHaXQgaGFzaCBhdCA4dGgg
Y2hhcmFjdGVyJywgZnVuY3Rpb24gKCkgeworICAgICAgICBpdCgnc2hvdWxkIGRpc3BsYXkgcmV2
aXNpb24gbGFiZWwgZm9sbG93ZWQgYnkgc3ZuIHJlZml4ZWQgd2l0aCAiciInLCAoKSA9PiB7Cisg
ICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Q29tbWl0V2l0aFJldmlzaW9uSWRl
bnRpZmllcigpLmxhYmVsKCksICcxODQyNzZAbWFpbiAocjIwMDgwNSknKQorICAgICAgICB9KTsK
KworICAgICAgICBpdCgnc2hvdWxkIHRydW5jYXRlIGEgR2l0IGhhc2ggYXQgMTJ0aCBjaGFyYWN0
ZXInLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZ2l0V2ViS2l0Q29t
bWl0KCkubGFiZWwoKSwgJzZmOGIwZGJiZGE5NScpOwogICAgICAgICB9KTsKIAorICAgICAgICBp
dCgnc2hvdWxkIGRpc3BsYXkgcmV2aXNpb24gbGFiZWwgZm9sbG93ZWQgYnkgZ2l0IGhhc2ggdHJ1
bmNhdGVkJywgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdpdFdlYktp
dENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKS5sYWJlbCgpLCAnMTg0Mjc2QG1haW4gKDZm
OGIwZGJiZGE5NSknKQorICAgICAgICB9KTsKKwogICAgICAgICBpdCgnc2hvdWxkIG5vdCBtb2Rp
ZnkgT1MgWCB2ZXJzaW9uJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG9zeENvbW1pdCgpLmxhYmVsKCksICcxMC4xMS40IDE1RTY1Jyk7CiAgICAgICAgIH0pOwpAQCAt
MTYxLDEwICsyMTMsMTggQEAgZGVzY3JpYmUoJ0NvbW1pdExvZycsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRDb21taXQoKS50aXRsZSgpLCAnV2ViS2l0IGF0
IHIyMDA4MDUnKTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgaXQoJ3Nob3VsZCB0cnVuY2F0ZSBh
IEdpdCBoYXNoIGF0IDh0aCBjaGFyYWN0ZXInLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGl0KCdz
aG91bGQgaW5jbHVkZSByZXZpc2lvbiBsYWJlbCcsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbCh3ZWJraXRDb21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKCkudGl0bGUo
KSwgJ1dlYktpdCBhdCAxODQyNzZAbWFpbiAocjIwMDgwNSknKTsKKyAgICAgICAgfSk7CisKKyAg
ICAgICAgaXQoJ3Nob3VsZCB0cnVuY2F0ZSBhIEdpdCBoYXNoIGF0IDEydGggY2hhcmFjdGVyJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdpdFdlYktpdENvbW1pdCgp
LnRpdGxlKCksICdXZWJLaXQgYXQgNmY4YjBkYmJkYTk1Jyk7CiAgICAgICAgIH0pOwogCisgICAg
ICAgIGl0KCdzaG91bGQgZGlzcGxheSByZXZpc2lvbiBsYWJlbCBmb2xsb3dlZCBieSBnaXQgaGFz
aCB0cnVuY2F0ZWQnLCAgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdp
dFdlYktpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKS50aXRsZSgpLCAnV2ViS2l0IGF0
IDE4NDI3NkBtYWluICg2ZjhiMGRiYmRhOTUpJyk7CisgICAgICAgIH0pOworCiAgICAgICAgIGl0
KCdzaG91bGQgbm90IG1vZGlmeSBPUyBYIHZlcnNpb24nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0KCkudGl0bGUoKSwgJ09TIFggYXQgMTAuMTEuNCAx
NUU2NScpOwogICAgICAgICB9KTsKQEAgLTIyMyw2ICsyODMsMzEgQEAgZGVzY3JpYmUoJ0NvbW1p
dExvZycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICByZXBvc2l0b3J5OiBNb2NrTW9k
ZWxzLm9zeAogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91
bGQgZGlzcGxheSByZXZpc2lvbiBsYWJlbCBmb2xsb3dlZCB3aXRoIHJldmlzb24gYW5kICBjb25u
ZWN0IHdpdGggIi0iLCBpZiBib3RoIGhhdmUgcmV2aXNpb24gbGFiZWwnLCAoKSA9PiB7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHdlYmtpdENvbW1pdFdpdGhSZXZpc2lvbklk
ZW50aWZpZXIoKS5kaWZmKG9sZFdlYktpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKSks
IHsKKyAgICAgICAgICAgICAgICBsYWJlbDogJzE3NTYwNS0xODQyNzZAbWFpbiAocjIwMDU3NC1y
MjAwODA1KScsCisgICAgICAgICAgICAgICAgdXJsOiAnJywKKyAgICAgICAgICAgICAgICByZXBv
c2l0b3J5OiBNb2NrTW9kZWxzLndlYmtpdAorICAgICAgICAgICAgfSkKKyAgICAgICAgfSk7CisK
KyAgICAgICAgaXQoJ3Nob3VsZCBkaXNwbGF5IHJldmlzaW9uIGxhYmVsIGZvbGxvd2VkIHdpdGgg
cmV2aXNvbiBhbmQgIGNvbm5lY3Qgd2l0aCAiLSIsIGlmIGJvdGggaGF2ZSByZXZpc2lvbiBsYWJl
bCcsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZ2l0V2ViS2l0
Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpLmRpZmYob2xkR2l0V2ViS2l0Q29tbWl0V2l0
aFJldmlzaW9uSWRlbnRpZmllcigpKSwgeworICAgICAgICAgICAgICAgIGxhYmVsOiAnMTc1NjA1
LTE4NDI3NkBtYWluIChmZmRhMTRlNmRiMDcuLjZmOGIwZGJiZGE5NSknLAorICAgICAgICAgICAg
ICAgIHVybDogJycsCisgICAgICAgICAgICAgICAgcmVwb3NpdG9yeTogTW9ja01vZGVscy53ZWJr
aXQKKyAgICAgICAgICAgIH0pCisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgY29u
dGFpbiByZXZpc2lvbiBsYWJlbCwgaWYgb25lIG9mIHRoZSBjb21taXRzIGRvZXNuYHQgaGF2ZSB0
aGUgcmV2aXNpb24gbGFiZWwnLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmlj
dEVxdWFsKHdlYmtpdENvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIoKS5kaWZmKG9sZFdlYktp
dENvbW1pdCgpKSwgeworICAgICAgICAgICAgICAgIGxhYmVsOiAncjIwMDU3NCAtIDE4NDI3NkBt
YWluIChyMjAwODA1KScsCisgICAgICAgICAgICAgICAgdXJsOiAnJywKKyAgICAgICAgICAgICAg
ICByZXBvc2l0b3J5OiBNb2NrTW9kZWxzLndlYmtpdAorICAgICAgICAgICAgfSk7CisgICAgICAg
IH0pOworCiAgICAgfSk7CiAKICAgICBkZXNjcmliZSgnaGFzT3JkZXJpbmcnLCAoKSA9PiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424813</attachid>
            <date>2021-03-31 13:42:42 -0700</date>
            <delta_ts>2021-03-31 13:42:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222897-20210331134242.patch</filename>
            <type>text/plain</type>
            <size>52290</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1Mjk4CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCAyZTQ4MWI2MTIzNDI1YWM2YzJkOTVmZTUwYjkxOGNhMGRjYzc4YmI0Li5iZTJkNTI2NTBh
OWZkNWRkNmIyMjU1MjU4ZTE0MGY4NDFjN2M4M2EwIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAyMS0wMy0zMSAgWmhpZmVpIEZhbmcgIDx6aGlmZWlf
ZmFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGNvbW1pdCByZXZpc2lvbiBsYWJlbCBzdXBw
b3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI4
OTcKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgQWRkIG5l
dyBjb2x1bW4gcmV2aXNpb24gbGFiZWwuCisgICAgICAgIE1ha2UgYWxsIGNvbW1pdCBhcGkgYWxz
byBjYW4gd29yayB3aXRoIHJldmlzaW9uIGxhYmVsLgorICAgICAgICBDaGFuZ2UgdGhlIGNvbW1p
dCBsYWJlbCBkaXNwbGF5IHdpdGggY29tbWl0IHJldmlzaW9uIGxhYmVsLgorCisgICAgICAgICog
YnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qczogRml4IGEgZmFpbGVkIHRl
c3QgY2FzZSwgd2hpbGUgcmVxdWVzdGluZyB0aGUgcmVtb3RlIGFwaSwgCisgICAgICAgIHdlIHNo
b3VsZCB3YWl0IGZvciB0aG9zZSBwcm9taXNlcyByZXNvbHZlZCBhbmQgdGhlbiB3YWl0IGZvciBj
b21tcG9uZW50IHRvIHJlbmRlci4KKyAgICAgICAgKiBpbml0LWRhdGFiYXNlLnNxbDogQWRkIG5l
dyBjb2x1bW4gcmV2aXNpb25faWRlbnRpZmllci4KKyAgICAgICAgKiBtaWdyYXRlLWRhdGFiYXNl
LnNxbDogQWRkIG5ldyBjb2x1bW4gcmV2aXNpb25faWRlbnRpZmllci4KKyAgICAgICAgKiBwdWJs
aWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwOiBNYWtlIGFwaSB0aGF0IHdvcmtzIHdp
dGggcmV2aXNpb24gc2hvdWxkIHdvcmsgd2l0aCByZXZpc2lvbiBsYWJlbC4KKyAgICAgICAgKiBw
dWJsaWMvaW5jbHVkZS9jb21taXQtdXBkYXRlci5waHA6IERpdHRvLgorICAgICAgICAqIHB1Ymxp
Yy9pbmNsdWRlL3JlcG9ydC1wcm9jZXNzb3IucGhwOiBNYWtlIHRoZSBwcm9jZXNzb3IgY2FuIGFs
c28gaW5zZXJ0IHJldmlzaW9uIGxhYmVsLgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvY29t
bWl0LWxvZy5qczoKKyAgICAgICAgKENvbW1pdExvZy5wcm90b3R5cGUudXBkYXRlU2luZ2xldG9u
KToKKyAgICAgICAgKENvbW1pdExvZy5wcm90b3R5cGUucmV2aXNpb25JZGVudGlmaWVyKToKKyAg
ICAgICAgKENvbW1pdExvZy5wcm90b3R5cGUubGFiZWwpOiBNYWtlIHRoZSBsYWJlbCBpbmNsdWRl
IHJldmlzaW9uIGxhYmVsIGFuZCByZXZpc2lvbi4KKyAgICAgICAgKENvbW1pdExvZy5wcm90b3R5
cGUuZGlmZik6IE1ha2UgdGhlIGRpZmYgbGFiZWwgaW5jbHVkZSByZXZpc2lvbiBsYWJlbCBhbmQg
cmV2aXNpb24uCisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzOgor
ICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanM6CisgICAg
ICAgICogc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtdGVzdHMuanM6CisgICAgICAgIChyZXBvcnRX
aXRoUmV2aXNpb25JZGVudGlmaWVyQ29tbWl0KToKKyAgICAgICAgKiB1bml0LXRlc3RzL2NvbW1p
dC1sb2ctdGVzdHMuanM6CisKIDIwMjEtMDMtMjIgIERld2VpIFpodSAgPGRld2VpX3podUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW3BlcmYgZGFzaGJvYXJkXSBSZW1vdmUgdjEgYW5kIHYyIGNvZGUu
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21t
aXQtbG9nLXZpZXdlci10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9icm93c2Vy
LXRlc3RzL2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzCmluZGV4IGRiYzRjZmNkOWJjMjE0Yjcw
OGVlMTk4ZjFlYTY2NWYyMjQyMjg1NjAuLmY4NDg5ZTdjYWM0NGUyMzAyMGY3ZThmMmNlNjQ0N2E3
YTJjNDJmOGIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9icm93c2VyLXRl
c3RzL2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9icm93c2VyLXRlc3RzL2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzCkBAIC01NSw2ICs1
NSwxOSBAQCBkZXNjcmliZSgnQ29tbWl0TG9nVmlld2VyJywgKCkgPT4gewogICAgICAgICAibWVz
c2FnZSI6ICJhbm90aGVyIG1lc3NhZ2UiLAogICAgIH07CiAKKyAgICBjb25zdCB3ZWJraXRDb21t
aXQyMTA5NTBXaXRoUmV2aXNpb25JZGVudGlmaWVyID0geworICAgICAgICAiaWQiOiAiMTg1MzM4
IiwKKyAgICAgICAgInJldmlzaW9uIjogIjIxMDk1MCIsCisgICAgICAgICJyZXZpc2lvbklkZW50
aWZpZXIiOiAiMTg0Mjc4QG1haW4iLAorICAgICAgICAicmVwb3NpdG9yeSI6IDEsCisgICAgICAg
ICJwcmV2aW91c0NvbW1pdCI6IG51bGwsCisgICAgICAgICJvd25zQ29tbWl0cyI6IGZhbHNlLAor
ICAgICAgICAidGltZSI6ICtuZXcgRGF0ZSgiMjAxNy0wMS0yMFQwMzo0OTozNy44ODdaIiksCisg
ICAgICAgICJhdXRob3JOYW1lIjogIkNvbW1pdCBRdWV1ZSIsCisgICAgICAgICJhdXRob3JFbWFp
bCI6ICJjb21taXQtcXVldWVAd2Via2l0Lm9yZyIsCisgICAgICAgICJtZXNzYWdlIjogImFub3Ro
ZXIgbWVzc2FnZSIsCisgICAgfTsKKwogICAgIGl0KCdzaG91bGQgaW5pdGlhbGx5IGJlIGVtcHR5
IHdpdGggbm8gc3Bpbm5lcicsICgpID0+IHsKICAgICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBC
cm93c2luZ0NvbnRleHQoKTsKICAgICAgICAgcmV0dXJuIGltcG9ydENvbW1pdExvZ1ZpZXdlcihj
b250ZXh0KS50aGVuKChDb21taXRMb2dWaWV3ZXIpID0+IHsKQEAgLTEyOSw5ICsxNDIsOSBAQCBk
ZXNjcmliZSgnQ29tbWl0TG9nVmlld2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgICJzdGF0
dXMiOiAiT0siLAogICAgICAgICAgICAgICAgICJjb21taXRzIjogW3dlYmtpdENvbW1pdDIxMDk0
OF0sCiAgICAgICAgICAgICB9KTsKLQorICAgICAgICAgICAgYXdhaXQgcmVxdWVzdHNbMF0ucHJv
bWlzZTsKKyAgICAgICAgICAgIGF3YWl0IHJlcXVlc3RzWzFdLnByb21pc2U7CiAgICAgICAgICAg
ICBhd2FpdCB3YWl0Rm9yQ29tcG9uZW50c1RvUmVuZGVyKGNvbnRleHQpOwotCiAgICAgICAgICAg
ICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ3NwaW5uZXItY29udGFpbmVyJykub2Zmc2V0SGVpZ2h0
KS50by5iZSgwKTsKICAgICAgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnY29tbWl0cy1s
aXN0JykubWF0Y2hlcygnOmVtcHR5JykpLnRvLmJlKGZhbHNlKTsKICAgICAgICAgICAgIGV4cGVj
dCh2aWV3ZXIuY29udGVudCgnY29tbWl0cy1saXN0JykudGV4dENvbnRlbnQpLnRvLmNvbnRhaW4o
J3IyMTA5NDknKTsKQEAgLTE0NCw0ICsxNTcsNDcgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZ1ZpZXdl
cicsICgpID0+IHsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKKyAgICBpdCgnc2hvdWxkIHNob3cg
cmV2aXNpb24gbGFiZWwnLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGNvbnN0IGNvbnRleHQgPSBu
ZXcgQnJvd3NpbmdDb250ZXh0KCk7CisgICAgICAgIGNvbnN0IENvbW1pdExvZ1ZpZXdlciA9IGF3
YWl0IGltcG9ydENvbW1pdExvZ1ZpZXdlcihjb250ZXh0KTsKKyAgICAgICAgY29uc3QgUmVwb3Np
dG9yeSA9IGNvbnRleHQuc3ltYm9scy5SZXBvc2l0b3J5OworICAgICAgICBjb25zdCByZXF1ZXN0
cyA9IGNvbnRleHQuc3ltYm9scy5SZW1vdGVBUEkucmVxdWVzdHM7CisgICAgICAgIGNvbnN0IHZp
ZXdlciA9IG5ldyBDb21taXRMb2dWaWV3ZXI7CisgICAgICAgIGNvbnN0IHdlYmtpdCA9IG5ldyBS
ZXBvc2l0b3J5KDEsIHtuYW1lOiAnV2ViS2l0J30pOworICAgICAgICBjb250ZXh0LmRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQodmlld2VyLmVsZW1lbnQoKSk7CisKKyAgICAgICAgdmlld2VyLmVu
cXVldWVUb1JlbmRlcigpOworICAgICAgICBhd2FpdCB3YWl0Rm9yQ29tcG9uZW50c1RvUmVuZGVy
KGNvbnRleHQpOworCisgICAgICAgIHZpZXdlci52aWV3KHdlYmtpdCwgJzIxMDk0OCcsICcyMTA5
NTAnKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvckNvbXBvbmVudHNUb1JlbmRlcihjb250ZXh0KTsK
KyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdzcGlubmVyLWNvbnRhaW5lcicpLm9mZnNl
dEhlaWdodCkudG8ubm90LmJlKDApOworICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ2Nv
bW1pdHMtbGlzdCcpLm1hdGNoZXMoJzplbXB0eScpKS50by5iZSh0cnVlKTsKKyAgICAgICAgZXhw
ZWN0KHZpZXdlci5jb250ZW50KCdyZXBvc2l0b3J5LW5hbWUnKS5tYXRjaGVzKCc6ZW1wdHknKSku
dG8uYmUoZmFsc2UpOworICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ3JlcG9zaXRvcnkt
bmFtZScpLnRleHRDb250ZW50KS50by5jb250YWluKCdXZWJLaXQnKTsKKyAgICAgICAgZXhwZWN0
KHJlcXVlc3RzLmxlbmd0aCkudG8uYmUoMik7CisgICAgICAgIGV4cGVjdChyZXF1ZXN0c1swXS51
cmwpLnRvLmJlKCcvYXBpL2NvbW1pdHMvMS8/cHJlY2VkaW5nUmV2aXNpb249MjEwOTQ4Jmxhc3RS
ZXZpc2lvbj0yMTA5NTAnKTsKKyAgICAgICAgZXhwZWN0KHJlcXVlc3RzWzFdLnVybCkudG8uYmUo
Jy9hcGkvY29tbWl0cy8xLzIxMDk0OCcpOworICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKHsK
KyAgICAgICAgICAgICJzdGF0dXMiOiAiT0siLAorICAgICAgICAgICAgImNvbW1pdHMiOiBbd2Vi
a2l0Q29tbWl0MjEwOTQ5LCB3ZWJraXRDb21taXQyMTA5NTBXaXRoUmV2aXNpb25JZGVudGlmaWVy
XSwKKyAgICAgICAgfSk7CisKKyAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2ZSh7CisgICAgICAg
ICAgICAic3RhdHVzIjogIk9LIiwKKyAgICAgICAgICAgICJjb21taXRzIjogW3dlYmtpdENvbW1p
dDIxMDk0OF0sCisgICAgICAgIH0pOworCisgICAgICAgIGF3YWl0IHJlcXVlc3RzWzBdLnByb21p
c2U7CisgICAgICAgIGF3YWl0IHJlcXVlc3RzWzFdLnByb21pc2U7CisgICAgICAgIGF3YWl0IHdh
aXRGb3JDb21wb25lbnRzVG9SZW5kZXIoY29udGV4dCk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIu
Y29udGVudCgnc3Bpbm5lci1jb250YWluZXInKS5vZmZzZXRIZWlnaHQpLnRvLmJlKDApOworICAg
ICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLm1hdGNoZXMoJzplbXB0
eScpKS50by5iZShmYWxzZSk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnY29tbWl0
cy1saXN0JykudGV4dENvbnRlbnQpLnRvLmNvbnRhaW4oJzE4NDI3OEBtYWluIChyMjEwOTUwKScp
OworICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLnRleHRDb250
ZW50KS50by5jb250YWluKCdDb21taXQgUXVldWUnKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5j
b250ZW50KCdyZXBvc2l0b3J5LW5hbWUnKS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUoZmFsc2Up
OworICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ3JlcG9zaXRvcnktbmFtZScpLnRleHRD
b250ZW50KS50by5jb250YWluKCdXZWJLaXQnKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250
ZW50KCdjb21taXRzLWxpc3QnKS5xdWVyeVNlbGVjdG9yKCdhJykpLnRvLmJlKG51bGwpOworICAg
IH0pOworCiB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRh
dGFiYXNlLnNxbCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbApp
bmRleCA2MDU0OTkwMzg4NTFjZDdjYWMyNjBhMjA3NTJkNGJkYzM2YzhhMjQxLi5mNjhiNWYwYzAz
M2EyMjY0MzA3YzJmODNmM2Q0ZmI3NGJkYjE1M2VkIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL2luaXQtZGF0YWJhc2Uuc3FsCkBAIC0xMDIsNiArMTAyLDcgQEAgQ1JFQVRFIFRBQkxFIGNv
bW1pdHMgKAogICAgIGNvbW1pdF9pZCBzZXJpYWwgUFJJTUFSWSBLRVksCiAgICAgY29tbWl0X3Jl
cG9zaXRvcnkgaW50ZWdlciBOT1QgTlVMTCBSRUZFUkVOQ0VTIHJlcG9zaXRvcmllcyBPTiBERUxF
VEUgQ0FTQ0FERSwKICAgICBjb21taXRfcmV2aXNpb24gdmFyY2hhcig2NCkgTk9UIE5VTEwsCisg
ICAgY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXIgdmFyY2hhcig2NCkgREVGQVVMVCBOVUxMLAog
ICAgIGNvbW1pdF9wcmV2aW91c19jb21taXQgaW50ZWdlciBSRUZFUkVOQ0VTIGNvbW1pdHMgT04g
REVMRVRFIENBU0NBREUsCiAgICAgY29tbWl0X3RpbWUgdGltZXN0YW1wLAogICAgIGNvbW1pdF9v
cmRlciBpbnRlZ2VyLApAQCAtMTA5LDcgKzExMCw4IEBAIENSRUFURSBUQUJMRSBjb21taXRzICgK
ICAgICBjb21taXRfbWVzc2FnZSB0ZXh0LAogICAgIGNvbW1pdF9yZXBvcnRlZCBib29sZWFuIE5P
VCBOVUxMIERFRkFVTFQgRkFMU0UsCiAgICAgY29tbWl0X3Rlc3RhYmlsaXR5IHZhcmNoYXIoMTI4
KSBERUZBVUxUIE5VTEwsCi0gICAgQ09OU1RSQUlOVCBjb21taXRfaW5fcmVwb3NpdG9yeV9tdXN0
X2JlX3VuaXF1ZSBVTklRVUUoY29tbWl0X3JlcG9zaXRvcnksIGNvbW1pdF9yZXZpc2lvbikpOwor
ICAgIENPTlNUUkFJTlQgY29tbWl0X2luX3JlcG9zaXRvcnlfbXVzdF9iZV91bmlxdWUgVU5JUVVF
KGNvbW1pdF9yZXBvc2l0b3J5LCBjb21taXRfcmV2aXNpb24pLAorICAgIENPTlNUUkFJTlQgY29t
bWl0X3N0cmluZ19pZGVudGlmaWVyX2luX3JlcG9zaXRvcnlfbXVzdF9iZV91bmlxdWUgVU5JUVVF
KGNvbW1pdF9yZXBvc2l0b3J5LCBjb21taXRfcmV2aXNpb25faWRlbnRpZmllcikpOwogQ1JFQVRF
IElOREVYIGNvbW1pdF90aW1lX2luZGV4IE9OIGNvbW1pdHMoY29tbWl0X3RpbWUpOwogQ1JFQVRF
IElOREVYIGNvbW1pdF9vcmRlcl9pbmRleCBPTiBjb21taXRzKGNvbW1pdF9vcmRlcik7CiAKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbCBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbAppbmRleCA5ZTYx
MzM2MDQxMTdhNzEyMzJhZWQ2ODNlNTcxNDk4NDRhYTExMjhkLi4wZWE5MTMzZGE2ZWRlMzI1ZGRm
NmMyMWQ4YjkzN2ZiNzM1NjQyNTlhIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvbWlncmF0ZS1kYXRhYmFzZS5zcWwKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL21p
Z3JhdGUtZGF0YWJhc2Uuc3FsCkBAIC0yLDYgKzIsMTAgQEAgRE8gJCQKIAogQkVHSU4KIEFMVEVS
IFRBQkxFIGJ1aWxkX3JlcXVlc3RzIEFERCBDT0xVTU4gSUYgTk9UIEVYSVNUUyByZXF1ZXN0X3N0
YXR1c19kZXNjcmlwdGlvbiB2YXJjaGFyKDEwMjQpIERFRkFVTFQgTlVMTDsKK0FMVEVSIFRBQkxF
IHBsYXRmb3JtcyBBREQgQ09MVU1OICBJRiBOT1QgRVhJU1RTIHBsYXRmb3JtX2dyb3VwIGludGVn
ZXIgUkVGRVJFTkNFUyBwbGF0Zm9ybV9ncm91cHMgREVGQVVMVCBOVUxMOworQUxURVIgVEFCTEUg
Y29tbWl0cyBBREQgQ09MVU1OIElGIE5PVCBFWElTVFMgY29tbWl0X3JldmlzaW9uX2lkZW50aWZp
ZXIgdmFyY2hhcig2NCkgREVGQVVMVCBOVUxMOworQUxURVIgVEFCTEUgY29tbWl0cyBEUk9QIENP
TlNUUkFJTlQgY29tbWl0X3N0cmluZ19pZGVudGlmaWVyX2luX3JlcG9zaXRvcnlfbXVzdF9iZV91
bmlxdWU7CitBTFRFUiBUQUJMRSBjb21taXRzIEFERCBDT05TVFJBSU5UIGNvbW1pdF9zdHJpbmdf
aWRlbnRpZmllcl9pbl9yZXBvc2l0b3J5X211c3RfYmVfdW5pcXVlIFVOSVFVRShjb21taXRfcmVw
b3NpdG9yeSwgY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXIpOwogCiBDUkVBVEUgVEFCTEUgSUYg
Tk9UIEVYSVNUUyBwbGF0Zm9ybV9ncm91cHMgKAogICAgIHBsYXRmb3JtZ3JvdXBfaWQgc2VyaWFs
IFBSSU1BUlkgS0VZLApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL2luY2x1ZGUvY29tbWl0LWxvZy1mZXRjaGVyLnBocAppbmRleCA2ZTBiZWNkMGJj
ODE2NGMwNDJmZDNmYjJmMzk5OGM0MTU0ZmViMGUxLi41MDU4ZjcxM2VhYjlkMDk4ZGQwOGM1ZTFl
YTEyYmRmYmZlNzMyYTU2IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL2luY2x1ZGUvY29tbWl0LWxvZy1mZXRjaGVyLnBocAorKysgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LWxvZy1mZXRjaGVyLnBocApAQCAtOCwxNCAr
OCwxNiBAQCBjbGFzcyBDb21taXRMb2dGZXRjaGVyIHsKIAogICAgIHN0YXRpYyBmdW5jdGlvbiBm
aW5kX2NvbW1pdF9pZF9ieV9yZXZpc2lvbigkZGIsICRyZXBvc2l0b3J5X2lkLCAkcmV2aXNpb24p
CiAgICAgewotICAgICAgICAkY29tbWl0X3Jvd3MgPSAkZGItPnF1ZXJ5X2FuZF9mZXRjaF9hbGwo
J1NFTEVDVCBjb21taXRfaWQgRlJPTSBjb21taXRzIFdIRVJFIGNvbW1pdF9yZXBvc2l0b3J5ID0g
JDEgQU5EIGNvbW1pdF9yZXZpc2lvbiA9ICQyJywgYXJyYXkoJHJlcG9zaXRvcnlfaWQsICRyZXZp
c2lvbikpOworICAgICAgICAkY29sdW1uX25hbWUgPSBDb21taXRMb2dGZXRjaGVyOjppc19jb21t
aXRfcmV2aXNpb25faWRlbnRpZmllcigkcmV2aXNpb24pID8gJ2NvbW1pdF9yZXZpc2lvbl9pZGVu
dGlmaWVyJyA6ICdjb21taXRfcmV2aXNpb24nOworICAgICAgICAKKyAgICAgICAgJGNvbW1pdF9y
b3dzID0gJGRiLT5xdWVyeV9hbmRfZmV0Y2hfYWxsKCJTRUxFQ1QgY29tbWl0X2lkIEZST00gY29t
bWl0cyBXSEVSRSBjb21taXRfcmVwb3NpdG9yeSA9ICQxIEFORCAkY29sdW1uX25hbWUgPSAkMiIs
IGFycmF5KCRyZXBvc2l0b3J5X2lkLCAkcmV2aXNpb24pKTsKICAgICAgICAgaWYgKCRjb21taXRf
cm93cykKICAgICAgICAgICAgIHJldHVybiAkY29tbWl0X3Jvd3NbMF1bJ2NvbW1pdF9pZCddOwog
CiAgICAgICAgIGlmICghY3R5cGVfYWxudW0oJHJldmlzaW9uKSkKICAgICAgICAgICAgIHJldHVy
biBOVUxMOwogCi0gICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNoX2Fs
bCgnU0VMRUNUIGNvbW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkg
PSAkMSBBTkQgY29tbWl0X3JldmlzaW9uIExJS0UgJDIgTElNSVQgMicsIGFycmF5KCRyZXBvc2l0
b3J5X2lkLCBEYXRhYmFzZTo6ZXNjYXBlX2Zvcl9saWtlKCRyZXZpc2lvbikgLiAnJScpKTsKKyAg
ICAgICAgJGNvbW1pdF9yb3dzID0gJGRiLT5xdWVyeV9hbmRfZmV0Y2hfYWxsKCJTRUxFQ1QgY29t
bWl0X2lkIEZST00gY29tbWl0cyBXSEVSRSBjb21taXRfcmVwb3NpdG9yeSA9ICQxIEFORCAkY29s
dW1uX25hbWUgIExJS0UgJDIgTElNSVQgMiIsIGFycmF5KCRyZXBvc2l0b3J5X2lkLCBEYXRhYmFz
ZTo6ZXNjYXBlX2Zvcl9saWtlKCRyZXZpc2lvbikgLiAnJScpKTsKICAgICAgICAgaWYgKCEkY29t
bWl0X3Jvd3MpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgaWYgKGNvdW50KCRj
b21taXRfcm93cykgPiAxKQpAQCAtNTUsNiArNTcsNyBAQCBjbGFzcyBDb21taXRMb2dGZXRjaGVy
IHsKICAgICB7CiAgICAgICAgICRzdGF0ZW1lbnRzID0gJ1NFTEVDVCBjb21taXRfaWQgYXMgImlk
IiwKICAgICAgICAgICAgIGNvbW1pdF9yZXZpc2lvbiBhcyAicmV2aXNpb24iLAorICAgICAgICAg
ICAgY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXIgYXMgInJldmlzaW9uSWRlbnRpZmllciIsCiAg
ICAgICAgICAgICBjb21taXRfcHJldmlvdXNfY29tbWl0IGFzICJwcmV2aW91c0NvbW1pdCIsCiAg
ICAgICAgICAgICBjb21taXRfdGltZSBhcyAidGltZSIsCiAgICAgICAgICAgICBjb21taXR0ZXJf
bmFtZSBhcyAiYXV0aG9yTmFtZSIsCkBAIC0xOTIsOCArMTk1LDE0IEBAIGNsYXNzIENvbW1pdExv
Z0ZldGNoZXIgewogICAgICAgICByZXR1cm4gJHRoaXMtPmZvcm1hdF9zaW5nbGVfY29tbWl0KCRj
b21taXQpOwogICAgIH0KIAorICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGlzX2NvbW1pdF9y
ZXZpc2lvbl9pZGVudGlmaWVyKCRjb21taXRfcmV2aXNpb25fb3JfcmV2aXNpb25faWRlbnRpZmll
cikgCisgICAgeworICAgICAgICByZXR1cm4gcHJlZ19tYXRjaCgnL15cZCtAW1x3XC5cLV0qJC8n
LCAkY29tbWl0X3JldmlzaW9uX29yX3JldmlzaW9uX2lkZW50aWZpZXIpOworICAgIH0KKwogICAg
IHByaXZhdGUgZnVuY3Rpb24gY29tbWl0X2Zvcl9yZXZpc2lvbigkcmVwb3NpdG9yeV9pZCwgJHJl
dmlzaW9uKSB7Ci0gICAgICAgICRjb21taXRfaW5mbyA9IGFycmF5KCdyZXBvc2l0b3J5JyA9PiAk
cmVwb3NpdG9yeV9pZCwgJ3JldmlzaW9uJyA9PiAkcmV2aXNpb24pOworICAgICAgICAkY29tbWl0
X2luZm8gPSBhcnJheSgncmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlfaWQpOyAKKyAgICAgICAg
JGNvbW1pdF9pbmZvWyR0aGlzLT5pc19jb21taXRfcmV2aXNpb25faWRlbnRpZmllcigkcmV2aXNp
b24pID8gJ3JldmlzaW9uX2lkZW50aWZpZXInIDogJ3JldmlzaW9uJ10gPSAkcmV2aXNpb247CiAg
ICAgICAgICRyb3cgPSAkdGhpcy0+ZGItPnNlbGVjdF9sYXN0X3JvdygnY29tbWl0cycsICdjb21t
aXQnLCAkY29tbWl0X2luZm8pOwogICAgICAgICBpZiAoISRyb3cpCiAgICAgICAgICAgICBleGl0
X3dpdGhfZXJyb3IoJ1Vua25vd25Db21taXQnLCAkY29tbWl0X2luZm8pOwpAQCAtMjAxLDcgKzIx
MCw4IEBAIGNsYXNzIENvbW1pdExvZ0ZldGNoZXIgewogICAgIH0KIAogICAgIHByaXZhdGUgZnVu
Y3Rpb24gY29tbWl0X2Zvcl9yZXZpc2lvbl9wcmVmaXgoJHJlcG9zaXRvcnlfaWQsICRyZXZpc2lv
bl9wcmVmaXgpIHsKLSAgICAgICAgJHJvd3MgPSAkdGhpcy0+ZGItPnF1ZXJ5X2FuZF9mZXRjaF9h
bGwoJ1NFTEVDVCAqIEZST00gY29tbWl0cyBXSEVSRSBjb21taXRfcmVwb3NpdG9yeSA9ICQxIEFO
RCBjb21taXRfcmV2aXNpb24gTElLRSAkMiBPUkRFUiBCWSBjb21taXRfcmV2aXNpb24gTElNSVQg
MicsIGFycmF5KCRyZXBvc2l0b3J5X2lkLCBEYXRhYmFzZTo6ZXNjYXBlX2Zvcl9saWtlKCRyZXZp
c2lvbl9wcmVmaXgpIC4gJyUnKSk7CisgICAgICAgICRjb2x1bW5fbmFtZSA9ICR0aGlzLT5pc19j
b21taXRfcmV2aXNpb25faWRlbnRpZmllcigkcmV2aXNpb25fcHJlZml4KSA/ICdyZXZpc2lvbl9p
ZGVudGlmaWVyJyA6ICdyZXZpc2lvbic7CisgICAgICAgICRyb3dzID0gJHRoaXMtPmRiLT5xdWVy
eV9hbmRfZmV0Y2hfYWxsKCJTRUxFQ1QgKiBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9z
aXRvcnkgPSAkMSBBTkQgY29tbWl0XyRjb2x1bW5fbmFtZSBMSUtFICQyIE9SREVSIEJZIGNvbW1p
dF8kY29sdW1uX25hbWUgTElNSVQgMiIsIGFycmF5KCRyZXBvc2l0b3J5X2lkLCBEYXRhYmFzZTo6
ZXNjYXBlX2Zvcl9saWtlKCRyZXZpc2lvbl9wcmVmaXgpIC4gJyUnKSk7CiAgICAgICAgIGlmIChj
b3VudCgkcm93cykgPT0gMCkKICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignVW5rbm93bkNv
bW1pdCcsIGFycmF5KCdyZXBvc2l0b3J5JyA9PiAkcmVwb3NpdG9yeV9pZCwgJ3JldmlzaW9uJyA9
PiAkcmV2aXNpb25fcHJlZml4KSk7CiAgICAgICAgIGlmIChjb3VudCgkcm93cykgPT0gMikgewpA
QCAtMjI0LDYgKzIzNCw3IEBAIGNsYXNzIENvbW1pdExvZ0ZldGNoZXIgewogICAgICAgICByZXR1
cm4gYXJyYXkoCiAgICAgICAgICAgICAnaWQnID0+ICRjb21taXRfcm93Wydjb21taXRfaWQnXSwK
ICAgICAgICAgICAgICdyZXZpc2lvbicgPT4gJGNvbW1pdF9yb3dbJ2NvbW1pdF9yZXZpc2lvbidd
LAorICAgICAgICAgICAgJ3JldmlzaW9uSWRlbnRpZmllcicgPT4gJGNvbW1pdF9yb3dbJ2NvbW1p
dF9yZXZpc2lvbl9pZGVudGlmaWVyJ10sCiAgICAgICAgICAgICAncmVwb3NpdG9yeScgPT4gJGNv
bW1pdF9yb3dbJ2NvbW1pdF9yZXBvc2l0b3J5J10sCiAgICAgICAgICAgICAncHJldmlvdXNDb21t
aXQnID0+ICRjb21taXRfcm93Wydjb21taXRfcHJldmlvdXNfY29tbWl0J10sCiAgICAgICAgICAg
ICAndGltZScgPT4gRGF0YWJhc2U6OnRvX2pzX3RpbWUoJGNvbW1pdF9yb3dbJ2NvbW1pdF90aW1l
J10pLApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRl
L2NvbW1pdC11cGRhdGVyLnBocCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5j
bHVkZS9jb21taXQtdXBkYXRlci5waHAKaW5kZXggMDhjNjhiYmU2NDEwYWZmMDZkYjg3NTQ5OTJh
NDhjOTM3ZTcwZTMyZi4uNDMyMjBkMzE5MzIyMDdlYzgyMjhlMjIzZjY0Mjg2ZDNiYzBiODA2YyAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1p
dC11cGRhdGVyLnBocAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1
ZGUvY29tbWl0LXVwZGF0ZXIucGhwCkBAIC0zMCw3ICszMCw2IEBAIGNsYXNzIENvbW1pdFVwZGF0
ZXIgewogICAgIHByaXZhdGUgZnVuY3Rpb24gdXBkYXRlX2NvbW1pdCgmJHVwZGF0ZSwgJG93bmVy
X2NvbW1pdF9pZCwgJG93bmVyX3JlcG9zaXRvcnlfaWQsICRzaG91bGRfaW5zZXJ0KQogICAgIHsK
ICAgICAgICAgJGNvbW1pdF9kYXRhID0gJiR0aGlzLT5yZXNvbHZlX2ZpZWxkc19mcm9tX2RhdGFi
YXNlKCR1cGRhdGUsICRvd25lcl9yZXBvc2l0b3J5X2lkLCAkc2hvdWxkX2luc2VydCk7Ci0KICAg
ICAgICAgJGNvbW1pdF9zZWxlY3RfcXVlcnkgPSBhcnJheSgncmVwb3NpdG9yeScgPT4gJGNvbW1p
dF9kYXRhWydyZXBvc2l0b3J5J10sICdyZXZpc2lvbicgPT4gJGNvbW1pdF9kYXRhWydyZXZpc2lv
biddKTsKICAgICAgICAgaWYgKCRzaG91bGRfaW5zZXJ0KSB7CiAgICAgICAgICAgICAkY29tbWl0
X2lkID0gJHRoaXMtPmRiLT51cGRhdGVfb3JfaW5zZXJ0X3JvdygnY29tbWl0cycsICdjb21taXQn
LCAkY29tbWl0X3NlbGVjdF9xdWVyeSwgJGNvbW1pdF9kYXRhKTsKQEAgLTc0LDYgKzczLDcgQEAg
Y2xhc3MgQ29tbWl0VXBkYXRlciB7CiAgICAgcHJpdmF0ZSBmdW5jdGlvbiAmY29uc3RydWN0X3Vw
ZGF0ZV9saXN0KCYkY29tbWl0X2luZm9fbGlzdCwgJHNob3VsZF9pbnNlcnQpCiAgICAgewogICAg
ICAgICAkdXBkYXRlX2xpc3QgPSBhcnJheSgpOworICAgICAgICAkY29tbWl0X3JldmlzaW9uX2lk
ZW50aWZpZXJzID0gYXJyYXkoKTsKIAogICAgICAgICBmb3JlYWNoICgkY29tbWl0X2luZm9fbGlz
dCBhcyAmJGNvbW1pdF9pbmZvKSB7CiAgICAgICAgICAgICBzZWxmOjp2YWxpZGF0ZV9jb21taXRz
KCRjb21taXRfaW5mbyk7CkBAIC04MSw2ICs4MSwxMSBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsK
ICAgICAgICAgICAgICRoYXNfdXBkYXRlID0gY291bnQoJGNvbW1pdF9kYXRhKSA+IDE7CiAKICAg
ICAgICAgICAgICR1cGRhdGUgPSBhcnJheSgnY29tbWl0JyA9PiAmJGNvbW1pdF9kYXRhLCAncmVw
b3NpdG9yeScgPT4gJiRjb21taXRfaW5mb1sncmVwb3NpdG9yeSddKTsKKyAgICAgICAgICAgIGlm
IChhcnJheV9rZXlfZXhpc3RzKCdyZXZpc2lvbklkZW50aWZpZXInLCAkY29tbWl0X2luZm8pKSB7
CisgICAgICAgICAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJGNvbW1pdF9pbmZvWydyZXZp
c2lvbklkZW50aWZpZXInXSwgJGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVycykpCisgICAgICAg
ICAgICAgICAgICAgICR0aGlzLT5leGl0X3dpdGhfZXJyb3IoJ0R1cGxpY2F0ZWRSZXZpc2lvbklk
ZW50aWZpZXInLCBhcnJheSgnY29tbWl0JyA9PiAkY29tbWl0X2luZm8pKTsKKyAgICAgICAgICAg
ICAgICAkY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXJzWyRjb21taXRfaW5mb1sncmV2aXNpb25J
ZGVudGlmaWVyJ11dID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChhcnJh
eV9rZXlfZXhpc3RzKCdwcmV2aW91c0NvbW1pdCcsICRjb21taXRfaW5mbykpIHsKICAgICAgICAg
ICAgICAgICAkaGFzX3VwZGF0ZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgJHVwZGF0ZVsncHJl
dmlvdXNfY29tbWl0J10gPSAmJGNvbW1pdF9pbmZvWydwcmV2aW91c0NvbW1pdCddOwpAQCAtMTA0
LDYgKzEwOSw3IEBAIGNsYXNzIENvbW1pdFVwZGF0ZXIgewogCiAgICAgICAgICAgICAkb3duZWRf
Y29tbWl0X3VwZGF0ZV9saXN0ID0gYXJyYXkoKTsKICAgICAgICAgICAgIGZvcmVhY2goJGNvbW1p
dF9pbmZvWydvd25lZENvbW1pdHMnXSBhcyAkb3duZWRfcmVwb3NpdG9yeV9uYW1lID0+ICYkb3du
ZWRfY29tbWl0X2luZm8pIHsKKyAgICAgICAgICAgICAgICBzZWxmOjp2YWxpZGF0ZV9jb21taXRz
KCRvd25lZF9jb21taXRfaW5mbywgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgJG93bmVkX2NvbW1p
dCA9ICZzZWxmOjpjb25zdHJ1Y3RfY29tbWl0X2RhdGEoJG93bmVkX2NvbW1pdF9pbmZvLCAkb3du
ZWRfcmVwb3NpdG9yeV9uYW1lLCAkc2hvdWxkX2luc2VydCk7CiAgICAgICAgICAgICAgICAgJG93
bmVkX2NvbW1pdF91cGRhdGUgPSBhcnJheSgnY29tbWl0JyA9PiAmJG93bmVkX2NvbW1pdCwgJ3Jl
cG9zaXRvcnknID0+ICRvd25lZF9yZXBvc2l0b3J5X25hbWUpOwogCkBAIC0xNDMsMTUgKzE0OSwx
OCBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsKICAgICAgICAgICAgICRjb21taXRfZGF0YVsndGlt
ZSddID0gJGNvbW1pdF9pbmZvWyd0aW1lJ107CiAgICAgICAgIH0KIAorICAgICAgICBpZiAoYXJy
YXlfa2V5X2V4aXN0cygncmV2aXNpb25JZGVudGlmaWVyJywgJGNvbW1pdF9pbmZvKSkKKyAgICAg
ICAgICAgICRjb21taXRfZGF0YVsncmV2aXNpb25faWRlbnRpZmllciddID0gJGNvbW1pdF9pbmZv
WydyZXZpc2lvbklkZW50aWZpZXInXTsKKwogICAgICAgICBpZiAoJHNob3VsZF9pbnNlcnQpCiAg
ICAgICAgICAgICAkY29tbWl0X2RhdGFbJ3JlcG9ydGVkJ10gPSB0cnVlOwogCiAgICAgICAgIHJl
dHVybiAkY29tbWl0X2RhdGE7CiAgICAgfQogCi0gICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24g
dmFsaWRhdGVfY29tbWl0cygmJGNvbW1pdF9pbmZvKQorICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0
aW9uIHZhbGlkYXRlX2NvbW1pdHMoJiRjb21taXRfaW5mbywgJGlzX293bl9jb21taXQgPSBmYWxz
ZSkKICAgICB7Ci0gICAgICAgIGlmICghYXJyYXlfa2V5X2V4aXN0cygncmVwb3NpdG9yeScsICRj
b21taXRfaW5mbykpCisgICAgICAgIGlmICghYXJyYXlfa2V5X2V4aXN0cygncmVwb3NpdG9yeScs
ICRjb21taXRfaW5mbykgJiYgISRpc19vd25fY29tbWl0KQogICAgICAgICAgICAgZXhpdF93aXRo
X2Vycm9yKCdNaXNzaW5nUmVwb3NpdG9yeU5hbWUnLCBhcnJheSgnY29tbWl0JyA9PiAkY29tbWl0
X2luZm8pKTsKICAgICAgICAgaWYgKCFhcnJheV9rZXlfZXhpc3RzKCdyZXZpc2lvbicsICRjb21t
aXRfaW5mbykpCiAgICAgICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ01pc3NpbmdSZXZpc2lvbics
IGFycmF5KCdjb21taXQnID0+ICRjb21taXRfaW5mbykpOwpAQCAtMTYwLDYgKzE2OSw4IEBAIGNs
YXNzIENvbW1pdFVwZGF0ZXIgewogICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdJbnZhbGlk
QXV0aG9yRm9ybWF0JywgYXJyYXkoJ2NvbW1pdCcgPT4gJGNvbW1pdF9pbmZvKSk7CiAgICAgICAg
IGlmIChhcnJheV9rZXlfZXhpc3RzKCdwcmV2aW91c0NvbW1pdCcsICRjb21taXRfaW5mbykpCiAg
ICAgICAgICAgICByZXF1aXJlX2Zvcm1hdCgnUmV2aXNpb24nLCAkY29tbWl0X2luZm9bJ3ByZXZp
b3VzQ29tbWl0J10sICcvXltBLVphLXowLTkgXC5dKyQvJyk7CisgICAgICAgIGlmIChhcnJheV9r
ZXlfZXhpc3RzKCdyZXZpc2lvbklkZW50aWZpZXInLCAkY29tbWl0X2luZm8pKQorICAgICAgICAg
ICAgcmVxdWlyZV9mb3JtYXQoJ1JldmlzaW9uSWRlbnRpZmllcicsICRjb21taXRfaW5mb1sncmV2
aXNpb25JZGVudGlmaWVyJ10sICcvXlxkK0BbXHdcLlwtXSskLycpOwogICAgIH0KIAogICAgIHBy
aXZhdGUgZnVuY3Rpb24gcmVzb2x2ZV9yZXBvc2l0b3J5KCRyZXBvc2l0b3J5X25hbWUsICRvd25l
cl9yZXBvc2l0b3J5X2lkLCAkc2hvdWxkX2luc2VydCkKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9yZXBvcnQtcHJvY2Vzc29yLnBocCBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9yZXBvcnQtcHJvY2Vzc29yLnBocApp
bmRleCA3Y2Q3ZWE0MGQ4NjM1NmRlMzk4Y2M5ZjZjMjlmZWE4ZGE5YmMwMDI2Li4yMjk1YTA3OTcx
YzlmN2IzNmQwNzljMzc3ZTAzNDQwNTFlNDRjYzViIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3J0LXByb2Nlc3Nvci5waHAKKysrIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL3JlcG9ydC1wcm9jZXNzb3IucGhw
CkBAIC0xNjIsMTQgKzE2MiwxNiBAQCBjbGFzcyBSZXBvcnRQcm9jZXNzb3IgewogICAgICAgICAg
ICAgICAgICR0aGlzLT5yb2xsYmFja193aXRoX2Vycm9yKCdGYWlsZWRUb1VwZGF0ZUJ1aWxkUmVx
dWVzdCcsIGFycmF5KCdidWlsZFJlcXVlc3QnID0+ICRidWlsZF9yZXF1ZXN0X2lkLCAnYnVpbGQn
ID0+ICRidWlsZF9pZCkpOwogICAgICAgICB9CiAKLQogICAgICAgICBmb3JlYWNoICgkcmV2aXNp
b25zIGFzICRyZXBvc2l0b3J5X25hbWUgPT4gJHJldmlzaW9uX2RhdGEpIHsKICAgICAgICAgICAg
ICRyZXBvc2l0b3J5X2lkID0gJHRoaXMtPmRiLT5zZWxlY3Rfb3JfaW5zZXJ0X3JvdygncmVwb3Np
dG9yaWVzJywgJ3JlcG9zaXRvcnknLCBhcnJheSgnbmFtZScgPT4gJHJlcG9zaXRvcnlfbmFtZSwg
J293bmVyJyA9PiBOVUxMKSk7CiAgICAgICAgICAgICBpZiAoISRyZXBvc2l0b3J5X2lkKQogICAg
ICAgICAgICAgICAgICR0aGlzLT5yb2xsYmFja193aXRoX2Vycm9yKCdGYWlsZWRUb0luc2VydFJl
cG9zaXRvcnknLCBhcnJheSgnbmFtZScgPT4gJHJlcG9zaXRvcnlfbmFtZSkpOwogCi0gICAgICAg
ICAgICAkY29tbWl0X2RhdGEgPSBhcnJheSgncmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlfaWQs
ICdyZXZpc2lvbicgPT4gJHJldmlzaW9uX2RhdGFbJ3JldmlzaW9uJ10sICd0aW1lJyA9PiBhcnJh
eV9nZXQoJHJldmlzaW9uX2RhdGEsICd0aW1lc3RhbXAnKSk7Ci0KKyAgICAgICAgICAgICRjb21t
aXRfZGF0YSA9IGFycmF5KAorICAgICAgICAgICAgICAgICdyZXBvc2l0b3J5JyA9PiAkcmVwb3Np
dG9yeV9pZCwgCisgICAgICAgICAgICAgICAgJ3JldmlzaW9uJyA9PiAkcmV2aXNpb25fZGF0YVsn
cmV2aXNpb24nXSwgCisgICAgICAgICAgICAgICAgJ3RpbWUnID0+IGFycmF5X2dldCgkcmV2aXNp
b25fZGF0YSwgJ3RpbWVzdGFtcCcpLCAKKyAgICAgICAgICAgICAgICAncmV2aXNpb25faWRlbnRp
ZmllcicgPT4gYXJyYXlfZ2V0KCRyZXZpc2lvbl9kYXRhLCAncmV2aXNpb25JZGVudGlmaWVyJywg
bnVsbCkpOwogICAgICAgICAgICAgJG1pc21hdGNoaW5nX2NvbW1pdCA9ICR0aGlzLT5kYi0+cXVl
cnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUICogRlJPTSBidWlsZF9jb21taXRzLCBjb21taXRzCiAg
ICAgICAgICAgICAgICAgV0hFUkUgYnVpbGRfY29tbWl0ID0gY29tbWl0X2lkIEFORCBjb21taXRf
YnVpbGQgPSAkMSBBTkQgY29tbWl0X3JlcG9zaXRvcnkgPSAkMiBBTkQgY29tbWl0X3JldmlzaW9u
ICE9ICQzIExJTUlUIDEnLAogICAgICAgICAgICAgICAgIGFycmF5KCRidWlsZF9pZCwgJHJlcG9z
aXRvcnlfaWQsICRyZXZpc2lvbl9kYXRhWydyZXZpc2lvbiddKSk7CmRpZmYgLS1naXQgYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9nLmpzIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qcwppbmRl
eCBlNmQ0ZDQ0YWJiNTU0MTM0NmUyZjRhOWQ0NDAwOWY3OWE3ODI5MDBiLi5kMzM3YjFkMTJjMmY0
MDdhNmIzYzJkMGY5YzVlMWRiYjQ2ZWE4MDY3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9nLmpzCisrKyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1sb2cuanMKQEAgLTIwLDYgKzIw
LDcgQEAgY2xhc3MgQ29tbWl0TG9nIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKIAogICAgICAg
ICBjb25zb2xlLmFzc2VydCgrdGhpcy5fcmF3RGF0YVsndGltZSddID09ICtyYXdEYXRhWyd0aW1l
J10pOwogICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9yYXdEYXRhWydyZXZpc2lvbiddID09
IHJhd0RhdGFbJ3JldmlzaW9uJ10pOworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9yYXdE
YXRhWydyZXZpc2lvbklkZW50aWZpZXInXSA9PSByYXdEYXRhWydyZXZpc2lvbklkZW50aWZpZXIn
XSk7CiAKICAgICAgICAgaWYgKHJhd0RhdGEuYXV0aG9yTmFtZSkKICAgICAgICAgICAgIHRoaXMu
X3Jhd0RhdGEuYXV0aG9yTmFtZSA9IHJhd0RhdGEuYXV0aG9yTmFtZTsKQEAgLTM5LDYgKzQwLDcg
QEAgY2xhc3MgQ29tbWl0TG9nIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKICAgICB0ZXN0YWJp
bGl0eSgpIHsgcmV0dXJuIHRoaXMuX3Jhd0RhdGFbJ3Rlc3RhYmlsaXR5J107IH0KICAgICBhdXRo
b3IoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydhdXRob3JOYW1lJ107IH0KICAgICByZXZpc2lv
bigpIHsgcmV0dXJuIHRoaXMuX3Jhd0RhdGFbJ3JldmlzaW9uJ107IH0KKyAgICByZXZpc2lvbklk
ZW50aWZpZXIoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydyZXZpc2lvbklkZW50aWZpZXInXTsg
fQogICAgIG1lc3NhZ2UoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydtZXNzYWdlJ107IH0KICAg
ICB1cmwoKSB7IHJldHVybiB0aGlzLl9yZXBvc2l0b3J5LnVybEZvclJldmlzaW9uKHRoaXMuX3Jh
d0RhdGFbJ3JldmlzaW9uJ10pOyB9CiAgICAgb3duc0NvbW1pdHMoKSB7IHJldHVybiB0aGlzLl9y
YXdEYXRhWydvd25zQ29tbWl0cyddOyB9CkBAIC00OCwxNSArNTAsMzMgQEAgY2xhc3MgQ29tbWl0
TG9nIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKICAgICBoYXNDb21taXRPcmRlcigpIHsgcmV0
dXJuIHRoaXMuX3Jhd0RhdGFbJ29yZGVyJ10gIT0gbnVsbDsgfQogICAgIHNldE93bmVyQ29tbWl0
cyhvd25lckNvbW1pdCkgeyB0aGlzLl9vd25lckNvbW1pdCA9IG93bmVyQ29tbWl0OyB9CiAKLSAg
ICBsYWJlbCgpCisgICAgbGFiZWwoKSB7IHJldHVybiBDb21taXRMb2cuX2Zvcm1hdHR0ZWRSZXZp
c2lvbih0aGlzLnJldmlzaW9uKCksIHRoaXMucmV2aXNpb25JZGVudGlmaWVyKCkpOyB9CisKKyAg
ICBzdGF0aWMgX3JlcG9zaXRvcnlUeXBlKHJldmlzaW9uKQogICAgIHsKLSAgICAgICAgY29uc3Qg
cmV2aXNpb24gPSB0aGlzLnJldmlzaW9uKCk7Ci0gICAgICAgIGlmIChwYXJzZUludChyZXZpc2lv
bikgPT0gcmV2aXNpb24pIC8vIGUuZy4gcjEyMzQ1Ci0gICAgICAgICAgICByZXR1cm4gJ3InICsg
cmV2aXNpb247Ci0gICAgICAgIGlmIChyZXZpc2lvbi5sZW5ndGggPT0gNDApIC8vIGUuZy4gZ2l0
IGhhc2gKLSAgICAgICAgICAgIHJldHVybiByZXZpc2lvbi5zdWJzdHJpbmcoMCwgMTIpOwotICAg
ICAgICByZXR1cm4gcmV2aXNpb247CisgICAgICAgIGlmIChwYXJzZUludChyZXZpc2lvbikgPT0g
cmV2aXNpb24pCisgICAgICAgICAgICByZXR1cm4gJ3N2bic7CisgICAgICAgIGlmIChyZXZpc2lv
bi5sZW5ndGggPT0gNDApCisgICAgICAgICAgICByZXR1cm4gJ2dpdCc7CisgICAgICAgIHJldHVy
biBudWxsOwogICAgIH0KKworICAgIHN0YXRpYyBfZm9ybWF0dHRlZFJldmlzaW9uKHJldmlzaW9u
LCByZXZpc2lvbklkZW50aWZpZXIgPSBudWxsKSAKKyAgICB7CisgICAgICAgIGNvbnN0IGZvcm1h
dHRlZFJldmlzaW9uID0gKCgpID0+IHsKKyAgICAgICAgICAgIHN3aXRjaCAodGhpcy5fcmVwb3Np
dG9yeVR5cGUocmV2aXNpb24pKSB7CisgICAgICAgICAgICBjYXNlICdzdm4nOgorICAgICAgICAg
ICAgICAgIHJldHVybiAncicgKyByZXZpc2lvbjsgLy8gZS5nLiByMTIzNDUKKyAgICAgICAgICAg
IGNhc2UgJ2dpdCc6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJldmlzaW9uLnN1YnN0cmluZygw
LCAxMik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmV2aXNpb247CisgICAg
ICAgIH0pKCk7CisgICAgICAgIGlmIChyZXZpc2lvbklkZW50aWZpZXIpCisgICAgICAgICAgICBy
ZXR1cm4gYCR7cmV2aXNpb25JZGVudGlmaWVyfSAoJHtmb3JtYXR0ZWRSZXZpc2lvbn0pYDsKKyAg
ICAgICAgcmV0dXJuIGZvcm1hdHRlZFJldmlzaW9uOworICAgIH0KKwogICAgIHRpdGxlKCkgeyBy
ZXR1cm4gdGhpcy5fcmVwb3NpdG9yeS5uYW1lKCkgKyAnIGF0ICcgKyB0aGlzLmxhYmVsKCk7IH0K
IAogICAgIGRpZmYocHJldmlvdXNDb21taXQpCkBAIC02OCwxNyArODgsMjQgQEAgY2xhc3MgQ29t
bWl0TG9nIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKICAgICAgICAgaWYgKCFwcmV2aW91c0Nv
bW1pdCkKICAgICAgICAgICAgIHJldHVybiB7cmVwb3NpdG9yeTogcmVwb3NpdG9yeSwgbGFiZWw6
IHRoaXMubGFiZWwoKSwgdXJsOiB0aGlzLnVybCgpfTsKIAotICAgICAgICBjb25zdCB0byA9IHRo
aXMucmV2aXNpb24oKTsKLSAgICAgICAgY29uc3QgZnJvbSA9IHByZXZpb3VzQ29tbWl0LnJldmlz
aW9uKCk7Ci0gICAgICAgIGxldCBsYWJlbCA9IG51bGw7Ci0gICAgICAgIGlmIChwYXJzZUludChm
cm9tKSA9PSBmcm9tKS8vIGUuZy4gcjEyMzQ1LgotICAgICAgICAgICAgbGFiZWwgPSBgciR7ZnJv
bX0tciR7dGhpcy5yZXZpc2lvbigpfWA7Ci0gICAgICAgIGVsc2UgaWYgKHRvLmxlbmd0aCA9PSA0
MCkgLy8gZS5nLiBnaXQgaGFzaAotICAgICAgICAgICAgbGFiZWwgPSBgJHtmcm9tLnN1YnN0cmlu
ZygwLCAxMil9Li4ke3RvLnN1YnN0cmluZygwLCAxMil9YDsKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgbGFiZWwgPSBgJHtmcm9tfSAtICR7dG99YDsKLQotICAgICAgICByZXR1cm4ge3JlcG9z
aXRvcnk6IHJlcG9zaXRvcnksIGxhYmVsOiBsYWJlbCwgdXJsOiByZXBvc2l0b3J5LnVybEZvclJl
dmlzaW9uUmFuZ2UoZnJvbSwgdG8pfTsKKyAgICAgICAgY29uc3QgdG9SZXZpc2lvbiA9IHRoaXMu
cmV2aXNpb24oKTsKKyAgICAgICAgY29uc3QgZnJvbVJldmlzaW9uID0gcHJldmlvdXNDb21taXQu
cmV2aXNpb24oKTsKKyAgICAgICAgY29uc3QgaWRlbnRpZmllclBhdHRlcm4gPSAvKD88bnVtYmVy
PlxkKylAKD88YnJhbmNoPltcd1wuXC1dKykvOworICAgICAgICBjb25zdCByZXBvc2l0b3J5VHlw
ZSA9IENvbW1pdExvZy5fcmVwb3NpdG9yeVR5cGUodG9SZXZpc2lvbik7CisgICAgICAgCisgICAg
ICAgIGNvbnN0IGxhYmVsID0gKChmcm9tTWF0Y2gsIHRvTWF0Y2gpID0+IHsKKyAgICAgICAgICAg
IGNvbnN0IHNlcGFyYXRvciA9IHJlcG9zaXRvcnlUeXBlID09ICdnaXQnID8gJy4uJyA6IChyZXBv
c2l0b3J5VHlwZSA9PSAnc3ZuJyA/ICctJyA6ICcgLSAnKTsKKyAgICAgICAgICAgIGNvbnN0IHJl
dmlzaW9uUmFuZ2UgPSBgJHtDb21taXRMb2cuX2Zvcm1hdHR0ZWRSZXZpc2lvbihmcm9tUmV2aXNp
b24pfSR7c2VwYXJhdG9yfSR7Q29tbWl0TG9nLl9mb3JtYXR0dGVkUmV2aXNpb24odG9SZXZpc2lv
bil9YDsKKyAgICAgICAgICAgIGlmIChmcm9tTWF0Y2ggJiYgdG9NYXRjaCkgeworICAgICAgICAg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZyb21NYXRjaC5ncm91cHMuYnJhbmNoID09IHRvTWF0Y2gu
Z3JvdXBzLmJyYW5jaCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGAke2Zyb21NYXRjaC5ncm91
cHMubnVtYmVyfS0ke3RvTWF0Y2guZ3JvdXBzLm51bWJlcn1AJHtmcm9tTWF0Y2guZ3JvdXBzLmJy
YW5jaH0gKCR7cmV2aXNpb25SYW5nZX0pYDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlm
IChmcm9tTWF0Y2ggfHwgdG9NYXRjaCkKKyAgICAgICAgICAgICAgICByZXR1cm4gYCR7cHJldmlv
dXNDb21taXQubGFiZWwoKX0gLSAke3RoaXMubGFiZWwoKX1gOworICAgICAgICAgICAgcmV0dXJu
IHJldmlzaW9uUmFuZ2U7CisgICAgICAgIH0pKGlkZW50aWZpZXJQYXR0ZXJuLmV4ZWMocHJldmlv
dXNDb21taXQucmV2aXNpb25JZGVudGlmaWVyKCkpLCBpZGVudGlmaWVyUGF0dGVybi5leGVjKHRo
aXMucmV2aXNpb25JZGVudGlmaWVyKCkpKTsKKworICAgICAgICByZXR1cm4ge3JlcG9zaXRvcnks
IGxhYmVsLCB1cmw6IHJlcG9zaXRvcnkudXJsRm9yUmV2aXNpb25SYW5nZShmcm9tUmV2aXNpb24s
IHRvUmV2aXNpb24pfTsKICAgICB9CiAKICAgICBzdGF0aWMgZmV0Y2hMYXRlc3RDb21taXRGb3JQ
bGF0Zm9ybShyZXBvc2l0b3J5LCBwbGF0Zm9ybSkKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzCmluZGV4IGRi
ZjFlNjhmNmNkYzFjY2ZkYTRjMDc4MjIxZjQyOTA5YjhiYzA4ZGYuLjdlNTkyYTlhZjk3NmRlOTI3
MTJjZWQwYjFkOTIzNjZjOTk5NDk0YjkgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcwpAQCAtMTcsNiAr
MTcsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAogICAgICAgICAg
ICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDgiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklk
ZW50aWZpZXIiOiAiMTg0Mjc2QG1haW4iLAogICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTct
MDEtMjBUMDI6NTI6MzQuNTc3WiIsCiAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6
ICJaYWxhbiBCdWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKICAgICAgICAg
ICAgICAgICAibWVzc2FnZSI6ICJhIG1lc3NhZ2UiLApAQCAtMjQsNiArMjUsNyBAQCBkZXNjcmli
ZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAogICAgICAgICAgICAgICAgICJyZXZpc2lv
biI6ICIyMTA5NDkiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0
Mjc3QG1haW4iLAogICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDM6MjM6NTAu
NjQ1WiIsCiAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDaHJpcyBEdW1leiIs
ICJhY2NvdW50IjogImNkdW1lekBhcHBsZS5jb20ifSwKICAgICAgICAgICAgICAgICAibWVzc2Fn
ZSI6ICJzb21lIG1lc3NhZ2UiLApAQCAtMzIsMTIgKzM0LDUzIEBAIGRlc2NyaWJlKCIvYXBpL2Nv
bW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldl
YktpdCIsCiAgICAgICAgICAgICAgICAgInByZXZpb3VzQ29tbWl0IjogIjIxMDk0OSIsCiAgICAg
ICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk1MCIsCisgICAgICAgICAgICAgICAgInJldmlz
aW9uSWRlbnRpZmllciI6ICIxODQyNzhAbWFpbiIsCiAgICAgICAgICAgICAgICAgInRpbWUiOiAi
MjAxNy0wMS0yMFQwMzo0OTozNy44ODdaIiwKICAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJu
YW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50IjogImNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
In0sCiAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdlIiwKKyAgICAg
ICAgICAgIH0sCisgICAgICAgIF0KKyAgICB9OworCisgICAgY29uc3Qgc3ViY2Vyc2lvbkNvbW1p
dHNXaXRoRmFrZVJldmlzaW9uSWRlbnRpZmllciA9IHsKKyAgICAgICAgIndvcmtlck5hbWUiOiAi
c29tZVdvcmtlciIsCisgICAgICAgICJ3b3JrZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAor
ICAgICAgICAiY29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVw
b3NpdG9yeSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDgi
LAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0Mjc2QG1haW4iLAor
ICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6NTI6MzQuNTc3WiIsCisgICAg
ICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJaYWxhbiBCdWp0YXMiLCAiYWNjb3VudCI6
ICJ6YWxhbkBhcHBsZS5jb20ifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJhIG1lc3Nh
Z2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVw
b3NpdG9yeSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDki
LAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0Mjc3QG1haW4iLAor
ICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1WiIsCisgICAg
ICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDaHJpcyBEdW1leiIsICJhY2NvdW50Ijog
ImNkdW1lekBhcHBsZS5jb20ifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJzb21lIG1l
c3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAi
cmVwb3NpdG9yeSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJwcmV2aW91c0NvbW1pdCI6
ICIyMTA5NDkiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NTAiLAorICAgICAg
ICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0Mjc4QG1haW4iLAorICAgICAgICAg
ICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDM6NDk6MzcuODg3WiIsCisgICAgICAgICAgICAg
ICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQt
cXVldWVAd2Via2l0Lm9yZyJ9LAorICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImFub3RoZXIg
bWVzc2FnZSIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIx
MDk1MSIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxODQyNzhAc29t
ZXRoaW5nIiwKKyAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjQ5OjQwLjg4
N1oiLAorICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwg
ImFjY291bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmcifSwKKyAgICAgICAgICAgICAgICAi
bWVzc2FnZSI6ICJhbm90aGVyIG1lc3NhZ2UiLAogICAgICAgICAgICAgfQogICAgICAgICBdCi0g
ICAgfQorICAgIH07CiAKICAgICBjb25zdCBjb21taXRzT25lUHJlZml4T2ZUaGVPdGhlciA9IHsK
ICAgICAgICAgIndvcmtlck5hbWUiOiAic29tZVdvcmtlciIsCkBAIC00Niw2ICs4OSw3IEBAIGRl
c2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCiAgICAgICAgICAgICAgICAgInJl
dmlzaW9uIjogIjIxMDk0IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjog
IjE4NDI3MkBtYWluIiwKICAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAyOjUy
OjM0LjU3N1oiLAogICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiWmFsYW4gQnVq
dGFzIiwgImFjY291bnQiOiAiemFsYW5AYXBwbGUuY29tIn0sCiAgICAgICAgICAgICAgICAgIm1l
c3NhZ2UiOiAiYSBtZXNzYWdlIiwKQEAgLTUzLDYgKzk3LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29t
bWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgInJl
cG9zaXRvcnkiOiAiV2ViS2l0IiwKICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQ5
IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3N0BtYWluIiwK
ICAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjIzOjUwLjY0NVoiLAogICAg
ICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ2hyaXMgRHVtZXoiLCAiYWNjb3VudCI6
ICJjZHVtZXpAYXBwbGUuY29tIn0sCiAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAic29tZSBt
ZXNzYWdlIiwKQEAgLTUyNCw2ICs1NjksNDEgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQo
InNob3VsZCByZXR1cm4gY29tbWl0IHdpdGggY29tbWl0IHJldmlzaW9uIGxhYmVsIiwgYXN5bmMg
KCkgPT4geworICAgICAgICAgICAgYXdhaXQgYWRkV29ya2VyRm9yUmVwb3J0KHN1YnZlcnNpb25D
b21taXRzKTsKKyAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29t
bWl0cyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTihgL2FwaS9jb21taXRzL1dlYktpdC8ke3N1YnZlcnNpb25Db21taXRz
LmNvbW1pdHNbMF0ucmV2aXNpb25JZGVudGlmaWVyfWApOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdC5jb21taXRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnRD
b21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHQuY29tbWl0c1swXSwgc3VidmVyc2lvbkNv
bW1pdHMuY29tbWl0c1swXSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCJzaG91bGQgcmV0
dXJuICdBbWJpZ3VvdXNSZXZpc2lvblByZWZpeCcgd2hlbiBtb3JlIHRoYW4gb25lIGNvbW1pdHMg
YXJlIGZvdW5kIGZvciBhIHJldmlzaW9uIGxhYmVsIHByZWZpeCIsIGFzeW5jICgpID0+IHsKKyAg
ICAgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7CisgICAgICAg
ICAgICBhd2FpdCBhZGRXb3JrZXJGb3JSZXBvcnQoc3ViY2Vyc2lvbkNvbW1pdHNXaXRoRmFrZVJl
dmlzaW9uSWRlbnRpZmllcik7CisgICAgICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRo
U3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YmNlcnNpb25Db21taXRzV2l0aEZha2VS
ZXZpc2lvbklkZW50aWZpZXIpOworICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVt
b3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMTg0Mjc4QD9wcmVmaXgtbWF0Y2g9dHJ1
ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdB
bWJpZ3VvdXNSZXZpc2lvblByZWZpeCcpOworICAgICAgICB9KTsKKworICAgICAgICBpdCgic2hv
dWxkIG5vdCByZXR1cm4gJ0FtYmlndW91c1JldmlzaW9uUHJlZml4JyB3aGVuIHRoZXJlIGlzIGEg
Y29tbWl0IHJldmlzaW9uIGxhYmVsIGV4dHJhY3QgbWF0Y2hlcyBzcGVjaWZpZWQgcmV2aXNpb24g
cHJlZml4IiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29uc3QgcmVtb3RlID0gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKTsKKyAgICAgICAgICAgIGF3YWl0IGFkZFdvcmtlckZvclJlcG9ydChz
dWJjZXJzaW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25JZGVudGlmaWVyKTsKKyAgICAgICAgICAg
IGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywg
c3ViY2Vyc2lvbkNvbW1pdHNXaXRoRmFrZVJldmlzaW9uSWRlbnRpZmllcik7CisgICAgICAgICAg
ICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktp
dC8xODQyNzhAbWFpbj9wcmVmaXgtbWF0Y2g9dHJ1ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1
YmNlcnNpb25Db21taXRzV2l0aEZha2VSZXZpc2lvbklkZW50aWZpZXJbJ2NvbW1pdHMnXVsyXSk7
CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuICdVbmtub3duQ29tbWl0
JyB3aGVuIG5vIGNvbW1pdCBpcyBmb3VuZCBmb3IgYSByZXZpc2lvbiBsYWJlbCBwcmVmaXgiLCBh
c3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCByZW1vdGUgPSBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpOworICAgICAgICAgICAgYXdhaXQgYWRkV29ya2VyRm9yUmVwb3J0KHN1YmNlcnNpb25D
b21taXRzV2l0aEZha2VSZXZpc2lvbklkZW50aWZpZXIpOworICAgICAgICAgICAgYXdhaXQgcmVt
b3RlLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJjZXJzaW9u
Q29tbWl0c1dpdGhGYWtlUmV2aXNpb25JZGVudGlmaWVyKTsKKyAgICAgICAgICAgIGNvbnN0IHJl
c3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzE4NDI3OEB4
P3ByZWZpeC1tYXRjaD10cnVlJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0WydzdGF0dXMnXSwgJ1Vua25vd25Db21taXQnKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiAK
ICAgICBkZXNjcmliZSgnL2FwaS9jb21taXRzLzxyZXBvc2l0b3J5Pi9vd25lZC1jb21taXRzP293
bmVyLXJldmlzaW9uPTxjb21taXQ+JywgKCkgPT4gewpAQCAtNzI3LDYgKzgwNywzMyBAQCBkZXNj
cmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICB9KTsKIAorICAgICAgICBpdCgic2hvdWxkIHJldHVybiByZXBvcnRlZCBjb21taXRzIGlu
IHRoZSBzcGVjaWZpZWQgcmV2aXNpb24gbGFiZWwgcmFuZ2UiLCBhc3luYyAoKSA9PiB7CisgICAg
ICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgICAgIGF3
YWl0IGRiLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEsICduYW1lJzogJ1dlYktpdCd9
KTsKKyAgICAgICAgICAgIGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6
IDEsICdyZXZpc2lvbic6ICcyMTA5NDgnLCAncmV2aXNpb25faWRlbnRpZmllcic6ICcxODQyNzZA
bWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDI6NTI6MzQuNTc3WicsICdyZXBvcnRlZCc6IHRy
dWV9KTsKKyAgICAgICAgICAgIGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9y
eSc6IDEsICdyZXZpc2lvbic6ICcyMTA5NDknLCAncmV2aXNpb25faWRlbnRpZmllcic6ICcxODQy
NzdAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1WicsICdyZXBvcnRlZCc6
IHRydWV9KTsKKyAgICAgICAgICAgIGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3Np
dG9yeSc6IDEsICdyZXZpc2lvbic6ICcyMTA5NTAnLCAncmV2aXNpb25faWRlbnRpZmllcic6ICcx
ODQyNzhAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDM6NDk6MzcuODg3WicsICdyZXBvcnRl
ZCc6IHRydWV9KTsKKyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8/cHJlY2VkaW5nUmV2aXNp
b249MTg0Mjc2QG1haW4mbGFzdFJldmlzaW9uPTE4NDI3OEBtYWluJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMik7CisgICAg
ICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMn
XVswXSwgeworICAgICAgICAgICAgICAgIHByZXZpb3VzQ29tbWl0OiBudWxsLAorICAgICAgICAg
ICAgICAgIHJldmlzaW9uOiAnMjEwOTQ5JywKKyAgICAgICAgICAgICAgICByZXZpc2lvbklkZW50
aWZpZXI6ICcxODQyODlAbWFpbicsCisgICAgICAgICAgICAgICAgdGltZTogJzIwMTctMDEtMjBU
MDM6MjM6NTAuNjQ1WicsCisgICAgICAgICAgICAgICAgYXV0aG9yOiB7bmFtZTogbnVsbCwgYWNj
b3VudDogbnVsbH0sCisgICAgICAgICAgICAgICAgbWVzc2FnZTogbnVsbCwKKyAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0
Wydjb21taXRzJ11bMV0sIHsKKyAgICAgICAgICAgICAgICBwcmV2aW91c0NvbW1pdDogbnVsbCwK
KyAgICAgICAgICAgICAgICByZXZpc2lvbjogJzIxMDk1MCcsCisgICAgICAgICAgICAgICAgcmV2
aXNpb25JZGVudGlmaWVyOiAnMTg0MjkwQG1haW4nLAorICAgICAgICAgICAgICAgIHRpbWU6ICcy
MDE3LTAxLTIwVDAzOjQ5OjM3Ljg4N1onLAorICAgICAgICAgICAgICAgIGF1dGhvcjoge25hbWU6
IG51bGwsIGFjY291bnQ6IG51bGx9LAorICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG51bGwsCisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKICAgICAgICAgaXQoInNob3VsZCBub3QgaW5j
bHVkZSBhIHJldmlzaW9uIG5vdCB3aXRoaW4gdGhlIHNwZWNpZmllZCByYW5nZSIsICgpID0+IHsK
ICAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwogICAgICAgICAg
ICAgY29uc3QgcmVtb3RlID0gVGVzdFNlcnZlci5yZW1vdGVBUEkoKTsKQEAgLTc1MCw2ICs4NTcs
MjMgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoInNob3VsZCBub3QgaW5jbHVkZSBhIHJl
dmlzaW9uIG5vdCB3aXRoaW4gdGhlIHNwZWNpZmllZCBjb21taXQgcmV2aXNpb24gbGFiZWwgcmFu
Z2UiLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0
YWJhc2UoKTsKKyAgICAgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCk7CisgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHsnaWQnOiAx
LCAnbmFtZSc6ICdXZWJLaXQnfSksCisgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1p
dHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTQ3JywgJ3JldmlzaW9uX2lk
ZW50aWZpZXInOiAnMTg0Mjc1QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIwVDAyOjM4OjQ1LjQ4
NVonLCAncmVwb3J0ZWQnOiBmYWxzZX0pOworICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdj
b21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk0OCcsICdyZXZpc2lv
bl9pZGVudGlmaWVyJzogJzE4NDI3NkBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMjo1Mjoz
NC41NzdaJywgJ3JlcG9ydGVkJzogZmFsc2V9KTsKKyAgICAgICAgICAgIGF3YWl0IGRiLmluc2Vy
dCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6ICcyMTA5NDknLCAncmV2
aXNpb25faWRlbnRpZmllcic6ICcxODQyNzdAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDM6
MjM6NTAuNjQ1WicsICdyZXBvcnRlZCc6IGZhbHNlfSk7CisgICAgICAgICAgICBhd2FpdCBkYi5p
bnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTUwJywg
J3JldmlzaW9uX2lkZW50aWZpZXInOiAnMTg0Mjc4QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIw
VDAzOjQ5OjM3Ljg4N1onLCAncmVwb3J0ZWQnOiBmYWxzZX0pOworICAgICAgICAgICAgYXdhaXQg
YWRkV29ya2VyRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRzKTsKKyAgICAgICAgICAgIGF3YWl0
IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVy
c2lvbkNvbW1pdHMpOworICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVtb3RlLmdl
dEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvP3ByZWNlZGluZ1JldmlzaW9uPTE4NDI3NUBtYWlu
Jmxhc3RSZXZpc2lvbj0xODQyNzdAbWFpbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0
Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1YnZlcnNp
b25Db21taXRzWydjb21taXRzJ11bMF0pOworICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1l
QXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMV0sIHN1YnZlcnNpb25Db21taXRzWydj
b21taXRzJ11bMV0pOworICAgICAgICB9KTsKKwogICAgIH0pOwogCiB9KTsKZGlmZiAtLWdpdCBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRz
LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVw
b3J0LWNvbW1pdHMtdGVzdHMuanMKaW5kZXggODlhMGE0ZWM4MzgzODkzNzllOTk5NGZlNDllMDZl
MTdhZTViNGQyYS4uYzg5ZjI3ZTQzYzQwOGE5YTAzMzQ0M2NmNTYxNjBlZmJkMmY0MGJkOSAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0
LWNvbW1pdHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKQEAgLTI2LDYgKzI2LDIwIEBAIGRlc2Ny
aWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgfQogICAgICAgICBdLAogICAgIH07CisgICAgY29uc3Qgc3VidmVyc2lv
bkNvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIgPSB7CisgICAgICAgICJ3b3JrZXJOYW1lIjog
InNvbWVXb3JrZXIiLAorICAgICAgICAid29ya2VyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwK
KyAgICAgICAgImNvbW1pdHMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJl
cG9zaXRvcnkiOiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTQxOTc3
IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjEyNzIzMUBtYWluIiwK
KyAgICAgICAgICAgICAgICAidGltZSI6ICIyMDEzLTAyLTA2VDA4OjU1OjIwLjlaIiwKKyAgICAg
ICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50Ijog
ImNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnIn0sCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAi
c29tZSBtZXNzYWdlIiwKKyAgICAgICAgICAgIH0KKyAgICAgICAgXSwKKyAgICB9OwogICAgIGNv
bnN0IHN1YnZlcnNpb25JbnZhbGlkQ29tbWl0ID0gewogICAgICAgICAid29ya2VyTmFtZSI6ICJz
b21lV29ya2VyIiwKICAgICAgICAgIndvcmtlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCkBA
IC03Niw2ICs5MCw0NCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNl
cnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgXQogICAgIH0KIAorICAgIGNvbnN0IGR1
cGxpY2F0ZWRDb21taXRSZXZpc2lvbklkZW50aWZpZXJDb21taXRzID0geworICAgICAgICAid29y
a2VyTmFtZSI6ICJzb21lV29ya2VyIiwKKyAgICAgICAgIndvcmtlclBhc3N3b3JkIjogInNvbWVQ
YXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9u
IjogIjIxMDk0OCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxODQy
NzZAbWFpbiIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMjo1MjozNC41
NzdaIiwKKyAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIlphbGFuIEJ1anRhcyIs
ICJhY2NvdW50IjogInphbGFuQGFwcGxlLmNvbSJ9LAorICAgICAgICAgICAgICAgICJtZXNzYWdl
IjogImEgbWVzc2FnZSIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9u
IjogIjIxMDk0OSIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxODQy
NzZAbWFpbiIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMzoyMzo1MC42
NDVaIiwKKyAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNocmlzIER1bWV6Iiwg
ImFjY291bnQiOiAiY2R1bWV6QGFwcGxlLmNvbSJ9LAorICAgICAgICAgICAgICAgICJtZXNzYWdl
IjogInNvbWUgbWVzc2FnZSIsCisgICAgICAgICAgICB9LAorICAgICAgICBdCisgICAgfQorCisg
ICAgY29uc3QgaW52YWxpZENvbW1pdFJldmlzaW9uSWRlbnRpZmllckNvbW1pdHMgPSB7CisgICAg
ICAgICJ3b3JrZXJOYW1lIjogInNvbWVXb3JrZXIiLAorICAgICAgICAid29ya2VyUGFzc3dvcmQi
OiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgImNvbW1pdHMiOiBbCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAi
cmV2aXNpb24iOiAiMjEwOTQ4IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVy
IjogIjE4NDI3NiIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMjo1Mjoz
NC41NzdaIiwKKyAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIlphbGFuIEJ1anRh
cyIsICJhY2NvdW50IjogInphbGFuQGFwcGxlLmNvbSJ9LAorICAgICAgICAgICAgICAgICJtZXNz
YWdlIjogImEgbWVzc2FnZSIsCisgICAgICAgICAgICB9LAorICAgICAgICBdCisgICAgfQorCiAg
ICAgaXQoInNob3VsZCByZWplY3QgZXJyb3Igd2hlbiB3b3JrZXIgbmFtZSBpcyBtaXNzaW5nIiwg
KCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTign
L2FwaS9yZXBvcnQtY29tbWl0cy8nLCB7fSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNzaW5nV29ya2Vy
TmFtZScpOwpAQCAtMTQ1LDYgKzE5NywyMiBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0
cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKKyAgICBpdCgic2hvdWxkIHJlamVjdCBhbiBpbnZhbGlkIHJldmlzaW9uIGxhYmVsIiwgYXN5
bmMgKCkgPT4geworICAgICAgICBhd2FpdCBhZGRXb3JrZXJGb3JSZXBvcnQoc3VidmVyc2lvbkNv
bW1pdCk7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBpbnZhbGlkQ29tbWl0UmV2aXNp
b25JZGVudGlmaWVyQ29tbWl0cyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdJbnZhbGlkUmV2aXNpb25JZGVudGlmaWVyJyk7CisgICAgICAgIGNvbnN0
IHJvd3MgPSBhd2FpdCBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdjb21taXRzJyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMCk7CisgICAgfSk7CisK
KyAgICBpdCgic2hvdWxkIHJlamVjdCB3aXRoIGR1cGxpY2F0ZWQgY29tbWl0IHJldmlzaW9uIGxh
YmVscyIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkV29ya2VyRm9yUmVwb3J0KHN1
YnZlcnNpb25Db21taXQpOworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgZHVwbGljYXRl
ZENvbW1pdFJldmlzaW9uSWRlbnRpZmllckNvbW1pdHMpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnRHVwbGljYXRlZFJldmlzaW9uSWRlbnRpZmllcicp
OworICAgICAgICBjb25zdCByb3dzID0gYXdhaXQgVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVj
dEFsbCgnY29tbWl0cycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgs
IDApOworICAgIH0pOworCiAgICAgaXQoInNob3VsZCBzdG9yZSB0d28gY29tbWl0cyBmcm9tIGEg
dmFsaWQgd29ya2VyIiwgKCkgPT4gewogICAgICAgICByZXR1cm4gYWRkV29ya2VyRm9yUmVwb3J0
KHN1YnZlcnNpb25Ud29Db21taXRzKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1
YnZlcnNpb25Ud29Db21taXRzKTsKQEAgLTIxNSw2ICsyODMsMjUgQEAgZGVzY3JpYmUoIi9hcGkv
cmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCisgICAgaXQoInNob3VsZCB1cGRhdGUgYW4gZXhpc3RpbmcgY29tbWl0
IHdpdGggY29tbWl0IGxhYmVsIGlmIHRoZXJlIGlzIG9uZSIsIGFzeW5jICgpID0+IHsKKyAgICAg
ICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIGNvbnN0IHJlcG9y
dGVkRGF0YSA9IHN1YnZlcnNpb25Db21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyLmNvbW1pdHNb
MF07CisgICAgICAgIGF3YWl0IGFkZFdvcmtlckZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0V2l0
aFJldmlzaW9uSWRlbnRpZmllcik7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgncmVwb3NpdG9y
aWVzJywgeydpZCc6IDEsICduYW1lJzogJ1dlYktpdCd9KSwKKyAgICAgICAgYXdhaXQgZGIuaW5z
ZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogcmVwb3J0ZWREYXRh
WydyZXZpc2lvbiddLCAndGltZSc6IHJlcG9ydGVkRGF0YVsndGltZSddfSkKKyAgICAgICAgY29u
c3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBp
L3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVy
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CisgICAgICAgIGNvbnN0IGNvbW1pdHMgPSBhd2FpdCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsK
KyAgICAgICAgY29uc3QgY29tbWl0dGVycyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgnY29tbWl0dGVy
cycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDEpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVycy5sZW5ndGgsIDEpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21l
c3NhZ2UnXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydyZXZpc2lv
bl9pZGVudGlmaWVyJ10sIHJlcG9ydGVkRGF0YVsncmV2aXNpb25JZGVudGlmaWVyJ10pOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRl
cnNbMF1bJ2lkJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsn
bmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhv
ciddWydhY2NvdW50J10pOworICAgIH0pOworCiAgICAgaXQoInNob3VsZCBub3QgdXBkYXRlIGFu
IHVucmVsYXRlZCBjb21taXQiLCAoKSA9PiB7CiAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZl
ci5kYXRhYmFzZSgpOwogICAgICAgICBjb25zdCBmaXJzdERhdGEgPSBzdWJ2ZXJzaW9uVHdvQ29t
bWl0cy5jb21taXRzWzBdOwpAQCAtNTkwLDYgKzY3NywxMTEgQEAgZGVzY3JpYmUoIi9hcGkvcmVw
b3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT3duZWRDb21taXRTaG91
bGROb3RDb250YWluVGltZXN0YW1wJyk7CiAgICAgICAgIH0pOwogICAgIH0pOworCisgICAgY29u
c3QgaW52YWxpZE93bmVkQ29tbWl0VXNlUmV2aXNpb25JZGVudGlmaWVyQXNSZXZpc29uID0gewor
ICAgICAgICAid29ya2VyTmFtZSI6ICJzb21lV29ya2VyIiwKKyAgICAgICAgIndvcmtlclBhc3N3
b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIk9TWCIsCisgICAgICAgICAgICAgICAg
InJldmlzaW9uIjogIlNpZXJyYTE2RDMyIiwKKyAgICAgICAgICAgICAgICAib3JkZXIiOiAxLAor
ICAgICAgICAgICAgICAgICJvd25lZENvbW1pdHMiOiB7CisgICAgICAgICAgICAgICAgICAgICJX
ZWJLaXQiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTI3MjMyQG1h
aW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQg
UXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Via2l0Lm9yZyJ9LAorICAgICAgICAg
ICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiV2ViS2l0IENvbW1pdCIsCisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIF0KKyAg
ICB9OworCisgICAgaXQoInNob3VsZCByZWplY3QgaW5zZXJ0aW5nIG9uZSBjb21taXQgd2l0aCBv
d25lZCBjb21taXRzIHRoYXQgdXNlIHJldmlzaW9uIGxhYmVsIGFzIHJldmlzaW9uIiwgYXN5bmMg
KCkgPT4geworICAgICAgICBhd2FpdCBhZGRXb3JrZXJGb3JSZXBvcnQoaW52YWxpZE93bmVkQ29t
bWl0VXNlUmV2aXNpb25JZGVudGlmaWVyQXNSZXZpc29uKTsKKyAgICAgICAgY29uc3QgcmVzcG9u
c2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1j
b21taXRzLycsIGludmFsaWRPd25lZENvbW1pdFVzZVJldmlzaW9uSWRlbnRpZmllckFzUmV2aXNv
bik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZh
bGlkUmV2aXNpb24nKTsKKyAgICB9KTsKKworICAgIGNvbnN0IGludmFsaWRSZXZpc2lvbklkZW50
aWZpZXJPd25lZENvbW1pdCA9IHsKKyAgICAgICAgIndvcmtlck5hbWUiOiAic29tZVdvcmtlciIs
CisgICAgICAgICJ3b3JrZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAiY29t
bWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJP
U1giLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICJTaWVycmExNkQzMiIsCisgICAgICAg
ICAgICAgICAgIm9yZGVyIjogMSwKKyAgICAgICAgICAgICAgICAib3duZWRDb21taXRzIjogewor
ICAgICAgICAgICAgICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAgICAgICAgICAg
InJldmlzaW9uIjogIjE0MTk3OCIsCisgICAgICAgICAgICAgICAgICAgICAgICAicmV2aXNpb25J
ZGVudGlmaWVyIjogIjEyNzIzMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAiYXV0aG9yIjog
eyJuYW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50IjogImNvbW1pdC1xdWV1ZUB3ZWJraXQu
b3JnIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJXZWJLaXQgQ29tbWl0
IiwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKyAgICAgICAgXQorICAgIH07CisKKyAgICBpdCgic2hvdWxkIHJlamVjdCBpbnNlcnRpbmcg
b25lIGNvbW1pdCB3aXRoIG93bmVkIGNvbW1pdHMgdGhhdCBoYXZlIGludmFsaWQgcmV2aXNpb24g
bGFiZWwiLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFdvcmtlckZvclJlcG9ydChp
bnZhbGlkUmV2aXNpb25JZGVudGlmaWVyT3duZWRDb21taXQpOworICAgICAgICBjb25zdCByZXNw
b25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0
LWNvbW1pdHMvJywgaW52YWxpZFJldmlzaW9uSWRlbnRpZmllck93bmVkQ29tbWl0KTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXZpc2lv
bklkZW50aWZpZXInKTsKKyAgICB9KTsKKworICAgIGNvbnN0IGludmFsaWRBdXRob3JPd25lZENv
bW1pdCA9IHsKKyAgICAgICAgIndvcmtlck5hbWUiOiAic29tZVdvcmtlciIsCisgICAgICAgICJ3
b3JrZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAiY29tbWl0cyI6IFsKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJPU1giLAorICAgICAg
ICAgICAgICAgICJyZXZpc2lvbiI6ICJTaWVycmExNkQzMiIsCisgICAgICAgICAgICAgICAgIm9y
ZGVyIjogMSwKKyAgICAgICAgICAgICAgICAib3duZWRDb21taXRzIjogeworICAgICAgICAgICAg
ICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjog
IjE0MTk3OCIsCisgICAgICAgICAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjog
IjEyNzIzMkBtYWluIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJhdXRob3IiOiBudWxsLAor
ICAgICAgICAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiV2ViS2l0IENvbW1pdCIsCisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAg
ICAgIF0KKyAgICB9OworICAgIGl0KCJzaG91bGQgcmVqZWN0IGluc2VydGluZyBvbmUgY29tbWl0
IHdpdGggb3duZWQgY29tbWl0cyB0aGF0IGhhdmUgaW52YWxpZCBhdXRob3IiLCBhc3luYyAoKSA9
PiB7CisgICAgICAgIGF3YWl0IGFkZFdvcmtlckZvclJlcG9ydChpbnZhbGlkQXV0aG9yT3duZWRD
b21taXQpOworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgaW52YWxpZEF1dGhvck93bmVk
Q29tbWl0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J0ludmFsaWRBdXRob3JGb3JtYXQnKTsKKyAgICB9KTsKKworICAgIGNvbnN0IG93bmVkQ29tbWl0
V2l0aFJldmlzaW9uSWRlbnRpZmllciA9IHsKKyAgICAgICAgIndvcmtlck5hbWUiOiAic29tZVdv
cmtlciIsCisgICAgICAgICJ3b3JrZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAg
ICAiY29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9y
eSI6ICJPU1giLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICJTaWVycmExNkQzMiIsCisg
ICAgICAgICAgICAgICAgIm9yZGVyIjogMSwKKyAgICAgICAgICAgICAgICAib3duZWRDb21taXRz
IjogeworICAgICAgICAgICAgICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAgICAg
ICAgICAgInJldmlzaW9uIjogIjE0MTk3OCIsCisgICAgICAgICAgICAgICAgICAgICAgICAicmV2
aXNpb25JZGVudGlmaWVyIjogIjEyNzIzMkBtYWluIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0LXF1
ZXVlQHdlYmtpdC5vcmcifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIldl
YktpdCBDb21taXQiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfQorICAgICAgICBdCisgICAgfTsKKworICAgIGl0KCJzaG91bGQgaW5zZXJ0
IG9uZSBjb21taXQgd2l0aCBjb21taXQgcmV2aXNpb24gbGFiZWwiLCBhc3luYyAoKSA9PiB7Cisg
ICAgICAgIGF3YWl0IGFkZFdvcmtlckZvclJlcG9ydChvd25lZENvbW1pdFdpdGhSZXZpc2lvbklk
ZW50aWZpZXIpOworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgb3duZWRDb21taXRXaXRo
UmV2aXNpb25JZGVudGlmaWVyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFz
ZSgpOworICAgICAgICBjb25zdCBjb21taXQgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCdjb21taXRz
JywgeydyZXZpc2lvbic6ICcxNDE5NzgnfSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRbMF0ucmV2aXNpb25faWRlbnRpZmllciwgb3duZWRDb21taXRXaXRoUmV2aXNpb25JZGVu
dGlmaWVyLmNvbW1pdHNbMF0ub3duZWRDb21taXRzWydXZWJLaXQnXS5yZXZpc2lvbklkZW50aWZp
ZXIpOworICAgIH0pOwogfSk7CiAKIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRo
IGluc2VydD1mYWxzZSIsIGZ1bmN0aW9uICgpIHsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qcyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qcwppbmRleCA3N2Fl
YmRlMDJhNzljMjExYWEzMzU4NWQyMDc3MmUyZTg0MGQxZjUwLi5jZTg0YjljNWQ1ZTBlYzEzNDIy
ODc2ODUxZDMzMWE3YTA2OWJhOGMyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzCkBAIC03Nyw2ICs3Nywy
OSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH07CiAg
ICAgfQogCisgICAgZnVuY3Rpb24gcmVwb3J0V2l0aFJldmlzaW9uSWRlbnRpZmllckNvbW1pdCgp
CisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgImJ1aWxkVGFnIjogIjEyMyIs
CisgICAgICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMTA6MTI6MDMuMzg4MzA0IiwK
KyAgICAgICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCisgICAgICAgICAgICAi
d29ya2VyTmFtZSI6ICJzb21lV29ya2VyIiwKKyAgICAgICAgICAgICJidWlsZGVyUGFzc3dvcmQi
OiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9u
IiwKKyAgICAgICAgICAgICJ0ZXN0cyI6IHt9LAorICAgICAgICAgICAgInJldmlzaW9ucyI6IHsK
KyAgICAgICAgICAgICAgICAibWFjT1MiOiB7CisgICAgICAgICAgICAgICAgICAgICJyZXZpc2lv
biI6ICIxMC44LjIgMTJDNjAiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAi
V2ViS2l0IjogeworICAgICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTQxOTc3IiwKKyAg
ICAgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxMjcyMzFAbWFpbiIsCisg
ICAgICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAiMjAxMy0wMi0wNlQwODo1NToyMC45WiIK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorCiAg
ICAgZnVuY3Rpb24gZW1wdHlXb3JrZXJSZXBvcnQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHsK
QEAgLTM1MSw2ICszNzQsMzcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICB9KTsKICAgICB9KTsKIAorICAgIGl0KCJzaG91bGQgYWRkIHJldmlzaW9uIGxh
YmVsIiwgYXN5bmMgKCkgPT4geworICAgICAgICBhd2FpdCBhZGRCdWlsZGVyRm9yUmVwb3J0KHJl
cG9ydFdpdGhSZXZpc2lvbklkZW50aWZpZXJDb21taXQoKSk7CisgICAgICAgIGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRXaXRoUmV2
aXNpb25JZGVudGlmaWVyQ29tbWl0KCldKTsKKyAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVy
LmRhdGFiYXNlKCk7CisgICAgICAgIGNvbnN0IHJlcG9zaXRvcmllcyA9IGF3YWl0IGRiLnNlbGVj
dEFsbCgncmVwb3NpdG9yaWVzJyk7CisgICAgICAgIGNvbnN0IGNvbW1pdHMgPSAgYXdhaXQgZGIu
c2VsZWN0QWxsKCdjb21taXRzJyk7CisgICAgICAgIGNvbnN0IGJ1aWxkQ29tbWl0c1JlbGF0aW9u
cyA9IGF3YWl0ICBkYi5zZWxlY3RBbGwoJ2J1aWxkX2NvbW1pdHMnLCAnYnVpbGRfY29tbWl0Jyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAyKTsKKyAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3JpZXMubWFwKChyb3cpID0+IHJv
d1snbmFtZSddKS5zb3J0KCksIFsnV2ViS2l0JywgJ21hY09TJ10pOworCisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1swXVsnYnVpbGRfY29tbWl0J10sIGNvbW1p
dHNbMF1bJ2lkJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRzUmVs
YXRpb25zWzFdWydidWlsZF9jb21taXQnXSwgY29tbWl0c1sxXVsnaWQnXSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNbMF1bJ2NvbW1pdF9idWlsZCdd
LCBidWlsZENvbW1pdHNSZWxhdGlvbnNbMV1bJ2NvbW1pdF9idWlsZCddKTsKKworICAgICAgICBs
ZXQgcmVwb3NpdG9yeUlkVG9OYW1lID0ge307CisgICAgICAgIGZvciAoY29uc3QgcmVwb3NpdG9y
eSBvZiByZXBvc2l0b3JpZXMpCisgICAgICAgICAgICByZXBvc2l0b3J5SWRUb05hbWVbcmVwb3Np
dG9yeVsnaWQnXV0gPSByZXBvc2l0b3J5WyduYW1lJ107CisKKyAgICAgICAgbGV0IHJlcG9zaXRv
cnlOYW1lVG9SZXZpc2lvblJvdyA9IHt9OworICAgICAgICBmb3IgKGNvbnN0IGNvbW1pdCBvZiBj
b21taXRzKQorICAgICAgICAgICAgcmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93W3JlcG9zaXRv
cnlJZFRvTmFtZVtjb21taXRbJ3JlcG9zaXRvcnknXV1dID0gY29tbWl0OworCisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ21hY09TJ11bJ3Jl
dmlzaW9uJ10sICcxMC44LjIgMTJDNjAnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snV2ViS2l0J11bJ3JldmlzaW9uJ10sICcxNDE5Nzcn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJv
d1snV2ViS2l0J11bJ3JldmlzaW9uX2lkZW50aWZpZXInXSwgJzEyNzIzMUBtYWluJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktp
dCddWyd0aW1lJ10udG9TdHJpbmcoKSwKKyAgICAgICAgICAgIG5ldyBEYXRlKCcyMDEzLTAyLTA2
IDA4OjU1OjIwLjknKS50b1N0cmluZygpKTsKKyAgICB9KTsKKwogICAgIGl0KCJzaG91bGQgbm90
IGNyZWF0ZSBhIGR1cGxpY2F0ZSBidWlsZCBmb3IgdGhlIHNhbWUgYnVpbGQgbnVtYmVyIGlmIGJ1
aWxkIHRpbWVzIGFyZSBjbG9zZSIsICgpID0+IHsKICAgICAgICAgY29uc3QgZmlyc3RSZXBvcnQg
PSBlbXB0eVJlcG9ydCgpOwogICAgICAgICBmaXJzdFJlcG9ydFsnYnVpbGRUaW1lJ10gPSAnMjAx
My0wMi0yOFQxMDoxMjowNCc7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
dW5pdC10ZXN0cy9jb21taXQtbG9nLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3VuaXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qcwppbmRleCA3MGFiZGViZjgxZThhYjYwZDFk
MTgxNjNlMzk5MTg3OWNiNDczOGI2Li45MGE1NGI2MjlmYmNhMTIyYWY4MGJlYWZhYTk4YjhiMGRj
OTI4NWE4IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9j
b21taXQtbG9nLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRl
c3RzL2NvbW1pdC1sb2ctdGVzdHMuanMKQEAgLTE3LDYgKzE3LDE3IEBAIGZ1bmN0aW9uIHdlYmtp
dENvbW1pdCgpCiAgICAgfSk7CiB9CiAKK2Z1bmN0aW9uIHdlYmtpdENvbW1pdFdpdGhSZXZpc2lv
bklkZW50aWZpZXIoKSAKK3sKKyAgICByZXR1cm4gbmV3IENvbW1pdExvZygxLCB7CisgICAgICAg
IGlkOiAxLAorICAgICAgICByZXBvc2l0b3J5OiBNb2NrTW9kZWxzLndlYmtpdCwKKyAgICAgICAg
cmV2aXNpb246ICcyMDA4MDUnLAorICAgICAgICByZXZpc2lvbklkZW50aWZpZXI6ICcxODQyNzZA
bWFpbicsCisgICAgICAgIHRpbWU6ICsobmV3IERhdGUoJzIwMTYtMDUtMTNUMDA6NTU6NTcuODQx
MzQ0WicpKSwKKyAgICB9KTsKK30KKwogZnVuY3Rpb24gb2xkV2ViS2l0Q29tbWl0KCkKIHsKICAg
ICByZXR1cm4gbmV3IENvbW1pdExvZygyLCB7CkBAIC0yNyw2ICszOCwxNyBAQCBmdW5jdGlvbiBv
bGRXZWJLaXRDb21taXQoKQogICAgIH0pOwogfQogCitmdW5jdGlvbiBvbGRXZWJLaXRDb21taXRX
aXRoUmV2aXNpb25JZGVudGlmaWVyKCkKK3sKKyAgICByZXR1cm4gbmV3IENvbW1pdExvZygyLCB7
CisgICAgICAgIGlkOiAyLAorICAgICAgICByZXBvc2l0b3J5OiBNb2NrTW9kZWxzLndlYmtpdCwK
KyAgICAgICAgcmV2aXNpb246ICcyMDA1NzQnLAorICAgICAgICByZXZpc2lvbklkZW50aWZpZXI6
ICcxNzU2MDVAbWFpbicsCisgICAgICAgIHRpbWU6ICsobmV3IERhdGUoJzIwMTYtMDUtMDlUMTQ6
NTk6MjMuNTUzNzY3WicpKSwKKyAgICB9KTsKK30KKwogZnVuY3Rpb24gZ2l0V2ViS2l0Q29tbWl0
KCkKIHsKICAgICByZXR1cm4gbmV3IENvbW1pdExvZygzLCB7CkBAIC0zNyw2ICs1OSwxNyBAQCBm
dW5jdGlvbiBnaXRXZWJLaXRDb21taXQoKQogICAgIH0pOwogfQogCitmdW5jdGlvbiBnaXRXZWJL
aXRDb21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKCkKK3sKKyAgICByZXR1cm4gbmV3IENvbW1p
dExvZygzLCB7CisgICAgICAgIGlkOiAzLAorICAgICAgICByZXBvc2l0b3J5OiBNb2NrTW9kZWxz
LndlYmtpdCwKKyAgICAgICAgcmV2aXNpb246ICc2ZjhiMGRiYmRhOTVhNDQwNTAzYjg4ZGIxZGQw
M2RhZDNhN2IwN2ZiJywKKyAgICAgICAgcmV2aXNpb25JZGVudGlmaWVyOiAnMTg0Mjc2QG1haW4n
LAorICAgICAgICB0aW1lOiArKG5ldyBEYXRlKCcyMDE2LTA1LTEzVDAwOjU1OjU3Ljg0MTM0NFon
KSksCisgICAgfSk7Cit9CisKIGZ1bmN0aW9uIG9sZEdpdFdlYktpdENvbW1pdCgpCiB7CiAgICAg
cmV0dXJuIG5ldyBDb21taXRMb2coNCwgewpAQCAtNDcsNiArODAsMTcgQEAgZnVuY3Rpb24gb2xk
R2l0V2ViS2l0Q29tbWl0KCkKICAgICB9KTsKIH0KIAorZnVuY3Rpb24gb2xkR2l0V2ViS2l0Q29t
bWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpCit7CisgICAgcmV0dXJuIG5ldyBDb21taXRMb2co
NCwgeworICAgICAgICBpZDogNCwKKyAgICAgICAgcmVwb3NpdG9yeTogTW9ja01vZGVscy53ZWJr
aXQsCisgICAgICAgIHJldmlzaW9uOiAnZmZkYTE0ZTZkYjA3NDZkMTBkMGYwNTA5MDdlNGE3MzI1
ODUxZTUwMicsCisgICAgICAgIHJldmlzaW9uSWRlbnRpZmllcjogJzE3NTYwNUBtYWluJywKKyAg
ICAgICAgdGltZTogKyhuZXcgRGF0ZSgnMjAxNi0wNS0wOVQxNDo1OToyMy41NTM3NjdaJykpLAor
ICAgIH0pOworfQorCiBmdW5jdGlvbiBvc3hDb21taXQoKQogewogICAgIHJldHVybiBuZXcgQ29t
bWl0TG9nKDUsIHsKQEAgLTE0NywxMCArMTkxLDE4IEBAIGRlc2NyaWJlKCdDb21taXRMb2cnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Q29tbWl0KCkubGFi
ZWwoKSwgJ3IyMDA4MDUnKTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgaXQoJ3Nob3VsZCB0cnVu
Y2F0ZSBhIEdpdCBoYXNoIGF0IDh0aCBjaGFyYWN0ZXInLCBmdW5jdGlvbiAoKSB7CisgICAgICAg
IGl0KCdzaG91bGQgZGlzcGxheSByZXZpc2lvbiBsYWJlbCBmb2xsb3dlZCBieSBzdm4gcmVmaXhl
ZCB3aXRoICJyIicsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJr
aXRDb21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKCkubGFiZWwoKSwgJzE4NDI3NkBtYWluIChy
MjAwODA1KScpCisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgdHJ1bmNhdGUgYSBH
aXQgaGFzaCBhdCAxMnRoIGNoYXJhY3RlcicsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChnaXRXZWJLaXRDb21taXQoKS5sYWJlbCgpLCAnNmY4YjBkYmJkYTk1Jyk7CiAg
ICAgICAgIH0pOwogCisgICAgICAgIGl0KCdzaG91bGQgZGlzcGxheSByZXZpc2lvbiBsYWJlbCBm
b2xsb3dlZCBieSBnaXQgaGFzaCB0cnVuY2F0ZWQnLCAoKSA9PiB7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZ2l0V2ViS2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpLmxh
YmVsKCksICcxODQyNzZAbWFpbiAoNmY4YjBkYmJkYTk1KScpCisgICAgICAgIH0pOworCiAgICAg
ICAgIGl0KCdzaG91bGQgbm90IG1vZGlmeSBPUyBYIHZlcnNpb24nLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0KCkubGFiZWwoKSwgJzEwLjExLjQgMTVF
NjUnKTsKICAgICAgICAgfSk7CkBAIC0xNjEsMTAgKzIxMywxOCBAQCBkZXNjcmliZSgnQ29tbWl0
TG9nJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdENvbW1p
dCgpLnRpdGxlKCksICdXZWJLaXQgYXQgcjIwMDgwNScpOwogICAgICAgICB9KTsKIAotICAgICAg
ICBpdCgnc2hvdWxkIHRydW5jYXRlIGEgR2l0IGhhc2ggYXQgOHRoIGNoYXJhY3RlcicsIGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgaXQoJ3Nob3VsZCBpbmNsdWRlIHJldmlzaW9uIGxhYmVsJywgKCkg
PT4geworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdENvbW1pdFdpdGhSZXZp
c2lvbklkZW50aWZpZXIoKS50aXRsZSgpLCAnV2ViS2l0IGF0IDE4NDI3NkBtYWluIChyMjAwODA1
KScpOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHRydW5jYXRlIGEgR2l0IGhh
c2ggYXQgMTJ0aCBjaGFyYWN0ZXInLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZ2l0V2ViS2l0Q29tbWl0KCkudGl0bGUoKSwgJ1dlYktpdCBhdCA2ZjhiMGRiYmRhOTUn
KTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoJ3Nob3VsZCBkaXNwbGF5IHJldmlzaW9uIGxh
YmVsIGZvbGxvd2VkIGJ5IGdpdCBoYXNoIHRydW5jYXRlZCcsICAoKSA9PiB7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ2l0V2ViS2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmll
cigpLnRpdGxlKCksICdXZWJLaXQgYXQgMTg0Mjc2QG1haW4gKDZmOGIwZGJiZGE5NSknKTsKKyAg
ICAgICAgfSk7CisKICAgICAgICAgaXQoJ3Nob3VsZCBub3QgbW9kaWZ5IE9TIFggdmVyc2lvbics
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQoKS50aXRs
ZSgpLCAnT1MgWCBhdCAxMC4xMS40IDE1RTY1Jyk7CiAgICAgICAgIH0pOwpAQCAtMjIzLDYgKzI4
MywzMSBAQCBkZXNjcmliZSgnQ29tbWl0TG9nJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
ICAgIHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMub3N4CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBkaXNwbGF5IHJldmlzaW9uIGxhYmVsIGZvbGxvd2Vk
IHdpdGggcmV2aXNvbiBhbmQgIGNvbm5lY3Qgd2l0aCAiLSIsIGlmIGJvdGggaGF2ZSByZXZpc2lv
biBsYWJlbCcsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwod2Vi
a2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpLmRpZmYob2xkV2ViS2l0Q29tbWl0V2l0
aFJldmlzaW9uSWRlbnRpZmllcigpKSwgeworICAgICAgICAgICAgICAgIGxhYmVsOiAnMTc1NjA1
LTE4NDI3NkBtYWluIChyMjAwNTc0LXIyMDA4MDUpJywKKyAgICAgICAgICAgICAgICB1cmw6ICcn
LAorICAgICAgICAgICAgICAgIHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMud2Via2l0CisgICAgICAg
ICAgICB9KQorICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIGRpc3BsYXkgcmV2aXNp
b24gbGFiZWwgZm9sbG93ZWQgd2l0aCByZXZpc29uIGFuZCAgY29ubmVjdCB3aXRoICItIiwgaWYg
Ym90aCBoYXZlIHJldmlzaW9uIGxhYmVsJywgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChnaXRXZWJLaXRDb21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKCkuZGlm
ZihvbGRHaXRXZWJLaXRDb21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKCkpLCB7CisgICAgICAg
ICAgICAgICAgbGFiZWw6ICcxNzU2MDUtMTg0Mjc2QG1haW4gKGZmZGExNGU2ZGIwNy4uNmY4YjBk
YmJkYTk1KScsCisgICAgICAgICAgICAgICAgdXJsOiAnJywKKyAgICAgICAgICAgICAgICByZXBv
c2l0b3J5OiBNb2NrTW9kZWxzLndlYmtpdAorICAgICAgICAgICAgfSkKKyAgICAgICAgfSk7CisK
KyAgICAgICAgaXQoJ3Nob3VsZCBjb250YWluIHJldmlzaW9uIGxhYmVsLCBpZiBvbmUgb2YgdGhl
IGNvbW1pdHMgZG9lc25gdCBoYXZlIHRoZSByZXZpc2lvbiBsYWJlbCcsICgpID0+IHsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwod2Via2l0Q29tbWl0V2l0aFJldmlzaW9uSWRl
bnRpZmllcigpLmRpZmYob2xkV2ViS2l0Q29tbWl0KCkpLCB7CisgICAgICAgICAgICAgICAgbGFi
ZWw6ICdyMjAwNTc0IC0gMTg0Mjc2QG1haW4gKHIyMDA4MDUpJywKKyAgICAgICAgICAgICAgICB1
cmw6ICcnLAorICAgICAgICAgICAgICAgIHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMud2Via2l0Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKICAgICB9KTsKIAogICAgIGRlc2NyaWJlKCdo
YXNPcmRlcmluZycsICgpID0+IHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424815</attachid>
            <date>2021-03-31 13:44:55 -0700</date>
            <delta_ts>2021-03-31 17:50:17 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-222897-20210331134454.patch</filename>
            <type>text/plain</type>
            <size>52290</size>
            <attacher name="Zhifei Fang">zhifei_fang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1Mjk4CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCAyZTQ4MWI2MTIzNDI1YWM2YzJkOTVmZTUwYjkxOGNhMGRjYzc4YmI0Li5iZTJkNTI2NTBh
OWZkNWRkNmIyMjU1MjU4ZTE0MGY4NDFjN2M4M2EwIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAyMS0wMy0zMSAgWmhpZmVpIEZhbmcgIDx6aGlmZWlf
ZmFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGNvbW1pdCByZXZpc2lvbiBsYWJlbCBzdXBw
b3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI4
OTcKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgQWRkIG5l
dyBjb2x1bW4gcmV2aXNpb24gbGFiZWwuCisgICAgICAgIE1ha2UgYWxsIGNvbW1pdCBhcGkgYWxz
byBjYW4gd29yayB3aXRoIHJldmlzaW9uIGxhYmVsLgorICAgICAgICBDaGFuZ2UgdGhlIGNvbW1p
dCBsYWJlbCBkaXNwbGF5IHdpdGggY29tbWl0IHJldmlzaW9uIGxhYmVsLgorCisgICAgICAgICog
YnJvd3Nlci10ZXN0cy9jb21taXQtbG9nLXZpZXdlci10ZXN0cy5qczogRml4IGEgZmFpbGVkIHRl
c3QgY2FzZSwgd2hpbGUgcmVxdWVzdGluZyB0aGUgcmVtb3RlIGFwaSwgCisgICAgICAgIHdlIHNo
b3VsZCB3YWl0IGZvciB0aG9zZSBwcm9taXNlcyByZXNvbHZlZCBhbmQgdGhlbiB3YWl0IGZvciBj
b21tcG9uZW50IHRvIHJlbmRlci4KKyAgICAgICAgKiBpbml0LWRhdGFiYXNlLnNxbDogQWRkIG5l
dyBjb2x1bW4gcmV2aXNpb25faWRlbnRpZmllci4KKyAgICAgICAgKiBtaWdyYXRlLWRhdGFiYXNl
LnNxbDogQWRkIG5ldyBjb2x1bW4gcmV2aXNpb25faWRlbnRpZmllci4KKyAgICAgICAgKiBwdWJs
aWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwOiBNYWtlIGFwaSB0aGF0IHdvcmtzIHdp
dGggcmV2aXNpb24gc2hvdWxkIHdvcmsgd2l0aCByZXZpc2lvbiBsYWJlbC4KKyAgICAgICAgKiBw
dWJsaWMvaW5jbHVkZS9jb21taXQtdXBkYXRlci5waHA6IERpdHRvLgorICAgICAgICAqIHB1Ymxp
Yy9pbmNsdWRlL3JlcG9ydC1wcm9jZXNzb3IucGhwOiBNYWtlIHRoZSBwcm9jZXNzb3IgY2FuIGFs
c28gaW5zZXJ0IHJldmlzaW9uIGxhYmVsLgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvY29t
bWl0LWxvZy5qczoKKyAgICAgICAgKENvbW1pdExvZy5wcm90b3R5cGUudXBkYXRlU2luZ2xldG9u
KToKKyAgICAgICAgKENvbW1pdExvZy5wcm90b3R5cGUucmV2aXNpb25JZGVudGlmaWVyKToKKyAg
ICAgICAgKENvbW1pdExvZy5wcm90b3R5cGUubGFiZWwpOiBNYWtlIHRoZSBsYWJlbCBpbmNsdWRl
IHJldmlzaW9uIGxhYmVsIGFuZCByZXZpc2lvbi4KKyAgICAgICAgKENvbW1pdExvZy5wcm90b3R5
cGUuZGlmZik6IE1ha2UgdGhlIGRpZmYgbGFiZWwgaW5jbHVkZSByZXZpc2lvbiBsYWJlbCBhbmQg
cmV2aXNpb24uCisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzOgor
ICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanM6CisgICAg
ICAgICogc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtdGVzdHMuanM6CisgICAgICAgIChyZXBvcnRX
aXRoUmV2aXNpb25JZGVudGlmaWVyQ29tbWl0KToKKyAgICAgICAgKiB1bml0LXRlc3RzL2NvbW1p
dC1sb2ctdGVzdHMuanM6CisKIDIwMjEtMDMtMjIgIERld2VpIFpodSAgPGRld2VpX3podUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW3BlcmYgZGFzaGJvYXJkXSBSZW1vdmUgdjEgYW5kIHYyIGNvZGUu
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jb21t
aXQtbG9nLXZpZXdlci10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9icm93c2Vy
LXRlc3RzL2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzCmluZGV4IGRiYzRjZmNkOWJjMjE0Yjcw
OGVlMTk4ZjFlYTY2NWYyMjQyMjg1NjAuLmY4NDg5ZTdjYWM0NGUyMzAyMGY3ZThmMmNlNjQ0N2E3
YTJjNDJmOGIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9icm93c2VyLXRl
c3RzL2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9icm93c2VyLXRlc3RzL2NvbW1pdC1sb2ctdmlld2VyLXRlc3RzLmpzCkBAIC01NSw2ICs1
NSwxOSBAQCBkZXNjcmliZSgnQ29tbWl0TG9nVmlld2VyJywgKCkgPT4gewogICAgICAgICAibWVz
c2FnZSI6ICJhbm90aGVyIG1lc3NhZ2UiLAogICAgIH07CiAKKyAgICBjb25zdCB3ZWJraXRDb21t
aXQyMTA5NTBXaXRoUmV2aXNpb25JZGVudGlmaWVyID0geworICAgICAgICAiaWQiOiAiMTg1MzM4
IiwKKyAgICAgICAgInJldmlzaW9uIjogIjIxMDk1MCIsCisgICAgICAgICJyZXZpc2lvbklkZW50
aWZpZXIiOiAiMTg0Mjc4QG1haW4iLAorICAgICAgICAicmVwb3NpdG9yeSI6IDEsCisgICAgICAg
ICJwcmV2aW91c0NvbW1pdCI6IG51bGwsCisgICAgICAgICJvd25zQ29tbWl0cyI6IGZhbHNlLAor
ICAgICAgICAidGltZSI6ICtuZXcgRGF0ZSgiMjAxNy0wMS0yMFQwMzo0OTozNy44ODdaIiksCisg
ICAgICAgICJhdXRob3JOYW1lIjogIkNvbW1pdCBRdWV1ZSIsCisgICAgICAgICJhdXRob3JFbWFp
bCI6ICJjb21taXQtcXVldWVAd2Via2l0Lm9yZyIsCisgICAgICAgICJtZXNzYWdlIjogImFub3Ro
ZXIgbWVzc2FnZSIsCisgICAgfTsKKwogICAgIGl0KCdzaG91bGQgaW5pdGlhbGx5IGJlIGVtcHR5
IHdpdGggbm8gc3Bpbm5lcicsICgpID0+IHsKICAgICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBC
cm93c2luZ0NvbnRleHQoKTsKICAgICAgICAgcmV0dXJuIGltcG9ydENvbW1pdExvZ1ZpZXdlcihj
b250ZXh0KS50aGVuKChDb21taXRMb2dWaWV3ZXIpID0+IHsKQEAgLTEyOSw5ICsxNDIsOSBAQCBk
ZXNjcmliZSgnQ29tbWl0TG9nVmlld2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgICJzdGF0
dXMiOiAiT0siLAogICAgICAgICAgICAgICAgICJjb21taXRzIjogW3dlYmtpdENvbW1pdDIxMDk0
OF0sCiAgICAgICAgICAgICB9KTsKLQorICAgICAgICAgICAgYXdhaXQgcmVxdWVzdHNbMF0ucHJv
bWlzZTsKKyAgICAgICAgICAgIGF3YWl0IHJlcXVlc3RzWzFdLnByb21pc2U7CiAgICAgICAgICAg
ICBhd2FpdCB3YWl0Rm9yQ29tcG9uZW50c1RvUmVuZGVyKGNvbnRleHQpOwotCiAgICAgICAgICAg
ICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ3NwaW5uZXItY29udGFpbmVyJykub2Zmc2V0SGVpZ2h0
KS50by5iZSgwKTsKICAgICAgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnY29tbWl0cy1s
aXN0JykubWF0Y2hlcygnOmVtcHR5JykpLnRvLmJlKGZhbHNlKTsKICAgICAgICAgICAgIGV4cGVj
dCh2aWV3ZXIuY29udGVudCgnY29tbWl0cy1saXN0JykudGV4dENvbnRlbnQpLnRvLmNvbnRhaW4o
J3IyMTA5NDknKTsKQEAgLTE0NCw0ICsxNTcsNDcgQEAgZGVzY3JpYmUoJ0NvbW1pdExvZ1ZpZXdl
cicsICgpID0+IHsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKKyAgICBpdCgnc2hvdWxkIHNob3cg
cmV2aXNpb24gbGFiZWwnLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGNvbnN0IGNvbnRleHQgPSBu
ZXcgQnJvd3NpbmdDb250ZXh0KCk7CisgICAgICAgIGNvbnN0IENvbW1pdExvZ1ZpZXdlciA9IGF3
YWl0IGltcG9ydENvbW1pdExvZ1ZpZXdlcihjb250ZXh0KTsKKyAgICAgICAgY29uc3QgUmVwb3Np
dG9yeSA9IGNvbnRleHQuc3ltYm9scy5SZXBvc2l0b3J5OworICAgICAgICBjb25zdCByZXF1ZXN0
cyA9IGNvbnRleHQuc3ltYm9scy5SZW1vdGVBUEkucmVxdWVzdHM7CisgICAgICAgIGNvbnN0IHZp
ZXdlciA9IG5ldyBDb21taXRMb2dWaWV3ZXI7CisgICAgICAgIGNvbnN0IHdlYmtpdCA9IG5ldyBS
ZXBvc2l0b3J5KDEsIHtuYW1lOiAnV2ViS2l0J30pOworICAgICAgICBjb250ZXh0LmRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQodmlld2VyLmVsZW1lbnQoKSk7CisKKyAgICAgICAgdmlld2VyLmVu
cXVldWVUb1JlbmRlcigpOworICAgICAgICBhd2FpdCB3YWl0Rm9yQ29tcG9uZW50c1RvUmVuZGVy
KGNvbnRleHQpOworCisgICAgICAgIHZpZXdlci52aWV3KHdlYmtpdCwgJzIxMDk0OCcsICcyMTA5
NTAnKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvckNvbXBvbmVudHNUb1JlbmRlcihjb250ZXh0KTsK
KyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250ZW50KCdzcGlubmVyLWNvbnRhaW5lcicpLm9mZnNl
dEhlaWdodCkudG8ubm90LmJlKDApOworICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ2Nv
bW1pdHMtbGlzdCcpLm1hdGNoZXMoJzplbXB0eScpKS50by5iZSh0cnVlKTsKKyAgICAgICAgZXhw
ZWN0KHZpZXdlci5jb250ZW50KCdyZXBvc2l0b3J5LW5hbWUnKS5tYXRjaGVzKCc6ZW1wdHknKSku
dG8uYmUoZmFsc2UpOworICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ3JlcG9zaXRvcnkt
bmFtZScpLnRleHRDb250ZW50KS50by5jb250YWluKCdXZWJLaXQnKTsKKyAgICAgICAgZXhwZWN0
KHJlcXVlc3RzLmxlbmd0aCkudG8uYmUoMik7CisgICAgICAgIGV4cGVjdChyZXF1ZXN0c1swXS51
cmwpLnRvLmJlKCcvYXBpL2NvbW1pdHMvMS8/cHJlY2VkaW5nUmV2aXNpb249MjEwOTQ4Jmxhc3RS
ZXZpc2lvbj0yMTA5NTAnKTsKKyAgICAgICAgZXhwZWN0KHJlcXVlc3RzWzFdLnVybCkudG8uYmUo
Jy9hcGkvY29tbWl0cy8xLzIxMDk0OCcpOworICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKHsK
KyAgICAgICAgICAgICJzdGF0dXMiOiAiT0siLAorICAgICAgICAgICAgImNvbW1pdHMiOiBbd2Vi
a2l0Q29tbWl0MjEwOTQ5LCB3ZWJraXRDb21taXQyMTA5NTBXaXRoUmV2aXNpb25JZGVudGlmaWVy
XSwKKyAgICAgICAgfSk7CisKKyAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2ZSh7CisgICAgICAg
ICAgICAic3RhdHVzIjogIk9LIiwKKyAgICAgICAgICAgICJjb21taXRzIjogW3dlYmtpdENvbW1p
dDIxMDk0OF0sCisgICAgICAgIH0pOworCisgICAgICAgIGF3YWl0IHJlcXVlc3RzWzBdLnByb21p
c2U7CisgICAgICAgIGF3YWl0IHJlcXVlc3RzWzFdLnByb21pc2U7CisgICAgICAgIGF3YWl0IHdh
aXRGb3JDb21wb25lbnRzVG9SZW5kZXIoY29udGV4dCk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIu
Y29udGVudCgnc3Bpbm5lci1jb250YWluZXInKS5vZmZzZXRIZWlnaHQpLnRvLmJlKDApOworICAg
ICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLm1hdGNoZXMoJzplbXB0
eScpKS50by5iZShmYWxzZSk7CisgICAgICAgIGV4cGVjdCh2aWV3ZXIuY29udGVudCgnY29tbWl0
cy1saXN0JykudGV4dENvbnRlbnQpLnRvLmNvbnRhaW4oJzE4NDI3OEBtYWluIChyMjEwOTUwKScp
OworICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ2NvbW1pdHMtbGlzdCcpLnRleHRDb250
ZW50KS50by5jb250YWluKCdDb21taXQgUXVldWUnKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5j
b250ZW50KCdyZXBvc2l0b3J5LW5hbWUnKS5tYXRjaGVzKCc6ZW1wdHknKSkudG8uYmUoZmFsc2Up
OworICAgICAgICBleHBlY3Qodmlld2VyLmNvbnRlbnQoJ3JlcG9zaXRvcnktbmFtZScpLnRleHRD
b250ZW50KS50by5jb250YWluKCdXZWJLaXQnKTsKKyAgICAgICAgZXhwZWN0KHZpZXdlci5jb250
ZW50KCdjb21taXRzLWxpc3QnKS5xdWVyeVNlbGVjdG9yKCdhJykpLnRvLmJlKG51bGwpOworICAg
IH0pOworCiB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRh
dGFiYXNlLnNxbCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbApp
bmRleCA2MDU0OTkwMzg4NTFjZDdjYWMyNjBhMjA3NTJkNGJkYzM2YzhhMjQxLi5mNjhiNWYwYzAz
M2EyMjY0MzA3YzJmODNmM2Q0ZmI3NGJkYjE1M2VkIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL2luaXQtZGF0YWJhc2Uuc3FsCkBAIC0xMDIsNiArMTAyLDcgQEAgQ1JFQVRFIFRBQkxFIGNv
bW1pdHMgKAogICAgIGNvbW1pdF9pZCBzZXJpYWwgUFJJTUFSWSBLRVksCiAgICAgY29tbWl0X3Jl
cG9zaXRvcnkgaW50ZWdlciBOT1QgTlVMTCBSRUZFUkVOQ0VTIHJlcG9zaXRvcmllcyBPTiBERUxF
VEUgQ0FTQ0FERSwKICAgICBjb21taXRfcmV2aXNpb24gdmFyY2hhcig2NCkgTk9UIE5VTEwsCisg
ICAgY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXIgdmFyY2hhcig2NCkgREVGQVVMVCBOVUxMLAog
ICAgIGNvbW1pdF9wcmV2aW91c19jb21taXQgaW50ZWdlciBSRUZFUkVOQ0VTIGNvbW1pdHMgT04g
REVMRVRFIENBU0NBREUsCiAgICAgY29tbWl0X3RpbWUgdGltZXN0YW1wLAogICAgIGNvbW1pdF9v
cmRlciBpbnRlZ2VyLApAQCAtMTA5LDcgKzExMCw4IEBAIENSRUFURSBUQUJMRSBjb21taXRzICgK
ICAgICBjb21taXRfbWVzc2FnZSB0ZXh0LAogICAgIGNvbW1pdF9yZXBvcnRlZCBib29sZWFuIE5P
VCBOVUxMIERFRkFVTFQgRkFMU0UsCiAgICAgY29tbWl0X3Rlc3RhYmlsaXR5IHZhcmNoYXIoMTI4
KSBERUZBVUxUIE5VTEwsCi0gICAgQ09OU1RSQUlOVCBjb21taXRfaW5fcmVwb3NpdG9yeV9tdXN0
X2JlX3VuaXF1ZSBVTklRVUUoY29tbWl0X3JlcG9zaXRvcnksIGNvbW1pdF9yZXZpc2lvbikpOwor
ICAgIENPTlNUUkFJTlQgY29tbWl0X2luX3JlcG9zaXRvcnlfbXVzdF9iZV91bmlxdWUgVU5JUVVF
KGNvbW1pdF9yZXBvc2l0b3J5LCBjb21taXRfcmV2aXNpb24pLAorICAgIENPTlNUUkFJTlQgY29t
bWl0X3N0cmluZ19pZGVudGlmaWVyX2luX3JlcG9zaXRvcnlfbXVzdF9iZV91bmlxdWUgVU5JUVVF
KGNvbW1pdF9yZXBvc2l0b3J5LCBjb21taXRfcmV2aXNpb25faWRlbnRpZmllcikpOwogQ1JFQVRF
IElOREVYIGNvbW1pdF90aW1lX2luZGV4IE9OIGNvbW1pdHMoY29tbWl0X3RpbWUpOwogQ1JFQVRF
IElOREVYIGNvbW1pdF9vcmRlcl9pbmRleCBPTiBjb21taXRzKGNvbW1pdF9vcmRlcik7CiAKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbCBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbAppbmRleCA5ZTYx
MzM2MDQxMTdhNzEyMzJhZWQ2ODNlNTcxNDk4NDRhYTExMjhkLi4wZWE5MTMzZGE2ZWRlMzI1ZGRm
NmMyMWQ4YjkzN2ZiNzM1NjQyNTlhIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvbWlncmF0ZS1kYXRhYmFzZS5zcWwKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL21p
Z3JhdGUtZGF0YWJhc2Uuc3FsCkBAIC0yLDYgKzIsMTAgQEAgRE8gJCQKIAogQkVHSU4KIEFMVEVS
IFRBQkxFIGJ1aWxkX3JlcXVlc3RzIEFERCBDT0xVTU4gSUYgTk9UIEVYSVNUUyByZXF1ZXN0X3N0
YXR1c19kZXNjcmlwdGlvbiB2YXJjaGFyKDEwMjQpIERFRkFVTFQgTlVMTDsKK0FMVEVSIFRBQkxF
IHBsYXRmb3JtcyBBREQgQ09MVU1OICBJRiBOT1QgRVhJU1RTIHBsYXRmb3JtX2dyb3VwIGludGVn
ZXIgUkVGRVJFTkNFUyBwbGF0Zm9ybV9ncm91cHMgREVGQVVMVCBOVUxMOworQUxURVIgVEFCTEUg
Y29tbWl0cyBBREQgQ09MVU1OIElGIE5PVCBFWElTVFMgY29tbWl0X3JldmlzaW9uX2lkZW50aWZp
ZXIgdmFyY2hhcig2NCkgREVGQVVMVCBOVUxMOworQUxURVIgVEFCTEUgY29tbWl0cyBEUk9QIENP
TlNUUkFJTlQgY29tbWl0X3N0cmluZ19pZGVudGlmaWVyX2luX3JlcG9zaXRvcnlfbXVzdF9iZV91
bmlxdWU7CitBTFRFUiBUQUJMRSBjb21taXRzIEFERCBDT05TVFJBSU5UIGNvbW1pdF9zdHJpbmdf
aWRlbnRpZmllcl9pbl9yZXBvc2l0b3J5X211c3RfYmVfdW5pcXVlIFVOSVFVRShjb21taXRfcmVw
b3NpdG9yeSwgY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXIpOwogCiBDUkVBVEUgVEFCTEUgSUYg
Tk9UIEVYSVNUUyBwbGF0Zm9ybV9ncm91cHMgKAogICAgIHBsYXRmb3JtZ3JvdXBfaWQgc2VyaWFs
IFBSSU1BUlkgS0VZLApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL2luY2x1ZGUvY29tbWl0LWxvZy1mZXRjaGVyLnBocAppbmRleCA2ZTBiZWNkMGJj
ODE2NGMwNDJmZDNmYjJmMzk5OGM0MTU0ZmViMGUxLi41MDU4ZjcxM2VhYjlkMDk4ZGQwOGM1ZTFl
YTEyYmRmYmZlNzMyYTU2IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL2luY2x1ZGUvY29tbWl0LWxvZy1mZXRjaGVyLnBocAorKysgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LWxvZy1mZXRjaGVyLnBocApAQCAtOCwxNCAr
OCwxNiBAQCBjbGFzcyBDb21taXRMb2dGZXRjaGVyIHsKIAogICAgIHN0YXRpYyBmdW5jdGlvbiBm
aW5kX2NvbW1pdF9pZF9ieV9yZXZpc2lvbigkZGIsICRyZXBvc2l0b3J5X2lkLCAkcmV2aXNpb24p
CiAgICAgewotICAgICAgICAkY29tbWl0X3Jvd3MgPSAkZGItPnF1ZXJ5X2FuZF9mZXRjaF9hbGwo
J1NFTEVDVCBjb21taXRfaWQgRlJPTSBjb21taXRzIFdIRVJFIGNvbW1pdF9yZXBvc2l0b3J5ID0g
JDEgQU5EIGNvbW1pdF9yZXZpc2lvbiA9ICQyJywgYXJyYXkoJHJlcG9zaXRvcnlfaWQsICRyZXZp
c2lvbikpOworICAgICAgICAkY29sdW1uX25hbWUgPSBDb21taXRMb2dGZXRjaGVyOjppc19jb21t
aXRfcmV2aXNpb25faWRlbnRpZmllcigkcmV2aXNpb24pID8gJ2NvbW1pdF9yZXZpc2lvbl9pZGVu
dGlmaWVyJyA6ICdjb21taXRfcmV2aXNpb24nOworICAgICAgICAKKyAgICAgICAgJGNvbW1pdF9y
b3dzID0gJGRiLT5xdWVyeV9hbmRfZmV0Y2hfYWxsKCJTRUxFQ1QgY29tbWl0X2lkIEZST00gY29t
bWl0cyBXSEVSRSBjb21taXRfcmVwb3NpdG9yeSA9ICQxIEFORCAkY29sdW1uX25hbWUgPSAkMiIs
IGFycmF5KCRyZXBvc2l0b3J5X2lkLCAkcmV2aXNpb24pKTsKICAgICAgICAgaWYgKCRjb21taXRf
cm93cykKICAgICAgICAgICAgIHJldHVybiAkY29tbWl0X3Jvd3NbMF1bJ2NvbW1pdF9pZCddOwog
CiAgICAgICAgIGlmICghY3R5cGVfYWxudW0oJHJldmlzaW9uKSkKICAgICAgICAgICAgIHJldHVy
biBOVUxMOwogCi0gICAgICAgICRjb21taXRfcm93cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNoX2Fs
bCgnU0VMRUNUIGNvbW1pdF9pZCBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkg
PSAkMSBBTkQgY29tbWl0X3JldmlzaW9uIExJS0UgJDIgTElNSVQgMicsIGFycmF5KCRyZXBvc2l0
b3J5X2lkLCBEYXRhYmFzZTo6ZXNjYXBlX2Zvcl9saWtlKCRyZXZpc2lvbikgLiAnJScpKTsKKyAg
ICAgICAgJGNvbW1pdF9yb3dzID0gJGRiLT5xdWVyeV9hbmRfZmV0Y2hfYWxsKCJTRUxFQ1QgY29t
bWl0X2lkIEZST00gY29tbWl0cyBXSEVSRSBjb21taXRfcmVwb3NpdG9yeSA9ICQxIEFORCAkY29s
dW1uX25hbWUgIExJS0UgJDIgTElNSVQgMiIsIGFycmF5KCRyZXBvc2l0b3J5X2lkLCBEYXRhYmFz
ZTo6ZXNjYXBlX2Zvcl9saWtlKCRyZXZpc2lvbikgLiAnJScpKTsKICAgICAgICAgaWYgKCEkY29t
bWl0X3Jvd3MpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgaWYgKGNvdW50KCRj
b21taXRfcm93cykgPiAxKQpAQCAtNTUsNiArNTcsNyBAQCBjbGFzcyBDb21taXRMb2dGZXRjaGVy
IHsKICAgICB7CiAgICAgICAgICRzdGF0ZW1lbnRzID0gJ1NFTEVDVCBjb21taXRfaWQgYXMgImlk
IiwKICAgICAgICAgICAgIGNvbW1pdF9yZXZpc2lvbiBhcyAicmV2aXNpb24iLAorICAgICAgICAg
ICAgY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXIgYXMgInJldmlzaW9uSWRlbnRpZmllciIsCiAg
ICAgICAgICAgICBjb21taXRfcHJldmlvdXNfY29tbWl0IGFzICJwcmV2aW91c0NvbW1pdCIsCiAg
ICAgICAgICAgICBjb21taXRfdGltZSBhcyAidGltZSIsCiAgICAgICAgICAgICBjb21taXR0ZXJf
bmFtZSBhcyAiYXV0aG9yTmFtZSIsCkBAIC0xOTIsOCArMTk1LDE0IEBAIGNsYXNzIENvbW1pdExv
Z0ZldGNoZXIgewogICAgICAgICByZXR1cm4gJHRoaXMtPmZvcm1hdF9zaW5nbGVfY29tbWl0KCRj
b21taXQpOwogICAgIH0KIAorICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGlzX2NvbW1pdF9y
ZXZpc2lvbl9pZGVudGlmaWVyKCRjb21taXRfcmV2aXNpb25fb3JfcmV2aXNpb25faWRlbnRpZmll
cikgCisgICAgeworICAgICAgICByZXR1cm4gcHJlZ19tYXRjaCgnL15cZCtAW1x3XC5cLV0qJC8n
LCAkY29tbWl0X3JldmlzaW9uX29yX3JldmlzaW9uX2lkZW50aWZpZXIpOworICAgIH0KKwogICAg
IHByaXZhdGUgZnVuY3Rpb24gY29tbWl0X2Zvcl9yZXZpc2lvbigkcmVwb3NpdG9yeV9pZCwgJHJl
dmlzaW9uKSB7Ci0gICAgICAgICRjb21taXRfaW5mbyA9IGFycmF5KCdyZXBvc2l0b3J5JyA9PiAk
cmVwb3NpdG9yeV9pZCwgJ3JldmlzaW9uJyA9PiAkcmV2aXNpb24pOworICAgICAgICAkY29tbWl0
X2luZm8gPSBhcnJheSgncmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlfaWQpOyAKKyAgICAgICAg
JGNvbW1pdF9pbmZvWyR0aGlzLT5pc19jb21taXRfcmV2aXNpb25faWRlbnRpZmllcigkcmV2aXNp
b24pID8gJ3JldmlzaW9uX2lkZW50aWZpZXInIDogJ3JldmlzaW9uJ10gPSAkcmV2aXNpb247CiAg
ICAgICAgICRyb3cgPSAkdGhpcy0+ZGItPnNlbGVjdF9sYXN0X3JvdygnY29tbWl0cycsICdjb21t
aXQnLCAkY29tbWl0X2luZm8pOwogICAgICAgICBpZiAoISRyb3cpCiAgICAgICAgICAgICBleGl0
X3dpdGhfZXJyb3IoJ1Vua25vd25Db21taXQnLCAkY29tbWl0X2luZm8pOwpAQCAtMjAxLDcgKzIx
MCw4IEBAIGNsYXNzIENvbW1pdExvZ0ZldGNoZXIgewogICAgIH0KIAogICAgIHByaXZhdGUgZnVu
Y3Rpb24gY29tbWl0X2Zvcl9yZXZpc2lvbl9wcmVmaXgoJHJlcG9zaXRvcnlfaWQsICRyZXZpc2lv
bl9wcmVmaXgpIHsKLSAgICAgICAgJHJvd3MgPSAkdGhpcy0+ZGItPnF1ZXJ5X2FuZF9mZXRjaF9h
bGwoJ1NFTEVDVCAqIEZST00gY29tbWl0cyBXSEVSRSBjb21taXRfcmVwb3NpdG9yeSA9ICQxIEFO
RCBjb21taXRfcmV2aXNpb24gTElLRSAkMiBPUkRFUiBCWSBjb21taXRfcmV2aXNpb24gTElNSVQg
MicsIGFycmF5KCRyZXBvc2l0b3J5X2lkLCBEYXRhYmFzZTo6ZXNjYXBlX2Zvcl9saWtlKCRyZXZp
c2lvbl9wcmVmaXgpIC4gJyUnKSk7CisgICAgICAgICRjb2x1bW5fbmFtZSA9ICR0aGlzLT5pc19j
b21taXRfcmV2aXNpb25faWRlbnRpZmllcigkcmV2aXNpb25fcHJlZml4KSA/ICdyZXZpc2lvbl9p
ZGVudGlmaWVyJyA6ICdyZXZpc2lvbic7CisgICAgICAgICRyb3dzID0gJHRoaXMtPmRiLT5xdWVy
eV9hbmRfZmV0Y2hfYWxsKCJTRUxFQ1QgKiBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X3JlcG9z
aXRvcnkgPSAkMSBBTkQgY29tbWl0XyRjb2x1bW5fbmFtZSBMSUtFICQyIE9SREVSIEJZIGNvbW1p
dF8kY29sdW1uX25hbWUgTElNSVQgMiIsIGFycmF5KCRyZXBvc2l0b3J5X2lkLCBEYXRhYmFzZTo6
ZXNjYXBlX2Zvcl9saWtlKCRyZXZpc2lvbl9wcmVmaXgpIC4gJyUnKSk7CiAgICAgICAgIGlmIChj
b3VudCgkcm93cykgPT0gMCkKICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignVW5rbm93bkNv
bW1pdCcsIGFycmF5KCdyZXBvc2l0b3J5JyA9PiAkcmVwb3NpdG9yeV9pZCwgJ3JldmlzaW9uJyA9
PiAkcmV2aXNpb25fcHJlZml4KSk7CiAgICAgICAgIGlmIChjb3VudCgkcm93cykgPT0gMikgewpA
QCAtMjI0LDYgKzIzNCw3IEBAIGNsYXNzIENvbW1pdExvZ0ZldGNoZXIgewogICAgICAgICByZXR1
cm4gYXJyYXkoCiAgICAgICAgICAgICAnaWQnID0+ICRjb21taXRfcm93Wydjb21taXRfaWQnXSwK
ICAgICAgICAgICAgICdyZXZpc2lvbicgPT4gJGNvbW1pdF9yb3dbJ2NvbW1pdF9yZXZpc2lvbidd
LAorICAgICAgICAgICAgJ3JldmlzaW9uSWRlbnRpZmllcicgPT4gJGNvbW1pdF9yb3dbJ2NvbW1p
dF9yZXZpc2lvbl9pZGVudGlmaWVyJ10sCiAgICAgICAgICAgICAncmVwb3NpdG9yeScgPT4gJGNv
bW1pdF9yb3dbJ2NvbW1pdF9yZXBvc2l0b3J5J10sCiAgICAgICAgICAgICAncHJldmlvdXNDb21t
aXQnID0+ICRjb21taXRfcm93Wydjb21taXRfcHJldmlvdXNfY29tbWl0J10sCiAgICAgICAgICAg
ICAndGltZScgPT4gRGF0YWJhc2U6OnRvX2pzX3RpbWUoJGNvbW1pdF9yb3dbJ2NvbW1pdF90aW1l
J10pLApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRl
L2NvbW1pdC11cGRhdGVyLnBocCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5j
bHVkZS9jb21taXQtdXBkYXRlci5waHAKaW5kZXggMDhjNjhiYmU2NDEwYWZmMDZkYjg3NTQ5OTJh
NDhjOTM3ZTcwZTMyZi4uNDMyMjBkMzE5MzIyMDdlYzgyMjhlMjIzZjY0Mjg2ZDNiYzBiODA2YyAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1p
dC11cGRhdGVyLnBocAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1
ZGUvY29tbWl0LXVwZGF0ZXIucGhwCkBAIC0zMCw3ICszMCw2IEBAIGNsYXNzIENvbW1pdFVwZGF0
ZXIgewogICAgIHByaXZhdGUgZnVuY3Rpb24gdXBkYXRlX2NvbW1pdCgmJHVwZGF0ZSwgJG93bmVy
X2NvbW1pdF9pZCwgJG93bmVyX3JlcG9zaXRvcnlfaWQsICRzaG91bGRfaW5zZXJ0KQogICAgIHsK
ICAgICAgICAgJGNvbW1pdF9kYXRhID0gJiR0aGlzLT5yZXNvbHZlX2ZpZWxkc19mcm9tX2RhdGFi
YXNlKCR1cGRhdGUsICRvd25lcl9yZXBvc2l0b3J5X2lkLCAkc2hvdWxkX2luc2VydCk7Ci0KICAg
ICAgICAgJGNvbW1pdF9zZWxlY3RfcXVlcnkgPSBhcnJheSgncmVwb3NpdG9yeScgPT4gJGNvbW1p
dF9kYXRhWydyZXBvc2l0b3J5J10sICdyZXZpc2lvbicgPT4gJGNvbW1pdF9kYXRhWydyZXZpc2lv
biddKTsKICAgICAgICAgaWYgKCRzaG91bGRfaW5zZXJ0KSB7CiAgICAgICAgICAgICAkY29tbWl0
X2lkID0gJHRoaXMtPmRiLT51cGRhdGVfb3JfaW5zZXJ0X3JvdygnY29tbWl0cycsICdjb21taXQn
LCAkY29tbWl0X3NlbGVjdF9xdWVyeSwgJGNvbW1pdF9kYXRhKTsKQEAgLTc0LDYgKzczLDcgQEAg
Y2xhc3MgQ29tbWl0VXBkYXRlciB7CiAgICAgcHJpdmF0ZSBmdW5jdGlvbiAmY29uc3RydWN0X3Vw
ZGF0ZV9saXN0KCYkY29tbWl0X2luZm9fbGlzdCwgJHNob3VsZF9pbnNlcnQpCiAgICAgewogICAg
ICAgICAkdXBkYXRlX2xpc3QgPSBhcnJheSgpOworICAgICAgICAkY29tbWl0X3JldmlzaW9uX2lk
ZW50aWZpZXJzID0gYXJyYXkoKTsKIAogICAgICAgICBmb3JlYWNoICgkY29tbWl0X2luZm9fbGlz
dCBhcyAmJGNvbW1pdF9pbmZvKSB7CiAgICAgICAgICAgICBzZWxmOjp2YWxpZGF0ZV9jb21taXRz
KCRjb21taXRfaW5mbyk7CkBAIC04MSw2ICs4MSwxMSBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsK
ICAgICAgICAgICAgICRoYXNfdXBkYXRlID0gY291bnQoJGNvbW1pdF9kYXRhKSA+IDE7CiAKICAg
ICAgICAgICAgICR1cGRhdGUgPSBhcnJheSgnY29tbWl0JyA9PiAmJGNvbW1pdF9kYXRhLCAncmVw
b3NpdG9yeScgPT4gJiRjb21taXRfaW5mb1sncmVwb3NpdG9yeSddKTsKKyAgICAgICAgICAgIGlm
IChhcnJheV9rZXlfZXhpc3RzKCdyZXZpc2lvbklkZW50aWZpZXInLCAkY29tbWl0X2luZm8pKSB7
CisgICAgICAgICAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJGNvbW1pdF9pbmZvWydyZXZp
c2lvbklkZW50aWZpZXInXSwgJGNvbW1pdF9yZXZpc2lvbl9pZGVudGlmaWVycykpCisgICAgICAg
ICAgICAgICAgICAgICR0aGlzLT5leGl0X3dpdGhfZXJyb3IoJ0R1cGxpY2F0ZWRSZXZpc2lvbklk
ZW50aWZpZXInLCBhcnJheSgnY29tbWl0JyA9PiAkY29tbWl0X2luZm8pKTsKKyAgICAgICAgICAg
ICAgICAkY29tbWl0X3JldmlzaW9uX2lkZW50aWZpZXJzWyRjb21taXRfaW5mb1sncmV2aXNpb25J
ZGVudGlmaWVyJ11dID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChhcnJh
eV9rZXlfZXhpc3RzKCdwcmV2aW91c0NvbW1pdCcsICRjb21taXRfaW5mbykpIHsKICAgICAgICAg
ICAgICAgICAkaGFzX3VwZGF0ZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgJHVwZGF0ZVsncHJl
dmlvdXNfY29tbWl0J10gPSAmJGNvbW1pdF9pbmZvWydwcmV2aW91c0NvbW1pdCddOwpAQCAtMTA0
LDYgKzEwOSw3IEBAIGNsYXNzIENvbW1pdFVwZGF0ZXIgewogCiAgICAgICAgICAgICAkb3duZWRf
Y29tbWl0X3VwZGF0ZV9saXN0ID0gYXJyYXkoKTsKICAgICAgICAgICAgIGZvcmVhY2goJGNvbW1p
dF9pbmZvWydvd25lZENvbW1pdHMnXSBhcyAkb3duZWRfcmVwb3NpdG9yeV9uYW1lID0+ICYkb3du
ZWRfY29tbWl0X2luZm8pIHsKKyAgICAgICAgICAgICAgICBzZWxmOjp2YWxpZGF0ZV9jb21taXRz
KCRvd25lZF9jb21taXRfaW5mbywgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgJG93bmVkX2NvbW1p
dCA9ICZzZWxmOjpjb25zdHJ1Y3RfY29tbWl0X2RhdGEoJG93bmVkX2NvbW1pdF9pbmZvLCAkb3du
ZWRfcmVwb3NpdG9yeV9uYW1lLCAkc2hvdWxkX2luc2VydCk7CiAgICAgICAgICAgICAgICAgJG93
bmVkX2NvbW1pdF91cGRhdGUgPSBhcnJheSgnY29tbWl0JyA9PiAmJG93bmVkX2NvbW1pdCwgJ3Jl
cG9zaXRvcnknID0+ICRvd25lZF9yZXBvc2l0b3J5X25hbWUpOwogCkBAIC0xNDMsMTUgKzE0OSwx
OCBAQCBjbGFzcyBDb21taXRVcGRhdGVyIHsKICAgICAgICAgICAgICRjb21taXRfZGF0YVsndGlt
ZSddID0gJGNvbW1pdF9pbmZvWyd0aW1lJ107CiAgICAgICAgIH0KIAorICAgICAgICBpZiAoYXJy
YXlfa2V5X2V4aXN0cygncmV2aXNpb25JZGVudGlmaWVyJywgJGNvbW1pdF9pbmZvKSkKKyAgICAg
ICAgICAgICRjb21taXRfZGF0YVsncmV2aXNpb25faWRlbnRpZmllciddID0gJGNvbW1pdF9pbmZv
WydyZXZpc2lvbklkZW50aWZpZXInXTsKKwogICAgICAgICBpZiAoJHNob3VsZF9pbnNlcnQpCiAg
ICAgICAgICAgICAkY29tbWl0X2RhdGFbJ3JlcG9ydGVkJ10gPSB0cnVlOwogCiAgICAgICAgIHJl
dHVybiAkY29tbWl0X2RhdGE7CiAgICAgfQogCi0gICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24g
dmFsaWRhdGVfY29tbWl0cygmJGNvbW1pdF9pbmZvKQorICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0
aW9uIHZhbGlkYXRlX2NvbW1pdHMoJiRjb21taXRfaW5mbywgJGlzX293bl9jb21taXQgPSBmYWxz
ZSkKICAgICB7Ci0gICAgICAgIGlmICghYXJyYXlfa2V5X2V4aXN0cygncmVwb3NpdG9yeScsICRj
b21taXRfaW5mbykpCisgICAgICAgIGlmICghYXJyYXlfa2V5X2V4aXN0cygncmVwb3NpdG9yeScs
ICRjb21taXRfaW5mbykgJiYgISRpc19vd25fY29tbWl0KQogICAgICAgICAgICAgZXhpdF93aXRo
X2Vycm9yKCdNaXNzaW5nUmVwb3NpdG9yeU5hbWUnLCBhcnJheSgnY29tbWl0JyA9PiAkY29tbWl0
X2luZm8pKTsKICAgICAgICAgaWYgKCFhcnJheV9rZXlfZXhpc3RzKCdyZXZpc2lvbicsICRjb21t
aXRfaW5mbykpCiAgICAgICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ01pc3NpbmdSZXZpc2lvbics
IGFycmF5KCdjb21taXQnID0+ICRjb21taXRfaW5mbykpOwpAQCAtMTYwLDYgKzE2OSw4IEBAIGNs
YXNzIENvbW1pdFVwZGF0ZXIgewogICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdJbnZhbGlk
QXV0aG9yRm9ybWF0JywgYXJyYXkoJ2NvbW1pdCcgPT4gJGNvbW1pdF9pbmZvKSk7CiAgICAgICAg
IGlmIChhcnJheV9rZXlfZXhpc3RzKCdwcmV2aW91c0NvbW1pdCcsICRjb21taXRfaW5mbykpCiAg
ICAgICAgICAgICByZXF1aXJlX2Zvcm1hdCgnUmV2aXNpb24nLCAkY29tbWl0X2luZm9bJ3ByZXZp
b3VzQ29tbWl0J10sICcvXltBLVphLXowLTkgXC5dKyQvJyk7CisgICAgICAgIGlmIChhcnJheV9r
ZXlfZXhpc3RzKCdyZXZpc2lvbklkZW50aWZpZXInLCAkY29tbWl0X2luZm8pKQorICAgICAgICAg
ICAgcmVxdWlyZV9mb3JtYXQoJ1JldmlzaW9uSWRlbnRpZmllcicsICRjb21taXRfaW5mb1sncmV2
aXNpb25JZGVudGlmaWVyJ10sICcvXlxkK0BbXHdcLlwtXSskLycpOwogICAgIH0KIAogICAgIHBy
aXZhdGUgZnVuY3Rpb24gcmVzb2x2ZV9yZXBvc2l0b3J5KCRyZXBvc2l0b3J5X25hbWUsICRvd25l
cl9yZXBvc2l0b3J5X2lkLCAkc2hvdWxkX2luc2VydCkKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9yZXBvcnQtcHJvY2Vzc29yLnBocCBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9yZXBvcnQtcHJvY2Vzc29yLnBocApp
bmRleCA3Y2Q3ZWE0MGQ4NjM1NmRlMzk4Y2M5ZjZjMjlmZWE4ZGE5YmMwMDI2Li4yMjk1YTA3OTcx
YzlmN2IzNmQwNzljMzc3ZTAzNDQwNTFlNDRjYzViIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvcmVwb3J0LXByb2Nlc3Nvci5waHAKKysrIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL3JlcG9ydC1wcm9jZXNzb3IucGhw
CkBAIC0xNjIsMTQgKzE2MiwxNiBAQCBjbGFzcyBSZXBvcnRQcm9jZXNzb3IgewogICAgICAgICAg
ICAgICAgICR0aGlzLT5yb2xsYmFja193aXRoX2Vycm9yKCdGYWlsZWRUb1VwZGF0ZUJ1aWxkUmVx
dWVzdCcsIGFycmF5KCdidWlsZFJlcXVlc3QnID0+ICRidWlsZF9yZXF1ZXN0X2lkLCAnYnVpbGQn
ID0+ICRidWlsZF9pZCkpOwogICAgICAgICB9CiAKLQogICAgICAgICBmb3JlYWNoICgkcmV2aXNp
b25zIGFzICRyZXBvc2l0b3J5X25hbWUgPT4gJHJldmlzaW9uX2RhdGEpIHsKICAgICAgICAgICAg
ICRyZXBvc2l0b3J5X2lkID0gJHRoaXMtPmRiLT5zZWxlY3Rfb3JfaW5zZXJ0X3JvdygncmVwb3Np
dG9yaWVzJywgJ3JlcG9zaXRvcnknLCBhcnJheSgnbmFtZScgPT4gJHJlcG9zaXRvcnlfbmFtZSwg
J293bmVyJyA9PiBOVUxMKSk7CiAgICAgICAgICAgICBpZiAoISRyZXBvc2l0b3J5X2lkKQogICAg
ICAgICAgICAgICAgICR0aGlzLT5yb2xsYmFja193aXRoX2Vycm9yKCdGYWlsZWRUb0luc2VydFJl
cG9zaXRvcnknLCBhcnJheSgnbmFtZScgPT4gJHJlcG9zaXRvcnlfbmFtZSkpOwogCi0gICAgICAg
ICAgICAkY29tbWl0X2RhdGEgPSBhcnJheSgncmVwb3NpdG9yeScgPT4gJHJlcG9zaXRvcnlfaWQs
ICdyZXZpc2lvbicgPT4gJHJldmlzaW9uX2RhdGFbJ3JldmlzaW9uJ10sICd0aW1lJyA9PiBhcnJh
eV9nZXQoJHJldmlzaW9uX2RhdGEsICd0aW1lc3RhbXAnKSk7Ci0KKyAgICAgICAgICAgICRjb21t
aXRfZGF0YSA9IGFycmF5KAorICAgICAgICAgICAgICAgICdyZXBvc2l0b3J5JyA9PiAkcmVwb3Np
dG9yeV9pZCwgCisgICAgICAgICAgICAgICAgJ3JldmlzaW9uJyA9PiAkcmV2aXNpb25fZGF0YVsn
cmV2aXNpb24nXSwgCisgICAgICAgICAgICAgICAgJ3RpbWUnID0+IGFycmF5X2dldCgkcmV2aXNp
b25fZGF0YSwgJ3RpbWVzdGFtcCcpLCAKKyAgICAgICAgICAgICAgICAncmV2aXNpb25faWRlbnRp
ZmllcicgPT4gYXJyYXlfZ2V0KCRyZXZpc2lvbl9kYXRhLCAncmV2aXNpb25JZGVudGlmaWVyJywg
bnVsbCkpOwogICAgICAgICAgICAgJG1pc21hdGNoaW5nX2NvbW1pdCA9ICR0aGlzLT5kYi0+cXVl
cnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUICogRlJPTSBidWlsZF9jb21taXRzLCBjb21taXRzCiAg
ICAgICAgICAgICAgICAgV0hFUkUgYnVpbGRfY29tbWl0ID0gY29tbWl0X2lkIEFORCBjb21taXRf
YnVpbGQgPSAkMSBBTkQgY29tbWl0X3JlcG9zaXRvcnkgPSAkMiBBTkQgY29tbWl0X3JldmlzaW9u
ICE9ICQzIExJTUlUIDEnLAogICAgICAgICAgICAgICAgIGFycmF5KCRidWlsZF9pZCwgJHJlcG9z
aXRvcnlfaWQsICRyZXZpc2lvbl9kYXRhWydyZXZpc2lvbiddKSk7CmRpZmYgLS1naXQgYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9nLmpzIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LWxvZy5qcwppbmRl
eCBlNmQ0ZDQ0YWJiNTU0MTM0NmUyZjRhOWQ0NDAwOWY3OWE3ODI5MDBiLi5kMzM3YjFkMTJjMmY0
MDdhNmIzYzJkMGY5YzVlMWRiYjQ2ZWE4MDY3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtbG9nLmpzCisrKyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1sb2cuanMKQEAgLTIwLDYgKzIw
LDcgQEAgY2xhc3MgQ29tbWl0TG9nIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKIAogICAgICAg
ICBjb25zb2xlLmFzc2VydCgrdGhpcy5fcmF3RGF0YVsndGltZSddID09ICtyYXdEYXRhWyd0aW1l
J10pOwogICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9yYXdEYXRhWydyZXZpc2lvbiddID09
IHJhd0RhdGFbJ3JldmlzaW9uJ10pOworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9yYXdE
YXRhWydyZXZpc2lvbklkZW50aWZpZXInXSA9PSByYXdEYXRhWydyZXZpc2lvbklkZW50aWZpZXIn
XSk7CiAKICAgICAgICAgaWYgKHJhd0RhdGEuYXV0aG9yTmFtZSkKICAgICAgICAgICAgIHRoaXMu
X3Jhd0RhdGEuYXV0aG9yTmFtZSA9IHJhd0RhdGEuYXV0aG9yTmFtZTsKQEAgLTM5LDYgKzQwLDcg
QEAgY2xhc3MgQ29tbWl0TG9nIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKICAgICB0ZXN0YWJp
bGl0eSgpIHsgcmV0dXJuIHRoaXMuX3Jhd0RhdGFbJ3Rlc3RhYmlsaXR5J107IH0KICAgICBhdXRo
b3IoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydhdXRob3JOYW1lJ107IH0KICAgICByZXZpc2lv
bigpIHsgcmV0dXJuIHRoaXMuX3Jhd0RhdGFbJ3JldmlzaW9uJ107IH0KKyAgICByZXZpc2lvbklk
ZW50aWZpZXIoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydyZXZpc2lvbklkZW50aWZpZXInXTsg
fQogICAgIG1lc3NhZ2UoKSB7IHJldHVybiB0aGlzLl9yYXdEYXRhWydtZXNzYWdlJ107IH0KICAg
ICB1cmwoKSB7IHJldHVybiB0aGlzLl9yZXBvc2l0b3J5LnVybEZvclJldmlzaW9uKHRoaXMuX3Jh
d0RhdGFbJ3JldmlzaW9uJ10pOyB9CiAgICAgb3duc0NvbW1pdHMoKSB7IHJldHVybiB0aGlzLl9y
YXdEYXRhWydvd25zQ29tbWl0cyddOyB9CkBAIC00OCwxNSArNTAsMzMgQEAgY2xhc3MgQ29tbWl0
TG9nIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKICAgICBoYXNDb21taXRPcmRlcigpIHsgcmV0
dXJuIHRoaXMuX3Jhd0RhdGFbJ29yZGVyJ10gIT0gbnVsbDsgfQogICAgIHNldE93bmVyQ29tbWl0
cyhvd25lckNvbW1pdCkgeyB0aGlzLl9vd25lckNvbW1pdCA9IG93bmVyQ29tbWl0OyB9CiAKLSAg
ICBsYWJlbCgpCisgICAgbGFiZWwoKSB7IHJldHVybiBDb21taXRMb2cuX2Zvcm1hdHR0ZWRSZXZp
c2lvbih0aGlzLnJldmlzaW9uKCksIHRoaXMucmV2aXNpb25JZGVudGlmaWVyKCkpOyB9CisKKyAg
ICBzdGF0aWMgX3JlcG9zaXRvcnlUeXBlKHJldmlzaW9uKQogICAgIHsKLSAgICAgICAgY29uc3Qg
cmV2aXNpb24gPSB0aGlzLnJldmlzaW9uKCk7Ci0gICAgICAgIGlmIChwYXJzZUludChyZXZpc2lv
bikgPT0gcmV2aXNpb24pIC8vIGUuZy4gcjEyMzQ1Ci0gICAgICAgICAgICByZXR1cm4gJ3InICsg
cmV2aXNpb247Ci0gICAgICAgIGlmIChyZXZpc2lvbi5sZW5ndGggPT0gNDApIC8vIGUuZy4gZ2l0
IGhhc2gKLSAgICAgICAgICAgIHJldHVybiByZXZpc2lvbi5zdWJzdHJpbmcoMCwgMTIpOwotICAg
ICAgICByZXR1cm4gcmV2aXNpb247CisgICAgICAgIGlmIChwYXJzZUludChyZXZpc2lvbikgPT0g
cmV2aXNpb24pCisgICAgICAgICAgICByZXR1cm4gJ3N2bic7CisgICAgICAgIGlmIChyZXZpc2lv
bi5sZW5ndGggPT0gNDApCisgICAgICAgICAgICByZXR1cm4gJ2dpdCc7CisgICAgICAgIHJldHVy
biBudWxsOwogICAgIH0KKworICAgIHN0YXRpYyBfZm9ybWF0dHRlZFJldmlzaW9uKHJldmlzaW9u
LCByZXZpc2lvbklkZW50aWZpZXIgPSBudWxsKSAKKyAgICB7CisgICAgICAgIGNvbnN0IGZvcm1h
dHRlZFJldmlzaW9uID0gKCgpID0+IHsKKyAgICAgICAgICAgIHN3aXRjaCAodGhpcy5fcmVwb3Np
dG9yeVR5cGUocmV2aXNpb24pKSB7CisgICAgICAgICAgICBjYXNlICdzdm4nOgorICAgICAgICAg
ICAgICAgIHJldHVybiAncicgKyByZXZpc2lvbjsgLy8gZS5nLiByMTIzNDUKKyAgICAgICAgICAg
IGNhc2UgJ2dpdCc6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJldmlzaW9uLnN1YnN0cmluZygw
LCAxMik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmV2aXNpb247CisgICAg
ICAgIH0pKCk7CisgICAgICAgIGlmIChyZXZpc2lvbklkZW50aWZpZXIpCisgICAgICAgICAgICBy
ZXR1cm4gYCR7cmV2aXNpb25JZGVudGlmaWVyfSAoJHtmb3JtYXR0ZWRSZXZpc2lvbn0pYDsKKyAg
ICAgICAgcmV0dXJuIGZvcm1hdHRlZFJldmlzaW9uOworICAgIH0KKwogICAgIHRpdGxlKCkgeyBy
ZXR1cm4gdGhpcy5fcmVwb3NpdG9yeS5uYW1lKCkgKyAnIGF0ICcgKyB0aGlzLmxhYmVsKCk7IH0K
IAogICAgIGRpZmYocHJldmlvdXNDb21taXQpCkBAIC02OCwxNyArODgsMjQgQEAgY2xhc3MgQ29t
bWl0TG9nIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKICAgICAgICAgaWYgKCFwcmV2aW91c0Nv
bW1pdCkKICAgICAgICAgICAgIHJldHVybiB7cmVwb3NpdG9yeTogcmVwb3NpdG9yeSwgbGFiZWw6
IHRoaXMubGFiZWwoKSwgdXJsOiB0aGlzLnVybCgpfTsKIAotICAgICAgICBjb25zdCB0byA9IHRo
aXMucmV2aXNpb24oKTsKLSAgICAgICAgY29uc3QgZnJvbSA9IHByZXZpb3VzQ29tbWl0LnJldmlz
aW9uKCk7Ci0gICAgICAgIGxldCBsYWJlbCA9IG51bGw7Ci0gICAgICAgIGlmIChwYXJzZUludChm
cm9tKSA9PSBmcm9tKS8vIGUuZy4gcjEyMzQ1LgotICAgICAgICAgICAgbGFiZWwgPSBgciR7ZnJv
bX0tciR7dGhpcy5yZXZpc2lvbigpfWA7Ci0gICAgICAgIGVsc2UgaWYgKHRvLmxlbmd0aCA9PSA0
MCkgLy8gZS5nLiBnaXQgaGFzaAotICAgICAgICAgICAgbGFiZWwgPSBgJHtmcm9tLnN1YnN0cmlu
ZygwLCAxMil9Li4ke3RvLnN1YnN0cmluZygwLCAxMil9YDsKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgbGFiZWwgPSBgJHtmcm9tfSAtICR7dG99YDsKLQotICAgICAgICByZXR1cm4ge3JlcG9z
aXRvcnk6IHJlcG9zaXRvcnksIGxhYmVsOiBsYWJlbCwgdXJsOiByZXBvc2l0b3J5LnVybEZvclJl
dmlzaW9uUmFuZ2UoZnJvbSwgdG8pfTsKKyAgICAgICAgY29uc3QgdG9SZXZpc2lvbiA9IHRoaXMu
cmV2aXNpb24oKTsKKyAgICAgICAgY29uc3QgZnJvbVJldmlzaW9uID0gcHJldmlvdXNDb21taXQu
cmV2aXNpb24oKTsKKyAgICAgICAgY29uc3QgaWRlbnRpZmllclBhdHRlcm4gPSAvKD88bnVtYmVy
PlxkKylAKD88YnJhbmNoPltcd1wuXC1dKykvOworICAgICAgICBjb25zdCByZXBvc2l0b3J5VHlw
ZSA9IENvbW1pdExvZy5fcmVwb3NpdG9yeVR5cGUodG9SZXZpc2lvbik7CisgICAgICAgCisgICAg
ICAgIGNvbnN0IGxhYmVsID0gKChmcm9tTWF0Y2gsIHRvTWF0Y2gpID0+IHsKKyAgICAgICAgICAg
IGNvbnN0IHNlcGFyYXRvciA9IHJlcG9zaXRvcnlUeXBlID09ICdnaXQnID8gJy4uJyA6IChyZXBv
c2l0b3J5VHlwZSA9PSAnc3ZuJyA/ICctJyA6ICcgLSAnKTsKKyAgICAgICAgICAgIGNvbnN0IHJl
dmlzaW9uUmFuZ2UgPSBgJHtDb21taXRMb2cuX2Zvcm1hdHR0ZWRSZXZpc2lvbihmcm9tUmV2aXNp
b24pfSR7c2VwYXJhdG9yfSR7Q29tbWl0TG9nLl9mb3JtYXR0dGVkUmV2aXNpb24odG9SZXZpc2lv
bil9YDsKKyAgICAgICAgICAgIGlmIChmcm9tTWF0Y2ggJiYgdG9NYXRjaCkgeworICAgICAgICAg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZyb21NYXRjaC5ncm91cHMuYnJhbmNoID09IHRvTWF0Y2gu
Z3JvdXBzLmJyYW5jaCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGAke2Zyb21NYXRjaC5ncm91
cHMubnVtYmVyfS0ke3RvTWF0Y2guZ3JvdXBzLm51bWJlcn1AJHtmcm9tTWF0Y2guZ3JvdXBzLmJy
YW5jaH0gKCR7cmV2aXNpb25SYW5nZX0pYDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlm
IChmcm9tTWF0Y2ggfHwgdG9NYXRjaCkKKyAgICAgICAgICAgICAgICByZXR1cm4gYCR7cHJldmlv
dXNDb21taXQubGFiZWwoKX0gLSAke3RoaXMubGFiZWwoKX1gOworICAgICAgICAgICAgcmV0dXJu
IHJldmlzaW9uUmFuZ2U7CisgICAgICAgIH0pKGlkZW50aWZpZXJQYXR0ZXJuLmV4ZWMocHJldmlv
dXNDb21taXQucmV2aXNpb25JZGVudGlmaWVyKCkpLCBpZGVudGlmaWVyUGF0dGVybi5leGVjKHRo
aXMucmV2aXNpb25JZGVudGlmaWVyKCkpKTsKKworICAgICAgICByZXR1cm4ge3JlcG9zaXRvcnks
IGxhYmVsLCB1cmw6IHJlcG9zaXRvcnkudXJsRm9yUmV2aXNpb25SYW5nZShmcm9tUmV2aXNpb24s
IHRvUmV2aXNpb24pfTsKICAgICB9CiAKICAgICBzdGF0aWMgZmV0Y2hMYXRlc3RDb21taXRGb3JQ
bGF0Zm9ybShyZXBvc2l0b3J5LCBwbGF0Zm9ybSkKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRlc3RzLmpzCmluZGV4IGRi
ZjFlNjhmNmNkYzFjY2ZkYTRjMDc4MjIxZjQyOTA5YjhiYzA4ZGYuLjdlNTkyYTlhZjk3NmRlOTI3
MTJjZWQwYjFkOTIzNjZjOTk5NDk0YjkgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcwpAQCAtMTcsNiAr
MTcsNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAogICAgICAgICAg
ICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDgiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklk
ZW50aWZpZXIiOiAiMTg0Mjc2QG1haW4iLAogICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTct
MDEtMjBUMDI6NTI6MzQuNTc3WiIsCiAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6
ICJaYWxhbiBCdWp0YXMiLCAiYWNjb3VudCI6ICJ6YWxhbkBhcHBsZS5jb20ifSwKICAgICAgICAg
ICAgICAgICAibWVzc2FnZSI6ICJhIG1lc3NhZ2UiLApAQCAtMjQsNiArMjUsNyBAQCBkZXNjcmli
ZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAicmVwb3NpdG9yeSI6ICJXZWJLaXQiLAogICAgICAgICAgICAgICAgICJyZXZpc2lv
biI6ICIyMTA5NDkiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0
Mjc3QG1haW4iLAogICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDM6MjM6NTAu
NjQ1WiIsCiAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDaHJpcyBEdW1leiIs
ICJhY2NvdW50IjogImNkdW1lekBhcHBsZS5jb20ifSwKICAgICAgICAgICAgICAgICAibWVzc2Fn
ZSI6ICJzb21lIG1lc3NhZ2UiLApAQCAtMzIsMTIgKzM0LDUzIEBAIGRlc2NyaWJlKCIvYXBpL2Nv
bW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldl
YktpdCIsCiAgICAgICAgICAgICAgICAgInByZXZpb3VzQ29tbWl0IjogIjIxMDk0OSIsCiAgICAg
ICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk1MCIsCisgICAgICAgICAgICAgICAgInJldmlz
aW9uSWRlbnRpZmllciI6ICIxODQyNzhAbWFpbiIsCiAgICAgICAgICAgICAgICAgInRpbWUiOiAi
MjAxNy0wMS0yMFQwMzo0OTozNy44ODdaIiwKICAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJu
YW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50IjogImNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
In0sCiAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYW5vdGhlciBtZXNzYWdlIiwKKyAgICAg
ICAgICAgIH0sCisgICAgICAgIF0KKyAgICB9OworCisgICAgY29uc3Qgc3ViY2Vyc2lvbkNvbW1p
dHNXaXRoRmFrZVJldmlzaW9uSWRlbnRpZmllciA9IHsKKyAgICAgICAgIndvcmtlck5hbWUiOiAi
c29tZVdvcmtlciIsCisgICAgICAgICJ3b3JrZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAor
ICAgICAgICAiY29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVw
b3NpdG9yeSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDgi
LAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0Mjc2QG1haW4iLAor
ICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDI6NTI6MzQuNTc3WiIsCisgICAg
ICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJaYWxhbiBCdWp0YXMiLCAiYWNjb3VudCI6
ICJ6YWxhbkBhcHBsZS5jb20ifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJhIG1lc3Nh
Z2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVw
b3NpdG9yeSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NDki
LAorICAgICAgICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0Mjc3QG1haW4iLAor
ICAgICAgICAgICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1WiIsCisgICAg
ICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDaHJpcyBEdW1leiIsICJhY2NvdW50Ijog
ImNkdW1lekBhcHBsZS5jb20ifSwKKyAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJzb21lIG1l
c3NhZ2UiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAi
cmVwb3NpdG9yeSI6ICJXZWJLaXQiLAorICAgICAgICAgICAgICAgICJwcmV2aW91c0NvbW1pdCI6
ICIyMTA5NDkiLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICIyMTA5NTAiLAorICAgICAg
ICAgICAgICAgICJyZXZpc2lvbklkZW50aWZpZXIiOiAiMTg0Mjc4QG1haW4iLAorICAgICAgICAg
ICAgICAgICJ0aW1lIjogIjIwMTctMDEtMjBUMDM6NDk6MzcuODg3WiIsCisgICAgICAgICAgICAg
ICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQgUXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQt
cXVldWVAd2Via2l0Lm9yZyJ9LAorICAgICAgICAgICAgICAgICJtZXNzYWdlIjogImFub3RoZXIg
bWVzc2FnZSIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIx
MDk1MSIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxODQyNzhAc29t
ZXRoaW5nIiwKKyAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjQ5OjQwLjg4
N1oiLAorICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwg
ImFjY291bnQiOiAiY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmcifSwKKyAgICAgICAgICAgICAgICAi
bWVzc2FnZSI6ICJhbm90aGVyIG1lc3NhZ2UiLAogICAgICAgICAgICAgfQogICAgICAgICBdCi0g
ICAgfQorICAgIH07CiAKICAgICBjb25zdCBjb21taXRzT25lUHJlZml4T2ZUaGVPdGhlciA9IHsK
ICAgICAgICAgIndvcmtlck5hbWUiOiAic29tZVdvcmtlciIsCkBAIC00Niw2ICs4OSw3IEBAIGRl
c2NyaWJlKCIvYXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCiAgICAgICAgICAgICAgICAgInJl
dmlzaW9uIjogIjIxMDk0IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjog
IjE4NDI3MkBtYWluIiwKICAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAyOjUy
OjM0LjU3N1oiLAogICAgICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiWmFsYW4gQnVq
dGFzIiwgImFjY291bnQiOiAiemFsYW5AYXBwbGUuY29tIn0sCiAgICAgICAgICAgICAgICAgIm1l
c3NhZ2UiOiAiYSBtZXNzYWdlIiwKQEAgLTUzLDYgKzk3LDcgQEAgZGVzY3JpYmUoIi9hcGkvY29t
bWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgInJl
cG9zaXRvcnkiOiAiV2ViS2l0IiwKICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQ5
IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjE4NDI3N0BtYWluIiwK
ICAgICAgICAgICAgICAgICAidGltZSI6ICIyMDE3LTAxLTIwVDAzOjIzOjUwLjY0NVoiLAogICAg
ICAgICAgICAgICAgICJhdXRob3IiOiB7Im5hbWUiOiAiQ2hyaXMgRHVtZXoiLCAiYWNjb3VudCI6
ICJjZHVtZXpAYXBwbGUuY29tIn0sCiAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAic29tZSBt
ZXNzYWdlIiwKQEAgLTUyNCw2ICs1NjksNDEgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQo
InNob3VsZCByZXR1cm4gY29tbWl0IHdpdGggY29tbWl0IHJldmlzaW9uIGxhYmVsIiwgYXN5bmMg
KCkgPT4geworICAgICAgICAgICAgYXdhaXQgYWRkV29ya2VyRm9yUmVwb3J0KHN1YnZlcnNpb25D
b21taXRzKTsKKyAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJ2ZXJzaW9uQ29t
bWl0cyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cydd
LCAnT0snKTsKKyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTihgL2FwaS9jb21taXRzL1dlYktpdC8ke3N1YnZlcnNpb25Db21taXRz
LmNvbW1pdHNbMF0ucmV2aXNpb25JZGVudGlmaWVyfWApOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdC5jb21taXRzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnRD
b21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHQuY29tbWl0c1swXSwgc3VidmVyc2lvbkNv
bW1pdHMuY29tbWl0c1swXSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCJzaG91bGQgcmV0
dXJuICdBbWJpZ3VvdXNSZXZpc2lvblByZWZpeCcgd2hlbiBtb3JlIHRoYW4gb25lIGNvbW1pdHMg
YXJlIGZvdW5kIGZvciBhIHJldmlzaW9uIGxhYmVsIHByZWZpeCIsIGFzeW5jICgpID0+IHsKKyAg
ICAgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7CisgICAgICAg
ICAgICBhd2FpdCBhZGRXb3JrZXJGb3JSZXBvcnQoc3ViY2Vyc2lvbkNvbW1pdHNXaXRoRmFrZVJl
dmlzaW9uSWRlbnRpZmllcik7CisgICAgICAgICAgICBhd2FpdCByZW1vdGUucG9zdEpTT05XaXRo
U3RhdHVzKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1YmNlcnNpb25Db21taXRzV2l0aEZha2VS
ZXZpc2lvbklkZW50aWZpZXIpOworICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVt
b3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMTg0Mjc4QD9wcmVmaXgtbWF0Y2g9dHJ1
ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdB
bWJpZ3VvdXNSZXZpc2lvblByZWZpeCcpOworICAgICAgICB9KTsKKworICAgICAgICBpdCgic2hv
dWxkIG5vdCByZXR1cm4gJ0FtYmlndW91c1JldmlzaW9uUHJlZml4JyB3aGVuIHRoZXJlIGlzIGEg
Y29tbWl0IHJldmlzaW9uIGxhYmVsIGV4dHJhY3QgbWF0Y2hlcyBzcGVjaWZpZWQgcmV2aXNpb24g
cHJlZml4IiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29uc3QgcmVtb3RlID0gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKTsKKyAgICAgICAgICAgIGF3YWl0IGFkZFdvcmtlckZvclJlcG9ydChz
dWJjZXJzaW9uQ29tbWl0c1dpdGhGYWtlUmV2aXNpb25JZGVudGlmaWVyKTsKKyAgICAgICAgICAg
IGF3YWl0IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywg
c3ViY2Vyc2lvbkNvbW1pdHNXaXRoRmFrZVJldmlzaW9uSWRlbnRpZmllcik7CisgICAgICAgICAg
ICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW1vdGUuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktp
dC8xODQyNzhAbWFpbj9wcmVmaXgtbWF0Y2g9dHJ1ZScpOworICAgICAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAg
YXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1
YmNlcnNpb25Db21taXRzV2l0aEZha2VSZXZpc2lvbklkZW50aWZpZXJbJ2NvbW1pdHMnXVsyXSk7
CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCJzaG91bGQgcmV0dXJuICdVbmtub3duQ29tbWl0
JyB3aGVuIG5vIGNvbW1pdCBpcyBmb3VuZCBmb3IgYSByZXZpc2lvbiBsYWJlbCBwcmVmaXgiLCBh
c3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCByZW1vdGUgPSBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpOworICAgICAgICAgICAgYXdhaXQgYWRkV29ya2VyRm9yUmVwb3J0KHN1YmNlcnNpb25D
b21taXRzV2l0aEZha2VSZXZpc2lvbklkZW50aWZpZXIpOworICAgICAgICAgICAgYXdhaXQgcmVt
b3RlLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBzdWJjZXJzaW9u
Q29tbWl0c1dpdGhGYWtlUmV2aXNpb25JZGVudGlmaWVyKTsKKyAgICAgICAgICAgIGNvbnN0IHJl
c3VsdCA9IGF3YWl0IHJlbW90ZS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvV2ViS2l0LzE4NDI3OEB4
P3ByZWZpeC1tYXRjaD10cnVlJyk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVz
dWx0WydzdGF0dXMnXSwgJ1Vua25vd25Db21taXQnKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiAK
ICAgICBkZXNjcmliZSgnL2FwaS9jb21taXRzLzxyZXBvc2l0b3J5Pi9vd25lZC1jb21taXRzP293
bmVyLXJldmlzaW9uPTxjb21taXQ+JywgKCkgPT4gewpAQCAtNzI3LDYgKzgwNywzMyBAQCBkZXNj
cmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICB9KTsKIAorICAgICAgICBpdCgic2hvdWxkIHJldHVybiByZXBvcnRlZCBjb21taXRzIGlu
IHRoZSBzcGVjaWZpZWQgcmV2aXNpb24gbGFiZWwgcmFuZ2UiLCBhc3luYyAoKSA9PiB7CisgICAg
ICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgICAgIGF3
YWl0IGRiLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEsICduYW1lJzogJ1dlYktpdCd9
KTsKKyAgICAgICAgICAgIGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6
IDEsICdyZXZpc2lvbic6ICcyMTA5NDgnLCAncmV2aXNpb25faWRlbnRpZmllcic6ICcxODQyNzZA
bWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDI6NTI6MzQuNTc3WicsICdyZXBvcnRlZCc6IHRy
dWV9KTsKKyAgICAgICAgICAgIGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9y
eSc6IDEsICdyZXZpc2lvbic6ICcyMTA5NDknLCAncmV2aXNpb25faWRlbnRpZmllcic6ICcxODQy
NzdAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDM6MjM6NTAuNjQ1WicsICdyZXBvcnRlZCc6
IHRydWV9KTsKKyAgICAgICAgICAgIGF3YWl0IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3Np
dG9yeSc6IDEsICdyZXZpc2lvbic6ICcyMTA5NTAnLCAncmV2aXNpb25faWRlbnRpZmllcic6ICcx
ODQyNzhAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDM6NDk6MzcuODg3WicsICdyZXBvcnRl
ZCc6IHRydWV9KTsKKyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL1dlYktpdC8/cHJlY2VkaW5nUmV2aXNp
b249MTg0Mjc2QG1haW4mbGFzdFJldmlzaW9uPTE4NDI3OEBtYWluJyk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMik7CisgICAg
ICAgICAgICBhc3NlcnRDb21taXRJc1NhbWVBc09uZVN1Ym1pdHRlZChyZXN1bHRbJ2NvbW1pdHMn
XVswXSwgeworICAgICAgICAgICAgICAgIHByZXZpb3VzQ29tbWl0OiBudWxsLAorICAgICAgICAg
ICAgICAgIHJldmlzaW9uOiAnMjEwOTQ5JywKKyAgICAgICAgICAgICAgICByZXZpc2lvbklkZW50
aWZpZXI6ICcxODQyODlAbWFpbicsCisgICAgICAgICAgICAgICAgdGltZTogJzIwMTctMDEtMjBU
MDM6MjM6NTAuNjQ1WicsCisgICAgICAgICAgICAgICAgYXV0aG9yOiB7bmFtZTogbnVsbCwgYWNj
b3VudDogbnVsbH0sCisgICAgICAgICAgICAgICAgbWVzc2FnZTogbnVsbCwKKyAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0
Wydjb21taXRzJ11bMV0sIHsKKyAgICAgICAgICAgICAgICBwcmV2aW91c0NvbW1pdDogbnVsbCwK
KyAgICAgICAgICAgICAgICByZXZpc2lvbjogJzIxMDk1MCcsCisgICAgICAgICAgICAgICAgcmV2
aXNpb25JZGVudGlmaWVyOiAnMTg0MjkwQG1haW4nLAorICAgICAgICAgICAgICAgIHRpbWU6ICcy
MDE3LTAxLTIwVDAzOjQ5OjM3Ljg4N1onLAorICAgICAgICAgICAgICAgIGF1dGhvcjoge25hbWU6
IG51bGwsIGFjY291bnQ6IG51bGx9LAorICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG51bGwsCisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKICAgICAgICAgaXQoInNob3VsZCBub3QgaW5j
bHVkZSBhIHJldmlzaW9uIG5vdCB3aXRoaW4gdGhlIHNwZWNpZmllZCByYW5nZSIsICgpID0+IHsK
ICAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwogICAgICAgICAg
ICAgY29uc3QgcmVtb3RlID0gVGVzdFNlcnZlci5yZW1vdGVBUEkoKTsKQEAgLTc1MCw2ICs4NTcs
MjMgQEAgZGVzY3JpYmUoIi9hcGkvY29tbWl0cy8iLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoInNob3VsZCBub3QgaW5jbHVkZSBhIHJl
dmlzaW9uIG5vdCB3aXRoaW4gdGhlIHNwZWNpZmllZCBjb21taXQgcmV2aXNpb24gbGFiZWwgcmFu
Z2UiLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0
YWJhc2UoKTsKKyAgICAgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCk7CisgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3JlcG9zaXRvcmllcycsIHsnaWQnOiAx
LCAnbmFtZSc6ICdXZWJLaXQnfSksCisgICAgICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2NvbW1p
dHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTQ3JywgJ3JldmlzaW9uX2lk
ZW50aWZpZXInOiAnMTg0Mjc1QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIwVDAyOjM4OjQ1LjQ4
NVonLCAncmVwb3J0ZWQnOiBmYWxzZX0pOworICAgICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdj
b21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogJzIxMDk0OCcsICdyZXZpc2lv
bl9pZGVudGlmaWVyJzogJzE4NDI3NkBtYWluJywgJ3RpbWUnOiAnMjAxNy0wMS0yMFQwMjo1Mjoz
NC41NzdaJywgJ3JlcG9ydGVkJzogZmFsc2V9KTsKKyAgICAgICAgICAgIGF3YWl0IGRiLmluc2Vy
dCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEsICdyZXZpc2lvbic6ICcyMTA5NDknLCAncmV2
aXNpb25faWRlbnRpZmllcic6ICcxODQyNzdAbWFpbicsICd0aW1lJzogJzIwMTctMDEtMjBUMDM6
MjM6NTAuNjQ1WicsICdyZXBvcnRlZCc6IGZhbHNlfSk7CisgICAgICAgICAgICBhd2FpdCBkYi5p
bnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxLCAncmV2aXNpb24nOiAnMjEwOTUwJywg
J3JldmlzaW9uX2lkZW50aWZpZXInOiAnMTg0Mjc4QG1haW4nLCAndGltZSc6ICcyMDE3LTAxLTIw
VDAzOjQ5OjM3Ljg4N1onLCAncmVwb3J0ZWQnOiBmYWxzZX0pOworICAgICAgICAgICAgYXdhaXQg
YWRkV29ya2VyRm9yUmVwb3J0KHN1YnZlcnNpb25Db21taXRzKTsKKyAgICAgICAgICAgIGF3YWl0
IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgc3VidmVy
c2lvbkNvbW1pdHMpOworICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVtb3RlLmdl
dEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvP3ByZWNlZGluZ1JldmlzaW9uPTE4NDI3NUBtYWlu
Jmxhc3RSZXZpc2lvbj0xODQyNzdAbWFpbicpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdFsnc3RhdHVzJ10sICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0
Q29tbWl0SXNTYW1lQXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMF0sIHN1YnZlcnNp
b25Db21taXRzWydjb21taXRzJ11bMF0pOworICAgICAgICAgICAgYXNzZXJ0Q29tbWl0SXNTYW1l
QXNPbmVTdWJtaXR0ZWQocmVzdWx0Wydjb21taXRzJ11bMV0sIHN1YnZlcnNpb25Db21taXRzWydj
b21taXRzJ11bMV0pOworICAgICAgICB9KTsKKwogICAgIH0pOwogCiB9KTsKZGlmZiAtLWdpdCBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC1jb21taXRz
LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVw
b3J0LWNvbW1pdHMtdGVzdHMuanMKaW5kZXggODlhMGE0ZWM4MzgzODkzNzllOTk5NGZlNDllMDZl
MTdhZTViNGQyYS4uYzg5ZjI3ZTQzYzQwOGE5YTAzMzQ0M2NmNTYxNjBlZmJkMmY0MGJkOSAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0
LWNvbW1pdHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9hcGktcmVwb3J0LWNvbW1pdHMtdGVzdHMuanMKQEAgLTI2LDYgKzI2LDIwIEBAIGRlc2Ny
aWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRoIGluc2VydD10cnVlIiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgfQogICAgICAgICBdLAogICAgIH07CisgICAgY29uc3Qgc3VidmVyc2lv
bkNvbW1pdFdpdGhSZXZpc2lvbklkZW50aWZpZXIgPSB7CisgICAgICAgICJ3b3JrZXJOYW1lIjog
InNvbWVXb3JrZXIiLAorICAgICAgICAid29ya2VyUGFzc3dvcmQiOiAic29tZVBhc3N3b3JkIiwK
KyAgICAgICAgImNvbW1pdHMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJl
cG9zaXRvcnkiOiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTQxOTc3
IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjogIjEyNzIzMUBtYWluIiwK
KyAgICAgICAgICAgICAgICAidGltZSI6ICIyMDEzLTAyLTA2VDA4OjU1OjIwLjlaIiwKKyAgICAg
ICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50Ijog
ImNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnIn0sCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAi
c29tZSBtZXNzYWdlIiwKKyAgICAgICAgICAgIH0KKyAgICAgICAgXSwKKyAgICB9OwogICAgIGNv
bnN0IHN1YnZlcnNpb25JbnZhbGlkQ29tbWl0ID0gewogICAgICAgICAid29ya2VyTmFtZSI6ICJz
b21lV29ya2VyIiwKICAgICAgICAgIndvcmtlclBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCkBA
IC03Niw2ICs5MCw0NCBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0cy8gd2l0aCBpbnNl
cnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgXQogICAgIH0KIAorICAgIGNvbnN0IGR1
cGxpY2F0ZWRDb21taXRSZXZpc2lvbklkZW50aWZpZXJDb21taXRzID0geworICAgICAgICAid29y
a2VyTmFtZSI6ICJzb21lV29ya2VyIiwKKyAgICAgICAgIndvcmtlclBhc3N3b3JkIjogInNvbWVQ
YXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9u
IjogIjIxMDk0OCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxODQy
NzZAbWFpbiIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMjo1MjozNC41
NzdaIiwKKyAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIlphbGFuIEJ1anRhcyIs
ICJhY2NvdW50IjogInphbGFuQGFwcGxlLmNvbSJ9LAorICAgICAgICAgICAgICAgICJtZXNzYWdl
IjogImEgbWVzc2FnZSIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisgICAgICAgICAgICAgICAgInJldmlzaW9u
IjogIjIxMDk0OSIsCisgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxODQy
NzZAbWFpbiIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMzoyMzo1MC42
NDVaIiwKKyAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIkNocmlzIER1bWV6Iiwg
ImFjY291bnQiOiAiY2R1bWV6QGFwcGxlLmNvbSJ9LAorICAgICAgICAgICAgICAgICJtZXNzYWdl
IjogInNvbWUgbWVzc2FnZSIsCisgICAgICAgICAgICB9LAorICAgICAgICBdCisgICAgfQorCisg
ICAgY29uc3QgaW52YWxpZENvbW1pdFJldmlzaW9uSWRlbnRpZmllckNvbW1pdHMgPSB7CisgICAg
ICAgICJ3b3JrZXJOYW1lIjogInNvbWVXb3JrZXIiLAorICAgICAgICAid29ya2VyUGFzc3dvcmQi
OiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgImNvbW1pdHMiOiBbCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwKKyAgICAgICAgICAgICAgICAi
cmV2aXNpb24iOiAiMjEwOTQ4IiwKKyAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVy
IjogIjE4NDI3NiIsCisgICAgICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMFQwMjo1Mjoz
NC41NzdaIiwKKyAgICAgICAgICAgICAgICAiYXV0aG9yIjogeyJuYW1lIjogIlphbGFuIEJ1anRh
cyIsICJhY2NvdW50IjogInphbGFuQGFwcGxlLmNvbSJ9LAorICAgICAgICAgICAgICAgICJtZXNz
YWdlIjogImEgbWVzc2FnZSIsCisgICAgICAgICAgICB9LAorICAgICAgICBdCisgICAgfQorCiAg
ICAgaXQoInNob3VsZCByZWplY3QgZXJyb3Igd2hlbiB3b3JrZXIgbmFtZSBpcyBtaXNzaW5nIiwg
KCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTign
L2FwaS9yZXBvcnQtY29tbWl0cy8nLCB7fSkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdNaXNzaW5nV29ya2Vy
TmFtZScpOwpAQCAtMTQ1LDYgKzE5NywyMiBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQtY29tbWl0
cy8gd2l0aCBpbnNlcnQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKKyAgICBpdCgic2hvdWxkIHJlamVjdCBhbiBpbnZhbGlkIHJldmlzaW9uIGxhYmVsIiwgYXN5
bmMgKCkgPT4geworICAgICAgICBhd2FpdCBhZGRXb3JrZXJGb3JSZXBvcnQoc3VidmVyc2lvbkNv
bW1pdCk7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVB
UEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQtY29tbWl0cy8nLCBpbnZhbGlkQ29tbWl0UmV2aXNp
b25JZGVudGlmaWVyQ29tbWl0cyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25z
ZVsnc3RhdHVzJ10sICdJbnZhbGlkUmV2aXNpb25JZGVudGlmaWVyJyk7CisgICAgICAgIGNvbnN0
IHJvd3MgPSBhd2FpdCBUZXN0U2VydmVyLmRhdGFiYXNlKCkuc2VsZWN0QWxsKCdjb21taXRzJyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMCk7CisgICAgfSk7CisK
KyAgICBpdCgic2hvdWxkIHJlamVjdCB3aXRoIGR1cGxpY2F0ZWQgY29tbWl0IHJldmlzaW9uIGxh
YmVscyIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgYWRkV29ya2VyRm9yUmVwb3J0KHN1
YnZlcnNpb25Db21taXQpOworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgZHVwbGljYXRl
ZENvbW1pdFJldmlzaW9uSWRlbnRpZmllckNvbW1pdHMpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnRHVwbGljYXRlZFJldmlzaW9uSWRlbnRpZmllcicp
OworICAgICAgICBjb25zdCByb3dzID0gYXdhaXQgVGVzdFNlcnZlci5kYXRhYmFzZSgpLnNlbGVj
dEFsbCgnY29tbWl0cycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgs
IDApOworICAgIH0pOworCiAgICAgaXQoInNob3VsZCBzdG9yZSB0d28gY29tbWl0cyBmcm9tIGEg
dmFsaWQgd29ya2VyIiwgKCkgPT4gewogICAgICAgICByZXR1cm4gYWRkV29ya2VyRm9yUmVwb3J0
KHN1YnZlcnNpb25Ud29Db21taXRzKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1jb21taXRzLycsIHN1
YnZlcnNpb25Ud29Db21taXRzKTsKQEAgLTIxNSw2ICsyODMsMjUgQEAgZGVzY3JpYmUoIi9hcGkv
cmVwb3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCisgICAgaXQoInNob3VsZCB1cGRhdGUgYW4gZXhpc3RpbmcgY29tbWl0
IHdpdGggY29tbWl0IGxhYmVsIGlmIHRoZXJlIGlzIG9uZSIsIGFzeW5jICgpID0+IHsKKyAgICAg
ICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIGNvbnN0IHJlcG9y
dGVkRGF0YSA9IHN1YnZlcnNpb25Db21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyLmNvbW1pdHNb
MF07CisgICAgICAgIGF3YWl0IGFkZFdvcmtlckZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0V2l0
aFJldmlzaW9uSWRlbnRpZmllcik7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgncmVwb3NpdG9y
aWVzJywgeydpZCc6IDEsICduYW1lJzogJ1dlYktpdCd9KSwKKyAgICAgICAgYXdhaXQgZGIuaW5z
ZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMSwgJ3JldmlzaW9uJzogcmVwb3J0ZWREYXRh
WydyZXZpc2lvbiddLCAndGltZSc6IHJlcG9ydGVkRGF0YVsndGltZSddfSkKKyAgICAgICAgY29u
c3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBp
L3JlcG9ydC1jb21taXRzLycsIHN1YnZlcnNpb25Db21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVy
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ09LJyk7
CisgICAgICAgIGNvbnN0IGNvbW1pdHMgPSBhd2FpdCBkYi5zZWxlY3RBbGwoJ2NvbW1pdHMnKTsK
KyAgICAgICAgY29uc3QgY29tbWl0dGVycyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgnY29tbWl0dGVy
cycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0cy5sZW5ndGgsIDEpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVycy5sZW5ndGgsIDEpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnbWVzc2FnZSddLCByZXBvcnRlZERhdGFbJ21l
c3NhZ2UnXSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRzWzBdWydyZXZpc2lv
bl9pZGVudGlmaWVyJ10sIHJlcG9ydGVkRGF0YVsncmV2aXNpb25JZGVudGlmaWVyJ10pOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0c1swXVsnY29tbWl0dGVyJ10sIGNvbW1pdHRl
cnNbMF1bJ2lkJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsn
bmFtZSddLCByZXBvcnRlZERhdGFbJ2F1dGhvciddWyduYW1lJ10pOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoY29tbWl0dGVyc1swXVsnYWNjb3VudCddLCByZXBvcnRlZERhdGFbJ2F1dGhv
ciddWydhY2NvdW50J10pOworICAgIH0pOworCiAgICAgaXQoInNob3VsZCBub3QgdXBkYXRlIGFu
IHVucmVsYXRlZCBjb21taXQiLCAoKSA9PiB7CiAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZl
ci5kYXRhYmFzZSgpOwogICAgICAgICBjb25zdCBmaXJzdERhdGEgPSBzdWJ2ZXJzaW9uVHdvQ29t
bWl0cy5jb21taXRzWzBdOwpAQCAtNTkwLDYgKzY3NywxMTEgQEAgZGVzY3JpYmUoIi9hcGkvcmVw
b3J0LWNvbW1pdHMvIHdpdGggaW5zZXJ0PXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzcG9uc2VbJ3N0YXR1cyddLCAnT3duZWRDb21taXRTaG91
bGROb3RDb250YWluVGltZXN0YW1wJyk7CiAgICAgICAgIH0pOwogICAgIH0pOworCisgICAgY29u
c3QgaW52YWxpZE93bmVkQ29tbWl0VXNlUmV2aXNpb25JZGVudGlmaWVyQXNSZXZpc29uID0gewor
ICAgICAgICAid29ya2VyTmFtZSI6ICJzb21lV29ya2VyIiwKKyAgICAgICAgIndvcmtlclBhc3N3
b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWworICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIk9TWCIsCisgICAgICAgICAgICAgICAg
InJldmlzaW9uIjogIlNpZXJyYTE2RDMyIiwKKyAgICAgICAgICAgICAgICAib3JkZXIiOiAxLAor
ICAgICAgICAgICAgICAgICJvd25lZENvbW1pdHMiOiB7CisgICAgICAgICAgICAgICAgICAgICJX
ZWJLaXQiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTI3MjMyQG1h
aW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgImF1dGhvciI6IHsibmFtZSI6ICJDb21taXQg
UXVldWUiLCAiYWNjb3VudCI6ICJjb21taXQtcXVldWVAd2Via2l0Lm9yZyJ9LAorICAgICAgICAg
ICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiV2ViS2l0IENvbW1pdCIsCisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIF0KKyAg
ICB9OworCisgICAgaXQoInNob3VsZCByZWplY3QgaW5zZXJ0aW5nIG9uZSBjb21taXQgd2l0aCBv
d25lZCBjb21taXRzIHRoYXQgdXNlIHJldmlzaW9uIGxhYmVsIGFzIHJldmlzaW9uIiwgYXN5bmMg
KCkgPT4geworICAgICAgICBhd2FpdCBhZGRXb3JrZXJGb3JSZXBvcnQoaW52YWxpZE93bmVkQ29t
bWl0VXNlUmV2aXNpb25JZGVudGlmaWVyQXNSZXZpc29uKTsKKyAgICAgICAgY29uc3QgcmVzcG9u
c2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC1j
b21taXRzLycsIGludmFsaWRPd25lZENvbW1pdFVzZVJldmlzaW9uSWRlbnRpZmllckFzUmV2aXNv
bik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXNwb25zZVsnc3RhdHVzJ10sICdJbnZh
bGlkUmV2aXNpb24nKTsKKyAgICB9KTsKKworICAgIGNvbnN0IGludmFsaWRSZXZpc2lvbklkZW50
aWZpZXJPd25lZENvbW1pdCA9IHsKKyAgICAgICAgIndvcmtlck5hbWUiOiAic29tZVdvcmtlciIs
CisgICAgICAgICJ3b3JrZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAiY29t
bWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJP
U1giLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICJTaWVycmExNkQzMiIsCisgICAgICAg
ICAgICAgICAgIm9yZGVyIjogMSwKKyAgICAgICAgICAgICAgICAib3duZWRDb21taXRzIjogewor
ICAgICAgICAgICAgICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAgICAgICAgICAg
InJldmlzaW9uIjogIjE0MTk3OCIsCisgICAgICAgICAgICAgICAgICAgICAgICAicmV2aXNpb25J
ZGVudGlmaWVyIjogIjEyNzIzMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAiYXV0aG9yIjog
eyJuYW1lIjogIkNvbW1pdCBRdWV1ZSIsICJhY2NvdW50IjogImNvbW1pdC1xdWV1ZUB3ZWJraXQu
b3JnIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJXZWJLaXQgQ29tbWl0
IiwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKyAgICAgICAgXQorICAgIH07CisKKyAgICBpdCgic2hvdWxkIHJlamVjdCBpbnNlcnRpbmcg
b25lIGNvbW1pdCB3aXRoIG93bmVkIGNvbW1pdHMgdGhhdCBoYXZlIGludmFsaWQgcmV2aXNpb24g
bGFiZWwiLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFdvcmtlckZvclJlcG9ydChp
bnZhbGlkUmV2aXNpb25JZGVudGlmaWVyT3duZWRDb21taXQpOworICAgICAgICBjb25zdCByZXNw
b25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0
LWNvbW1pdHMvJywgaW52YWxpZFJldmlzaW9uSWRlbnRpZmllck93bmVkQ29tbWl0KTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwgJ0ludmFsaWRSZXZpc2lv
bklkZW50aWZpZXInKTsKKyAgICB9KTsKKworICAgIGNvbnN0IGludmFsaWRBdXRob3JPd25lZENv
bW1pdCA9IHsKKyAgICAgICAgIndvcmtlck5hbWUiOiAic29tZVdvcmtlciIsCisgICAgICAgICJ3
b3JrZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAgICAiY29tbWl0cyI6IFsKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICJPU1giLAorICAgICAg
ICAgICAgICAgICJyZXZpc2lvbiI6ICJTaWVycmExNkQzMiIsCisgICAgICAgICAgICAgICAgIm9y
ZGVyIjogMSwKKyAgICAgICAgICAgICAgICAib3duZWRDb21taXRzIjogeworICAgICAgICAgICAg
ICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAgICAgICAgICAgInJldmlzaW9uIjog
IjE0MTk3OCIsCisgICAgICAgICAgICAgICAgICAgICAgICAicmV2aXNpb25JZGVudGlmaWVyIjog
IjEyNzIzMkBtYWluIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJhdXRob3IiOiBudWxsLAor
ICAgICAgICAgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiV2ViS2l0IENvbW1pdCIsCisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAg
ICAgIF0KKyAgICB9OworICAgIGl0KCJzaG91bGQgcmVqZWN0IGluc2VydGluZyBvbmUgY29tbWl0
IHdpdGggb3duZWQgY29tbWl0cyB0aGF0IGhhdmUgaW52YWxpZCBhdXRob3IiLCBhc3luYyAoKSA9
PiB7CisgICAgICAgIGF3YWl0IGFkZFdvcmtlckZvclJlcG9ydChpbnZhbGlkQXV0aG9yT3duZWRD
b21taXQpOworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgaW52YWxpZEF1dGhvck93bmVk
Q29tbWl0KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNlWydzdGF0dXMnXSwg
J0ludmFsaWRBdXRob3JGb3JtYXQnKTsKKyAgICB9KTsKKworICAgIGNvbnN0IG93bmVkQ29tbWl0
V2l0aFJldmlzaW9uSWRlbnRpZmllciA9IHsKKyAgICAgICAgIndvcmtlck5hbWUiOiAic29tZVdv
cmtlciIsCisgICAgICAgICJ3b3JrZXJQYXNzd29yZCI6ICJzb21lUGFzc3dvcmQiLAorICAgICAg
ICAiY29tbWl0cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9y
eSI6ICJPU1giLAorICAgICAgICAgICAgICAgICJyZXZpc2lvbiI6ICJTaWVycmExNkQzMiIsCisg
ICAgICAgICAgICAgICAgIm9yZGVyIjogMSwKKyAgICAgICAgICAgICAgICAib3duZWRDb21taXRz
IjogeworICAgICAgICAgICAgICAgICAgICAiV2ViS2l0IjogeworICAgICAgICAgICAgICAgICAg
ICAgICAgInJldmlzaW9uIjogIjE0MTk3OCIsCisgICAgICAgICAgICAgICAgICAgICAgICAicmV2
aXNpb25JZGVudGlmaWVyIjogIjEyNzIzMkBtYWluIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICJhdXRob3IiOiB7Im5hbWUiOiAiQ29tbWl0IFF1ZXVlIiwgImFjY291bnQiOiAiY29tbWl0LXF1
ZXVlQHdlYmtpdC5vcmcifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIldl
YktpdCBDb21taXQiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfQorICAgICAgICBdCisgICAgfTsKKworICAgIGl0KCJzaG91bGQgaW5zZXJ0
IG9uZSBjb21taXQgd2l0aCBjb21taXQgcmV2aXNpb24gbGFiZWwiLCBhc3luYyAoKSA9PiB7Cisg
ICAgICAgIGF3YWl0IGFkZFdvcmtlckZvclJlcG9ydChvd25lZENvbW1pdFdpdGhSZXZpc2lvbklk
ZW50aWZpZXIpOworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgb3duZWRDb21taXRXaXRo
UmV2aXNpb25JZGVudGlmaWVyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3BvbnNl
WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFz
ZSgpOworICAgICAgICBjb25zdCBjb21taXQgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCdjb21taXRz
JywgeydyZXZpc2lvbic6ICcxNDE5NzgnfSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChj
b21taXRbMF0ucmV2aXNpb25faWRlbnRpZmllciwgb3duZWRDb21taXRXaXRoUmV2aXNpb25JZGVu
dGlmaWVyLmNvbW1pdHNbMF0ub3duZWRDb21taXRzWydXZWJLaXQnXS5yZXZpc2lvbklkZW50aWZp
ZXIpOworICAgIH0pOwogfSk7CiAKIGRlc2NyaWJlKCIvYXBpL3JlcG9ydC1jb21taXRzLyB3aXRo
IGluc2VydD1mYWxzZSIsIGZ1bmN0aW9uICgpIHsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qcyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXJlcG9ydC10ZXN0cy5qcwppbmRleCA3N2Fl
YmRlMDJhNzljMjExYWEzMzU4NWQyMDc3MmUyZTg0MGQxZjUwLi5jZTg0YjljNWQ1ZTBlYzEzNDIy
ODc2ODUxZDMzMWE3YTA2OWJhOGMyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL2FwaS1yZXBvcnQtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktcmVwb3J0LXRlc3RzLmpzCkBAIC03Nyw2ICs3Nywy
OSBAQCBkZXNjcmliZSgiL2FwaS9yZXBvcnQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH07CiAg
ICAgfQogCisgICAgZnVuY3Rpb24gcmVwb3J0V2l0aFJldmlzaW9uSWRlbnRpZmllckNvbW1pdCgp
CisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgImJ1aWxkVGFnIjogIjEyMyIs
CisgICAgICAgICAgICAiYnVpbGRUaW1lIjogIjIwMTMtMDItMjhUMTA6MTI6MDMuMzg4MzA0IiwK
KyAgICAgICAgICAgICJidWlsZGVyTmFtZSI6ICJzb21lQnVpbGRlciIsCisgICAgICAgICAgICAi
d29ya2VyTmFtZSI6ICJzb21lV29ya2VyIiwKKyAgICAgICAgICAgICJidWlsZGVyUGFzc3dvcmQi
OiAic29tZVBhc3N3b3JkIiwKKyAgICAgICAgICAgICJwbGF0Zm9ybSI6ICJNb3VudGFpbiBMaW9u
IiwKKyAgICAgICAgICAgICJ0ZXN0cyI6IHt9LAorICAgICAgICAgICAgInJldmlzaW9ucyI6IHsK
KyAgICAgICAgICAgICAgICAibWFjT1MiOiB7CisgICAgICAgICAgICAgICAgICAgICJyZXZpc2lv
biI6ICIxMC44LjIgMTJDNjAiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAi
V2ViS2l0IjogeworICAgICAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMTQxOTc3IiwKKyAg
ICAgICAgICAgICAgICAgICAgInJldmlzaW9uSWRlbnRpZmllciI6ICIxMjcyMzFAbWFpbiIsCisg
ICAgICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAiMjAxMy0wMi0wNlQwODo1NToyMC45WiIK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorCiAg
ICAgZnVuY3Rpb24gZW1wdHlXb3JrZXJSZXBvcnQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHsK
QEAgLTM1MSw2ICszNzQsMzcgQEAgZGVzY3JpYmUoIi9hcGkvcmVwb3J0IiwgZnVuY3Rpb24gKCkg
ewogICAgICAgICB9KTsKICAgICB9KTsKIAorICAgIGl0KCJzaG91bGQgYWRkIHJldmlzaW9uIGxh
YmVsIiwgYXN5bmMgKCkgPT4geworICAgICAgICBhd2FpdCBhZGRCdWlsZGVyRm9yUmVwb3J0KHJl
cG9ydFdpdGhSZXZpc2lvbklkZW50aWZpZXJDb21taXQoKSk7CisgICAgICAgIGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIFtyZXBvcnRXaXRoUmV2
aXNpb25JZGVudGlmaWVyQ29tbWl0KCldKTsKKyAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVy
LmRhdGFiYXNlKCk7CisgICAgICAgIGNvbnN0IHJlcG9zaXRvcmllcyA9IGF3YWl0IGRiLnNlbGVj
dEFsbCgncmVwb3NpdG9yaWVzJyk7CisgICAgICAgIGNvbnN0IGNvbW1pdHMgPSAgYXdhaXQgZGIu
c2VsZWN0QWxsKCdjb21taXRzJyk7CisgICAgICAgIGNvbnN0IGJ1aWxkQ29tbWl0c1JlbGF0aW9u
cyA9IGF3YWl0ICBkYi5zZWxlY3RBbGwoJ2J1aWxkX2NvbW1pdHMnLCAnYnVpbGRfY29tbWl0Jyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3JpZXMubGVuZ3RoLCAyKTsKKyAg
ICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3JpZXMubWFwKChyb3cpID0+IHJv
d1snbmFtZSddKS5zb3J0KCksIFsnV2ViS2l0JywgJ21hY09TJ10pOworCisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkQ29tbWl0c1JlbGF0aW9uc1swXVsnYnVpbGRfY29tbWl0J10sIGNvbW1p
dHNbMF1bJ2lkJ10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRDb21taXRzUmVs
YXRpb25zWzFdWydidWlsZF9jb21taXQnXSwgY29tbWl0c1sxXVsnaWQnXSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZENvbW1pdHNSZWxhdGlvbnNbMF1bJ2NvbW1pdF9idWlsZCdd
LCBidWlsZENvbW1pdHNSZWxhdGlvbnNbMV1bJ2NvbW1pdF9idWlsZCddKTsKKworICAgICAgICBs
ZXQgcmVwb3NpdG9yeUlkVG9OYW1lID0ge307CisgICAgICAgIGZvciAoY29uc3QgcmVwb3NpdG9y
eSBvZiByZXBvc2l0b3JpZXMpCisgICAgICAgICAgICByZXBvc2l0b3J5SWRUb05hbWVbcmVwb3Np
dG9yeVsnaWQnXV0gPSByZXBvc2l0b3J5WyduYW1lJ107CisKKyAgICAgICAgbGV0IHJlcG9zaXRv
cnlOYW1lVG9SZXZpc2lvblJvdyA9IHt9OworICAgICAgICBmb3IgKGNvbnN0IGNvbW1pdCBvZiBj
b21taXRzKQorICAgICAgICAgICAgcmVwb3NpdG9yeU5hbWVUb1JldmlzaW9uUm93W3JlcG9zaXRv
cnlJZFRvTmFtZVtjb21taXRbJ3JlcG9zaXRvcnknXV1dID0gY29tbWl0OworCisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ21hY09TJ11bJ3Jl
dmlzaW9uJ10sICcxMC44LjIgMTJDNjAnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cG9zaXRvcnlOYW1lVG9SZXZpc2lvblJvd1snV2ViS2l0J11bJ3JldmlzaW9uJ10sICcxNDE5Nzcn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcG9zaXRvcnlOYW1lVG9SZXZpc2lvblJv
d1snV2ViS2l0J11bJ3JldmlzaW9uX2lkZW50aWZpZXInXSwgJzEyNzIzMUBtYWluJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXBvc2l0b3J5TmFtZVRvUmV2aXNpb25Sb3dbJ1dlYktp
dCddWyd0aW1lJ10udG9TdHJpbmcoKSwKKyAgICAgICAgICAgIG5ldyBEYXRlKCcyMDEzLTAyLTA2
IDA4OjU1OjIwLjknKS50b1N0cmluZygpKTsKKyAgICB9KTsKKwogICAgIGl0KCJzaG91bGQgbm90
IGNyZWF0ZSBhIGR1cGxpY2F0ZSBidWlsZCBmb3IgdGhlIHNhbWUgYnVpbGQgbnVtYmVyIGlmIGJ1
aWxkIHRpbWVzIGFyZSBjbG9zZSIsICgpID0+IHsKICAgICAgICAgY29uc3QgZmlyc3RSZXBvcnQg
PSBlbXB0eVJlcG9ydCgpOwogICAgICAgICBmaXJzdFJlcG9ydFsnYnVpbGRUaW1lJ10gPSAnMjAx
My0wMi0yOFQxMDoxMjowNCc7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
dW5pdC10ZXN0cy9jb21taXQtbG9nLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3VuaXQtdGVzdHMvY29tbWl0LWxvZy10ZXN0cy5qcwppbmRleCA3MGFiZGViZjgxZThhYjYwZDFk
MTgxNjNlMzk5MTg3OWNiNDczOGI2Li45MGE1NGI2MjlmYmNhMTIyYWY4MGJlYWZhYTk4YjhiMGRj
OTI4NWE4IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9j
b21taXQtbG9nLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRl
c3RzL2NvbW1pdC1sb2ctdGVzdHMuanMKQEAgLTE3LDYgKzE3LDE3IEBAIGZ1bmN0aW9uIHdlYmtp
dENvbW1pdCgpCiAgICAgfSk7CiB9CiAKK2Z1bmN0aW9uIHdlYmtpdENvbW1pdFdpdGhSZXZpc2lv
bklkZW50aWZpZXIoKSAKK3sKKyAgICByZXR1cm4gbmV3IENvbW1pdExvZygxLCB7CisgICAgICAg
IGlkOiAxLAorICAgICAgICByZXBvc2l0b3J5OiBNb2NrTW9kZWxzLndlYmtpdCwKKyAgICAgICAg
cmV2aXNpb246ICcyMDA4MDUnLAorICAgICAgICByZXZpc2lvbklkZW50aWZpZXI6ICcxODQyNzZA
bWFpbicsCisgICAgICAgIHRpbWU6ICsobmV3IERhdGUoJzIwMTYtMDUtMTNUMDA6NTU6NTcuODQx
MzQ0WicpKSwKKyAgICB9KTsKK30KKwogZnVuY3Rpb24gb2xkV2ViS2l0Q29tbWl0KCkKIHsKICAg
ICByZXR1cm4gbmV3IENvbW1pdExvZygyLCB7CkBAIC0yNyw2ICszOCwxNyBAQCBmdW5jdGlvbiBv
bGRXZWJLaXRDb21taXQoKQogICAgIH0pOwogfQogCitmdW5jdGlvbiBvbGRXZWJLaXRDb21taXRX
aXRoUmV2aXNpb25JZGVudGlmaWVyKCkKK3sKKyAgICByZXR1cm4gbmV3IENvbW1pdExvZygyLCB7
CisgICAgICAgIGlkOiAyLAorICAgICAgICByZXBvc2l0b3J5OiBNb2NrTW9kZWxzLndlYmtpdCwK
KyAgICAgICAgcmV2aXNpb246ICcyMDA1NzQnLAorICAgICAgICByZXZpc2lvbklkZW50aWZpZXI6
ICcxNzU2MDVAbWFpbicsCisgICAgICAgIHRpbWU6ICsobmV3IERhdGUoJzIwMTYtMDUtMDlUMTQ6
NTk6MjMuNTUzNzY3WicpKSwKKyAgICB9KTsKK30KKwogZnVuY3Rpb24gZ2l0V2ViS2l0Q29tbWl0
KCkKIHsKICAgICByZXR1cm4gbmV3IENvbW1pdExvZygzLCB7CkBAIC0zNyw2ICs1OSwxNyBAQCBm
dW5jdGlvbiBnaXRXZWJLaXRDb21taXQoKQogICAgIH0pOwogfQogCitmdW5jdGlvbiBnaXRXZWJL
aXRDb21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKCkKK3sKKyAgICByZXR1cm4gbmV3IENvbW1p
dExvZygzLCB7CisgICAgICAgIGlkOiAzLAorICAgICAgICByZXBvc2l0b3J5OiBNb2NrTW9kZWxz
LndlYmtpdCwKKyAgICAgICAgcmV2aXNpb246ICc2ZjhiMGRiYmRhOTVhNDQwNTAzYjg4ZGIxZGQw
M2RhZDNhN2IwN2ZiJywKKyAgICAgICAgcmV2aXNpb25JZGVudGlmaWVyOiAnMTg0Mjc2QG1haW4n
LAorICAgICAgICB0aW1lOiArKG5ldyBEYXRlKCcyMDE2LTA1LTEzVDAwOjU1OjU3Ljg0MTM0NFon
KSksCisgICAgfSk7Cit9CisKIGZ1bmN0aW9uIG9sZEdpdFdlYktpdENvbW1pdCgpCiB7CiAgICAg
cmV0dXJuIG5ldyBDb21taXRMb2coNCwgewpAQCAtNDcsNiArODAsMTcgQEAgZnVuY3Rpb24gb2xk
R2l0V2ViS2l0Q29tbWl0KCkKICAgICB9KTsKIH0KIAorZnVuY3Rpb24gb2xkR2l0V2ViS2l0Q29t
bWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpCit7CisgICAgcmV0dXJuIG5ldyBDb21taXRMb2co
NCwgeworICAgICAgICBpZDogNCwKKyAgICAgICAgcmVwb3NpdG9yeTogTW9ja01vZGVscy53ZWJr
aXQsCisgICAgICAgIHJldmlzaW9uOiAnZmZkYTE0ZTZkYjA3NDZkMTBkMGYwNTA5MDdlNGE3MzI1
ODUxZTUwMicsCisgICAgICAgIHJldmlzaW9uSWRlbnRpZmllcjogJzE3NTYwNUBtYWluJywKKyAg
ICAgICAgdGltZTogKyhuZXcgRGF0ZSgnMjAxNi0wNS0wOVQxNDo1OToyMy41NTM3NjdaJykpLAor
ICAgIH0pOworfQorCiBmdW5jdGlvbiBvc3hDb21taXQoKQogewogICAgIHJldHVybiBuZXcgQ29t
bWl0TG9nKDUsIHsKQEAgLTE0NywxMCArMTkxLDE4IEBAIGRlc2NyaWJlKCdDb21taXRMb2cnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0Q29tbWl0KCkubGFi
ZWwoKSwgJ3IyMDA4MDUnKTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgaXQoJ3Nob3VsZCB0cnVu
Y2F0ZSBhIEdpdCBoYXNoIGF0IDh0aCBjaGFyYWN0ZXInLCBmdW5jdGlvbiAoKSB7CisgICAgICAg
IGl0KCdzaG91bGQgZGlzcGxheSByZXZpc2lvbiBsYWJlbCBmb2xsb3dlZCBieSBzdm4gcmVmaXhl
ZCB3aXRoICJyIicsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJr
aXRDb21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKCkubGFiZWwoKSwgJzE4NDI3NkBtYWluIChy
MjAwODA1KScpCisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgdHJ1bmNhdGUgYSBH
aXQgaGFzaCBhdCAxMnRoIGNoYXJhY3RlcicsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChnaXRXZWJLaXRDb21taXQoKS5sYWJlbCgpLCAnNmY4YjBkYmJkYTk1Jyk7CiAg
ICAgICAgIH0pOwogCisgICAgICAgIGl0KCdzaG91bGQgZGlzcGxheSByZXZpc2lvbiBsYWJlbCBm
b2xsb3dlZCBieSBnaXQgaGFzaCB0cnVuY2F0ZWQnLCAoKSA9PiB7CisgICAgICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoZ2l0V2ViS2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpLmxh
YmVsKCksICcxODQyNzZAbWFpbiAoNmY4YjBkYmJkYTk1KScpCisgICAgICAgIH0pOworCiAgICAg
ICAgIGl0KCdzaG91bGQgbm90IG1vZGlmeSBPUyBYIHZlcnNpb24nLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0KCkubGFiZWwoKSwgJzEwLjExLjQgMTVF
NjUnKTsKICAgICAgICAgfSk7CkBAIC0xNjEsMTAgKzIxMywxOCBAQCBkZXNjcmliZSgnQ29tbWl0
TG9nJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdENvbW1p
dCgpLnRpdGxlKCksICdXZWJLaXQgYXQgcjIwMDgwNScpOwogICAgICAgICB9KTsKIAotICAgICAg
ICBpdCgnc2hvdWxkIHRydW5jYXRlIGEgR2l0IGhhc2ggYXQgOHRoIGNoYXJhY3RlcicsIGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgaXQoJ3Nob3VsZCBpbmNsdWRlIHJldmlzaW9uIGxhYmVsJywgKCkg
PT4geworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdENvbW1pdFdpdGhSZXZp
c2lvbklkZW50aWZpZXIoKS50aXRsZSgpLCAnV2ViS2l0IGF0IDE4NDI3NkBtYWluIChyMjAwODA1
KScpOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHRydW5jYXRlIGEgR2l0IGhh
c2ggYXQgMTJ0aCBjaGFyYWN0ZXInLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZ2l0V2ViS2l0Q29tbWl0KCkudGl0bGUoKSwgJ1dlYktpdCBhdCA2ZjhiMGRiYmRhOTUn
KTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoJ3Nob3VsZCBkaXNwbGF5IHJldmlzaW9uIGxh
YmVsIGZvbGxvd2VkIGJ5IGdpdCBoYXNoIHRydW5jYXRlZCcsICAoKSA9PiB7CisgICAgICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoZ2l0V2ViS2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmll
cigpLnRpdGxlKCksICdXZWJLaXQgYXQgMTg0Mjc2QG1haW4gKDZmOGIwZGJiZGE5NSknKTsKKyAg
ICAgICAgfSk7CisKICAgICAgICAgaXQoJ3Nob3VsZCBub3QgbW9kaWZ5IE9TIFggdmVyc2lvbics
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQoKS50aXRs
ZSgpLCAnT1MgWCBhdCAxMC4xMS40IDE1RTY1Jyk7CiAgICAgICAgIH0pOwpAQCAtMjIzLDYgKzI4
MywzMSBAQCBkZXNjcmliZSgnQ29tbWl0TG9nJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
ICAgIHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMub3N4CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBkaXNwbGF5IHJldmlzaW9uIGxhYmVsIGZvbGxvd2Vk
IHdpdGggcmV2aXNvbiBhbmQgIGNvbm5lY3Qgd2l0aCAiLSIsIGlmIGJvdGggaGF2ZSByZXZpc2lv
biBsYWJlbCcsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwod2Vi
a2l0Q29tbWl0V2l0aFJldmlzaW9uSWRlbnRpZmllcigpLmRpZmYob2xkV2ViS2l0Q29tbWl0V2l0
aFJldmlzaW9uSWRlbnRpZmllcigpKSwgeworICAgICAgICAgICAgICAgIGxhYmVsOiAnMTc1NjA1
LTE4NDI3NkBtYWluIChyMjAwNTc0LXIyMDA4MDUpJywKKyAgICAgICAgICAgICAgICB1cmw6ICcn
LAorICAgICAgICAgICAgICAgIHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMud2Via2l0CisgICAgICAg
ICAgICB9KQorICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIGRpc3BsYXkgcmV2aXNp
b24gbGFiZWwgZm9sbG93ZWQgd2l0aCByZXZpc29uIGFuZCAgY29ubmVjdCB3aXRoICItIiwgaWYg
Ym90aCBoYXZlIHJldmlzaW9uIGxhYmVsJywgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBTdHJpY3RFcXVhbChnaXRXZWJLaXRDb21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKCkuZGlm
ZihvbGRHaXRXZWJLaXRDb21taXRXaXRoUmV2aXNpb25JZGVudGlmaWVyKCkpLCB7CisgICAgICAg
ICAgICAgICAgbGFiZWw6ICcxNzU2MDUtMTg0Mjc2QG1haW4gKGZmZGExNGU2ZGIwNy4uNmY4YjBk
YmJkYTk1KScsCisgICAgICAgICAgICAgICAgdXJsOiAnJywKKyAgICAgICAgICAgICAgICByZXBv
c2l0b3J5OiBNb2NrTW9kZWxzLndlYmtpdAorICAgICAgICAgICAgfSkKKyAgICAgICAgfSk7CisK
KyAgICAgICAgaXQoJ3Nob3VsZCBjb250YWluIHJldmlzaW9uIGxhYmVsLCBpZiBvbmUgb2YgdGhl
IGNvbW1pdHMgZG9lc25gdCBoYXZlIHRoZSByZXZpc2lvbiBsYWJlbCcsICgpID0+IHsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwod2Via2l0Q29tbWl0V2l0aFJldmlzaW9uSWRl
bnRpZmllcigpLmRpZmYob2xkV2ViS2l0Q29tbWl0KCkpLCB7CisgICAgICAgICAgICAgICAgbGFi
ZWw6ICdyMjAwNTc0IC0gMTg0Mjc2QG1haW4gKHIyMDA4MDUpJywKKyAgICAgICAgICAgICAgICB1
cmw6ICcnLAorICAgICAgICAgICAgICAgIHJlcG9zaXRvcnk6IE1vY2tNb2RlbHMud2Via2l0Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKICAgICB9KTsKIAogICAgIGRlc2NyaWJlKCdo
YXNPcmRlcmluZycsICgpID0+IHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>