<?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>94643</bug_id>
          
          <creation_ts>2012-08-21 16:10:49 -0700</creation_ts>
          <short_desc>Add Khronos WebGL conformance tests to LayoutTests</short_desc>
          <delta_ts>2014-01-21 11:55:32 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>123188</dup_id>
          
          <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>
          <dependson>108189</dependson>
    
    <dependson>108731</dependson>
    
    <dependson>108901</dependson>
    
    <dependson>108902</dependson>
    
    <dependson>108904</dependson>
    
    <dependson>108905</dependson>
    
    <dependson>108907</dependson>
    
    <dependson>109063</dependson>
    
    <dependson>109075</dependson>
    
    <dependson>109111</dependson>
    
    <dependson>109112</dependson>
    
    <dependson>109113</dependson>
    
    <dependson>109114</dependson>
    
    <dependson>109115</dependson>
    
    <dependson>109116</dependson>
    
    <dependson>109117</dependson>
    
    <dependson>109118</dependson>
    
    <dependson>109120</dependson>
    
    <dependson>109121</dependson>
    
    <dependson>109122</dependson>
    
    <dependson>109207</dependson>
    
    <dependson>110525</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Gregg Tavares">gman</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gman</cc>
    
    <cc>inferno</cc>
    
    <cc>kalyan.kondapally</cc>
    
    <cc>kbr</cc>
    
    <cc>rniwa</cc>
    
    <cc>rtakacs</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>701242</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-08-21 16:10:49 -0700</bug_when>
    <thetext>It would be excellent if the Khronos WebGL test suite could be added to WebKit&apos;s Layout Tests. This would both validate any changes and help fuzzers like ClusterFuzz have greater coverage.

I&apos;m not sure what the license issues may be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701247</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-08-21 16:15:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/12146395&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701251</commentid>
    <comment_count>2</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-08-21 16:16:37 -0700</bug_when>
    <thetext>And we probably then don&apos;t need to archive it seperately in chromium tree - http://code.google.com/codesearch#OAMlx_jo-ck/src/third_party/webgl_conformance/conformance/attribs/gl-enable-vertex-attrib.html&amp;exact_package=chromium&amp;q=gl-enable-vertex-attrib.html&amp;type=cs&amp;l=2.

Right now, the fuzzing is just touching fast/canvas/webgl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701252</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-08-21 16:17:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/12146412&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701256</commentid>
    <comment_count>4</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-08-21 16:18:28 -0700</bug_when>
    <thetext>Errg. Why did this make two rdar links? Testing to see which of these will get the updates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701284</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-08-21 16:35:15 -0700</bug_when>
    <thetext>No license issues. The WebGL conformance tests are all MIT licensed. The only issues are technical.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702500</commentid>
    <comment_count>6</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-08-22 16:22:04 -0700</bug_when>
    <thetext>I should probably file a bug on the Khronos github, but I notice that the WebGL conformance suite doesn&apos;t have a license file, and many of the tests themselves have difference licenses. e.g.

&lt;!--
Copyright (c) 2011 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
--&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702534</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-08-22 17:16:45 -0700</bug_when>
    <thetext>The license issue has already been addressed in the top of tree conformance suite -- e.g. under sdk/tests/conformance/ , not the snapshots under e.g. conformance-suites/1.0.1/ .

Note though that there are a lot more tests in the TOT suite, and not all of them are close to passing on all platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812269</commentid>
    <comment_count>8</comment_count>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2013-01-21 10:52:56 -0800</bug_when>
    <thetext>I don&apos;t know the LayoutTests system that well but my understanding is they either do screenshot comparisons or text output comparisons. Both of those are problematic for the WebGL Conformance Tests. Many of the tests test advertised capabilities. Example:

    numTextures = gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS);
    for (var i = 0; i &lt; numTextures; ++i) {
      // test each texture unit
    }

Which means the output of the tests is different on each GPU/Driver/OS combo.

I don&apos;t know if there is some way in LayoutTests to say &quot;just tell me if the test succeeded, don&apos;t look at the output&quot; but I believe that is what will need to be added to the LayoutTest system if it&apos;s not already there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819394</commentid>
    <comment_count>9</comment_count>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2013-01-29 15:27:01 -0800</bug_when>
    <thetext>You are right Gregg. I&apos;ve ever talked with Kenneth about this.
He advised to modify these GPU-dependent tests in Khronos&apos; repository.
It is needed to remove GPU-dependent prints.
After that we will be able to import these tests :)

&gt; I don&apos;t know the LayoutTests system that well but my understanding is they either do screenshot comparisons or text output comparisons. Both of those are problematic for the WebGL Conformance Tests. Many of the tests test advertised capabilities. Example:
&gt; 
&gt;     numTextures = gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS);
&gt;     for (var i = 0; i &lt; numTextures; ++i) {
&gt;       // test each texture unit
&gt;     }
&gt; 
&gt; Which means the output of the tests is different on each GPU/Driver/OS combo.
&gt; 
&gt; I don&apos;t know if there is some way in LayoutTests to say &quot;just tell me if the test succeeded, don&apos;t look at the output&quot; but I believe that is what will need to be added to the LayoutTest system if it&apos;s not already there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819451</commentid>
    <comment_count>10</comment_count>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2013-01-29 16:20:12 -0800</bug_when>
    <thetext>I vehemently disagree. The WebGL tests should not be changed for WebKit. WebKit should change to work with the tests.

The tests are designed so they show useful information. Hiding that info so it&apos;s better for WebKit&apos;s test harness is wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819697</commentid>
    <comment_count>11</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-01-29 19:12:43 -0800</bug_when>
    <thetext>Can&apos;t we write another harness for WebKit that does effectively the same as the Khronos harness, but removes the iframe before notification that the test is done? We&apos;d only get a pass or fail indication, but that&apos;s ok - the test would link to the real location at khronos where you&apos;d get the full (important) debug output.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819789</commentid>
    <comment_count>12</comment_count>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2013-01-29 22:03:32 -0800</bug_when>
    <thetext>That would work.

Just run each test in an iframe, wait for success or failure, delete the iframe, Insert success or failure on the main page.. end the test. 

Would you create one &lt;name_of_test&gt;_wrapper.html for each WebGL test?

You could certainly generate those with some script that reads the 00_test_list.txt files. Anytime you want the latest tests you&apos;d download the new test, run the script, check in the new tests and the new generated wrappers.

Or, you could make some special rule that webgl tests are run by going to a url like http://path/to/layouttests/webkit_webgl_harness.html?url=path/to/real_test_to_run.html

That would require changes to the LayoutTest system I&apos;m guessing since AFAIK it just runs every .html file under LayoutTests, there&apos;s no way to specify URLs to run (or is there?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820513</commentid>
    <comment_count>13</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-01-30 13:57:31 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; That would work.
&gt; 
&gt; Just run each test in an iframe, wait for success or failure, delete the iframe, Insert success or failure on the main page.. end the test. 

Yeah

&gt; 
&gt; Would you create one &lt;name_of_test&gt;_wrapper.html for each WebGL test?
&gt; 
&gt; You could certainly generate those with some script that reads the 00_test_list.txt files. Anytime you want the latest tests you&apos;d download the new test, run the script, check in the new tests and the new generated wrappers.

That sounds good. We&apos;d need to have separate files for each due to the way WK runs tests. The alternative would be one file that runs multiple tests, but then a hang or crash would require more effort to narrow down.

&gt; 
&gt; Or, you could make some special rule that webgl tests are run by going to a url like http://path/to/layouttests/webkit_webgl_harness.html?url=path/to/real_test_to_run.html
&gt; 
&gt; That would require changes to the LayoutTest system I&apos;m guessing since AFAIK it just runs every .html file under LayoutTests, there&apos;s no way to specify URLs to run (or is there?)

Not that I know of, alas.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820724</commentid>
    <comment_count>14</comment_count>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2013-01-30 15:51:29 -0800</bug_when>
    <thetext>I&apos;m happy to add the tests. It shouldn&apos;t take long. We&apos;ll just have to figure out which once to mark as failing or skip</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820749</commentid>
    <comment_count>15</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-01-30 16:06:47 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; I&apos;m happy to add the tests. It shouldn&apos;t take long. We&apos;ll just have to figure out which once to mark as failing or skip

The easy first step would be to add the Khronos test suite into WebKit, maybe along with a script that would keep it up to date (via a git checkout, or something). Since it is a bunch of HTML files, we&apos;d have to skip the directory completely on all ports. Our test harness (next step) would load them in via iframes.

I am really looking forward to this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821173</commentid>
    <comment_count>16</comment_count>
      <attachid>185697</attachid>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2013-01-31 00:15:42 -0800</bug_when>
    <thetext>Created attachment 185697
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821193</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 00:26:48 -0800</bug_when>
    <thetext>Attachment 185697 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/platform/mac/TestExpectations&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-disabled-vertex-attrib-expected.txt&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-disabled-vertex-attrib.html&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-enable-vertex-attrib-expected.txt&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-enable-vertex-attrib.html&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertex-attrib-expected.txt&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertex-attrib-render-expected.txt&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertex-attrib-render.html&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertex-attrib-zero-issues-expected.txt&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertex-attrib-zero-issues.html&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertex-attrib.html&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertexattribpointer-expected.txt&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertexattribpointer-offsets-expected.txt&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertexattribpointer-offsets.html&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertexattribpointer.html&apos;, u&apos;LayoutTests/webgl/generate-webgl-tests.py&apos;, u&apos;LayoutTests/webgl/resources/js-test-pre.js&apos;, u&apos;LayoutTests/webgl/resources/webgl-wrapper-template.html&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/00_test_list.txt&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/gl-disabled-vertex-attrib.html&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/gl-enable-vertex-attrib.html&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/gl-vertex-attrib-render.html&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/gl-vertex-attrib-zero-issues.html&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/gl-vertex-attrib.html&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/gl-vertexattribpointer-offsets.html&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/gl-vertexattribpointer.html&apos;, u&apos;LayoutTests/webgl/resources/webkit-webgl-test-harness.js&apos;]&quot; exit_code: 1
LayoutTests/platform/mac/TestExpectations:1219:  Path does not exist.  [test/expectations] [5]
Total errors found: 1 in 28 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821196</commentid>
    <comment_count>18</comment_count>
      <attachid>185705</attachid>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2013-01-31 00:28:08 -0800</bug_when>
    <thetext>Created attachment 185705
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821205</commentid>
    <comment_count>19</comment_count>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2013-01-31 00:32:51 -0800</bug_when>
    <thetext>So this patch is just for discussion. Not checking it in

There&apos;s a script, LayoutTests/webgl/generate-webgl-tests.py

which you run like this

   generate-webgl-tests -w &lt;path_to_webgl_conformance_tests&gt;

And it will copy all the original tests to LayoutTests/webgl/resources/webgl_test_files.
It will then generate wrappers in LayoutTests/webgl/conformance

The patch above I just uploaded the examples from conformance/attribs as the entire list of files gets an error &quot;too many arguments&quot; when I tried webkit-patch upload

There&apos;s a few issues before I can check it in.

1) It hardlocks my MBP quite often. I added the TestExpections to turn off the one test I know there are issues. The context-creation-and-destruction test.  But, I think maybe the fact that DRT runs 8 instances at once is causing issues because it was locking hard in places I wouldn&apos;t expect it to lock hard. Either that or maybe WebKit just locks with WebGL often (I&apos;m always running the tests in Chromium)

2) I have no idea how to check this all in. Where are all the places I need to edit TestExpections etc..

3) I&apos;m not sure where it should go. II choose LayoutTests/webgl because some of the tests are not fast. &apos;m happy to put it anywhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821212</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 00:35:52 -0800</bug_when>
    <thetext>Attachment 185705 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/platform/mac/TestExpectations&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-disabled-vertex-attrib-expected.txt&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-disabled-vertex-attrib.html&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-enable-vertex-attrib-expected.txt&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-enable-vertex-attrib.html&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertex-attrib-expected.txt&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertex-attrib-render-expected.txt&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertex-attrib-render.html&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertex-attrib-zero-issues-expected.txt&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertex-attrib-zero-issues.html&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertex-attrib.html&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertexattribpointer-expected.txt&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertexattribpointer-offsets-expected.txt&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertexattribpointer-offsets.html&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertexattribpointer.html&apos;, u&apos;LayoutTests/webgl/generate-webgl-tests.py&apos;, u&apos;LayoutTests/webgl/resources/js-test-pre.js&apos;, u&apos;LayoutTests/webgl/resources/webgl-wrapper-template.html&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/00_test_list.txt&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/gl-disabled-vertex-attrib.html&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/gl-enable-vertex-attrib.html&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/gl-vertex-attrib-render.html&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/gl-vertex-attrib-zero-issues.html&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/gl-vertex-attrib.html&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/gl-vertexattribpointer-offsets.html&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/gl-vertexattribpointer.html&apos;, u&apos;LayoutTests/webgl/resources/webkit-webgl-test-harness.js&apos;]&quot; exit_code: 1
LayoutTests/platform/mac/TestExpectations:1219:  Path does not exist.  [test/expectations] [5]
Total errors found: 1 in 28 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821270</commentid>
    <comment_count>21</comment_count>
      <attachid>185705</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-31 02:14:12 -0800</bug_when>
    <thetext>Comment on attachment 185705
Patch

Attachment 185705 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16278100

New failing tests:
webgl/conformance/attribs/gl-vertexattribpointer.html
webgl/conformance/attribs/gl-vertex-attrib-render.html
webgl/conformance/attribs/gl-enable-vertex-attrib.html
webgl/conformance/attribs/gl-disabled-vertex-attrib.html
webgl/conformance/attribs/gl-vertex-attrib-zero-issues.html
webgl/conformance/attribs/gl-vertexattribpointer-offsets.html
webgl/conformance/attribs/gl-vertex-attrib.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821408</commentid>
    <comment_count>22</comment_count>
      <attachid>185705</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 05:03:58 -0800</bug_when>
    <thetext>Comment on attachment 185705
Patch

Attachment 185705 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16266200

New failing tests:
webgl/conformance/attribs/gl-vertexattribpointer.html
webgl/conformance/attribs/gl-vertex-attrib-render.html
webgl/conformance/attribs/gl-enable-vertex-attrib.html
webgl/conformance/attribs/gl-disabled-vertex-attrib.html
webgl/conformance/attribs/gl-vertex-attrib-zero-issues.html
webgl/conformance/attribs/gl-vertexattribpointer-offsets.html
webgl/conformance/attribs/gl-vertex-attrib.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821477</commentid>
    <comment_count>23</comment_count>
      <attachid>185705</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-31 06:27:51 -0800</bug_when>
    <thetext>Comment on attachment 185705
Patch

Attachment 185705 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16252399

New failing tests:
webgl/conformance/attribs/gl-vertexattribpointer.html
webgl/conformance/attribs/gl-vertex-attrib-render.html
webgl/conformance/attribs/gl-enable-vertex-attrib.html
webgl/conformance/attribs/gl-disabled-vertex-attrib.html
webgl/conformance/attribs/gl-vertex-attrib-zero-issues.html
webgl/conformance/attribs/gl-vertexattribpointer-offsets.html
webgl/conformance/attribs/gl-vertex-attrib.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821963</commentid>
    <comment_count>24</comment_count>
      <attachid>185868</attachid>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2013-01-31 14:32:31 -0800</bug_when>
    <thetext>Created attachment 185868
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821969</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 14:37:33 -0800</bug_when>
    <thetext>Attachment 185868 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/platform/mac/TestExpectations&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-disabled-vertex-attrib-expected.txt&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-disabled-vertex-attrib.html&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-enable-vertex-attrib-expected.txt&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-enable-vertex-attrib.html&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertex-attrib-expected.txt&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertex-attrib-render-expected.txt&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertex-attrib-render.html&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertex-attrib-zero-issues-expected.txt&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertex-attrib-zero-issues.html&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertex-attrib.html&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertexattribpointer-expected.txt&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertexattribpointer-offsets-expected.txt&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertexattribpointer-offsets.html&apos;, u&apos;LayoutTests/webgl/conformance/attribs/gl-vertexattribpointer.html&apos;, u&apos;LayoutTests/webgl/generate-webgl-tests.py&apos;, u&apos;LayoutTests/webgl/resources/js-test-pre.js&apos;, u&apos;LayoutTests/webgl/resources/webgl-expectation-template.txt&apos;, u&apos;LayoutTests/webgl/resources/webgl-wrapper-template.html&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/00_test_list.txt&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/gl-disabled-vertex-attrib.html&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/gl-enable-vertex-attrib.html&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/gl-vertex-attrib-render.html&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/gl-vertex-attrib-zero-issues.html&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/gl-vertex-attrib.html&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/gl-vertexattribpointer-offsets.html&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/attribs/gl-vertexattribpointer.html&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/3x3.png&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/blue-1x1.jpg&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/boolUniformShader.vert&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/bug-32888-texture.png&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/floatUniformShader.vert&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/fragmentShader.frag&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/glsl-conformance-test.js&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/glsl-feature-tests.css&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/glsl-generator.js&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/gray-ramp-256-with-128-alpha.png&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/gray-ramp-256.png&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/gray-ramp-default-gamma.png&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/gray-ramp-gamma0.1.png&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/gray-ramp-gamma1.0.png&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/gray-ramp-gamma2.0.png&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/gray-ramp-gamma4.0.png&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/gray-ramp-gamma9.0.png&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/gray-ramp.png&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/green-2x2-16bit.png&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/intArrayUniformShader.vert&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/intUniformShader.vert&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/matUniformShader.vert&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/noopUniformShader.frag&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/noopUniformShader.vert&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/npot-video.mp4&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/npot-video.theora.ogv&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/npot-video.webmvp8.webm&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/ogles-tests.css&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/pnglib.js&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/red-green.mp4&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/red-green.png&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/red-green.theora.ogv&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/red-green.webmvp8.webm&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/red-indexed.png&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/samplerUniformShader.frag&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/small-square-with-cie-rgb-profile.png&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/small-square-with-colormatch-profile.png&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/small-square-with-colorspin-profile.jpg&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/small-square-with-colorspin-profile.png&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/small-square-with-e-srgb-profile.png&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/small-square-with-smpte-c-profile.png&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/small-square-with-srgb-iec61966-2.1-profile.png&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/structUniformShader.vert&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/tex-image-and-sub-image-2d-with-canvas.js&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/tex-image-and-sub-image-2d-with-image-data.js&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/tex-image-and-sub-image-2d-with-image.js&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/tex-image-and-sub-image-2d-with-video.js&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/vertexShader.vert&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/webgl-test-utils.js&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/webgl-test.js&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/conformance/resources/zero-alpha.png&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/resources/desktop-gl-constants.js&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/resources/js-test-post.js&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/resources/js-test-pre.js&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/resources/js-test-style.css&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/resources/test-eval.js&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/resources/webgl-logo.png&apos;, u&apos;LayoutTests/webgl/resources/webgl_test_files/resources/webgl-test-harness.js&apos;, u&apos;LayoutTests/webgl/resources/webkit-webgl-test-harness.js&apos;]&quot; exit_code: 1
LayoutTests/platform/mac/TestExpectations:1226:  Path does not exist.  [test/expectations] [5]
Total errors found: 1 in 58 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822234</commentid>
    <comment_count>26</comment_count>
      <attachid>185868</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 19:07:50 -0800</bug_when>
    <thetext>Comment on attachment 185868
Patch

Attachment 185868 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16306202

New failing tests:
webgl/conformance/attribs/gl-vertex-attrib-zero-issues.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822247</commentid>
    <comment_count>27</comment_count>
      <attachid>185868</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 19:40:29 -0800</bug_when>
    <thetext>Comment on attachment 185868
Patch

Attachment 185868 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16306238

New failing tests:
webgl/conformance/attribs/gl-vertex-attrib-zero-issues.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826645</commentid>
    <comment_count>28</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-02-06 12:34:06 -0800</bug_when>
    <thetext>Gregg is actively working on this. Assigning to him.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833598</commentid>
    <comment_count>29</comment_count>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2013-02-14 17:51:32 -0800</bug_when>
    <thetext>All the tests are checked in but they are all disabled in all builds AFAIK.

When I try to turn them on one machine or another on one build or another has problems.

The tests are double marked. There&apos;s a global &apos;webgl&apos; turning off all webgl tests in LayoutTests/platform/mac/TestExpectations and LayoutTests/platform/chromium/TestExpectations

There are also some entries for individual tests, all currently marked as Skip. If you remove the &apos;webgl&apos; entry disabling all the test then the ones that are left are tests that failed on my personal machines but you&apos;ll need to do more testing on other machines to find out which other tests need to be marked.

There&apos;s a certain amount of incompatibility between the WebGL tests and the WebKit LayoutTests.  A few of the WebGL tests are not fast. There is no criteria that WebGL tests must be fast. They instead have the criteria that the test must communicate with the harness. No communicate = timeout. Each communication (test report) resets the timeout.

It would be nice if LayoutTests has a similar mechanism as several tests seem to be right on the edge of making inside LayoutTests timeout limit and therefore end up being flaky</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965039</commentid>
    <comment_count>30</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-01-07 09:29:26 -0800</bug_when>
    <thetext>This work was completed under Bug 123188.

*** This bug has been marked as a duplicate of bug 123188 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185697</attachid>
            <date>2013-01-31 00:15:42 -0800</date>
            <delta_ts>2013-01-31 00:28:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94643-20130131001226.patch</filename>
            <type>text/plain</type>
            <size>105506</size>
            <attacher name="Gregg Tavares">gman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMjQxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTFjMTZhNzM2NTBmMjFhYTM1NjQ5
MzY2YmM4NzJkNWQ2NGUxZjdlNi4uMWZkZmEzYzk4MGU5ODUyOGZhMWU3NmZiODgwZDY1OGRlODU0
Y2E2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEzLTAxLTMxICBHcmVnZyBUYXZhcmVzICA8
Z21hbkBnb29nbGUuY29tPgorCisgICAgICAgIEFkZCBLaHJvbm9zIFdlYkdMIGNvbmZvcm1hbmNl
IHRlc3RzIHRvIExheW91dFRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05NDY0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICog
d2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1kaXNhYmxlZC12ZXJ0ZXgtYXR0cmliLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1k
aXNhYmxlZC12ZXJ0ZXgtYXR0cmliLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZv
cm1hbmNlL2F0dHJpYnMvZ2wtZW5hYmxlLXZlcnRleC1hdHRyaWItZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLWVuYWJsZS12ZXJ0ZXgt
YXR0cmliLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMv
Z2wtdmVydGV4LWF0dHJpYi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2Nv
bmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi1yZW5kZXItZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRy
aWItcmVuZGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL2F0dHJp
YnMvZ2wtdmVydGV4LWF0dHJpYi16ZXJvLWlzc3Vlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi16ZXJvLWlz
c3Vlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2ds
LXZlcnRleC1hdHRyaWIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2Uv
YXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLW9m
ZnNldHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9h
dHRyaWJzL2dsLXZlcnRleGF0dHJpYnBvaW50ZXItb2Zmc2V0cy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleGF0dHJpYnBvaW50ZXIuaHRt
bDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvZ2VuZXJhdGUtd2ViZ2wtdGVzdHMucHk6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qczogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsLXdyYXBwZXItdGVtcGxhdGUuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
YXR0cmlicy8wMF90ZXN0X2xpc3QudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLWRpc2FibGVkLXZlcnRl
eC1hdHRyaWIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1lbmFibGUtdmVydGV4LWF0dHJpYi5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWItcmVuZGVyLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJp
YnMvZ2wtdmVydGV4LWF0dHJpYi16ZXJvLWlzc3Vlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZl
cnRleC1hdHRyaWIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLW9m
ZnNldHMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNz
LmpzOiBBZGRlZC4KKwogMjAxMy0wMS0zMCAgRG9taW5payBSw7Z0dHNjaGVzICA8ZG9taW5pay5y
b3R0c2NoZXNAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIFVucmV2aWV3ZWQgZ2FyZGVuaW5n
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwNmU3NmIy
ZjVjNTM1MTk0MTc5ZjIxMjJjNzhlNWQ1YzM3YmFlZTJjLi42NDg0MzdjODRiYTRiYjk2ZDg2ZWFj
NTAwZGM1NjhmYTQ0MGM5NzNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMTIxNyw2ICsxMjE3LDkgQEAgd2Via2l0Lm9yZy9iLzY3NDM0IFsgRGVidWcg
XSBmYXN0L2Jsb2NrL2Zsb2F0L292ZXJoYW5naW5nLXRhbGwtYmxvY2suaHRtbCBbIFNraXAKICMg
TW91bnRhaW4gTGlvbiBhbmQgcHJpb3IgZG8gbm90IHN1cHBvcnQgY3VzdG9tIG1lZGlhIGRhdGEg
bG9hZGluZwogQnVnKGplcm5vYmxlKSBbIE1vdW50YWluTGlvbiBMaW9uIFNub3dMZW9wYXJkIF0g
bWVkaWEvdmlkZW8tc3JjLWJsb2IuaHRtbAogCisjIFdlYkdMIENvbmZvcm1hbmNlIFRlc3RzCit3
ZWJraXQub3JnL2IvMDAwMDAwIHdlYmdsL2NvbmZvcm1hbmNlL2NvbnRleHQvY29udGV4dC1jcmVh
dGlvbi1hbmQtZGVzdHJ1Y3Rpb24uaHRtbCBbIFNraXAgXQorCiAjIE1vdW50YWluIExpb24gYW5k
IHByaW9yIGRvIG5vdCBhbGxvdyBhY2Nlc3MgdG8gaW4tYmFuZCB0ZXh0IHRyYWNrcwogd2Via2l0
Lm9yZy9iLzEwMzY2MyBbIE1vdW50YWluTGlvbiBMaW9uIFNub3dMZW9wYXJkIF0gbWVkaWEvdHJh
Y2svdHJhY2staW4tYmFuZC5odG1sCiB3ZWJraXQub3JnL2IvMTAzNjYzIFsgTW91bnRhaW5MaW9u
IExpb24gU25vd0xlb3BhcmQgXSBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLWN1ZXMtYWRkZWQt
b25jZS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9hdHRy
aWJzL2dsLWRpc2FibGVkLXZlcnRleC1hdHRyaWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
d2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1kaXNhYmxlZC12ZXJ0ZXgtYXR0cmliLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42N2IwMmI0OWFkMmM3ZTFmMDE1NjQ4Zjg0NmEyNWU3NzE1MjBh
YmM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0
cmlicy9nbC1kaXNhYmxlZC12ZXJ0ZXgtYXR0cmliLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUg
QEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJh
bWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLWRpc2FibGVkLXZlcnRleC1hdHRy
aWIuaHRtbAorUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5j
ZS9hdHRyaWJzL2dsLWRpc2FibGVkLXZlcnRleC1hdHRyaWIuaHRtbCBiL0xheW91dFRlc3RzL3dl
YmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtZGlzYWJsZWQtdmVydGV4LWF0dHJpYi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFiZWViZjMwOGJiZjhjODE2MTM4NDJjZmFlOGQyMDdmODVkZGQ5YTYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLWRp
c2FibGVkLXZlcnRleC1hdHRyaWIuaHRtbApAQCAtMCwwICsxLDE3IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wg
Q29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBnbC1kaXNhYmxlZC12ZXJ0ZXgtYXR0cmliLmh0
bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdM
IFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwu
PC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvYXR0cmlicy9nbC1kaXNhYmxlZC12ZXJ0ZXgtYXR0cmliLmh0bWwiPi4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtZGlzYWJsZWQt
dmVydGV4LWF0dHJpYi5odG1sPC9hPgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9
ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvYXR0cmlicy9nbC1kaXNhYmxlZC12ZXJ0ZXgtYXR0cmliLmh0bWwiIHdpZHRo
PSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1lbmFi
bGUtdmVydGV4LWF0dHJpYi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3Jt
YW5jZS9hdHRyaWJzL2dsLWVuYWJsZS12ZXJ0ZXgtYXR0cmliLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zYjRiZmQ2MTBhYjcxZmQwOGM5ZWYxM2MxMWM4NDhmOGJhNjI3ZTkyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1lbmFibGUt
dmVydGV4LWF0dHJpYi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitDT05TT0xFIE1FU1NB
R0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogZHJhd0FycmF5czogYXR0ZW1wdCB0byBhY2Nl
c3Mgb3V0IG9mIGJvdW5kcyBhcnJheXMKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2ds
LWVuYWJsZS12ZXJ0ZXgtYXR0cmliLmh0bWwKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1lbmFibGUtdmVydGV4LWF0dHJpYi5odG1s
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1lbmFibGUtdmVydGV4
LWF0dHJpYi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkZGJiMmQwYjI5NWM0NzYxZDM4Y2Y5MTI1ZTg1NzQw
NmQwNWIwOWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5j
ZS9hdHRyaWJzL2dsLWVuYWJsZS12ZXJ0ZXgtYXR0cmliLmh0bWwKQEAgLTAsMCArMSwxNyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgZ2wtZW5hYmxlLXZlcnRl
eC1hdHRyaWIuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0
LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLWVuYWJsZS12ZXJ0ZXgtYXR0cmliLmh0bWwi
Pi4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wt
ZW5hYmxlLXZlcnRleC1hdHRyaWIuaHRtbDwvYT4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8
ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtZW5hYmxlLXZlcnRleC1hdHRyaWIuaHRtbCIg
d2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2ds
LXZlcnRleC1hdHRyaWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFu
Y2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzUy
NDkyNmE0N2FkMDFiZWJhYzk3MTZmMzI0NDc4ZWZjYmIzMWI3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0
IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitU
ZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJz
L2dsLXZlcnRleC1hdHRyaWIuaHRtbAorUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWItcmVuZGVyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0
dHJpYi1yZW5kZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4MzA2YWU3MTg3MjRjNzNkY2Rm
ZGYyMDg0MTg4N2Y3YzJlNmNlMjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWItcmVuZGVyLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBi
ZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRl
eC1hdHRyaWItcmVuZGVyLmh0bWwKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLXJlbmRlci5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLXJlbmRl
ci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjk3OTI0OTVmMjMwMWVkYzFmZmY0N2YwNmEwMWM0ODJiZWQ5MGUz
ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9hdHRy
aWJzL2dsLXZlcnRleC1hdHRyaWItcmVuZGVyLmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgZ2wtdmVydGV4LWF0dHJpYi1yZW5k
ZXIuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUg
V2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3Ig
RkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWItcmVuZGVyLmh0bWwiPi4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4
LWF0dHJpYi1yZW5kZXIuaHRtbDwvYT4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8ZGl2IGlk
PSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi1yZW5kZXIuaHRtbCIgd2lkdGg9
IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRl
eC1hdHRyaWItemVyby1pc3N1ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29u
Zm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLXplcm8taXNzdWVzLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mYThlYWU1ZDk1ZTgyMmVlZWQ2MDJhOTI3NjA2ODg1YzMxYTM2MWEyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9n
bC12ZXJ0ZXgtYXR0cmliLXplcm8taXNzdWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAK
K1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWItemVyby1pc3N1
ZXMuaHRtbAorUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5j
ZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWItemVyby1pc3N1ZXMuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi16ZXJvLWlzc3Vlcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmE2OThjODc2ZjY3YjU4MjEzYzI0MGMxYzdmNDM4MWNmMDE5OWEwOTEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJz
L2dsLXZlcnRleC1hdHRyaWItemVyby1pc3N1ZXMuaHRtbApAQCAtMCwwICsxLDE3IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0
bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBnbC12ZXJ0ZXgtYXR0cmliLXpl
cm8taXNzdWVzLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVz
dC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1
bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQ
QVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLXplcm8taXNzdWVz
Lmh0bWwiPi4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJp
YnMvZ2wtdmVydGV4LWF0dHJpYi16ZXJvLWlzc3Vlcy5odG1sPC9hPgorPGRpdiBpZD0icmVzdWx0
Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLXpl
cm8taXNzdWVzLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9y
bWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9j
b25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjZl
M2M4NDFhMzZiMDJjOTA5ODYzZmRjZTk3OGFhZTkxZDU2YWViCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLmh0
bWwKQEAgLTAsMCArMSwxNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBl
ciBmb3IgZ2wtdmVydGV4LWF0dHJpYi5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9yZXNvdXJjZXMvd2Vi
a2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJp
Yi5odG1sIj4uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRy
aWJzL2dsLXZlcnRleC1hdHRyaWIuaHRtbDwvYT4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8
ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi5odG1sIiB3aWR0aD0i
ODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4
YXR0cmlicG9pbnRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5j
ZS9hdHRyaWJzL2dsLXZlcnRleGF0dHJpYnBvaW50ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmVhZmRiY2ViYTcyMzgxNzNiYmJiMDY5YWQwYzc4ZGUzOTlhODI1YWIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleGF0dHJp
YnBvaW50ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjYyIEBACitDT05TT0xFIE1FU1NBR0U6
IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogbm8gYm91bmQg
QVJSQVlfQlVGRkVSCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX0VOVU06IHZlcnRl
eEF0dHJpYlBvaW50ZXI6IGludmFsaWQgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5W
QUxJRF9FTlVNOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBpbnZhbGlkIHR5cGUKK0NPTlNPTEUgTUVT
U0FHRTogV2ViR0w6IElOVkFMSURfRU5VTTogdmVydGV4QXR0cmliUG9pbnRlcjogaW52YWxpZCB0
eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX1ZBTFVFOiB2ZXJ0ZXhBdHRyaWJQ
b2ludGVyOiBiYWQgc2l6ZSwgc3RyaWRlIG9yIG9mZnNldAorQ09OU09MRSBNRVNTQUdFOiBXZWJH
TDogSU5WQUxJRF9WQUxVRTogdmVydGV4QXR0cmliUG9pbnRlcjogYmFkIHNpemUsIHN0cmlkZSBv
ciBvZmZzZXQKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfVkFMVUU6IHZlcnRleEF0
dHJpYlBvaW50ZXI6IGJhZCBzaXplLCBzdHJpZGUgb3Igb2Zmc2V0CitDT05TT0xFIE1FU1NBR0U6
IFdlYkdMOiBJTlZBTElEX1ZBTFVFOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBiYWQgc2l6ZSwgc3Ry
aWRlIG9yIG9mZnNldAorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9WQUxVRTogdmVy
dGV4QXR0cmliUG9pbnRlcjogYmFkIHNpemUsIHN0cmlkZSBvciBvZmZzZXQKK0NPTlNPTEUgTUVT
U0FHRTogV2ViR0w6IElOVkFMSURfVkFMVUU6IHZlcnRleEF0dHJpYlBvaW50ZXI6IGJhZCBzaXpl
LCBzdHJpZGUgb3Igb2Zmc2V0CitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX1ZBTFVF
OiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBiYWQgc2l6ZSwgc3RyaWRlIG9yIG9mZnNldAorQ09OU09M
RSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9WQUxVRTogdmVydGV4QXR0cmliUG9pbnRlcjogYmFk
IHNpemUsIHN0cmlkZSBvciBvZmZzZXQKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURf
VkFMVUU6IHZlcnRleEF0dHJpYlBvaW50ZXI6IGJhZCBzaXplLCBzdHJpZGUgb3Igb2Zmc2V0CitD
T05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX1ZBTFVFOiB2ZXJ0ZXhBdHRyaWJQb2ludGVy
OiBiYWQgc2l6ZSwgc3RyaWRlIG9yIG9mZnNldAorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5W
QUxJRF9WQUxVRTogdmVydGV4QXR0cmliUG9pbnRlcjogYmFkIHNpemUsIHN0cmlkZSBvciBvZmZz
ZXQKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfVkFMVUU6IHZlcnRleEF0dHJpYlBv
aW50ZXI6IGJhZCBzaXplLCBzdHJpZGUgb3Igb2Zmc2V0CitDT05TT0xFIE1FU1NBR0U6IFdlYkdM
OiBJTlZBTElEX1ZBTFVFOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBiYWQgc2l6ZSwgc3RyaWRlIG9y
IG9mZnNldAorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9WQUxVRTogdmVydGV4QXR0
cmliUG9pbnRlcjogYmFkIHNpemUsIHN0cmlkZSBvciBvZmZzZXQKK0NPTlNPTEUgTUVTU0FHRTog
V2ViR0w6IElOVkFMSURfVkFMVUU6IHZlcnRleEF0dHJpYlBvaW50ZXI6IGJhZCBzaXplLCBzdHJp
ZGUgb3Igb2Zmc2V0CitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX1ZBTFVFOiB2ZXJ0
ZXhBdHRyaWJQb2ludGVyOiBiYWQgc2l6ZSwgc3RyaWRlIG9yIG9mZnNldAorQ09OU09MRSBNRVNT
QUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlk
ZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJ
TlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBu
b3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFU
SU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3Ig
dHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9WQUxVRTogdmVydGV4QXR0cmli
UG9pbnRlcjogYmFkIHNpemUsIHN0cmlkZSBvciBvZmZzZXQKK0NPTlNPTEUgTUVTU0FHRTogV2Vi
R0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zm
c2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9P
UEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlk
IGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVy
dGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NP
TlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2lu
dGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdF
OiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBv
ciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZB
TElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3Qg
dmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9O
OiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlw
ZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJp
YlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1F
U1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3Ry
aWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6
IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0
IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVS
QVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZv
ciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4
QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNP
TEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVy
OiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBX
ZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBv
ZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElE
X09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFs
aWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2
ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQor
Q09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBv
aW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NB
R0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRl
IG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElO
VkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5v
dCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJ
T046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0
eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0
cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUg
TUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBz
dHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJH
TDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZz
ZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09Q
RVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQg
Zm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0
ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09O
U09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50
ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6
IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9y
IG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFM
SURfVkFMVUU6IHZlcnRleEF0dHJpYlBvaW50ZXI6IGJhZCBzaXplLCBzdHJpZGUgb3Igb2Zmc2V0
CitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmli
UG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVT
U0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJp
ZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDog
SU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQg
bm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJB
VElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9y
IHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhB
dHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09M
RSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6
IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdl
YkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9m
ZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURf
T1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxp
ZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZl
cnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitD
T05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9p
bnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FH
RTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUg
b3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5W
QUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90
IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElP
TjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5
cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRy
aWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBN
RVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0
cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdM
OiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNl
dCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BF
UkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBm
b3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRl
eEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05T
T0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRl
cjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTog
V2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Ig
b2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJ
RF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZh
bGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjog
dmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUK
K0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQ
b2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNT
QUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlk
ZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJ
TlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBu
b3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFU
SU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3Ig
dHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0
dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xF
IE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX1ZBTFVFOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBiYWQg
c2l6ZSwgc3RyaWRlIG9yIG9mZnNldAorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9P
UEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlk
IGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVy
dGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NP
TlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2lu
dGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdF
OiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBv
ciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZB
TElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3Qg
dmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9O
OiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlw
ZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJp
YlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1F
U1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3Ry
aWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6
IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0
IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVS
QVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZv
ciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4
QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNP
TEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVy
OiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBX
ZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBv
ZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElE
X09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFs
aWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2
ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQor
Q09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBv
aW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NB
R0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRl
IG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElO
VkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5v
dCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJ
T046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0
eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0
cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUg
TUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBz
dHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJH
TDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZz
ZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09Q
RVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQg
Zm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0
ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09O
U09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50
ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6
IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9y
IG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFM
SURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2
YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9WQUxVRTogdmVy
dGV4QXR0cmliUG9pbnRlcjogYmFkIHNpemUsIHN0cmlkZSBvciBvZmZzZXQKK0NPTlNPTEUgTUVT
U0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJp
ZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDog
SU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQg
bm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJB
VElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9y
IHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhB
dHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09M
RSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6
IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdl
YkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9m
ZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURf
T1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxp
ZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZl
cnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitD
T05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9p
bnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FH
RTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUg
b3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5W
QUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90
IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElP
TjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5
cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRy
aWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBN
RVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0
cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdM
OiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNl
dCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BF
UkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBm
b3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRl
eEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05T
T0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRl
cjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTog
V2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Ig
b2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJ
RF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZh
bGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjog
dmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUK
K0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQ
b2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNT
QUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlk
ZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJ
TlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBu
b3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFU
SU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3Ig
dHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0
dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xF
IE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjog
c3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2Vi
R0w6IElOVkFMSURfVkFMVUU6IHZlcnRleEF0dHJpYlBvaW50ZXI6IGJhZCBzaXplLCBzdHJpZGUg
b3Igb2Zmc2V0CitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVy
dGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NP
TlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2lu
dGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdF
OiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBv
ciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZB
TElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3Qg
dmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9O
OiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlw
ZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJp
YlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1F
U1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3Ry
aWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6
IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0
IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVS
QVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZv
ciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4
QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNP
TEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVy
OiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBX
ZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBv
ZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElE
X09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFs
aWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2
ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQor
Q09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBv
aW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NB
R0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRl
IG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElO
VkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5v
dCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJ
T046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0
eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0
cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUg
TUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBz
dHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJH
TDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZz
ZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09Q
RVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQg
Zm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0
ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09O
U09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50
ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6
IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9y
IG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFM
SURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2
YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046
IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBl
CitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX1ZBTFVFOiB2ZXJ0ZXhBdHRyaWJQb2lu
dGVyOiBiYWQgc2l6ZSwgc3RyaWRlIG9yIG9mZnNldAorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDog
SU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQg
bm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJB
VElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9y
IHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhB
dHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09M
RSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6
IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdl
YkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9m
ZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURf
T1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxp
ZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZl
cnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitD
T05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9p
bnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FH
RTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUg
b3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5W
QUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90
IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElP
TjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5
cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRy
aWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBN
RVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0
cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdM
OiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNl
dCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BF
UkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBm
b3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRl
eEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05T
T0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRl
cjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTog
V2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Ig
b2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJ
RF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZh
bGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjog
dmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUK
K0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQ
b2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNT
QUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlk
ZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJ
TlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBu
b3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFU
SU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3Ig
dHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0
dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xF
IE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjog
c3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2Vi
R0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zm
c2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9W
QUxVRTogdmVydGV4QXR0cmliUG9pbnRlcjogYmFkIHNpemUsIHN0cmlkZSBvciBvZmZzZXQKK0NP
TlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2lu
dGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdF
OiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBv
ciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZB
TElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3Qg
dmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9O
OiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlw
ZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJp
YlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1F
U1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3Ry
aWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6
IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0
IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVS
QVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZv
ciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4
QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNP
TEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVy
OiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBX
ZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBv
ZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElE
X09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFs
aWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2
ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQor
Q09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBv
aW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NB
R0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRl
IG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElO
VkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5v
dCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJ
T046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0
eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0
cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUg
TUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBz
dHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJH
TDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZz
ZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09Q
RVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQg
Zm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0
ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09O
U09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50
ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6
IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9y
IG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFM
SURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2
YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046
IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBl
CitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmli
UG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVT
U0FHRTogV2ViR0w6IElOVkFMSURfVkFMVUU6IHZlcnRleEF0dHJpYlBvaW50ZXI6IGJhZCBzaXpl
LCBzdHJpZGUgb3Igb2Zmc2V0CitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJB
VElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9y
IHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhB
dHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09M
RSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6
IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdl
YkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9m
ZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURf
T1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxp
ZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZl
cnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitD
T05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9p
bnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FH
RTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUg
b3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5W
QUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90
IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElP
TjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5
cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRy
aWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBN
RVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0
cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdM
OiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNl
dCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BF
UkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBm
b3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRl
eEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05T
T0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRl
cjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTog
V2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Ig
b2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJ
RF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZh
bGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjog
dmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUK
K0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQ
b2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNT
QUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlk
ZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJ
TlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBu
b3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFU
SU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3Ig
dHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0
dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xF
IE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjog
c3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2Vi
R0w6IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zm
c2V0IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9P
UEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlk
IGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX1ZBTFVFOiB2ZXJ0ZXhB
dHRyaWJQb2ludGVyOiBiYWQgc2l6ZSwgc3RyaWRlIG9yIG9mZnNldAorQ09OU09MRSBNRVNTQUdF
OiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBv
ciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZB
TElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3Qg
dmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6IElOVkFMSURfT1BFUkFUSU9O
OiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0IG5vdCB2YWxpZCBmb3IgdHlw
ZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVSQVRJT046IHZlcnRleEF0dHJp
YlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZvciB0eXBlCitDT05TT0xFIE1F
U1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4QXR0cmliUG9pbnRlcjogc3Ry
aWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNPTEUgTUVTU0FHRTogV2ViR0w6
IElOVkFMSURfT1BFUkFUSU9OOiB2ZXJ0ZXhBdHRyaWJQb2ludGVyOiBzdHJpZGUgb3Igb2Zmc2V0
IG5vdCB2YWxpZCBmb3IgdHlwZQorQ09OU09MRSBNRVNTQUdFOiBXZWJHTDogSU5WQUxJRF9PUEVS
QVRJT046IHZlcnRleEF0dHJpYlBvaW50ZXI6IHN0cmlkZSBvciBvZmZzZXQgbm90IHZhbGlkIGZv
ciB0eXBlCitDT05TT0xFIE1FU1NBR0U6IFdlYkdMOiBJTlZBTElEX09QRVJBVElPTjogdmVydGV4
QXR0cmliUG9pbnRlcjogc3RyaWRlIG9yIG9mZnNldCBub3QgdmFsaWQgZm9yIHR5cGUKK0NPTlNP
TEUgTUVTU0FHRTogV2ViR0w6IHRvbyBtYW55IGVycm9ycywgbm8gbW9yZSBlcnJvcnMgd2lsbCBi
ZSByZXBvcnRlZCB0byB0aGUgY29uc29sZSBmb3IgdGhpcyBjb250ZXh0LgorVGhpcyB0ZXN0IHJ1
bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQ
QVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4YXR0cmlicG9pbnRlci5odG1sCitQQVNTCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4
YXR0cmlicG9pbnRlci1vZmZzZXRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsL2Nv
bmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4YXR0cmlicG9pbnRlci1vZmZzZXRzLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wOTI5MmI4MDJmMDFkMjhlMjFhNWNmZmEwMTE2N2I0MGE2Y2E3YmYw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmli
cy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLW9mZnNldHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlm
cmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4YXR0cmlicG9pbnRl
ci1vZmZzZXRzLmh0bWwKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29u
Zm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLW9mZnNldHMuaHRtbCBiL0xh
eW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4YXR0cmlicG9pbnRl
ci1vZmZzZXRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2UxYmYzNjAzMGU1MjZlNTBmMDM4MDBjZDM3NTQ4
Y2MxZTc4YTYxYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1h
bmNlL2F0dHJpYnMvZ2wtdmVydGV4YXR0cmlicG9pbnRlci1vZmZzZXRzLmh0bWwKQEAgLTAsMCAr
MSwxNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgZ2wtdmVy
dGV4YXR0cmlicG9pbnRlci1vZmZzZXRzLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy93
ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFt
ZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRy
aWJwb2ludGVyLW9mZnNldHMuaHRtbCI+Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLW9mZnNldHMuaHRtbDwv
YT4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBz
cmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMv
Z2wtdmVydGV4YXR0cmlicG9pbnRlci1vZmZzZXRzLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0i
NjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVy
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleGF0
dHJpYnBvaW50ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYzdlY2MyMzI5YTViYWFiMGVkMzYxOWY4ZTI1
OWJmZmU0YzQxMmIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9y
bWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLmh0bWwKQEAgLTAsMCArMSwxNyBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgZ2wtdmVydGV4YXR0
cmlicG9pbnRlci5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRl
c3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBy
dW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMg
UEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4YXR0cmlicG9pbnRlci5odG1s
Ij4uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2ds
LXZlcnRleGF0dHJpYnBvaW50ZXIuaHRtbDwvYT4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8
ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4YXR0cmlicG9pbnRlci5odG1sIiB3
aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2dlbmVyYXRlLXdlYmdsLXRlc3RzLnB5
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvZ2VuZXJhdGUtd2ViZ2wtdGVzdHMucHkKbmV3IGZpbGUgbW9k
ZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MGZhZTdjYTYwOTM2MDg4YzQ0NThmM2Q3ZGY0MjQ0OWU5ZTA5MWNlMQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL2dlbmVyYXRlLXdlYmdsLXRlc3RzLnB5CkBAIC0wLDAgKzEs
MjE3IEBACisjIS91c3IvYmluL3B5dGhvbgorCisiIiJnZW5lcmF0ZXMgd2ViZ2wgbGF5b3V0IHRl
c3RzIGZyb20gdGhlIEtocm9ub3MgV2ViR0wgQ29uZm9ybWFuY2UgVGVzdHMiIiIKKworaW1wb3J0
IGNvcHkKK2ltcG9ydCBvcworaW1wb3J0IG9zLnBhdGgKK2ltcG9ydCBzeXMKK2ltcG9ydCByZQor
aW1wb3J0IGpzb24KK2ltcG9ydCBzaHV0aWwKK2Zyb20gb3B0cGFyc2UgaW1wb3J0IE9wdGlvblBh
cnNlcgorCitpZiBzeXMudmVyc2lvbiA8ICcyLjYnOgorICBwcmludCAnV3JvbmcgUHl0aG9uIFZl
cnNpb24gISEhOiBOZWVkID49IDIuNicKKyAgc3lzLmV4aXQoMSkKKworCitHTE9CQUxfT1BUSU9O
UyA9IHsKKyAgIyB2ZXJzaW9uIHVzZS4gVGVzdHMgYXQgb3IgYmVsb3cgdGhpcyB3aWxsIGJlIGlu
Y2x1ZGVkLgorICAidmVyc2lvbiI6ICIxLjAuMiIsCisKKyAgIyB2ZXJzaW9uIHVzZWQgZm9yIHVu
bGFibGVkIHRlc3RzCisgICJkZWZhdWx0LXZlcnNpb24iOiAiMS4wIiwKKworICAjIElmIHNldCwg
dGhlIHZlcnNpb24gd2UgcmVxdWlyZS4gVGVzdHMgYmVsb3cgdGhpcyB3aWxsIGJlIGlnbm9yZWQu
CisgICMibWluLXZlcnNpb24iOiAiMS4wLjIiLAorfQorCisKK2RlZiBSZWFkRmlsZShmaWxlbmFt
ZSk6CisgICIiIlJlYWRzIGEgZmlsZSBhcyBhIHN0cmluZyIiIgorICBmaWxlID0gb3BlbihmaWxl
bmFtZSwgInIiKQorICBkYXRhID0gZmlsZS5yZWFkKCkKKyAgZmlsZS5jbG9zZSgpCisgIHJldHVy
biBkYXRhCisKKworZGVmIFdyaXRlRmlsZShmaWxlbmFtZSwgZGF0YSk6CisgICIiIldyaXRlcyBh
IHN0cmluZyBhcyBhIGZpbGUiIiIKKyAgcHJpbnQgIldyaXRpbmc6ICIsIGZpbGVuYW1lCisgIGRp
cm5hbWUgPSBvcy5wYXRoLmRpcm5hbWUoZmlsZW5hbWUpCisgIGlmIG5vdCBvcy5wYXRoLmV4aXN0
cyhkaXJuYW1lKToKKyAgICBvcy5tYWtlZGlycyhkaXJuYW1lKQorICBmaWxlID0gb3BlbihmaWxl
bmFtZSwgIndiIikKKyAgZmlsZS53cml0ZShkYXRhKQorICBmaWxlLmNsb3NlKCkKKworCitkZWYg
Q29weVRyZWUoc3JjLCBkc3QsIGlnbm9yZT1Ob25lKToKKyAgIiIiUmVjdXJzaXZlbHkgY29weSBh
IGRpcmVjdG9yeSB0cmVlIiIiCisgIG5hbWVzID0gb3MubGlzdGRpcihzcmMpCisgIGlmIGlnbm9y
ZSBpcyBub3QgTm9uZToKKyAgICBpZ25vcmVkX25hbWVzID0gaWdub3JlKHNyYywgbmFtZXMpCisg
IGVsc2U6CisgICAgaWdub3JlZF9uYW1lcyA9IHNldCgpCisKKyAgaWYgbm90IG9zLnBhdGguZXhp
c3RzKGRzdCk6CisgICAgb3MubWFrZWRpcnMoZHN0KQorICBlcnJvcnMgPSBbXQorICBmb3IgbmFt
ZSBpbiBuYW1lczoKKyAgICBpZiBuYW1lIGluIGlnbm9yZWRfbmFtZXM6CisgICAgICBjb250aW51
ZQorICAgIHNyY25hbWUgPSBvcy5wYXRoLmpvaW4oc3JjLCBuYW1lKQorICAgIGRzdG5hbWUgPSBv
cy5wYXRoLmpvaW4oZHN0LCBuYW1lKQorICAgIHRyeToKKyAgICAgIGlmIG9zLnBhdGguaXNkaXIo
c3JjbmFtZSk6CisgICAgICAgIENvcHlUcmVlKHNyY25hbWUsIGRzdG5hbWUsIGlnbm9yZSkKKyAg
ICAgIGVsc2U6CisgICAgICAgICMgV2lsbCByYWlzZSBhIFNwZWNpYWxGaWxlRXJyb3IgZm9yIHVu
c3VwcG9ydGVkIGZpbGUgdHlwZXMKKyAgICAgICAgc2h1dGlsLmNvcHlmaWxlKHNyY25hbWUsIGRz
dG5hbWUpCisgICAgIyBjYXRjaCB0aGUgRXJyb3IgZnJvbSB0aGUgcmVjdXJzaXZlIGNvcHl0cmVl
IHNvIHRoYXQgd2UgY2FuCisgICAgIyBjb250aW51ZSB3aXRoIG90aGVyIGZpbGVzCisgICAgZXhj
ZXB0IEVycm9yLCBlcnI6CisgICAgICBlcnJvcnMuZXh0ZW5kKGVyci5hcmdzWzBdKQorICAgIGV4
Y2VwdCBFbnZpcm9ubWVudEVycm9yLCB3aHk6CisgICAgICBlcnJvcnMuYXBwZW5kKChzcmNuYW1l
LCBkc3RuYW1lLCBzdHIod2h5KSkpCisgIGlmIGVycm9yczoKKyAgICByYWlzZSBFcnJvciwgZXJy
b3JzCisKKworZGVmIEZpbGVSZWFkZXIoZmlsZW5hbWUpOgorICAiIiJBIEZpbGUgZ2VuZXJhdG9y
IHRoYXQgcmV0dXJucyBvbmx5IG5vbiBlbXB0eSwgbm9uIGNvbW1lbnQgbGluZXMiIiIKKyAgZmls
ZSA9IG9wZW4oZmlsZW5hbWUsICJyIikKKyAgbGluZXMgPSBmaWxlLnJlYWRsaW5lcygpCisgIGZp
bGUuY2xvc2UoKQorICBmb3IgbGluZV9udW1iZXIsIGxpbmUgaW4gZW51bWVyYXRlKGxpbmVzKToK
KyAgICBsaW5lID0gbGluZS5zdHJpcCgpCisgICAgaWYgKGxlbihsaW5lKSA+IDAgYW5kCisgICAg
ICAgIG5vdCBsaW5lLnN0YXJ0c3dpdGgoIiMiKSBhbmQKKyAgICAgICAgbm90IGxpbmUuc3RhcnRz
d2l0aCgiOyIpIGFuZAorICAgICAgICBub3QgbGluZS5zdGFydHN3aXRoKCIvLyIpKToKKyAgICAg
IHlpZWxkIGxpbmVfbnVtYmVyICsgMSwgbGluZQorCisKK2RlZiBHcmVhdGVyVGhhbk9yRXF1YWxU
b1ZlcnNpb24oaGF2ZSwgd2FudCk6CisgICIiIkNvbXBhcmVzIHRvIHZlcnNpb24gc3RyaW5ncyIi
IgorICBoYXZlID0gaGF2ZS5zcGxpdCgiICIpWzBdLnNwbGl0KCIuIikKKyAgd2FudCA9IHdhbnQu
c3BsaXQoIiAiKVswXS5zcGxpdCgiLiIpCisgIGZvciBuZHgsIHdhbnRfc3RyIGluIGVudW1lcmF0
ZSh3YW50KToKKyAgICB3YW50X251bSA9IGludCh3YW50X3N0cikKKyAgICBoYXZlX251bSA9IDAK
KyAgICBpZiBuZHggPCBsZW4oaGF2ZSk6CisgICAgICBoYXZlX251bSA9IGludChoYXZlW25keF0p
CisgICAgaWYgaGF2ZV9udW0gPCB3YW50X251bToKKyAgICAgIHJldHVybiBGYWxzZQorICByZXR1
cm4gVHJ1ZQorCisKK2RlZiBHZXRUZXN0TGlzdChsaXN0X2ZpbGVuYW1lLCBkZXN0X2RpciwgaGll
cmFyY2hpY2FsX29wdGlvbnMpOgorICBnbG9iYWwgR0xPQkFMX09QVElPTlMKKyAgdGVzdHMgPSBb
XQorICBwcmVmaXggPSBvcy5wYXRoLmRpcm5hbWUobGlzdF9maWxlbmFtZSkKKyAgZm9yIGxpbmVf
bnVtYmVyLCBsaW5lIGluIEZpbGVSZWFkZXIobGlzdF9maWxlbmFtZSk6CisgICAgYXJncyA9IGxp
bmUuc3BsaXQoKQorICAgIHRlc3Rfb3B0aW9ucyA9IHt9CisgICAgbm9uX29wdGlvbnMgPSBbXQor
ICAgIHVzZV90ZXN0ID0gVHJ1ZQorICAgIHdoaWxlIGxlbihhcmdzKToKKyAgICAgIGFyZyA9IGFy
Z3MucG9wKDApCisgICAgICBpZiBhcmcuc3RhcnRzd2l0aCgiLSIpOgorICAgICAgICBpZiBub3Qg
YXJnLnN0YXJ0c3dpdGgoIi0tIik6CisgICAgICAgICAgcmFpc2UgIiVzOiVkIGJhZCBvcHRpb24i
ICUgKGxpc3RfZmlsZW5hbWUsIGxpbmVfbnVtYmVyKQorICAgICAgICBvcHRpb24gPSBhcmdbMjpd
CisgICAgICAgIGlmIG9wdGlvbiA9PSAnc2xvdyc6CisgICAgICAgICAgcGFzcworICAgICAgICBl
bGlmIG9wdGlvbiA9PSAnbWluLXZlcnNpb24nOgorICAgICAgICAgIHRlc3Rfb3B0aW9uc1tvcHRp
b25dID0gYXJncy5wb3AoMCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICByYWlzZSAiJXM6JWQg
dW5rbm93biBvcHRpb24gJyVzJyIgJSAobGlzdF9maWxlbmFtZSwgbGluZV9udW1iZXIsIGFyZykK
KyAgICAgIGVsc2U6CisgICAgICAgIG5vbl9vcHRpb25zLmFwcGVuZChhcmcpCisgICAgdXJsID0g
b3MucGF0aC5qb2luKHByZWZpeCwgIiAiLmpvaW4obm9uX29wdGlvbnMpKQorCisgICAgaWYgbm90
IHVybC5lbmRzd2l0aCgiLnR4dCIpOgorICAgICAgaWYgIm1pbi12ZXJzaW9uIiBpbiB0ZXN0X29w
dGlvbnM6CisgICAgICAgIG1pbl92ZXJzaW9uID0gdGVzdF9vcHRpb25zWyJtaW4tdmVyc2lvbiJd
CisgICAgICBlbHNlOgorICAgICAgICBtaW5fdmVyc2lvbiA9IGhpZXJhcmNoaWNhbF9vcHRpb25z
WyJkZWZhdWx0LXZlcnNpb24iXQorCisgICAgICBpZiAibWluLXZlcnNpb24iIGluIEdMT0JBTF9P
UFRJT05TOgorICAgICAgICB1c2VfdGVzdCA9IEdyZWF0ZXJUaGFuT3JFcXVhbFRvVmVyc2lvbiht
aW5fdmVyc2lvbiwgR0xPQkFMX09QVElPTlNbIm1pbi12ZXJzaW9uIl0pCisgICAgICBlbHNlOgor
ICAgICAgICB1c2VfdGVzdCA9IEdyZWF0ZXJUaGFuT3JFcXVhbFRvVmVyc2lvbihHTE9CQUxfT1BU
SU9OU1sidmVyc2lvbiJdLCBtaW5fdmVyc2lvbikKKworICAgIGlmIG5vdCB1c2VfdGVzdDoKKyAg
ICAgIGNvbnRpbnVlCisKKyAgICBpZiB1cmwuZW5kc3dpdGgoIi50eHQiKToKKyAgICAgIGlmICJt
aW4tdmVyc2lvbiIgaW4gdGVzdF9vcHRpb25zOgorICAgICAgICBoaWVyYXJjaGljYWxfb3B0aW9u
c1siZGVmYXVsdC12ZXJzaW9uIl0gPSB0ZXN0X29wdGlvbnNbIm1pbi12ZXJzaW9uIl0KKyAgICAg
IHRlc3RzID0gdGVzdHMgKyBHZXRUZXN0TGlzdCgKKyAgICAgICAgICBvcy5wYXRoLmpvaW4ocHJl
Zml4LCB1cmwpLCBkZXN0X2RpciwgY29weS5jb3B5KGhpZXJhcmNoaWNhbF9vcHRpb25zKSkKKyAg
ICBlbHNlOgorICAgICAgdGVzdHMuYXBwZW5kKHsidXJsIjogdXJsfSkKKyAgcmV0dXJuIHRlc3Rz
CisKKworZGVmIG1haW4oYXJndik6CisgICIiIlRoaXMgaXMgdGhlIG1haW4gZnVuY3Rpb24uIiIi
CisgIGdsb2JhbCBHTE9CQUxfT1BUSU9OUworCisgIHBhcnNlciA9IE9wdGlvblBhcnNlcigpCisg
IHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgIi12IiwgIi0tdmVyYm9zZSIsIGFjdGlvbj0ic3Rv
cmVfdHJ1ZSIsCisgICAgICBoZWxwPSJwcmludHMgbW9yZSBvdXRwdXQuIikKKyAgcGFyc2VyLmFk
ZF9vcHRpb24oCisgICAgICAiLXciLCAiLS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0IiwgZGVzdD0i
c291cmNlX2RpciIsCisgICAgICBoZWxwPSJwYXRoIHRvIHdlYmdsIGNvbmZvcm1hbmNlIHRlc3Rz
LiBSRVFVSVJFRCIpCisgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgIi1uIiwgIi0tbm8tY29w
eSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICBoZWxwPSJkbyBub3QgY29weSB0ZXN0cyIp
CisKKyAgKG9wdGlvbnMsIGFyZ3MpID0gcGFyc2VyLnBhcnNlX2FyZ3MoYXJncz1hcmd2KQorCisg
IGlmIG5vdCBvcHRpb25zLnNvdXJjZV9kaXI6CisgICAgcGFyc2VyLnByaW50X2hlbHAoKQorICAg
IHJldHVybiAxCisKKyAgb3MuY2hkaXIob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSBvciAnLicp
CisKKyAgc291cmNlX2RpciA9IG9wdGlvbnMuc291cmNlX2RpcjsKKyAgd2ViZ2xfdGVzdHNfZGly
ID0gInJlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzIgorICBiYXNlX3BhdGggPSAiLiIKKworICAj
IGNvcHkgYWxsIHRoZSBmaWxlcyBmcm9tIHRoZSBXZWJHTCBjb25mb3JtYW5jZSB0ZXN0cy4KKyAg
aWYgbm90IG9wdGlvbnMubm9fY29weToKKyAgICBDb3B5VHJlZSgKKyAgICAgICAgc291cmNlX2Rp
ciwgd2ViZ2xfdGVzdHNfZGlyLCBzaHV0aWwuaWdub3JlX3BhdHRlcm5zKAorICAgICAgICAgICAg
Jy5naXQnLCAnKi5weWMnLCAndG1wKicpKQorCisgIHRlbXBsYXRlID0gUmVhZEZpbGUoInJlc291
cmNlcy93ZWJnbC13cmFwcGVyLXRlbXBsYXRlLmh0bWwiKQorCisgICMgZ2VuZXJhdGUgd3JhcHBl
cnMgZm9yIGFsbCB0aGUgdGVzdHMKKyAgdGVzdHMgPSBHZXRUZXN0TGlzdChvcy5wYXRoLmpvaW4o
c291cmNlX2RpciwgIjAwX3Rlc3RfbGlzdC50eHQiKSwgIi4iLAorICAgICAgICAgICAgICAgICAg
ICAgIGNvcHkuY29weShHTE9CQUxfT1BUSU9OUykpCisKKyAgZm9yIHRlc3QgaW4gdGVzdHM6Cisg
ICAgdXJsID0gb3MucGF0aC5yZWxwYXRoKHRlc3RbInVybCJdLCBzb3VyY2VfZGlyKQorICAgIGRz
dCA9IHVybAorICAgIGRzdF9kaXIgPSBvcy5wYXRoLmRpcm5hbWUoZHN0KQorICAgIHNyYyA9IG9z
LnBhdGgucmVscGF0aChvcy5wYXRoLmpvaW4od2ViZ2xfdGVzdHNfZGlyLCB1cmwpLCBkc3RfZGly
KS5yZXBsYWNlKCJcXCIsICIvIikKKyAgICBiYXNlX3VybCA9IG9zLnBhdGgucmVscGF0aChiYXNl
X3BhdGgsIGRzdF9kaXIpLnJlcGxhY2UoIlxcIiwgIi8iKQorICAgIFdyaXRlRmlsZShkc3QsIHRl
bXBsYXRlICUgeworICAgICAgInVybCI6IHNyYywKKyAgICAgICJ1cmxfbmFtZSI6IG9zLnBhdGgu
YmFzZW5hbWUodXJsKSwKKyAgICAgICJiYXNlX3VybCI6IGJhc2VfdXJsLAorICAgIH0pCisKKwor
aWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgc3lzLmV4aXQobWFpbihzeXMuYXJndlsxOl0p
KQorCisKKworCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45YTBjNWQ3NDg0NDEzYTQ2NWVlYTIxOWE0OWIwNTk0NjQwMzgwZWIwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
CkBAIC0wLDAgKzEsNTgxIEBACisvLyBzdmcvZHluYW1pYy11cGRhdGVzIHRlc3RzIHNldCBlbmFi
bGVQaXhlbFRlc3Rpbmc9dHJ1ZSwgYXMgd2Ugd2FudCB0byBkdW1wIHRleHQgKyBwaXhlbCByZXN1
bHRzCitpZiAoc2VsZi50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChzZWxm
LmVuYWJsZVBpeGVsVGVzdGluZyk7CisKK3ZhciBkZXNjcmlwdGlvbiwgZGVidWcsIHN1Y2Nlc3Nm
dWxseVBhcnNlZCwgZXJyb3JNZXNzYWdlOworCisoZnVuY3Rpb24oKSB7CisKKyAgICBmdW5jdGlv
biBnZXRPckNyZWF0ZShpZCwgdGFnTmFtZSkKKyAgICB7CisgICAgICAgIHZhciBlbGVtZW50ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworICAgICAgICBpZiAoZWxlbWVudCkKKyAgICAg
ICAgICAgIHJldHVybiBlbGVtZW50OworCisgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KHRhZ05hbWUpOworICAgICAgICBlbGVtZW50LmlkID0gaWQ7CisgICAgICAgIHZh
ciByZWZOb2RlOworICAgICAgICB2YXIgcGFyZW50ID0gZG9jdW1lbnQuYm9keSB8fCBkb2N1bWVu
dC5kb2N1bWVudEVsZW1lbnQ7CisgICAgICAgIGlmIChpZCA9PSAiZGVzY3JpcHRpb24iKQorICAg
ICAgICAgICAgcmVmTm9kZSA9IGdldE9yQ3JlYXRlKCJjb25zb2xlIiwgImRpdiIpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICByZWZOb2RlID0gcGFyZW50LmZpcnN0Q2hpbGQ7CisKKyAgICAg
ICAgcGFyZW50Lmluc2VydEJlZm9yZShlbGVtZW50LCByZWZOb2RlKTsKKyAgICAgICAgcmV0dXJu
IGVsZW1lbnQ7CisgICAgfQorCisgICAgZGVzY3JpcHRpb24gPSBmdW5jdGlvbiBkZXNjcmlwdGlv
bihtc2csIHF1aWV0KQorICAgIHsKKyAgICAgICAgLy8gRm9yIE1TSUUgNiBjb21wYXRpYmlsaXR5
CisgICAgICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAg
ICAgICBpZiAocXVpZXQpCisgICAgICAgICAgICBzcGFuLmlubmVySFRNTCA9ICc8cD4nICsgbXNn
ICsgJzwvcD48cD5PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgbm8gIjxzcGFuIGNsYXNzPSJmYWls
Ij5GQUlMPC9zcGFuPiIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICI8c3BhbiBjbGFzcz0icGFzcyI+
VEVTVCBDT01QTEVURTwvc3Bhbj4iLjwvcD4nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBz
cGFuLmlubmVySFRNTCA9ICc8cD4nICsgbXNnICsgJzwvcD48cD5PbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIjxzcGFuIGNsYXNzPSJwYXNzIj5QQVNTPC9zcGFuPiIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICI8c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBDT01QTEVURTwvc3Bhbj4i
LjwvcD4nOworCisgICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IGdldE9yQ3JlYXRlKCJkZXNjcmlw
dGlvbiIsICJwIik7CisgICAgICAgIGlmIChkZXNjcmlwdGlvbi5maXJzdENoaWxkKQorICAgICAg
ICAgICAgZGVzY3JpcHRpb24ucmVwbGFjZUNoaWxkKHNwYW4sIGRlc2NyaXB0aW9uLmZpcnN0Q2hp
bGQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZChz
cGFuKTsKKyAgICB9OworCisgICAgZGVidWcgPSBmdW5jdGlvbiBkZWJ1Zyhtc2cpCisgICAgewor
ICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICAg
ICAgZ2V0T3JDcmVhdGUoImNvbnNvbGUiLCAiZGl2IikuYXBwZW5kQ2hpbGQoc3Bhbik7IC8vIGlu
c2VydCBpdCBmaXJzdCBzbyBYSFRNTCBrbm93cyB0aGUgbmFtZXNwYWNlCisgICAgICAgIHNwYW4u
aW5uZXJIVE1MID0gbXNnICsgJzxiciAvPic7CisgICAgfTsKKworICAgIHZhciBjc3MgPQorICAg
ICAgICAiLnBhc3MgeyIgKworICAgICAgICAgICAgImZvbnQtd2VpZ2h0OiBib2xkOyIgKworICAg
ICAgICAgICAgImNvbG9yOiBncmVlbjsiICsKKyAgICAgICAgIn0iICsKKyAgICAgICAgIi5mYWls
IHsiICsKKyAgICAgICAgICAgICJmb250LXdlaWdodDogYm9sZDsiICsKKyAgICAgICAgICAgICJj
b2xvcjogcmVkOyIgKworICAgICAgICAifSIgKworICAgICAgICAiI2NvbnNvbGUgeyIgKworICAg
ICAgICAgICAgIndoaXRlLXNwYWNlOiBwcmUtd3JhcDsiICsKKyAgICAgICAgICAgICJmb250LWZh
bWlseTogbW9ub3NwYWNlOyIgKworICAgICAgICAifSI7CisKKyAgICBmdW5jdGlvbiBpbnNlcnRT
dHlsZVNoZWV0KCkKKyAgICB7CisgICAgICAgIHZhciBzdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzdHlsZSIpOworICAgICAgICBzdHlsZUVsZW1lbnQudGV4dENvbnRlbnQg
PSBjc3M7CisgICAgICAgIChkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVu
dCkuYXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50KTsKKyAgICB9CisKKyAgICBpZiAoIWlzV29ya2Vy
KCkpCisgICAgICAgIGluc2VydFN0eWxlU2hlZXQoKTsKKworICAgIHNlbGYub25lcnJvciA9IGZ1
bmN0aW9uKG1lc3NhZ2UpCisgICAgeworICAgICAgICBlcnJvck1lc3NhZ2UgPSBtZXNzYWdlOwor
ICAgIH07CisKK30pKCk7CisKK2Z1bmN0aW9uIGlzV29ya2VyKCkKK3sKKyAgICAvLyBJdCdzIGNv
bmNlaXZhYmxlIHRoYXQgc29tZW9uZSB3b3VsZCBzdHViIG91dCAnZG9jdW1lbnQnIGluIGEgd29y
a2VyIHNvCisgICAgLy8gYWxzbyBjaGVjayBmb3IgY2hpbGROb2RlcywgYW4gYXJiaXRyYXJ5IERP
TS1yZWxhdGVkIG9iamVjdCB0aGF0IGlzCisgICAgLy8gbWVhbmluZ2xlc3MgaW4gYSBXb3JrZXJD
b250ZXh0LgorICAgIHJldHVybiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJyB8fCB0
eXBlb2YgZG9jdW1lbnQuY2hpbGROb2RlcyA9PT0gJ3VuZGVmaW5lZCcpICYmICEhc2VsZi5pbXBv
cnRTY3JpcHRzOworfQorCitmdW5jdGlvbiBkZXNjcmlwdGlvblF1aWV0KG1zZykgeyBkZXNjcmlw
dGlvbihtc2csIHRydWUpOyB9CisKK2Z1bmN0aW9uIGVzY2FwZUhUTUwodGV4dCkKK3sKKyAgICBy
ZXR1cm4gdGV4dC5yZXBsYWNlKC8mL2csICImYW1wOyIpLnJlcGxhY2UoLzwvZywgIiZsdDsiKS5y
ZXBsYWNlKC9cMC9nLCAiXFwwIik7Cit9CisKK2Z1bmN0aW9uIHRlc3RQYXNzZWQobXNnKQorewor
ICAgIGRlYnVnKCc8c3Bhbj48c3BhbiBjbGFzcz0icGFzcyI+UEFTUzwvc3Bhbj4gJyArIGVzY2Fw
ZUhUTUwobXNnKSArICc8L3NwYW4+Jyk7Cit9CisKK2Z1bmN0aW9uIHRlc3RGYWlsZWQobXNnKQor
eworICAgIGRlYnVnKCc8c3Bhbj48c3BhbiBjbGFzcz0iZmFpbCI+RkFJTDwvc3Bhbj4gJyArIGVz
Y2FwZUhUTUwobXNnKSArICc8L3NwYW4+Jyk7Cit9CisKK2Z1bmN0aW9uIGFyZUFycmF5c0VxdWFs
KF9hLCBfYikKK3sKKyAgICB0cnkgeworICAgICAgICBpZiAoX2EubGVuZ3RoICE9PSBfYi5sZW5n
dGgpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgX2EubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBpZiAoX2FbaV0gIT09IF9iW2ldKQorICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGNhdGNoIChleCkgeworICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiBpc01p
bnVzWmVybyhuKQoreworICAgIC8vIHRoZSBvbmx5IHdheSB0byB0ZWxsIDAgZnJvbSAtMCBpbiBK
UyBpcyB0aGUgZmFjdCB0aGF0IDEvLTAgaXMKKyAgICAvLyAtSW5maW5pdHkgaW5zdGVhZCBvZiBJ
bmZpbml0eQorICAgIHJldHVybiBuID09PSAwICYmIDEvbiA8IDA7Cit9CisKK2Z1bmN0aW9uIGlz
UmVzdWx0Q29ycmVjdChfYWN0dWFsLCBfZXhwZWN0ZWQpCit7CisgICAgaWYgKF9leHBlY3RlZCA9
PT0gMCkKKyAgICAgICAgcmV0dXJuIF9hY3R1YWwgPT09IF9leHBlY3RlZCAmJiAoMS9fYWN0dWFs
KSA9PT0gKDEvX2V4cGVjdGVkKTsKKyAgICBpZiAoX2FjdHVhbCA9PT0gX2V4cGVjdGVkKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodHlwZW9mKF9leHBlY3RlZCkgPT0gIm51bWJlciIg
JiYgaXNOYU4oX2V4cGVjdGVkKSkKKyAgICAgICAgcmV0dXJuIHR5cGVvZihfYWN0dWFsKSA9PSAi
bnVtYmVyIiAmJiBpc05hTihfYWN0dWFsKTsKKyAgICBpZiAoX2V4cGVjdGVkICYmIChPYmplY3Qu
cHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoX2V4cGVjdGVkKSA9PSBPYmplY3QucHJvdG90eXBlLnRv
U3RyaW5nLmNhbGwoW10pKSkKKyAgICAgICAgcmV0dXJuIGFyZUFycmF5c0VxdWFsKF9hY3R1YWws
IF9leHBlY3RlZCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitmdW5jdGlvbiBzdHJpbmdpZnko
dikKK3sKKyAgICBpZiAodiA9PT0gMCAmJiAxL3YgPCAwKQorICAgICAgICByZXR1cm4gIi0wIjsK
KyAgICBlbHNlIHJldHVybiAiIiArIHY7Cit9CisKK2Z1bmN0aW9uIGV2YWxBbmRMb2coX2EsIF9x
dWlldCkKK3sKKyAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIikKKyAgICBkZWJ1ZygiV0FSTjog
dHJ5QW5kTG9nKCkgZXhwZWN0cyBhIHN0cmluZyBhcmd1bWVudCIpOworCisgIC8vIExvZyBmaXJz
dCBpbiBjYXNlIHRoaW5ncyBnbyBob3JyaWJseSB3cm9uZyBvciB0aGlzIGNhdXNlcyBhIHN5bmMg
ZXZlbnQuCisgIGlmICghX3F1aWV0KQorICAgIGRlYnVnKF9hKTsKKworICB2YXIgX2F2OworICB0
cnkgeworICAgICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIHRlc3RGYWls
ZWQoX2EgKyAiIHRocmV3IGV4Y2VwdGlvbiAiICsgZSk7CisgIH0KKyAgcmV0dXJuIF9hdjsKK30K
KworZnVuY3Rpb24gc2hvdWxkQmUoX2EsIF9iLCBxdWlldCkKK3sKKyAgaWYgKHR5cGVvZiBfYSAh
PSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIpCisgICAgZGVidWcoIldBUk46IHNo
b3VsZEJlKCkgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7CisgIHZhciBleGNlcHRpb247Cisg
IHZhciBfYXY7CisgIHRyeSB7CisgICAgIF9hdiA9IGV2YWwoX2EpOworICB9IGNhdGNoIChlKSB7
CisgICAgIGV4Y2VwdGlvbiA9IGU7CisgIH0KKyAgdmFyIF9idiA9IGV2YWwoX2IpOworCisgIGlm
IChleGNlcHRpb24pCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlICIgKyBfYnYgKyAi
LiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgIGVsc2UgaWYgKGlzUmVzdWx0Q29y
cmVjdChfYXYsIF9idikpIHsKKyAgICBpZiAoIXF1aWV0KSB7CisgICAgICAgIHRlc3RQYXNzZWQo
X2EgKyAiIGlzICIgKyBfYik7CisgICAgfQorICB9IGVsc2UgaWYgKHR5cGVvZihfYXYpID09IHR5
cGVvZihfYnYpKQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSAiICsgX2J2ICsgIi4g
V2FzICIgKyBzdHJpbmdpZnkoX2F2KSArICIuIik7CisgIGVsc2UKKyAgICB0ZXN0RmFpbGVkKF9h
ICsgIiBzaG91bGQgYmUgIiArIF9idiArICIgKG9mIHR5cGUgIiArIHR5cGVvZiBfYnYgKyAiKS4g
V2FzICIgKyBfYXYgKyAiIChvZiB0eXBlICIgKyB0eXBlb2YgX2F2ICsgIikuIik7Cit9CisKK2Z1
bmN0aW9uIHNob3VsZEJlVHlwZShfYSwgX3R5cGUpIHsKKyAgdmFyIGV4Y2VwdGlvbjsKKyAgdmFy
IF9hdjsKKyAgdHJ5IHsKKyAgICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkgeworICAg
IGV4Y2VwdGlvbiA9IGU7CisgIH0KKworICB2YXIgX3R5cGV2ID0gZXZhbChfdHlwZSk7CisgIGlm
IChfYXYgaW5zdGFuY2VvZiBfdHlwZXYpIHsKKyAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBhbiBp
bnN0YW5jZSBvZiAiICsgX3R5cGUpOworICB9IGVsc2UgeworICAgIHRlc3RGYWlsZWQoX2EgKyAi
IGlzIG5vdCBhbiBpbnN0YW5jZSBvZiAiICsgX3R5cGUpOworICB9Cit9CisKKy8vIFZhcmlhbnQg
b2Ygc2hvdWxkQmUoKS0tY29uZmlybXMgdGhhdCByZXN1bHQgb2YgZXZhbChfdG9fZXZhbCkgaXMg
d2l0aGluCisvLyBudW1lcmljIF90b2xlcmFuY2Ugb2YgbnVtZXJpYyBfdGFyZ2V0LgorZnVuY3Rp
b24gc2hvdWxkQmVDbG9zZVRvKF90b19ldmFsLCBfdGFyZ2V0LCBfdG9sZXJhbmNlLCBxdWlldCkK
K3sKKyAgaWYgKHR5cGVvZiBfdG9fZXZhbCAhPSAic3RyaW5nIikgeworICAgIHRlc3RGYWlsZWQo
InNob3VsZEJlQ2xvc2VUbygpIHJlcXVpcmVzIHN0cmluZyBhcmd1bWVudCBfdG9fZXZhbC4gd2Fz
IHR5cGUgIiArIHR5cGVvZiBfdG9fZXZhbCk7CisgICAgcmV0dXJuOworICB9CisgIGlmICh0eXBl
b2YgX3RhcmdldCAhPSAibnVtYmVyIikgeworICAgIHRlc3RGYWlsZWQoInNob3VsZEJlQ2xvc2VU
bygpIHJlcXVpcmVzIG51bWVyaWMgYXJndW1lbnQgX3RhcmdldC4gd2FzIHR5cGUgIiArIHR5cGVv
ZiBfdGFyZ2V0KTsKKyAgICByZXR1cm47CisgIH0KKyAgaWYgKHR5cGVvZiBfdG9sZXJhbmNlICE9
ICJudW1iZXIiKSB7CisgICAgdGVzdEZhaWxlZCgic2hvdWxkQmVDbG9zZVRvKCkgcmVxdWlyZXMg
bnVtZXJpYyBhcmd1bWVudCBfdG9sZXJhbmNlLiB3YXMgdHlwZSAiICsgdHlwZW9mIF90b2xlcmFu
Y2UpOworICAgIHJldHVybjsKKyAgfQorCisgIHZhciBfcmVzdWx0OworICB0cnkgeworICAgICBf
cmVzdWx0ID0gZXZhbChfdG9fZXZhbCk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICB0ZXN0RmFpbGVk
KF90b19ldmFsICsgIiBzaG91bGQgYmUgd2l0aGluICIgKyBfdG9sZXJhbmNlICsgIiBvZiAiCisg
ICAgICAgICAgICAgICArIF90YXJnZXQgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIGUpOworICAg
IHJldHVybjsKKyAgfQorCisgIGlmICh0eXBlb2YoX3Jlc3VsdCkgIT0gdHlwZW9mKF90YXJnZXQp
KSB7CisgICAgdGVzdEZhaWxlZChfdG9fZXZhbCArICIgc2hvdWxkIGJlIG9mIHR5cGUgIiArIHR5
cGVvZiBfdGFyZ2V0CisgICAgICAgICAgICAgICArICIgYnV0IHdhcyBvZiB0eXBlICIgKyB0eXBl
b2YgX3Jlc3VsdCk7CisgIH0gZWxzZSBpZiAoTWF0aC5hYnMoX3Jlc3VsdCAtIF90YXJnZXQpIDw9
IF90b2xlcmFuY2UpIHsKKyAgICBpZiAoIXF1aWV0KSB7CisgICAgICAgIHRlc3RQYXNzZWQoX3Rv
X2V2YWwgKyAiIGlzIHdpdGhpbiAiICsgX3RvbGVyYW5jZSArICIgb2YgIiArIF90YXJnZXQpOwor
ICAgIH0KKyAgfSBlbHNlIHsKKyAgICB0ZXN0RmFpbGVkKF90b19ldmFsICsgIiBzaG91bGQgYmUg
d2l0aGluICIgKyBfdG9sZXJhbmNlICsgIiBvZiAiICsgX3RhcmdldAorICAgICAgICAgICAgICAg
KyAiLiBXYXMgIiArIF9yZXN1bHQgKyAiLiIpOworICB9Cit9CisKK2Z1bmN0aW9uIHNob3VsZE5v
dEJlKF9hLCBfYiwgcXVpZXQpCit7CisgIGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIgfHwgdHlw
ZW9mIF9iICE9ICJzdHJpbmciKQorICAgIGRlYnVnKCJXQVJOOiBzaG91bGROb3RCZSgpIGV4cGVj
dHMgc3RyaW5nIGFyZ3VtZW50cyIpOworICB2YXIgZXhjZXB0aW9uOworICB2YXIgX2F2OworICB0
cnkgeworICAgICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkgeworICAgICBleGNlcHRp
b24gPSBlOworICB9CisgIHZhciBfYnYgPSBldmFsKF9iKTsKKworICBpZiAoZXhjZXB0aW9uKQor
ICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBub3QgYmUgIiArIF9idiArICIuIFRocmV3IGV4
Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgZWxzZSBpZiAoIWlzUmVzdWx0Q29ycmVjdChfYXYs
IF9idikpIHsKKyAgICBpZiAoIXF1aWV0KSB7CisgICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlz
IG5vdCAiICsgX2IpOworICAgIH0KKyAgfSBlbHNlCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hv
dWxkIG5vdCBiZSAiICsgX2J2ICsgIi4iKTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmVUcnVlKF9h
KSB7IHNob3VsZEJlKF9hLCAidHJ1ZSIpOyB9CitmdW5jdGlvbiBzaG91bGRCZVRydWVRdWlldChf
YSkgeyBzaG91bGRCZShfYSwgInRydWUiLCB0cnVlKTsgfQorZnVuY3Rpb24gc2hvdWxkQmVGYWxz
ZShfYSkgeyBzaG91bGRCZShfYSwgImZhbHNlIik7IH0KK2Z1bmN0aW9uIHNob3VsZEJlTmFOKF9h
KSB7IHNob3VsZEJlKF9hLCAiTmFOIik7IH0KK2Z1bmN0aW9uIHNob3VsZEJlTnVsbChfYSkgeyBz
aG91bGRCZShfYSwgIm51bGwiKTsgfQorZnVuY3Rpb24gc2hvdWxkQmVaZXJvKF9hKSB7IHNob3Vs
ZEJlKF9hLCAiMCIpOyB9CisKK2Z1bmN0aW9uIHNob3VsZEJlRXF1YWxUb1N0cmluZyhhLCBiKQor
eworICBpZiAodHlwZW9mIGEgIT09ICJzdHJpbmciIHx8IHR5cGVvZiBiICE9PSAic3RyaW5nIikK
KyAgICBkZWJ1ZygiV0FSTjogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCkgZXhwZWN0cyBzdHJpbmcg
YXJndW1lbnRzIik7CisgIHZhciB1bmV2YWxlZFN0cmluZyA9IEpTT04uc3RyaW5naWZ5KGIpOwor
ICBzaG91bGRCZShhLCB1bmV2YWxlZFN0cmluZyk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlRW1w
dHlTdHJpbmcoX2EpIHsgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKF9hLCAiIik7IH0KKworZnVuY3Rp
b24gc2hvdWxkRXZhbHVhdGVUbyhhY3R1YWwsIGV4cGVjdGVkKSB7CisgIC8vIEEgZ2VuZXJhbC1w
dXJwb3NlIGNvbXBhcmF0b3IuICAnYWN0dWFsJyBzaG91bGQgYmUgYSBzdHJpbmcgdG8gYmUKKyAg
Ly8gZXZhbHVhdGVkLCBhcyBmb3Igc2hvdWxkQmUoKS4gJ2V4cGVjdGVkJyBtYXkgYmUgYW55IHR5
cGUgYW5kIHdpbGwgYmUKKyAgLy8gdXNlZCB3aXRob3V0IGJlaW5nIGV2YWwnZWQuCisgIGlmIChl
eHBlY3RlZCA9PSBudWxsKSB7CisgICAgLy8gRG8gdGhpcyBiZWZvcmUgdGhlIG9iamVjdCB0ZXN0
LCBzaW5jZSBudWxsIGlzIG9mIHR5cGUgJ29iamVjdCcuCisgICAgc2hvdWxkQmVOdWxsKGFjdHVh
bCk7CisgIH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJ1bmRlZmluZWQiKSB7CisgICAg
c2hvdWxkQmVVbmRlZmluZWQoYWN0dWFsKTsKKyAgfSBlbHNlIGlmICh0eXBlb2YgZXhwZWN0ZWQg
PT0gImZ1bmN0aW9uIikgeworICAgIC8vIEFsbCB0aGlzIGZ1c3MgaXMgdG8gYXZvaWQgdGhlIHN0
cmluZy1hcmcgd2FybmluZyBmcm9tIHNob3VsZEJlKCkuCisgICAgdHJ5IHsKKyAgICAgIGFjdHVh
bFZhbHVlID0gZXZhbChhY3R1YWwpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgIHRlc3RGYWls
ZWQoIkV2YWx1YXRpbmcgIiArIGFjdHVhbCArICI6IFRocmV3IGV4Y2VwdGlvbiAiICsgZSk7Cisg
ICAgICByZXR1cm47CisgICAgfQorICAgIHNob3VsZEJlKCInIiArIGFjdHVhbFZhbHVlLnRvU3Ry
aW5nKCkucmVwbGFjZSgvXG4vZywgIiIpICsgIiciLAorICAgICAgICAgICAgICInIiArIGV4cGVj
dGVkLnRvU3RyaW5nKCkucmVwbGFjZSgvXG4vZywgIiIpICsgIiciKTsKKyAgfSBlbHNlIGlmICh0
eXBlb2YgZXhwZWN0ZWQgPT0gIm9iamVjdCIpIHsKKyAgICBzaG91bGRCZVRydWUoYWN0dWFsICsg
IiA9PSAnIiArIGV4cGVjdGVkICsgIiciKTsKKyAgfSBlbHNlIGlmICh0eXBlb2YgZXhwZWN0ZWQg
PT0gInN0cmluZyIpIHsKKyAgICBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKTsKKyAgfSBlbHNl
IGlmICh0eXBlb2YgZXhwZWN0ZWQgPT0gImJvb2xlYW4iKSB7CisgICAgc2hvdWxkQmUoInR5cGVv
ZiAiICsgYWN0dWFsLCAiJ2Jvb2xlYW4nIik7CisgICAgaWYgKGV4cGVjdGVkKQorICAgICAgc2hv
dWxkQmVUcnVlKGFjdHVhbCk7CisgICAgZWxzZQorICAgICAgc2hvdWxkQmVGYWxzZShhY3R1YWwp
OworICB9IGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9PSAibnVtYmVyIikgeworICAgIHNob3Vs
ZEJlKGFjdHVhbCwgc3RyaW5naWZ5KGV4cGVjdGVkKSk7CisgIH0gZWxzZSB7CisgICAgZGVidWco
ZXhwZWN0ZWQgKyAiIGlzIHVua25vd24gdHlwZSAiICsgdHlwZW9mIGV4cGVjdGVkKTsKKyAgICBz
aG91bGRCZVRydWUoYWN0dWFsLCAiJyIgICtleHBlY3RlZC50b1N0cmluZygpICsgIiciKTsKKyAg
fQorfQorCitmdW5jdGlvbiBzaG91bGRCZU5vblplcm8oX2EpCit7CisgIHZhciBleGNlcHRpb247
CisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgIF9hdiA9IGV2YWwoX2EpOworICB9IGNhdGNoIChl
KSB7CisgICAgIGV4Y2VwdGlvbiA9IGU7CisgIH0KKworICBpZiAoZXhjZXB0aW9uKQorICAgIHRl
c3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBub24temVyby4gVGhyZXcgZXhjZXB0aW9uICIgKyBl
eGNlcHRpb24pOworICBlbHNlIGlmIChfYXYgIT0gMCkKKyAgICB0ZXN0UGFzc2VkKF9hICsgIiBp
cyBub24temVyby4iKTsKKyAgZWxzZQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBu
b24temVyby4gV2FzICIgKyBfYXYpOworfQorCitmdW5jdGlvbiBzaG91bGRCZU5vbk51bGwoX2Ep
Cit7CisgIHZhciBleGNlcHRpb247CisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgIF9hdiA9IGV2
YWwoX2EpOworICB9IGNhdGNoIChlKSB7CisgICAgIGV4Y2VwdGlvbiA9IGU7CisgIH0KKworICBp
ZiAoZXhjZXB0aW9uKQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBub24tbnVsbC4g
VGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICBlbHNlIGlmIChfYXYgIT0gbnVsbCkK
KyAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBub24tbnVsbC4iKTsKKyAgZWxzZQorICAgIHRlc3RG
YWlsZWQoX2EgKyAiIHNob3VsZCBiZSBub24tbnVsbC4gV2FzICIgKyBfYXYpOworfQorCitmdW5j
dGlvbiBzaG91bGRCZVVuZGVmaW5lZChfYSkKK3sKKyAgdmFyIGV4Y2VwdGlvbjsKKyAgdmFyIF9h
djsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICAg
ZXhjZXB0aW9uID0gZTsKKyAgfQorCisgIGlmIChleGNlcHRpb24pCisgICAgdGVzdEZhaWxlZChf
YSArICIgc2hvdWxkIGJlIHVuZGVmaW5lZC4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24p
OworICBlbHNlIGlmICh0eXBlb2YgX2F2ID09ICJ1bmRlZmluZWQiKQorICAgIHRlc3RQYXNzZWQo
X2EgKyAiIGlzIHVuZGVmaW5lZC4iKTsKKyAgZWxzZQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNo
b3VsZCBiZSB1bmRlZmluZWQuIFdhcyAiICsgX2F2KTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmVE
ZWZpbmVkKF9hKQoreworICB2YXIgZXhjZXB0aW9uOworICB2YXIgX2F2OworICB0cnkgeworICAg
ICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkgeworICAgICBleGNlcHRpb24gPSBlOwor
ICB9CisKKyAgaWYgKGV4Y2VwdGlvbikKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUg
ZGVmaW5lZC4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICBlbHNlIGlmIChfYXYg
IT09IHVuZGVmaW5lZCkKKyAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyBkZWZpbmVkLiIpOworICBl
bHNlCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIGRlZmluZWQuIFdhcyAiICsgX2F2
KTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoX2EsIF9iKSB7Cisg
ICAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIpCisg
ICAgICAgIGRlYnVnKCJXQVJOOiBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCBleHBlY3RzIHN0
cmluZyBhcmd1bWVudHMiKTsKKworICAgIHZhciBleGNlcHRpb247CisgICAgdmFyIF9hdjsKKyAg
ICB0cnkgeworICAgICAgICBfYXYgPSBldmFsKF9hKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAg
ICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgfQorICAgIHZhciBfYnYgPSBldmFsKF9iKTsKKworICAg
IGlmIChleGNlcHRpb24pCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSA+PSAi
ICsgX2IgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgICAgZWxzZSBpZiAo
dHlwZW9mIF9hdiA9PSAidW5kZWZpbmVkIiB8fCBfYXYgPCBfYnYpCisgICAgICAgIHRlc3RGYWls
ZWQoX2EgKyAiIHNob3VsZCBiZSA+PSAiICsgX2IgKyAiLiBXYXMgIiArIF9hdiArICIgKG9mIHR5
cGUgIiArIHR5cGVvZiBfYXYgKyAiKS4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RQYXNzZWQo
X2EgKyAiIGlzID49ICIgKyBfYik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZE5vdFRocm93KF9hKSB7
CisgICAgdHJ5IHsKKyAgICAgICAgZXZhbChfYSk7CisgICAgICAgIHRlc3RQYXNzZWQoX2EgKyAi
IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLiIpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAg
dGVzdEZhaWxlZChfYSArICIgc2hvdWxkIG5vdCB0aHJvdyBleGNlcHRpb24uIFRocmV3IGV4Y2Vw
dGlvbiAiICsgZSArICIuIik7CisgICAgfQorfQorCitmdW5jdGlvbiBzaG91bGRUaHJvdyhfYSwg
X2UpCit7CisgIHZhciBleGNlcHRpb247CisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgIF9hdiA9
IGV2YWwoX2EpOworICB9IGNhdGNoIChlKSB7CisgICAgIGV4Y2VwdGlvbiA9IGU7CisgIH0KKwor
ICB2YXIgX2V2OworICBpZiAoX2UpCisgICAgICBfZXYgPSAgZXZhbChfZSk7CisKKyAgaWYgKGV4
Y2VwdGlvbikgeworICAgIGlmICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgfHwgZXhjZXB0aW9u
ID09IF9ldikKKyAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIHRocmV3IGV4Y2VwdGlvbiAiICsgZXhj
ZXB0aW9uICsgIi4iKTsKKyAgICBlbHNlCisgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQg
dGhyb3cgIiArICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9uIiA6IF9l
dikgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbiArICIuIik7CisgIH0gZWxzZSBp
ZiAodHlwZW9mIF9hdiA9PSAidW5kZWZpbmVkIikKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91
bGQgdGhyb3cgIiArICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9uIiA6
IF9ldikgKyAiLiBXYXMgdW5kZWZpbmVkLiIpOworICBlbHNlCisgICAgdGVzdEZhaWxlZChfYSAr
ICIgc2hvdWxkIHRocm93ICIgKyAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQiID8gImFuIGV4Y2Vw
dGlvbiIgOiBfZXYpICsgIi4gV2FzICIgKyBfYXYgKyAiLiIpOworfQorCitmdW5jdGlvbiBzaG91
bGRIYXZlSGFkRXJyb3IobWVzc2FnZSkKK3sKKyAgICBpZiAoZXJyb3JNZXNzYWdlKSB7CisgICAg
ICAgIGlmICghbWVzc2FnZSkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIkdvdCBleHBlY3RlZCBl
cnJvciIpOworICAgICAgICBlbHNlIGlmIChlcnJvck1lc3NhZ2UuaW5kZXhPZihtZXNzYWdlKSAh
PT0gLTEpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJHb3QgZXhwZWN0ZWQgZXJyb3I6ICciICsg
bWVzc2FnZSArICInIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlVu
ZXhwZXh0ZWQgZXJyb3IgJyIgKyBtZXNzYWdlICsgIiciKTsKKyAgICB9IGVsc2UKKyAgICAgICAg
dGVzdEZhaWxlZCgiTWlzc2luZyBleHBleHRlZCBlcnJvciIpOworICAgIGVycm9yTWVzc2FnZSA9
IHVuZGVmaW5lZDsKK30KKworZnVuY3Rpb24gZ2MoKSB7CisgICAgaWYgKHR5cGVvZiBHQ0NvbnRy
b2xsZXIgIT09ICJ1bmRlZmluZWQiKQorICAgICAgICBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOwor
ICAgIGVsc2UgeworICAgICAgICB2YXIgZ2NSZWMgPSBmdW5jdGlvbiAobikgeworICAgICAgICAg
ICAgaWYgKG4gPCAxKQorICAgICAgICAgICAgICAgIHJldHVybiB7fTsKKyAgICAgICAgICAgIHZh
ciB0ZW1wID0ge2k6ICJhYiIgKyBpICsgKGkgLyAxMDAwMDApfTsKKyAgICAgICAgICAgIHRlbXAg
Kz0gImZvbyI7CisgICAgICAgICAgICBnY1JlYyhuLTEpOworICAgICAgICB9OworICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKykKKyAgICAgICAgICAgIGdjUmVjKDEwKQorICAg
IH0KK30KKworZnVuY3Rpb24gaXNTdWNjZXNzZnVsbHlQYXJzZWQoKQoreworICAgIC8vIEZJWE1F
OiBSZW1vdmUgdGhpcyBhbmQgb25seSByZXBvcnQgdW5leHBlY3RlZCBzeW50YXggZXJyb3JzLgor
ICAgIGlmICghZXJyb3JNZXNzYWdlKQorICAgICAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OworICAgIHNob3VsZEJlVHJ1ZSgic3VjY2Vzc2Z1bGx5UGFyc2VkIik7CisgICAgZGVidWcoJzxi
ciAvPjxzcGFuIGNsYXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPicpOworfQorCisvLyBJ
dCdzIHBvc3NpYmxlIGZvciBhbiBhc3luYyB0ZXN0IHRvIGNhbGwgZmluaXNoSlNUZXN0KCkgYmVm
b3JlIGpzLXRlc3QtcG9zdC5qcworLy8gaGFzIGJlZW4gcGFyc2VkLgorZnVuY3Rpb24gZmluaXNo
SlNUZXN0KCkKK3sKKyAgICB3YXNGaW5pc2hKU1Rlc3RDYWxsZWQgPSB0cnVlOworICAgIGlmICgh
c2VsZi53YXNQb3N0VGVzdFNjcmlwdFBhcnNlZCkKKyAgICAgICAgcmV0dXJuOworICAgIGlzU3Vj
Y2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgaWYgKHNlbGYuanNUZXN0SXNBc3luYyAmJiBzZWxmLnRl
c3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlv
biBzdGFydFdvcmtlcih0ZXN0U2NyaXB0VVJMLCBzaGFyZWQpCit7CisgICAgc2VsZi5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKyAgICBkZWJ1ZygnU3RhcnRpbmcgd29ya2VyOiAnICsgdGVzdFNjcmlw
dFVSTCk7CisgICAgdmFyIHdvcmtlciA9IHNoYXJlZCA/IG5ldyBTaGFyZWRXb3JrZXIodGVzdFNj
cmlwdFVSTCwgIlNoYXJlZCBXb3JrZXIiKSA6IG5ldyBXb3JrZXIodGVzdFNjcmlwdFVSTCk7Cisg
ICAgd29ya2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdmFy
IHdvcmtlclByZWZpeCA9ICJbV29ya2VyXSAiOworICAgICAgICBpZiAoZXZlbnQuZGF0YS5sZW5n
dGggPCA1IHx8IGV2ZW50LmRhdGEuY2hhckF0KDQpICE9ICc6JykgeworICAgICAgICAgIGRlYnVn
KHdvcmtlclByZWZpeCArIGV2ZW50LmRhdGEpOworICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgICAgICB2YXIgY29kZSA9IGV2ZW50LmRhdGEuc3Vic3RyaW5nKDAsIDQpOworICAgICAg
ICB2YXIgcGF5bG9hZCA9IHdvcmtlclByZWZpeCArIGV2ZW50LmRhdGEuc3Vic3RyaW5nKDUpOwor
ICAgICAgICBpZiAoY29kZSA9PSAiUEFTUyIpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKHBheWxv
YWQpOworICAgICAgICBlbHNlIGlmIChjb2RlID09ICJGQUlMIikKKyAgICAgICAgICAgIHRlc3RG
YWlsZWQocGF5bG9hZCk7CisgICAgICAgIGVsc2UgaWYgKGNvZGUgPT0gIkRFU0MiKQorICAgICAg
ICAgICAgZGVzY3JpcHRpb24ocGF5bG9hZCk7CisgICAgICAgIGVsc2UgaWYgKGNvZGUgPT0gIkRP
TkUiKQorICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIGRlYnVnKHdvcmtlclByZWZpeCArIGV2ZW50LmRhdGEpOworICAgIH07CisKKyAgICB3b3Jr
ZXIub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgZGVidWcoJ0dvdCBl
cnJvciBmcm9tIHdvcmtlcjogJyArIGV2ZW50Lm1lc3NhZ2UpOworICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKKyAgICB9CisKKyAgICBpZiAoc2hhcmVkKSB7CisgICAgICAgIHdvcmtlci5wb3J0Lm9u
bWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7IHdvcmtlci5vbm1lc3NhZ2UoZXZlbnQpOyB9Owor
ICAgICAgICB3b3JrZXIucG9ydC5zdGFydCgpOworICAgIH0KKyAgICByZXR1cm4gd29ya2VyOwor
fQorCitpZiAoaXNXb3JrZXIoKSkgeworICAgIHZhciB3b3JrZXJQb3J0ID0gc2VsZjsKKyAgICBp
ZiAoc2VsZi5uYW1lID09ICJTaGFyZWQgV29ya2VyIikgeworICAgICAgICBzZWxmLm9uY29ubmVj
dCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHdvcmtlclBvcnQgPSBlLnBvcnRzWzBdOwor
ICAgICAgICAgICAgd29ya2VyUG9ydC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICB2YXIgY29sb24gPSBldmVudC5kYXRhLmluZGV4T2Yo
IjoiKTsKKyAgICAgICAgICAgICAgICBpZiAoY29sb24gPT0gLTEpIHsKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiVW5yZWNvZ25pemVkIG1lc3NhZ2UgdG8gc2hhcmVkIHdvcmtlcjog
IiArIGV2ZW50LmRhdGEpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIHZhciBjb2RlID0gZXZlbnQuZGF0YS5zdWJzdHJpbmco
MCwgY29sb24pOworICAgICAgICAgICAgICAgIHZhciBwYXlsb2FkID0gZXZlbnQuZGF0YS5zdWJz
dHJpbmcoY29sb24gKyAxKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAg
ICAgICBpZiAoY29kZSA9PSAiSU1QT1JUIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGltcG9y
dFNjcmlwdHMocGF5bG9hZCk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlVucmVjb2duaXplZCBtZXNzYWdlIHRvIHNoYXJlZCB3
b3JrZXI6ICIgKyBldmVudC5kYXRhKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChleCkgewor
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDYXVnaHQgZXhjZXB0aW9uIGluIHNoYXJl
ZCB3b3JrZXIgb25tZXNzYWdlOiAiICsgZXgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH07CisgICAgICAgIH07CisgICAgfQorICAgIGRlc2NyaXB0aW9uID0gZnVuY3Rpb24obXNn
LCBxdWlldCkgeworICAgICAgICB3b3JrZXJQb3J0LnBvc3RNZXNzYWdlKCdERVNDOicgKyBtc2cp
OworICAgIH0KKyAgICB0ZXN0RmFpbGVkID0gZnVuY3Rpb24obXNnKSB7CisgICAgICAgIHdvcmtl
clBvcnQucG9zdE1lc3NhZ2UoJ0ZBSUw6JyArIG1zZyk7CisgICAgfQorICAgIHRlc3RQYXNzZWQg
PSBmdW5jdGlvbihtc2cpIHsKKyAgICAgICAgd29ya2VyUG9ydC5wb3N0TWVzc2FnZSgnUEFTUzon
ICsgbXNnKTsKKyAgICB9CisgICAgZmluaXNoSlNUZXN0ID0gZnVuY3Rpb24oKSB7CisgICAgICAg
IHdvcmtlclBvcnQucG9zdE1lc3NhZ2UoJ0RPTkU6Jyk7CisgICAgfQorICAgIGRlYnVnID0gZnVu
Y3Rpb24obXNnKSB7CisgICAgICAgIHdvcmtlclBvcnQucG9zdE1lc3NhZ2UobXNnKTsKKyAgICB9
Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2wtd3JhcHBl
ci10ZW1wbGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsLXdyYXBw
ZXItdGVtcGxhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wODA0OWNmOTI5ZjczZTJlMTk4MDk0MWQwZjk0
OWRhZjY3N2NjNDM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsLXdyYXBwZXItdGVtcGxhdGUuaHRtbApAQCAtMCwwICsxLDE3IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciAlKHVybF9uYW1lKXM8L3RpdGxlPgor
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJShiYXNlX3VybClzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSIlKGJhc2VfdXJsKXMvcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2Vi
R0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJ
TC48L3A+CitUZXN0OiA8YSBocmVmPSIlKHVybClzIj4lKHVybClzPC9hPgorPGRpdiBpZD0icmVz
dWx0Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iJSh1cmwpcyIgd2lk
dGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9hdHRyaWJzLzAwX3Rlc3RfbGlzdC50eHQgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzLzAwX3Rlc3Rf
bGlzdC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzU4YmI2NWFmMmQyZjE4NTQyOGEyMWJmMjE5NDJiM2M4OWZk
NGNhZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvMDBfdGVzdF9saXN0LnR4dApAQCAtMCww
ICsxLDggQEAKK2dsLWVuYWJsZS12ZXJ0ZXgtYXR0cmliLmh0bWwKKy0tbWluLXZlcnNpb24gMS4w
LjIgZ2wtdmVydGV4LWF0dHJpYi1yZW5kZXIuaHRtbAorLS1taW4tdmVyc2lvbiAxLjAuMiBnbC1k
aXNhYmxlZC12ZXJ0ZXgtYXR0cmliLmh0bWwKK2dsLXZlcnRleC1hdHRyaWItemVyby1pc3N1ZXMu
aHRtbAorZ2wtdmVydGV4LWF0dHJpYi5odG1sCitnbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLW9mZnNl
dHMuaHRtbAorZ2wtdmVydGV4YXR0cmlicG9pbnRlci5odG1sCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJp
YnMvZ2wtZGlzYWJsZWQtdmVydGV4LWF0dHJpYi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1kaXNhYmxlZC12
ZXJ0ZXgtYXR0cmliLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmY4MDgxZmNhYjJhMDMyOTE2YmY0YmVkNjQ3
MTMzZGVhMzU3OWE0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtZGlzYWJsZWQtdmVy
dGV4LWF0dHJpYi5odG1sCkBAIC0wLDAgKzEsMTAxIEBACis8IS0tCisKKy8qCisqKiBDb3B5cmln
aHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMg
aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBh
CisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlv
biBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3
aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUg
cmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1
dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQg
dG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVk
IHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgor
KiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ug
c2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv
bnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAi
QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBM
SUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBN
RVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05J
TkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklH
SFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIg
TElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1Ig
T1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhF
CisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJ
QUxTLgorKi8KKworLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBEaXNhYmxlZCBWZXJ0ZXggQXR0cmliIFRl
c3Q8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0
LmpzIj4gPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRp
bHMuanMiPiA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIg
d2lkdGg9IjUwIiBoZWlnaHQ9IjUwIj4KKzwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24i
PjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IGlkPSJ2c2hhZGVyIiB0
eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CithdHRyaWJ1dGUgdmVjNCBhX3Bvc2l0aW9uOworYXR0
cmlidXRlIHZlYzQgYV9jb2xvcjsKK3ZhcnlpbmcgdmVjNCB2X2NvbG9yOwordm9pZCBtYWluKCkg
eworICBnbF9Qb3NpdGlvbiA9IGFfcG9zaXRpb247CisgIHZfY29sb3IgPSBhX2NvbG9yOworfQor
PC9zY3JpcHQ+CisKKzxzY3JpcHQgaWQ9ImZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21l
bnQiPgorcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Cit2YXJ5aW5nIHZlYzQgdl9jb2xvcjsKK2Jv
b2wgaXNDb3JyZWN0Q29sb3IodmVjNCB2KSB7CisgIHJldHVybiB2LnggPT0gMC4wICYmIHYueSA9
PSAwLjAgJiYgdi56ID09IDAuMCAmJiB2LncgPT0gMS4wOworfQordm9pZCBtYWluKCkgeworICBn
bF9GcmFnQ29sb3IgPSBpc0NvcnJlY3RDb2xvcih2X2NvbG9yKSA/IHZlYzQoMCwgMSwgMCwgMSkg
OiB2ZWM0KDEsIDAsIDAsIDEpOworfQorPC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisidXNlIHN0cmlj
dCI7Cit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CitkZXNjcmlwdGlvbigpOworCit2YXIgZ2wg
PSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIik7CisKK3ZhciBudW1WZXJ0ZXhBdHRyaWJz
ID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9WRVJURVhfQVRUUklCUyk7Citmb3IgKHZhciBpaSA9
IDA7IGlpIDwgbnVtVmVydGV4QXR0cmliczsgKytpaSkgeworICB2YXIgY29sb3JMb2NhdGlvbiA9
IChpaSArIDEpICUgbnVtVmVydGV4QXR0cmliczsKKyAgdmFyIHBvc2l0aW9uTG9jYXRpb24gPSBj
b2xvckxvY2F0aW9uID8gMCA6IDE7CisKKyAgaWYgKHBvc2l0aW9uTG9jYXRpb24gIT0gMCkgewor
ICAgIC8vIFdlIG5lZWQgdG8gY3JlYXRlIGEgbmV3IDNkIGNvbnRleHQgZm9yIHRlc3RpbmcgYXR0
cmliIDAKKyAgICAvLyBzaW5jZSB3ZSd2ZSBhbHJlYWR5IGVmZmVjdGVkIGF0dHJpYiAwIG9uIG90
aGVyIHRlc3RzLgorICAgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgpOworICB9CisKKyAgZGVi
dWcoInRlc3RpbmcgYXR0cmliOiAiICsgY29sb3JMb2NhdGlvbik7CisgIHZhciBwcm9ncmFtID0g
d3R1LnNldHVwUHJvZ3JhbSgKKyAgICAgIGdsLAorICAgICAgWyd2c2hhZGVyJywgJ2ZzaGFkZXIn
XSwKKyAgICAgIFsnYV9wb3NpdGlvbicsICdhX2NvbG9yJ10sCisgICAgICBbcG9zaXRpb25Mb2Nh
dGlvbiwgY29sb3JMb2NhdGlvbl0pOworICB2YXIgZ3JpZFJlcyA9IDE7CisgIHd0dS5zZXR1cFF1
YWQoZ2wsIGdyaWRSZXMsIHBvc2l0aW9uTG9jYXRpb24pOworICB3dHUuZHJhd0luZGV4ZWRRdWFk
KGdsLCBncmlkUmVzKTsKKyAgd3R1LmNoZWNrQ2FudmFzKGdsLCBbMCwgMjU1LCAwLCAyNTVdLCAi
c2hvdWxkIGJlIGdyZWVuIik7Cit9CitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAi
c2hvdWxkIGJlIG5vIGVycm9ycyIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wt
ZW5hYmxlLXZlcnRleC1hdHRyaWIuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtZW5hYmxlLXZlcnRleC1hdHRy
aWIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43OTcwM2EwYTVhOTU2ZmNkNjk0MTVhZGFkMzE1YmUzZDIxOWVh
NWQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1lbmFibGUtdmVydGV4LWF0dHJpYi5o
dG1sCkBAIC0wLDAgKzEsODMgQEAKKzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl
ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2Yg
dGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUK
KyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJp
Y3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNl
LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5z
ZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0
IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1
YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNs
dWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0
ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhP
VVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElO
RyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElU
WSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4K
KyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJF
IExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFS
SVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFM
UyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCist
LT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+CisgICAgPHRpdGxlPldlYkdMIEVuYWJsZSBWZXJ0ZXggQXR0cmliIFRlc3Q8L3RpdGxl
PgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIi8+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10
ZXN0LmpzIj4gPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10
ZXN0LXV0aWxzLmpzIj4gPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4
YW1wbGUiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCI+Cis8L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2Ny
aXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBpZD0idnNo
YWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgorICAgIGF0dHJpYnV0ZSB2ZWM0IHZQb3Np
dGlvbjsKKyAgICB2b2lkIG1haW4oKQorICAgIHsKKyAgICAgICAgZ2xfUG9zaXRpb24gPSB2UG9z
aXRpb247CisgICAgfQorPC9zY3JpcHQ+CisKKzxzY3JpcHQgaWQ9ImZzaGFkZXIiIHR5cGU9Ingt
c2hhZGVyL3gtZnJhZ21lbnQiPgorICAgIHZvaWQgbWFpbigpCisgICAgeworICAgICAgICBnbF9G
cmFnQ29sb3IgPSB2ZWM0KDEuMCwwLjAsMC4wLDEuMCk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxz
Y3JpcHQ+CisidXNlIHN0cmljdCI7CitkZXNjcmlwdGlvbigidGVzdHMgdGhhdCB0dXJuaW5nIG9u
IGF0dHJpYnMgdGhhdCBoYXZlIG5vIGJ1ZmZlciBib3VuZCBmYWlscyB0byBkcmF3Iik7Cit2YXIg
d3R1ID0gV2ViR0xUZXN0VXRpbHM7Cit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFt
cGxlIik7Cit2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsidnNoYWRlciIsICJm
c2hhZGVyIl0sIFsidlBvc2l0aW9uIl0pOworCit2YXIgdmVydGV4T2JqZWN0ID0gZ2wuY3JlYXRl
QnVmZmVyKCk7CitnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsK
K2dsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBuZXcgRmxvYXQzMkFycmF5KFsgMCwwLjUs
MCwgLTAuNSwtMC41LDAsIDAuNSwtMC41LDAgXSksIGdsLlNUQVRJQ19EUkFXKTsKK2dsLmVuYWJs
ZVZlcnRleEF0dHJpYkFycmF5KDApOworZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAzLCBnbC5G
TE9BVCwgZmFsc2UsIDAsIDApOworCitnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgzKTsKK2ds
RXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworCitnbC5kcmF3QXJyYXlzKGdsLlRSSUFO
R0xFUywgMCwgMyk7CitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OKTsK
KwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9ib2R5Pgor
PC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWItcmVuZGVyLmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWItcmVuZGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjJj
ZmNmOTFlNTQ3M2IzNzBhM2FkODZlZmQzOGRkOTY4MzUzMTdmZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi1yZW5kZXIuaHRtbApAQCAtMCwwICsxLDExMSBAQAor
PCEtLQorCisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4K
KyoqCisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g
YW55IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBh
c3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBk
ZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3
aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us
IHB1Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMg
b2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBN
YXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0
aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVz
IG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1B
VEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO
RCwKKyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBU
SEUgV0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENM
QUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0Yg
Q09OVFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1Ig
SU4gQ09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIg
REVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy0tPgorCis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAg
ICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIi8+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dl
YmdsLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IGlkPSd2c2hh
ZGVyJyB0eXBlPSd4LXNoYWRlcic+CisgICAgICAgICAgICBhdHRyaWJ1dGUgdmVjNCBhOworICAg
ICAgICAgICAgYXR0cmlidXRlIHZlYzIgcDsKKyAgICAgICAgICAgIHZvaWQgbWFpbigpIHsKKyAg
ICAgICAgICAgICAgICBnbF9Qb3NpdGlvbiA9IHZlYzQocC54ICsgYS54ICsgYS55ICsgYS56ICsg
YS53LCBwLnksIDAuMCwgMS4wKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+Cisg
ICAgICAgIDxzY3JpcHQgaWQ9J2ZzaGFkZXInIHR5cGU9J3gtc2hhZGVyJz4KKyAgICAgICAgICAg
IHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworICAgICAgICAgICAgdm9pZCBtYWluKCkgeworICAg
ICAgICAgICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMS4wLCAwLjAsIDAuMCwgMS4wKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAg
ICAgICAidXNlIHN0cmljdCI7CisgICAgICAgICAgICBmdW5jdGlvbiBjaGVja1JlZFBvcnRpb24o
Z2wsIHcsIGxvdywgaGlnaCkgeworICAgICAgICAgICAgICAgIHZhciBidWYgPSBuZXcgVWludDhB
cnJheSh3ICogdyAqIDQpOworICAgICAgICAgICAgICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgdywg
dywgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsKKyAgICAgICAgICAgICAgICB2YXIg
aSA9IDA7CisgICAgICAgICAgICAgICAgZm9yICg7IGkgPCB3OyArK2kpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKGJ1ZltpICogNCArIDBdID09IDI1NSAmJiBidWZbaSAqIDQgKyAxXSA9PSAw
ICYmIGJ1ZltpICogNCArIDJdID09IDAgJiYgYnVmW2kgKiA0ICsgM10gPT0gMjU1KSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gbG93IDw9IGkgJiYgaSA8PSBoaWdo
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAg
ICAgICAgICAgICAgIHZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKKyAgICAgICAgICAgICAgICB2
YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCd0ZXN0YmVkJywgeyBwcmVzZXJ2ZURyYXdpbmdC
dWZmZXIgOiB0cnVlIH0pOworICAgICAgICAgICAgICAgIGlmICghZ2wpIHsKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgnY291bGQgbm90IGNyZWF0ZSBjb250ZXh0Jyk7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
dmFyIHByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbJ3ZzaGFkZXInLCAnZnNoYWRlcidd
LCBbJ3AnLCAnYSddKQorCisgICAgICAgICAgICAgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJy
YXkoZ2wucCk7CisgICAgICAgICAgICAgICAgdmFyIHBvcyA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwor
ICAgICAgICAgICAgICAgIHBvcy50eXBlID0gZ2wuRkxPQVQ7CisgICAgICAgICAgICAgICAgcG9z
LnNpemUgPSAyOworICAgICAgICAgICAgICAgIHBvcy5udW0gPSA0OworICAgICAgICAgICAgICAg
IGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCBwb3MpOworICAgICAgICAgICAgICAgIGds
LmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBuZXcgRmxvYXQzMkFycmF5KFstMSwgLTEsIDEs
IC0xLCAtMSwgMSwgMSwgMV0pLCBnbC5TVEFUSUNfRFJBVyk7CisKKyAgICAgICAgICAgICAgICBn
bC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIHBvcy5zaXplLCBwb3MudHlwZSwgZmFsc2UsIDAsIDAp
OworCisgICAgICAgICAgICAgICAgZGVidWcoJ1Rlc3QgdmVydGV4QXR0cmliWzEuLjRdZnYgYnkg
c2V0dGluZyBkaWZmZXJlbnQgY29tYmluYXRpb25zIHRoYXQgYWRkIHVwIHRvIDEuNSBhbmQgdXNl
IHRoYXQgd2hlbiByZW5kZXJpbmcuJyk7CisgICAgICAgICAgICAgICAgdmFyIHZhbHMgPSBbWzAu
NV0sIFswLjEsMC40XSwgWzAuMiwtMC4yLDAuNV0sIFstMS4wLDAuMywwLjIsMi4wXV07CisKKyAg
ICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IDQ7ICsraikgeworICAgICAgICAgICAg
ICAgICAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJ
VCk7CisgICAgICAgICAgICAgICAgICAgIGdsWyd2ZXJ0ZXhBdHRyaWInICsgKGorMSkgKyAnZnYn
XSgxLCB2YWxzW2pdKTsKKyAgICAgICAgICAgICAgICAgICAgZ2wuZHJhd0FycmF5cyhnbC5UUklB
TkdMRV9TVFJJUCwgMCwgcG9zLm51bSk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoZWNr
UmVkUG9ydGlvbihnbCwgNTAsIDUwICogMC43LCA1MCAqIDAuOCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RQYXNzZWQoJ0F0dHJpYnV0ZSBvZiBzaXplICcgKyAoaisxKSArICcgd2Fz
IHNldCBjb3JyZWN0bHknKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ0F0dHJpYnV0ZSBvZiBzaXplICcgKyAoaisxKSAr
ICcgd2FzIG5vdCBzZXQgY29ycmVjdGx5Jyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVh
ZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGNhbnZhcyBpZD0idGVzdGJlZCIgd2lkdGg9IjUwIiBo
ZWlnaHQ9IjUwIj48L2NhbnZhcz4KKyAgICAgICAgPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2
PgorICAgICAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAg
ICAgICAgICAgICJ1c2Ugc3RyaWN0IjsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCdWZXJpZnkg
dGhhdCB1c2luZyBjb25zdGFudCBhdHRyaWJ1dGVzIHdvcmtzLicpOworICAgICAgICAgICAgcnVu
VGVzdCgpOworICAgICAgICAgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAg
ICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
YXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLXplcm8taXNzdWVzLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZl
cnRleC1hdHRyaWItemVyby1pc3N1ZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDg5ODQ5M2YxNDA0NDZi
NjI5MDhkMzk2OGIxMmZmMmMwYmJkZWZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12
ZXJ0ZXgtYXR0cmliLXplcm8taXNzdWVzLmh0bWwKQEAgLTAsMCArMSwxNTMgQEAKKzwhLS0KKwor
LyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiog
UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJz
b24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRl
ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0
aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBs
aW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNo
LAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBN
YXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxz
IGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJt
aXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJz
dGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMg
QVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBF
WFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJB
TlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRI
T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFN
QUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU
LAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F
Q1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdT
IElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIEVuYWJsZSBWZXJ0
ZXggQXR0cmliIFplcm8gVGVzdDwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3dlYmdsLXRlc3QuanMiPiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2Fu
dmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiPgorPC9jYW52YXM+Cis8ZGl2
IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3Jp
cHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KKyAgICBhdHRyaWJ1dGUg
dmVjNCB2UG9zaXRpb247CisgICAgdm9pZCBtYWluKCkKKyAgICB7CisgICAgICAgIGdsX1Bvc2l0
aW9uID0gdlBvc2l0aW9uOworICAgIH0KKzwvc2NyaXB0PgorCis8c2NyaXB0IGlkPSJmc2hhZGVy
IiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KKyAgICB2b2lkIG1haW4oKQorICAgIHsKKyAg
ICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgwLjAsMS4wLDAuMCwxLjApOworICAgIH0KKzwvc2Ny
aXB0PgorCis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworZGVzY3JpcHRpb24oIlRlc3Qgc29tZSBv
ZiB0aGUgaXNzdWVzIG9mIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYXR0cmliIDAgb24gT3BlbkdM
IHZzIFdlYkdMIik7CitkZWJ1ZygiIik7Cit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Cit2YXIg
Z2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIik7Cit2YXIgZ19wcm9ncmFtOwordmFy
IGdfYXR0cmliTG9jYXRpb247CitmdW5jdGlvbiBzZXR1cChhdHRyaWJJbmRleCkgeworICB2YXIg
cHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oCisgICAgICBnbCwgWyd2c2hhZGVyJywgJ2ZzaGFk
ZXInXSwgWyd2UG9zaXRpb24nXSwgW2F0dHJpYkluZGV4XSk7CisgIGdfcHJvZ3JhbSA9IHByb2dy
YW07CisgIGdfYXR0cmliTG9jYXRpb24gPSBhdHRyaWJJbmRleDsKKyAgc2hvdWxkQmUoImdfYXR0
cmliTG9jYXRpb24iLCAiZ2wuZ2V0QXR0cmliTG9jYXRpb24oZ19wcm9ncmFtLCAndlBvc2l0aW9u
JykiKTsKKyAgcmV0dXJuIHByb2dyYW07Cit9CisKK2Z1bmN0aW9uIHNldHVwVmVydHMobnVtVmVy
dHMpIHsKKyAgdmFyIHZlcnRzID0gWworICAgICAxLjAsICAxLjAsIDAuMCwKKyAgICAtMS4wLCAg
MS4wLCAwLjAsCisgICAgLTEuMCwgLTEuMCwgMC4wLAorICAgICAxLjAsICAxLjAsIDAuMCwKKyAg
ICAtMS4wLCAtMS4wLCAwLjAsCisgICAgIDEuMCwgLTEuMCwgMC4wCisgIF07CisgIHZhciBwb3Np
dGlvbnMgPSBuZXcgRmxvYXQzMkFycmF5KG51bVZlcnRzICogMyk7CisgIHZhciBpbmRpY2VzID0g
bmV3IFVpbnQxNkFycmF5KG51bVZlcnRzKTsKKyAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IG51bVZl
cnRzOyArK2lpKSB7CisgICAgdmFyIG5keCA9IGlpICUgNjsKKyAgICB2YXIgZHN0ID0gaWkgKiAz
OworICAgIHZhciBzcmMgPSBuZHggKiAzOworICAgIGZvciAodmFyIGpqID0gMDsgamogPCAzOyAr
K2pqKSB7CisgICAgICBwb3NpdGlvbnNbZHN0ICsgampdID0gdmVydHNbc3JjICsgampdOworICAg
IH0KKyAgICBpbmRpY2VzW2lpXSA9IGlpOworICB9CisgIHZhciB2ZXJ0ZXhPYmplY3QgPSBnbC5j
cmVhdGVCdWZmZXIoKTsKKyAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZlcnRleE9i
amVjdCk7CisgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBwb3NpdGlvbnMsIGdsLlNU
QVRJQ19EUkFXKTsKKyAgdmFyIGluZGV4QnVmZmVyID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgIGds
LmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGluZGV4QnVmZmVyKTsKKyAgZ2wu
YnVmZmVyRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgaW5kaWNlcywgZ2wuU1RBVElDX0RS
QVcpOworfQorCit2YXIgcDAgPSBzZXR1cCgwKTsKK3ZhciBwMyA9IHNldHVwKDMpOworc2V0dXBW
ZXJ0cyg2MDAwMCk7CisKK2ZvciAodmFyIGlpID0gMDsgaWkgPCA1OyArK2lpKSB7CisgIC8vIHRl
c3QgZHJhd2luZyB3aXRoIGF0dHJpYiAwCisgIGdsLnVzZVByb2dyYW0ocDApOworICBnbC5lbmFi
bGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsKKyAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAzLCBn
bC5GTE9BVCwgZmFsc2UsIDAsIDApOworICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKTsK
KyAgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgNjAwMDAsIGdsLlVOU0lHTkVEX1NIT1JU
LCAwKTsKKyAgZ2xFcnJvclNob3VsZEJlKAorICAgICAgZ2wsIGdsLk5PX0VSUk9SLAorICAgICAg
ImRyYXdpbmcgdXNpbmcgYXR0cmliIDAgd2l0aCA2IHZlcnRzIik7CisgIHd0dS5jaGVja0NhbnZh
cyhnbCwgWzAsIDI1NSwgMCwgMjU1XSwgImNhbnZhcyBzaG91bGQgYmUgZ3JlZW4iKTsKKyAgZ2wu
ZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KDApOworCisgIC8vIHRlc3QgZHJhd2luZyB3aXRob3V0
IGF0dHJpYiAwCisgIGdsLnVzZVByb2dyYW0ocDMpOworICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJB
cnJheSgzKTsKKyAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigzLCAzLCBnbC5GTE9BVCwgZmFsc2Us
IDAsIDApOworICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKTsKKyAgZ2wuZHJhd0FycmF5
cyhnbC5UUklBTkdMRVMsIDAsIDYwMDAwKTsKKyAgZ2xFcnJvclNob3VsZEJlKAorICAgICAgZ2ws
IGdsLk5PX0VSUk9SLAorICAgICAgImRyYXdpbmcgdXNpbmcgYXR0cmliIDMgd2l0aCA2MDAwMCB2
ZXJ0cyIpOworICB3dHUuY2hlY2tDYW52YXMoZ2wsIFswLCAyNTUsIDAsIDI1NV0sICJjYW52YXMg
c2hvdWxkIGJlIGdyZWVuIik7CisgIGdsLmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheSgzKTsKKwor
ICAvLyBUaGlzIHNlY29uZCB0ZXN0IG9mIGRyYXdpbmcgd2l0aG91dCBhdHRyaWIwIHVuY29udmVy
ZWQgYSBidWcgaW4gY2hyb21lCisgIC8vIHdoZXJlIGFmdGVyIHRoZSBkcmF3IHdpdGhvdXQgYXR0
cmliMCB0aGUgYXR0cmliIDAgZW11bGF0aW9uIGNvZGUgZGlzYWJsZWQKKyAgLy8gYXR0cmliIDAg
YW5kIGl0IHdhcyBuZXZlciByZS1lbmFibGVkIHNvIHRoaXMgbmV4dCBkcmF3IGZhaWxlZC4KKyAg
Z2wudXNlUHJvZ3JhbShwMyk7CisgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDMpOworICBn
bC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKTsKKyAgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFO
R0xFUywgNjAwMDAsIGdsLlVOU0lHTkVEX1NIT1JULCAwKTsKKyAgZ2xFcnJvclNob3VsZEJlKAor
ICAgICAgZ2wsIGdsLk5PX0VSUk9SLAorICAgICAgImRyYXdpbmcgdXNpbmcgYXR0cmliIDMgd2l0
aCA2MDAwMCB2ZXJ0cyIpOworICB3dHUuY2hlY2tDYW52YXMoZ2wsIFswLCAyNTUsIDAsIDI1NV0s
ICJjYW52YXMgc2hvdWxkIGJlIGdyZWVuIik7CisgIGdsLmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJh
eSgzKTsKK30KKworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJp
Yi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDljYWFh
MzM2Zjc5ZThlZGU4ZTE1MjYzZjg2MDVkNzU1NzFlZDE0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0
dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi5odG1sCkBAIC0wLDAgKzEsMTE5IEBACis8IS0tCisKKy8q
CisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBl
cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u
IG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQg
ZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhl
IE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGlt
aXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwK
KyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0
ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBh
cmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz
c2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3Rh
bnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFS
RSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQ
UkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U
SUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9S
UyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFH
RVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwK
KyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNU
SU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJ
TiBUSEUgTUFURVJJQUxTLgorKi8KKworLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCB2ZXJ0ZXhBdHRyaWIg
Q29uZm9ybWFuY2UgVGVzdHM8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
d2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGNhbnZhcyBp
ZD0iY2FudmFzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIj4gPC9jYW52YXM+Cis8c2NyaXB0PgorInVz
ZSBzdHJpY3QiOworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBlbnN1cmVzIFdlYkdMIGltcGxlbWVu
dGF0aW9ucyB2ZXJ0ZXhBdHRyaWIgY2FuIGJlIHNldCBhbmQgcmVhZC4iKTsKKworZGVidWcoIiIp
OworZGVidWcoIkNhbnZhcy5nZXRDb250ZXh0Iik7CisKK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGls
czsKK3ZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImNhbnZhcyIpOworaWYgKCFnbCkgewor
ICB0ZXN0RmFpbGVkKCJjb250ZXh0IGRvZXMgbm90IGV4aXN0Iik7Cit9IGVsc2UgeworICB0ZXN0
UGFzc2VkKCJjb250ZXh0IGV4aXN0cyIpOworCisgIGRlYnVnKCIiKTsKKyAgZGVidWcoIkNoZWNr
aW5nIGdsLnZlcnRleEF0dHJpYi4iKTsKKworICB2YXIgbnVtVmVydGV4QXR0cmlicyA9IGdsLmdl
dFBhcmFtZXRlcihnbC5NQVhfVkVSVEVYX0FUVFJJQlMpOworICBmb3IgKHZhciBpaSA9IDA7IGlp
IDwgbnVtVmVydGV4QXR0cmliczsgKytpaSkgeworICAgIGdsLnZlcnRleEF0dHJpYjFmdihpaSwg
WzFdKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKCcgKyBpaSArICcsIGdsLkNV
UlJFTlRfVkVSVEVYX0FUVFJJQilbMF0nLCAnMScpOworICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0
ZXhBdHRyaWIoJyArIGlpICsgJywgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKVsxXScsICcwJyk7
CisgICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYignICsgaWkgKyAnLCBnbC5DVVJSRU5U
X1ZFUlRFWF9BVFRSSUIpWzJdJywgJzAnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0
cmliKCcgKyBpaSArICcsIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJQilbM10nLCAnMScpOworCisg
ICAgZ2wudmVydGV4QXR0cmliMmZ2KGlpLCBbMSwgMl0pOworICAgIHNob3VsZEJlKCdnbC5nZXRW
ZXJ0ZXhBdHRyaWIoJyArIGlpICsgJywgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKVswXScsICcx
Jyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYignICsgaWkgKyAnLCBnbC5DVVJS
RU5UX1ZFUlRFWF9BVFRSSUIpWzFdJywgJzInKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4
QXR0cmliKCcgKyBpaSArICcsIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJQilbMl0nLCAnMCcpOwor
ICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoJyArIGlpICsgJywgZ2wuQ1VSUkVOVF9W
RVJURVhfQVRUUklCKVszXScsICcxJyk7CisKKyAgICBnbC52ZXJ0ZXhBdHRyaWIzZnYoaWksIFsx
LCAyLCAzXSk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYignICsgaWkgKyAnLCBn
bC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIpWzBdJywgJzEnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0
VmVydGV4QXR0cmliKCcgKyBpaSArICcsIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJQilbMV0nLCAn
MicpOworICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoJyArIGlpICsgJywgZ2wuQ1VS
UkVOVF9WRVJURVhfQVRUUklCKVsyXScsICczJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRl
eEF0dHJpYignICsgaWkgKyAnLCBnbC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIpWzNdJywgJzEnKTsK
KworICAgIGdsLnZlcnRleEF0dHJpYjRmdihpaSwgWzEsIDIsIDMsIDRdKTsKKyAgICBzaG91bGRC
ZSgnZ2wuZ2V0VmVydGV4QXR0cmliKCcgKyBpaSArICcsIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJ
QilbMF0nLCAnMScpOworICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoJyArIGlpICsg
JywgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKVsxXScsICcyJyk7CisgICAgc2hvdWxkQmUoJ2ds
LmdldFZlcnRleEF0dHJpYignICsgaWkgKyAnLCBnbC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIpWzJd
JywgJzMnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKCcgKyBpaSArICcsIGds
LkNVUlJFTlRfVkVSVEVYX0FUVFJJQilbM10nLCAnNCcpOworCisgICAgZ2wudmVydGV4QXR0cmli
MWYoaWksIDUpOworICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoJyArIGlpICsgJywg
Z2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKVswXScsICc1Jyk7CisgICAgc2hvdWxkQmUoJ2dsLmdl
dFZlcnRleEF0dHJpYignICsgaWkgKyAnLCBnbC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIpWzFdJywg
JzAnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKCcgKyBpaSArICcsIGdsLkNV
UlJFTlRfVkVSVEVYX0FUVFJJQilbMl0nLCAnMCcpOworICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0
ZXhBdHRyaWIoJyArIGlpICsgJywgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKVszXScsICcxJyk7
CisKKyAgICBnbC52ZXJ0ZXhBdHRyaWIyZihpaSwgNiwgNyk7CisgICAgc2hvdWxkQmUoJ2dsLmdl
dFZlcnRleEF0dHJpYignICsgaWkgKyAnLCBnbC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIpWzBdJywg
JzYnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKCcgKyBpaSArICcsIGdsLkNV
UlJFTlRfVkVSVEVYX0FUVFJJQilbMV0nLCAnNycpOworICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0
ZXhBdHRyaWIoJyArIGlpICsgJywgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKVsyXScsICcwJyk7
CisgICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYignICsgaWkgKyAnLCBnbC5DVVJSRU5U
X1ZFUlRFWF9BVFRSSUIpWzNdJywgJzEnKTsKKworICAgIGdsLnZlcnRleEF0dHJpYjNmKGlpLCA3
LCA4LCA5KTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKCcgKyBpaSArICcsIGds
LkNVUlJFTlRfVkVSVEVYX0FUVFJJQilbMF0nLCAnNycpOworICAgIHNob3VsZEJlKCdnbC5nZXRW
ZXJ0ZXhBdHRyaWIoJyArIGlpICsgJywgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKVsxXScsICc4
Jyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYignICsgaWkgKyAnLCBnbC5DVVJS
RU5UX1ZFUlRFWF9BVFRSSUIpWzJdJywgJzknKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4
QXR0cmliKCcgKyBpaSArICcsIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJQilbM10nLCAnMScpOwor
CisgICAgZ2wudmVydGV4QXR0cmliNGYoaWksIDYsIDcsIDgsIDkpOworICAgIHNob3VsZEJlKCdn
bC5nZXRWZXJ0ZXhBdHRyaWIoJyArIGlpICsgJywgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKVsw
XScsICc2Jyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYignICsgaWkgKyAnLCBn
bC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIpWzFdJywgJzcnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0
VmVydGV4QXR0cmliKCcgKyBpaSArICcsIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJQilbMl0nLCAn
OCcpOworICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoJyArIGlpICsgJywgZ2wuQ1VS
UkVOVF9WRVJURVhfQVRUUklCKVszXScsICc5Jyk7CisgIH0KKyAgZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUik7Cit9CisKK2RlYnVnKCIiKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0
cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLW9mZnNldHMuaHRtbCBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVy
dGV4YXR0cmlicG9pbnRlci1vZmZzZXRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGU2MjgzNWRkYjQ0NGQx
YjhkMmZlMzU0OTRkM2VmNGQwMTBjZjM3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wt
dmVydGV4YXR0cmlicG9pbnRlci1vZmZzZXRzLmh0bWwKQEAgLTAsMCArMSwxODIgQEAKKzwhLS0K
KworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgor
KiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBw
ZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2Np
YXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBp
biB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91
dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJs
aXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRo
ZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJp
YWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw
ZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBz
dWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklB
TFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisq
KiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB
UlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBB
VVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwg
REFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRS
QUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENP
Tk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJ
TkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKyAgPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPnZlcnRleGF0
dHJpYnBvaW50ZXIgb2Zmc2V0cyB0ZXN0PC90aXRsZT4KKyAgICA8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+IDwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iNTAiIGhlaWdodD0i
NTAiPgorVGhlcmUgaXMgc3VwcG9zZWQgdG8gYmUgYW4gZXhhbXBsZSBkcmF3aW5nIGhlcmUsIGJ1
dCBpdCdzIG5vdCBpbXBvcnRhbnQuCis8L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48
L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgIDxzY3JpcHQgaWQ9InZzaGFkZXIi
IHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KKyAgICAgICAgYXR0cmlidXRlIHZlYzQgdlBvc2l0
aW9uOworICAgICAgICB2b2lkIG1haW4oKQorICAgICAgICB7CisgICAgICAgICAgICBnbF9Qb3Np
dGlvbiA9IHZQb3NpdGlvbjsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorCisgICAgPHNjcmlw
dCBpZD0iZnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+CisgICAgICAgIHByZWNp
c2lvbiBtZWRpdW1wIGZsb2F0OworICAgICAgICB1bmlmb3JtIHZlYzQgY29sb3I7CisgICAgICAg
IHZvaWQgbWFpbigpCisgICAgICAgIHsKKyAgICAgICAgICAgIGdsX0ZyYWdDb2xvciA9IGNvbG9y
OworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisKKyAgICA8c2NyaXB0PgorICAgICAgICAidXNl
IHN0cmljdCI7CisgICAgICAgIGZ1bmN0aW9uIGluaXQoKQorICAgICAgICB7CisgICAgICAgICAg
ICBkZXNjcmlwdGlvbigidGVzdCB2ZXJ0ZXhhdHRyaWJwb2ludGVyIG9mZnNldHMgd29yayIpOwor
CisgICAgICAgICAgICB2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CisgICAgICAgICAgICB2YXIg
Z2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIik7CisgICAgICAgICAgICB2YXIgcHJv
Z3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsidnNoYWRlciIsICJmc2hhZGVyIl0sIFsidlBv
c2l0aW9uIl0pOworCisgICAgICAgICAgICB2YXIgdGVzdHMgPSBbCisgICAgICAgICAgICAgIHsg
ZGF0YTogbmV3IEZsb2F0MzJBcnJheShbIDAsIDEsIDAsIDEsIDAsIDAsIDAsIDAsIDAgXSksCisg
ICAgICAgICAgICAgICAgdHlwZTogZ2wuRkxPQVQsCisgICAgICAgICAgICAgICAgY29tcG9uZW50
U2l6ZTogNCwKKyAgICAgICAgICAgICAgICBub3JtYWxpemU6IGZhbHNlLAorICAgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgICB7IGRhdGE6IG5ldyBGbG9hdDMyQXJyYXkoWyAwLCAxLCAwLCAx
LCAwLCAwLCAwLCAwLCAwIF0pLAorICAgICAgICAgICAgICAgIHR5cGU6IGdsLkZMT0FULAorICAg
ICAgICAgICAgICAgIGNvbXBvbmVudFNpemU6IDQsCisgICAgICAgICAgICAgICAgbm9ybWFsaXpl
OiBmYWxzZSwKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgeyBkYXRhOiBuZXcgVWlu
dDE2QXJyYXkoWyAwLCAzMjc2NywgMCwgMzI3NjcsIDAsIDAsIDAsIDAsIDAgXSksCisgICAgICAg
ICAgICAgICAgdHlwZTogZ2wuU0hPUlQsCisgICAgICAgICAgICAgICAgY29tcG9uZW50U2l6ZTog
MiwKKyAgICAgICAgICAgICAgICBub3JtYWxpemU6IHRydWUsCisgICAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAgIHsgZGF0YTogbmV3IFVpbnQxNkFycmF5KFsgMCwgNjU1MzUsIDAsIDY1NTM1
LCAwLCAwLCAwLCAwLCAwIF0pLAorICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX1NI
T1JULAorICAgICAgICAgICAgICAgIGNvbXBvbmVudFNpemU6IDIsCisgICAgICAgICAgICAgICAg
bm9ybWFsaXplOiB0cnVlLAorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICB7IGRhdGE6
IG5ldyBVaW50MTZBcnJheShbIDAsIDEsIDAsIDEsIDAsIDAsIDAsIDAsIDAgXSksCisgICAgICAg
ICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURfU0hPUlQsCisgICAgICAgICAgICAgICAgY29tcG9u
ZW50U2l6ZTogMiwKKyAgICAgICAgICAgICAgICBub3JtYWxpemU6IGZhbHNlLAorICAgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgICB7IGRhdGE6IG5ldyBVaW50MTZBcnJheShbIDAsIDEsIDAs
IDEsIDAsIDAsIDAsIDAsIDAgXSksCisgICAgICAgICAgICAgICAgdHlwZTogZ2wuU0hPUlQsCisg
ICAgICAgICAgICAgICAgY29tcG9uZW50U2l6ZTogMiwKKyAgICAgICAgICAgICAgICBub3JtYWxp
emU6IGZhbHNlLAorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICB7IGRhdGE6IG5ldyBV
aW50OEFycmF5KFsgMCwgMTI3LCAwLCAxMjcsIDAsIDAsIDAsIDAsIDAgXSksCisgICAgICAgICAg
ICAgICAgdHlwZTogZ2wuQllURSwKKyAgICAgICAgICAgICAgICBjb21wb25lbnRTaXplOiAxLAor
ICAgICAgICAgICAgICAgIG5vcm1hbGl6ZTogdHJ1ZSwKKyAgICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgICAgeyBkYXRhOiBuZXcgVWludDhBcnJheShbIDAsIDI1NSwgMCwgMjU1LCAwLCAwLCAw
LCAwLCAwIF0pLAorICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsCisgICAg
ICAgICAgICAgICAgY29tcG9uZW50U2l6ZTogMSwKKyAgICAgICAgICAgICAgICBub3JtYWxpemU6
IHRydWUsCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIHsgZGF0YTogbmV3IFVpbnQ4
QXJyYXkoWyAwLCAxLCAwLCAxLCAwLCAwLCAwLCAwLCAwIF0pLAorICAgICAgICAgICAgICAgIHR5
cGU6IGdsLkJZVEUsCisgICAgICAgICAgICAgICAgY29tcG9uZW50U2l6ZTogMSwKKyAgICAgICAg
ICAgICAgICBub3JtYWxpemU6IGZhbHNlLAorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAg
ICB7IGRhdGE6IG5ldyBVaW50OEFycmF5KFsgMCwgMSwgMCwgMSwgMCwgMCwgMCwgMCwgMCBdKSwK
KyAgICAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05FRF9CWVRFLAorICAgICAgICAgICAgICAg
IGNvbXBvbmVudFNpemU6IDEsCisgICAgICAgICAgICAgICAgbm9ybWFsaXplOiBmYWxzZSwKKyAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgXTsKKworICAgICAgICAgICAgdmFyIHZlcnRleE9i
amVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgICAgICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5B
UlJBWV9CVUZGRVIsIHZlcnRleE9iamVjdCk7CisgICAgICAgICAgICBnbC5idWZmZXJEYXRhKGds
LkFSUkFZX0JVRkZFUiwgMTAyNCwgZ2wuU1RBVElDX0RSQVcpOworICAgICAgICAgICAgZ2wuZW5h
YmxlVmVydGV4QXR0cmliQXJyYXkoMCk7CisKKyAgICAgICAgICAgIHZhciBjb2xvckxvYyA9IGds
LmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAiY29sb3IiKTsKKyAgICAgICAgICAgIHZhciBr
TnVtVmVydHMgPSAzOworICAgICAgICAgICAgdmFyIGtOdW1Db21wb25lbnRzID0gMzsKKworICAg
ICAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgICAgIGZvciAodmFyIHR0ID0gMDsgdHQg
PCB0ZXN0cy5sZW5ndGg7ICsrdHQpIHsKKyAgICAgICAgICAgICAgdmFyIHRlc3QgPSB0ZXN0c1t0
dF07CisgICAgICAgICAgICAgIGZvciAodmFyIG9vID0gMDsgb28gPCAzOyArK29vKSB7CisgICAg
ICAgICAgICAgICAgZm9yICh2YXIgc3MgPSAwOyBzcyA8IDM7ICsrc3MpIHsKKyAgICAgICAgICAg
ICAgICAgIHZhciBvZmZzZXQgPSAob28gKyAxKSAqIHRlc3QuY29tcG9uZW50U2l6ZTsKKyAgICAg
ICAgICAgICAgICAgIHZhciBjb2xvciA9IChjb3VudCAlIDIpID8gWzEsIDAsIDAsIDFdIDogWzAs
IDEsIDAsIDFdOworICAgICAgICAgICAgICAgICAgdmFyIHN0cmlkZSA9IHRlc3QuY29tcG9uZW50
U2l6ZSAqIGtOdW1Db21wb25lbnRzICsgdGVzdC5jb21wb25lbnRTaXplICogc3M7CisgICAgICAg
ICAgICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgICAgICAgICAgICBkZWJ1ZygiY2hlY2sgd2l0
aCAiICsgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCB0ZXN0LnR5cGUpICsgIiBhdCBvZmZzZXQ6ICIg
KyBvZmZzZXQgKyAiIHdpdGggc3RyaWRlOiIgKyBzdHJpZGUgKyAiIG5vcm1hbGl6ZTogIiArIHRl
c3Qubm9ybWFsaXplKTsKKyAgICAgICAgICAgICAgICAgIGdsLnVuaWZvcm00ZnYoY29sb3JMb2Ms
IGNvbG9yKTsKKyAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IFVpbnQ4QXJyYXkodGVz
dC5jb21wb25lbnRTaXplICoga051bVZlcnRzICoga051bUNvbXBvbmVudHMgKyBzdHJpZGUgKiAo
a051bVZlcnRzIC0gMSkpOworICAgICAgICAgICAgICAgICAgdmFyIHZpZXcgPSBuZXcgVWludDhB
cnJheSh0ZXN0LmRhdGEuYnVmZmVyKTsKKyAgICAgICAgICAgICAgICAgIHZhciBzaXplID0gdGVz
dC5jb21wb25lbnRTaXplICoga051bUNvbXBvbmVudHM7CisgICAgICAgICAgICAgICAgICBmb3Ig
KHZhciBqaiA9IDA7IGpqIDwga051bVZlcnRzOyArK2pqKSB7CisgICAgICAgICAgICAgICAgICAg
IHZhciBvZmYxID0gamogKiBzaXplOworICAgICAgICAgICAgICAgICAgICB2YXIgb2ZmMiA9IGpq
ICogc3RyaWRlOworICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciB6eiA9IDA7IHp6IDwgc2l6
ZTsgKyt6eikgeworICAgICAgICAgICAgICAgICAgICAgIGRhdGFbb2ZmMiArIHp6XSA9IHZpZXdb
b2ZmMSArIHp6XTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgZ2wuYnVmZmVyU3ViRGF0YShnbC5BUlJBWV9CVUZGRVIsIG9mZnNl
dCwgZGF0YSk7CisgICAgICAgICAgICAgICAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIDMs
IHRlc3QudHlwZSwgdGVzdC5ub3JtYWxpemUsIHN0cmlkZSwgb2Zmc2V0KTsKKyAgICAgICAgICAg
ICAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklU
KTsKKyAgICAgICAgICAgICAgICAgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCAzKTsK
KworICAgICAgICAgICAgICAgICAgdmFyIGJ1ZiA9IG5ldyBVaW50OEFycmF5KDUwICogNTAgKiA0
KTsKKyAgICAgICAgICAgICAgICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgNTAsIDUwLCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOworCisgICAgICAgICAgICAgICAgICB2YXIgYmxhY2sg
PSBbMCwgMCwgMCwgMF07CisgICAgICAgICAgICAgICAgICB2YXIgb3RoZXIgPSBbY29sb3JbMF0g
KiAyNTUsIGNvbG9yWzFdICogMjU1LCBjb2xvclsyXSAqIDI1NSwgY29sb3JbM10gKiAyNTVdOwor
ICAgICAgICAgICAgICAgICAgdmFyIG90aGVyTXNnID0gInNob3VsZCBiZSAiICsgKChjb3VudCAl
IDIpID8gInJlZCIgOiAiZ3JlZW4iKQorICAgICAgICAgICAgICAgICAgd3R1LmNoZWNrQ2FudmFz
UmVjdChnbCwgMCwgMCwgMSwgMSwgYmxhY2ssICJzaG91bGQgYmUgYmxhY2siLCAwKTsKKyAgICAg
ICAgICAgICAgICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDQ5LCAxLCAxLCBibGFjaywg
InNob3VsZCBiZSBibGFjayIsIDApOworICAgICAgICAgICAgICAgICAgd3R1LmNoZWNrQ2FudmFz
UmVjdChnbCwgMjYsIDQwLCAxLCAxLCBvdGhlciwgb3RoZXJNc2csIDApOworICAgICAgICAgICAg
ICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMjYsIDI3LCAxLCAxLCBvdGhlciwgb3RoZXJN
c2csIDApOworICAgICAgICAgICAgICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgNDAsIDI3
LCAxLCAxLCBvdGhlciwgb3RoZXJNc2csIDApOworICAgICAgICAgICAgICAgICAgKytjb3VudDsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICB9CisKKyAgICAgICBpbml0KCk7CisgICAgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7CisgICAgPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJp
YnMvZ2wtdmVydGV4YXR0cmlicG9pbnRlci5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJw
b2ludGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmVhMDI5ZGMyMmNmYWI0OWZlMzY5YTgzMjc2MzY0MDFl
MzI2ZDRmMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4YXR0cmlicG9pbnRl
ci5odG1sCkBAIC0wLDAgKzEsMTU2IEBACis8IS0tCisKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIw
MTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdy
YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5
IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAo
dGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJl
c3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRv
IHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1Ymxp
Y2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBl
cm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNv
LCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFi
b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUg
aW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhl
IE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBX
SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNM
VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFC
SUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F
TlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS
UyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZ
LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNF
LCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRF
UklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8K
KworLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCB2ZXJ0ZXhBdHRyaWJQb2ludGVyIENvbmZvcm1hbmNlIFRl
c3RzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2Rlc2t0
b3AtZ2wtY29uc3RhbnRzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPiA8L2NhbnZh
cz4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNr
cyB2ZXJ0ZXhBdHRyaWJQb2ludGVyIGJlaGF2aW9ycyBpbiBXZWJHTC4iKTsKKworZGVidWcoIiIp
OworZGVidWcoIkNhbnZhcy5nZXRDb250ZXh0Iik7CisKK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGls
czsKK3ZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImNhbnZhcyIpOworaWYgKCFnbCkgewor
ICB0ZXN0RmFpbGVkKCJjb250ZXh0IGRvZXMgbm90IGV4aXN0Iik7Cit9IGVsc2UgeworICB0ZXN0
UGFzc2VkKCJjb250ZXh0IGV4aXN0cyIpOworCisgIGRlYnVnKCIiKTsKKyAgZGVidWcoIkNoZWNr
aW5nIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIuIik7CisKKyAgaWYgKCFnbC5GSVhFRCkgeworICAg
IGdsLkZJWEVEID0gMHgxNDBDOworICB9CisKKyAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAz
LCBnbC5GTE9BVCwgMCwgMCwgMTIpOworICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURf
T1BFUkFUSU9OLAorICAgICAgInZlcnRleEF0dHJpYlBvaW50ZXIgc2hvdWxkIGZhaWwgaWYgbm8g
YnVmZmVyIGlzIGJvdW5kIik7CisKKyAgdmFyIHZlcnRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZl
cigpOworICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKKyAg
Z2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIG5ldyBGbG9hdDMyQXJyYXkoMCksIGdsLlNU
QVRJQ19EUkFXKTsKKworICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIDEsIGdsLklOVCwgMCwg
MCwgMCk7CisgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9FTlVNLAorICAgICAgInZl
cnRleEF0dHJpYlBvaW50ZXIgc2hvdWxkIG5vdCBzdXBwb3J0IElOVCIpOworICBnbC52ZXJ0ZXhB
dHRyaWJQb2ludGVyKDAsIDEsIGdsLlVOU0lHTkVEX0lOVCwgMCwgMCwgMCk7CisgIGdsRXJyb3JT
aG91bGRCZShnbCwgZ2wuSU5WQUxJRF9FTlVNLAorICAgICAgInZlcnRleEF0dHJpYlBvaW50ZXIg
c2hvdWxkIG5vdCBzdXBwb3J0IFVOU0lHTkVEX0lOVCIpOworICBnbC52ZXJ0ZXhBdHRyaWJQb2lu
dGVyKDAsIDEsIGdsLkZJWEVELCAwLCAwLCAwKTsKKyAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5J
TlZBTElEX0VOVU0sCisgICAgICAidmVydGV4QXR0cmliUG9pbnRlciBzaG91bGQgbm90IHN1cHBv
cnQgRklYRUQiKTsKKworICB2YXIgY2hlY2tWZXJ0ZXhBdHRyaWJQb2ludGVyID0gZnVuY3Rpb24o
CisgICAgICBnbCwgZXJyLCByZWFzb24sIHNpemUsIHR5cGUsIG5vcm1hbGl6ZSwgc3RyaWRlLCBv
ZmZzZXQpIHsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIHNpemUsIHR5cGUsIG5vcm1h
bGl6ZSwgc3RyaWRlLCBvZmZzZXQpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZXJyLAorICAg
ICAgICAiZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAiICsgc2l6ZSArCisgICAgICAgICIsIGds
LiIgKyB3dHUuZ2xFbnVtVG9TdHJpbmcoZ2wsIHR5cGUpICsKKyAgICAgICAgIiwgIiArIG5vcm1h
bGl6ZSArCisgICAgICAgICIsICIgKyBzdHJpZGUgKworICAgICAgICAiLCAiICsgb2Zmc2V0ICsK
KyAgICAgICAgIikgc2hvdWxkICIgKyAoZXJyID09IGdsLk5PX0VSUk9SID8gInN1Y2NlZWQgIiA6
ICJmYWlsICIpICsgcmVhc29uKTsKKyAgfQorCisgIHZhciB0eXBlcyA9IFsKKyAgICB7IHR5cGU6
Z2wuQllURSwgICAgICAgICAgIGJ5dGVzUGVyQ29tcG9uZW50OiAxIH0sCisgICAgeyB0eXBlOmds
LlVOU0lHTkVEX0JZVEUsICBieXRlc1BlckNvbXBvbmVudDogMSB9LAorICAgIHsgdHlwZTpnbC5T
SE9SVCwgICAgICAgICAgYnl0ZXNQZXJDb21wb25lbnQ6IDIgfSwKKyAgICB7IHR5cGU6Z2wuVU5T
SUdORURfU0hPUlQsIGJ5dGVzUGVyQ29tcG9uZW50OiAyIH0sCisgICAgeyB0eXBlOmdsLkZMT0FU
LCAgICAgICAgICBieXRlc1BlckNvbXBvbmVudDogNCB9LAorICBdOworCisgIGZvciAodmFyIGlp
ID0gMDsgaWkgPCB0eXBlcy5sZW5ndGg7ICsraWkpIHsKKyAgICB2YXIgaW5mbyA9IHR5cGVzW2lp
XTsKKyAgICBkZWJ1ZygiIik7CisgICAgZm9yICh2YXIgc2l6ZSA9IDE7IHNpemUgPD0gNDsgKytz
aXplKSB7CisgICAgICBkZWJ1ZygiIik7CisgICAgICBkZWJ1ZygiY2hlY2tpbmc6ICIgKyB3dHUu
Z2xFbnVtVG9TdHJpbmcoZ2wsIGluZm8udHlwZSkgKyAiIHdpdGggc2l6ZSAiICsgc2l6ZSk7Cisg
ICAgICB2YXIgYnl0ZXNQZXJFbGVtZW50ID0gc2l6ZSAqIGluZm8uYnl0ZXNQZXJDb21wb25lbnQ7
CisgICAgICB2YXIgb2Zmc2V0U2V0ID0gWworICAgICAgICAgIDAsCisgICAgICAgICAgMSwKKyAg
ICAgICAgICBpbmZvLmJ5dGVzUGVyQ29tcG9uZW50IC0gMSwKKyAgICAgICAgICBpbmZvLmJ5dGVz
UGVyQ29tcG9uZW50LAorICAgICAgICAgIGluZm8uYnl0ZXNQZXJDb21wb25lbnQgKyAxLAorICAg
ICAgICAgIGluZm8uYnl0ZXNQZXJDb21wb25lbnQgKiAyXTsKKyAgICAgIGZvciAodmFyIGpqID0g
MDsgamogPCBvZmZzZXRTZXQubGVuZ3RoOyArK2pqKSB7CisgICAgICAgIHZhciBvZmZzZXQgPSBv
ZmZzZXRTZXRbampdOworICAgICAgICBmb3IgKHZhciBrayA9IDA7IGtrIDwgb2Zmc2V0U2V0Lmxl
bmd0aDsgKytraykgeworICAgICAgICAgIHZhciBzdHJpZGUgPSBvZmZzZXRTZXRba2tdOworICAg
ICAgICAgIHZhciBlcnIgPSBnbC5OT19FUlJPUjsKKyAgICAgICAgICB2YXIgcmVhc29uID0gIiIK
KyAgICAgICAgICBpZiAob2Zmc2V0ICUgaW5mby5ieXRlc1BlckNvbXBvbmVudCAhPSAwKSB7Cisg
ICAgICAgICAgICByZWFzb24gPSAiYmVjYXVzZSBvZmZzZXQgaXMgYmFkIjsKKyAgICAgICAgICAg
IGVyciA9IGdsLklOVkFMSURfT1BFUkFUSU9OOworICAgICAgICAgIH0KKyAgICAgICAgICBpZiAo
c3RyaWRlICUgaW5mby5ieXRlc1BlckNvbXBvbmVudCAhPSAwKSB7CisgICAgICAgICAgICByZWFz
b24gPSAiYmVjYXVzZSBzdHJpZGUgaXMgYmFkIjsKKyAgICAgICAgICAgIGVyciA9IGdsLklOVkFM
SURfT1BFUkFUSU9OOworICAgICAgICAgIH0KKyAgICAgICAgICBjaGVja1ZlcnRleEF0dHJpYlBv
aW50ZXIoCisgICAgICAgICAgICAgIGdsLCBlcnIsIHJlYXNvbiwgc2l6ZSwgaW5mby50eXBlLCBm
YWxzZSwgc3RyaWRlLCBvZmZzZXQpOworICAgICAgICB9CisgICAgICAgIHZhciBzdHJpZGUgPSBN
YXRoLmZsb29yKDI1NSAvIGluZm8uYnl0ZXNQZXJDb21wb25lbnQpICogaW5mby5ieXRlc1BlckNv
bXBvbmVudDsKKworICAgICAgICBpZiAob2Zmc2V0ID09IDApIHsKKyAgICAgICAgICBjaGVja1Zl
cnRleEF0dHJpYlBvaW50ZXIoCisgICAgICAgICAgICAgIGdsLCBnbC5OT19FUlJPUiwgImF0IHN0
cmlkZSBsaW1pdCIsCisgICAgICAgICAgICAgIHNpemUsIGluZm8udHlwZSwgZmFsc2UsIHN0cmlk
ZSwgb2Zmc2V0KTsKKyAgICAgICAgICBjaGVja1ZlcnRleEF0dHJpYlBvaW50ZXIoCisgICAgICAg
ICAgICAgIGdsLCBnbC5JTlZBTElEX1ZBTFVFLCAib3ZlciBzdHJpZGUgbGltaXQiLAorICAgICAg
ICAgICAgICBzaXplLCBpbmZvLnR5cGUsIGZhbHNlLAorICAgICAgICAgICAgICBzdHJpZGUgKyBp
bmZvLmJ5dGVzUGVyQ29tcG9uZW50LCBvZmZzZXQpOworICAgICAgICB9CisgICAgICB9CisgICAg
fQorICB9Cit9CisKK2RlYnVnKCIiKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwor
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xMGU2ZDI2ZTYyY2E1MzhjMGI1YzZiZTVjNjE4ZjM1NTNhMWYwZTI4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5l
c3MuanMKQEAgLTAsMCArMSw1MiBAQAorInVzZSBzdHJpY3QiOworKGZ1bmN0aW9uKCkgeworICB2
YXIgbnVtRmFpbHVyZXMgPSAwOworCisgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiAhd2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
ID0gd2luZG93LnRlc3RSdW5uZXI7CisgIH0KKworICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJX
ZWJLaXRXZWJHTEVuYWJsZWQiLCAiMSIpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJy
aWRlUHJlZmVyZW5jZSgiV2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkIiwgIjAiKTsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCkKKworICAgIC8vIFR1cm4gb2ZmIGNvbnNvbGUgbWVzc2FnZXMgYmVjYXVzZSBmb3Ig
dGhlIFdlYkdMIHRlc3RzIHRoZXkgYXJlCisgICAgLy8gR1BVIGNhcGFiaWxpdHkgZGVwZW5kZW50
LgorICAgIHdpbmRvdy5jb25zb2xlLmxvZyA9IGZ1bmN0aW9uKCkgeyB9OworICAgIHdpbmRvdy5j
b25zb2xlLmVycm9yID0gZnVuY3Rpb24oKSB7IH07CisgIH0KKworICB2YXIgbG9nID0gZnVuY3Rp
b24obXNnLCBjb2xvcikgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKKyAgICBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobXNnKSk7
CisgICAgaWYgKGNvbG9yKSB7CisgICAgICBkaXYuc3R5bGUuY29sb3IgPSBjb2xvcjsKKyAgICB9
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmFwcGVuZENoaWxkKGRpdik7
CisgIH07CisKKyAgd2luZG93LndlYmdsVGVzdEhhcm5lc3MgPSB7CisgICAgcmVwb3J0UmVzdWx0
czogZnVuY3Rpb24odXJsLCBzdWNjZXNzLCBtc2cpIHsKKyAgICAgIGlmICghc3VjY2Vzcykgewor
ICAgICAgICArK251bUZhaWx1cmVzOworICAgICAgfQorICAgIH0sCisKKyAgICBub3RpZnlGaW5p
c2hlZDogZnVuY3Rpb24odXJsKSB7CisgICAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImlmcmFtZSIpOworICAgICAgaWZyYW1lLmlubmVySFRNTCA9ICIiOworICAgICAg
aWYgKG51bUZhaWx1cmVzID4gMCkgeworICAgICAgICBsb2coIkZBSUwiLCAicmVkIik7CisgICAg
ICB9IGVsc2UgeworICAgICAgICBsb2coIlBBU1MiLCAiZ3JlZW4iKTsKKyAgICAgIH0KKworICAg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICB9CisgICAgfSwKKyAgfQorfSgpKTsKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185705</attachid>
            <date>2013-01-31 00:28:08 -0800</date>
            <delta_ts>2013-01-31 14:32:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94643-20130131002452.patch</filename>
            <type>text/plain</type>
            <size>79893</size>
            <attacher name="Gregg Tavares">gman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMjQxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTFjMTZhNzM2NTBmMjFhYTM1NjQ5
MzY2YmM4NzJkNWQ2NGUxZjdlNi4uMWZkZmEzYzk4MGU5ODUyOGZhMWU3NmZiODgwZDY1OGRlODU0
Y2E2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEzLTAxLTMxICBHcmVnZyBUYXZhcmVzICA8
Z21hbkBnb29nbGUuY29tPgorCisgICAgICAgIEFkZCBLaHJvbm9zIFdlYkdMIGNvbmZvcm1hbmNl
IHRlc3RzIHRvIExheW91dFRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05NDY0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICog
d2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1kaXNhYmxlZC12ZXJ0ZXgtYXR0cmliLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1k
aXNhYmxlZC12ZXJ0ZXgtYXR0cmliLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZv
cm1hbmNlL2F0dHJpYnMvZ2wtZW5hYmxlLXZlcnRleC1hdHRyaWItZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLWVuYWJsZS12ZXJ0ZXgt
YXR0cmliLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMv
Z2wtdmVydGV4LWF0dHJpYi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2Nv
bmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi1yZW5kZXItZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRy
aWItcmVuZGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL2F0dHJp
YnMvZ2wtdmVydGV4LWF0dHJpYi16ZXJvLWlzc3Vlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi16ZXJvLWlz
c3Vlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2ds
LXZlcnRleC1hdHRyaWIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2Uv
YXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLW9m
ZnNldHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9h
dHRyaWJzL2dsLXZlcnRleGF0dHJpYnBvaW50ZXItb2Zmc2V0cy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleGF0dHJpYnBvaW50ZXIuaHRt
bDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvZ2VuZXJhdGUtd2ViZ2wtdGVzdHMucHk6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qczogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsLXdyYXBwZXItdGVtcGxhdGUuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
YXR0cmlicy8wMF90ZXN0X2xpc3QudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLWRpc2FibGVkLXZlcnRl
eC1hdHRyaWIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1lbmFibGUtdmVydGV4LWF0dHJpYi5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWItcmVuZGVyLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJp
YnMvZ2wtdmVydGV4LWF0dHJpYi16ZXJvLWlzc3Vlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZl
cnRleC1hdHRyaWIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLW9m
ZnNldHMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNz
LmpzOiBBZGRlZC4KKwogMjAxMy0wMS0zMCAgRG9taW5payBSw7Z0dHNjaGVzICA8ZG9taW5pay5y
b3R0c2NoZXNAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIFVucmV2aWV3ZWQgZ2FyZGVuaW5n
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwNmU3NmIy
ZjVjNTM1MTk0MTc5ZjIxMjJjNzhlNWQ1YzM3YmFlZTJjLi42NDg0MzdjODRiYTRiYjk2ZDg2ZWFj
NTAwZGM1NjhmYTQ0MGM5NzNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMTIxNyw2ICsxMjE3LDkgQEAgd2Via2l0Lm9yZy9iLzY3NDM0IFsgRGVidWcg
XSBmYXN0L2Jsb2NrL2Zsb2F0L292ZXJoYW5naW5nLXRhbGwtYmxvY2suaHRtbCBbIFNraXAKICMg
TW91bnRhaW4gTGlvbiBhbmQgcHJpb3IgZG8gbm90IHN1cHBvcnQgY3VzdG9tIG1lZGlhIGRhdGEg
bG9hZGluZwogQnVnKGplcm5vYmxlKSBbIE1vdW50YWluTGlvbiBMaW9uIFNub3dMZW9wYXJkIF0g
bWVkaWEvdmlkZW8tc3JjLWJsb2IuaHRtbAogCisjIFdlYkdMIENvbmZvcm1hbmNlIFRlc3RzCit3
ZWJraXQub3JnL2IvMDAwMDAwIHdlYmdsL2NvbmZvcm1hbmNlL2NvbnRleHQvY29udGV4dC1jcmVh
dGlvbi1hbmQtZGVzdHJ1Y3Rpb24uaHRtbCBbIFNraXAgXQorCiAjIE1vdW50YWluIExpb24gYW5k
IHByaW9yIGRvIG5vdCBhbGxvdyBhY2Nlc3MgdG8gaW4tYmFuZCB0ZXh0IHRyYWNrcwogd2Via2l0
Lm9yZy9iLzEwMzY2MyBbIE1vdW50YWluTGlvbiBMaW9uIFNub3dMZW9wYXJkIF0gbWVkaWEvdHJh
Y2svdHJhY2staW4tYmFuZC5odG1sCiB3ZWJraXQub3JnL2IvMTAzNjYzIFsgTW91bnRhaW5MaW9u
IExpb24gU25vd0xlb3BhcmQgXSBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLWN1ZXMtYWRkZWQt
b25jZS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9hdHRy
aWJzL2dsLWRpc2FibGVkLXZlcnRleC1hdHRyaWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
d2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1kaXNhYmxlZC12ZXJ0ZXgtYXR0cmliLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42N2IwMmI0OWFkMmM3ZTFmMDE1NjQ4Zjg0NmEyNWU3NzE1MjBh
YmM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0
cmlicy9nbC1kaXNhYmxlZC12ZXJ0ZXgtYXR0cmliLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUg
QEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJh
bWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLWRpc2FibGVkLXZlcnRleC1hdHRy
aWIuaHRtbAorUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5j
ZS9hdHRyaWJzL2dsLWRpc2FibGVkLXZlcnRleC1hdHRyaWIuaHRtbCBiL0xheW91dFRlc3RzL3dl
YmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtZGlzYWJsZWQtdmVydGV4LWF0dHJpYi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFiZWViZjMwOGJiZjhjODE2MTM4NDJjZmFlOGQyMDdmODVkZGQ5YTYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLWRp
c2FibGVkLXZlcnRleC1hdHRyaWIuaHRtbApAQCAtMCwwICsxLDE3IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wg
Q29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBnbC1kaXNhYmxlZC12ZXJ0ZXgtYXR0cmliLmh0
bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdM
IFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwu
PC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvYXR0cmlicy9nbC1kaXNhYmxlZC12ZXJ0ZXgtYXR0cmliLmh0bWwiPi4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtZGlzYWJsZWQt
dmVydGV4LWF0dHJpYi5odG1sPC9hPgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzxkaXYgaWQ9
ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvYXR0cmlicy9nbC1kaXNhYmxlZC12ZXJ0ZXgtYXR0cmliLmh0bWwiIHdpZHRo
PSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1lbmFi
bGUtdmVydGV4LWF0dHJpYi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3Jt
YW5jZS9hdHRyaWJzL2dsLWVuYWJsZS12ZXJ0ZXgtYXR0cmliLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wZmRiMjNiYmQxZjM0MzI5NGRiMjI5NjRjZDUxZGNjZDJjZDhkMTA0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1lbmFibGUt
dmVydGV4LWF0dHJpYi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvYXR0cmlicy9nbC1lbmFibGUtdmVydGV4LWF0dHJpYi5odG1sCitQQVNTCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtZW5hYmxl
LXZlcnRleC1hdHRyaWIuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJp
YnMvZ2wtZW5hYmxlLXZlcnRleC1hdHRyaWIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZGRiYjJkMGIyOTVj
NDc2MWQzOGNmOTEyNWU4NTc0MDZkMDViMDllCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1lbmFibGUtdmVydGV4LWF0dHJpYi5odG1s
CkBAIC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIg
Zm9yIGdsLWVuYWJsZS12ZXJ0ZXgtYXR0cmliLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291cmNl
cy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlm
cmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4v
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1lbmFibGUt
dmVydGV4LWF0dHJpYi5odG1sIj4uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9hdHRyaWJzL2dsLWVuYWJsZS12ZXJ0ZXgtYXR0cmliLmh0bWw8L2E+Cis8ZGl2IGlk
PSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLWVuYWJsZS12
ZXJ0ZXgtYXR0cmliLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29u
Zm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjc1MjQ5MjZhNDdhZDAxYmViYWM5NzE2ZjMyNDQ3OGVmY2JiMzFiNwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMv
Z2wtdmVydGV4LWF0dHJpYi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3Qg
cnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRz
IFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLmh0bWwKK1BBU1MKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0
cmliLXJlbmRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9h
dHRyaWJzL2dsLXZlcnRleC1hdHRyaWItcmVuZGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
ODMwNmFlNzE4NzI0YzczZGNkZmRmMjA4NDE4ODdmN2MyZTZjZTIzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmli
LXJlbmRlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3QgcnVucyB0aGUg
V2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3Ig
RkFJTC4KKworVGVzdDogLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLXJlbmRlci5odG1sCitQQVNTCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJp
Yi1yZW5kZXIuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wt
dmVydGV4LWF0dHJpYi1yZW5kZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzkyNDk1ZjIzMDFlZGMxZmZm
NDdmMDZhMDFjNDgyYmVkOTBlM2U3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLXJlbmRlci5odG1sCkBAIC0w
LDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGds
LXZlcnRleC1hdHRyaWItcmVuZGVyLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJr
aXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+
VGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBh
bmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmli
LXJlbmRlci5odG1sIj4uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWItcmVuZGVyLmh0bWw8L2E+Cis8ZGl2IGlkPSJyZXN1
bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWIt
cmVuZGVyLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFu
Y2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLXplcm8taXNzdWVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi16ZXJv
LWlzc3Vlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmE4ZWFlNWQ5NWU4MjJlZWVkNjAyYTky
NzYwNjg4NWMzMWEzNjFhMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2Nv
bmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi16ZXJvLWlzc3Vlcy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQg
YmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4v
Li4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0
ZXgtYXR0cmliLXplcm8taXNzdWVzLmh0bWwKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLXplcm8taXNzdWVz
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1h
dHRyaWItemVyby1pc3N1ZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjk4Yzg3NmY2N2I1ODIxM2MyNDBj
MWM3ZjQzODFjZjAxOTlhMDkxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
Y29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLXplcm8taXNzdWVzLmh0bWwKQEAg
LTAsMCArMSwxNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3Ig
Z2wtdmVydGV4LWF0dHJpYi16ZXJvLWlzc3Vlcy5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBp
ZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4
LWF0dHJpYi16ZXJvLWlzc3Vlcy5odG1sIj4uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWItemVyby1pc3N1ZXMuaHRtbDwv
YT4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBz
cmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMv
Z2wtdmVydGV4LWF0dHJpYi16ZXJvLWlzc3Vlcy5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYw
MCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWI2ZTNjODQxYTM2YjAyYzkwOTg2M2ZkY2U5NzhhYWU5MWQ1NmFlYgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMv
Z2wtdmVydGV4LWF0dHJpYi5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25m
b3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9yIGdsLXZlcnRleC1hdHRyaWIuaHRtbDwvdGl0bGU+Cis8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQg
YmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8
YSBocmVmPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRy
aWJzL2dsLXZlcnRleC1hdHRyaWIuaHRtbCI+Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLmh0bWw8L2E+Cis8ZGl2IGlk
PSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1h
dHRyaWIuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5j
ZS9hdHRyaWJzL2dsLXZlcnRleGF0dHJpYnBvaW50ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lN2M5YmFiOWJmYTAzYzMyYjEyZThkMmE1YmQ5MGUwYjQ4ZDk2
MjUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0
cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAK
K1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUg
YW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleGF0dHJpYnBvaW50ZXIuaHRt
bAorUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9hdHRy
aWJzL2dsLXZlcnRleGF0dHJpYnBvaW50ZXItb2Zmc2V0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleGF0dHJpYnBvaW50ZXItb2Zm
c2V0cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDkyOTJiODAyZjAxZDI4ZTIxYTVjZmZhMDEx
NjdiNDBhNmNhN2JmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZv
cm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4YXR0cmlicG9pbnRlci1vZmZzZXRzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBi
ZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRl
eGF0dHJpYnBvaW50ZXItb2Zmc2V0cy5odG1sCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4YXR0cmlicG9pbnRlci1vZmZz
ZXRzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRl
eGF0dHJpYnBvaW50ZXItb2Zmc2V0cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlMWJmMzYwMzBlNTI2ZTUw
ZjAzODAwY2QzNzU0OGNjMWU3OGE2MWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleGF0dHJpYnBvaW50ZXItb2Zmc2V0cy5o
dG1sCkBAIC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBw
ZXIgZm9yIGdsLXZlcnRleGF0dHJpYnBvaW50ZXItb2Zmc2V0cy5odG1sPC90aXRsZT4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhy
ZWY9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMv
Z2wtdmVydGV4YXR0cmlicG9pbnRlci1vZmZzZXRzLmh0bWwiPi4uLy4uL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4YXR0cmlicG9pbnRlci1v
ZmZzZXRzLmh0bWw8L2E+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1l
Ij4KKzxpZnJhbWUgc3JjPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9hdHRyaWJzL2dsLXZlcnRleGF0dHJpYnBvaW50ZXItb2Zmc2V0cy5odG1sIiB3aWR0aD0i
ODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4
YXR0cmlicG9pbnRlci5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmli
cy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGM3ZWNjMjMyOWE1YmFh
YjBlZDM2MTlmOGUyNTliZmZlNGM0MTJiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4YXR0cmlicG9pbnRlci5odG1sCkBA
IC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBwZXIgZm9y
IGdsLXZlcnRleGF0dHJpYnBvaW50ZXIuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dl
YmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1l
IGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleGF0dHJp
YnBvaW50ZXIuaHRtbCI+Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLmh0bWw8L2E+Cis8ZGl2IGlkPSJyZXN1
bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleGF0dHJpYnBv
aW50ZXIuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9nZW5lcmF0ZS13
ZWJnbC10ZXN0cy5weSBiL0xheW91dFRlc3RzL3dlYmdsL2dlbmVyYXRlLXdlYmdsLXRlc3RzLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBmYWU3Y2E2MDkzNjA4OGM0NDU4ZjNkN2RmNDI0NDllOWUwOTFjZTEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9nZW5lcmF0ZS13ZWJnbC10ZXN0cy5w
eQpAQCAtMCwwICsxLDIxNyBAQAorIyEvdXNyL2Jpbi9weXRob24KKworIiIiZ2VuZXJhdGVzIHdl
YmdsIGxheW91dCB0ZXN0cyBmcm9tIHRoZSBLaHJvbm9zIFdlYkdMIENvbmZvcm1hbmNlIFRlc3Rz
IiIiCisKK2ltcG9ydCBjb3B5CitpbXBvcnQgb3MKK2ltcG9ydCBvcy5wYXRoCitpbXBvcnQgc3lz
CitpbXBvcnQgcmUKK2ltcG9ydCBqc29uCitpbXBvcnQgc2h1dGlsCitmcm9tIG9wdHBhcnNlIGlt
cG9ydCBPcHRpb25QYXJzZXIKKworaWYgc3lzLnZlcnNpb24gPCAnMi42JzoKKyAgcHJpbnQgJ1dy
b25nIFB5dGhvbiBWZXJzaW9uICEhITogTmVlZCA+PSAyLjYnCisgIHN5cy5leGl0KDEpCisKKwor
R0xPQkFMX09QVElPTlMgPSB7CisgICMgdmVyc2lvbiB1c2UuIFRlc3RzIGF0IG9yIGJlbG93IHRo
aXMgd2lsbCBiZSBpbmNsdWRlZC4KKyAgInZlcnNpb24iOiAiMS4wLjIiLAorCisgICMgdmVyc2lv
biB1c2VkIGZvciB1bmxhYmxlZCB0ZXN0cworICAiZGVmYXVsdC12ZXJzaW9uIjogIjEuMCIsCisK
KyAgIyBJZiBzZXQsIHRoZSB2ZXJzaW9uIHdlIHJlcXVpcmUuIFRlc3RzIGJlbG93IHRoaXMgd2ls
bCBiZSBpZ25vcmVkLgorICAjIm1pbi12ZXJzaW9uIjogIjEuMC4yIiwKK30KKworCitkZWYgUmVh
ZEZpbGUoZmlsZW5hbWUpOgorICAiIiJSZWFkcyBhIGZpbGUgYXMgYSBzdHJpbmciIiIKKyAgZmls
ZSA9IG9wZW4oZmlsZW5hbWUsICJyIikKKyAgZGF0YSA9IGZpbGUucmVhZCgpCisgIGZpbGUuY2xv
c2UoKQorICByZXR1cm4gZGF0YQorCisKK2RlZiBXcml0ZUZpbGUoZmlsZW5hbWUsIGRhdGEpOgor
ICAiIiJXcml0ZXMgYSBzdHJpbmcgYXMgYSBmaWxlIiIiCisgIHByaW50ICJXcml0aW5nOiAiLCBm
aWxlbmFtZQorICBkaXJuYW1lID0gb3MucGF0aC5kaXJuYW1lKGZpbGVuYW1lKQorICBpZiBub3Qg
b3MucGF0aC5leGlzdHMoZGlybmFtZSk6CisgICAgb3MubWFrZWRpcnMoZGlybmFtZSkKKyAgZmls
ZSA9IG9wZW4oZmlsZW5hbWUsICJ3YiIpCisgIGZpbGUud3JpdGUoZGF0YSkKKyAgZmlsZS5jbG9z
ZSgpCisKKworZGVmIENvcHlUcmVlKHNyYywgZHN0LCBpZ25vcmU9Tm9uZSk6CisgICIiIlJlY3Vy
c2l2ZWx5IGNvcHkgYSBkaXJlY3RvcnkgdHJlZSIiIgorICBuYW1lcyA9IG9zLmxpc3RkaXIoc3Jj
KQorICBpZiBpZ25vcmUgaXMgbm90IE5vbmU6CisgICAgaWdub3JlZF9uYW1lcyA9IGlnbm9yZShz
cmMsIG5hbWVzKQorICBlbHNlOgorICAgIGlnbm9yZWRfbmFtZXMgPSBzZXQoKQorCisgIGlmIG5v
dCBvcy5wYXRoLmV4aXN0cyhkc3QpOgorICAgIG9zLm1ha2VkaXJzKGRzdCkKKyAgZXJyb3JzID0g
W10KKyAgZm9yIG5hbWUgaW4gbmFtZXM6CisgICAgaWYgbmFtZSBpbiBpZ25vcmVkX25hbWVzOgor
ICAgICAgY29udGludWUKKyAgICBzcmNuYW1lID0gb3MucGF0aC5qb2luKHNyYywgbmFtZSkKKyAg
ICBkc3RuYW1lID0gb3MucGF0aC5qb2luKGRzdCwgbmFtZSkKKyAgICB0cnk6CisgICAgICBpZiBv
cy5wYXRoLmlzZGlyKHNyY25hbWUpOgorICAgICAgICBDb3B5VHJlZShzcmNuYW1lLCBkc3RuYW1l
LCBpZ25vcmUpCisgICAgICBlbHNlOgorICAgICAgICAjIFdpbGwgcmFpc2UgYSBTcGVjaWFsRmls
ZUVycm9yIGZvciB1bnN1cHBvcnRlZCBmaWxlIHR5cGVzCisgICAgICAgIHNodXRpbC5jb3B5Zmls
ZShzcmNuYW1lLCBkc3RuYW1lKQorICAgICMgY2F0Y2ggdGhlIEVycm9yIGZyb20gdGhlIHJlY3Vy
c2l2ZSBjb3B5dHJlZSBzbyB0aGF0IHdlIGNhbgorICAgICMgY29udGludWUgd2l0aCBvdGhlciBm
aWxlcworICAgIGV4Y2VwdCBFcnJvciwgZXJyOgorICAgICAgZXJyb3JzLmV4dGVuZChlcnIuYXJn
c1swXSkKKyAgICBleGNlcHQgRW52aXJvbm1lbnRFcnJvciwgd2h5OgorICAgICAgZXJyb3JzLmFw
cGVuZCgoc3JjbmFtZSwgZHN0bmFtZSwgc3RyKHdoeSkpKQorICBpZiBlcnJvcnM6CisgICAgcmFp
c2UgRXJyb3IsIGVycm9ycworCisKK2RlZiBGaWxlUmVhZGVyKGZpbGVuYW1lKToKKyAgIiIiQSBG
aWxlIGdlbmVyYXRvciB0aGF0IHJldHVybnMgb25seSBub24gZW1wdHksIG5vbiBjb21tZW50IGxp
bmVzIiIiCisgIGZpbGUgPSBvcGVuKGZpbGVuYW1lLCAiciIpCisgIGxpbmVzID0gZmlsZS5yZWFk
bGluZXMoKQorICBmaWxlLmNsb3NlKCkKKyAgZm9yIGxpbmVfbnVtYmVyLCBsaW5lIGluIGVudW1l
cmF0ZShsaW5lcyk6CisgICAgbGluZSA9IGxpbmUuc3RyaXAoKQorICAgIGlmIChsZW4obGluZSkg
PiAwIGFuZAorICAgICAgICBub3QgbGluZS5zdGFydHN3aXRoKCIjIikgYW5kCisgICAgICAgIG5v
dCBsaW5lLnN0YXJ0c3dpdGgoIjsiKSBhbmQKKyAgICAgICAgbm90IGxpbmUuc3RhcnRzd2l0aCgi
Ly8iKSk6CisgICAgICB5aWVsZCBsaW5lX251bWJlciArIDEsIGxpbmUKKworCitkZWYgR3JlYXRl
clRoYW5PckVxdWFsVG9WZXJzaW9uKGhhdmUsIHdhbnQpOgorICAiIiJDb21wYXJlcyB0byB2ZXJz
aW9uIHN0cmluZ3MiIiIKKyAgaGF2ZSA9IGhhdmUuc3BsaXQoIiAiKVswXS5zcGxpdCgiLiIpCisg
IHdhbnQgPSB3YW50LnNwbGl0KCIgIilbMF0uc3BsaXQoIi4iKQorICBmb3IgbmR4LCB3YW50X3N0
ciBpbiBlbnVtZXJhdGUod2FudCk6CisgICAgd2FudF9udW0gPSBpbnQod2FudF9zdHIpCisgICAg
aGF2ZV9udW0gPSAwCisgICAgaWYgbmR4IDwgbGVuKGhhdmUpOgorICAgICAgaGF2ZV9udW0gPSBp
bnQoaGF2ZVtuZHhdKQorICAgIGlmIGhhdmVfbnVtIDwgd2FudF9udW06CisgICAgICByZXR1cm4g
RmFsc2UKKyAgcmV0dXJuIFRydWUKKworCitkZWYgR2V0VGVzdExpc3QobGlzdF9maWxlbmFtZSwg
ZGVzdF9kaXIsIGhpZXJhcmNoaWNhbF9vcHRpb25zKToKKyAgZ2xvYmFsIEdMT0JBTF9PUFRJT05T
CisgIHRlc3RzID0gW10KKyAgcHJlZml4ID0gb3MucGF0aC5kaXJuYW1lKGxpc3RfZmlsZW5hbWUp
CisgIGZvciBsaW5lX251bWJlciwgbGluZSBpbiBGaWxlUmVhZGVyKGxpc3RfZmlsZW5hbWUpOgor
ICAgIGFyZ3MgPSBsaW5lLnNwbGl0KCkKKyAgICB0ZXN0X29wdGlvbnMgPSB7fQorICAgIG5vbl9v
cHRpb25zID0gW10KKyAgICB1c2VfdGVzdCA9IFRydWUKKyAgICB3aGlsZSBsZW4oYXJncyk6Cisg
ICAgICBhcmcgPSBhcmdzLnBvcCgwKQorICAgICAgaWYgYXJnLnN0YXJ0c3dpdGgoIi0iKToKKyAg
ICAgICAgaWYgbm90IGFyZy5zdGFydHN3aXRoKCItLSIpOgorICAgICAgICAgIHJhaXNlICIlczol
ZCBiYWQgb3B0aW9uIiAlIChsaXN0X2ZpbGVuYW1lLCBsaW5lX251bWJlcikKKyAgICAgICAgb3B0
aW9uID0gYXJnWzI6XQorICAgICAgICBpZiBvcHRpb24gPT0gJ3Nsb3cnOgorICAgICAgICAgIHBh
c3MKKyAgICAgICAgZWxpZiBvcHRpb24gPT0gJ21pbi12ZXJzaW9uJzoKKyAgICAgICAgICB0ZXN0
X29wdGlvbnNbb3B0aW9uXSA9IGFyZ3MucG9wKDApCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
cmFpc2UgIiVzOiVkIHVua25vd24gb3B0aW9uICclcyciICUgKGxpc3RfZmlsZW5hbWUsIGxpbmVf
bnVtYmVyLCBhcmcpCisgICAgICBlbHNlOgorICAgICAgICBub25fb3B0aW9ucy5hcHBlbmQoYXJn
KQorICAgIHVybCA9IG9zLnBhdGguam9pbihwcmVmaXgsICIgIi5qb2luKG5vbl9vcHRpb25zKSkK
KworICAgIGlmIG5vdCB1cmwuZW5kc3dpdGgoIi50eHQiKToKKyAgICAgIGlmICJtaW4tdmVyc2lv
biIgaW4gdGVzdF9vcHRpb25zOgorICAgICAgICBtaW5fdmVyc2lvbiA9IHRlc3Rfb3B0aW9uc1si
bWluLXZlcnNpb24iXQorICAgICAgZWxzZToKKyAgICAgICAgbWluX3ZlcnNpb24gPSBoaWVyYXJj
aGljYWxfb3B0aW9uc1siZGVmYXVsdC12ZXJzaW9uIl0KKworICAgICAgaWYgIm1pbi12ZXJzaW9u
IiBpbiBHTE9CQUxfT1BUSU9OUzoKKyAgICAgICAgdXNlX3Rlc3QgPSBHcmVhdGVyVGhhbk9yRXF1
YWxUb1ZlcnNpb24obWluX3ZlcnNpb24sIEdMT0JBTF9PUFRJT05TWyJtaW4tdmVyc2lvbiJdKQor
ICAgICAgZWxzZToKKyAgICAgICAgdXNlX3Rlc3QgPSBHcmVhdGVyVGhhbk9yRXF1YWxUb1ZlcnNp
b24oR0xPQkFMX09QVElPTlNbInZlcnNpb24iXSwgbWluX3ZlcnNpb24pCisKKyAgICBpZiBub3Qg
dXNlX3Rlc3Q6CisgICAgICBjb250aW51ZQorCisgICAgaWYgdXJsLmVuZHN3aXRoKCIudHh0Iik6
CisgICAgICBpZiAibWluLXZlcnNpb24iIGluIHRlc3Rfb3B0aW9uczoKKyAgICAgICAgaGllcmFy
Y2hpY2FsX29wdGlvbnNbImRlZmF1bHQtdmVyc2lvbiJdID0gdGVzdF9vcHRpb25zWyJtaW4tdmVy
c2lvbiJdCisgICAgICB0ZXN0cyA9IHRlc3RzICsgR2V0VGVzdExpc3QoCisgICAgICAgICAgb3Mu
cGF0aC5qb2luKHByZWZpeCwgdXJsKSwgZGVzdF9kaXIsIGNvcHkuY29weShoaWVyYXJjaGljYWxf
b3B0aW9ucykpCisgICAgZWxzZToKKyAgICAgIHRlc3RzLmFwcGVuZCh7InVybCI6IHVybH0pCisg
IHJldHVybiB0ZXN0cworCisKK2RlZiBtYWluKGFyZ3YpOgorICAiIiJUaGlzIGlzIHRoZSBtYWlu
IGZ1bmN0aW9uLiIiIgorICBnbG9iYWwgR0xPQkFMX09QVElPTlMKKworICBwYXJzZXIgPSBPcHRp
b25QYXJzZXIoKQorICBwYXJzZXIuYWRkX29wdGlvbigKKyAgICAgICItdiIsICItLXZlcmJvc2Ui
LCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgaGVscD0icHJpbnRzIG1vcmUgb3V0cHV0LiIp
CisgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgIi13IiwgIi0td2ViZ2wtY29uZm9ybWFuY2Ut
dGVzdCIsIGRlc3Q9InNvdXJjZV9kaXIiLAorICAgICAgaGVscD0icGF0aCB0byB3ZWJnbCBjb25m
b3JtYW5jZSB0ZXN0cy4gUkVRVUlSRUQiKQorICBwYXJzZXIuYWRkX29wdGlvbigKKyAgICAgICIt
biIsICItLW5vLWNvcHkiLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgaGVscD0iZG8gbm90
IGNvcHkgdGVzdHMiKQorCisgIChvcHRpb25zLCBhcmdzKSA9IHBhcnNlci5wYXJzZV9hcmdzKGFy
Z3M9YXJndikKKworICBpZiBub3Qgb3B0aW9ucy5zb3VyY2VfZGlyOgorICAgIHBhcnNlci5wcmlu
dF9oZWxwKCkKKyAgICByZXR1cm4gMQorCisgIG9zLmNoZGlyKG9zLnBhdGguZGlybmFtZShfX2Zp
bGVfXykgb3IgJy4nKQorCisgIHNvdXJjZV9kaXIgPSBvcHRpb25zLnNvdXJjZV9kaXI7CisgIHdl
YmdsX3Rlc3RzX2RpciA9ICJyZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcyIKKyAgYmFzZV9wYXRo
ID0gIi4iCisKKyAgIyBjb3B5IGFsbCB0aGUgZmlsZXMgZnJvbSB0aGUgV2ViR0wgY29uZm9ybWFu
Y2UgdGVzdHMuCisgIGlmIG5vdCBvcHRpb25zLm5vX2NvcHk6CisgICAgQ29weVRyZWUoCisgICAg
ICAgIHNvdXJjZV9kaXIsIHdlYmdsX3Rlc3RzX2Rpciwgc2h1dGlsLmlnbm9yZV9wYXR0ZXJucygK
KyAgICAgICAgICAgICcuZ2l0JywgJyoucHljJywgJ3RtcConKSkKKworICB0ZW1wbGF0ZSA9IFJl
YWRGaWxlKCJyZXNvdXJjZXMvd2ViZ2wtd3JhcHBlci10ZW1wbGF0ZS5odG1sIikKKworICAjIGdl
bmVyYXRlIHdyYXBwZXJzIGZvciBhbGwgdGhlIHRlc3RzCisgIHRlc3RzID0gR2V0VGVzdExpc3Qo
b3MucGF0aC5qb2luKHNvdXJjZV9kaXIsICIwMF90ZXN0X2xpc3QudHh0IiksICIuIiwKKyAgICAg
ICAgICAgICAgICAgICAgICBjb3B5LmNvcHkoR0xPQkFMX09QVElPTlMpKQorCisgIGZvciB0ZXN0
IGluIHRlc3RzOgorICAgIHVybCA9IG9zLnBhdGgucmVscGF0aCh0ZXN0WyJ1cmwiXSwgc291cmNl
X2RpcikKKyAgICBkc3QgPSB1cmwKKyAgICBkc3RfZGlyID0gb3MucGF0aC5kaXJuYW1lKGRzdCkK
KyAgICBzcmMgPSBvcy5wYXRoLnJlbHBhdGgob3MucGF0aC5qb2luKHdlYmdsX3Rlc3RzX2Rpciwg
dXJsKSwgZHN0X2RpcikucmVwbGFjZSgiXFwiLCAiLyIpCisgICAgYmFzZV91cmwgPSBvcy5wYXRo
LnJlbHBhdGgoYmFzZV9wYXRoLCBkc3RfZGlyKS5yZXBsYWNlKCJcXCIsICIvIikKKyAgICBXcml0
ZUZpbGUoZHN0LCB0ZW1wbGF0ZSAlIHsKKyAgICAgICJ1cmwiOiBzcmMsCisgICAgICAidXJsX25h
bWUiOiBvcy5wYXRoLmJhc2VuYW1lKHVybCksCisgICAgICAiYmFzZV91cmwiOiBiYXNlX3VybCwK
KyAgICB9KQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgIHN5cy5leGl0KG1haW4o
c3lzLmFyZ3ZbMTpdKSkKKworCisKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWEwYzVkNzQ4NDQxM2E0NjVlZWEyMTlhNDliMDU5NDY0
MDM4MGViMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcwpAQCAtMCwwICsxLDU4MSBAQAorLy8gc3ZnL2R5bmFtaWMtdXBkYXRlcyB0
ZXN0cyBzZXQgZW5hYmxlUGl4ZWxUZXN0aW5nPXRydWUsIGFzIHdlIHdhbnQgdG8gZHVtcCB0ZXh0
ICsgcGl4ZWwgcmVzdWx0cworaWYgKHNlbGYudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoc2VsZi5lbmFibGVQaXhlbFRlc3RpbmcpOworCit2YXIgZGVzY3JpcHRpb24sIGRl
YnVnLCBzdWNjZXNzZnVsbHlQYXJzZWQsIGVycm9yTWVzc2FnZTsKKworKGZ1bmN0aW9uKCkgewor
CisgICAgZnVuY3Rpb24gZ2V0T3JDcmVhdGUoaWQsIHRhZ05hbWUpCisgICAgeworICAgICAgICB2
YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICAgICAgaWYgKGVs
ZW1lbnQpCisgICAgICAgICAgICByZXR1cm4gZWxlbWVudDsKKworICAgICAgICBlbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWdOYW1lKTsKKyAgICAgICAgZWxlbWVudC5pZCA9IGlk
OworICAgICAgICB2YXIgcmVmTm9kZTsKKyAgICAgICAgdmFyIHBhcmVudCA9IGRvY3VtZW50LmJv
ZHkgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgICAgICBpZiAoaWQgPT0gImRlc2Ny
aXB0aW9uIikKKyAgICAgICAgICAgIHJlZk5vZGUgPSBnZXRPckNyZWF0ZSgiY29uc29sZSIsICJk
aXYiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVmTm9kZSA9IHBhcmVudC5maXJzdENo
aWxkOworCisgICAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUoZWxlbWVudCwgcmVmTm9kZSk7Cisg
ICAgICAgIHJldHVybiBlbGVtZW50OworICAgIH0KKworICAgIGRlc2NyaXB0aW9uID0gZnVuY3Rp
b24gZGVzY3JpcHRpb24obXNnLCBxdWlldCkKKyAgICB7CisgICAgICAgIC8vIEZvciBNU0lFIDYg
Y29tcGF0aWJpbGl0eQorICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InNwYW4iKTsKKyAgICAgICAgaWYgKHF1aWV0KQorICAgICAgICAgICAgc3Bhbi5pbm5lckhUTUwg
PSAnPHA+JyArIG1zZyArICc8L3A+PHA+T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIG5vICI8c3Bh
biBjbGFzcz0iZmFpbCI+RkFJTDwvc3Bhbj4iIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiPHNwYW4g
Y2xhc3M9InBhc3MiPlRFU1QgQ09NUExFVEU8L3NwYW4+Ii48L3A+JzsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSAnPHA+JyArIG1zZyArICc8L3A+PHA+T24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICI8c3BhbiBjbGFzcz0icGFzcyI+UEFTUzwv
c3Bhbj4iIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiPHNwYW4gY2xhc3M9InBhc3MiPlRFU1QgQ09N
UExFVEU8L3NwYW4+Ii48L3A+JzsKKworICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSBnZXRPckNy
ZWF0ZSgiZGVzY3JpcHRpb24iLCAicCIpOworICAgICAgICBpZiAoZGVzY3JpcHRpb24uZmlyc3RD
aGlsZCkKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uLnJlcGxhY2VDaGlsZChzcGFuLCBkZXNjcmlw
dGlvbi5maXJzdENoaWxkKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZGVzY3JpcHRpb24u
YXBwZW5kQ2hpbGQoc3Bhbik7CisgICAgfTsKKworICAgIGRlYnVnID0gZnVuY3Rpb24gZGVidWco
bXNnKQorICAgIHsKKyAgICAgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJz
cGFuIik7CisgICAgICAgIGdldE9yQ3JlYXRlKCJjb25zb2xlIiwgImRpdiIpLmFwcGVuZENoaWxk
KHNwYW4pOyAvLyBpbnNlcnQgaXQgZmlyc3Qgc28gWEhUTUwga25vd3MgdGhlIG5hbWVzcGFjZQor
ICAgICAgICBzcGFuLmlubmVySFRNTCA9IG1zZyArICc8YnIgLz4nOworICAgIH07CisKKyAgICB2
YXIgY3NzID0KKyAgICAgICAgIi5wYXNzIHsiICsKKyAgICAgICAgICAgICJmb250LXdlaWdodDog
Ym9sZDsiICsKKyAgICAgICAgICAgICJjb2xvcjogZ3JlZW47IiArCisgICAgICAgICJ9IiArCisg
ICAgICAgICIuZmFpbCB7IiArCisgICAgICAgICAgICAiZm9udC13ZWlnaHQ6IGJvbGQ7IiArCisg
ICAgICAgICAgICAiY29sb3I6IHJlZDsiICsKKyAgICAgICAgIn0iICsKKyAgICAgICAgIiNjb25z
b2xlIHsiICsKKyAgICAgICAgICAgICJ3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IiArCisgICAgICAg
ICAgICAiZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsiICsKKyAgICAgICAgIn0iOworCisgICAgZnVu
Y3Rpb24gaW5zZXJ0U3R5bGVTaGVldCgpCisgICAgeworICAgICAgICB2YXIgc3R5bGVFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTsKKyAgICAgICAgc3R5bGVFbGVtZW50
LnRleHRDb250ZW50ID0gY3NzOworICAgICAgICAoZG9jdW1lbnQuaGVhZCB8fCBkb2N1bWVudC5k
b2N1bWVudEVsZW1lbnQpLmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCk7CisgICAgfQorCisgICAg
aWYgKCFpc1dvcmtlcigpKQorICAgICAgICBpbnNlcnRTdHlsZVNoZWV0KCk7CisKKyAgICBzZWxm
Lm9uZXJyb3IgPSBmdW5jdGlvbihtZXNzYWdlKQorICAgIHsKKyAgICAgICAgZXJyb3JNZXNzYWdl
ID0gbWVzc2FnZTsKKyAgICB9OworCit9KSgpOworCitmdW5jdGlvbiBpc1dvcmtlcigpCit7Cisg
ICAgLy8gSXQncyBjb25jZWl2YWJsZSB0aGF0IHNvbWVvbmUgd291bGQgc3R1YiBvdXQgJ2RvY3Vt
ZW50JyBpbiBhIHdvcmtlciBzbworICAgIC8vIGFsc28gY2hlY2sgZm9yIGNoaWxkTm9kZXMsIGFu
IGFyYml0cmFyeSBET00tcmVsYXRlZCBvYmplY3QgdGhhdCBpcworICAgIC8vIG1lYW5pbmdsZXNz
IGluIGEgV29ya2VyQ29udGV4dC4KKyAgICByZXR1cm4gKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3Vu
ZGVmaW5lZCcgfHwgdHlwZW9mIGRvY3VtZW50LmNoaWxkTm9kZXMgPT09ICd1bmRlZmluZWQnKSAm
JiAhIXNlbGYuaW1wb3J0U2NyaXB0czsKK30KKworZnVuY3Rpb24gZGVzY3JpcHRpb25RdWlldCht
c2cpIHsgZGVzY3JpcHRpb24obXNnLCB0cnVlKTsgfQorCitmdW5jdGlvbiBlc2NhcGVIVE1MKHRl
eHQpCit7CisgICAgcmV0dXJuIHRleHQucmVwbGFjZSgvJi9nLCAiJmFtcDsiKS5yZXBsYWNlKC88
L2csICImbHQ7IikucmVwbGFjZSgvXDAvZywgIlxcMCIpOworfQorCitmdW5jdGlvbiB0ZXN0UGFz
c2VkKG1zZykKK3sKKyAgICBkZWJ1ZygnPHNwYW4+PHNwYW4gY2xhc3M9InBhc3MiPlBBU1M8L3Nw
YW4+ICcgKyBlc2NhcGVIVE1MKG1zZykgKyAnPC9zcGFuPicpOworfQorCitmdW5jdGlvbiB0ZXN0
RmFpbGVkKG1zZykKK3sKKyAgICBkZWJ1ZygnPHNwYW4+PHNwYW4gY2xhc3M9ImZhaWwiPkZBSUw8
L3NwYW4+ICcgKyBlc2NhcGVIVE1MKG1zZykgKyAnPC9zcGFuPicpOworfQorCitmdW5jdGlvbiBh
cmVBcnJheXNFcXVhbChfYSwgX2IpCit7CisgICAgdHJ5IHsKKyAgICAgICAgaWYgKF9hLmxlbmd0
aCAhPT0gX2IubGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IF9hLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgaWYgKF9hW2ldICE9
PSBfYltpXSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBjYXRjaCAoZXgp
IHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
ZnVuY3Rpb24gaXNNaW51c1plcm8obikKK3sKKyAgICAvLyB0aGUgb25seSB3YXkgdG8gdGVsbCAw
IGZyb20gLTAgaW4gSlMgaXMgdGhlIGZhY3QgdGhhdCAxLy0wIGlzCisgICAgLy8gLUluZmluaXR5
IGluc3RlYWQgb2YgSW5maW5pdHkKKyAgICByZXR1cm4gbiA9PT0gMCAmJiAxL24gPCAwOworfQor
CitmdW5jdGlvbiBpc1Jlc3VsdENvcnJlY3QoX2FjdHVhbCwgX2V4cGVjdGVkKQoreworICAgIGlm
IChfZXhwZWN0ZWQgPT09IDApCisgICAgICAgIHJldHVybiBfYWN0dWFsID09PSBfZXhwZWN0ZWQg
JiYgKDEvX2FjdHVhbCkgPT09ICgxL19leHBlY3RlZCk7CisgICAgaWYgKF9hY3R1YWwgPT09IF9l
eHBlY3RlZCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHR5cGVvZihfZXhwZWN0ZWQp
ID09ICJudW1iZXIiICYmIGlzTmFOKF9leHBlY3RlZCkpCisgICAgICAgIHJldHVybiB0eXBlb2Yo
X2FjdHVhbCkgPT0gIm51bWJlciIgJiYgaXNOYU4oX2FjdHVhbCk7CisgICAgaWYgKF9leHBlY3Rl
ZCAmJiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKF9leHBlY3RlZCkgPT0gT2JqZWN0
LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFtdKSkpCisgICAgICAgIHJldHVybiBhcmVBcnJheXNF
cXVhbChfYWN0dWFsLCBfZXhwZWN0ZWQpOworICAgIHJldHVybiBmYWxzZTsKK30KKworZnVuY3Rp
b24gc3RyaW5naWZ5KHYpCit7CisgICAgaWYgKHYgPT09IDAgJiYgMS92IDwgMCkKKyAgICAgICAg
cmV0dXJuICItMCI7CisgICAgZWxzZSByZXR1cm4gIiIgKyB2OworfQorCitmdW5jdGlvbiBldmFs
QW5kTG9nKF9hLCBfcXVpZXQpCit7CisgIGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIpCisgICAg
ZGVidWcoIldBUk46IHRyeUFuZExvZygpIGV4cGVjdHMgYSBzdHJpbmcgYXJndW1lbnQiKTsKKwor
ICAvLyBMb2cgZmlyc3QgaW4gY2FzZSB0aGluZ3MgZ28gaG9ycmlibHkgd3Jvbmcgb3IgdGhpcyBj
YXVzZXMgYSBzeW5jIGV2ZW50LgorICBpZiAoIV9xdWlldCkKKyAgICBkZWJ1ZyhfYSk7CisKKyAg
dmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsK
KyAgICB0ZXN0RmFpbGVkKF9hICsgIiB0aHJldyBleGNlcHRpb24gIiArIGUpOworICB9CisgIHJl
dHVybiBfYXY7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlKF9hLCBfYiwgcXVpZXQpCit7CisgIGlm
ICh0eXBlb2YgX2EgIT0gInN0cmluZyIgfHwgdHlwZW9mIF9iICE9ICJzdHJpbmciKQorICAgIGRl
YnVnKCJXQVJOOiBzaG91bGRCZSgpIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOworICB2YXIg
ZXhjZXB0aW9uOworICB2YXIgX2F2OworICB0cnkgeworICAgICBfYXYgPSBldmFsKF9hKTsKKyAg
fSBjYXRjaCAoZSkgeworICAgICBleGNlcHRpb24gPSBlOworICB9CisgIHZhciBfYnYgPSBldmFs
KF9iKTsKKworICBpZiAoZXhjZXB0aW9uKQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBi
ZSAiICsgX2J2ICsgIi4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICBlbHNlIGlm
IChpc1Jlc3VsdENvcnJlY3QoX2F2LCBfYnYpKSB7CisgICAgaWYgKCFxdWlldCkgeworICAgICAg
ICB0ZXN0UGFzc2VkKF9hICsgIiBpcyAiICsgX2IpOworICAgIH0KKyAgfSBlbHNlIGlmICh0eXBl
b2YoX2F2KSA9PSB0eXBlb2YoX2J2KSkKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUg
IiArIF9idiArICIuIFdhcyAiICsgc3RyaW5naWZ5KF9hdikgKyAiLiIpOworICBlbHNlCisgICAg
dGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlICIgKyBfYnYgKyAiIChvZiB0eXBlICIgKyB0eXBl
b2YgX2J2ICsgIikuIFdhcyAiICsgX2F2ICsgIiAob2YgdHlwZSAiICsgdHlwZW9mIF9hdiArICIp
LiIpOworfQorCitmdW5jdGlvbiBzaG91bGRCZVR5cGUoX2EsIF90eXBlKSB7CisgIHZhciBleGNl
cHRpb247CisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0
Y2ggKGUpIHsKKyAgICBleGNlcHRpb24gPSBlOworICB9CisKKyAgdmFyIF90eXBldiA9IGV2YWwo
X3R5cGUpOworICBpZiAoX2F2IGluc3RhbmNlb2YgX3R5cGV2KSB7CisgICAgdGVzdFBhc3NlZChf
YSArICIgaXMgYW4gaW5zdGFuY2Ugb2YgIiArIF90eXBlKTsKKyAgfSBlbHNlIHsKKyAgICB0ZXN0
RmFpbGVkKF9hICsgIiBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgIiArIF90eXBlKTsKKyAgfQorfQor
CisvLyBWYXJpYW50IG9mIHNob3VsZEJlKCktLWNvbmZpcm1zIHRoYXQgcmVzdWx0IG9mIGV2YWwo
X3RvX2V2YWwpIGlzIHdpdGhpbgorLy8gbnVtZXJpYyBfdG9sZXJhbmNlIG9mIG51bWVyaWMgX3Rh
cmdldC4KK2Z1bmN0aW9uIHNob3VsZEJlQ2xvc2VUbyhfdG9fZXZhbCwgX3RhcmdldCwgX3RvbGVy
YW5jZSwgcXVpZXQpCit7CisgIGlmICh0eXBlb2YgX3RvX2V2YWwgIT0gInN0cmluZyIpIHsKKyAg
ICB0ZXN0RmFpbGVkKCJzaG91bGRCZUNsb3NlVG8oKSByZXF1aXJlcyBzdHJpbmcgYXJndW1lbnQg
X3RvX2V2YWwuIHdhcyB0eXBlICIgKyB0eXBlb2YgX3RvX2V2YWwpOworICAgIHJldHVybjsKKyAg
fQorICBpZiAodHlwZW9mIF90YXJnZXQgIT0gIm51bWJlciIpIHsKKyAgICB0ZXN0RmFpbGVkKCJz
aG91bGRCZUNsb3NlVG8oKSByZXF1aXJlcyBudW1lcmljIGFyZ3VtZW50IF90YXJnZXQuIHdhcyB0
eXBlICIgKyB0eXBlb2YgX3RhcmdldCk7CisgICAgcmV0dXJuOworICB9CisgIGlmICh0eXBlb2Yg
X3RvbGVyYW5jZSAhPSAibnVtYmVyIikgeworICAgIHRlc3RGYWlsZWQoInNob3VsZEJlQ2xvc2VU
bygpIHJlcXVpcmVzIG51bWVyaWMgYXJndW1lbnQgX3RvbGVyYW5jZS4gd2FzIHR5cGUgIiArIHR5
cGVvZiBfdG9sZXJhbmNlKTsKKyAgICByZXR1cm47CisgIH0KKworICB2YXIgX3Jlc3VsdDsKKyAg
dHJ5IHsKKyAgICAgX3Jlc3VsdCA9IGV2YWwoX3RvX2V2YWwpOworICB9IGNhdGNoIChlKSB7Cisg
ICAgdGVzdEZhaWxlZChfdG9fZXZhbCArICIgc2hvdWxkIGJlIHdpdGhpbiAiICsgX3RvbGVyYW5j
ZSArICIgb2YgIgorICAgICAgICAgICAgICAgKyBfdGFyZ2V0ICsgIi4gVGhyZXcgZXhjZXB0aW9u
ICIgKyBlKTsKKyAgICByZXR1cm47CisgIH0KKworICBpZiAodHlwZW9mKF9yZXN1bHQpICE9IHR5
cGVvZihfdGFyZ2V0KSkgeworICAgIHRlc3RGYWlsZWQoX3RvX2V2YWwgKyAiIHNob3VsZCBiZSBv
ZiB0eXBlICIgKyB0eXBlb2YgX3RhcmdldAorICAgICAgICAgICAgICAgKyAiIGJ1dCB3YXMgb2Yg
dHlwZSAiICsgdHlwZW9mIF9yZXN1bHQpOworICB9IGVsc2UgaWYgKE1hdGguYWJzKF9yZXN1bHQg
LSBfdGFyZ2V0KSA8PSBfdG9sZXJhbmNlKSB7CisgICAgaWYgKCFxdWlldCkgeworICAgICAgICB0
ZXN0UGFzc2VkKF90b19ldmFsICsgIiBpcyB3aXRoaW4gIiArIF90b2xlcmFuY2UgKyAiIG9mICIg
KyBfdGFyZ2V0KTsKKyAgICB9CisgIH0gZWxzZSB7CisgICAgdGVzdEZhaWxlZChfdG9fZXZhbCAr
ICIgc2hvdWxkIGJlIHdpdGhpbiAiICsgX3RvbGVyYW5jZSArICIgb2YgIiArIF90YXJnZXQKKyAg
ICAgICAgICAgICAgICsgIi4gV2FzICIgKyBfcmVzdWx0ICsgIi4iKTsKKyAgfQorfQorCitmdW5j
dGlvbiBzaG91bGROb3RCZShfYSwgX2IsIHF1aWV0KQoreworICBpZiAodHlwZW9mIF9hICE9ICJz
dHJpbmciIHx8IHR5cGVvZiBfYiAhPSAic3RyaW5nIikKKyAgICBkZWJ1ZygiV0FSTjogc2hvdWxk
Tm90QmUoKSBleHBlY3RzIHN0cmluZyBhcmd1bWVudHMiKTsKKyAgdmFyIGV4Y2VwdGlvbjsKKyAg
dmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsK
KyAgICAgZXhjZXB0aW9uID0gZTsKKyAgfQorICB2YXIgX2J2ID0gZXZhbChfYik7CisKKyAgaWYg
KGV4Y2VwdGlvbikKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgbm90IGJlICIgKyBfYnYg
KyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgIGVsc2UgaWYgKCFpc1Jlc3Vs
dENvcnJlY3QoX2F2LCBfYnYpKSB7CisgICAgaWYgKCFxdWlldCkgeworICAgICAgICB0ZXN0UGFz
c2VkKF9hICsgIiBpcyBub3QgIiArIF9iKTsKKyAgICB9CisgIH0gZWxzZQorICAgIHRlc3RGYWls
ZWQoX2EgKyAiIHNob3VsZCBub3QgYmUgIiArIF9idiArICIuIik7Cit9CisKK2Z1bmN0aW9uIHNo
b3VsZEJlVHJ1ZShfYSkgeyBzaG91bGRCZShfYSwgInRydWUiKTsgfQorZnVuY3Rpb24gc2hvdWxk
QmVUcnVlUXVpZXQoX2EpIHsgc2hvdWxkQmUoX2EsICJ0cnVlIiwgdHJ1ZSk7IH0KK2Z1bmN0aW9u
IHNob3VsZEJlRmFsc2UoX2EpIHsgc2hvdWxkQmUoX2EsICJmYWxzZSIpOyB9CitmdW5jdGlvbiBz
aG91bGRCZU5hTihfYSkgeyBzaG91bGRCZShfYSwgIk5hTiIpOyB9CitmdW5jdGlvbiBzaG91bGRC
ZU51bGwoX2EpIHsgc2hvdWxkQmUoX2EsICJudWxsIik7IH0KK2Z1bmN0aW9uIHNob3VsZEJlWmVy
byhfYSkgeyBzaG91bGRCZShfYSwgIjAiKTsgfQorCitmdW5jdGlvbiBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoYSwgYikKK3sKKyAgaWYgKHR5cGVvZiBhICE9PSAic3RyaW5nIiB8fCB0eXBlb2YgYiAh
PT0gInN0cmluZyIpCisgICAgZGVidWcoIldBUk46IHNob3VsZEJlRXF1YWxUb1N0cmluZygpIGV4
cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOworICB2YXIgdW5ldmFsZWRTdHJpbmcgPSBKU09OLnN0
cmluZ2lmeShiKTsKKyAgc2hvdWxkQmUoYSwgdW5ldmFsZWRTdHJpbmcpOworfQorCitmdW5jdGlv
biBzaG91bGRCZUVtcHR5U3RyaW5nKF9hKSB7IHNob3VsZEJlRXF1YWxUb1N0cmluZyhfYSwgIiIp
OyB9CisKK2Z1bmN0aW9uIHNob3VsZEV2YWx1YXRlVG8oYWN0dWFsLCBleHBlY3RlZCkgeworICAv
LyBBIGdlbmVyYWwtcHVycG9zZSBjb21wYXJhdG9yLiAgJ2FjdHVhbCcgc2hvdWxkIGJlIGEgc3Ry
aW5nIHRvIGJlCisgIC8vIGV2YWx1YXRlZCwgYXMgZm9yIHNob3VsZEJlKCkuICdleHBlY3RlZCcg
bWF5IGJlIGFueSB0eXBlIGFuZCB3aWxsIGJlCisgIC8vIHVzZWQgd2l0aG91dCBiZWluZyBldmFs
J2VkLgorICBpZiAoZXhwZWN0ZWQgPT0gbnVsbCkgeworICAgIC8vIERvIHRoaXMgYmVmb3JlIHRo
ZSBvYmplY3QgdGVzdCwgc2luY2UgbnVsbCBpcyBvZiB0eXBlICdvYmplY3QnLgorICAgIHNob3Vs
ZEJlTnVsbChhY3R1YWwpOworICB9IGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9PSAidW5kZWZp
bmVkIikgeworICAgIHNob3VsZEJlVW5kZWZpbmVkKGFjdHVhbCk7CisgIH0gZWxzZSBpZiAodHlw
ZW9mIGV4cGVjdGVkID09ICJmdW5jdGlvbiIpIHsKKyAgICAvLyBBbGwgdGhpcyBmdXNzIGlzIHRv
IGF2b2lkIHRoZSBzdHJpbmctYXJnIHdhcm5pbmcgZnJvbSBzaG91bGRCZSgpLgorICAgIHRyeSB7
CisgICAgICBhY3R1YWxWYWx1ZSA9IGV2YWwoYWN0dWFsKTsKKyAgICB9IGNhdGNoIChlKSB7Cisg
ICAgICB0ZXN0RmFpbGVkKCJFdmFsdWF0aW5nICIgKyBhY3R1YWwgKyAiOiBUaHJldyBleGNlcHRp
b24gIiArIGUpOworICAgICAgcmV0dXJuOworICAgIH0KKyAgICBzaG91bGRCZSgiJyIgKyBhY3R1
YWxWYWx1ZS50b1N0cmluZygpLnJlcGxhY2UoL1xuL2csICIiKSArICInIiwKKyAgICAgICAgICAg
ICAiJyIgKyBleHBlY3RlZC50b1N0cmluZygpLnJlcGxhY2UoL1xuL2csICIiKSArICInIik7Cisg
IH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJvYmplY3QiKSB7CisgICAgc2hvdWxkQmVU
cnVlKGFjdHVhbCArICIgPT0gJyIgKyBleHBlY3RlZCArICInIik7CisgIH0gZWxzZSBpZiAodHlw
ZW9mIGV4cGVjdGVkID09ICJzdHJpbmciKSB7CisgICAgc2hvdWxkQmUoYWN0dWFsLCBleHBlY3Rl
ZCk7CisgIH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJib29sZWFuIikgeworICAgIHNo
b3VsZEJlKCJ0eXBlb2YgIiArIGFjdHVhbCwgIidib29sZWFuJyIpOworICAgIGlmIChleHBlY3Rl
ZCkKKyAgICAgIHNob3VsZEJlVHJ1ZShhY3R1YWwpOworICAgIGVsc2UKKyAgICAgIHNob3VsZEJl
RmFsc2UoYWN0dWFsKTsKKyAgfSBlbHNlIGlmICh0eXBlb2YgZXhwZWN0ZWQgPT0gIm51bWJlciIp
IHsKKyAgICBzaG91bGRCZShhY3R1YWwsIHN0cmluZ2lmeShleHBlY3RlZCkpOworICB9IGVsc2Ug
eworICAgIGRlYnVnKGV4cGVjdGVkICsgIiBpcyB1bmtub3duIHR5cGUgIiArIHR5cGVvZiBleHBl
Y3RlZCk7CisgICAgc2hvdWxkQmVUcnVlKGFjdHVhbCwgIiciICArZXhwZWN0ZWQudG9TdHJpbmco
KSArICInIik7CisgIH0KK30KKworZnVuY3Rpb24gc2hvdWxkQmVOb25aZXJvKF9hKQoreworICB2
YXIgZXhjZXB0aW9uOworICB2YXIgX2F2OworICB0cnkgeworICAgICBfYXYgPSBldmFsKF9hKTsK
KyAgfSBjYXRjaCAoZSkgeworICAgICBleGNlcHRpb24gPSBlOworICB9CisKKyAgaWYgKGV4Y2Vw
dGlvbikKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgbm9uLXplcm8uIFRocmV3IGV4
Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgZWxzZSBpZiAoX2F2ICE9IDApCisgICAgdGVzdFBh
c3NlZChfYSArICIgaXMgbm9uLXplcm8uIik7CisgIGVsc2UKKyAgICB0ZXN0RmFpbGVkKF9hICsg
IiBzaG91bGQgYmUgbm9uLXplcm8uIFdhcyAiICsgX2F2KTsKK30KKworZnVuY3Rpb24gc2hvdWxk
QmVOb25OdWxsKF9hKQoreworICB2YXIgZXhjZXB0aW9uOworICB2YXIgX2F2OworICB0cnkgewor
ICAgICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkgeworICAgICBleGNlcHRpb24gPSBl
OworICB9CisKKyAgaWYgKGV4Y2VwdGlvbikKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQg
YmUgbm9uLW51bGwuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgZWxzZSBpZiAo
X2F2ICE9IG51bGwpCisgICAgdGVzdFBhc3NlZChfYSArICIgaXMgbm9uLW51bGwuIik7CisgIGVs
c2UKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgbm9uLW51bGwuIFdhcyAiICsgX2F2
KTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmVVbmRlZmluZWQoX2EpCit7CisgIHZhciBleGNlcHRp
b247CisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgIF9hdiA9IGV2YWwoX2EpOworICB9IGNhdGNo
IChlKSB7CisgICAgIGV4Y2VwdGlvbiA9IGU7CisgIH0KKworICBpZiAoZXhjZXB0aW9uKQorICAg
IHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSB1bmRlZmluZWQuIFRocmV3IGV4Y2VwdGlvbiAi
ICsgZXhjZXB0aW9uKTsKKyAgZWxzZSBpZiAodHlwZW9mIF9hdiA9PSAidW5kZWZpbmVkIikKKyAg
ICB0ZXN0UGFzc2VkKF9hICsgIiBpcyB1bmRlZmluZWQuIik7CisgIGVsc2UKKyAgICB0ZXN0RmFp
bGVkKF9hICsgIiBzaG91bGQgYmUgdW5kZWZpbmVkLiBXYXMgIiArIF9hdik7Cit9CisKK2Z1bmN0
aW9uIHNob3VsZEJlRGVmaW5lZChfYSkKK3sKKyAgdmFyIGV4Y2VwdGlvbjsKKyAgdmFyIF9hdjsK
KyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICAgZXhj
ZXB0aW9uID0gZTsKKyAgfQorCisgIGlmIChleGNlcHRpb24pCisgICAgdGVzdEZhaWxlZChfYSAr
ICIgc2hvdWxkIGJlIGRlZmluZWQuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAg
ZWxzZSBpZiAoX2F2ICE9PSB1bmRlZmluZWQpCisgICAgdGVzdFBhc3NlZChfYSArICIgaXMgZGVm
aW5lZC4iKTsKKyAgZWxzZQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBkZWZpbmVk
LiBXYXMgIiArIF9hdik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFs
KF9hLCBfYikgeworICAgIGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIgfHwgdHlwZW9mIF9iICE9
ICJzdHJpbmciKQorICAgICAgICBkZWJ1ZygiV0FSTjogc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1
YWwgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7CisKKyAgICB2YXIgZXhjZXB0aW9uOworICAg
IHZhciBfYXY7CisgICAgdHJ5IHsKKyAgICAgICAgX2F2ID0gZXZhbChfYSk7CisgICAgfSBjYXRj
aCAoZSkgeworICAgICAgICBleGNlcHRpb24gPSBlOworICAgIH0KKyAgICB2YXIgX2J2ID0gZXZh
bChfYik7CisKKyAgICBpZiAoZXhjZXB0aW9uKQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBz
aG91bGQgYmUgPj0gIiArIF9iICsgIi4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOwor
ICAgIGVsc2UgaWYgKHR5cGVvZiBfYXYgPT0gInVuZGVmaW5lZCIgfHwgX2F2IDwgX2J2KQorICAg
ICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgPj0gIiArIF9iICsgIi4gV2FzICIgKyBf
YXYgKyAiIChvZiB0eXBlICIgKyB0eXBlb2YgX2F2ICsgIikuIik7CisgICAgZWxzZQorICAgICAg
ICB0ZXN0UGFzc2VkKF9hICsgIiBpcyA+PSAiICsgX2IpOworfQorCitmdW5jdGlvbiBzaG91bGRO
b3RUaHJvdyhfYSkgeworICAgIHRyeSB7CisgICAgICAgIGV2YWwoX2EpOworICAgICAgICB0ZXN0
UGFzc2VkKF9hICsgIiBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4iKTsKKyAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBub3QgdGhyb3cgZXhjZXB0aW9u
LiBUaHJldyBleGNlcHRpb24gIiArIGUgKyAiLiIpOworICAgIH0KK30KKworZnVuY3Rpb24gc2hv
dWxkVGhyb3coX2EsIF9lKQoreworICB2YXIgZXhjZXB0aW9uOworICB2YXIgX2F2OworICB0cnkg
eworICAgICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkgeworICAgICBleGNlcHRpb24g
PSBlOworICB9CisKKyAgdmFyIF9ldjsKKyAgaWYgKF9lKQorICAgICAgX2V2ID0gIGV2YWwoX2Up
OworCisgIGlmIChleGNlcHRpb24pIHsKKyAgICBpZiAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQi
IHx8IGV4Y2VwdGlvbiA9PSBfZXYpCisgICAgICB0ZXN0UGFzc2VkKF9hICsgIiB0aHJldyBleGNl
cHRpb24gIiArIGV4Y2VwdGlvbiArICIuIik7CisgICAgZWxzZQorICAgICAgdGVzdEZhaWxlZChf
YSArICIgc2hvdWxkIHRocm93ICIgKyAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQiID8gImFuIGV4
Y2VwdGlvbiIgOiBfZXYpICsgIi4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24gKyAiLiIp
OworICB9IGVsc2UgaWYgKHR5cGVvZiBfYXYgPT0gInVuZGVmaW5lZCIpCisgICAgdGVzdEZhaWxl
ZChfYSArICIgc2hvdWxkIHRocm93ICIgKyAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQiID8gImFu
IGV4Y2VwdGlvbiIgOiBfZXYpICsgIi4gV2FzIHVuZGVmaW5lZC4iKTsKKyAgZWxzZQorICAgIHRl
c3RGYWlsZWQoX2EgKyAiIHNob3VsZCB0aHJvdyAiICsgKHR5cGVvZiBfZSA9PSAidW5kZWZpbmVk
IiA/ICJhbiBleGNlcHRpb24iIDogX2V2KSArICIuIFdhcyAiICsgX2F2ICsgIi4iKTsKK30KKwor
ZnVuY3Rpb24gc2hvdWxkSGF2ZUhhZEVycm9yKG1lc3NhZ2UpCit7CisgICAgaWYgKGVycm9yTWVz
c2FnZSkgeworICAgICAgICBpZiAoIW1lc3NhZ2UpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJH
b3QgZXhwZWN0ZWQgZXJyb3IiKTsKKyAgICAgICAgZWxzZSBpZiAoZXJyb3JNZXNzYWdlLmluZGV4
T2YobWVzc2FnZSkgIT09IC0xKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiR290IGV4cGVjdGVk
IGVycm9yOiAnIiArIG1lc3NhZ2UgKyAiJyIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJVbmV4cGV4dGVkIGVycm9yICciICsgbWVzc2FnZSArICInIik7CisgICAgfSBl
bHNlCisgICAgICAgIHRlc3RGYWlsZWQoIk1pc3NpbmcgZXhwZXh0ZWQgZXJyb3IiKTsKKyAgICBl
cnJvck1lc3NhZ2UgPSB1bmRlZmluZWQ7Cit9CisKK2Z1bmN0aW9uIGdjKCkgeworICAgIGlmICh0
eXBlb2YgR0NDb250cm9sbGVyICE9PSAidW5kZWZpbmVkIikKKyAgICAgICAgR0NDb250cm9sbGVy
LmNvbGxlY3QoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgdmFyIGdjUmVjID0gZnVuY3Rpb24gKG4p
IHsKKyAgICAgICAgICAgIGlmIChuIDwgMSkKKyAgICAgICAgICAgICAgICByZXR1cm4ge307Cisg
ICAgICAgICAgICB2YXIgdGVtcCA9IHtpOiAiYWIiICsgaSArIChpIC8gMTAwMDAwKX07CisgICAg
ICAgICAgICB0ZW1wICs9ICJmb28iOworICAgICAgICAgICAgZ2NSZWMobi0xKTsKKyAgICAgICAg
fTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyBpKyspCisgICAgICAgICAgICBn
Y1JlYygxMCkKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCkKK3sK
KyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgYW5kIG9ubHkgcmVwb3J0IHVuZXhwZWN0ZWQgc3lu
dGF4IGVycm9ycy4KKyAgICBpZiAoIWVycm9yTWVzc2FnZSkKKyAgICAgICAgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKKyAgICBzaG91bGRCZVRydWUoInN1Y2Nlc3NmdWxseVBhcnNlZCIpOwor
ICAgIGRlYnVnKCc8YnIgLz48c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBDT01QTEVURTwvc3Bhbj4n
KTsKK30KKworLy8gSXQncyBwb3NzaWJsZSBmb3IgYW4gYXN5bmMgdGVzdCB0byBjYWxsIGZpbmlz
aEpTVGVzdCgpIGJlZm9yZSBqcy10ZXN0LXBvc3QuanMKKy8vIGhhcyBiZWVuIHBhcnNlZC4KK2Z1
bmN0aW9uIGZpbmlzaEpTVGVzdCgpCit7CisgICAgd2FzRmluaXNoSlNUZXN0Q2FsbGVkID0gdHJ1
ZTsKKyAgICBpZiAoIXNlbGYud2FzUG9zdFRlc3RTY3JpcHRQYXJzZWQpCisgICAgICAgIHJldHVy
bjsKKyAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOworICAgIGlmIChzZWxmLmpzVGVzdElzQXN5
bmMgJiYgc2VsZi50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
K30KKworZnVuY3Rpb24gc3RhcnRXb3JrZXIodGVzdFNjcmlwdFVSTCwgc2hhcmVkKQoreworICAg
IHNlbGYuanNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgZGVidWcoJ1N0YXJ0aW5nIHdvcmtlcjog
JyArIHRlc3RTY3JpcHRVUkwpOworICAgIHZhciB3b3JrZXIgPSBzaGFyZWQgPyBuZXcgU2hhcmVk
V29ya2VyKHRlc3RTY3JpcHRVUkwsICJTaGFyZWQgV29ya2VyIikgOiBuZXcgV29ya2VyKHRlc3RT
Y3JpcHRVUkwpOworICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkKKyAgICB7
CisgICAgICAgIHZhciB3b3JrZXJQcmVmaXggPSAiW1dvcmtlcl0gIjsKKyAgICAgICAgaWYgKGV2
ZW50LmRhdGEubGVuZ3RoIDwgNSB8fCBldmVudC5kYXRhLmNoYXJBdCg0KSAhPSAnOicpIHsKKyAg
ICAgICAgICBkZWJ1Zyh3b3JrZXJQcmVmaXggKyBldmVudC5kYXRhKTsKKyAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKyAgICAgICAgdmFyIGNvZGUgPSBldmVudC5kYXRhLnN1YnN0cmluZygw
LCA0KTsKKyAgICAgICAgdmFyIHBheWxvYWQgPSB3b3JrZXJQcmVmaXggKyBldmVudC5kYXRhLnN1
YnN0cmluZyg1KTsKKyAgICAgICAgaWYgKGNvZGUgPT0gIlBBU1MiKQorICAgICAgICAgICAgdGVz
dFBhc3NlZChwYXlsb2FkKTsKKyAgICAgICAgZWxzZSBpZiAoY29kZSA9PSAiRkFJTCIpCisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKHBheWxvYWQpOworICAgICAgICBlbHNlIGlmIChjb2RlID09ICJE
RVNDIikKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uKHBheWxvYWQpOworICAgICAgICBlbHNlIGlm
IChjb2RlID09ICJET05FIikKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBkZWJ1Zyh3b3JrZXJQcmVmaXggKyBldmVudC5kYXRhKTsKKyAgICB9
OworCisgICAgd29ya2VyLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAg
IGRlYnVnKCdHb3QgZXJyb3IgZnJvbSB3b3JrZXI6ICcgKyBldmVudC5tZXNzYWdlKTsKKyAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQorCisgICAgaWYgKHNoYXJlZCkgeworICAgICAgICB3
b3JrZXIucG9ydC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgeyB3b3JrZXIub25tZXNzYWdl
KGV2ZW50KTsgfTsKKyAgICAgICAgd29ya2VyLnBvcnQuc3RhcnQoKTsKKyAgICB9CisgICAgcmV0
dXJuIHdvcmtlcjsKK30KKworaWYgKGlzV29ya2VyKCkpIHsKKyAgICB2YXIgd29ya2VyUG9ydCA9
IHNlbGY7CisgICAgaWYgKHNlbGYubmFtZSA9PSAiU2hhcmVkIFdvcmtlciIpIHsKKyAgICAgICAg
c2VsZi5vbmNvbm5lY3QgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB3b3JrZXJQb3J0ID0g
ZS5wb3J0c1swXTsKKyAgICAgICAgICAgIHdvcmtlclBvcnQub25tZXNzYWdlID0gZnVuY3Rpb24o
ZXZlbnQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFyIGNvbG9uID0gZXZlbnQu
ZGF0YS5pbmRleE9mKCI6Iik7CisgICAgICAgICAgICAgICAgaWYgKGNvbG9uID09IC0xKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlVucmVjb2duaXplZCBtZXNzYWdlIHRvIHNo
YXJlZCB3b3JrZXI6ICIgKyBldmVudC5kYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB2YXIgY29kZSA9IGV2ZW50LmRh
dGEuc3Vic3RyaW5nKDAsIGNvbG9uKTsKKyAgICAgICAgICAgICAgICB2YXIgcGF5bG9hZCA9IGV2
ZW50LmRhdGEuc3Vic3RyaW5nKGNvbG9uICsgMSk7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGNvZGUgPT0gIklNUE9SVCIpCisgICAgICAgICAgICAgICAg
ICAgICAgICBpbXBvcnRTY3JpcHRzKHBheWxvYWQpOworICAgICAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJVbnJlY29nbml6ZWQgbWVzc2Fn
ZSB0byBzaGFyZWQgd29ya2VyOiAiICsgZXZlbnQuZGF0YSk7CisgICAgICAgICAgICAgICAgfSBj
YXRjaCAoZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ2F1Z2h0IGV4Y2Vw
dGlvbiBpbiBzaGFyZWQgd29ya2VyIG9ubWVzc2FnZTogIiArIGV4KTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgIH0KKyAgICBkZXNjcmlwdGlvbiA9
IGZ1bmN0aW9uKG1zZywgcXVpZXQpIHsKKyAgICAgICAgd29ya2VyUG9ydC5wb3N0TWVzc2FnZSgn
REVTQzonICsgbXNnKTsKKyAgICB9CisgICAgdGVzdEZhaWxlZCA9IGZ1bmN0aW9uKG1zZykgewor
ICAgICAgICB3b3JrZXJQb3J0LnBvc3RNZXNzYWdlKCdGQUlMOicgKyBtc2cpOworICAgIH0KKyAg
ICB0ZXN0UGFzc2VkID0gZnVuY3Rpb24obXNnKSB7CisgICAgICAgIHdvcmtlclBvcnQucG9zdE1l
c3NhZ2UoJ1BBU1M6JyArIG1zZyk7CisgICAgfQorICAgIGZpbmlzaEpTVGVzdCA9IGZ1bmN0aW9u
KCkgeworICAgICAgICB3b3JrZXJQb3J0LnBvc3RNZXNzYWdlKCdET05FOicpOworICAgIH0KKyAg
ICBkZWJ1ZyA9IGZ1bmN0aW9uKG1zZykgeworICAgICAgICB3b3JrZXJQb3J0LnBvc3RNZXNzYWdl
KG1zZyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsLXdyYXBwZXItdGVtcGxhdGUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbC13cmFwcGVyLXRlbXBsYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDgwNDljZjkyOWY3M2Uy
ZTE5ODA5NDFkMGY5NDlkYWY2NzdjYzQzNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbC13cmFwcGVyLXRlbXBsYXRlLmh0bWwKQEAgLTAsMCArMSwx
NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgJSh1cmxfbmFt
ZSlzPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IiUoYmFzZV91
cmwpcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iJShiYXNlX3VybClzL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wt
dGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0
IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0
cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iJSh1cmwpcyI+JSh1cmwpczwvYT4K
KzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9
IiUodXJsKXMiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy8wMF90ZXN0X2xpc3QudHh0IGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0
cmlicy8wMF90ZXN0X2xpc3QudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1OGJiNjVhZjJkMmYxODU0MjhhMjFi
ZjIxOTQyYjNjODlmZDRjYWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzLzAwX3Rlc3RfbGlz
dC50eHQKQEAgLTAsMCArMSw4IEBACitnbC1lbmFibGUtdmVydGV4LWF0dHJpYi5odG1sCistLW1p
bi12ZXJzaW9uIDEuMC4yIGdsLXZlcnRleC1hdHRyaWItcmVuZGVyLmh0bWwKKy0tbWluLXZlcnNp
b24gMS4wLjIgZ2wtZGlzYWJsZWQtdmVydGV4LWF0dHJpYi5odG1sCitnbC12ZXJ0ZXgtYXR0cmli
LXplcm8taXNzdWVzLmh0bWwKK2dsLXZlcnRleC1hdHRyaWIuaHRtbAorZ2wtdmVydGV4YXR0cmli
cG9pbnRlci1vZmZzZXRzLmh0bWwKK2dsLXZlcnRleGF0dHJpYnBvaW50ZXIuaHRtbAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9hdHRyaWJzL2dsLWRpc2FibGVkLXZlcnRleC1hdHRyaWIuaHRtbCBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMv
Z2wtZGlzYWJsZWQtdmVydGV4LWF0dHJpYi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmODA4MWZjYWIyYTAz
MjkxNmJmNGJlZDY0NzEzM2RlYTM1NzlhNGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2ds
LWRpc2FibGVkLXZlcnRleC1hdHRyaWIuaHRtbApAQCAtMCwwICsxLDEwMSBAQAorPCEtLQorCisv
KgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQ
ZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNv
biBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVk
IGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRo
ZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxp
bWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs
CisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1h
dGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMg
YXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p
c3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0
YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBB
UkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVY
UFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO
VElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhP
UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1B
R0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs
CisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVD
VElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1Mg
SU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgRGlzYWJsZWQgVmVy
dGV4IEF0dHJpYiBUZXN0PC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93
ZWJnbC10ZXN0LXV0aWxzLmpzIj4gPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMg
aWQ9ImV4YW1wbGUiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCI+Cis8L2NhbnZhcz4KKzxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBp
ZD0idnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgorYXR0cmlidXRlIHZlYzQgYV9w
b3NpdGlvbjsKK2F0dHJpYnV0ZSB2ZWM0IGFfY29sb3I7Cit2YXJ5aW5nIHZlYzQgdl9jb2xvcjsK
K3ZvaWQgbWFpbigpIHsKKyAgZ2xfUG9zaXRpb24gPSBhX3Bvc2l0aW9uOworICB2X2NvbG9yID0g
YV9jb2xvcjsKK30KKzwvc2NyaXB0PgorCis8c2NyaXB0IGlkPSJmc2hhZGVyIiB0eXBlPSJ4LXNo
YWRlci94LWZyYWdtZW50Ij4KK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwordmFyeWluZyB2ZWM0
IHZfY29sb3I7Citib29sIGlzQ29ycmVjdENvbG9yKHZlYzQgdikgeworICByZXR1cm4gdi54ID09
IDAuMCAmJiB2LnkgPT0gMC4wICYmIHYueiA9PSAwLjAgJiYgdi53ID09IDEuMDsKK30KK3ZvaWQg
bWFpbigpIHsKKyAgZ2xfRnJhZ0NvbG9yID0gaXNDb3JyZWN0Q29sb3Iodl9jb2xvcikgPyB2ZWM0
KDAsIDEsIDAsIDEpIDogdmVjNCgxLCAwLCAwLCAxKTsKK30KKzwvc2NyaXB0PgorCis8c2NyaXB0
PgorInVzZSBzdHJpY3QiOwordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOworZGVzY3JpcHRpb24o
KTsKKwordmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIpOworCit2YXIgbnVt
VmVydGV4QXR0cmlicyA9IGdsLmdldFBhcmFtZXRlcihnbC5NQVhfVkVSVEVYX0FUVFJJQlMpOwor
Zm9yICh2YXIgaWkgPSAwOyBpaSA8IG51bVZlcnRleEF0dHJpYnM7ICsraWkpIHsKKyAgdmFyIGNv
bG9yTG9jYXRpb24gPSAoaWkgKyAxKSAlIG51bVZlcnRleEF0dHJpYnM7CisgIHZhciBwb3NpdGlv
bkxvY2F0aW9uID0gY29sb3JMb2NhdGlvbiA/IDAgOiAxOworCisgIGlmIChwb3NpdGlvbkxvY2F0
aW9uICE9IDApIHsKKyAgICAvLyBXZSBuZWVkIHRvIGNyZWF0ZSBhIG5ldyAzZCBjb250ZXh0IGZv
ciB0ZXN0aW5nIGF0dHJpYiAwCisgICAgLy8gc2luY2Ugd2UndmUgYWxyZWFkeSBlZmZlY3RlZCBh
dHRyaWIgMCBvbiBvdGhlciB0ZXN0cy4KKyAgICBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoKTsK
KyAgfQorCisgIGRlYnVnKCJ0ZXN0aW5nIGF0dHJpYjogIiArIGNvbG9yTG9jYXRpb24pOworICB2
YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oCisgICAgICBnbCwKKyAgICAgIFsndnNoYWRl
cicsICdmc2hhZGVyJ10sCisgICAgICBbJ2FfcG9zaXRpb24nLCAnYV9jb2xvciddLAorICAgICAg
W3Bvc2l0aW9uTG9jYXRpb24sIGNvbG9yTG9jYXRpb25dKTsKKyAgdmFyIGdyaWRSZXMgPSAxOwor
ICB3dHUuc2V0dXBRdWFkKGdsLCBncmlkUmVzLCBwb3NpdGlvbkxvY2F0aW9uKTsKKyAgd3R1LmRy
YXdJbmRleGVkUXVhZChnbCwgZ3JpZFJlcyk7CisgIHd0dS5jaGVja0NhbnZhcyhnbCwgWzAsIDI1
NSwgMCwgMjU1XSwgInNob3VsZCBiZSBncmVlbiIpOworfQorZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUiwgInNob3VsZCBiZSBubyBlcnJvcnMiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9hdHRyaWJzL2dsLWVuYWJsZS12ZXJ0ZXgtYXR0cmliLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLWVuYWJs
ZS12ZXJ0ZXgtYXR0cmliLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzk3MDNhMGE1YTk1NmZjZDY5NDE1YWRh
ZDMxNWJlM2QyMTllYTVkMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtZW5hYmxlLXZl
cnRleC1hdHRyaWIuaHRtbApAQCAtMCwwICsxLDgzIEBACis8IS0tCisKKy8qCisqKiBDb3B5cmln
aHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMg
aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBh
CisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlv
biBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3
aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUg
cmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1
dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQg
dG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVk
IHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgor
KiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ug
c2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv
bnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAi
QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBM
SUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBN
RVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05J
TkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklH
SFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIg
TElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1Ig
T1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhF
CisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJ
QUxTLgorKi8KKworLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5XZWJHTCBFbmFibGUgVmVydGV4IEF0dHJp
YiBUZXN0PC90aXRsZT4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiPgorPC9jYW52YXM+Cis8
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KKyAgICBhdHRyaWJ1
dGUgdmVjNCB2UG9zaXRpb247CisgICAgdm9pZCBtYWluKCkKKyAgICB7CisgICAgICAgIGdsX1Bv
c2l0aW9uID0gdlBvc2l0aW9uOworICAgIH0KKzwvc2NyaXB0PgorCis8c2NyaXB0IGlkPSJmc2hh
ZGVyIiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KKyAgICB2b2lkIG1haW4oKQorICAgIHsK
KyAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgxLjAsMC4wLDAuMCwxLjApOworICAgIH0KKzwv
c2NyaXB0PgorCis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworZGVzY3JpcHRpb24oInRlc3RzIHRo
YXQgdHVybmluZyBvbiBhdHRyaWJzIHRoYXQgaGF2ZSBubyBidWZmZXIgYm91bmQgZmFpbHMgdG8g
ZHJhdyIpOwordmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwordmFyIGdsID0gd3R1LmNyZWF0ZTNE
Q29udGV4dCgiZXhhbXBsZSIpOwordmFyIHByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBb
InZzaGFkZXIiLCAiZnNoYWRlciJdLCBbInZQb3NpdGlvbiJdKTsKKwordmFyIHZlcnRleE9iamVj
dCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZl
cnRleE9iamVjdCk7CitnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0MzJB
cnJheShbIDAsMC41LDAsIC0wLjUsLTAuNSwwLCAwLjUsLTAuNSwwIF0pLCBnbC5TVEFUSUNfRFJB
Vyk7CitnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsKK2dsLnZlcnRleEF0dHJpYlBvaW50
ZXIoMCwgMywgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKKworZ2wuZW5hYmxlVmVydGV4QXR0cmli
QXJyYXkoMyk7CitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKKworZ2wuZHJhd0Fy
cmF5cyhnbC5UUklBTkdMRVMsIDAsIDMpOworZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElE
X09QRVJBVElPTik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CisKKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0
cmliLXJlbmRlci5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLXJlbmRlci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjIyY2ZjZjkxZTU0NzNiMzcwYTNhZDg2ZWZkMzhkZDk2ODM1MzE3ZmQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWItcmVuZGVyLmh0bWwKQEAgLTAs
MCArMSwxMTEgQEAKKzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25v
cyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv
ZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0
d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRl
cmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGlu
Y2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBt
b2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29y
IHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMg
dG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8K
KyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0
IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiog
aW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgor
KioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFO
VFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U
IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBG
T1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
QU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJP
TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUg
VVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKworPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNj
cmlwdCBpZD0ndnNoYWRlcicgdHlwZT0neC1zaGFkZXInPgorICAgICAgICAgICAgYXR0cmlidXRl
IHZlYzQgYTsKKyAgICAgICAgICAgIGF0dHJpYnV0ZSB2ZWMyIHA7CisgICAgICAgICAgICB2b2lk
IG1haW4oKSB7CisgICAgICAgICAgICAgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KHAueCArIGEueCAr
IGEueSArIGEueiArIGEudywgcC55LCAwLjAsIDEuMCk7CisgICAgICAgICAgICB9CisgICAgICAg
IDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IGlkPSdmc2hhZGVyJyB0eXBlPSd4LXNoYWRlcic+
CisgICAgICAgICAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyAgICAgICAgICAgIHZvaWQg
bWFpbigpIHsKKyAgICAgICAgICAgICAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDEuMCwgMC4wLCAw
LjAsIDEuMCk7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c2Ny
aXB0PgorICAgICAgICAgICAgInVzZSBzdHJpY3QiOworICAgICAgICAgICAgZnVuY3Rpb24gY2hl
Y2tSZWRQb3J0aW9uKGdsLCB3LCBsb3csIGhpZ2gpIHsKKyAgICAgICAgICAgICAgICB2YXIgYnVm
ID0gbmV3IFVpbnQ4QXJyYXkodyAqIHcgKiA0KTsKKyAgICAgICAgICAgICAgICBnbC5yZWFkUGl4
ZWxzKDAsIDAsIHcsIHcsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7CisgICAgICAg
ICAgICAgICAgdmFyIGkgPSAwOworICAgICAgICAgICAgICAgIGZvciAoOyBpIDwgdzsgKytpKSB7
CisgICAgICAgICAgICAgICAgICAgIGlmIChidWZbaSAqIDQgKyAwXSA9PSAyNTUgJiYgYnVmW2kg
KiA0ICsgMV0gPT0gMCAmJiBidWZbaSAqIDQgKyAyXSA9PSAwICYmIGJ1ZltpICogNCArIDNdID09
IDI1NSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGxvdyA8PSBp
ICYmIGkgPD0gaGlnaDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gcnVu
VGVzdCgpIHsKKyAgICAgICAgICAgICAgICB2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CisgICAg
ICAgICAgICAgICAgdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgndGVzdGJlZCcsIHsgcHJl
c2VydmVEcmF3aW5nQnVmZmVyIDogdHJ1ZSB9KTsKKyAgICAgICAgICAgICAgICBpZiAoIWdsKSB7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ2NvdWxkIG5vdCBjcmVhdGUgY29udGV4
dCcpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIHZhciBwcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbShnbCwgWyd2c2hhZGVy
JywgJ2ZzaGFkZXInXSwgWydwJywgJ2EnXSkKKworICAgICAgICAgICAgICAgIGdsLmVuYWJsZVZl
cnRleEF0dHJpYkFycmF5KGdsLnApOworICAgICAgICAgICAgICAgIHZhciBwb3MgPSBnbC5jcmVh
dGVCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICBwb3MudHlwZSA9IGdsLkZMT0FUOworICAgICAg
ICAgICAgICAgIHBvcy5zaXplID0gMjsKKyAgICAgICAgICAgICAgICBwb3MubnVtID0gNDsKKyAg
ICAgICAgICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgcG9zKTsKKyAgICAg
ICAgICAgICAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJh
eShbLTEsIC0xLCAxLCAtMSwgLTEsIDEsIDEsIDFdKSwgZ2wuU1RBVElDX0RSQVcpOworCisgICAg
ICAgICAgICAgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCBwb3Muc2l6ZSwgcG9zLnR5cGUs
IGZhbHNlLCAwLCAwKTsKKworICAgICAgICAgICAgICAgIGRlYnVnKCdUZXN0IHZlcnRleEF0dHJp
YlsxLi40XWZ2IGJ5IHNldHRpbmcgZGlmZmVyZW50IGNvbWJpbmF0aW9ucyB0aGF0IGFkZCB1cCB0
byAxLjUgYW5kIHVzZSB0aGF0IHdoZW4gcmVuZGVyaW5nLicpOworICAgICAgICAgICAgICAgIHZh
ciB2YWxzID0gW1swLjVdLCBbMC4xLDAuNF0sIFswLjIsLTAuMiwwLjVdLCBbLTEuMCwwLjMsMC4y
LDIuMF1dOworCisgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCA0OyArK2opIHsK
KyAgICAgICAgICAgICAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRF
UFRIX0JVRkZFUl9CSVQpOworICAgICAgICAgICAgICAgICAgICBnbFsndmVydGV4QXR0cmliJyAr
IChqKzEpICsgJ2Z2J10oMSwgdmFsc1tqXSk7CisgICAgICAgICAgICAgICAgICAgIGdsLmRyYXdB
cnJheXMoZ2wuVFJJQU5HTEVfU1RSSVAsIDAsIHBvcy5udW0pOworCisgICAgICAgICAgICAgICAg
ICAgIGlmIChjaGVja1JlZFBvcnRpb24oZ2wsIDUwLCA1MCAqIDAuNywgNTAgKiAwLjgpKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdBdHRyaWJ1dGUgb2Ygc2l6ZSAnICsg
KGorMSkgKyAnIHdhcyBzZXQgY29ycmVjdGx5Jyk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCdBdHRyaWJ1dGUgb2Ygc2l6
ZSAnICsgKGorMSkgKyAnIHdhcyBub3Qgc2V0IGNvcnJlY3RseScpOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICA8L3Njcmlw
dD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxjYW52YXMgaWQ9InRlc3RiZWQi
IHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCI+PC9jYW52YXM+CisgICAgICAgIDxkaXYgaWQ9ImRlc2Ny
aXB0aW9uIj48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgICAg
IDxzY3JpcHQ+CisgICAgICAgICAgICAidXNlIHN0cmljdCI7CisgICAgICAgICAgICBkZXNjcmlw
dGlvbignVmVyaWZ5IHRoYXQgdXNpbmcgY29uc3RhbnQgYXR0cmlidXRlcyB3b3Jrcy4nKTsKKyAg
ICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi16ZXJvLWlzc3Vlcy5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
YXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLXplcm8taXNzdWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQ4
OTg0OTNmMTQwNDQ2YjYyOTA4ZDM5NjhiMTJmZjJjMGJiZGVmYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi16ZXJvLWlzc3Vlcy5odG1sCkBAIC0wLDAgKzEsMTUz
IEBACis8IS0tCisKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl
LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5k
L29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiks
IHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcK
KyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt
ZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNv
cGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20g
dGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Ug
YW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBj
b3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBU
SEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO
WSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE
IFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQor
KiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP
TiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBP
RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBP
VEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLS0+CisKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJH
TCBFbmFibGUgVmVydGV4IEF0dHJpYiBaZXJvIFRlc3Q8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj4gPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPiA8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIj4KKzwv
Y2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0IGlkPSJ2c2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+Cisg
ICAgYXR0cmlidXRlIHZlYzQgdlBvc2l0aW9uOworICAgIHZvaWQgbWFpbigpCisgICAgeworICAg
ICAgICBnbF9Qb3NpdGlvbiA9IHZQb3NpdGlvbjsKKyAgICB9Cis8L3NjcmlwdD4KKworPHNjcmlw
dCBpZD0iZnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+CisgICAgdm9pZCBtYWlu
KCkKKyAgICB7CisgICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMC4wLDEuMCwwLjAsMS4wKTsK
KyAgICB9Cis8L3NjcmlwdD4KKworPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK2Rlc2NyaXB0aW9u
KCJUZXN0IHNvbWUgb2YgdGhlIGlzc3VlcyBvZiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGF0dHJp
YiAwIG9uIE9wZW5HTCB2cyBXZWJHTCIpOworZGVidWcoIiIpOwordmFyIHd0dSA9IFdlYkdMVGVz
dFV0aWxzOwordmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIpOwordmFyIGdf
cHJvZ3JhbTsKK3ZhciBnX2F0dHJpYkxvY2F0aW9uOworZnVuY3Rpb24gc2V0dXAoYXR0cmliSW5k
ZXgpIHsKKyAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKAorICAgICAgZ2wsIFsndnNo
YWRlcicsICdmc2hhZGVyJ10sIFsndlBvc2l0aW9uJ10sIFthdHRyaWJJbmRleF0pOworICBnX3By
b2dyYW0gPSBwcm9ncmFtOworICBnX2F0dHJpYkxvY2F0aW9uID0gYXR0cmliSW5kZXg7CisgIHNo
b3VsZEJlKCJnX2F0dHJpYkxvY2F0aW9uIiwgImdsLmdldEF0dHJpYkxvY2F0aW9uKGdfcHJvZ3Jh
bSwgJ3ZQb3NpdGlvbicpIik7CisgIHJldHVybiBwcm9ncmFtOworfQorCitmdW5jdGlvbiBzZXR1
cFZlcnRzKG51bVZlcnRzKSB7CisgIHZhciB2ZXJ0cyA9IFsKKyAgICAgMS4wLCAgMS4wLCAwLjAs
CisgICAgLTEuMCwgIDEuMCwgMC4wLAorICAgIC0xLjAsIC0xLjAsIDAuMCwKKyAgICAgMS4wLCAg
MS4wLCAwLjAsCisgICAgLTEuMCwgLTEuMCwgMC4wLAorICAgICAxLjAsIC0xLjAsIDAuMAorICBd
OworICB2YXIgcG9zaXRpb25zID0gbmV3IEZsb2F0MzJBcnJheShudW1WZXJ0cyAqIDMpOworICB2
YXIgaW5kaWNlcyA9IG5ldyBVaW50MTZBcnJheShudW1WZXJ0cyk7CisgIGZvciAodmFyIGlpID0g
MDsgaWkgPCBudW1WZXJ0czsgKytpaSkgeworICAgIHZhciBuZHggPSBpaSAlIDY7CisgICAgdmFy
IGRzdCA9IGlpICogMzsKKyAgICB2YXIgc3JjID0gbmR4ICogMzsKKyAgICBmb3IgKHZhciBqaiA9
IDA7IGpqIDwgMzsgKytqaikgeworICAgICAgcG9zaXRpb25zW2RzdCArIGpqXSA9IHZlcnRzW3Ny
YyArIGpqXTsKKyAgICB9CisgICAgaW5kaWNlc1tpaV0gPSBpaTsKKyAgfQorICB2YXIgdmVydGV4
T2JqZWN0ID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVG
RkVSLCB2ZXJ0ZXhPYmplY3QpOworICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgcG9z
aXRpb25zLCBnbC5TVEFUSUNfRFJBVyk7CisgIHZhciBpbmRleEJ1ZmZlciA9IGdsLmNyZWF0ZUJ1
ZmZlcigpOworICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBpbmRleEJ1
ZmZlcik7CisgIGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGluZGljZXMs
IGdsLlNUQVRJQ19EUkFXKTsKK30KKwordmFyIHAwID0gc2V0dXAoMCk7Cit2YXIgcDMgPSBzZXR1
cCgzKTsKK3NldHVwVmVydHMoNjAwMDApOworCitmb3IgKHZhciBpaSA9IDA7IGlpIDwgNTsgKytp
aSkgeworICAvLyB0ZXN0IGRyYXdpbmcgd2l0aCBhdHRyaWIgMAorICBnbC51c2VQcm9ncmFtKHAw
KTsKKyAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoMCk7CisgIGdsLnZlcnRleEF0dHJpYlBv
aW50ZXIoMCwgMywgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKKyAgZ2wuY2xlYXIoZ2wuQ09MT1Jf
QlVGRkVSX0JJVCk7CisgIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIDYwMDAwLCBnbC5V
TlNJR05FRF9TSE9SVCwgMCk7CisgIGdsRXJyb3JTaG91bGRCZSgKKyAgICAgIGdsLCBnbC5OT19F
UlJPUiwKKyAgICAgICJkcmF3aW5nIHVzaW5nIGF0dHJpYiAwIHdpdGggNiB2ZXJ0cyIpOworICB3
dHUuY2hlY2tDYW52YXMoZ2wsIFswLCAyNTUsIDAsIDI1NV0sICJjYW52YXMgc2hvdWxkIGJlIGdy
ZWVuIik7CisgIGdsLmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsKKworICAvLyB0ZXN0IGRy
YXdpbmcgd2l0aG91dCBhdHRyaWIgMAorICBnbC51c2VQcm9ncmFtKHAzKTsKKyAgZ2wuZW5hYmxl
VmVydGV4QXR0cmliQXJyYXkoMyk7CisgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIoMywgMywgZ2wu
RkxPQVQsIGZhbHNlLCAwLCAwKTsKKyAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7Cisg
IGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCA2MDAwMCk7CisgIGdsRXJyb3JTaG91bGRC
ZSgKKyAgICAgIGdsLCBnbC5OT19FUlJPUiwKKyAgICAgICJkcmF3aW5nIHVzaW5nIGF0dHJpYiAz
IHdpdGggNjAwMDAgdmVydHMiKTsKKyAgd3R1LmNoZWNrQ2FudmFzKGdsLCBbMCwgMjU1LCAwLCAy
NTVdLCAiY2FudmFzIHNob3VsZCBiZSBncmVlbiIpOworICBnbC5kaXNhYmxlVmVydGV4QXR0cmli
QXJyYXkoMyk7CisKKyAgLy8gVGhpcyBzZWNvbmQgdGVzdCBvZiBkcmF3aW5nIHdpdGhvdXQgYXR0
cmliMCB1bmNvbnZlcmVkIGEgYnVnIGluIGNocm9tZQorICAvLyB3aGVyZSBhZnRlciB0aGUgZHJh
dyB3aXRob3V0IGF0dHJpYjAgdGhlIGF0dHJpYiAwIGVtdWxhdGlvbiBjb2RlIGRpc2FibGVkCisg
IC8vIGF0dHJpYiAwIGFuZCBpdCB3YXMgbmV2ZXIgcmUtZW5hYmxlZCBzbyB0aGlzIG5leHQgZHJh
dyBmYWlsZWQuCisgIGdsLnVzZVByb2dyYW0ocDMpOworICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJB
cnJheSgzKTsKKyAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7CisgIGdsLmRyYXdFbGVt
ZW50cyhnbC5UUklBTkdMRVMsIDYwMDAwLCBnbC5VTlNJR05FRF9TSE9SVCwgMCk7CisgIGdsRXJy
b3JTaG91bGRCZSgKKyAgICAgIGdsLCBnbC5OT19FUlJPUiwKKyAgICAgICJkcmF3aW5nIHVzaW5n
IGF0dHJpYiAzIHdpdGggNjAwMDAgdmVydHMiKTsKKyAgd3R1LmNoZWNrQ2FudmFzKGdsLCBbMCwg
MjU1LCAwLCAyNTVdLCAiY2FudmFzIHNob3VsZCBiZSBncmVlbiIpOworICBnbC5kaXNhYmxlVmVy
dGV4QXR0cmliQXJyYXkoMyk7Cit9CisKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2ds
LXZlcnRleC1hdHRyaWIuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQ5Y2FhYTMzNmY3OWU4ZWRlOGUxNTI2M2Y4NjA1ZDc1NTcxZWQxNGQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWIuaHRtbApAQCAtMCwwICsxLDExOSBA
QAorPCEtLQorCisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIElu
Yy4KKyoqCisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwg
dG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9v
ciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0
byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisq
KiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVy
Z2UsIHB1Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3Bp
ZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRo
ZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu
ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29w
aWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhF
IE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkg
S0lORCwKKyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBU
TyBUSEUgV0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoq
IENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04g
T0YgQ09OVFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0Yg
T1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RI
RVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy0tPgorCis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wg
dmVydGV4QXR0cmliIENvbmZvcm1hbmNlIFRlc3RzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjIiIGhlaWdodD0iMiI+IDwvY2FudmFzPgor
PHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgZW5zdXJlcyBX
ZWJHTCBpbXBsZW1lbnRhdGlvbnMgdmVydGV4QXR0cmliIGNhbiBiZSBzZXQgYW5kIHJlYWQuIik7
CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJDYW52YXMuZ2V0Q29udGV4dCIpOworCit2YXIgd3R1ID0g
V2ViR0xUZXN0VXRpbHM7Cit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJjYW52YXMiKTsK
K2lmICghZ2wpIHsKKyAgdGVzdEZhaWxlZCgiY29udGV4dCBkb2VzIG5vdCBleGlzdCIpOworfSBl
bHNlIHsKKyAgdGVzdFBhc3NlZCgiY29udGV4dCBleGlzdHMiKTsKKworICBkZWJ1ZygiIik7Cisg
IGRlYnVnKCJDaGVja2luZyBnbC52ZXJ0ZXhBdHRyaWIuIik7CisKKyAgdmFyIG51bVZlcnRleEF0
dHJpYnMgPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX1ZFUlRFWF9BVFRSSUJTKTsKKyAgZm9yICh2
YXIgaWkgPSAwOyBpaSA8IG51bVZlcnRleEF0dHJpYnM7ICsraWkpIHsKKyAgICBnbC52ZXJ0ZXhB
dHRyaWIxZnYoaWksIFsxXSk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYignICsg
aWkgKyAnLCBnbC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIpWzBdJywgJzEnKTsKKyAgICBzaG91bGRC
ZSgnZ2wuZ2V0VmVydGV4QXR0cmliKCcgKyBpaSArICcsIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJ
QilbMV0nLCAnMCcpOworICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoJyArIGlpICsg
JywgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKVsyXScsICcwJyk7CisgICAgc2hvdWxkQmUoJ2ds
LmdldFZlcnRleEF0dHJpYignICsgaWkgKyAnLCBnbC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIpWzNd
JywgJzEnKTsKKworICAgIGdsLnZlcnRleEF0dHJpYjJmdihpaSwgWzEsIDJdKTsKKyAgICBzaG91
bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKCcgKyBpaSArICcsIGdsLkNVUlJFTlRfVkVSVEVYX0FU
VFJJQilbMF0nLCAnMScpOworICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoJyArIGlp
ICsgJywgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKVsxXScsICcyJyk7CisgICAgc2hvdWxkQmUo
J2dsLmdldFZlcnRleEF0dHJpYignICsgaWkgKyAnLCBnbC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIp
WzJdJywgJzAnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKCcgKyBpaSArICcs
IGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJQilbM10nLCAnMScpOworCisgICAgZ2wudmVydGV4QXR0
cmliM2Z2KGlpLCBbMSwgMiwgM10pOworICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIo
JyArIGlpICsgJywgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKVswXScsICcxJyk7CisgICAgc2hv
dWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYignICsgaWkgKyAnLCBnbC5DVVJSRU5UX1ZFUlRFWF9B
VFRSSUIpWzFdJywgJzInKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKCcgKyBp
aSArICcsIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJQilbMl0nLCAnMycpOworICAgIHNob3VsZEJl
KCdnbC5nZXRWZXJ0ZXhBdHRyaWIoJyArIGlpICsgJywgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklC
KVszXScsICcxJyk7CisKKyAgICBnbC52ZXJ0ZXhBdHRyaWI0ZnYoaWksIFsxLCAyLCAzLCA0XSk7
CisgICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYignICsgaWkgKyAnLCBnbC5DVVJSRU5U
X1ZFUlRFWF9BVFRSSUIpWzBdJywgJzEnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0
cmliKCcgKyBpaSArICcsIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJQilbMV0nLCAnMicpOworICAg
IHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoJyArIGlpICsgJywgZ2wuQ1VSUkVOVF9WRVJU
RVhfQVRUUklCKVsyXScsICczJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYign
ICsgaWkgKyAnLCBnbC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIpWzNdJywgJzQnKTsKKworICAgIGds
LnZlcnRleEF0dHJpYjFmKGlpLCA1KTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmli
KCcgKyBpaSArICcsIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJQilbMF0nLCAnNScpOworICAgIHNo
b3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoJyArIGlpICsgJywgZ2wuQ1VSUkVOVF9WRVJURVhf
QVRUUklCKVsxXScsICcwJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYignICsg
aWkgKyAnLCBnbC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIpWzJdJywgJzAnKTsKKyAgICBzaG91bGRC
ZSgnZ2wuZ2V0VmVydGV4QXR0cmliKCcgKyBpaSArICcsIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJ
QilbM10nLCAnMScpOworCisgICAgZ2wudmVydGV4QXR0cmliMmYoaWksIDYsIDcpOworICAgIHNo
b3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoJyArIGlpICsgJywgZ2wuQ1VSUkVOVF9WRVJURVhf
QVRUUklCKVswXScsICc2Jyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYignICsg
aWkgKyAnLCBnbC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIpWzFdJywgJzcnKTsKKyAgICBzaG91bGRC
ZSgnZ2wuZ2V0VmVydGV4QXR0cmliKCcgKyBpaSArICcsIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJ
QilbMl0nLCAnMCcpOworICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoJyArIGlpICsg
JywgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKVszXScsICcxJyk7CisKKyAgICBnbC52ZXJ0ZXhB
dHRyaWIzZihpaSwgNywgOCwgOSk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYign
ICsgaWkgKyAnLCBnbC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIpWzBdJywgJzcnKTsKKyAgICBzaG91
bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKCcgKyBpaSArICcsIGdsLkNVUlJFTlRfVkVSVEVYX0FU
VFJJQilbMV0nLCAnOCcpOworICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoJyArIGlp
ICsgJywgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKVsyXScsICc5Jyk7CisgICAgc2hvdWxkQmUo
J2dsLmdldFZlcnRleEF0dHJpYignICsgaWkgKyAnLCBnbC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIp
WzNdJywgJzEnKTsKKworICAgIGdsLnZlcnRleEF0dHJpYjRmKGlpLCA2LCA3LCA4LCA5KTsKKyAg
ICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKCcgKyBpaSArICcsIGdsLkNVUlJFTlRfVkVS
VEVYX0FUVFJJQilbMF0nLCAnNicpOworICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIo
JyArIGlpICsgJywgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKVsxXScsICc3Jyk7CisgICAgc2hv
dWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYignICsgaWkgKyAnLCBnbC5DVVJSRU5UX1ZFUlRFWF9B
VFRSSUIpWzJdJywgJzgnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKCcgKyBp
aSArICcsIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJQilbM10nLCAnOScpOworICB9CisgIGdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworfQorCitkZWJ1ZygiIik7Cit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4YXR0cmlicG9pbnRlci1vZmZzZXRzLmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9h
dHRyaWJzL2dsLXZlcnRleGF0dHJpYnBvaW50ZXItb2Zmc2V0cy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRl
NjI4MzVkZGI0NDRkMWI4ZDJmZTM1NDk0ZDNlZjRkMDEwY2YzNzkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9hdHRyaWJzL2dsLXZlcnRleGF0dHJpYnBvaW50ZXItb2Zmc2V0cy5odG1sCkBAIC0wLDAgKzEs
MTgyIEBACis8IS0tCisKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hh
cmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUg
YW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxz
IiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRp
bmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5
LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxs
IGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdo
b20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp
Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFs
bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisq
KiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9G
IEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1J
VEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFO
WQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD
VElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9V
VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBP
UiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLS0+CisKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0
aXRsZT52ZXJ0ZXhhdHRyaWJwb2ludGVyIG9mZnNldHMgdGVzdDwvdGl0bGU+CisgICAgPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
Lz4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPiA8L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMi
PiA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9
IjUwIiBoZWlnaHQ9IjUwIj4KK1RoZXJlIGlzIHN1cHBvc2VkIHRvIGJlIGFuIGV4YW1wbGUgZHJh
d2luZyBoZXJlLCBidXQgaXQncyBub3QgaW1wb3J0YW50LgorPC9jYW52YXM+Cis8ZGl2IGlkPSJk
ZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8c2NyaXB0
IGlkPSJ2c2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CisgICAgICAgIGF0dHJpYnV0
ZSB2ZWM0IHZQb3NpdGlvbjsKKyAgICAgICAgdm9pZCBtYWluKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4K
KworICAgIDxzY3JpcHQgaWQ9ImZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgor
ICAgICAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKyAgICAgICAgdW5pZm9ybSB2ZWM0IGNv
bG9yOworICAgICAgICB2b2lkIG1haW4oKQorICAgICAgICB7CisgICAgICAgICAgICBnbF9GcmFn
Q29sb3IgPSBjb2xvcjsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorCisgICAgPHNjcmlwdD4K
KyAgICAgICAgInVzZSBzdHJpY3QiOworICAgICAgICBmdW5jdGlvbiBpbml0KCkKKyAgICAgICAg
eworICAgICAgICAgICAgZGVzY3JpcHRpb24oInRlc3QgdmVydGV4YXR0cmlicG9pbnRlciBvZmZz
ZXRzIHdvcmsiKTsKKworICAgICAgICAgICAgdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOworICAg
ICAgICAgICAgdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIpOworICAgICAg
ICAgICAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbInZzaGFkZXIiLCAiZnNo
YWRlciJdLCBbInZQb3NpdGlvbiJdKTsKKworICAgICAgICAgICAgdmFyIHRlc3RzID0gWworICAg
ICAgICAgICAgICB7IGRhdGE6IG5ldyBGbG9hdDMyQXJyYXkoWyAwLCAxLCAwLCAxLCAwLCAwLCAw
LCAwLCAwIF0pLAorICAgICAgICAgICAgICAgIHR5cGU6IGdsLkZMT0FULAorICAgICAgICAgICAg
ICAgIGNvbXBvbmVudFNpemU6IDQsCisgICAgICAgICAgICAgICAgbm9ybWFsaXplOiBmYWxzZSwK
KyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgeyBkYXRhOiBuZXcgRmxvYXQzMkFycmF5
KFsgMCwgMSwgMCwgMSwgMCwgMCwgMCwgMCwgMCBdKSwKKyAgICAgICAgICAgICAgICB0eXBlOiBn
bC5GTE9BVCwKKyAgICAgICAgICAgICAgICBjb21wb25lbnRTaXplOiA0LAorICAgICAgICAgICAg
ICAgIG5vcm1hbGl6ZTogZmFsc2UsCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIHsg
ZGF0YTogbmV3IFVpbnQxNkFycmF5KFsgMCwgMzI3NjcsIDAsIDMyNzY3LCAwLCAwLCAwLCAwLCAw
IF0pLAorICAgICAgICAgICAgICAgIHR5cGU6IGdsLlNIT1JULAorICAgICAgICAgICAgICAgIGNv
bXBvbmVudFNpemU6IDIsCisgICAgICAgICAgICAgICAgbm9ybWFsaXplOiB0cnVlLAorICAgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgICB7IGRhdGE6IG5ldyBVaW50MTZBcnJheShbIDAsIDY1
NTM1LCAwLCA2NTUzNSwgMCwgMCwgMCwgMCwgMCBdKSwKKyAgICAgICAgICAgICAgICB0eXBlOiBn
bC5VTlNJR05FRF9TSE9SVCwKKyAgICAgICAgICAgICAgICBjb21wb25lbnRTaXplOiAyLAorICAg
ICAgICAgICAgICAgIG5vcm1hbGl6ZTogdHJ1ZSwKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICAgeyBkYXRhOiBuZXcgVWludDE2QXJyYXkoWyAwLCAxLCAwLCAxLCAwLCAwLCAwLCAwLCAw
IF0pLAorICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX1NIT1JULAorICAgICAgICAg
ICAgICAgIGNvbXBvbmVudFNpemU6IDIsCisgICAgICAgICAgICAgICAgbm9ybWFsaXplOiBmYWxz
ZSwKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgeyBkYXRhOiBuZXcgVWludDE2QXJy
YXkoWyAwLCAxLCAwLCAxLCAwLCAwLCAwLCAwLCAwIF0pLAorICAgICAgICAgICAgICAgIHR5cGU6
IGdsLlNIT1JULAorICAgICAgICAgICAgICAgIGNvbXBvbmVudFNpemU6IDIsCisgICAgICAgICAg
ICAgICAgbm9ybWFsaXplOiBmYWxzZSwKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAg
eyBkYXRhOiBuZXcgVWludDhBcnJheShbIDAsIDEyNywgMCwgMTI3LCAwLCAwLCAwLCAwLCAwIF0p
LAorICAgICAgICAgICAgICAgIHR5cGU6IGdsLkJZVEUsCisgICAgICAgICAgICAgICAgY29tcG9u
ZW50U2l6ZTogMSwKKyAgICAgICAgICAgICAgICBub3JtYWxpemU6IHRydWUsCisgICAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAgIHsgZGF0YTogbmV3IFVpbnQ4QXJyYXkoWyAwLCAyNTUsIDAs
IDI1NSwgMCwgMCwgMCwgMCwgMCBdKSwKKyAgICAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05F
RF9CWVRFLAorICAgICAgICAgICAgICAgIGNvbXBvbmVudFNpemU6IDEsCisgICAgICAgICAgICAg
ICAgbm9ybWFsaXplOiB0cnVlLAorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICB7IGRh
dGE6IG5ldyBVaW50OEFycmF5KFsgMCwgMSwgMCwgMSwgMCwgMCwgMCwgMCwgMCBdKSwKKyAgICAg
ICAgICAgICAgICB0eXBlOiBnbC5CWVRFLAorICAgICAgICAgICAgICAgIGNvbXBvbmVudFNpemU6
IDEsCisgICAgICAgICAgICAgICAgbm9ybWFsaXplOiBmYWxzZSwKKyAgICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICAgeyBkYXRhOiBuZXcgVWludDhBcnJheShbIDAsIDEsIDAsIDEsIDAsIDAs
IDAsIDAsIDAgXSksCisgICAgICAgICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwKKyAg
ICAgICAgICAgICAgICBjb21wb25lbnRTaXplOiAxLAorICAgICAgICAgICAgICAgIG5vcm1hbGl6
ZTogZmFsc2UsCisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF07CisKKyAgICAgICAgICAg
IHZhciB2ZXJ0ZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICAgICAgICAgIGdsLmJp
bmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2ZXJ0ZXhPYmplY3QpOworICAgICAgICAgICAgZ2wu
YnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIDEwMjQsIGdsLlNUQVRJQ19EUkFXKTsKKyAgICAg
ICAgICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDApOworCisgICAgICAgICAgICB2YXIg
Y29sb3JMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgImNvbG9yIik7CisgICAg
ICAgICAgICB2YXIga051bVZlcnRzID0gMzsKKyAgICAgICAgICAgIHZhciBrTnVtQ29tcG9uZW50
cyA9IDM7CisKKyAgICAgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAgICAgICAgICBmb3IgKHZh
ciB0dCA9IDA7IHR0IDwgdGVzdHMubGVuZ3RoOyArK3R0KSB7CisgICAgICAgICAgICAgIHZhciB0
ZXN0ID0gdGVzdHNbdHRdOworICAgICAgICAgICAgICBmb3IgKHZhciBvbyA9IDA7IG9vIDwgMzsg
KytvbykgeworICAgICAgICAgICAgICAgIGZvciAodmFyIHNzID0gMDsgc3MgPCAzOyArK3NzKSB7
CisgICAgICAgICAgICAgICAgICB2YXIgb2Zmc2V0ID0gKG9vICsgMSkgKiB0ZXN0LmNvbXBvbmVu
dFNpemU7CisgICAgICAgICAgICAgICAgICB2YXIgY29sb3IgPSAoY291bnQgJSAyKSA/IFsxLCAw
LCAwLCAxXSA6IFswLCAxLCAwLCAxXTsKKyAgICAgICAgICAgICAgICAgIHZhciBzdHJpZGUgPSB0
ZXN0LmNvbXBvbmVudFNpemUgKiBrTnVtQ29tcG9uZW50cyArIHRlc3QuY29tcG9uZW50U2l6ZSAq
IHNzOworICAgICAgICAgICAgICAgICAgZGVidWcoIiIpOworICAgICAgICAgICAgICAgICAgZGVi
dWcoImNoZWNrIHdpdGggIiArIHd0dS5nbEVudW1Ub1N0cmluZyhnbCwgdGVzdC50eXBlKSArICIg
YXQgb2Zmc2V0OiAiICsgb2Zmc2V0ICsgIiB3aXRoIHN0cmlkZToiICsgc3RyaWRlICsgIiBub3Jt
YWxpemU6ICIgKyB0ZXN0Lm5vcm1hbGl6ZSk7CisgICAgICAgICAgICAgICAgICBnbC51bmlmb3Jt
NGZ2KGNvbG9yTG9jLCBjb2xvcik7CisgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBV
aW50OEFycmF5KHRlc3QuY29tcG9uZW50U2l6ZSAqIGtOdW1WZXJ0cyAqIGtOdW1Db21wb25lbnRz
ICsgc3RyaWRlICogKGtOdW1WZXJ0cyAtIDEpKTsKKyAgICAgICAgICAgICAgICAgIHZhciB2aWV3
ID0gbmV3IFVpbnQ4QXJyYXkodGVzdC5kYXRhLmJ1ZmZlcik7CisgICAgICAgICAgICAgICAgICB2
YXIgc2l6ZSA9IHRlc3QuY29tcG9uZW50U2l6ZSAqIGtOdW1Db21wb25lbnRzOworICAgICAgICAg
ICAgICAgICAgZm9yICh2YXIgamogPSAwOyBqaiA8IGtOdW1WZXJ0czsgKytqaikgeworICAgICAg
ICAgICAgICAgICAgICB2YXIgb2ZmMSA9IGpqICogc2l6ZTsKKyAgICAgICAgICAgICAgICAgICAg
dmFyIG9mZjIgPSBqaiAqIHN0cmlkZTsKKyAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgenog
PSAwOyB6eiA8IHNpemU7ICsrenopIHsKKyAgICAgICAgICAgICAgICAgICAgICBkYXRhW29mZjIg
KyB6el0gPSB2aWV3W29mZjEgKyB6el07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIGdsLmJ1ZmZlclN1YkRhdGEoZ2wuQVJSQVlf
QlVGRkVSLCBvZmZzZXQsIGRhdGEpOworICAgICAgICAgICAgICAgICAgZ2wudmVydGV4QXR0cmli
UG9pbnRlcigwLCAzLCB0ZXN0LnR5cGUsIHRlc3Qubm9ybWFsaXplLCBzdHJpZGUsIG9mZnNldCk7
CisgICAgICAgICAgICAgICAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQ
VEhfQlVGRkVSX0JJVCk7CisgICAgICAgICAgICAgICAgICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFO
R0xFUywgMCwgMyk7CisKKyAgICAgICAgICAgICAgICAgIHZhciBidWYgPSBuZXcgVWludDhBcnJh
eSg1MCAqIDUwICogNCk7CisgICAgICAgICAgICAgICAgICBnbC5yZWFkUGl4ZWxzKDAsIDAsIDUw
LCA1MCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsKKworICAgICAgICAgICAgICAg
ICAgdmFyIGJsYWNrID0gWzAsIDAsIDAsIDBdOworICAgICAgICAgICAgICAgICAgdmFyIG90aGVy
ID0gW2NvbG9yWzBdICogMjU1LCBjb2xvclsxXSAqIDI1NSwgY29sb3JbMl0gKiAyNTUsIGNvbG9y
WzNdICogMjU1XTsKKyAgICAgICAgICAgICAgICAgIHZhciBvdGhlck1zZyA9ICJzaG91bGQgYmUg
IiArICgoY291bnQgJSAyKSA/ICJyZWQiIDogImdyZWVuIikKKyAgICAgICAgICAgICAgICAgIHd0
dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIDEsIDEsIGJsYWNrLCAic2hvdWxkIGJlIGJsYWNr
IiwgMCk7CisgICAgICAgICAgICAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCA0OSwg
MSwgMSwgYmxhY2ssICJzaG91bGQgYmUgYmxhY2siLCAwKTsKKyAgICAgICAgICAgICAgICAgIHd0
dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDI2LCA0MCwgMSwgMSwgb3RoZXIsIG90aGVyTXNnLCAwKTsK
KyAgICAgICAgICAgICAgICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDI2LCAyNywgMSwgMSwg
b3RoZXIsIG90aGVyTXNnLCAwKTsKKyAgICAgICAgICAgICAgICAgIHd0dS5jaGVja0NhbnZhc1Jl
Y3QoZ2wsIDQwLCAyNywgMSwgMSwgb3RoZXIsIG90aGVyTXNnLCAwKTsKKyAgICAgICAgICAgICAg
ICAgICsrY291bnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9CisgICAgICAgfQorCisgICAgICAgaW5pdCgpOworICAgICAgIHZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworICAgIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleGF0dHJpYnBvaW50ZXIuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wt
dmVydGV4YXR0cmlicG9pbnRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlYTAyOWRjMjJjZmFiNDlmZTM2
OWE4MzI3NjM2NDAxZTMyNmQ0ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRl
eGF0dHJpYnBvaW50ZXIuaHRtbApAQCAtMCwwICsxLDE1NiBAQAorPCEtLQorCisvKgorKiogQ29w
eXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJtaXNzaW9u
IGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5p
bmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50
YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlh
bHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0YXRpb24g
dGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisqKiBkaXN0
cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywg
YW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5p
c2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgor
KioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90
aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBv
cnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklE
RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJFU1MgT1Ig
SU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgor
KiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg
Tk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09Q
WVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VTIE9SIE9U
SEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisqKiBUT1JU
IE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRI
IFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1B
VEVSSUFMUy4KKyovCisKKy0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgdmVydGV4QXR0cmliUG9pbnRlciBD
b25mb3JtYW5jZSBUZXN0czwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9kZXNrdG9wLWdsLWNvbnN0YW50cy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iMiIgaGVpZ2h0
PSIyIj4gPC9jYW52YXM+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworZGVzY3JpcHRpb24oIlRo
aXMgdGVzdCBjaGVja3MgdmVydGV4QXR0cmliUG9pbnRlciBiZWhhdmlvcnMgaW4gV2ViR0wuIik7
CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJDYW52YXMuZ2V0Q29udGV4dCIpOworCit2YXIgd3R1ID0g
V2ViR0xUZXN0VXRpbHM7Cit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJjYW52YXMiKTsK
K2lmICghZ2wpIHsKKyAgdGVzdEZhaWxlZCgiY29udGV4dCBkb2VzIG5vdCBleGlzdCIpOworfSBl
bHNlIHsKKyAgdGVzdFBhc3NlZCgiY29udGV4dCBleGlzdHMiKTsKKworICBkZWJ1ZygiIik7Cisg
IGRlYnVnKCJDaGVja2luZyBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyLiIpOworCisgIGlmICghZ2wu
RklYRUQpIHsKKyAgICBnbC5GSVhFRCA9IDB4MTQwQzsKKyAgfQorCisgIGdsLnZlcnRleEF0dHJp
YlBvaW50ZXIoMCwgMywgZ2wuRkxPQVQsIDAsIDAsIDEyKTsKKyAgZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5JTlZBTElEX09QRVJBVElPTiwKKyAgICAgICJ2ZXJ0ZXhBdHRyaWJQb2ludGVyIHNob3Vs
ZCBmYWlsIGlmIG5vIGJ1ZmZlciBpcyBib3VuZCIpOworCisgIHZhciB2ZXJ0ZXhPYmplY3QgPSBn
bC5jcmVhdGVCdWZmZXIoKTsKKyAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZlcnRl
eE9iamVjdCk7CisgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBuZXcgRmxvYXQzMkFy
cmF5KDApLCBnbC5TVEFUSUNfRFJBVyk7CisKKyAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAx
LCBnbC5JTlQsIDAsIDAsIDApOworICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfRU5V
TSwKKyAgICAgICJ2ZXJ0ZXhBdHRyaWJQb2ludGVyIHNob3VsZCBub3Qgc3VwcG9ydCBJTlQiKTsK
KyAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAxLCBnbC5VTlNJR05FRF9JTlQsIDAsIDAsIDAp
OworICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfRU5VTSwKKyAgICAgICJ2ZXJ0ZXhB
dHRyaWJQb2ludGVyIHNob3VsZCBub3Qgc3VwcG9ydCBVTlNJR05FRF9JTlQiKTsKKyAgZ2wudmVy
dGV4QXR0cmliUG9pbnRlcigwLCAxLCBnbC5GSVhFRCwgMCwgMCwgMCk7CisgIGdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuSU5WQUxJRF9FTlVNLAorICAgICAgInZlcnRleEF0dHJpYlBvaW50ZXIgc2hv
dWxkIG5vdCBzdXBwb3J0IEZJWEVEIik7CisKKyAgdmFyIGNoZWNrVmVydGV4QXR0cmliUG9pbnRl
ciA9IGZ1bmN0aW9uKAorICAgICAgZ2wsIGVyciwgcmVhc29uLCBzaXplLCB0eXBlLCBub3JtYWxp
emUsIHN0cmlkZSwgb2Zmc2V0KSB7CisgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCBzaXpl
LCB0eXBlLCBub3JtYWxpemUsIHN0cmlkZSwgb2Zmc2V0KTsKKyAgICBnbEVycm9yU2hvdWxkQmUo
Z2wsIGVyciwKKyAgICAgICAgImdsLnZlcnRleEF0dHJpYlBvaW50ZXIoMCwgIiArIHNpemUgKwor
ICAgICAgICAiLCBnbC4iICsgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCB0eXBlKSArCisgICAgICAg
ICIsICIgKyBub3JtYWxpemUgKworICAgICAgICAiLCAiICsgc3RyaWRlICsKKyAgICAgICAgIiwg
IiArIG9mZnNldCArCisgICAgICAgICIpIHNob3VsZCAiICsgKGVyciA9PSBnbC5OT19FUlJPUiA/
ICJzdWNjZWVkICIgOiAiZmFpbCAiKSArIHJlYXNvbik7CisgIH0KKworICB2YXIgdHlwZXMgPSBb
CisgICAgeyB0eXBlOmdsLkJZVEUsICAgICAgICAgICBieXRlc1BlckNvbXBvbmVudDogMSB9LAor
ICAgIHsgdHlwZTpnbC5VTlNJR05FRF9CWVRFLCAgYnl0ZXNQZXJDb21wb25lbnQ6IDEgfSwKKyAg
ICB7IHR5cGU6Z2wuU0hPUlQsICAgICAgICAgIGJ5dGVzUGVyQ29tcG9uZW50OiAyIH0sCisgICAg
eyB0eXBlOmdsLlVOU0lHTkVEX1NIT1JULCBieXRlc1BlckNvbXBvbmVudDogMiB9LAorICAgIHsg
dHlwZTpnbC5GTE9BVCwgICAgICAgICAgYnl0ZXNQZXJDb21wb25lbnQ6IDQgfSwKKyAgXTsKKwor
ICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgdHlwZXMubGVuZ3RoOyArK2lpKSB7CisgICAgdmFyIGlu
Zm8gPSB0eXBlc1tpaV07CisgICAgZGVidWcoIiIpOworICAgIGZvciAodmFyIHNpemUgPSAxOyBz
aXplIDw9IDQ7ICsrc2l6ZSkgeworICAgICAgZGVidWcoIiIpOworICAgICAgZGVidWcoImNoZWNr
aW5nOiAiICsgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCBpbmZvLnR5cGUpICsgIiB3aXRoIHNpemUg
IiArIHNpemUpOworICAgICAgdmFyIGJ5dGVzUGVyRWxlbWVudCA9IHNpemUgKiBpbmZvLmJ5dGVz
UGVyQ29tcG9uZW50OworICAgICAgdmFyIG9mZnNldFNldCA9IFsKKyAgICAgICAgICAwLAorICAg
ICAgICAgIDEsCisgICAgICAgICAgaW5mby5ieXRlc1BlckNvbXBvbmVudCAtIDEsCisgICAgICAg
ICAgaW5mby5ieXRlc1BlckNvbXBvbmVudCwKKyAgICAgICAgICBpbmZvLmJ5dGVzUGVyQ29tcG9u
ZW50ICsgMSwKKyAgICAgICAgICBpbmZvLmJ5dGVzUGVyQ29tcG9uZW50ICogMl07CisgICAgICBm
b3IgKHZhciBqaiA9IDA7IGpqIDwgb2Zmc2V0U2V0Lmxlbmd0aDsgKytqaikgeworICAgICAgICB2
YXIgb2Zmc2V0ID0gb2Zmc2V0U2V0W2pqXTsKKyAgICAgICAgZm9yICh2YXIga2sgPSAwOyBrayA8
IG9mZnNldFNldC5sZW5ndGg7ICsra2spIHsKKyAgICAgICAgICB2YXIgc3RyaWRlID0gb2Zmc2V0
U2V0W2trXTsKKyAgICAgICAgICB2YXIgZXJyID0gZ2wuTk9fRVJST1I7CisgICAgICAgICAgdmFy
IHJlYXNvbiA9ICIiCisgICAgICAgICAgaWYgKG9mZnNldCAlIGluZm8uYnl0ZXNQZXJDb21wb25l
bnQgIT0gMCkgeworICAgICAgICAgICAgcmVhc29uID0gImJlY2F1c2Ugb2Zmc2V0IGlzIGJhZCI7
CisgICAgICAgICAgICBlcnIgPSBnbC5JTlZBTElEX09QRVJBVElPTjsKKyAgICAgICAgICB9Cisg
ICAgICAgICAgaWYgKHN0cmlkZSAlIGluZm8uYnl0ZXNQZXJDb21wb25lbnQgIT0gMCkgeworICAg
ICAgICAgICAgcmVhc29uID0gImJlY2F1c2Ugc3RyaWRlIGlzIGJhZCI7CisgICAgICAgICAgICBl
cnIgPSBnbC5JTlZBTElEX09QRVJBVElPTjsKKyAgICAgICAgICB9CisgICAgICAgICAgY2hlY2tW
ZXJ0ZXhBdHRyaWJQb2ludGVyKAorICAgICAgICAgICAgICBnbCwgZXJyLCByZWFzb24sIHNpemUs
IGluZm8udHlwZSwgZmFsc2UsIHN0cmlkZSwgb2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICB2
YXIgc3RyaWRlID0gTWF0aC5mbG9vcigyNTUgLyBpbmZvLmJ5dGVzUGVyQ29tcG9uZW50KSAqIGlu
Zm8uYnl0ZXNQZXJDb21wb25lbnQ7CisKKyAgICAgICAgaWYgKG9mZnNldCA9PSAwKSB7CisgICAg
ICAgICAgY2hlY2tWZXJ0ZXhBdHRyaWJQb2ludGVyKAorICAgICAgICAgICAgICBnbCwgZ2wuTk9f
RVJST1IsICJhdCBzdHJpZGUgbGltaXQiLAorICAgICAgICAgICAgICBzaXplLCBpbmZvLnR5cGUs
IGZhbHNlLCBzdHJpZGUsIG9mZnNldCk7CisgICAgICAgICAgY2hlY2tWZXJ0ZXhBdHRyaWJQb2lu
dGVyKAorICAgICAgICAgICAgICBnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgIm92ZXIgc3RyaWRlIGxp
bWl0IiwKKyAgICAgICAgICAgICAgc2l6ZSwgaW5mby50eXBlLCBmYWxzZSwKKyAgICAgICAgICAg
ICAgc3RyaWRlICsgaW5mby5ieXRlc1BlckNvbXBvbmVudCwgb2Zmc2V0KTsKKyAgICAgICAgfQor
ICAgICAgfQorICAgIH0KKyAgfQorfQorCitkZWJ1ZygiIik7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJuZXNzLmpz
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3Mu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTZhYmM4OWZmMWYwMTE3OTY5OTg5Mjc5YThhMDM3OGQ0NmE0MDAxMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJraXQtd2Vi
Z2wtdGVzdC1oYXJuZXNzLmpzCkBAIC0wLDAgKzEsNTYgQEAKKyJ1c2Ugc3RyaWN0IjsKKyhmdW5j
dGlvbigpIHsKKyAgdmFyIG51bUZhaWx1cmVzID0gMDsKKworICBpZiAod2luZG93LnRlc3RSdW5u
ZXIgJiYgIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlciA9IHdpbmRvdy50ZXN0UnVubmVyOworICB9CisKKyAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRl
UHJlZmVyZW5jZSgiV2ViS2l0V2ViR0xFbmFibGVkIiwgIjEiKTsKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCkKKwor
ICAgIC8vIFR1cm4gb2ZmIGNvbnNvbGUgbWVzc2FnZXMgYmVjYXVzZSBmb3IgdGhlIFdlYkdMIHRl
c3RzIHRoZXkgYXJlCisgICAgLy8gR1BVIGNhcGFiaWxpdHkgZGVwZW5kZW50LgorICAgIHdpbmRv
dy5jb25zb2xlLmxvZyA9IGZ1bmN0aW9uKCkgeyB9OworICAgIHdpbmRvdy5jb25zb2xlLmVycm9y
ID0gZnVuY3Rpb24oKSB7IH07CisgIH0KKworCisgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Cisg
ICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRXZWJHTEVycm9yc1RvQ29uc29sZUVuYWJs
ZWQoZmFsc2UpOworICB9CisKKyAgdmFyIGxvZyA9IGZ1bmN0aW9uKG1zZywgY29sb3IpIHsKKyAg
ICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZGl2LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1zZykpOworICAgIGlmIChjb2xvcikgewor
ICAgICAgZGl2LnN0eWxlLmNvbG9yID0gY29sb3I7CisgICAgfQorICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJyZXN1bHQiKS5hcHBlbmRDaGlsZChkaXYpOworICB9OworCisgIHdpbmRvdy53
ZWJnbFRlc3RIYXJuZXNzID0geworICAgIHJlcG9ydFJlc3VsdHM6IGZ1bmN0aW9uKHVybCwgc3Vj
Y2VzcywgbXNnKSB7CisgICAgICBpZiAoIXN1Y2Nlc3MpIHsKKyAgICAgICAgKytudW1GYWlsdXJl
czsKKyAgICAgIH0KKyAgICB9LAorCisgICAgbm90aWZ5RmluaXNoZWQ6IGZ1bmN0aW9uKHVybCkg
eworICAgICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZnJhbWUiKTsK
KyAgICAgIGlmcmFtZS5pbm5lckhUTUwgPSAiIjsKKyAgICAgIGlmIChudW1GYWlsdXJlcyA+IDAp
IHsKKyAgICAgICAgbG9nKCJGQUlMIiwgInJlZCIpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAg
bG9nKCJQQVNTIiwgImdyZWVuIik7CisgICAgICB9CisKKyAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpOworICAgICAgfQorICAgIH0sCisgIH0KK30oKSk7CisK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185868</attachid>
            <date>2013-01-31 14:32:31 -0800</date>
            <delta_ts>2014-01-21 11:55:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94643-20130131142914.patch</filename>
            <type>text/plain</type>
            <size>489067</size>
            <attacher name="Gregg Tavares">gman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMjQxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTFjMTZhNzM2NTBmMjFhYTM1NjQ5
MzY2YmM4NzJkNWQ2NGUxZjdlNi4uZjRmMWJhZWI0YzNjZTFlNDlkNGUzOTBkYTdhZTZjNThmM2U3
NmRhZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDEzLTAxLTMxICBHcmVnZyBUYXZhcmVzICA8
Z21hbkBnb29nbGUuY29tPgorCisgICAgICAgIEFkZCBLaHJvbm9zIFdlYkdMIGNvbmZvcm1hbmNl
IHRlc3RzIHRvIExheW91dFRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05NDY0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1kaXNhYmxlZC12ZXJ0
ZXgtYXR0cmliLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFu
Y2UvYXR0cmlicy9nbC1kaXNhYmxlZC12ZXJ0ZXgtYXR0cmliLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtZW5hYmxlLXZlcnRleC1hdHRyaWItZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2ds
LWVuYWJsZS12ZXJ0ZXgtYXR0cmliLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZv
cm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi1yZW5kZXIt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJz
L2dsLXZlcnRleC1hdHRyaWItcmVuZGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2Nv
bmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi16ZXJvLWlzc3Vlcy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4
LWF0dHJpYi16ZXJvLWlzc3Vlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3Jt
YW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
Z2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhh
dHRyaWJwb2ludGVyLW9mZnNldHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJn
bC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleGF0dHJpYnBvaW50ZXItb2Zmc2V0cy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleGF0
dHJpYnBvaW50ZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvZ2VuZXJhdGUtd2ViZ2wt
dGVzdHMucHk6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
czogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsLWV4cGVjdGF0aW9uLXRl
bXBsYXRlLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsLXdyYXBw
ZXItdGVtcGxhdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy8wMF90ZXN0X2xpc3QudHh0OiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9h
dHRyaWJzL2dsLWRpc2FibGVkLXZlcnRleC1hdHRyaWIuaHRtbDogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1l
bmFibGUtdmVydGV4LWF0dHJpYi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWIt
cmVuZGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi16ZXJvLWlzc3Vlcy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWIuaHRtbDogQWRkZWQuCisgICAgICAg
ICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9n
bC12ZXJ0ZXhhdHRyaWJwb2ludGVyLW9mZnNldHMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0
ZXhhdHRyaWJwb2ludGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy8zeDMucG5nOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNv
dXJjZXMvYmx1ZS0xeDEuanBnOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvYm9vbFVuaWZvcm1TaGFkZXIudmVy
dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvcmVzb3VyY2VzL2J1Zy0zMjg4OC10ZXh0dXJlLnBuZzogQWRkZWQuCisgICAgICAg
ICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2Vz
L2Zsb2F0VW5pZm9ybVNoYWRlci52ZXJ0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZnJhZ21lbnRTaGFkZXIu
ZnJhZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvcmVzb3VyY2VzL2dsc2wtY29uZm9ybWFuY2UtdGVzdC5qczogQWRkZWQuCisg
ICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVz
b3VyY2VzL2dsc2wtZmVhdHVyZS10ZXN0cy5jc3M6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9nbHNsLWdlbmVy
YXRvci5qczogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC0yNTYtd2l0aC0xMjgtYWxwaGEucG5n
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLTI1Ni5wbmc6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5
LXJhbXAtZGVmYXVsdC1nYW1tYS5wbmc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2FtbWEw
LjEucG5nOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1hMS4wLnBuZzogQWRkZWQuCisg
ICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVz
b3VyY2VzL2dyYXktcmFtcC1nYW1tYTIuMC5wbmc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAt
Z2FtbWE0LjAucG5nOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1hOS4wLnBuZzogQWRk
ZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvcmVzb3VyY2VzL2dyYXktcmFtcC5wbmc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmVlbi0yeDItMTZi
aXQucG5nOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvaW50QXJyYXlVbmlmb3JtU2hhZGVyLnZlcnQ6IEFkZGVk
LgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3Jlc291cmNlcy9pbnRVbmlmb3JtU2hhZGVyLnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9tYXRVbmlm
b3JtU2hhZGVyLnZlcnQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ub29wVW5pZm9ybVNoYWRlci5mcmFnOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9yZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFkZXIudmVydDogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL25w
b3QtdmlkZW8ubXA0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvbnBvdC12aWRlby50aGVvcmEub2d2OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9yZXNvdXJjZXMvbnBvdC12aWRlby53ZWJtdnA4LndlYm06IEFkZGVkLgorICAgICAgICAqIHdl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9vZ2xl
cy10ZXN0cy5jc3M6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9wbmdsaWIuanM6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9y
ZWQtZ3JlZW4ubXA0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvcmVkLWdyZWVuLnBuZzogQWRkZWQuCisgICAg
ICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3Vy
Y2VzL3JlZC1ncmVlbi50aGVvcmEub2d2OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvcmVkLWdyZWVuLndlYm12
cDgud2VibTogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3JlZC1pbmRleGVkLnBuZzogQWRkZWQuCisgICAgICAg
ICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2Vz
L3NhbXBsZXJVbmlmb3JtU2hhZGVyLmZyYWc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUt
d2l0aC1jaWUtcmdiLXByb2ZpbGUucG5nOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdp
dGgtY29sb3JtYXRjaC1wcm9maWxlLnBuZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13
aXRoLWNvbG9yc3Bpbi1wcm9maWxlLmpwZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13
aXRoLWNvbG9yc3Bpbi1wcm9maWxlLnBuZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13
aXRoLWUtc3JnYi1wcm9maWxlLnBuZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRo
LXNtcHRlLWMtcHJvZmlsZS5wbmc6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0aC1z
cmdiLWllYzYxOTY2LTIuMS1wcm9maWxlLnBuZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3N0cnVjdFVuaWZv
cm1TaGFkZXIudmVydDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJk
LXdpdGgtY2FudmFzLmpzOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1hZ2Ut
MmQtd2l0aC1pbWFnZS1kYXRhLmpzOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC1pbWFnZS5qczogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3Vi
LWltYWdlLTJkLXdpdGgtdmlkZW8uanM6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy92ZXJ0ZXhTaGFkZXIudmVy
dDogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanM6IEFkZGVkLgorICAgICAgICAq
IHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy93
ZWJnbC10ZXN0LmpzOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvemVyby1hbHBoYS5wbmc6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9kZXNrdG9w
LWdsLWNvbnN0YW50cy5qczogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qczogQWRkZWQuCisgICAgICAgICog
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3M6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy90ZXN0LWV2YWwuanM6IEFkZGVkLgorICAgICAg
ICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy93ZWJnbC1sb2dv
LnBuZzogQWRkZWQuCisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
cmVzb3VyY2VzL3dlYmdsLXRlc3QtaGFybmVzcy5qczogQWRkZWQuCisgICAgICAgICogd2ViZ2wv
cmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanM6IEFkZGVkLgorCiAyMDEzLTAx
LTMwICBEb21pbmlrIFLDtnR0c2NoZXMgIDxkb21pbmlrLnJvdHRzY2hlc0BpbnRlbC5jb20+CiAK
ICAgICAgICAgW0VGTF0gVW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDA2ZTc2YjJmNWM1MzUxOTQxNzlmMjEyMmM3OGU1
ZDVjMzdiYWVlMmMuLjY0ODQzN2M4NGJhNGJiOTZkODZlYWM1MDBkYzU2OGZhNDQwYzk3M2IgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMjE3LDYgKzEy
MTcsOSBAQCB3ZWJraXQub3JnL2IvNjc0MzQgWyBEZWJ1ZyBdIGZhc3QvYmxvY2svZmxvYXQvb3Zl
cmhhbmdpbmctdGFsbC1ibG9jay5odG1sIFsgU2tpcAogIyBNb3VudGFpbiBMaW9uIGFuZCBwcmlv
ciBkbyBub3Qgc3VwcG9ydCBjdXN0b20gbWVkaWEgZGF0YSBsb2FkaW5nCiBCdWcoamVybm9ibGUp
IFsgTW91bnRhaW5MaW9uIExpb24gU25vd0xlb3BhcmQgXSBtZWRpYS92aWRlby1zcmMtYmxvYi5o
dG1sCiAKKyMgV2ViR0wgQ29uZm9ybWFuY2UgVGVzdHMKK3dlYmtpdC5vcmcvYi8wMDAwMDAgd2Vi
Z2wvY29uZm9ybWFuY2UvY29udGV4dC9jb250ZXh0LWNyZWF0aW9uLWFuZC1kZXN0cnVjdGlvbi5o
dG1sIFsgU2tpcCBdCisKICMgTW91bnRhaW4gTGlvbiBhbmQgcHJpb3IgZG8gbm90IGFsbG93IGFj
Y2VzcyB0byBpbi1iYW5kIHRleHQgdHJhY2tzCiB3ZWJraXQub3JnL2IvMTAzNjYzIFsgTW91bnRh
aW5MaW9uIExpb24gU25vd0xlb3BhcmQgXSBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLmh0bWwK
IHdlYmtpdC5vcmcvYi8xMDM2NjMgWyBNb3VudGFpbkxpb24gTGlvbiBTbm93TGVvcGFyZCBdIG1l
ZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtY3Vlcy1hZGRlZC1vbmNlLmh0bWwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtZGlzYWJsZWQtdmVydGV4
LWF0dHJpYi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9hdHRy
aWJzL2dsLWRpc2FibGVkLXZlcnRleC1hdHRyaWItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3
YjAyYjQ5YWQyYzdlMWYwMTU2NDhmODQ2YTI1ZTc3MTUyMGFiYzkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLWRpc2FibGVkLXZlcnRl
eC1hdHRyaWItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuCisKK1Rlc3Q6IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL2F0dHJpYnMvZ2wtZGlzYWJsZWQtdmVydGV4LWF0dHJpYi5odG1sCitQQVNTCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtZGlzYWJsZWQt
dmVydGV4LWF0dHJpYi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmli
cy9nbC1kaXNhYmxlZC12ZXJ0ZXgtYXR0cmliLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWJlZWJmMzA4YmJm
OGM4MTYxMzg0MmNmYWU4ZDIwN2Y4NWRkZDlhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtZGlzYWJsZWQtdmVydGV4LWF0dHJpYi5o
dG1sCkBAIC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBDb25mb3JtYW5jZSBUZXN0IFdyYXBw
ZXIgZm9yIGdsLWRpc2FibGVkLXZlcnRleC1hdHRyaWIuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4g
YW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIu
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLWRp
c2FibGVkLXZlcnRleC1hdHRyaWIuaHRtbCI+Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1kaXNhYmxlZC12ZXJ0ZXgtYXR0cmliLmh0bWw8L2E+
Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2ds
LWRpc2FibGVkLXZlcnRleC1hdHRyaWIuaHRtbCIgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwv
aWZyYW1lPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLWVuYWJsZS12ZXJ0ZXgtYXR0cmliLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtZW5hYmxl
LXZlcnRleC1hdHRyaWItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmZGIyM2JiZDFmMzQzMjk0
ZGIyMjk2NGNkNTFkY2NkMmNkOGQxMDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLWVuYWJsZS12ZXJ0ZXgtYXR0cmliLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3Rl
ZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAu
Li8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLWVu
YWJsZS12ZXJ0ZXgtYXR0cmliLmh0bWwKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1lbmFibGUtdmVydGV4LWF0dHJpYi5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1lbmFibGUtdmVydGV4LWF0
dHJpYi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkZGJiMmQwYjI5NWM0NzYxZDM4Y2Y5MTI1ZTg1NzQwNmQw
NWIwOWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9h
dHRyaWJzL2dsLWVuYWJsZS12ZXJ0ZXgtYXR0cmliLmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRp
dGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgZ2wtZW5hYmxlLXZlcnRleC1h
dHRyaWIuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0
aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mg
b3IgRkFJTC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLWVuYWJsZS12ZXJ0ZXgtYXR0cmliLmh0bWwiPi4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtZW5h
YmxlLXZlcnRleC1hdHRyaWIuaHRtbDwvYT4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8ZGl2
IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtZW5hYmxlLXZlcnRleC1hdHRyaWIuaHRtbCIgd2lk
dGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZl
cnRleC1hdHRyaWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2Uv
YXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzUyNDky
NmE0N2FkMDFiZWJhYzk3MTZmMzI0NDc4ZWZjYmIzMWI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxp
c3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0
OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2ds
LXZlcnRleC1hdHRyaWIuaHRtbAorUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWItcmVuZGVyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJp
Yi1yZW5kZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4MzA2YWU3MTg3MjRjNzNkY2RmZGYy
MDg0MTg4N2Y3YzJlNmNlMjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9j
b25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWItcmVuZGVyLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxv
dyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1h
dHRyaWItcmVuZGVyLmh0bWwKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
Y29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLXJlbmRlci5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLXJlbmRlci5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjk3OTI0OTVmMjMwMWVkYzFmZmY0N2YwNmEwMWM0ODJiZWQ5MGUzZTcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJz
L2dsLXZlcnRleC1hdHRyaWItcmVuZGVyLmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldl
YkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgZ2wtdmVydGV4LWF0dHJpYi1yZW5kZXIu
aHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2Vi
R0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJ
TC48L3A+CitUZXN0OiA8YSBocmVmPSIuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWItcmVuZGVyLmh0bWwiPi4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0
dHJpYi1yZW5kZXIuaHRtbDwvYT4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8ZGl2IGlkPSJp
ZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi1yZW5kZXIuaHRtbCIgd2lkdGg9Ijgw
MCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1h
dHRyaWItemVyby1pc3N1ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9y
bWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLXplcm8taXNzdWVzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mYThlYWU1ZDk1ZTgyMmVlZWQ2MDJhOTI3NjA2ODg1YzMxYTM2MWEyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12
ZXJ0ZXgtYXR0cmliLXplcm8taXNzdWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1Ro
aXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5k
IHJlcG9ydHMgUEFTUyBvciBGQUlMLgorCitUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWItemVyby1pc3N1ZXMu
aHRtbAorUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9h
dHRyaWJzL2dsLXZlcnRleC1hdHRyaWItemVyby1pc3N1ZXMuaHRtbCBiL0xheW91dFRlc3RzL3dl
YmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi16ZXJvLWlzc3Vlcy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmE2OThjODc2ZjY3YjU4MjEzYzI0MGMxYzdmNDM4MWNmMDE5OWEwOTEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2ds
LXZlcnRleC1hdHRyaWItemVyby1pc3N1ZXMuaHRtbApAQCAtMCwwICsxLDE3IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciBnbC12ZXJ0ZXgtYXR0cmliLXplcm8t
aXNzdWVzLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1o
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMg
dGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNT
IG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLXplcm8taXNzdWVzLmh0
bWwiPi4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMv
Z2wtdmVydGV4LWF0dHJpYi16ZXJvLWlzc3Vlcy5odG1sPC9hPgorPGRpdiBpZD0icmVzdWx0Ij48
L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLXplcm8t
aXNzdWVzLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFu
Y2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25m
b3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjZlM2M4
NDFhMzZiMDJjOTA5ODYzZmRjZTk3OGFhZTkxZDU2YWViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLmh0bWwK
QEAgLTAsMCArMSwxNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBm
b3IgZ2wtdmVydGV4LWF0dHJpYi5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9yZXNvdXJjZXMvd2Via2l0
LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRo
aXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5k
IHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi5o
dG1sIj4uLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJz
L2dsLXZlcnRleC1hdHRyaWIuaHRtbDwvYT4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8ZGl2
IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi5odG1sIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4YXR0
cmlicG9pbnRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9h
dHRyaWJzL2dsLXZlcnRleGF0dHJpYnBvaW50ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3
YzliYWI5YmZhMDNjMzJiMTJlOGQyYTViZDkwZTBiNDhkOTYyNTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleGF0dHJpYnBv
aW50ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IHJ1bnMgdGhlIFdl
YkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZB
SUwuCisKK1Rlc3Q6IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L2F0dHJpYnMvZ2wtdmVydGV4YXR0cmlicG9pbnRlci5odG1sCitQQVNTCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4YXR0cmlicG9p
bnRlci1vZmZzZXRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNl
L2F0dHJpYnMvZ2wtdmVydGV4YXR0cmlicG9pbnRlci1vZmZzZXRzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wOTI5MmI4MDJmMDFkMjhlMjFhNWNmZmEwMTE2N2I0MGE2Y2E3YmYwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0
ZXhhdHRyaWJwb2ludGVyLW9mZnNldHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4YXR0cmlicG9pbnRlci1vZmZzZXRz
Lmh0bWwKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2Uv
YXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLW9mZnNldHMuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4YXR0cmlicG9pbnRlci1vZmZzZXRz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2UxYmYzNjAzMGU1MjZlNTBmMDM4MDBjZDM3NTQ4Y2MxZTc4YTYx
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2F0dHJp
YnMvZ2wtdmVydGV4YXR0cmlicG9pbnRlci1vZmZzZXRzLmh0bWwKQEAgLTAsMCArMSwxNyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgZ2wtdmVydGV4YXR0cmli
cG9pbnRlci1vZmZzZXRzLmh0bWw8L3RpdGxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2Vi
Z2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0
ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVw
b3J0cyBQQVNTIG9yIEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVy
LW9mZnNldHMuaHRtbCI+Li4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLW9mZnNldHMuaHRtbDwvYT4KKzxkaXYg
aWQ9InJlc3VsdCI+PC9kaXY+Cis8ZGl2IGlkPSJpZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4u
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4
YXR0cmlicG9pbnRlci1vZmZzZXRzLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lm
cmFtZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleGF0dHJpYnBvaW50
ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kYzdlY2MyMzI5YTViYWFiMGVkMzYxOWY4ZTI1OWJmZmU0YzQx
MmIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvYXR0
cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgZ2wtdmVydGV4YXR0cmlicG9pbnRl
ci5odG1sPC90aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi9yZXNvdXJjZXMvd2Via2l0LXdlYmdsLXRlc3QtaGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBydW5zIHRoZSBX
ZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBG
QUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4YXR0cmlicG9pbnRlci5odG1sIj4uLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleGF0
dHJpYnBvaW50ZXIuaHRtbDwvYT4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8ZGl2IGlkPSJp
ZnJhbWUiPgorPGlmcmFtZSBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4YXR0cmlicG9pbnRlci5odG1sIiB3aWR0aD0iODAw
IiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL2dlbmVyYXRlLXdlYmdsLXRlc3RzLnB5IGIvTGF5b3V0
VGVzdHMvd2ViZ2wvZ2VuZXJhdGUtd2ViZ2wtdGVzdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTRjYWI5MWM3
ODNlNjNkOTBlNjI3ZGY1NjQxODRkYThhNDljMzA2OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL2dlbmVyYXRlLXdlYmdsLXRlc3RzLnB5CkBAIC0wLDAgKzEsMjI2IEBACisj
IS91c3IvYmluL3B5dGhvbgorCisiIiJnZW5lcmF0ZXMgd2ViZ2wgbGF5b3V0IHRlc3RzIGZyb20g
dGhlIEtocm9ub3MgV2ViR0wgQ29uZm9ybWFuY2UgVGVzdHMiIiIKKworaW1wb3J0IGNvcHkKK2lt
cG9ydCBvcworaW1wb3J0IG9zLnBhdGgKK2ltcG9ydCBzeXMKK2ltcG9ydCByZQoraW1wb3J0IGpz
b24KK2ltcG9ydCBzaHV0aWwKK2Zyb20gb3B0cGFyc2UgaW1wb3J0IE9wdGlvblBhcnNlcgorCitp
ZiBzeXMudmVyc2lvbiA8ICcyLjYnOgorICBwcmludCAnV3JvbmcgUHl0aG9uIFZlcnNpb24gISEh
OiBOZWVkID49IDIuNicKKyAgc3lzLmV4aXQoMSkKKworCitHTE9CQUxfT1BUSU9OUyA9IHsKKyAg
IyB2ZXJzaW9uIHVzZS4gVGVzdHMgYXQgb3IgYmVsb3cgdGhpcyB3aWxsIGJlIGluY2x1ZGVkLgor
ICAidmVyc2lvbiI6ICIxLjAuMiIsCisKKyAgIyB2ZXJzaW9uIHVzZWQgZm9yIHVubGFibGVkIHRl
c3RzCisgICJkZWZhdWx0LXZlcnNpb24iOiAiMS4wIiwKKworICAjIElmIHNldCwgdGhlIHZlcnNp
b24gd2UgcmVxdWlyZS4gVGVzdHMgYmVsb3cgdGhpcyB3aWxsIGJlIGlnbm9yZWQuCisgICMibWlu
LXZlcnNpb24iOiAiMS4wLjIiLAorfQorCisKK2RlZiBSZWFkRmlsZShmaWxlbmFtZSk6CisgICIi
IlJlYWRzIGEgZmlsZSBhcyBhIHN0cmluZyIiIgorICBmaWxlID0gb3BlbihmaWxlbmFtZSwgInIi
KQorICBkYXRhID0gZmlsZS5yZWFkKCkKKyAgZmlsZS5jbG9zZSgpCisgIHJldHVybiBkYXRhCisK
KworZGVmIFdyaXRlRmlsZShmaWxlbmFtZSwgZGF0YSk6CisgICIiIldyaXRlcyBhIHN0cmluZyBh
cyBhIGZpbGUiIiIKKyAgcHJpbnQgIldyaXRpbmc6ICIsIGZpbGVuYW1lCisgIGRpcm5hbWUgPSBv
cy5wYXRoLmRpcm5hbWUoZmlsZW5hbWUpCisgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhkaXJuYW1l
KToKKyAgICBvcy5tYWtlZGlycyhkaXJuYW1lKQorICBmaWxlID0gb3BlbihmaWxlbmFtZSwgIndi
IikKKyAgZmlsZS53cml0ZShkYXRhKQorICBmaWxlLmNsb3NlKCkKKworCitkZWYgQ29weVRyZWUo
c3JjLCBkc3QsIGlnbm9yZT1Ob25lKToKKyAgIiIiUmVjdXJzaXZlbHkgY29weSBhIGRpcmVjdG9y
eSB0cmVlIiIiCisgIG5hbWVzID0gb3MubGlzdGRpcihzcmMpCisgIGlmIGlnbm9yZSBpcyBub3Qg
Tm9uZToKKyAgICBpZ25vcmVkX25hbWVzID0gaWdub3JlKHNyYywgbmFtZXMpCisgIGVsc2U6Cisg
ICAgaWdub3JlZF9uYW1lcyA9IHNldCgpCisKKyAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGRzdCk6
CisgICAgb3MubWFrZWRpcnMoZHN0KQorICBlcnJvcnMgPSBbXQorICBmb3IgbmFtZSBpbiBuYW1l
czoKKyAgICBpZiBuYW1lIGluIGlnbm9yZWRfbmFtZXM6CisgICAgICBjb250aW51ZQorICAgIHNy
Y25hbWUgPSBvcy5wYXRoLmpvaW4oc3JjLCBuYW1lKQorICAgIGRzdG5hbWUgPSBvcy5wYXRoLmpv
aW4oZHN0LCBuYW1lKQorICAgIHRyeToKKyAgICAgIGlmIG9zLnBhdGguaXNkaXIoc3JjbmFtZSk6
CisgICAgICAgIENvcHlUcmVlKHNyY25hbWUsIGRzdG5hbWUsIGlnbm9yZSkKKyAgICAgIGVsc2U6
CisgICAgICAgICMgV2lsbCByYWlzZSBhIFNwZWNpYWxGaWxlRXJyb3IgZm9yIHVuc3VwcG9ydGVk
IGZpbGUgdHlwZXMKKyAgICAgICAgc2h1dGlsLmNvcHlmaWxlKHNyY25hbWUsIGRzdG5hbWUpCisg
ICAgIyBjYXRjaCB0aGUgRXJyb3IgZnJvbSB0aGUgcmVjdXJzaXZlIGNvcHl0cmVlIHNvIHRoYXQg
d2UgY2FuCisgICAgIyBjb250aW51ZSB3aXRoIG90aGVyIGZpbGVzCisgICAgZXhjZXB0IEVycm9y
LCBlcnI6CisgICAgICBlcnJvcnMuZXh0ZW5kKGVyci5hcmdzWzBdKQorICAgIGV4Y2VwdCBFbnZp
cm9ubWVudEVycm9yLCB3aHk6CisgICAgICBlcnJvcnMuYXBwZW5kKChzcmNuYW1lLCBkc3RuYW1l
LCBzdHIod2h5KSkpCisgIGlmIGVycm9yczoKKyAgICByYWlzZSBFcnJvciwgZXJyb3JzCisKKwor
ZGVmIEZpbGVSZWFkZXIoZmlsZW5hbWUpOgorICAiIiJBIEZpbGUgZ2VuZXJhdG9yIHRoYXQgcmV0
dXJucyBvbmx5IG5vbiBlbXB0eSwgbm9uIGNvbW1lbnQgbGluZXMiIiIKKyAgZmlsZSA9IG9wZW4o
ZmlsZW5hbWUsICJyIikKKyAgbGluZXMgPSBmaWxlLnJlYWRsaW5lcygpCisgIGZpbGUuY2xvc2Uo
KQorICBmb3IgbGluZV9udW1iZXIsIGxpbmUgaW4gZW51bWVyYXRlKGxpbmVzKToKKyAgICBsaW5l
ID0gbGluZS5zdHJpcCgpCisgICAgaWYgKGxlbihsaW5lKSA+IDAgYW5kCisgICAgICAgIG5vdCBs
aW5lLnN0YXJ0c3dpdGgoIiMiKSBhbmQKKyAgICAgICAgbm90IGxpbmUuc3RhcnRzd2l0aCgiOyIp
IGFuZAorICAgICAgICBub3QgbGluZS5zdGFydHN3aXRoKCIvLyIpKToKKyAgICAgIHlpZWxkIGxp
bmVfbnVtYmVyICsgMSwgbGluZQorCisKK2RlZiBHcmVhdGVyVGhhbk9yRXF1YWxUb1ZlcnNpb24o
aGF2ZSwgd2FudCk6CisgICIiIkNvbXBhcmVzIHRvIHZlcnNpb24gc3RyaW5ncyIiIgorICBoYXZl
ID0gaGF2ZS5zcGxpdCgiICIpWzBdLnNwbGl0KCIuIikKKyAgd2FudCA9IHdhbnQuc3BsaXQoIiAi
KVswXS5zcGxpdCgiLiIpCisgIGZvciBuZHgsIHdhbnRfc3RyIGluIGVudW1lcmF0ZSh3YW50KToK
KyAgICB3YW50X251bSA9IGludCh3YW50X3N0cikKKyAgICBoYXZlX251bSA9IDAKKyAgICBpZiBu
ZHggPCBsZW4oaGF2ZSk6CisgICAgICBoYXZlX251bSA9IGludChoYXZlW25keF0pCisgICAgaWYg
aGF2ZV9udW0gPCB3YW50X251bToKKyAgICAgIHJldHVybiBGYWxzZQorICByZXR1cm4gVHJ1ZQor
CisKK2RlZiBHZXRUZXN0TGlzdChsaXN0X2ZpbGVuYW1lLCBkZXN0X2RpciwgaGllcmFyY2hpY2Fs
X29wdGlvbnMpOgorICBnbG9iYWwgR0xPQkFMX09QVElPTlMKKyAgdGVzdHMgPSBbXQorICBwcmVm
aXggPSBvcy5wYXRoLmRpcm5hbWUobGlzdF9maWxlbmFtZSkKKyAgZm9yIGxpbmVfbnVtYmVyLCBs
aW5lIGluIEZpbGVSZWFkZXIobGlzdF9maWxlbmFtZSk6CisgICAgYXJncyA9IGxpbmUuc3BsaXQo
KQorICAgIHRlc3Rfb3B0aW9ucyA9IHt9CisgICAgbm9uX29wdGlvbnMgPSBbXQorICAgIHVzZV90
ZXN0ID0gVHJ1ZQorICAgIHdoaWxlIGxlbihhcmdzKToKKyAgICAgIGFyZyA9IGFyZ3MucG9wKDAp
CisgICAgICBpZiBhcmcuc3RhcnRzd2l0aCgiLSIpOgorICAgICAgICBpZiBub3QgYXJnLnN0YXJ0
c3dpdGgoIi0tIik6CisgICAgICAgICAgcmFpc2UgIiVzOiVkIGJhZCBvcHRpb24iICUgKGxpc3Rf
ZmlsZW5hbWUsIGxpbmVfbnVtYmVyKQorICAgICAgICBvcHRpb24gPSBhcmdbMjpdCisgICAgICAg
IGlmIG9wdGlvbiA9PSAnc2xvdyc6CisgICAgICAgICAgcGFzcworICAgICAgICBlbGlmIG9wdGlv
biA9PSAnbWluLXZlcnNpb24nOgorICAgICAgICAgIHRlc3Rfb3B0aW9uc1tvcHRpb25dID0gYXJn
cy5wb3AoMCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICByYWlzZSAiJXM6JWQgdW5rbm93biBv
cHRpb24gJyVzJyIgJSAobGlzdF9maWxlbmFtZSwgbGluZV9udW1iZXIsIGFyZykKKyAgICAgIGVs
c2U6CisgICAgICAgIG5vbl9vcHRpb25zLmFwcGVuZChhcmcpCisgICAgdXJsID0gb3MucGF0aC5q
b2luKHByZWZpeCwgIiAiLmpvaW4obm9uX29wdGlvbnMpKQorCisgICAgaWYgbm90IHVybC5lbmRz
d2l0aCgiLnR4dCIpOgorICAgICAgaWYgIm1pbi12ZXJzaW9uIiBpbiB0ZXN0X29wdGlvbnM6Cisg
ICAgICAgIG1pbl92ZXJzaW9uID0gdGVzdF9vcHRpb25zWyJtaW4tdmVyc2lvbiJdCisgICAgICBl
bHNlOgorICAgICAgICBtaW5fdmVyc2lvbiA9IGhpZXJhcmNoaWNhbF9vcHRpb25zWyJkZWZhdWx0
LXZlcnNpb24iXQorCisgICAgICBpZiAibWluLXZlcnNpb24iIGluIEdMT0JBTF9PUFRJT05TOgor
ICAgICAgICB1c2VfdGVzdCA9IEdyZWF0ZXJUaGFuT3JFcXVhbFRvVmVyc2lvbihtaW5fdmVyc2lv
biwgR0xPQkFMX09QVElPTlNbIm1pbi12ZXJzaW9uIl0pCisgICAgICBlbHNlOgorICAgICAgICB1
c2VfdGVzdCA9IEdyZWF0ZXJUaGFuT3JFcXVhbFRvVmVyc2lvbihHTE9CQUxfT1BUSU9OU1sidmVy
c2lvbiJdLCBtaW5fdmVyc2lvbikKKworICAgIGlmIG5vdCB1c2VfdGVzdDoKKyAgICAgIGNvbnRp
bnVlCisKKyAgICBpZiB1cmwuZW5kc3dpdGgoIi50eHQiKToKKyAgICAgIGlmICJtaW4tdmVyc2lv
biIgaW4gdGVzdF9vcHRpb25zOgorICAgICAgICBoaWVyYXJjaGljYWxfb3B0aW9uc1siZGVmYXVs
dC12ZXJzaW9uIl0gPSB0ZXN0X29wdGlvbnNbIm1pbi12ZXJzaW9uIl0KKyAgICAgIHRlc3RzID0g
dGVzdHMgKyBHZXRUZXN0TGlzdCgKKyAgICAgICAgICBvcy5wYXRoLmpvaW4ocHJlZml4LCB1cmwp
LCBkZXN0X2RpciwgY29weS5jb3B5KGhpZXJhcmNoaWNhbF9vcHRpb25zKSkKKyAgICBlbHNlOgor
ICAgICAgdGVzdHMuYXBwZW5kKHsidXJsIjogdXJsfSkKKyAgcmV0dXJuIHRlc3RzCisKKworZGVm
IG1haW4oYXJndik6CisgICIiIlRoaXMgaXMgdGhlIG1haW4gZnVuY3Rpb24uIiIiCisgIGdsb2Jh
bCBHTE9CQUxfT1BUSU9OUworCisgIHBhcnNlciA9IE9wdGlvblBhcnNlcigpCisgIHBhcnNlci5h
ZGRfb3B0aW9uKAorICAgICAgIi12IiwgIi0tdmVyYm9zZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIs
CisgICAgICBoZWxwPSJwcmludHMgbW9yZSBvdXRwdXQuIikKKyAgcGFyc2VyLmFkZF9vcHRpb24o
CisgICAgICAiLXciLCAiLS13ZWJnbC1jb25mb3JtYW5jZS10ZXN0IiwgZGVzdD0ic291cmNlX2Rp
ciIsCisgICAgICBoZWxwPSJwYXRoIHRvIHdlYmdsIGNvbmZvcm1hbmNlIHRlc3RzLiBSRVFVSVJF
RCIpCisgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgIi1uIiwgIi0tbm8tY29weSIsIGFjdGlv
bj0ic3RvcmVfdHJ1ZSIsCisgICAgICBoZWxwPSJkbyBub3QgY29weSB0ZXN0cyIpCisgIHBhcnNl
ci5hZGRfb3B0aW9uKAorICAgICAgIi1lIiwgIi0tZ2VuZXJhdGUtZXhwZWN0YXRpb25zIiwgYWN0
aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgIGhlbHA9ImdlbmVyYXRldCB0aGUgdGVzdCBleHBlY3Rh
dGlvbnMiKQorCisgIChvcHRpb25zLCBhcmdzKSA9IHBhcnNlci5wYXJzZV9hcmdzKGFyZ3M9YXJn
dikKKworICBpZiBub3Qgb3B0aW9ucy5zb3VyY2VfZGlyOgorICAgIHBhcnNlci5wcmludF9oZWxw
KCkKKyAgICByZXR1cm4gMQorCisgIG9zLmNoZGlyKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykg
b3IgJy4nKQorCisgIHNvdXJjZV9kaXIgPSBvcHRpb25zLnNvdXJjZV9kaXI7CisgIHdlYmdsX3Rl
c3RzX2RpciA9ICJyZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcyIKKyAgYmFzZV9wYXRoID0gIi4i
CisKKyAgIyBjb3B5IGFsbCB0aGUgZmlsZXMgZnJvbSB0aGUgV2ViR0wgY29uZm9ybWFuY2UgdGVz
dHMuCisgIGlmIG5vdCBvcHRpb25zLm5vX2NvcHk6CisgICAgQ29weVRyZWUoCisgICAgICAgIHNv
dXJjZV9kaXIsIHdlYmdsX3Rlc3RzX2Rpciwgc2h1dGlsLmlnbm9yZV9wYXR0ZXJucygKKyAgICAg
ICAgICAgICcuZ2l0JywgJyoucHljJywgJ3RtcConKSkKKworICB0ZXN0X3RlbXBsYXRlID0gUmVh
ZEZpbGUoInJlc291cmNlcy93ZWJnbC13cmFwcGVyLXRlbXBsYXRlLmh0bWwiKQorICBleHBlY3Rh
dGlvbl90ZW1wbGF0ZSA9IFJlYWRGaWxlKCJyZXNvdXJjZXMvd2ViZ2wtZXhwZWN0YXRpb24tdGVt
cGxhdGUudHh0IikKKworICAjIGdlbmVyYXRlIHdyYXBwZXJzIGZvciBhbGwgdGhlIHRlc3RzCisg
IHRlc3RzID0gR2V0VGVzdExpc3Qob3MucGF0aC5qb2luKHNvdXJjZV9kaXIsICIwMF90ZXN0X2xp
c3QudHh0IiksICIuIiwKKyAgICAgICAgICAgICAgICAgICAgICBjb3B5LmNvcHkoR0xPQkFMX09Q
VElPTlMpKQorCisgIGZvciB0ZXN0IGluIHRlc3RzOgorICAgIHVybCA9IG9zLnBhdGgucmVscGF0
aCh0ZXN0WyJ1cmwiXSwgc291cmNlX2RpcikKKyAgICBkc3QgPSB1cmwKKyAgICBkc3RfZGlyID0g
b3MucGF0aC5kaXJuYW1lKGRzdCkKKyAgICBzcmMgPSBvcy5wYXRoLnJlbHBhdGgob3MucGF0aC5q
b2luKHdlYmdsX3Rlc3RzX2RpciwgdXJsKSwgZHN0X2RpcikucmVwbGFjZSgiXFwiLCAiLyIpCisg
ICAgYmFzZV91cmwgPSBvcy5wYXRoLnJlbHBhdGgoYmFzZV9wYXRoLCBkc3RfZGlyKS5yZXBsYWNl
KCJcXCIsICIvIikKKyAgICBzdWJzID0geworICAgICAgInVybCI6IHNyYywKKyAgICAgICJ1cmxf
bmFtZSI6IG9zLnBhdGguYmFzZW5hbWUodXJsKSwKKyAgICAgICJiYXNlX3VybCI6IGJhc2VfdXJs
LAorICAgIH0KKyAgICBXcml0ZUZpbGUoZHN0LCB0ZXN0X3RlbXBsYXRlICUgc3VicykKKyAgICBp
ZiBvcHRpb25zLmdlbmVyYXRlX2V4cGVjdGF0aW9uczoKKyAgICAgIGV4cGVjdGF0aW9uX2ZpbGVu
YW1lID0gb3MucGF0aC5zcGxpdGV4dChkc3QpWzBdICsgIi1leHBlY3RlZC50eHQiCisgICAgICBX
cml0ZUZpbGUoZXhwZWN0YXRpb25fZmlsZW5hbWUsIGV4cGVjdGF0aW9uX3RlbXBsYXRlICUgc3Vi
cykKKworCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgIHN5cy5leGl0KG1haW4oc3lz
LmFyZ3ZbMTpdKSkKKworCisKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOWEwYzVkNzQ4NDQxM2E0NjVlZWEyMTlhNDliMDU5NDY0MDM4
MGViMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcwpAQCAtMCwwICsxLDU4MSBAQAorLy8gc3ZnL2R5bmFtaWMtdXBkYXRlcyB0ZXN0
cyBzZXQgZW5hYmxlUGl4ZWxUZXN0aW5nPXRydWUsIGFzIHdlIHdhbnQgdG8gZHVtcCB0ZXh0ICsg
cGl4ZWwgcmVzdWx0cworaWYgKHNlbGYudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoc2VsZi5lbmFibGVQaXhlbFRlc3RpbmcpOworCit2YXIgZGVzY3JpcHRpb24sIGRlYnVn
LCBzdWNjZXNzZnVsbHlQYXJzZWQsIGVycm9yTWVzc2FnZTsKKworKGZ1bmN0aW9uKCkgeworCisg
ICAgZnVuY3Rpb24gZ2V0T3JDcmVhdGUoaWQsIHRhZ05hbWUpCisgICAgeworICAgICAgICB2YXIg
ZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICAgICAgaWYgKGVsZW1l
bnQpCisgICAgICAgICAgICByZXR1cm4gZWxlbWVudDsKKworICAgICAgICBlbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCh0YWdOYW1lKTsKKyAgICAgICAgZWxlbWVudC5pZCA9IGlkOwor
ICAgICAgICB2YXIgcmVmTm9kZTsKKyAgICAgICAgdmFyIHBhcmVudCA9IGRvY3VtZW50LmJvZHkg
fHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgICAgICBpZiAoaWQgPT0gImRlc2NyaXB0
aW9uIikKKyAgICAgICAgICAgIHJlZk5vZGUgPSBnZXRPckNyZWF0ZSgiY29uc29sZSIsICJkaXYi
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVmTm9kZSA9IHBhcmVudC5maXJzdENoaWxk
OworCisgICAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUoZWxlbWVudCwgcmVmTm9kZSk7CisgICAg
ICAgIHJldHVybiBlbGVtZW50OworICAgIH0KKworICAgIGRlc2NyaXB0aW9uID0gZnVuY3Rpb24g
ZGVzY3JpcHRpb24obXNnLCBxdWlldCkKKyAgICB7CisgICAgICAgIC8vIEZvciBNU0lFIDYgY29t
cGF0aWJpbGl0eQorICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNw
YW4iKTsKKyAgICAgICAgaWYgKHF1aWV0KQorICAgICAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSAn
PHA+JyArIG1zZyArICc8L3A+PHA+T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIG5vICI8c3BhbiBj
bGFzcz0iZmFpbCI+RkFJTDwvc3Bhbj4iIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiPHNwYW4gY2xh
c3M9InBhc3MiPlRFU1QgQ09NUExFVEU8L3NwYW4+Ii48L3A+JzsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSAnPHA+JyArIG1zZyArICc8L3A+PHA+T24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICI8c3BhbiBjbGFzcz0icGFzcyI+UEFTUzwvc3Bh
bj4iIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiPHNwYW4gY2xhc3M9InBhc3MiPlRFU1QgQ09NUExF
VEU8L3NwYW4+Ii48L3A+JzsKKworICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSBnZXRPckNyZWF0
ZSgiZGVzY3JpcHRpb24iLCAicCIpOworICAgICAgICBpZiAoZGVzY3JpcHRpb24uZmlyc3RDaGls
ZCkKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uLnJlcGxhY2VDaGlsZChzcGFuLCBkZXNjcmlwdGlv
bi5maXJzdENoaWxkKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZGVzY3JpcHRpb24uYXBw
ZW5kQ2hpbGQoc3Bhbik7CisgICAgfTsKKworICAgIGRlYnVnID0gZnVuY3Rpb24gZGVidWcobXNn
KQorICAgIHsKKyAgICAgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFu
Iik7CisgICAgICAgIGdldE9yQ3JlYXRlKCJjb25zb2xlIiwgImRpdiIpLmFwcGVuZENoaWxkKHNw
YW4pOyAvLyBpbnNlcnQgaXQgZmlyc3Qgc28gWEhUTUwga25vd3MgdGhlIG5hbWVzcGFjZQorICAg
ICAgICBzcGFuLmlubmVySFRNTCA9IG1zZyArICc8YnIgLz4nOworICAgIH07CisKKyAgICB2YXIg
Y3NzID0KKyAgICAgICAgIi5wYXNzIHsiICsKKyAgICAgICAgICAgICJmb250LXdlaWdodDogYm9s
ZDsiICsKKyAgICAgICAgICAgICJjb2xvcjogZ3JlZW47IiArCisgICAgICAgICJ9IiArCisgICAg
ICAgICIuZmFpbCB7IiArCisgICAgICAgICAgICAiZm9udC13ZWlnaHQ6IGJvbGQ7IiArCisgICAg
ICAgICAgICAiY29sb3I6IHJlZDsiICsKKyAgICAgICAgIn0iICsKKyAgICAgICAgIiNjb25zb2xl
IHsiICsKKyAgICAgICAgICAgICJ3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IiArCisgICAgICAgICAg
ICAiZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsiICsKKyAgICAgICAgIn0iOworCisgICAgZnVuY3Rp
b24gaW5zZXJ0U3R5bGVTaGVldCgpCisgICAgeworICAgICAgICB2YXIgc3R5bGVFbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTsKKyAgICAgICAgc3R5bGVFbGVtZW50LnRl
eHRDb250ZW50ID0gY3NzOworICAgICAgICAoZG9jdW1lbnQuaGVhZCB8fCBkb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQpLmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCk7CisgICAgfQorCisgICAgaWYg
KCFpc1dvcmtlcigpKQorICAgICAgICBpbnNlcnRTdHlsZVNoZWV0KCk7CisKKyAgICBzZWxmLm9u
ZXJyb3IgPSBmdW5jdGlvbihtZXNzYWdlKQorICAgIHsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0g
bWVzc2FnZTsKKyAgICB9OworCit9KSgpOworCitmdW5jdGlvbiBpc1dvcmtlcigpCit7CisgICAg
Ly8gSXQncyBjb25jZWl2YWJsZSB0aGF0IHNvbWVvbmUgd291bGQgc3R1YiBvdXQgJ2RvY3VtZW50
JyBpbiBhIHdvcmtlciBzbworICAgIC8vIGFsc28gY2hlY2sgZm9yIGNoaWxkTm9kZXMsIGFuIGFy
Yml0cmFyeSBET00tcmVsYXRlZCBvYmplY3QgdGhhdCBpcworICAgIC8vIG1lYW5pbmdsZXNzIGlu
IGEgV29ya2VyQ29udGV4dC4KKyAgICByZXR1cm4gKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVm
aW5lZCcgfHwgdHlwZW9mIGRvY3VtZW50LmNoaWxkTm9kZXMgPT09ICd1bmRlZmluZWQnKSAmJiAh
IXNlbGYuaW1wb3J0U2NyaXB0czsKK30KKworZnVuY3Rpb24gZGVzY3JpcHRpb25RdWlldChtc2cp
IHsgZGVzY3JpcHRpb24obXNnLCB0cnVlKTsgfQorCitmdW5jdGlvbiBlc2NhcGVIVE1MKHRleHQp
Cit7CisgICAgcmV0dXJuIHRleHQucmVwbGFjZSgvJi9nLCAiJmFtcDsiKS5yZXBsYWNlKC88L2cs
ICImbHQ7IikucmVwbGFjZSgvXDAvZywgIlxcMCIpOworfQorCitmdW5jdGlvbiB0ZXN0UGFzc2Vk
KG1zZykKK3sKKyAgICBkZWJ1ZygnPHNwYW4+PHNwYW4gY2xhc3M9InBhc3MiPlBBU1M8L3NwYW4+
ICcgKyBlc2NhcGVIVE1MKG1zZykgKyAnPC9zcGFuPicpOworfQorCitmdW5jdGlvbiB0ZXN0RmFp
bGVkKG1zZykKK3sKKyAgICBkZWJ1ZygnPHNwYW4+PHNwYW4gY2xhc3M9ImZhaWwiPkZBSUw8L3Nw
YW4+ICcgKyBlc2NhcGVIVE1MKG1zZykgKyAnPC9zcGFuPicpOworfQorCitmdW5jdGlvbiBhcmVB
cnJheXNFcXVhbChfYSwgX2IpCit7CisgICAgdHJ5IHsKKyAgICAgICAgaWYgKF9hLmxlbmd0aCAh
PT0gX2IubGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IF9hLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgaWYgKF9hW2ldICE9PSBf
YltpXSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBjYXRjaCAoZXgpIHsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworZnVu
Y3Rpb24gaXNNaW51c1plcm8obikKK3sKKyAgICAvLyB0aGUgb25seSB3YXkgdG8gdGVsbCAwIGZy
b20gLTAgaW4gSlMgaXMgdGhlIGZhY3QgdGhhdCAxLy0wIGlzCisgICAgLy8gLUluZmluaXR5IGlu
c3RlYWQgb2YgSW5maW5pdHkKKyAgICByZXR1cm4gbiA9PT0gMCAmJiAxL24gPCAwOworfQorCitm
dW5jdGlvbiBpc1Jlc3VsdENvcnJlY3QoX2FjdHVhbCwgX2V4cGVjdGVkKQoreworICAgIGlmIChf
ZXhwZWN0ZWQgPT09IDApCisgICAgICAgIHJldHVybiBfYWN0dWFsID09PSBfZXhwZWN0ZWQgJiYg
KDEvX2FjdHVhbCkgPT09ICgxL19leHBlY3RlZCk7CisgICAgaWYgKF9hY3R1YWwgPT09IF9leHBl
Y3RlZCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHR5cGVvZihfZXhwZWN0ZWQpID09
ICJudW1iZXIiICYmIGlzTmFOKF9leHBlY3RlZCkpCisgICAgICAgIHJldHVybiB0eXBlb2YoX2Fj
dHVhbCkgPT0gIm51bWJlciIgJiYgaXNOYU4oX2FjdHVhbCk7CisgICAgaWYgKF9leHBlY3RlZCAm
JiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKF9leHBlY3RlZCkgPT0gT2JqZWN0LnBy
b3RvdHlwZS50b1N0cmluZy5jYWxsKFtdKSkpCisgICAgICAgIHJldHVybiBhcmVBcnJheXNFcXVh
bChfYWN0dWFsLCBfZXhwZWN0ZWQpOworICAgIHJldHVybiBmYWxzZTsKK30KKworZnVuY3Rpb24g
c3RyaW5naWZ5KHYpCit7CisgICAgaWYgKHYgPT09IDAgJiYgMS92IDwgMCkKKyAgICAgICAgcmV0
dXJuICItMCI7CisgICAgZWxzZSByZXR1cm4gIiIgKyB2OworfQorCitmdW5jdGlvbiBldmFsQW5k
TG9nKF9hLCBfcXVpZXQpCit7CisgIGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIpCisgICAgZGVi
dWcoIldBUk46IHRyeUFuZExvZygpIGV4cGVjdHMgYSBzdHJpbmcgYXJndW1lbnQiKTsKKworICAv
LyBMb2cgZmlyc3QgaW4gY2FzZSB0aGluZ3MgZ28gaG9ycmlibHkgd3Jvbmcgb3IgdGhpcyBjYXVz
ZXMgYSBzeW5jIGV2ZW50LgorICBpZiAoIV9xdWlldCkKKyAgICBkZWJ1ZyhfYSk7CisKKyAgdmFy
IF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAg
ICB0ZXN0RmFpbGVkKF9hICsgIiB0aHJldyBleGNlcHRpb24gIiArIGUpOworICB9CisgIHJldHVy
biBfYXY7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlKF9hLCBfYiwgcXVpZXQpCit7CisgIGlmICh0
eXBlb2YgX2EgIT0gInN0cmluZyIgfHwgdHlwZW9mIF9iICE9ICJzdHJpbmciKQorICAgIGRlYnVn
KCJXQVJOOiBzaG91bGRCZSgpIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOworICB2YXIgZXhj
ZXB0aW9uOworICB2YXIgX2F2OworICB0cnkgeworICAgICBfYXYgPSBldmFsKF9hKTsKKyAgfSBj
YXRjaCAoZSkgeworICAgICBleGNlcHRpb24gPSBlOworICB9CisgIHZhciBfYnYgPSBldmFsKF9i
KTsKKworICBpZiAoZXhjZXB0aW9uKQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSAi
ICsgX2J2ICsgIi4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICBlbHNlIGlmIChp
c1Jlc3VsdENvcnJlY3QoX2F2LCBfYnYpKSB7CisgICAgaWYgKCFxdWlldCkgeworICAgICAgICB0
ZXN0UGFzc2VkKF9hICsgIiBpcyAiICsgX2IpOworICAgIH0KKyAgfSBlbHNlIGlmICh0eXBlb2Yo
X2F2KSA9PSB0eXBlb2YoX2J2KSkKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgIiAr
IF9idiArICIuIFdhcyAiICsgc3RyaW5naWZ5KF9hdikgKyAiLiIpOworICBlbHNlCisgICAgdGVz
dEZhaWxlZChfYSArICIgc2hvdWxkIGJlICIgKyBfYnYgKyAiIChvZiB0eXBlICIgKyB0eXBlb2Yg
X2J2ICsgIikuIFdhcyAiICsgX2F2ICsgIiAob2YgdHlwZSAiICsgdHlwZW9mIF9hdiArICIpLiIp
OworfQorCitmdW5jdGlvbiBzaG91bGRCZVR5cGUoX2EsIF90eXBlKSB7CisgIHZhciBleGNlcHRp
b247CisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2gg
KGUpIHsKKyAgICBleGNlcHRpb24gPSBlOworICB9CisKKyAgdmFyIF90eXBldiA9IGV2YWwoX3R5
cGUpOworICBpZiAoX2F2IGluc3RhbmNlb2YgX3R5cGV2KSB7CisgICAgdGVzdFBhc3NlZChfYSAr
ICIgaXMgYW4gaW5zdGFuY2Ugb2YgIiArIF90eXBlKTsKKyAgfSBlbHNlIHsKKyAgICB0ZXN0RmFp
bGVkKF9hICsgIiBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgIiArIF90eXBlKTsKKyAgfQorfQorCisv
LyBWYXJpYW50IG9mIHNob3VsZEJlKCktLWNvbmZpcm1zIHRoYXQgcmVzdWx0IG9mIGV2YWwoX3Rv
X2V2YWwpIGlzIHdpdGhpbgorLy8gbnVtZXJpYyBfdG9sZXJhbmNlIG9mIG51bWVyaWMgX3Rhcmdl
dC4KK2Z1bmN0aW9uIHNob3VsZEJlQ2xvc2VUbyhfdG9fZXZhbCwgX3RhcmdldCwgX3RvbGVyYW5j
ZSwgcXVpZXQpCit7CisgIGlmICh0eXBlb2YgX3RvX2V2YWwgIT0gInN0cmluZyIpIHsKKyAgICB0
ZXN0RmFpbGVkKCJzaG91bGRCZUNsb3NlVG8oKSByZXF1aXJlcyBzdHJpbmcgYXJndW1lbnQgX3Rv
X2V2YWwuIHdhcyB0eXBlICIgKyB0eXBlb2YgX3RvX2V2YWwpOworICAgIHJldHVybjsKKyAgfQor
ICBpZiAodHlwZW9mIF90YXJnZXQgIT0gIm51bWJlciIpIHsKKyAgICB0ZXN0RmFpbGVkKCJzaG91
bGRCZUNsb3NlVG8oKSByZXF1aXJlcyBudW1lcmljIGFyZ3VtZW50IF90YXJnZXQuIHdhcyB0eXBl
ICIgKyB0eXBlb2YgX3RhcmdldCk7CisgICAgcmV0dXJuOworICB9CisgIGlmICh0eXBlb2YgX3Rv
bGVyYW5jZSAhPSAibnVtYmVyIikgeworICAgIHRlc3RGYWlsZWQoInNob3VsZEJlQ2xvc2VUbygp
IHJlcXVpcmVzIG51bWVyaWMgYXJndW1lbnQgX3RvbGVyYW5jZS4gd2FzIHR5cGUgIiArIHR5cGVv
ZiBfdG9sZXJhbmNlKTsKKyAgICByZXR1cm47CisgIH0KKworICB2YXIgX3Jlc3VsdDsKKyAgdHJ5
IHsKKyAgICAgX3Jlc3VsdCA9IGV2YWwoX3RvX2V2YWwpOworICB9IGNhdGNoIChlKSB7CisgICAg
dGVzdEZhaWxlZChfdG9fZXZhbCArICIgc2hvdWxkIGJlIHdpdGhpbiAiICsgX3RvbGVyYW5jZSAr
ICIgb2YgIgorICAgICAgICAgICAgICAgKyBfdGFyZ2V0ICsgIi4gVGhyZXcgZXhjZXB0aW9uICIg
KyBlKTsKKyAgICByZXR1cm47CisgIH0KKworICBpZiAodHlwZW9mKF9yZXN1bHQpICE9IHR5cGVv
ZihfdGFyZ2V0KSkgeworICAgIHRlc3RGYWlsZWQoX3RvX2V2YWwgKyAiIHNob3VsZCBiZSBvZiB0
eXBlICIgKyB0eXBlb2YgX3RhcmdldAorICAgICAgICAgICAgICAgKyAiIGJ1dCB3YXMgb2YgdHlw
ZSAiICsgdHlwZW9mIF9yZXN1bHQpOworICB9IGVsc2UgaWYgKE1hdGguYWJzKF9yZXN1bHQgLSBf
dGFyZ2V0KSA8PSBfdG9sZXJhbmNlKSB7CisgICAgaWYgKCFxdWlldCkgeworICAgICAgICB0ZXN0
UGFzc2VkKF90b19ldmFsICsgIiBpcyB3aXRoaW4gIiArIF90b2xlcmFuY2UgKyAiIG9mICIgKyBf
dGFyZ2V0KTsKKyAgICB9CisgIH0gZWxzZSB7CisgICAgdGVzdEZhaWxlZChfdG9fZXZhbCArICIg
c2hvdWxkIGJlIHdpdGhpbiAiICsgX3RvbGVyYW5jZSArICIgb2YgIiArIF90YXJnZXQKKyAgICAg
ICAgICAgICAgICsgIi4gV2FzICIgKyBfcmVzdWx0ICsgIi4iKTsKKyAgfQorfQorCitmdW5jdGlv
biBzaG91bGROb3RCZShfYSwgX2IsIHF1aWV0KQoreworICBpZiAodHlwZW9mIF9hICE9ICJzdHJp
bmciIHx8IHR5cGVvZiBfYiAhPSAic3RyaW5nIikKKyAgICBkZWJ1ZygiV0FSTjogc2hvdWxkTm90
QmUoKSBleHBlY3RzIHN0cmluZyBhcmd1bWVudHMiKTsKKyAgdmFyIGV4Y2VwdGlvbjsKKyAgdmFy
IF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgZXhjZXB0aW9uID0gZTsKKyAgfQorICB2YXIgX2J2ID0gZXZhbChfYik7CisKKyAgaWYgKGV4
Y2VwdGlvbikKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgbm90IGJlICIgKyBfYnYgKyAi
LiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgIGVsc2UgaWYgKCFpc1Jlc3VsdENv
cnJlY3QoX2F2LCBfYnYpKSB7CisgICAgaWYgKCFxdWlldCkgeworICAgICAgICB0ZXN0UGFzc2Vk
KF9hICsgIiBpcyBub3QgIiArIF9iKTsKKyAgICB9CisgIH0gZWxzZQorICAgIHRlc3RGYWlsZWQo
X2EgKyAiIHNob3VsZCBub3QgYmUgIiArIF9idiArICIuIik7Cit9CisKK2Z1bmN0aW9uIHNob3Vs
ZEJlVHJ1ZShfYSkgeyBzaG91bGRCZShfYSwgInRydWUiKTsgfQorZnVuY3Rpb24gc2hvdWxkQmVU
cnVlUXVpZXQoX2EpIHsgc2hvdWxkQmUoX2EsICJ0cnVlIiwgdHJ1ZSk7IH0KK2Z1bmN0aW9uIHNo
b3VsZEJlRmFsc2UoX2EpIHsgc2hvdWxkQmUoX2EsICJmYWxzZSIpOyB9CitmdW5jdGlvbiBzaG91
bGRCZU5hTihfYSkgeyBzaG91bGRCZShfYSwgIk5hTiIpOyB9CitmdW5jdGlvbiBzaG91bGRCZU51
bGwoX2EpIHsgc2hvdWxkQmUoX2EsICJudWxsIik7IH0KK2Z1bmN0aW9uIHNob3VsZEJlWmVybyhf
YSkgeyBzaG91bGRCZShfYSwgIjAiKTsgfQorCitmdW5jdGlvbiBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoYSwgYikKK3sKKyAgaWYgKHR5cGVvZiBhICE9PSAic3RyaW5nIiB8fCB0eXBlb2YgYiAhPT0g
InN0cmluZyIpCisgICAgZGVidWcoIldBUk46IHNob3VsZEJlRXF1YWxUb1N0cmluZygpIGV4cGVj
dHMgc3RyaW5nIGFyZ3VtZW50cyIpOworICB2YXIgdW5ldmFsZWRTdHJpbmcgPSBKU09OLnN0cmlu
Z2lmeShiKTsKKyAgc2hvdWxkQmUoYSwgdW5ldmFsZWRTdHJpbmcpOworfQorCitmdW5jdGlvbiBz
aG91bGRCZUVtcHR5U3RyaW5nKF9hKSB7IHNob3VsZEJlRXF1YWxUb1N0cmluZyhfYSwgIiIpOyB9
CisKK2Z1bmN0aW9uIHNob3VsZEV2YWx1YXRlVG8oYWN0dWFsLCBleHBlY3RlZCkgeworICAvLyBB
IGdlbmVyYWwtcHVycG9zZSBjb21wYXJhdG9yLiAgJ2FjdHVhbCcgc2hvdWxkIGJlIGEgc3RyaW5n
IHRvIGJlCisgIC8vIGV2YWx1YXRlZCwgYXMgZm9yIHNob3VsZEJlKCkuICdleHBlY3RlZCcgbWF5
IGJlIGFueSB0eXBlIGFuZCB3aWxsIGJlCisgIC8vIHVzZWQgd2l0aG91dCBiZWluZyBldmFsJ2Vk
LgorICBpZiAoZXhwZWN0ZWQgPT0gbnVsbCkgeworICAgIC8vIERvIHRoaXMgYmVmb3JlIHRoZSBv
YmplY3QgdGVzdCwgc2luY2UgbnVsbCBpcyBvZiB0eXBlICdvYmplY3QnLgorICAgIHNob3VsZEJl
TnVsbChhY3R1YWwpOworICB9IGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9PSAidW5kZWZpbmVk
IikgeworICAgIHNob3VsZEJlVW5kZWZpbmVkKGFjdHVhbCk7CisgIH0gZWxzZSBpZiAodHlwZW9m
IGV4cGVjdGVkID09ICJmdW5jdGlvbiIpIHsKKyAgICAvLyBBbGwgdGhpcyBmdXNzIGlzIHRvIGF2
b2lkIHRoZSBzdHJpbmctYXJnIHdhcm5pbmcgZnJvbSBzaG91bGRCZSgpLgorICAgIHRyeSB7Cisg
ICAgICBhY3R1YWxWYWx1ZSA9IGV2YWwoYWN0dWFsKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAg
ICB0ZXN0RmFpbGVkKCJFdmFsdWF0aW5nICIgKyBhY3R1YWwgKyAiOiBUaHJldyBleGNlcHRpb24g
IiArIGUpOworICAgICAgcmV0dXJuOworICAgIH0KKyAgICBzaG91bGRCZSgiJyIgKyBhY3R1YWxW
YWx1ZS50b1N0cmluZygpLnJlcGxhY2UoL1xuL2csICIiKSArICInIiwKKyAgICAgICAgICAgICAi
JyIgKyBleHBlY3RlZC50b1N0cmluZygpLnJlcGxhY2UoL1xuL2csICIiKSArICInIik7CisgIH0g
ZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJvYmplY3QiKSB7CisgICAgc2hvdWxkQmVUcnVl
KGFjdHVhbCArICIgPT0gJyIgKyBleHBlY3RlZCArICInIik7CisgIH0gZWxzZSBpZiAodHlwZW9m
IGV4cGVjdGVkID09ICJzdHJpbmciKSB7CisgICAgc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCk7
CisgIH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJib29sZWFuIikgeworICAgIHNob3Vs
ZEJlKCJ0eXBlb2YgIiArIGFjdHVhbCwgIidib29sZWFuJyIpOworICAgIGlmIChleHBlY3RlZCkK
KyAgICAgIHNob3VsZEJlVHJ1ZShhY3R1YWwpOworICAgIGVsc2UKKyAgICAgIHNob3VsZEJlRmFs
c2UoYWN0dWFsKTsKKyAgfSBlbHNlIGlmICh0eXBlb2YgZXhwZWN0ZWQgPT0gIm51bWJlciIpIHsK
KyAgICBzaG91bGRCZShhY3R1YWwsIHN0cmluZ2lmeShleHBlY3RlZCkpOworICB9IGVsc2Ugewor
ICAgIGRlYnVnKGV4cGVjdGVkICsgIiBpcyB1bmtub3duIHR5cGUgIiArIHR5cGVvZiBleHBlY3Rl
ZCk7CisgICAgc2hvdWxkQmVUcnVlKGFjdHVhbCwgIiciICArZXhwZWN0ZWQudG9TdHJpbmcoKSAr
ICInIik7CisgIH0KK30KKworZnVuY3Rpb24gc2hvdWxkQmVOb25aZXJvKF9hKQoreworICB2YXIg
ZXhjZXB0aW9uOworICB2YXIgX2F2OworICB0cnkgeworICAgICBfYXYgPSBldmFsKF9hKTsKKyAg
fSBjYXRjaCAoZSkgeworICAgICBleGNlcHRpb24gPSBlOworICB9CisKKyAgaWYgKGV4Y2VwdGlv
bikKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgbm9uLXplcm8uIFRocmV3IGV4Y2Vw
dGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgZWxzZSBpZiAoX2F2ICE9IDApCisgICAgdGVzdFBhc3Nl
ZChfYSArICIgaXMgbm9uLXplcm8uIik7CisgIGVsc2UKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBz
aG91bGQgYmUgbm9uLXplcm8uIFdhcyAiICsgX2F2KTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmVO
b25OdWxsKF9hKQoreworICB2YXIgZXhjZXB0aW9uOworICB2YXIgX2F2OworICB0cnkgeworICAg
ICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkgeworICAgICBleGNlcHRpb24gPSBlOwor
ICB9CisKKyAgaWYgKGV4Y2VwdGlvbikKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUg
bm9uLW51bGwuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgZWxzZSBpZiAoX2F2
ICE9IG51bGwpCisgICAgdGVzdFBhc3NlZChfYSArICIgaXMgbm9uLW51bGwuIik7CisgIGVsc2UK
KyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgbm9uLW51bGwuIFdhcyAiICsgX2F2KTsK
K30KKworZnVuY3Rpb24gc2hvdWxkQmVVbmRlZmluZWQoX2EpCit7CisgIHZhciBleGNlcHRpb247
CisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgIF9hdiA9IGV2YWwoX2EpOworICB9IGNhdGNoIChl
KSB7CisgICAgIGV4Y2VwdGlvbiA9IGU7CisgIH0KKworICBpZiAoZXhjZXB0aW9uKQorICAgIHRl
c3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSB1bmRlZmluZWQuIFRocmV3IGV4Y2VwdGlvbiAiICsg
ZXhjZXB0aW9uKTsKKyAgZWxzZSBpZiAodHlwZW9mIF9hdiA9PSAidW5kZWZpbmVkIikKKyAgICB0
ZXN0UGFzc2VkKF9hICsgIiBpcyB1bmRlZmluZWQuIik7CisgIGVsc2UKKyAgICB0ZXN0RmFpbGVk
KF9hICsgIiBzaG91bGQgYmUgdW5kZWZpbmVkLiBXYXMgIiArIF9hdik7Cit9CisKK2Z1bmN0aW9u
IHNob3VsZEJlRGVmaW5lZChfYSkKK3sKKyAgdmFyIGV4Y2VwdGlvbjsKKyAgdmFyIF9hdjsKKyAg
dHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICAgZXhjZXB0
aW9uID0gZTsKKyAgfQorCisgIGlmIChleGNlcHRpb24pCisgICAgdGVzdEZhaWxlZChfYSArICIg
c2hvdWxkIGJlIGRlZmluZWQuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgZWxz
ZSBpZiAoX2F2ICE9PSB1bmRlZmluZWQpCisgICAgdGVzdFBhc3NlZChfYSArICIgaXMgZGVmaW5l
ZC4iKTsKKyAgZWxzZQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBkZWZpbmVkLiBX
YXMgIiArIF9hdik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKF9h
LCBfYikgeworICAgIGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIgfHwgdHlwZW9mIF9iICE9ICJz
dHJpbmciKQorICAgICAgICBkZWJ1ZygiV0FSTjogc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwg
ZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7CisKKyAgICB2YXIgZXhjZXB0aW9uOworICAgIHZh
ciBfYXY7CisgICAgdHJ5IHsKKyAgICAgICAgX2F2ID0gZXZhbChfYSk7CisgICAgfSBjYXRjaCAo
ZSkgeworICAgICAgICBleGNlcHRpb24gPSBlOworICAgIH0KKyAgICB2YXIgX2J2ID0gZXZhbChf
Yik7CisKKyAgICBpZiAoZXhjZXB0aW9uKQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91
bGQgYmUgPj0gIiArIF9iICsgIi4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOworICAg
IGVsc2UgaWYgKHR5cGVvZiBfYXYgPT0gInVuZGVmaW5lZCIgfHwgX2F2IDwgX2J2KQorICAgICAg
ICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgPj0gIiArIF9iICsgIi4gV2FzICIgKyBfYXYg
KyAiIChvZiB0eXBlICIgKyB0eXBlb2YgX2F2ICsgIikuIik7CisgICAgZWxzZQorICAgICAgICB0
ZXN0UGFzc2VkKF9hICsgIiBpcyA+PSAiICsgX2IpOworfQorCitmdW5jdGlvbiBzaG91bGROb3RU
aHJvdyhfYSkgeworICAgIHRyeSB7CisgICAgICAgIGV2YWwoX2EpOworICAgICAgICB0ZXN0UGFz
c2VkKF9hICsgIiBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4iKTsKKyAgICB9IGNhdGNoIChlKSB7
CisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBub3QgdGhyb3cgZXhjZXB0aW9uLiBU
aHJldyBleGNlcHRpb24gIiArIGUgKyAiLiIpOworICAgIH0KK30KKworZnVuY3Rpb24gc2hvdWxk
VGhyb3coX2EsIF9lKQoreworICB2YXIgZXhjZXB0aW9uOworICB2YXIgX2F2OworICB0cnkgewor
ICAgICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkgeworICAgICBleGNlcHRpb24gPSBl
OworICB9CisKKyAgdmFyIF9ldjsKKyAgaWYgKF9lKQorICAgICAgX2V2ID0gIGV2YWwoX2UpOwor
CisgIGlmIChleGNlcHRpb24pIHsKKyAgICBpZiAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQiIHx8
IGV4Y2VwdGlvbiA9PSBfZXYpCisgICAgICB0ZXN0UGFzc2VkKF9hICsgIiB0aHJldyBleGNlcHRp
b24gIiArIGV4Y2VwdGlvbiArICIuIik7CisgICAgZWxzZQorICAgICAgdGVzdEZhaWxlZChfYSAr
ICIgc2hvdWxkIHRocm93ICIgKyAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQiID8gImFuIGV4Y2Vw
dGlvbiIgOiBfZXYpICsgIi4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24gKyAiLiIpOwor
ICB9IGVsc2UgaWYgKHR5cGVvZiBfYXYgPT0gInVuZGVmaW5lZCIpCisgICAgdGVzdEZhaWxlZChf
YSArICIgc2hvdWxkIHRocm93ICIgKyAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQiID8gImFuIGV4
Y2VwdGlvbiIgOiBfZXYpICsgIi4gV2FzIHVuZGVmaW5lZC4iKTsKKyAgZWxzZQorICAgIHRlc3RG
YWlsZWQoX2EgKyAiIHNob3VsZCB0aHJvdyAiICsgKHR5cGVvZiBfZSA9PSAidW5kZWZpbmVkIiA/
ICJhbiBleGNlcHRpb24iIDogX2V2KSArICIuIFdhcyAiICsgX2F2ICsgIi4iKTsKK30KKworZnVu
Y3Rpb24gc2hvdWxkSGF2ZUhhZEVycm9yKG1lc3NhZ2UpCit7CisgICAgaWYgKGVycm9yTWVzc2Fn
ZSkgeworICAgICAgICBpZiAoIW1lc3NhZ2UpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJHb3Qg
ZXhwZWN0ZWQgZXJyb3IiKTsKKyAgICAgICAgZWxzZSBpZiAoZXJyb3JNZXNzYWdlLmluZGV4T2Yo
bWVzc2FnZSkgIT09IC0xKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiR290IGV4cGVjdGVkIGVy
cm9yOiAnIiArIG1lc3NhZ2UgKyAiJyIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJVbmV4cGV4dGVkIGVycm9yICciICsgbWVzc2FnZSArICInIik7CisgICAgfSBlbHNl
CisgICAgICAgIHRlc3RGYWlsZWQoIk1pc3NpbmcgZXhwZXh0ZWQgZXJyb3IiKTsKKyAgICBlcnJv
ck1lc3NhZ2UgPSB1bmRlZmluZWQ7Cit9CisKK2Z1bmN0aW9uIGdjKCkgeworICAgIGlmICh0eXBl
b2YgR0NDb250cm9sbGVyICE9PSAidW5kZWZpbmVkIikKKyAgICAgICAgR0NDb250cm9sbGVyLmNv
bGxlY3QoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgdmFyIGdjUmVjID0gZnVuY3Rpb24gKG4pIHsK
KyAgICAgICAgICAgIGlmIChuIDwgMSkKKyAgICAgICAgICAgICAgICByZXR1cm4ge307CisgICAg
ICAgICAgICB2YXIgdGVtcCA9IHtpOiAiYWIiICsgaSArIChpIC8gMTAwMDAwKX07CisgICAgICAg
ICAgICB0ZW1wICs9ICJmb28iOworICAgICAgICAgICAgZ2NSZWMobi0xKTsKKyAgICAgICAgfTsK
KyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyBpKyspCisgICAgICAgICAgICBnY1Jl
YygxMCkKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCkKK3sKKyAg
ICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgYW5kIG9ubHkgcmVwb3J0IHVuZXhwZWN0ZWQgc3ludGF4
IGVycm9ycy4KKyAgICBpZiAoIWVycm9yTWVzc2FnZSkKKyAgICAgICAgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKKyAgICBzaG91bGRCZVRydWUoInN1Y2Nlc3NmdWxseVBhcnNlZCIpOworICAg
IGRlYnVnKCc8YnIgLz48c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBDT01QTEVURTwvc3Bhbj4nKTsK
K30KKworLy8gSXQncyBwb3NzaWJsZSBmb3IgYW4gYXN5bmMgdGVzdCB0byBjYWxsIGZpbmlzaEpT
VGVzdCgpIGJlZm9yZSBqcy10ZXN0LXBvc3QuanMKKy8vIGhhcyBiZWVuIHBhcnNlZC4KK2Z1bmN0
aW9uIGZpbmlzaEpTVGVzdCgpCit7CisgICAgd2FzRmluaXNoSlNUZXN0Q2FsbGVkID0gdHJ1ZTsK
KyAgICBpZiAoIXNlbGYud2FzUG9zdFRlc3RTY3JpcHRQYXJzZWQpCisgICAgICAgIHJldHVybjsK
KyAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOworICAgIGlmIChzZWxmLmpzVGVzdElzQXN5bmMg
JiYgc2VsZi50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30K
KworZnVuY3Rpb24gc3RhcnRXb3JrZXIodGVzdFNjcmlwdFVSTCwgc2hhcmVkKQoreworICAgIHNl
bGYuanNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgZGVidWcoJ1N0YXJ0aW5nIHdvcmtlcjogJyAr
IHRlc3RTY3JpcHRVUkwpOworICAgIHZhciB3b3JrZXIgPSBzaGFyZWQgPyBuZXcgU2hhcmVkV29y
a2VyKHRlc3RTY3JpcHRVUkwsICJTaGFyZWQgV29ya2VyIikgOiBuZXcgV29ya2VyKHRlc3RTY3Jp
cHRVUkwpOworICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkKKyAgICB7Cisg
ICAgICAgIHZhciB3b3JrZXJQcmVmaXggPSAiW1dvcmtlcl0gIjsKKyAgICAgICAgaWYgKGV2ZW50
LmRhdGEubGVuZ3RoIDwgNSB8fCBldmVudC5kYXRhLmNoYXJBdCg0KSAhPSAnOicpIHsKKyAgICAg
ICAgICBkZWJ1Zyh3b3JrZXJQcmVmaXggKyBldmVudC5kYXRhKTsKKyAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKyAgICAgICAgdmFyIGNvZGUgPSBldmVudC5kYXRhLnN1YnN0cmluZygwLCA0
KTsKKyAgICAgICAgdmFyIHBheWxvYWQgPSB3b3JrZXJQcmVmaXggKyBldmVudC5kYXRhLnN1YnN0
cmluZyg1KTsKKyAgICAgICAgaWYgKGNvZGUgPT0gIlBBU1MiKQorICAgICAgICAgICAgdGVzdFBh
c3NlZChwYXlsb2FkKTsKKyAgICAgICAgZWxzZSBpZiAoY29kZSA9PSAiRkFJTCIpCisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKHBheWxvYWQpOworICAgICAgICBlbHNlIGlmIChjb2RlID09ICJERVND
IikKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uKHBheWxvYWQpOworICAgICAgICBlbHNlIGlmIChj
b2RlID09ICJET05FIikKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBkZWJ1Zyh3b3JrZXJQcmVmaXggKyBldmVudC5kYXRhKTsKKyAgICB9Owor
CisgICAgd29ya2VyLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIGRl
YnVnKCdHb3QgZXJyb3IgZnJvbSB3b3JrZXI6ICcgKyBldmVudC5tZXNzYWdlKTsKKyAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgfQorCisgICAgaWYgKHNoYXJlZCkgeworICAgICAgICB3b3Jr
ZXIucG9ydC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgeyB3b3JrZXIub25tZXNzYWdlKGV2
ZW50KTsgfTsKKyAgICAgICAgd29ya2VyLnBvcnQuc3RhcnQoKTsKKyAgICB9CisgICAgcmV0dXJu
IHdvcmtlcjsKK30KKworaWYgKGlzV29ya2VyKCkpIHsKKyAgICB2YXIgd29ya2VyUG9ydCA9IHNl
bGY7CisgICAgaWYgKHNlbGYubmFtZSA9PSAiU2hhcmVkIFdvcmtlciIpIHsKKyAgICAgICAgc2Vs
Zi5vbmNvbm5lY3QgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB3b3JrZXJQb3J0ID0gZS5w
b3J0c1swXTsKKyAgICAgICAgICAgIHdvcmtlclBvcnQub25tZXNzYWdlID0gZnVuY3Rpb24oZXZl
bnQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFyIGNvbG9uID0gZXZlbnQuZGF0
YS5pbmRleE9mKCI6Iik7CisgICAgICAgICAgICAgICAgaWYgKGNvbG9uID09IC0xKSB7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlVucmVjb2duaXplZCBtZXNzYWdlIHRvIHNoYXJl
ZCB3b3JrZXI6ICIgKyBldmVudC5kYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB2YXIgY29kZSA9IGV2ZW50LmRhdGEu
c3Vic3RyaW5nKDAsIGNvbG9uKTsKKyAgICAgICAgICAgICAgICB2YXIgcGF5bG9hZCA9IGV2ZW50
LmRhdGEuc3Vic3RyaW5nKGNvbG9uICsgMSk7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKGNvZGUgPT0gIklNUE9SVCIpCisgICAgICAgICAgICAgICAgICAg
ICAgICBpbXBvcnRTY3JpcHRzKHBheWxvYWQpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJVbnJlY29nbml6ZWQgbWVzc2FnZSB0
byBzaGFyZWQgd29ya2VyOiAiICsgZXZlbnQuZGF0YSk7CisgICAgICAgICAgICAgICAgfSBjYXRj
aCAoZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiQ2F1Z2h0IGV4Y2VwdGlv
biBpbiBzaGFyZWQgd29ya2VyIG9ubWVzc2FnZTogIiArIGV4KTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgIH0KKyAgICBkZXNjcmlwdGlvbiA9IGZ1
bmN0aW9uKG1zZywgcXVpZXQpIHsKKyAgICAgICAgd29ya2VyUG9ydC5wb3N0TWVzc2FnZSgnREVT
QzonICsgbXNnKTsKKyAgICB9CisgICAgdGVzdEZhaWxlZCA9IGZ1bmN0aW9uKG1zZykgeworICAg
ICAgICB3b3JrZXJQb3J0LnBvc3RNZXNzYWdlKCdGQUlMOicgKyBtc2cpOworICAgIH0KKyAgICB0
ZXN0UGFzc2VkID0gZnVuY3Rpb24obXNnKSB7CisgICAgICAgIHdvcmtlclBvcnQucG9zdE1lc3Nh
Z2UoJ1BBU1M6JyArIG1zZyk7CisgICAgfQorICAgIGZpbmlzaEpTVGVzdCA9IGZ1bmN0aW9uKCkg
eworICAgICAgICB3b3JrZXJQb3J0LnBvc3RNZXNzYWdlKCdET05FOicpOworICAgIH0KKyAgICBk
ZWJ1ZyA9IGZ1bmN0aW9uKG1zZykgeworICAgICAgICB3b3JrZXJQb3J0LnBvc3RNZXNzYWdlKG1z
Zyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsLWV4cGVjdGF0aW9uLXRlbXBsYXRlLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbC1leHBlY3RhdGlvbi10ZW1wbGF0ZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWRiMmY5NGRkYzA2
YTkwMjg0Yjg4ZmQzMTgyZTljOTI5NDUwZDYwNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbC1leHBlY3RhdGlvbi10ZW1wbGF0ZS50eHQKQEAgLTAs
MCArMSw1IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4g
YW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogJSh1cmwpcworUEFT
UworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2wtd3JhcHBl
ci10ZW1wbGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsLXdyYXBw
ZXItdGVtcGxhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wODA0OWNmOTI5ZjczZTJlMTk4MDk0MWQwZjk0
OWRhZjY3N2NjNDM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsLXdyYXBwZXItdGVtcGxhdGUuaHRtbApAQCAtMCwwICsxLDE3IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
V2ViR0wgQ29uZm9ybWFuY2UgVGVzdCBXcmFwcGVyIGZvciAlKHVybF9uYW1lKXM8L3RpdGxlPgor
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJShiYXNlX3VybClzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSIlKGJhc2VfdXJsKXMvcmVzb3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcnVucyB0aGUgV2Vi
R0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJ
TC48L3A+CitUZXN0OiA8YSBocmVmPSIlKHVybClzIj4lKHVybClzPC9hPgorPGRpdiBpZD0icmVz
dWx0Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iJSh1cmwpcyIgd2lk
dGg9IjgwMCIgaGVpZ2h0PSI2MDAiPjwvaWZyYW1lPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9hdHRyaWJzLzAwX3Rlc3RfbGlzdC50eHQgYi9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzLzAwX3Rlc3Rf
bGlzdC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzU4YmI2NWFmMmQyZjE4NTQyOGEyMWJmMjE5NDJiM2M4OWZk
NGNhZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvMDBfdGVzdF9saXN0LnR4dApAQCAtMCww
ICsxLDggQEAKK2dsLWVuYWJsZS12ZXJ0ZXgtYXR0cmliLmh0bWwKKy0tbWluLXZlcnNpb24gMS4w
LjIgZ2wtdmVydGV4LWF0dHJpYi1yZW5kZXIuaHRtbAorLS1taW4tdmVyc2lvbiAxLjAuMiBnbC1k
aXNhYmxlZC12ZXJ0ZXgtYXR0cmliLmh0bWwKK2dsLXZlcnRleC1hdHRyaWItemVyby1pc3N1ZXMu
aHRtbAorZ2wtdmVydGV4LWF0dHJpYi5odG1sCitnbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLW9mZnNl
dHMuaHRtbAorZ2wtdmVydGV4YXR0cmlicG9pbnRlci5odG1sCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJp
YnMvZ2wtZGlzYWJsZWQtdmVydGV4LWF0dHJpYi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1kaXNhYmxlZC12
ZXJ0ZXgtYXR0cmliLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmY4MDgxZmNhYjJhMDMyOTE2YmY0YmVkNjQ3
MTMzZGVhMzU3OWE0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtZGlzYWJsZWQtdmVy
dGV4LWF0dHJpYi5odG1sCkBAIC0wLDAgKzEsMTAxIEBACis8IS0tCisKKy8qCisqKiBDb3B5cmln
aHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMg
aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBh
CisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlv
biBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3
aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUg
cmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1
dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQg
dG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVk
IHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgor
KiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ug
c2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv
bnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAi
QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBM
SUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBN
RVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05J
TkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklH
SFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIg
TElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1Ig
T1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhF
CisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJ
QUxTLgorKi8KKworLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCBEaXNhYmxlZCBWZXJ0ZXggQXR0cmliIFRl
c3Q8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0
LmpzIj4gPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRp
bHMuanMiPiA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIg
d2lkdGg9IjUwIiBoZWlnaHQ9IjUwIj4KKzwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3JpcHRpb24i
PjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IGlkPSJ2c2hhZGVyIiB0
eXBlPSJ4LXNoYWRlci94LXZlcnRleCI+CithdHRyaWJ1dGUgdmVjNCBhX3Bvc2l0aW9uOworYXR0
cmlidXRlIHZlYzQgYV9jb2xvcjsKK3ZhcnlpbmcgdmVjNCB2X2NvbG9yOwordm9pZCBtYWluKCkg
eworICBnbF9Qb3NpdGlvbiA9IGFfcG9zaXRpb247CisgIHZfY29sb3IgPSBhX2NvbG9yOworfQor
PC9zY3JpcHQ+CisKKzxzY3JpcHQgaWQ9ImZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21l
bnQiPgorcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Cit2YXJ5aW5nIHZlYzQgdl9jb2xvcjsKK2Jv
b2wgaXNDb3JyZWN0Q29sb3IodmVjNCB2KSB7CisgIHJldHVybiB2LnggPT0gMC4wICYmIHYueSA9
PSAwLjAgJiYgdi56ID09IDAuMCAmJiB2LncgPT0gMS4wOworfQordm9pZCBtYWluKCkgeworICBn
bF9GcmFnQ29sb3IgPSBpc0NvcnJlY3RDb2xvcih2X2NvbG9yKSA/IHZlYzQoMCwgMSwgMCwgMSkg
OiB2ZWM0KDEsIDAsIDAsIDEpOworfQorPC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisidXNlIHN0cmlj
dCI7Cit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CitkZXNjcmlwdGlvbigpOworCit2YXIgZ2wg
PSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIik7CisKK3ZhciBudW1WZXJ0ZXhBdHRyaWJz
ID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9WRVJURVhfQVRUUklCUyk7Citmb3IgKHZhciBpaSA9
IDA7IGlpIDwgbnVtVmVydGV4QXR0cmliczsgKytpaSkgeworICB2YXIgY29sb3JMb2NhdGlvbiA9
IChpaSArIDEpICUgbnVtVmVydGV4QXR0cmliczsKKyAgdmFyIHBvc2l0aW9uTG9jYXRpb24gPSBj
b2xvckxvY2F0aW9uID8gMCA6IDE7CisKKyAgaWYgKHBvc2l0aW9uTG9jYXRpb24gIT0gMCkgewor
ICAgIC8vIFdlIG5lZWQgdG8gY3JlYXRlIGEgbmV3IDNkIGNvbnRleHQgZm9yIHRlc3RpbmcgYXR0
cmliIDAKKyAgICAvLyBzaW5jZSB3ZSd2ZSBhbHJlYWR5IGVmZmVjdGVkIGF0dHJpYiAwIG9uIG90
aGVyIHRlc3RzLgorICAgIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dCgpOworICB9CisKKyAgZGVi
dWcoInRlc3RpbmcgYXR0cmliOiAiICsgY29sb3JMb2NhdGlvbik7CisgIHZhciBwcm9ncmFtID0g
d3R1LnNldHVwUHJvZ3JhbSgKKyAgICAgIGdsLAorICAgICAgWyd2c2hhZGVyJywgJ2ZzaGFkZXIn
XSwKKyAgICAgIFsnYV9wb3NpdGlvbicsICdhX2NvbG9yJ10sCisgICAgICBbcG9zaXRpb25Mb2Nh
dGlvbiwgY29sb3JMb2NhdGlvbl0pOworICB2YXIgZ3JpZFJlcyA9IDE7CisgIHd0dS5zZXR1cFF1
YWQoZ2wsIGdyaWRSZXMsIHBvc2l0aW9uTG9jYXRpb24pOworICB3dHUuZHJhd0luZGV4ZWRRdWFk
KGdsLCBncmlkUmVzKTsKKyAgd3R1LmNoZWNrQ2FudmFzKGdsLCBbMCwgMjU1LCAwLCAyNTVdLCAi
c2hvdWxkIGJlIGdyZWVuIik7Cit9CitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAi
c2hvdWxkIGJlIG5vIGVycm9ycyIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wt
ZW5hYmxlLXZlcnRleC1hdHRyaWIuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtZW5hYmxlLXZlcnRleC1hdHRy
aWIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43OTcwM2EwYTVhOTU2ZmNkNjk0MTVhZGFkMzE1YmUzZDIxOWVh
NWQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC1lbmFibGUtdmVydGV4LWF0dHJpYi5o
dG1sCkBAIC0wLDAgKzEsODMgQEAKKzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBU
aGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl
ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2Yg
dGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUK
KyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJp
Y3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNl
LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5z
ZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0
IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1
YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNs
dWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0
ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhP
VVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElO
RyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElU
WSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4K
KyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJF
IExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFS
SVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFM
UyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCist
LT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+CisgICAgPHRpdGxlPldlYkdMIEVuYWJsZSBWZXJ0ZXggQXR0cmliIFRlc3Q8L3RpdGxl
PgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIi8+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10
ZXN0LmpzIj4gPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10
ZXN0LXV0aWxzLmpzIj4gPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4
YW1wbGUiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCI+Cis8L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2Ny
aXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBpZD0idnNo
YWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgorICAgIGF0dHJpYnV0ZSB2ZWM0IHZQb3Np
dGlvbjsKKyAgICB2b2lkIG1haW4oKQorICAgIHsKKyAgICAgICAgZ2xfUG9zaXRpb24gPSB2UG9z
aXRpb247CisgICAgfQorPC9zY3JpcHQ+CisKKzxzY3JpcHQgaWQ9ImZzaGFkZXIiIHR5cGU9Ingt
c2hhZGVyL3gtZnJhZ21lbnQiPgorICAgIHZvaWQgbWFpbigpCisgICAgeworICAgICAgICBnbF9G
cmFnQ29sb3IgPSB2ZWM0KDEuMCwwLjAsMC4wLDEuMCk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxz
Y3JpcHQ+CisidXNlIHN0cmljdCI7CitkZXNjcmlwdGlvbigidGVzdHMgdGhhdCB0dXJuaW5nIG9u
IGF0dHJpYnMgdGhhdCBoYXZlIG5vIGJ1ZmZlciBib3VuZCBmYWlscyB0byBkcmF3Iik7Cit2YXIg
d3R1ID0gV2ViR0xUZXN0VXRpbHM7Cit2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFt
cGxlIik7Cit2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsidnNoYWRlciIsICJm
c2hhZGVyIl0sIFsidlBvc2l0aW9uIl0pOworCit2YXIgdmVydGV4T2JqZWN0ID0gZ2wuY3JlYXRl
QnVmZmVyKCk7CitnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsK
K2dsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBuZXcgRmxvYXQzMkFycmF5KFsgMCwwLjUs
MCwgLTAuNSwtMC41LDAsIDAuNSwtMC41LDAgXSksIGdsLlNUQVRJQ19EUkFXKTsKK2dsLmVuYWJs
ZVZlcnRleEF0dHJpYkFycmF5KDApOworZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAzLCBnbC5G
TE9BVCwgZmFsc2UsIDAsIDApOworCitnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgzKTsKK2ds
RXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworCitnbC5kcmF3QXJyYXlzKGdsLlRSSUFO
R0xFUywgMCwgMyk7CitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OKTsK
KwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9ib2R5Pgor
PC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWItcmVuZGVyLmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9hdHRyaWJzL2dsLXZlcnRleC1hdHRyaWItcmVuZGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjJj
ZmNmOTFlNTQ3M2IzNzBhM2FkODZlZmQzOGRkOTY4MzUzMTdmZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi1yZW5kZXIuaHRtbApAQCAtMCwwICsxLDExMSBAQAor
PCEtLQorCisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4K
KyoqCisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g
YW55IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBh
c3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBk
ZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3
aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us
IHB1Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMg
b2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBN
YXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0
aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVz
IG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1B
VEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO
RCwKKyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBU
SEUgV0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENM
QUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0Yg
Q09OVFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1Ig
SU4gQ09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIg
REVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy0tPgorCis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAg
ICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIi8+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dl
YmdsLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IGlkPSd2c2hh
ZGVyJyB0eXBlPSd4LXNoYWRlcic+CisgICAgICAgICAgICBhdHRyaWJ1dGUgdmVjNCBhOworICAg
ICAgICAgICAgYXR0cmlidXRlIHZlYzIgcDsKKyAgICAgICAgICAgIHZvaWQgbWFpbigpIHsKKyAg
ICAgICAgICAgICAgICBnbF9Qb3NpdGlvbiA9IHZlYzQocC54ICsgYS54ICsgYS55ICsgYS56ICsg
YS53LCBwLnksIDAuMCwgMS4wKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+Cisg
ICAgICAgIDxzY3JpcHQgaWQ9J2ZzaGFkZXInIHR5cGU9J3gtc2hhZGVyJz4KKyAgICAgICAgICAg
IHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworICAgICAgICAgICAgdm9pZCBtYWluKCkgeworICAg
ICAgICAgICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMS4wLCAwLjAsIDAuMCwgMS4wKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAg
ICAgICAidXNlIHN0cmljdCI7CisgICAgICAgICAgICBmdW5jdGlvbiBjaGVja1JlZFBvcnRpb24o
Z2wsIHcsIGxvdywgaGlnaCkgeworICAgICAgICAgICAgICAgIHZhciBidWYgPSBuZXcgVWludDhB
cnJheSh3ICogdyAqIDQpOworICAgICAgICAgICAgICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgdywg
dywgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVmKTsKKyAgICAgICAgICAgICAgICB2YXIg
aSA9IDA7CisgICAgICAgICAgICAgICAgZm9yICg7IGkgPCB3OyArK2kpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKGJ1ZltpICogNCArIDBdID09IDI1NSAmJiBidWZbaSAqIDQgKyAxXSA9PSAw
ICYmIGJ1ZltpICogNCArIDJdID09IDAgJiYgYnVmW2kgKiA0ICsgM10gPT0gMjU1KSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gbG93IDw9IGkgJiYgaSA8PSBoaWdo
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAg
ICAgICAgICAgICAgIHZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKKyAgICAgICAgICAgICAgICB2
YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCd0ZXN0YmVkJywgeyBwcmVzZXJ2ZURyYXdpbmdC
dWZmZXIgOiB0cnVlIH0pOworICAgICAgICAgICAgICAgIGlmICghZ2wpIHsKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgnY291bGQgbm90IGNyZWF0ZSBjb250ZXh0Jyk7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
dmFyIHByb2dyYW0gPSB3dHUuc2V0dXBQcm9ncmFtKGdsLCBbJ3ZzaGFkZXInLCAnZnNoYWRlcidd
LCBbJ3AnLCAnYSddKQorCisgICAgICAgICAgICAgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJy
YXkoZ2wucCk7CisgICAgICAgICAgICAgICAgdmFyIHBvcyA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwor
ICAgICAgICAgICAgICAgIHBvcy50eXBlID0gZ2wuRkxPQVQ7CisgICAgICAgICAgICAgICAgcG9z
LnNpemUgPSAyOworICAgICAgICAgICAgICAgIHBvcy5udW0gPSA0OworICAgICAgICAgICAgICAg
IGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCBwb3MpOworICAgICAgICAgICAgICAgIGds
LmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBuZXcgRmxvYXQzMkFycmF5KFstMSwgLTEsIDEs
IC0xLCAtMSwgMSwgMSwgMV0pLCBnbC5TVEFUSUNfRFJBVyk7CisKKyAgICAgICAgICAgICAgICBn
bC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIHBvcy5zaXplLCBwb3MudHlwZSwgZmFsc2UsIDAsIDAp
OworCisgICAgICAgICAgICAgICAgZGVidWcoJ1Rlc3QgdmVydGV4QXR0cmliWzEuLjRdZnYgYnkg
c2V0dGluZyBkaWZmZXJlbnQgY29tYmluYXRpb25zIHRoYXQgYWRkIHVwIHRvIDEuNSBhbmQgdXNl
IHRoYXQgd2hlbiByZW5kZXJpbmcuJyk7CisgICAgICAgICAgICAgICAgdmFyIHZhbHMgPSBbWzAu
NV0sIFswLjEsMC40XSwgWzAuMiwtMC4yLDAuNV0sIFstMS4wLDAuMywwLjIsMi4wXV07CisKKyAg
ICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IDQ7ICsraikgeworICAgICAgICAgICAg
ICAgICAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJ
VCk7CisgICAgICAgICAgICAgICAgICAgIGdsWyd2ZXJ0ZXhBdHRyaWInICsgKGorMSkgKyAnZnYn
XSgxLCB2YWxzW2pdKTsKKyAgICAgICAgICAgICAgICAgICAgZ2wuZHJhd0FycmF5cyhnbC5UUklB
TkdMRV9TVFJJUCwgMCwgcG9zLm51bSk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoZWNr
UmVkUG9ydGlvbihnbCwgNTAsIDUwICogMC43LCA1MCAqIDAuOCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RQYXNzZWQoJ0F0dHJpYnV0ZSBvZiBzaXplICcgKyAoaisxKSArICcgd2Fz
IHNldCBjb3JyZWN0bHknKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ0F0dHJpYnV0ZSBvZiBzaXplICcgKyAoaisxKSAr
ICcgd2FzIG5vdCBzZXQgY29ycmVjdGx5Jyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVh
ZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGNhbnZhcyBpZD0idGVzdGJlZCIgd2lkdGg9IjUwIiBo
ZWlnaHQ9IjUwIj48L2NhbnZhcz4KKyAgICAgICAgPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2
PgorICAgICAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAg
ICAgICAgICAgICJ1c2Ugc3RyaWN0IjsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCdWZXJpZnkg
dGhhdCB1c2luZyBjb25zdGFudCBhdHRyaWJ1dGVzIHdvcmtzLicpOworICAgICAgICAgICAgcnVu
VGVzdCgpOworICAgICAgICAgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAg
ICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
YXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLXplcm8taXNzdWVzLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9hdHRyaWJzL2dsLXZl
cnRleC1hdHRyaWItemVyby1pc3N1ZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDg5ODQ5M2YxNDA0NDZi
NjI5MDhkMzk2OGIxMmZmMmMwYmJkZWZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12
ZXJ0ZXgtYXR0cmliLXplcm8taXNzdWVzLmh0bWwKQEAgLTAsMCArMSwxNTMgQEAKKzwhLS0KKwor
LyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiog
UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJz
b24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRl
ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0
aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBs
aW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNo
LAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBN
YXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxz
IGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJt
aXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJz
dGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMg
QVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBF
WFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJB
TlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRI
T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFN
QUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU
LAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F
Q1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdT
IElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIEVuYWJsZSBWZXJ0
ZXggQXR0cmliIFplcm8gVGVzdDwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3dlYmdsLXRlc3QuanMiPiA8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2Fu
dmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiPgorPC9jYW52YXM+Cis8ZGl2
IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3Jp
cHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KKyAgICBhdHRyaWJ1dGUg
dmVjNCB2UG9zaXRpb247CisgICAgdm9pZCBtYWluKCkKKyAgICB7CisgICAgICAgIGdsX1Bvc2l0
aW9uID0gdlBvc2l0aW9uOworICAgIH0KKzwvc2NyaXB0PgorCis8c2NyaXB0IGlkPSJmc2hhZGVy
IiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KKyAgICB2b2lkIG1haW4oKQorICAgIHsKKyAg
ICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgwLjAsMS4wLDAuMCwxLjApOworICAgIH0KKzwvc2Ny
aXB0PgorCis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworZGVzY3JpcHRpb24oIlRlc3Qgc29tZSBv
ZiB0aGUgaXNzdWVzIG9mIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYXR0cmliIDAgb24gT3BlbkdM
IHZzIFdlYkdMIik7CitkZWJ1ZygiIik7Cit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Cit2YXIg
Z2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIik7Cit2YXIgZ19wcm9ncmFtOwordmFy
IGdfYXR0cmliTG9jYXRpb247CitmdW5jdGlvbiBzZXR1cChhdHRyaWJJbmRleCkgeworICB2YXIg
cHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oCisgICAgICBnbCwgWyd2c2hhZGVyJywgJ2ZzaGFk
ZXInXSwgWyd2UG9zaXRpb24nXSwgW2F0dHJpYkluZGV4XSk7CisgIGdfcHJvZ3JhbSA9IHByb2dy
YW07CisgIGdfYXR0cmliTG9jYXRpb24gPSBhdHRyaWJJbmRleDsKKyAgc2hvdWxkQmUoImdfYXR0
cmliTG9jYXRpb24iLCAiZ2wuZ2V0QXR0cmliTG9jYXRpb24oZ19wcm9ncmFtLCAndlBvc2l0aW9u
JykiKTsKKyAgcmV0dXJuIHByb2dyYW07Cit9CisKK2Z1bmN0aW9uIHNldHVwVmVydHMobnVtVmVy
dHMpIHsKKyAgdmFyIHZlcnRzID0gWworICAgICAxLjAsICAxLjAsIDAuMCwKKyAgICAtMS4wLCAg
MS4wLCAwLjAsCisgICAgLTEuMCwgLTEuMCwgMC4wLAorICAgICAxLjAsICAxLjAsIDAuMCwKKyAg
ICAtMS4wLCAtMS4wLCAwLjAsCisgICAgIDEuMCwgLTEuMCwgMC4wCisgIF07CisgIHZhciBwb3Np
dGlvbnMgPSBuZXcgRmxvYXQzMkFycmF5KG51bVZlcnRzICogMyk7CisgIHZhciBpbmRpY2VzID0g
bmV3IFVpbnQxNkFycmF5KG51bVZlcnRzKTsKKyAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IG51bVZl
cnRzOyArK2lpKSB7CisgICAgdmFyIG5keCA9IGlpICUgNjsKKyAgICB2YXIgZHN0ID0gaWkgKiAz
OworICAgIHZhciBzcmMgPSBuZHggKiAzOworICAgIGZvciAodmFyIGpqID0gMDsgamogPCAzOyAr
K2pqKSB7CisgICAgICBwb3NpdGlvbnNbZHN0ICsgampdID0gdmVydHNbc3JjICsgampdOworICAg
IH0KKyAgICBpbmRpY2VzW2lpXSA9IGlpOworICB9CisgIHZhciB2ZXJ0ZXhPYmplY3QgPSBnbC5j
cmVhdGVCdWZmZXIoKTsKKyAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZlcnRleE9i
amVjdCk7CisgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBwb3NpdGlvbnMsIGdsLlNU
QVRJQ19EUkFXKTsKKyAgdmFyIGluZGV4QnVmZmVyID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgIGds
LmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGluZGV4QnVmZmVyKTsKKyAgZ2wu
YnVmZmVyRGF0YShnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgaW5kaWNlcywgZ2wuU1RBVElDX0RS
QVcpOworfQorCit2YXIgcDAgPSBzZXR1cCgwKTsKK3ZhciBwMyA9IHNldHVwKDMpOworc2V0dXBW
ZXJ0cyg2MDAwMCk7CisKK2ZvciAodmFyIGlpID0gMDsgaWkgPCA1OyArK2lpKSB7CisgIC8vIHRl
c3QgZHJhd2luZyB3aXRoIGF0dHJpYiAwCisgIGdsLnVzZVByb2dyYW0ocDApOworICBnbC5lbmFi
bGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsKKyAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAzLCBn
bC5GTE9BVCwgZmFsc2UsIDAsIDApOworICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKTsK
KyAgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgNjAwMDAsIGdsLlVOU0lHTkVEX1NIT1JU
LCAwKTsKKyAgZ2xFcnJvclNob3VsZEJlKAorICAgICAgZ2wsIGdsLk5PX0VSUk9SLAorICAgICAg
ImRyYXdpbmcgdXNpbmcgYXR0cmliIDAgd2l0aCA2IHZlcnRzIik7CisgIHd0dS5jaGVja0NhbnZh
cyhnbCwgWzAsIDI1NSwgMCwgMjU1XSwgImNhbnZhcyBzaG91bGQgYmUgZ3JlZW4iKTsKKyAgZ2wu
ZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KDApOworCisgIC8vIHRlc3QgZHJhd2luZyB3aXRob3V0
IGF0dHJpYiAwCisgIGdsLnVzZVByb2dyYW0ocDMpOworICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJB
cnJheSgzKTsKKyAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigzLCAzLCBnbC5GTE9BVCwgZmFsc2Us
IDAsIDApOworICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKTsKKyAgZ2wuZHJhd0FycmF5
cyhnbC5UUklBTkdMRVMsIDAsIDYwMDAwKTsKKyAgZ2xFcnJvclNob3VsZEJlKAorICAgICAgZ2ws
IGdsLk5PX0VSUk9SLAorICAgICAgImRyYXdpbmcgdXNpbmcgYXR0cmliIDMgd2l0aCA2MDAwMCB2
ZXJ0cyIpOworICB3dHUuY2hlY2tDYW52YXMoZ2wsIFswLCAyNTUsIDAsIDI1NV0sICJjYW52YXMg
c2hvdWxkIGJlIGdyZWVuIik7CisgIGdsLmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheSgzKTsKKwor
ICAvLyBUaGlzIHNlY29uZCB0ZXN0IG9mIGRyYXdpbmcgd2l0aG91dCBhdHRyaWIwIHVuY29udmVy
ZWQgYSBidWcgaW4gY2hyb21lCisgIC8vIHdoZXJlIGFmdGVyIHRoZSBkcmF3IHdpdGhvdXQgYXR0
cmliMCB0aGUgYXR0cmliIDAgZW11bGF0aW9uIGNvZGUgZGlzYWJsZWQKKyAgLy8gYXR0cmliIDAg
YW5kIGl0IHdhcyBuZXZlciByZS1lbmFibGVkIHNvIHRoaXMgbmV4dCBkcmF3IGZhaWxlZC4KKyAg
Z2wudXNlUHJvZ3JhbShwMyk7CisgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDMpOworICBn
bC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKTsKKyAgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFO
R0xFUywgNjAwMDAsIGdsLlVOU0lHTkVEX1NIT1JULCAwKTsKKyAgZ2xFcnJvclNob3VsZEJlKAor
ICAgICAgZ2wsIGdsLk5PX0VSUk9SLAorICAgICAgImRyYXdpbmcgdXNpbmcgYXR0cmliIDMgd2l0
aCA2MDAwMCB2ZXJ0cyIpOworICB3dHUuY2hlY2tDYW52YXMoZ2wsIFswLCAyNTUsIDAsIDI1NV0s
ICJjYW52YXMgc2hvdWxkIGJlIGdyZWVuIik7CisgIGdsLmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJh
eSgzKTsKK30KKworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4LWF0dHJp
Yi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXgtYXR0cmliLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDljYWFh
MzM2Zjc5ZThlZGU4ZTE1MjYzZjg2MDVkNzU1NzFlZDE0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0
dHJpYnMvZ2wtdmVydGV4LWF0dHJpYi5odG1sCkBAIC0wLDAgKzEsMTE5IEBACis8IS0tCisKKy8q
CisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBl
cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u
IG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQg
ZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhl
IE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGlt
aXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwK
KyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0
ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBh
cmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz
c2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3Rh
bnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFS
RSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQ
UkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U
SUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9S
UyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFH
RVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwK
KyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNU
SU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJ
TiBUSEUgTUFURVJJQUxTLgorKi8KKworLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCB2ZXJ0ZXhBdHRyaWIg
Q29uZm9ybWFuY2UgVGVzdHM8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
d2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGNhbnZhcyBp
ZD0iY2FudmFzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIj4gPC9jYW52YXM+Cis8c2NyaXB0PgorInVz
ZSBzdHJpY3QiOworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBlbnN1cmVzIFdlYkdMIGltcGxlbWVu
dGF0aW9ucyB2ZXJ0ZXhBdHRyaWIgY2FuIGJlIHNldCBhbmQgcmVhZC4iKTsKKworZGVidWcoIiIp
OworZGVidWcoIkNhbnZhcy5nZXRDb250ZXh0Iik7CisKK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGls
czsKK3ZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImNhbnZhcyIpOworaWYgKCFnbCkgewor
ICB0ZXN0RmFpbGVkKCJjb250ZXh0IGRvZXMgbm90IGV4aXN0Iik7Cit9IGVsc2UgeworICB0ZXN0
UGFzc2VkKCJjb250ZXh0IGV4aXN0cyIpOworCisgIGRlYnVnKCIiKTsKKyAgZGVidWcoIkNoZWNr
aW5nIGdsLnZlcnRleEF0dHJpYi4iKTsKKworICB2YXIgbnVtVmVydGV4QXR0cmlicyA9IGdsLmdl
dFBhcmFtZXRlcihnbC5NQVhfVkVSVEVYX0FUVFJJQlMpOworICBmb3IgKHZhciBpaSA9IDA7IGlp
IDwgbnVtVmVydGV4QXR0cmliczsgKytpaSkgeworICAgIGdsLnZlcnRleEF0dHJpYjFmdihpaSwg
WzFdKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKCcgKyBpaSArICcsIGdsLkNV
UlJFTlRfVkVSVEVYX0FUVFJJQilbMF0nLCAnMScpOworICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0
ZXhBdHRyaWIoJyArIGlpICsgJywgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKVsxXScsICcwJyk7
CisgICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYignICsgaWkgKyAnLCBnbC5DVVJSRU5U
X1ZFUlRFWF9BVFRSSUIpWzJdJywgJzAnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0
cmliKCcgKyBpaSArICcsIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJQilbM10nLCAnMScpOworCisg
ICAgZ2wudmVydGV4QXR0cmliMmZ2KGlpLCBbMSwgMl0pOworICAgIHNob3VsZEJlKCdnbC5nZXRW
ZXJ0ZXhBdHRyaWIoJyArIGlpICsgJywgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKVswXScsICcx
Jyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYignICsgaWkgKyAnLCBnbC5DVVJS
RU5UX1ZFUlRFWF9BVFRSSUIpWzFdJywgJzInKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4
QXR0cmliKCcgKyBpaSArICcsIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJQilbMl0nLCAnMCcpOwor
ICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoJyArIGlpICsgJywgZ2wuQ1VSUkVOVF9W
RVJURVhfQVRUUklCKVszXScsICcxJyk7CisKKyAgICBnbC52ZXJ0ZXhBdHRyaWIzZnYoaWksIFsx
LCAyLCAzXSk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYignICsgaWkgKyAnLCBn
bC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIpWzBdJywgJzEnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0
VmVydGV4QXR0cmliKCcgKyBpaSArICcsIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJQilbMV0nLCAn
MicpOworICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoJyArIGlpICsgJywgZ2wuQ1VS
UkVOVF9WRVJURVhfQVRUUklCKVsyXScsICczJyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRl
eEF0dHJpYignICsgaWkgKyAnLCBnbC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIpWzNdJywgJzEnKTsK
KworICAgIGdsLnZlcnRleEF0dHJpYjRmdihpaSwgWzEsIDIsIDMsIDRdKTsKKyAgICBzaG91bGRC
ZSgnZ2wuZ2V0VmVydGV4QXR0cmliKCcgKyBpaSArICcsIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJ
QilbMF0nLCAnMScpOworICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoJyArIGlpICsg
JywgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKVsxXScsICcyJyk7CisgICAgc2hvdWxkQmUoJ2ds
LmdldFZlcnRleEF0dHJpYignICsgaWkgKyAnLCBnbC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIpWzJd
JywgJzMnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKCcgKyBpaSArICcsIGds
LkNVUlJFTlRfVkVSVEVYX0FUVFJJQilbM10nLCAnNCcpOworCisgICAgZ2wudmVydGV4QXR0cmli
MWYoaWksIDUpOworICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoJyArIGlpICsgJywg
Z2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKVswXScsICc1Jyk7CisgICAgc2hvdWxkQmUoJ2dsLmdl
dFZlcnRleEF0dHJpYignICsgaWkgKyAnLCBnbC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIpWzFdJywg
JzAnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKCcgKyBpaSArICcsIGdsLkNV
UlJFTlRfVkVSVEVYX0FUVFJJQilbMl0nLCAnMCcpOworICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0
ZXhBdHRyaWIoJyArIGlpICsgJywgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKVszXScsICcxJyk7
CisKKyAgICBnbC52ZXJ0ZXhBdHRyaWIyZihpaSwgNiwgNyk7CisgICAgc2hvdWxkQmUoJ2dsLmdl
dFZlcnRleEF0dHJpYignICsgaWkgKyAnLCBnbC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIpWzBdJywg
JzYnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKCcgKyBpaSArICcsIGdsLkNV
UlJFTlRfVkVSVEVYX0FUVFJJQilbMV0nLCAnNycpOworICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0
ZXhBdHRyaWIoJyArIGlpICsgJywgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKVsyXScsICcwJyk7
CisgICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYignICsgaWkgKyAnLCBnbC5DVVJSRU5U
X1ZFUlRFWF9BVFRSSUIpWzNdJywgJzEnKTsKKworICAgIGdsLnZlcnRleEF0dHJpYjNmKGlpLCA3
LCA4LCA5KTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4QXR0cmliKCcgKyBpaSArICcsIGds
LkNVUlJFTlRfVkVSVEVYX0FUVFJJQilbMF0nLCAnNycpOworICAgIHNob3VsZEJlKCdnbC5nZXRW
ZXJ0ZXhBdHRyaWIoJyArIGlpICsgJywgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKVsxXScsICc4
Jyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYignICsgaWkgKyAnLCBnbC5DVVJS
RU5UX1ZFUlRFWF9BVFRSSUIpWzJdJywgJzknKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0VmVydGV4
QXR0cmliKCcgKyBpaSArICcsIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJQilbM10nLCAnMScpOwor
CisgICAgZ2wudmVydGV4QXR0cmliNGYoaWksIDYsIDcsIDgsIDkpOworICAgIHNob3VsZEJlKCdn
bC5nZXRWZXJ0ZXhBdHRyaWIoJyArIGlpICsgJywgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKVsw
XScsICc2Jyk7CisgICAgc2hvdWxkQmUoJ2dsLmdldFZlcnRleEF0dHJpYignICsgaWkgKyAnLCBn
bC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIpWzFdJywgJzcnKTsKKyAgICBzaG91bGRCZSgnZ2wuZ2V0
VmVydGV4QXR0cmliKCcgKyBpaSArICcsIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJQilbMl0nLCAn
OCcpOworICAgIHNob3VsZEJlKCdnbC5nZXRWZXJ0ZXhBdHRyaWIoJyArIGlpICsgJywgZ2wuQ1VS
UkVOVF9WRVJURVhfQVRUUklCKVszXScsICc5Jyk7CisgIH0KKyAgZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUik7Cit9CisKK2RlYnVnKCIiKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0
cmlicy9nbC12ZXJ0ZXhhdHRyaWJwb2ludGVyLW9mZnNldHMuaHRtbCBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVy
dGV4YXR0cmlicG9pbnRlci1vZmZzZXRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGU2MjgzNWRkYjQ0NGQx
YjhkMmZlMzU0OTRkM2VmNGQwMTBjZjM3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wt
dmVydGV4YXR0cmlicG9pbnRlci1vZmZzZXRzLmh0bWwKQEAgLTAsMCArMSwxODIgQEAKKzwhLS0K
KworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgor
KiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBw
ZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2Np
YXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBp
biB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91
dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJs
aXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRo
ZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJp
YWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw
ZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBz
dWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklB
TFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisq
KiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB
UlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBB
VVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwg
REFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRS
QUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENP
Tk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJ
TkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKyAgPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPnZlcnRleGF0
dHJpYnBvaW50ZXIgb2Zmc2V0cyB0ZXN0PC90aXRsZT4KKyAgICA8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+IDwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJleGFtcGxlIiB3aWR0aD0iNTAiIGhlaWdodD0i
NTAiPgorVGhlcmUgaXMgc3VwcG9zZWQgdG8gYmUgYW4gZXhhbXBsZSBkcmF3aW5nIGhlcmUsIGJ1
dCBpdCdzIG5vdCBpbXBvcnRhbnQuCis8L2NhbnZhcz4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48
L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgIDxzY3JpcHQgaWQ9InZzaGFkZXIi
IHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KKyAgICAgICAgYXR0cmlidXRlIHZlYzQgdlBvc2l0
aW9uOworICAgICAgICB2b2lkIG1haW4oKQorICAgICAgICB7CisgICAgICAgICAgICBnbF9Qb3Np
dGlvbiA9IHZQb3NpdGlvbjsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorCisgICAgPHNjcmlw
dCBpZD0iZnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+CisgICAgICAgIHByZWNp
c2lvbiBtZWRpdW1wIGZsb2F0OworICAgICAgICB1bmlmb3JtIHZlYzQgY29sb3I7CisgICAgICAg
IHZvaWQgbWFpbigpCisgICAgICAgIHsKKyAgICAgICAgICAgIGdsX0ZyYWdDb2xvciA9IGNvbG9y
OworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisKKyAgICA8c2NyaXB0PgorICAgICAgICAidXNl
IHN0cmljdCI7CisgICAgICAgIGZ1bmN0aW9uIGluaXQoKQorICAgICAgICB7CisgICAgICAgICAg
ICBkZXNjcmlwdGlvbigidGVzdCB2ZXJ0ZXhhdHRyaWJwb2ludGVyIG9mZnNldHMgd29yayIpOwor
CisgICAgICAgICAgICB2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CisgICAgICAgICAgICB2YXIg
Z2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIik7CisgICAgICAgICAgICB2YXIgcHJv
Z3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oZ2wsIFsidnNoYWRlciIsICJmc2hhZGVyIl0sIFsidlBv
c2l0aW9uIl0pOworCisgICAgICAgICAgICB2YXIgdGVzdHMgPSBbCisgICAgICAgICAgICAgIHsg
ZGF0YTogbmV3IEZsb2F0MzJBcnJheShbIDAsIDEsIDAsIDEsIDAsIDAsIDAsIDAsIDAgXSksCisg
ICAgICAgICAgICAgICAgdHlwZTogZ2wuRkxPQVQsCisgICAgICAgICAgICAgICAgY29tcG9uZW50
U2l6ZTogNCwKKyAgICAgICAgICAgICAgICBub3JtYWxpemU6IGZhbHNlLAorICAgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgICB7IGRhdGE6IG5ldyBGbG9hdDMyQXJyYXkoWyAwLCAxLCAwLCAx
LCAwLCAwLCAwLCAwLCAwIF0pLAorICAgICAgICAgICAgICAgIHR5cGU6IGdsLkZMT0FULAorICAg
ICAgICAgICAgICAgIGNvbXBvbmVudFNpemU6IDQsCisgICAgICAgICAgICAgICAgbm9ybWFsaXpl
OiBmYWxzZSwKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgeyBkYXRhOiBuZXcgVWlu
dDE2QXJyYXkoWyAwLCAzMjc2NywgMCwgMzI3NjcsIDAsIDAsIDAsIDAsIDAgXSksCisgICAgICAg
ICAgICAgICAgdHlwZTogZ2wuU0hPUlQsCisgICAgICAgICAgICAgICAgY29tcG9uZW50U2l6ZTog
MiwKKyAgICAgICAgICAgICAgICBub3JtYWxpemU6IHRydWUsCisgICAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAgIHsgZGF0YTogbmV3IFVpbnQxNkFycmF5KFsgMCwgNjU1MzUsIDAsIDY1NTM1
LCAwLCAwLCAwLCAwLCAwIF0pLAorICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX1NI
T1JULAorICAgICAgICAgICAgICAgIGNvbXBvbmVudFNpemU6IDIsCisgICAgICAgICAgICAgICAg
bm9ybWFsaXplOiB0cnVlLAorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICB7IGRhdGE6
IG5ldyBVaW50MTZBcnJheShbIDAsIDEsIDAsIDEsIDAsIDAsIDAsIDAsIDAgXSksCisgICAgICAg
ICAgICAgICAgdHlwZTogZ2wuVU5TSUdORURfU0hPUlQsCisgICAgICAgICAgICAgICAgY29tcG9u
ZW50U2l6ZTogMiwKKyAgICAgICAgICAgICAgICBub3JtYWxpemU6IGZhbHNlLAorICAgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgICB7IGRhdGE6IG5ldyBVaW50MTZBcnJheShbIDAsIDEsIDAs
IDEsIDAsIDAsIDAsIDAsIDAgXSksCisgICAgICAgICAgICAgICAgdHlwZTogZ2wuU0hPUlQsCisg
ICAgICAgICAgICAgICAgY29tcG9uZW50U2l6ZTogMiwKKyAgICAgICAgICAgICAgICBub3JtYWxp
emU6IGZhbHNlLAorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICB7IGRhdGE6IG5ldyBV
aW50OEFycmF5KFsgMCwgMTI3LCAwLCAxMjcsIDAsIDAsIDAsIDAsIDAgXSksCisgICAgICAgICAg
ICAgICAgdHlwZTogZ2wuQllURSwKKyAgICAgICAgICAgICAgICBjb21wb25lbnRTaXplOiAxLAor
ICAgICAgICAgICAgICAgIG5vcm1hbGl6ZTogdHJ1ZSwKKyAgICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgICAgeyBkYXRhOiBuZXcgVWludDhBcnJheShbIDAsIDI1NSwgMCwgMjU1LCAwLCAwLCAw
LCAwLCAwIF0pLAorICAgICAgICAgICAgICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsCisgICAg
ICAgICAgICAgICAgY29tcG9uZW50U2l6ZTogMSwKKyAgICAgICAgICAgICAgICBub3JtYWxpemU6
IHRydWUsCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIHsgZGF0YTogbmV3IFVpbnQ4
QXJyYXkoWyAwLCAxLCAwLCAxLCAwLCAwLCAwLCAwLCAwIF0pLAorICAgICAgICAgICAgICAgIHR5
cGU6IGdsLkJZVEUsCisgICAgICAgICAgICAgICAgY29tcG9uZW50U2l6ZTogMSwKKyAgICAgICAg
ICAgICAgICBub3JtYWxpemU6IGZhbHNlLAorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAg
ICB7IGRhdGE6IG5ldyBVaW50OEFycmF5KFsgMCwgMSwgMCwgMSwgMCwgMCwgMCwgMCwgMCBdKSwK
KyAgICAgICAgICAgICAgICB0eXBlOiBnbC5VTlNJR05FRF9CWVRFLAorICAgICAgICAgICAgICAg
IGNvbXBvbmVudFNpemU6IDEsCisgICAgICAgICAgICAgICAgbm9ybWFsaXplOiBmYWxzZSwKKyAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgXTsKKworICAgICAgICAgICAgdmFyIHZlcnRleE9i
amVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgICAgICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5B
UlJBWV9CVUZGRVIsIHZlcnRleE9iamVjdCk7CisgICAgICAgICAgICBnbC5idWZmZXJEYXRhKGds
LkFSUkFZX0JVRkZFUiwgMTAyNCwgZ2wuU1RBVElDX0RSQVcpOworICAgICAgICAgICAgZ2wuZW5h
YmxlVmVydGV4QXR0cmliQXJyYXkoMCk7CisKKyAgICAgICAgICAgIHZhciBjb2xvckxvYyA9IGds
LmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAiY29sb3IiKTsKKyAgICAgICAgICAgIHZhciBr
TnVtVmVydHMgPSAzOworICAgICAgICAgICAgdmFyIGtOdW1Db21wb25lbnRzID0gMzsKKworICAg
ICAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgICAgIGZvciAodmFyIHR0ID0gMDsgdHQg
PCB0ZXN0cy5sZW5ndGg7ICsrdHQpIHsKKyAgICAgICAgICAgICAgdmFyIHRlc3QgPSB0ZXN0c1t0
dF07CisgICAgICAgICAgICAgIGZvciAodmFyIG9vID0gMDsgb28gPCAzOyArK29vKSB7CisgICAg
ICAgICAgICAgICAgZm9yICh2YXIgc3MgPSAwOyBzcyA8IDM7ICsrc3MpIHsKKyAgICAgICAgICAg
ICAgICAgIHZhciBvZmZzZXQgPSAob28gKyAxKSAqIHRlc3QuY29tcG9uZW50U2l6ZTsKKyAgICAg
ICAgICAgICAgICAgIHZhciBjb2xvciA9IChjb3VudCAlIDIpID8gWzEsIDAsIDAsIDFdIDogWzAs
IDEsIDAsIDFdOworICAgICAgICAgICAgICAgICAgdmFyIHN0cmlkZSA9IHRlc3QuY29tcG9uZW50
U2l6ZSAqIGtOdW1Db21wb25lbnRzICsgdGVzdC5jb21wb25lbnRTaXplICogc3M7CisgICAgICAg
ICAgICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgICAgICAgICAgICBkZWJ1ZygiY2hlY2sgd2l0
aCAiICsgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCB0ZXN0LnR5cGUpICsgIiBhdCBvZmZzZXQ6ICIg
KyBvZmZzZXQgKyAiIHdpdGggc3RyaWRlOiIgKyBzdHJpZGUgKyAiIG5vcm1hbGl6ZTogIiArIHRl
c3Qubm9ybWFsaXplKTsKKyAgICAgICAgICAgICAgICAgIGdsLnVuaWZvcm00ZnYoY29sb3JMb2Ms
IGNvbG9yKTsKKyAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IFVpbnQ4QXJyYXkodGVz
dC5jb21wb25lbnRTaXplICoga051bVZlcnRzICoga051bUNvbXBvbmVudHMgKyBzdHJpZGUgKiAo
a051bVZlcnRzIC0gMSkpOworICAgICAgICAgICAgICAgICAgdmFyIHZpZXcgPSBuZXcgVWludDhB
cnJheSh0ZXN0LmRhdGEuYnVmZmVyKTsKKyAgICAgICAgICAgICAgICAgIHZhciBzaXplID0gdGVz
dC5jb21wb25lbnRTaXplICoga051bUNvbXBvbmVudHM7CisgICAgICAgICAgICAgICAgICBmb3Ig
KHZhciBqaiA9IDA7IGpqIDwga051bVZlcnRzOyArK2pqKSB7CisgICAgICAgICAgICAgICAgICAg
IHZhciBvZmYxID0gamogKiBzaXplOworICAgICAgICAgICAgICAgICAgICB2YXIgb2ZmMiA9IGpq
ICogc3RyaWRlOworICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciB6eiA9IDA7IHp6IDwgc2l6
ZTsgKyt6eikgeworICAgICAgICAgICAgICAgICAgICAgIGRhdGFbb2ZmMiArIHp6XSA9IHZpZXdb
b2ZmMSArIHp6XTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgZ2wuYnVmZmVyU3ViRGF0YShnbC5BUlJBWV9CVUZGRVIsIG9mZnNl
dCwgZGF0YSk7CisgICAgICAgICAgICAgICAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIDMs
IHRlc3QudHlwZSwgdGVzdC5ub3JtYWxpemUsIHN0cmlkZSwgb2Zmc2V0KTsKKyAgICAgICAgICAg
ICAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklU
KTsKKyAgICAgICAgICAgICAgICAgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCAzKTsK
KworICAgICAgICAgICAgICAgICAgdmFyIGJ1ZiA9IG5ldyBVaW50OEFycmF5KDUwICogNTAgKiA0
KTsKKyAgICAgICAgICAgICAgICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgNTAsIDUwLCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOworCisgICAgICAgICAgICAgICAgICB2YXIgYmxhY2sg
PSBbMCwgMCwgMCwgMF07CisgICAgICAgICAgICAgICAgICB2YXIgb3RoZXIgPSBbY29sb3JbMF0g
KiAyNTUsIGNvbG9yWzFdICogMjU1LCBjb2xvclsyXSAqIDI1NSwgY29sb3JbM10gKiAyNTVdOwor
ICAgICAgICAgICAgICAgICAgdmFyIG90aGVyTXNnID0gInNob3VsZCBiZSAiICsgKChjb3VudCAl
IDIpID8gInJlZCIgOiAiZ3JlZW4iKQorICAgICAgICAgICAgICAgICAgd3R1LmNoZWNrQ2FudmFz
UmVjdChnbCwgMCwgMCwgMSwgMSwgYmxhY2ssICJzaG91bGQgYmUgYmxhY2siLCAwKTsKKyAgICAg
ICAgICAgICAgICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDQ5LCAxLCAxLCBibGFjaywg
InNob3VsZCBiZSBibGFjayIsIDApOworICAgICAgICAgICAgICAgICAgd3R1LmNoZWNrQ2FudmFz
UmVjdChnbCwgMjYsIDQwLCAxLCAxLCBvdGhlciwgb3RoZXJNc2csIDApOworICAgICAgICAgICAg
ICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMjYsIDI3LCAxLCAxLCBvdGhlciwgb3RoZXJN
c2csIDApOworICAgICAgICAgICAgICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgNDAsIDI3
LCAxLCAxLCBvdGhlciwgb3RoZXJNc2csIDApOworICAgICAgICAgICAgICAgICAgKytjb3VudDsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICB9CisKKyAgICAgICBpbml0KCk7CisgICAgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7CisgICAgPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJp
YnMvZ2wtdmVydGV4YXR0cmlicG9pbnRlci5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvYXR0cmlicy9nbC12ZXJ0ZXhhdHRyaWJw
b2ludGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmVhMDI5ZGMyMmNmYWI0OWZlMzY5YTgzMjc2MzY0MDFl
MzI2ZDRmMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2F0dHJpYnMvZ2wtdmVydGV4YXR0cmlicG9pbnRl
ci5odG1sCkBAIC0wLDAgKzEsMTU2IEBACis8IS0tCisKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIw
MTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdy
YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5
IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAo
dGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJl
c3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRv
IHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1Ymxp
Y2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBl
cm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNv
LCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFi
b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUg
aW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhl
IE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBX
SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNM
VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFC
SUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F
TlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS
UyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZ
LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNF
LCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRF
UklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8K
KworLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzx0aXRsZT5XZWJHTCB2ZXJ0ZXhBdHRyaWJQb2ludGVyIENvbmZvcm1hbmNlIFRl
c3RzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2Rlc2t0
b3AtZ2wtY29uc3RhbnRzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPiA8L2NhbnZh
cz4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNr
cyB2ZXJ0ZXhBdHRyaWJQb2ludGVyIGJlaGF2aW9ycyBpbiBXZWJHTC4iKTsKKworZGVidWcoIiIp
OworZGVidWcoIkNhbnZhcy5nZXRDb250ZXh0Iik7CisKK3ZhciB3dHUgPSBXZWJHTFRlc3RVdGls
czsKK3ZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoImNhbnZhcyIpOworaWYgKCFnbCkgewor
ICB0ZXN0RmFpbGVkKCJjb250ZXh0IGRvZXMgbm90IGV4aXN0Iik7Cit9IGVsc2UgeworICB0ZXN0
UGFzc2VkKCJjb250ZXh0IGV4aXN0cyIpOworCisgIGRlYnVnKCIiKTsKKyAgZGVidWcoIkNoZWNr
aW5nIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIuIik7CisKKyAgaWYgKCFnbC5GSVhFRCkgeworICAg
IGdsLkZJWEVEID0gMHgxNDBDOworICB9CisKKyAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAz
LCBnbC5GTE9BVCwgMCwgMCwgMTIpOworICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURf
T1BFUkFUSU9OLAorICAgICAgInZlcnRleEF0dHJpYlBvaW50ZXIgc2hvdWxkIGZhaWwgaWYgbm8g
YnVmZmVyIGlzIGJvdW5kIik7CisKKyAgdmFyIHZlcnRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZl
cigpOworICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKKyAg
Z2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIG5ldyBGbG9hdDMyQXJyYXkoMCksIGdsLlNU
QVRJQ19EUkFXKTsKKworICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIDEsIGdsLklOVCwgMCwg
MCwgMCk7CisgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9FTlVNLAorICAgICAgInZl
cnRleEF0dHJpYlBvaW50ZXIgc2hvdWxkIG5vdCBzdXBwb3J0IElOVCIpOworICBnbC52ZXJ0ZXhB
dHRyaWJQb2ludGVyKDAsIDEsIGdsLlVOU0lHTkVEX0lOVCwgMCwgMCwgMCk7CisgIGdsRXJyb3JT
aG91bGRCZShnbCwgZ2wuSU5WQUxJRF9FTlVNLAorICAgICAgInZlcnRleEF0dHJpYlBvaW50ZXIg
c2hvdWxkIG5vdCBzdXBwb3J0IFVOU0lHTkVEX0lOVCIpOworICBnbC52ZXJ0ZXhBdHRyaWJQb2lu
dGVyKDAsIDEsIGdsLkZJWEVELCAwLCAwLCAwKTsKKyAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5J
TlZBTElEX0VOVU0sCisgICAgICAidmVydGV4QXR0cmliUG9pbnRlciBzaG91bGQgbm90IHN1cHBv
cnQgRklYRUQiKTsKKworICB2YXIgY2hlY2tWZXJ0ZXhBdHRyaWJQb2ludGVyID0gZnVuY3Rpb24o
CisgICAgICBnbCwgZXJyLCByZWFzb24sIHNpemUsIHR5cGUsIG5vcm1hbGl6ZSwgc3RyaWRlLCBv
ZmZzZXQpIHsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIHNpemUsIHR5cGUsIG5vcm1h
bGl6ZSwgc3RyaWRlLCBvZmZzZXQpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZXJyLAorICAg
ICAgICAiZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAiICsgc2l6ZSArCisgICAgICAgICIsIGds
LiIgKyB3dHUuZ2xFbnVtVG9TdHJpbmcoZ2wsIHR5cGUpICsKKyAgICAgICAgIiwgIiArIG5vcm1h
bGl6ZSArCisgICAgICAgICIsICIgKyBzdHJpZGUgKworICAgICAgICAiLCAiICsgb2Zmc2V0ICsK
KyAgICAgICAgIikgc2hvdWxkICIgKyAoZXJyID09IGdsLk5PX0VSUk9SID8gInN1Y2NlZWQgIiA6
ICJmYWlsICIpICsgcmVhc29uKTsKKyAgfQorCisgIHZhciB0eXBlcyA9IFsKKyAgICB7IHR5cGU6
Z2wuQllURSwgICAgICAgICAgIGJ5dGVzUGVyQ29tcG9uZW50OiAxIH0sCisgICAgeyB0eXBlOmds
LlVOU0lHTkVEX0JZVEUsICBieXRlc1BlckNvbXBvbmVudDogMSB9LAorICAgIHsgdHlwZTpnbC5T
SE9SVCwgICAgICAgICAgYnl0ZXNQZXJDb21wb25lbnQ6IDIgfSwKKyAgICB7IHR5cGU6Z2wuVU5T
SUdORURfU0hPUlQsIGJ5dGVzUGVyQ29tcG9uZW50OiAyIH0sCisgICAgeyB0eXBlOmdsLkZMT0FU
LCAgICAgICAgICBieXRlc1BlckNvbXBvbmVudDogNCB9LAorICBdOworCisgIGZvciAodmFyIGlp
ID0gMDsgaWkgPCB0eXBlcy5sZW5ndGg7ICsraWkpIHsKKyAgICB2YXIgaW5mbyA9IHR5cGVzW2lp
XTsKKyAgICBkZWJ1ZygiIik7CisgICAgZm9yICh2YXIgc2l6ZSA9IDE7IHNpemUgPD0gNDsgKytz
aXplKSB7CisgICAgICBkZWJ1ZygiIik7CisgICAgICBkZWJ1ZygiY2hlY2tpbmc6ICIgKyB3dHUu
Z2xFbnVtVG9TdHJpbmcoZ2wsIGluZm8udHlwZSkgKyAiIHdpdGggc2l6ZSAiICsgc2l6ZSk7Cisg
ICAgICB2YXIgYnl0ZXNQZXJFbGVtZW50ID0gc2l6ZSAqIGluZm8uYnl0ZXNQZXJDb21wb25lbnQ7
CisgICAgICB2YXIgb2Zmc2V0U2V0ID0gWworICAgICAgICAgIDAsCisgICAgICAgICAgMSwKKyAg
ICAgICAgICBpbmZvLmJ5dGVzUGVyQ29tcG9uZW50IC0gMSwKKyAgICAgICAgICBpbmZvLmJ5dGVz
UGVyQ29tcG9uZW50LAorICAgICAgICAgIGluZm8uYnl0ZXNQZXJDb21wb25lbnQgKyAxLAorICAg
ICAgICAgIGluZm8uYnl0ZXNQZXJDb21wb25lbnQgKiAyXTsKKyAgICAgIGZvciAodmFyIGpqID0g
MDsgamogPCBvZmZzZXRTZXQubGVuZ3RoOyArK2pqKSB7CisgICAgICAgIHZhciBvZmZzZXQgPSBv
ZmZzZXRTZXRbampdOworICAgICAgICBmb3IgKHZhciBrayA9IDA7IGtrIDwgb2Zmc2V0U2V0Lmxl
bmd0aDsgKytraykgeworICAgICAgICAgIHZhciBzdHJpZGUgPSBvZmZzZXRTZXRba2tdOworICAg
ICAgICAgIHZhciBlcnIgPSBnbC5OT19FUlJPUjsKKyAgICAgICAgICB2YXIgcmVhc29uID0gIiIK
KyAgICAgICAgICBpZiAob2Zmc2V0ICUgaW5mby5ieXRlc1BlckNvbXBvbmVudCAhPSAwKSB7Cisg
ICAgICAgICAgICByZWFzb24gPSAiYmVjYXVzZSBvZmZzZXQgaXMgYmFkIjsKKyAgICAgICAgICAg
IGVyciA9IGdsLklOVkFMSURfT1BFUkFUSU9OOworICAgICAgICAgIH0KKyAgICAgICAgICBpZiAo
c3RyaWRlICUgaW5mby5ieXRlc1BlckNvbXBvbmVudCAhPSAwKSB7CisgICAgICAgICAgICByZWFz
b24gPSAiYmVjYXVzZSBzdHJpZGUgaXMgYmFkIjsKKyAgICAgICAgICAgIGVyciA9IGdsLklOVkFM
SURfT1BFUkFUSU9OOworICAgICAgICAgIH0KKyAgICAgICAgICBjaGVja1ZlcnRleEF0dHJpYlBv
aW50ZXIoCisgICAgICAgICAgICAgIGdsLCBlcnIsIHJlYXNvbiwgc2l6ZSwgaW5mby50eXBlLCBm
YWxzZSwgc3RyaWRlLCBvZmZzZXQpOworICAgICAgICB9CisgICAgICAgIHZhciBzdHJpZGUgPSBN
YXRoLmZsb29yKDI1NSAvIGluZm8uYnl0ZXNQZXJDb21wb25lbnQpICogaW5mby5ieXRlc1BlckNv
bXBvbmVudDsKKworICAgICAgICBpZiAob2Zmc2V0ID09IDApIHsKKyAgICAgICAgICBjaGVja1Zl
cnRleEF0dHJpYlBvaW50ZXIoCisgICAgICAgICAgICAgIGdsLCBnbC5OT19FUlJPUiwgImF0IHN0
cmlkZSBsaW1pdCIsCisgICAgICAgICAgICAgIHNpemUsIGluZm8udHlwZSwgZmFsc2UsIHN0cmlk
ZSwgb2Zmc2V0KTsKKyAgICAgICAgICBjaGVja1ZlcnRleEF0dHJpYlBvaW50ZXIoCisgICAgICAg
ICAgICAgIGdsLCBnbC5JTlZBTElEX1ZBTFVFLCAib3ZlciBzdHJpZGUgbGltaXQiLAorICAgICAg
ICAgICAgICBzaXplLCBpbmZvLnR5cGUsIGZhbHNlLAorICAgICAgICAgICAgICBzdHJpZGUgKyBp
bmZvLmJ5dGVzUGVyQ29tcG9uZW50LCBvZmZzZXQpOworICAgICAgICB9CisgICAgICB9CisgICAg
fQorICB9Cit9CisKK2RlYnVnKCIiKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwor
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzLzN4
My5wbmcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9yZXNvdXJjZXMvM3gzLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2YxZTc0NDdhM2E5YWNhNDBh
ODAzODNiNzU1MDAxNzg5OTQxZTZkCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyODA2CnpjbVY8
UzNKTFh6UCk8aDszS3xMazAwMGUxTkpMVHEwMDA5MzAwMDlCMHNzSTIqLTllbDAwMDA5YTdiQm0w
MDBYVQp6MDAwWFUwUldudTd5dGtZUGlhRiNQKjctWmJaPktMWipVKzxMcWl+TmEmS203WS1Jb2Rj
LW95KVhILSteN0NyYWcKel5nPklCZlJzeWJRV1hkd1FiTFA+NnA8ej5BcWZ5bGgje2ZiNjtaKHZN
TVZTfiRlQFM9aipmdGc2O1VoPGlWRH5WCno8UlBNdGdRSkx3JUtQRGFxaWZjQF92WCQxd2J3cjl0
bjswLSZqLUs9NDM8YlVROGo9SnNYYHRSO0RnNysjXkt+SAp6SyFGTSpafnpicHZ0JUsye1VaU1lf
PGxTKkQ8WiVMejVvR3UoK2RheXopaFJMRmRUPmY1OSZnaFRtZ1dEMGw7KlQKekk3PGtDNmFZWWFq
elhwWUt0PSg4b3RQJDUwSDZjX1Y5UjQtO3taQEMwQU1HNz1GPFJ4byVvcjEwUlVUK0FyJTNqCnpr
cExoUVdyIyFvWGdkSWAmc0tePjA5WV5wNmxQMXJJUk14IzA1Q35jVz1IX0F3KmJKLTVEVCZaMm4r
eClRSFhecAp6MDBlc2dWOHxtUWNtUlolMDJEXkBTM0wxNnRgTyVjMDA0Tkl2T0t2WUlZb2g2MnJZ
MzNTNjQwYEQ5JVkyRC08P2kKejAlNGohRjJaQDQ4OFUlMTU4KDY2MDA1d282JXBXcl5aal92NHpB
QTVIamNJcVVvR210MkxCPnJWJm5laCYjUTFpCnowMDd+MWUkb0NjRlM4bmVJfGhKbHstUCFCMVpa
OWhwbXEwKVgwaWBKd0UmPiQrRT8+JV88bFMqTVdLK24rMWNnZgp6PGsoOFlMUig/VlNBRzZ4IWU3
OHd7Y1FQdUpwQXxkO0opR3tmaWhpek0rRXJiIXAhdGNyNXcrYTM0fihZPThzNEcKencrc0xMOW4m
SmpObipLSkRpcV5VNV47YDFudkMtQHI2UCQha30xVXsoKkk9US16QHRCS0hvSX11eGRVNWR5eUB1
CnpVMUowR09EN09tYmltXkcwMDhwNFpeNl9rMm1ecDxnVz1EMnxMO0hqTjEhRERmTSFYT2FSMn5i
TD9rWCQlQ2tTbQp6Mm1rOz9wbilvfEteeWVKNyVhZEI5S2krTCEzK0ZnSGlTWVgjS0otbExKRE1u
OUNCYk90YiMlKWhSdmBZRHF0X3YKektwaXh8UUR9eWZhMUppUVJrI2o0YTFaKW4yJWY8eHluelY+
TEM2UmJWSWtVeDBiK18rQmFSM2NuVDdadiFBSnhXCnppekZiKWghanlHT09aODVGO2E/REFYUHtt
QDshMF9JZnE8RXh7KjdgMDVYRjdoUCsySGwhM0JRSj02QGZMJUZDbwp6OGlZb28zKCNiQUZgQURT
cHF0UWd2Pkg4KEhsZ1J4dDdzM31rM0tga0Z1Pj4tMlEkUU1GZlBXIUxhe2gzMzZvPlgKenVfQ010
dEh2NnpSOyZaTmlTPVg4djNDUiNma25VeEhVeEo8QVltUnNOTFdsKlBTe0FPQVJIdCM1IXdraTI/
Szt0CnohWTNrPXM3dGdheClKJXI3LUJMcGhnZTd+QmkwZys2RTZeWmgocDlUQm9jezNHQUZyXjAh
Z3U/Uk1IYUNNJCZGbAp6QmszJXVuPjB1b0JhX002V05XZXFJZ342UUU2OWM5byNleWhHdnBpT0FA
Vy1hb25rPDdyMSg/ZkN7b0k1TipVITQKejx1djY2V3RjS1NSaW0weC1LZTJkNWpCcm1MYW17O1Ft
O3ttczFyMUdubU5zYjdELUVgdClpOUY4ZlhgMl9pMy1fCnpiaDs3VWxeI3gpJnt4dlM9fHx8Nz1t
WWUzMz1NYEFnVTUoeEM+Zmc9Mk4tNz1jTm5qak9ye3lyaXk2bU1GZ0cjbAp6bkNGPWZuUXY4Q0R6
KytvNl9Mc2NsfWVRK2xeWkhBUkg+P19zQHwjI1JyNktMUkZBMSVRKz0qUlJXbm9Mc1JgN1UKenQ1
dkY8UTByNDBRKWo2PXNFNFgmc0JjdDFxPCZmYmkzVkIyT3Y2dEBxKjApO1UqbypTQVBadnx2dkAy
YVlZblQwCnpiJThhK0NiNy1nZTBEMGtuRWY1UWkjQDhUcCpjZXtOOzZscFF1Q0IlS0xfS09hcm01
Y1A2XzhJcjxlMTdpcnk2Twp6RGRIJmByWmh+c0Y9YnE5cytPMFFTZ1N+QFFMOUpteSo5NHhyPTZ5
fk1ZfiExZmV0fihOKyg8PU1gd0BEMSliK3AKeio7QyE4M2ExdUxKdiNOU0V+O3kjOD08PkljZlcz
QD93RnB3VVZ4clZaPlFkUXozMktJZUp9a357Y1paRV4reWE/CnoyRDF6IzJIT25JNyhCJV9hYz97
d0ZVUTtRUUExdEJLdHJXcm0wXzNSZ3BzKz9KZnFie2pZYmNRWH50YVJCOyMkeQp6Wk57U30xfH1n
VU9ISnhjP3dWM2Z4dXorbUo0YCFGJElaO21xUnJOc0hKZCMjKkR+anU9YlA3Py0/dn58Y3Y+dkIK
enNKNkllTndWWnhyZGpUYHlsI2JCSWEjR3hSYSN4TU15O0sjQ0R5eUd5UWRNU3hsV1QjdERlP3Ah
PzV3VCQrb0d0Cno4TDtLcDJIVVEtWk1KPTNYSlF2O3g1Y2kqP3Z1VGZlWSQ7KHtYR1dfaHVJRlI5
YTxmSmJGXnw0SSN4UX5uJERjPQp6S1loalltZ3o1TlNrRG04KmZabXs2VSE7WVhgTkc+KD9AMylY
U3M4T15ONVJ5T009VFRtcCgzPTheK3pwejJyKUMKel4+Sk97ZGVaZnNvM29xMz9XbyhZP2wkZ2U/
dVhvOyVydWBWbz4/PDwoOElfPjs4RXEjS01TOWdGbCpuZWVvc1NCCnpmb0hZbkJRSWt3a3lvd1B1
KHpkbXNgcHs8N2U0a3JhLVpXcTwyKk9zR1R2RVYlczBUZCRoWFQrISo4Qm5oMktNZQp6Qm1aUm9k
akhWP3IrXzVeWDlKMFdMNGpLV2B9bGYlQS18NDRJQEBMVHZmMXJIakcoemU2K3dASnQlQnZqdHMh
WDAKej8yeFM/X3ZlXy1rPE11amc7MEx6KjNidUc9MyRHJmVoZXB0aGxOKiRLYU95U1NRXm5XbW88
ME0rKFVFVU1FWFJRCnpNQmJaY0Y7NitLRWxNPmlLQl9LaUpsWiQ5R2BjXj1FQG9ORyltV1dhTm8t
M1RJVzgpJEhnMFViLX44P0todko+JAp6MyombmltQG1qKGFDeEU1IXR7bHc3TzVeMEVJTzd6T28m
YzZsPCt8aUR5U0JXQ0dyekBDNXtTdCFYM2hBQX1gVDQKeihUTGJYVHErKDtAPD1MOGRYbnNzeWZ0
fHcjV1NUVzwrKzM+c2dTJSg0TlRwZUktVkFxYnw3c3NKdnpOSGdPWlZ1CnphWUN2Z09fUjF+PlN5
TD1jRlV8fmd8aHl8Wml9fXM5K2R+bFlxT0I3MXo5WiR3bkM9cFI5WXo0RGhJTT5XbWpndQp6JjU2
bzZtYUNwQyZGIyN5JUc7MVBvYlI5aT9Hbk5nO2dZdGNoRCVwMTlhIWVRdFpGJjNKYUt2MzNnWjw4
RH40N0UKenRVUzFpd2ttRGFQcGo9JG0jJSlqQ1ZFWTRmbkxHTmcyQS1gWXdIVkQzZ3Z9Oz4paEF2
VH5BbXFTPkxyYGBpN2t3CnpKezVfSXRgeXJCbWxjMjVEQk83RTg7NVZvem5SPld3NWhBYXhuJDJ+
KHFgJUEtWXVTNjR3a0J5PTlkbWA0Y1hlWAp6NGN9SUA/ZStGVytiQF5SREJIVih3bk1xMnpkWDNT
V3Y5dWAle3hDLXEqVX0mYGN5WFYoJXJSVCpaNk1IP2kraSYKel9COEMoK2dyVCV7WFdVUStmQE5v
UDFSPUFXJjI2e3YtZHgpaUteLU5taXVqOHR4aiFtP1oqU3MxTntkaDR6fTAxCnopWVRvKkp5Y1NV
KStfNXI0I3l3OXsrO2k0RWUkcGVSZ0lqKzt2O1pHZEYxSyQzRSVlfjRMYUkoakMtdSUyaCQmUgp6
OWNMWGNZQ0BYd25ucyZibilfUX5UZT9yb0tHRHxkLWdeODsrYUN7e0coMV4oTzdtMzdZMS0rNikw
MWNOJnkxYXcKem9xY3tUYFBeWEpxUEJiSVc2c31kNHt6X2Y1T20/dk1nTlFFSkc/djJUPUtZZF4w
TTNJNklaeGJueSkldlpSJkxECnpKcFBsQFBzaDhReVBCQEtUeCtAUmRjQyFLWDd9a0VvO1N8al51
MmxVN1hRfU9vO2Z8O3o0TGwrX3I+QDEteGwzfAp6YXdxLUglZSZja0MrQEFoUHJQNkJLPHo9PEwq
MGtmS1VAQ1gqemVxYllRVDQoXlU+VCNfWGRUNyY7Rjcxan1Kb3kKemtDfjZsaDdFQDZvO1dAXklw
Uk5ae3B0THRMKGdRLUNZfjRtcVc7VVM3Wnh2bV98QHl6JmU1M0JwX2xUUGxmUHx6CnpyVHl4Xz5s
dkB4Iz1eIVB6UjdxcUY8JGdtYHxaSlorOzwpQ3F1Jm90PGF7ODFERjB+cnZHcjVYcn44dWBsYXYx
aAp6MUROeXRWPjJ6PTAwMDBXVkBPZz4wMDRSPTAwNGw0MDA4O18wMDRtTDAwNENgMDA4UD4wMDI2
ZTAwMCtubDMmRn0KejAwMDBYTmtsPFpjLWt6LXU+ay04MipWKXl8SXUtZ2pmRUtMMUJ3RngwUlI2
MzBEUlI0YHtQYUlMO3dIKTA3KnFvCklNNk48JGYra3h1aVUwcnIKCmxpdGVyYWwgMApIY21WP2Qw
MDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ibHVlLTF4MS5qcGcgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvYmx1
ZS0xeDEuanBnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3MGJiYjAyMTlkYjkxMDM1ZDhlMzdkNTZhNjU0OThjMTA4
NTFiNmIKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDMxOQp6Y21leD08TnBIJjBXVVhDSHdII1ZN
Z3xXY1djZEcmTEJfYyNITClaJE1XSDtpQnR5YTcoPkZqTktUamMxIThiQWEKenw3YHxta1huaVck
UGtKUTBCUWJ6ZkkqT2hmc3VpY25OZio+TnN5NlFrbiNUITIycjVuNypHS2hQKl85JlU2Y1cmCm03
LSRUdFNgTSZjS3tRY2RweGsyTVZQKnRjIXp7PlAmKEsjT3t5fV5IfEM8MVpCXytOOQoKbGl0ZXJh
bCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2Jvb2xVbmlmb3JtU2hhZGVy
LnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9yZXNvdXJjZXMvYm9vbFVuaWZvcm1TaGFkZXIudmVydApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MjI2
YjNiNWMwZmE3N2RjOTY2MzhhZWI0YjMzZDFkMTYyOGQ4MTc4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
cmVzb3VyY2VzL2Jvb2xVbmlmb3JtU2hhZGVyLnZlcnQKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoYykgMjAwOSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogQVMgSVMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCit1bmlm
b3JtIGJvb2wgYnZhbDsKK3VuaWZvcm0gYnZlYzIgYnZhbDI7Cit1bmlmb3JtIGJ2ZWMzIGJ2YWwz
OwordW5pZm9ybSBidmVjNCBidmFsNDsKKwordm9pZCBtYWluKCkKK3sKKyAgICBib29sIGFsbFNl
dCA9IGJ2YWwKKyAgICAgICAgICAgICYmIGJ2YWwyWzBdICYmIGJ2YWwyWzFdCisgICAgICAgICAg
ICAmJiBidmFsM1swXSAmJiBidmFsM1sxXSAmJiBidmFsM1syXQorICAgICAgICAgICAgJiYgYnZh
bDRbMF0gJiYgYnZhbDRbMV0gJiYgYnZhbDRbMl0gJiYgYnZhbDRbM107CisgICAgZ2xfUG9zaXRp
b24gPSB2ZWM0KChhbGxTZXQgPyAxLjAgOiAtMS4wKSwgMC4wLCAwLjAsIDEuMCk7Cit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9yZXNvdXJjZXMvYnVnLTMyODg4LXRleHR1cmUucG5nIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2J1Zy0z
Mjg4OC10ZXh0dXJlLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzhjZmU3OTk3OWI4NTIwMmJlYzE5YjhhNDU0
ZTY2OTM2MWVlOGNhCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMDA1MAp6Y21YQXZjUlpXbCtz
N2tUP0FVdmNxSDM0NFIlfUlXVXV0aCFkKTN+MVE9PTVJcyNjQktkbHByQEN+OEhpNihlWkcKel9O
MmUoazMwQUlFM2YtcCpFIWV1VDxfMEcoOXUjUUEhSHh+MDAxTn0pUmdvOTA0JlQ5enlgdkB7Tjdj
NCtReTZsCnpGTz1qQnswb2prZzBqcEUzeTw1VHBaUWo2XzApN3F0P2dfNSRPYkU8cn5CWkA8MEBo
VSZyJjBjQSE9TEI2QkF5PAp6UV59bl54I3sldiNaeGB1V3AtY2xVVSpPYEpCbykoRTYrdEIyP3U8
PldsREVSLTV1OWU+bF5OZFR4e0x6aEE1Q3sKeiZhQXp6PmxFQkRYe3FrS28/cEs/e01HMEZhRGwh
I0dGSmpjXyNzS3gyT2YmakAwVXBZQGxXOCl4Mk1Jb1VsQF8zCnpfdE5hcVklVFQ5ND9OTkZ3bGFO
RGF4JDhVZkw1MWZ1WnZHRl5RU0VQTGhzSiU+Z3JuY3M8SF8we1JWSnBVMGpAPAp6NXVGRnNIS0JJ
e1dURDhzZWZJO1lPTVE3T1dQeHtyMiM/cl4tQmJyeEcrUSo3e1JQRSlgQDkkTHpEQTgyeW5yc0UK
emUyazJZUl94XjdZZ00zSFRVK2FAPF53cEdVSXc+Sk19dXtQaW8hXzBzYDhYI3hoeXlTSVcoO0t1
UXY0ZGJoSTgyCnpLQnB4YF41bkBBUD5lIXgpKncyQjNFfX1MRD1SfXZsZkFiTHlgcm8hczwtZ0hT
YXgmfD0jcFokWjFrRlRtKz8+OQp6NzR3SVlqaF5laVByTlYtbnRrVXhYYTMkb2U4cHZNbEtPMGZW
KTFre2tjeHU2KHBrK1ZYXyN8TyV2NXd2N1hDKUoKekBvdj49KnA9flZII1kjakF7ZXxmKyllKV9X
bTQ+JmBLRnEybT1wclBJO3psSFAqPEg9ejNPYSFlNUtEPVZqQHwpCnpZV3MjYk9TSWVCP2ZnQGRS
PyVXcmJ1fSR2JXh5Ul5qfShvTXhwdiF4K21xSVVQN3NqdGZwLWh+I3JQeyhaYDFWJQp6cWcoc3Ra
ZjVVVG5VMz9gWVVeJkp4O0BfbE48dnIjUWpTeGlReSlMdEh0eT9kajx2fWdHT2huNVlCdTl1O3Zp
dUUKejRKVzkyTFRwT3pIPD19Q21BbkNLdmdvKE9RcHVAJi0mTjE2OTMxNHxJYz58cFcmOElzKUZ+
PmJXNz9xPE53aCtFCnpmVUklKnJCOyZaYjlleFk9M0kwZyF2Q21jNXFYV01qfW5PO1dlR2FgdHw4
Uihfd31vc1dkb19yVEJMaVF8RVpDWAp6OF5YZlBuM1ZxJFpqWVZLPHw9KW1UeFprUDtDXiprejI5
ZnM+OFgzZW1AbiM2WGdZeSRXJFZ3dElnZXVIcD4ldEsKem1+Tn5VdWRlIXpgXyU8biVVPUlBcDlL
PVkzY2R6MkJOPUh1IV96Z1VLZzN6eSFYdW1YSmkkWkpifilndEd2aiU+Cnpsa1VxWCtSdHZVM3M7
Xk1xVk94OWhBI1JKSilwTUYoUzYtRkdidTFfWWJoMyYoVXtsRT9ZOU1mQXJDdl8oPkdldQp6RVJx
fTxAbnpOMzZ9KkluaHYrYEh3YShPJmBAZzN4TVZHKFUoaDFuZSZ2Sl5ZK0tJZDNvPTdpdFY0WXZj
JjM5TjIKeiNiej8jTjM7JDMrJHNFOHhrPEFUPStsSWRNc0YkVHVvaERkcVdZZkBXdTQyMFVVYSM/
cnhncXFaK0JHSXRyUXFQCnpiVUx4KEBjJkV1Jn0tZV4qSCktY0RodmJ5SiVBaXM7bjs4LXN8OXJB
Vmw7VTtfVWJNIzg4ejdiK3VRcDs9KVRaWgp6UzshYFopcCpWbU42V1glX1MlenFWKSZMMSpOZnpZ
Rio8P3shYXBsWXJIbEk/PndpO1hgeHBidzY3Z3RhUDU4PCMKekUtNntvKlQtNlB8Rl9+e1l3U19j
P2FXe2Q1JkIhPiNIVzBhTVBPfikqMjNEfGMqeXJuZVoxKmk0O2oqO3Z3ZENgCnpmQ3NXWHFVOCRh
clB8S0hGM1hAMHUhSjJlXkclVjtsYj5ecUxjWkhWdjVhe0x4byZnMysheTNxeUl5N0t2RFRLZQp6
X005MnpFfWQoNmF8WjEjYGBzWk5PKkhQZXNsKGNPcU5zeCgzREtiPGJCS3E+Mz1KSXh7ayg2IXFn
PUVJSyt0UGMKekVNZ045dmtUdzlscCtsfFNPYFVeQz9WS2AyP2VqTC1yKk9tQENMPEdDayt6PSla
VHJpUnhUTWh2bDh7YWAxYGtjCno8UkVgam0tR3FPS3NpJitIMmppRDZFT09yPnNtd2I/UyZ5ISk2
ZThNJnMqQC00WjdhbSk+aEpjMUBCMlZvUitabwp6azcpRD5fU1EhKFh8aVUkSll+UGApfUp6e2RD
USs2d19BXiZ6SEEhV1kreV91dTxLentwLTxNTXVSRFYzVT00REUKelE+IUtXJWQxYnRmV3B1alBs
e3B5OWhOdH1JO1YySChzczBPS3wwe1NUOVghJklxfjNxNE5EK2MjczFQRGBLWS04Cno5VyVLVWg8
dnt7QClpcyhrbE1vYk07OWNDbkM5Y0liZCVwYS1vVnt1UWRDcllpQyo9ZHtAISljZCgtTHhJUnU2
YQp6akp4bmhaOH4qZG5yTSVQKXJIeURCSnxzM1YtVUphcSVtN3AkZEk/OSVCJXg5dn5ORUxxVyU7
eipLTCo1SkF6aSkKemopJkxSO141d2xXfCEmbGtATE5RMCVxYzVVKXAwfktMOF5tZyNPNWw/JGtC
QXU2cmBTSkN5NHF7ZkFXZl5KN0AhCnozaSpIM1M/eHF+WGs5QV87P1lSIVNMd0o+Nlo4Zk4/NFBR
d3hOdyhrRjJ8OyY3RExPUUY2TXB6KUxCdV5JV2o8KAp6REtvOClDWm19KT9fMkMpOUhSO01eaGs/
ezxFdVB+OyU4Q3NyNCp0YCVFTEBTZ0BnUE42S1BrOCZiSzAka2l4PmsKenFqU0xyWCl9SkUySTxA
MDRRUTI8O3dBQVklQiV6NiQhOGJwbD9rPUYpJCY4SG1GbCQ5IXwqS3gxYCshYUw2XmQzCnoqQFYy
aUB3fGpLQzE2MUQ/Kk9fTTBWKWdzTy1fPkshOzIxREdpMFVgaGJ9PTVTZXtrVz1hNUpjeyMtJn0y
blc0UAp6VWlKdjZucTFeVEZHezdSUkNRa2pqMEU9WDUwblo5aHVXQXoxcG1MaGtGdGl7Q1NvY2ZS
KVAxQCZAO05PayhyeHUKek1gV2Qrb0o7cFchKnEmdFIweVpnKjIhKU5EVFJqWk9nbTElRWZ+Nnhn
NG8rTFpnWkx+VyZaR0t4dzwrcTsqbGA1CnphY1dWaC1QViskYzI5I0p3PkAjKUQ3O2hGclJ+amFz
e1I2JjdFUjhkUGhreGdaR0tDd2FxSHs0RV5GNyVkNnt1YAp6bF8mRCVtT19xTmpPcmdMNGNuJm12
PEE7aiY2K3RRaD41Y2Eyd01yKz9OKDdlbWk2NU0hQGxVJlJ0YUQyXjNZTSoKejRpVGNxYFdje1Qx
KVg5Kzd0cjRQQE5MJTUwRn1CZy1iPSNYK0swPUY8VkZoZFA2VTtuQm5BRyRSZEozfGVxcEJ2CnpZ
MkUwTEFsYDZyQitpSk92QUF9U2h1alY4USs9YG9xSHFGVW1iZ1B2SE5oeDVlZ0JXREgzc3wlMks8
SStBI3p7bwp6R00kSDs1PXkoZXF9blB5WCkzYEdWLUc5aEVOR2t0KmUzWTUlKmVhJlp4cXw8I0Ni
MFowWUxYcktgTyFPem8/SzEKekZ9eWFOQExxUztpPSpgdjhCUntOJHd7SEgqLUFrJlFXenQpQzxW
SykzfFhoXjVLPWxGcFlec1lQMDtMO3haSSRNCnpTezFXKkRQODAydnFWSXRhcHJzbUxhXmN3VHI1
TkMwPHArbkROOW8rOCkhaF5hWTZCZCgqXyUjV1NMVm8qKl5MaQp6bGQxdjhtdkRXfjNoP1MrYG1C
SUErYmc9ZEFybHcxJmdtfEM0XlhWXi13eSMyUTZfRXZmUk5nPCQ5fTx3V3s+UysKekxlMk8mRHNu
MH1uTzY4ZWFxbnEyOEp9Xj17RU5AeHUwb1NCMERHbzcjODkoTFptWlAmO1EpJGZiIyF6WElrTmVP
CnpieEQqbUpDeVFDRHByYXBRPmlgSTlRfmJOeT56ZDVwNEleWHNyPi18OU98P0BXTk9XXk9Hcmp0
bTdHezxtN0c/Sgp6PyFaMih0JG02M3IxdWElKXxkTihnRG53OWYle3UzbUlnKWNgPEZpVkU2VUBr
cFo5bXs9VD5fQTAjPz51SlIjK3QKejEqdFEpJDNgcyViK15gTmNoYXVBK3p1eGBKTzlGUlFSWlEr
IUNNV20yZU1HPVA/NDU7S3BuIXJ2ZTY1O3l0MEAtCnptd3FhSVVxdH5PS1lSdVVnMjZoXkBUdXIr
eU5ZNitsTUNSUElCeGNJbU4oeUBrWkdjTnBZN154JlhsWn10OGJkcAp6e0xMVWdKVUpTITtwN0No
d0JBMm9VJWpuWHRzMTBFRmZZZihtcCVJNlEwP0BBKk0hRHA4WEw8ZEtNZFcpeFp5WCgKek87JWxm
dXN+USEkJjlXajQ3azhQKXpxKXApZGRNd1lwX0hkUChUNVZBRUVqTlk2YyhNP2s8TTJCTUpSbTt9
Ul9mCnpEb1ojRV5Pc1JaOEBEJTxnMzQoYzBLe1V3PEAlMnd6KHJzN00yZTRWVTB+KF8wOyFwPj9H
TzN4eTtwdDJMLTd2Pgp6TXQjQDkwR0UmVzRabCtRNzRlQUROMDY3aytPaypNYWRqTyNBNT8rTlkm
dlI+ZWg+aFZUfUdybiE2JU4+XzAkU2IKejVZfC05YmUxUFhGdmREYVNiKiUpcEhpRVNecDd2blRJ
QmtMVT1NUCUoaz9SYmk3Ri1EV08hJlNgcGRuRi1VZFA4CnpQezUySHh5KShYYj80fikmOFEjTWgp
UEJwald2WW9sWk5Na2x7b182Vj9GQ1lKTmdSeU9UJUF9Xj16VGFVNld0egp6Vi1tRVgkQWgwSF42
Xm1iQCtRcWllQzYhO2FLMXlOd0tqPVpeJGV1OzxEcz5DandgTEx1UiY7bnItNll5MjhPPz8Kenp7
dEd0RXUhZDxSSkNaJW95IT9CVWY2Q2BtWSNpZVE8JFRwPDR1KnVNeDMhKT4+dXhORU9KMUpHMktl
ckorYkFoCnp0TWA1ZGQqYCphdn1oazZwVT9SUkEqUiZsUytteD0qcFpKTGQ/SEthQmt6PXtWKyQ2
VnNeKCF7OVIqQkFIJnFoZQp6X2NSdEZqIU1CektpRW4+YStqOW5YKnp0Q2VaUylIIUN9SSlLbitn
ZElhUXZKZGVeaU9IcnZfcyRZWDhEYFFCQyQKekxMT21RKzIyVCN7T3RKO1peb3xzTVFwU01veUpK
VDR3bFBtYClNU20pP2dJZCMzQ08+UGdubTg1d3JWNS1MZ3c3CnpJNjxpWmUpM1k2ejlPMilMeDdR
cGVBcypJPFljQW9XSWtCZHZJMyh3S2pTK3E1M34qVHQ1cSNEbnxvTTE0VkJmeAp6PjdDd2VVcyYk
NVM+bng/MEJ1NDcmaGNmdmhhOFc0e3gqOXs5M3poMTdJME98S1VTZE14O2w1RUs1NT8lZUV1PEkK
enZwPWp3YX1qfiVCMHw/SG1NRSg9MyllSz9gUX10MjIma09mKSZmOHtTSz05V3A1NzFtclg5PU40
ITNeQDdsP3MtCnpsQTd3WTQtVU4+N0dzNVp7cWIrdytsNlNeSXFLZDwpJDw1ZDhEYTZAdjspKmJA
VU9YeF97Wnt5Nz99QzN1N0pKSAp6M09AKyk0bkRJTSpWTlJ3eztXIVpmfnVXZTJSNnJYO3pncFo1
JnRgYjRZb2V9aHtKR2Jgd0BMJVNWdT1rZ14mT0gKelowcyNzKGlpQGhGbHcwU3Y0ZGZKJV50QldI
IXcqVnRtVDBKYXhPVldmbkFQblQyQ2BuIWxYVlV5QD0zcmlkJExOCnpOampyYWN3ez5xMllaWGBB
WGt0KmN2bk5Ib31jPmNoPmZZdlJsKUImUWM+YUk3ck9VcXZyUk08NCM2byMxVX5uNwp6V2ZaaXox
fkk2aE9LNCpfN3I3YEI2MU8xYUZYcysxPCspTWRha2ZeKXJhRHl4KW8yNU5NNzNebV91U1hrKSl0
a1oKelJJMTB3QFdEeWRwR0E0dFY/ZFcxRm9IYG5RRllSSmJ7aik+SjlucU8hOH4hQkVVTERodDE8
TH52JiYhQz08Ujd+CnorWFFzOEhGTjRAYjxKOTNhSWEwa019KVBqSipeUkwrPHU3N3NOS3NRN0hf
MWchRUJvfCpJNSRPVVJEOSREU2JsPgp6IyVaMGx4e2BIfWN3PGk2Y2FyNit8SyExR3hObjIxP05g
UWlIYzNZSG5JTWkxM25TZnI7Rig7SmgwbW04eTteeDAKejUme3BqU2ludkJtYURYTXBTIW9lfEp2
MEZtZzFxTmtVWHgmV2w7SHFaejxhJWMkPXRaJmQ5PT48YVl2PEchSTtkCnpiYVojPXtgPmluV2dr
Tjc9JH4rU1kqZzNuSTFxXiZSR313bnQwXiheeHVmfjN5YlA4SmorKE9heW1uO3VNNX5pPgp6Um5v
JWZ1N2cmOUhWPj4yM3V3KXQhbWQzVSRVcG5UeGx5MyRTQXJXcWR3Jjl5bUM8JE9eaGM3UGFXPSg3
VmBgKG0KentBP0F4KSV8WCtSP05pVnRAZyljVE1CNDswSCVkdWY1cmQlS1A8aXZzPF41PUwwQGV8
R1FrYCtVdmdnPThORWtLCnozdF5IVjA9OTxPZW9YJUNTai19bEpiPEdeT15yWXhNKWolO18lTztS
U3RPdjhDMHZ6e2NwUGdCRDJBWTEzLWpGeQp6c0ZDd0olfGw+aGI7WCk2R3U8Y2I+Mm8kcHRPVCY7
NVRUV2ckTGtMPT9hcXBpQDFQJjN3ZENjclpMPDBaKTgxIXsKelBhZW8zQkpCJl5SYUBkLTI5RTBf
dzJYMyprYkhvP1hjdU5DISZJJlJvWnNGVjI/bjhHI0llIWFIWD1HVi15SWNoCnpJcC1+cVk7fnpi
MUE/YkxFa2EkNkkzb2t5NmN2Nz5VaVVpIVZNbH1kIUdFaVdON0VCe1YqV01MPWtDYFc7PnRpPAp6
cHg4VFdOQ3gtPWpleFRHcCRzb2thYjtJSmNjaGJBdE5eKHtGIzUpR3JTRn4kPTh3ZEdlQjgwaXZn
JGQ/Pl5HNHMKenZaWjcqQVRzZG1KdDYxMSVeYmwxbm1ibjxzUFI/NFQlMVl0emM8P3pKJF44K2t2
eEpAYDNTLVV1ck9hdGArTTJBCnp2QEY0IzlxTUNrdUkzVmRYKlo9Wi1OelZ0Q0A8U1RoV2VpVzwq
SDQpekJjUU9tcyYrdk0xNilDYH19PSgmM087KQp6Nkh+Y2FRN3QrPUE5TEU/RWpHTE48UGo8MF8w
QFpmeXlWRm9eV3ZwQ3FnSXZ8cG96LXpBbEhTNlBiKXQpRWdAV0sKelo3RXcrcShsTE56azY3aXk0
Py0kIW1nMzFfdWI/aEl8VzB7WDYtUDEwemloYURAKHM9Z3Zme1dGMkQyR0ZKX2kyCnpsfFBmMUd1
fFReSkYmNDlsPnotbj1uIThNcyFRN3Z6SVJYPnpRNklKVHI5dmM+THJPZHUxWikrT3hKajhyazJ3
fAp6bVV5X3k/NmcrX1B0TEA+RENaYWZUckhDUj1mayNLPTs1bW9WYC1MMEQ5OyMpNXh9QStUb2or
aHVRKUNgbWxXNkAKemZhMXQ8TiElPFlHSE0lO2p2YWBNOWBJejJTSG5yPFJ+JmI4UWphVjdaa1N7
OF9SYk9jXzE4bnM/XkxQZHt0KXlVCnorOTxQMVFxNnQrI0p8Y35XbTdEYyFmXzhASWo9cWF2KEV9
IWlVVm1wZyh4aH1LczNAPTZQRiFGI1h4MCFxNEUwbwp6dWhEZVVYJkNJOG41ZVB5WjQxWmM3PmFi
SiRJKT9nWDdnQzA/QmtIY1ZfX0xhPmN2NkZgX01saE43ZWBrYHA+MT8KelE/WnY5KmBubURQWjF6
PzR2R1pHbXxkZVpZJiU/eTNySW5wbyZkbS0+bDlkTWIpRUVHTClzfVNUMyVrX3xIcTA1Cno4Rn1X
aTYyVjBQMjc8QWAzaE5oN1F0Y35OVFZIUUBHdmFBUD9jZT5tXlkzYERYSWZ1fnlJckN5MjF1SXcm
Mj8lQgp6XzU9P0tOV2JkLUFAeVZaIT8oZFFDYytHR0h1Y3ZtVlMpVHwqMSRqZy0mdExRJWVRKl8r
Vl9TfEVGcGN+cUpRdjQKelBIc1pLd1lyamcqJmFIYlZIX2E/Xm85N2A0Z0krX3dpS1lUI2NjOFI+
WH1MO24rUEw/QUc8ZjFYaG4zWTVhKnstCnorYFVmTk1Yczh1OSNzckdfQy05d0chaWFGSEw7Nzdw
JlkpJmBsfE9AeWVKUzQ2N0hwQEBWcEtQaHpHYS13R0U0TQp6LXteRTFlJjJXZCQ5Pm5VPDlPXlop
fj1jOGxlakRycVRjQ3JwKi1GayluWiFHcCV4OCM0d1NzMVpNPjNMe0lGd2oKek5lUVglR0IxYzdu
VE5tUGpocjkodWB2Yjl7dnthd2prUDg8bE8xYz9fZWJCeC0tKSN4LUFHJFRXRz89PWNmKDtLCnpT
IzVzTXVnRGtXV3FzVU9rV2B7SEFkQEgrY3dYPz56emArPXZUNCpYcV9VYjJOVHZ5MVZ1TD9qeXpY
VF5saCNJcwp6JFNMc3xNb3d+T2NCM1VEeWgjPU9lSkB6R3Nren5+R31LN1F4M3I3O0wmVGM1VSRz
bHdzI3lGVT81PVhmLXJBfXkKemYhTlM8NGFJN1RLNX0xXmRoI2xLUjhnLVM7ciooXmA5SjxkWDYp
dnVLPFQpNm9JSHdsNlB6QUE/WGFgbm1jSHc/CnojbDhqfnQqeChUO005LVpzYV5OZmBqKiZJVlMk
cW1VKFE/Ql44SC1idTEmWm9QQjklYU0jS0xeaFFpdmVIPW9sOwp6azRCc1hkSGw1b21oJHpVIX5x
LVkmQ2h4aztFVFI4d1pqeX5WSkMlN3VvaiN8cnMzb3J7Z1E3S3Q9JmtsI2Q8cjwKek56bG8xO2FW
cHdeej1vYGtAdiZ4aUpHIXZlNElVPFY5YkhZSCM0aSo0JVY7TkQ4JjFFdnlMO14qazdTdHYrODA2
CnpwRE4mY1ZkNWtUIWZ3e2lIUzhNY05QbEMmaTZXXyE3KT0jXm4jMXBXSCVZYzlMaXtPZSEleWlO
aU9sKT5UVUU7WAp6ZnxoVWdQXnt7cWF2NXB7cFBWUEtgJTQhNmU2bHBJbnE5THVaJUVCezIxKjE0
ZGs/PDloP0NKKTFFZztDem11V3MKejFyamtScShffGMwQCMmITZCUF4lUTZyUjA7MW1ea0NqMzxW
P0tCZiU5cmYofiVMKWREPUx8VEktYFEkeFl+VGdkCnohLV42aGMpYjdEeW5HTW1ZckJDaVhAUlNI
RndEbzZ3fjNiK0hpKiYxbDVSYj5JZiRQPEdBKEAocm9YJmNOaUJybAp6JXBacXJ3K3pPenUodjNg
MEwzem5SI0ZiOUM7VG5Udz19dDVHIWlPOCFnbVdhRmQ9Pkc5QGM5K1BLMm4oJEhMaEsKek0tSExK
KU1uIV5EJklLNGgjZUBqbkJ9PSFIIzFuM219KT5PXnRAWn08ZnYjeVE4N20kNlk8SlIpUkB4NU9Q
PFU+CnpZRnhpSCNtX1J3fDgleD5VI19tPXYtcmJ2cmx5TFQ3bXE8XlV1PWR5dSFmPStJRHMza1pF
SjdRYitvSiYwaDV6Twp6YVVBNG9JP3hhekxWUFdgRWhkLU0lZkdtcD9CVV57MWJYMT9QPGx2Z2RZ
JH1KRV53di1EekJ4djdNMGhqPV8wXmwKemx0UTFVO35wSFgoKnczcDM4c0ZCOD84Wk13bC1RPDJT
WHA2bXx0YyhpTkM+cEpyRSVibll+fmwzVG9+N3QyYDxKCno1MWA+aSEqJDUyPXQ8VGJ5S21NQ0dv
SylHYVhqdj9jSE15aF5GXiR+UUN7PXR6Pmd4N3gmVjZzdnxSNTZQOFNUKgp6SyNiYW1hOFZGXl48
XkcxUD9RX3dVNUpteGtsTVFmWiQ3Sm1lSCtFZEglbj5aUCEwK1pgSkNJcz5pT0pvJUNzdm8KekRV
aCt2V2wzZ0BadXljPEF9SHVmKEc5MyY+WSg/OG1NcH5vX30jRU8hbVp5e0swRHphX1ZhNUdPeWxQ
I1BHYVNwCnpMRSlEckUpfmY2KVQyZU1TVV9hVUwmPSlacXp2LXI1Z1F+MVBGeFVaSEQ0cWp2Umsk
d2U4QE5wbjV1YihSZSl7QQp6Y0RhJGFSKTJxe3NTdXU0Y2V5QkpoaFZfTjJJZXxaN3pANWZTaFQh
WklRWWt5QHokNFVSQGN8cFVqP25URUx6K2sKelRgaFk7eyMzfDUtfnltKDRoPGx6RSNkP3hWMzBH
MTMxdGo4YV5qNzsla2ghI1IxQVFGOVhDVVZqe0lxMnRXV0VzCnprS1pnQmF4aj5DXjdVWW5FQHhM
VjdgVlptOSE8OHhOTyNEWlVwVCNzRDRuZ09QVllDNlJLY1pWKj5lLXg9WF5IWgp6KVphbWRocXM3
RVpzeG83YDBAVz8mSUN7P21zQTs0WitFJj9uK2IwRHZVOFM5Q14wYE4lPmY5RUNqJEhMP3swUkIK
entNR35GUm12KlFoeHwkRDR7UHxlNEdxKTQ5R31NYkhvXmh5cjZXalhMK280P1k4YCl6JmE7VkY1
KyRKKXpFPHEjCnpxSiY/cjQ3MTJzIXBHPFpaP18tKUcoUm5yYSE+bEc9WUkzdz5RdEBpdWEpPCh3
U2QxalJxO1I4dlMjfH1ndHRkJAp6NWYkTDRgYTBDa2daN0pjNTJrWXR5al8oeksqOWtUa0VzRk57
dzJuZHNTeSZHTk8tRFRCcyQ4I1RtZ2BzRD41WWYKejheZEg7T3J4fnRiMUk1THVZV3Zze2BuYntZ
PUhzKHFTKyZaVnBDc1ZZMCVVQEdnJUBVIX0wd0JYMllSTURDUXo+CnpILVA1LW1ldjR+SCp0Nzl5
dFhHUkFYO0o+MTxlWUJyfjFpXlFZO0omZzs+JVVHNTtHNF9VdlNjdmtqenNPTWsoQAp6P2YqeF9x
YjZMVEI+ZzI5TVlobExUNzJ2Q0YpblE4bHpaND5lUihnKmgjNSMmY25iUCN4WVZ5YDthVD1zWThR
PyUKeiM+aTt1eUdQYTZ6aCVQRDdmRk9MY29LZXg1TWxmS047bXI8O1I2OCFERFJ6IzBac1dDOEcl
aCl0fWwjYnNeNjw/CnpZUjB1SWZER1lRVys7NXRNLWtQSmdiU0IkZT5DOytMdC1RPnk+eHVlX2s+
dmItSDN9RlhePzsxU04jeCVpeV5ebAp6JkhxN0NpKElBcihNZHQqWDY5QTIkK2FYU2k+c3soanlU
aFJHeTJ3UUtrdGVBYGk4NHNQOXtnVmllMip6Z2pnPlAKeilZUVBtPWQwYl4rbUZKV0ZqLW85MFh0
P2BKYSEmKzV1UkFqLUVPbWgkcUFDPVNtZ2x3LXxAOEpwMV5kanteSXt1CnpnX0hkYEdBZVBkU2x0
KEx7PjhmZT5eZVdrQGR2JHROakZgQjBZZnJUdUhhfTNaSTlwWmJsQ20qNngqYG5gT2Y2Nwp6Zlc/
cDRjSylHVlZCISN6MmB8QmB5WjRUcD19NHJUSSNUNDlAU19XZzAkdEQpXyV+SHZMd0pfdnBoMUds
O0ErYX4Kem1kZitPcE9ndG8lR3JhPGZsPFlLenVAYV4jT0syTko4YVRCP2IrKHcpXnNZWHQqJWRJ
Nm5XLWdXd1ZQdCZkKlRICnpwa3dVbDBZfS0hbCQ1cEZpaH0zZEMrRj1yNFomQXVzNUlIQHkjO149
SUF8dUUkbDZ2U3IhP0I9R3pjUl5yVEArLQp6TiY9elktZU0tRXJuOHFmcTAtKUpAQmxTQj0mOVBQ
NHpzJE95Klg+R292ZDZGRnlOaVIrVClqOEsheGhHe2VITnsKelA+c1MwIS1gYEFlUz9hQ2x7Pis5
S2h3d1NzZSFBQ2xFPEJHPCo0RFYqM1hGeCFeSiNgYTJEKGdrZXdta0liXiRHCnp6NnBMXiNsNzkw
Xn5zTWt3VjVwQzR8Jm9mSGl7UVdWflAjYDlaNWVxcFlkQU4zdClTNGc8c0JSTC1NRTUoSHlvcwp6
WCRyajFULX0wPTR8eFYwZGcpYT5GfjhIQlgrV2VQKCh3TzZnNTxIKDdEJTltVlhTT3M7b3BFMXM9
a2s0bTckTksKejBnYWtheklvX3ZWSV9WcCNfZHdqOXB5R01PS0F8MGUrUDtOUHw7dWhsSSVeWDU4
Z2xEX3wrNEgtdFZsZFNnYlF8CnpeQk4rbWhaMiM0d0VISmw7SF96M1A7MmtDPkYzVjdpcDs2X0VV
dHZuIyN4STFpNEJ1T01wSHQxdyg0akRmeigoWAp6MlI5S2pPPVhTQDcpSTI4KVRgMXs4Q3lMUlZX
cVpJRSVGQjRzUihgVlAzQCVqUmpmbkFJdUQ7QCZofH5IaXh+WT4Kel5+IW48aj5MK0xASnRrPTVq
cllSNTlsV1YhTW8zPWZASismO25keCtgWl84eTR6P2woVXN6NGQzMlNSPil5bm1aCno4PzNQMl9C
NGBBeG88NUlOMGAkXmkxaXUoIWdxRmRCQX4qPShaI1AlYW51JHJ4ajc2fFNod1I1MGdiIz17MmdJ
ZQp6ITw+SHBFVz4rRjFtQD1XR2FHVV4/QTMpcnAoa3dfd1ItdG4rIy1JKkY1OzRvQj91bX5NU09N
flBSezMzKCV1ZmMKemwjNXxPWVglMj5aI0VBWDxVKVRVS3lofG9EZiFxa2FldyRPU3hFZW55VDg8
cnQyMXFPR0ZLdWtBMiQkNDgrKVViCnp7VlhfLWdYJiN8JlFOYWwjR2QxPjJAaUU1djRiM3FvYnp9
KldnPzt6Q1E4aWR1PFcqa3U5fjMzV0UtQ2lMSypHSgp6KUFIJTgha0p1JVJJb1p8MGdFXz9nT2dp
c0Vua3oxemZuKDRWJVk8cE5kNVN5bmNwMT1eV3clT0VzfjhiRXJeTy0KemQ0IXdSR0cwMERqdDZ+
U2JpMD4ybEMhKllkTDdFOHxKcStPeWkrIXJvbD14P3NtRD1sWFVnQFU7UDh1OE9WPFRXCnpMNEhA
KlVqT21hV1UqKkZUb1h2NzQ8ekJMc3pXbC0tITdEKztOUyhQWEVwQ0QkQWMoRUkhSEozOG4lPSFG
UFNfSwp6Ukt4a2EmWkd5aSRON35mRFdnUjNzTmU9WmZlcGZyMmhjSyt5d3FSdUJyRklBPmBXSytK
djBeRjlnPkF6NHpZJlAKejA4fiFKQW5rKyE2R312TihWcVUyYytHQUdAOT9AXmFSe1gxRHkpamhk
VzJ7RUp7SDZmKEhfNWteTS0tJnRyOU1tCnpGZiQ4dTBscHl8Xz0zYUctSEwkQGUpX1BDOVBUfnA1
fXVLYT4+YXhFY3QhQlJnUG5+SDJjTH5DMTNjKHElX1FwQwp6QWNeeGArQyNwXmxWRnA1dXApSGxq
a3pZbUI2UjBBPXFEK3dhbi1PYlROU2FJSWNLdmJ2cjRjV3greUJ8NyRSZEQKekhgbkFGQTR7ej5y
Q1RnV1RyXmx0d1l6KVpLQnc/SytCZX0+Z3dVZ25tYSNefTF2UzZvT1dnbXlGfkc/RW0+eUFsCnp0
Iz9MKSMyMUcxWkFGOXg+RWZqQ1R+bW8pNDg9VnI1ZlhRdiNCUTJEP0RzRVNpWUVJQyopOHl2dW5i
d0NjRF9Gawp6K0F1IyYkZHw9ZWRCKmloTEE7NzFnVjZUQXlRQlMlKWhIc3BkY0Q2cns2dilhU2c/
UHIzKDFUdjdsOyZHTUk5fFQKel5RQGRpRyUjYSkrcXthMiY9VDIteUg+eF4pRmc5MlohTlVNbGp7
V29zYE9aM0EtVHw9MiYrcXt8Rn5EeU1hQmFWCnpRWkB1NFhFUVlOZ1JKTio4VV52c2pENW1JVG4l
dFg+T3ZiJVU1djElPXhKYWJLSHZGdk4xMDE3JEpmbksrcnYzJAp6bnpSPmthKE4yP3pgT2YqN2hu
PkpeeHk7LUFmMWdOKVljTyFPaTNCZDhgeHRzYmtQWXRPR05sX0AqPVVuaTJIR2cKelhidWV4N219
MVh2Pk5hVjRxTHhiJTV4WWxfRWxwZzJWcCVqPHFhUVRINjJIXk88YEhIXkE+UFNMKElBWnU0b2tL
CnpfO2xrUyhAK354JkFLNktpTzd0KyY0a1ExTHpaRjQodmBFfWpLNHlicD4+TXQ8IXR0ZDUrMVIx
MU55QjBeb3drKAp6QmJ8KXBoZmo0YldjOyhYUihIUEVSeWRSKWN1WHpYKz58ay1waW0yOzBIUjF5
Y3sxS3VpWG9+NDZWeXNYbnNkb2oKem8odTJHc08qOXRkY2VTcF9GZTg1alJvckU+WF5RakRRUzJE
QlheP30qdXpSVXVEKWtLS0l1NTBsNGBOTUx1KV47Cno+cG0+PTJxRXAtPnJha05jYmZxeCMxLT5X
T3VTMVBZYHxGTzMzfUBoMnMmZm0tNnhrekZJanVOdE1lbmRVaWArRwp6U2N+RzU3Sit9VkgrY1Y/
WndeV00hS1AhTmRffTZCYn52d0pEak1mKD5MZjtaKGNnQFkycGQjRXY1TDdWVm1ndiYKeldONWQ/
bTxtYXlRSzBeYSk8KVMjXiR5fCMmIXJyKTY7JHlzZys1SSZycT5YMm40ay18Kz5FUjUrNDxuaUxR
aFloCnpoWG8rTXY5ZjA2REhaeWttLXwjd2xJJE5VYEliYkFIfFBVfmRoamFNQkVxXyhJQyFGWipN
cEN7PmclUkVme0E0eAp6X3dSQkdUZUlIU2dvMl9DeF4mfHVpeGtzJHpHU3xeMmkkSXslRHJ7SURI
VVZBcFNAdE4zQ3VQJmgwdyhEbFNrVkYKeiEzNDM+WjE3VU1YWXJJaWczZWxYdSp+R1FUQ0sydFl8
eS1HQHJRIyNPZWhDX3VBMlpvbT55eF43RFl6LWooV0FfCnowIVptODdvKjBye31qYiNPKU0/dGF3
WiohRmJJLUQzNSV5WFIwdmF+UHlXQGQmIyMqQkVVemNHbjJZWHt2VTMrWgp6IUt1Z1dWZUxTUCZf
bCpeVClKOVZNKkhUbjw/amxfJHh3eXQmNnJmKil1ZWw8WWh3dFFqWkZjQUoyQUgydEg3Z3sKemhl
LWVLcHY2eHdqWiZ6Ul9BTHdedT9YU19Ze2IyKyokNUorQD96WVhUKE9ZIUpDLW1zPzZHVDlqfnV3
ZT1NckE8Cno+fnA7TilPcmtLJnc0REZEK0NSfW8zX3N0XkxxbmleTjNXR2s3YEpOe296WmtYYDVn
VnFPUG09ZFJ8fUtUcH5sawp6eVRpPVMpWVF+U1V3PSpxPE1KfndHUjhTaCEkU1AwM1pDYDZlRUN1
X1B4QktVVzt0Yzw2OWFlKzVDNWl5Z3QqY0AKejB1K0JCRUoke35yYSNaR1NtcGNrRV5vY3BIN3F+
ZSgpYDVzJkZNIzw9akIyY1VMKHphQFJGQ2I+SzQ2TE5LSm9JCnpCbWY4dW1Hd3g8RUokMyhxcXBr
fSliP1ItbVJtLUhAbjdYZl8qMmBSO1YkQUdoaGFKITE5ZS0rWT9PXmdtNj5gVgp6dGIjJVRDdTJV
c3JffnhnZndBPSY4NW1Uc0RMYD5VJDlCX15mYmc0Pno2V29Oe0NYdUs0Zil2JCZrX0BzWVhjVjsK
eiNnUkF5Jjd+eF9wbENPPHVwIWwtd1o+bTtDWkZ2Vkd6Qz1PMFN0ejlycTJ5OWloMDtaTGArPEtl
dHUoUExscEJDCnpwSU1SZV5ZUVN8O3gyTj5vYj8qdkkpbTFhcDR6SGRMTmEoVTBPQjN5X319djYl
JTd6QmtlYHE1RiFeQyZhZWlKcgp6M3pQaip8NWVjNz9AWlVsZmdiWkMqbVZDZ3FhJjlGOHprZyhV
TG1+U3cxQU41Vis9enFgN3tQc3xBVj56SmZZc08Kemh4QEEqYnxAZk1DZ0BAX0hhMiMpIStWJEkm
RmswdV9+Qk1IOXsmPWRwYGo3Pj89ZCR3bShBMTZpNWRgSWkwekJvCnpTQV94eElFOFBeYUojTVk4
ISpZbGE5TWdyI3VeTX1JTz1xeHQzME52I3BxXjlhcShtYShMOUA0ZD1GNylgMD8/dgp6Kn1xI3F0
KiRGTV5TIUxNSmolfXRWTDR7V1IlYitOYnZuRnVzd3lmRCNBSVpXRz13b09SUi0hRWImUnJzWD9A
XkcKeiU+OUJXOEJyN3BXdCk8Y0dXNzVISDxuLVRaJSU7RWc7UD5NIUwpQk44JDxBWT0wNkhRRyZH
YlZ1V0c9YjlsWnN+CnpENWVDP2NmUH44Q3BzJHhuM2pxdk1XdUdeR3ljWkZnQWBNKDBqb3cyblMm
YUpRbVU3fjxJUHMqISg8YD9BNH5gMwp6JipzT0NsSiQ2YVZDcF5wUlI5fEc8Y1BLWT5UOW1PZHck
aTRuUHllYjJIUG1CendKSTR2bGNPYXo7fW5IbjlrMTUKeitnVUVpMCN8Vnh3bVlCeDs8fHdfQlpn
SUEkYyNxMC11SzRPUE9nIVB3YytuSGRCIW97bDgjQiR6b25jdW4mUmhoCnpGWHlWYzlWWmEhMVRB
TDc2aUdRdXFtIWtfeX5PRiZlMkxuJXgkUzJ9KllPZ1BYbXR9RmkhcjJfVkNHPT0hOWllWQp6YFRN
aT9rPEQ7U1ZhNTRpMVB2Y3hobEh0JWg1ZF8jdDVhbndDczBBSFZsSj40aks4ZkAhfVZ7bVV9KCNg
Rn10ZzIKelBhYzIjUUJeRE9LdEd3RFM7V0NkJSpCLTNVJnN5Q3VBYT17Uz0pIWJnaGBCUEM0QjVt
enl7JmJvRCg7bDZZc2krCnopNGl1NnV1X21DcTR9SDsqOzBoQEtgXkMxYnhZfEQqKEczfEVncV4m
IXFWfiMmfGZycUB+SjBrdEx5QGU8dCFQMQp6d0lCa2YoP01RT3FpKldmYyRqYVFPeUprN2d9KWZU
VVNwcFRmam0wVEVZP1lIRW5sbU43fFZMfnNyPFZsX2Q7MXEKS3NaUE52XjhXeCh8NjFrJQoKbGl0
ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2Zsb2F0VW5pZm9ybVNo
YWRlci52ZXJ0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvcmVzb3VyY2VzL2Zsb2F0VW5pZm9ybVNoYWRlci52ZXJ0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU4OTkxYjQ3NDE2NGYzY2U5N2NkZmRkMDI1OWJiNzZhMDY2NGVlN2UKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9yZXNvdXJjZXMvZmxvYXRVbmlmb3JtU2hhZGVyLnZlcnQKQEAgLTAsMCArMSw0MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoYykgMjAwOSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogQVMgSVMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLwor
Cit1bmlmb3JtIGZsb2F0IGZ2YWw7Cit1bmlmb3JtIHZlYzIgZnZhbDI7Cit1bmlmb3JtIHZlYzMg
ZnZhbDM7Cit1bmlmb3JtIHZlYzQgZnZhbDQ7CisKK3ZvaWQgbWFpbigpCit7CisgICAgZmxvYXQg
c3VtID0gZnZhbAorICAgICAgICAgICAgKyBmdmFsMlswXSArIGZ2YWwyWzFdCisgICAgICAgICAg
ICArIGZ2YWwzWzBdICsgZnZhbDNbMV0gKyBmdmFsM1syXQorICAgICAgICAgICAgKyBmdmFsNFsw
XSArIGZ2YWw0WzFdICsgZnZhbDRbMl0gKyBmdmFsNFszXTsKKyAgICBnbF9Qb3NpdGlvbiA9IHZl
YzQoc3VtLCAwLjAsIDAuMCwgMS4wKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9mcmFnbWVu
dFNoYWRlci5mcmFnIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2ZyYWdtZW50U2hhZGVyLmZyYWcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDg1OTZlZDVkYjEyMjA2ZDFjODE0NmMwNTZiMjI4M2JkZWNiN2NkOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3Jlc291cmNlcy9mcmFnbWVudFNoYWRlci5mcmFnCkBAIC0wLDAgKzEsMzIgQEAKKy8qCitD
b3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisKK1JlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCithcmUgbWV0OgorMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KzIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorCitUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIEFTIElTIEFORCBBTlkKK0VY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCitJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKK1BVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCitFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCitQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKK1BST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKK09GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCitPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8K
KworLy8gV29ya2Fyb3VuZCBmb3Igbm9uLWNvbXBsaWFudCBXZWJHTCBpbXBsZW1lbnRhdGlvbnMg
KEZJWE1FKQordmFyeWluZyBtZWRpdW1wIHZlYzMgdl9ub3JtYWw7CisKK3ZvaWQgbWFpbigpCit7
CisgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCh2X25vcm1hbC8yLjArdmVjMygwLjUpLCAxKTsKK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3Jlc291cmNlcy9nbHNsLWNvbmZvcm1hbmNlLXRlc3QuanMgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJj
ZXMvZ2xzbC1jb25mb3JtYW5jZS10ZXN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3ZWNlOGVkM2MzNTdkYWU2
MzdkZWJhOTFmMTM2MzM0NmY5MzhiMzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ2xz
bC1jb25mb3JtYW5jZS10ZXN0LmpzCkBAIC0wLDAgKzEsMzUwIEBACisvKgorKiogQ29weXJpZ2h0
IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJtaXNzaW9uIGlzIGhl
cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQor
KiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24g
ZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0
aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJp
Z2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisqKiBkaXN0cmlidXRl
LCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRv
CisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0
byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKioKKyoq
IFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNo
YWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25z
IG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFT
IElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJFU1MgT1IgSU1QTElF
RCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorKiogTUVS
Q0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5G
UklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hU
IEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisqKiBUT1JUIE9SIE9U
SEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQor
KiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFM
Uy4KKyovCitHTFNMQ29uZm9ybWFuY2VUZXN0ZXIgPSAoZnVuY3Rpb24oKXsKKwordmFyIHd0dSA9
IFdlYkdMVGVzdFV0aWxzOwordmFyIGRlZmF1bHRWZXJ0ZXhTaGFkZXIgPSBbCisgICJhdHRyaWJ1
dGUgdmVjNCB2UG9zaXRpb247IiwKKyAgInZvaWQgbWFpbigpIiwKKyAgInsiLAorICAiICAgIGds
X1Bvc2l0aW9uID0gdlBvc2l0aW9uOyIsCisgICJ9IgorXS5qb2luKCdcbicpOworCit2YXIgZGVm
YXVsdEZyYWdtZW50U2hhZGVyID0gWworICAicHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7IiwKKyAg
InZvaWQgbWFpbigpIiwKKyAgInsiLAorICAiICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMS4wLDAu
MCwwLjAsMS4wKTsiLAorICAifSIKK10uam9pbignXG4nKTsKKworZnVuY3Rpb24gbG9nKG1zZykg
eworICBpZiAod2luZG93LmNvbnNvbGUgJiYgd2luZG93LmNvbnNvbGUubG9nKSB7CisgICAgd2lu
ZG93LmNvbnNvbGUubG9nKG1zZyk7CisgIH0KK30KKwordmFyIHZTaGFkZXJEQiA9IHt9OwordmFy
IGZTaGFkZXJEQiA9IHt9OworCisvKioKKyAqIHZTaGFkZXJTb3VyY2U6IHRoZSBzb3VyY2UgY29k
ZSBmb3IgdmVydGV4IHNoYWRlcgorICogdlNoYWRlclN1Y2Nlc3M6IHRydWUgaWYgdmVydGV4IHNo
YWRlciBjb21waWxpYXRpb24gc2hvdWxkCisgKiAgIHN1Y2NlZWQuCisgKiBmU2hhZGVyU291cmNl
OiB0aGUgc291cmNlIGNvZGUgZm9yIGZyYWdtZW50IHNoYWRlcgorICogZlNoYWRlclN1Y2Nlc3M6
IHRydWUgaWYgZnJhZ21lbnQgc2hhZGVyIGNvbXBpbGlhdGlvbiBzaG91bGQKKyAqICAgc3VjY2Vl
ZC4KKyAqIGxpbmtTdWNjZXNzOiB0cnVlIG9mIGxpbmsgc2hvdWxkIHN1Y2NlZWQKKyAqIHBhc3NN
c2c6IG1zZyB0byBkZXNjcmliZSBzdWNjZXNzIGNvbmRpdGlvbi4KKyAqIHJlbmRlcjogaWYgdHJ1
ZSByZW5kZXIgdG8gdW5pdCBxdWFkLiBHcmVlbiA9IHN1Y2Nlc3MKKyAqCisgKi8KK2Z1bmN0aW9u
IHJ1bk9uZVRlc3QoZ2wsIGluZm8pIHsKKyAgdmFyIHBhc3NNc2cgPSBpbmZvLnBhc3NNc2cKKyAg
ZGVidWcoIiIpOworICBkZWJ1ZygidGVzdDogIiArIHBhc3NNc2cpOworCisgIHZhciBjb25zb2xl
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKworICBpZiAoaW5mby52U2hh
ZGVyU291cmNlID09PSB1bmRlZmluZWQpIHsKKyAgICBpZiAoaW5mby52U2hhZGVySWQpIHsKKyAg
ICAgIGluZm8udlNoYWRlclNvdXJjZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGluZm8udlNo
YWRlcklkKS50ZXh0OworICAgIH0gZWxzZSB7CisgICAgICBpbmZvLnZTaGFkZXIgPSAnZGVmYXVs
dFZlcnRleFNoYWRlcic7CisgICAgICBpbmZvLnZTaGFkZXJTb3VyY2UgPSBkZWZhdWx0VmVydGV4
U2hhZGVyOworICAgIH0KKyAgfQorICBpZiAoaW5mby5mU2hhZGVyU291cmNlID09PSB1bmRlZmlu
ZWQpIHsKKyAgICBpZiAoaW5mby5mU2hhZGVySWQpIHsKKyAgICAgIGluZm8uZlNoYWRlclNvdXJj
ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGluZm8uZlNoYWRlcklkKS50ZXh0OworICAgIH0g
ZWxzZSB7CisgICAgICBpbmZvLmZTaGFkZXIgPSAnZGVmYXVsdEZyYWdtZW50U2hhZGVyJzsKKyAg
ICAgIGluZm8uZlNoYWRlclNvdXJjZSA9IGRlZmF1bHRGcmFnbWVudFNoYWRlcjsKKyAgICB9Cisg
IH0KKworICB2YXIgdkxhYmVsID0gKGluZm8udlNoYWRlclNvdXJjZSA9PSBkZWZhdWx0VmVydGV4
U2hhZGVyID8gImRlZmF1bHQiIDogInRlc3QiKSArICIgdmVydGV4IHNoYWRlciI7CisgIHZhciBm
TGFiZWwgPSAoaW5mby5mU2hhZGVyU291cmNlID09IGRlZmF1bHRGcmFnbWVudFNoYWRlciA/ICJk
ZWZhdWx0IiA6ICJ0ZXN0IikgKyAiIGZyYWdtZW50IHNoYWRlciI7CisKKyAgdmFyIHZTb3VyY2Ug
PSBpbmZvLnZTaGFkZXJQcmVwID8gaW5mby52U2hhZGVyUHJlcChpbmZvLnZTaGFkZXJTb3VyY2Up
IDoKKyAgICBpbmZvLnZTaGFkZXJTb3VyY2U7CisKKyAgd3R1LmFkZFNoYWRlclNvdXJjZShjb25z
b2xlLCB2TGFiZWwsIHZTb3VyY2UpOworCisgIC8vIFJldXNlIGlkZW50aWNhbCBzaGFkZXJzIHNv
IHdlIHRlc3Qgc2hhcmVkIHNoYWRlci4KKyAgdmFyIHZTaGFkZXIgPSB2U2hhZGVyREJbdlNvdXJj
ZV07CisgIGlmICghdlNoYWRlcikgeworICAgIHZTaGFkZXIgPSB3dHUubG9hZFNoYWRlcihnbCwg
dlNvdXJjZSwgZ2wuVkVSVEVYX1NIQURFUik7CisgICAgaWYgKGluZm8udlNoYWRlclRlc3QpIHsK
KyAgICAgIGlmICghaW5mby52U2hhZGVyVGVzdCh2U2hhZGVyKSkgeworICAgICAgICB0ZXN0RmFp
bGVkKCJbdmVydGV4IHNoYWRlciB0ZXN0XSAiICsgcGFzc01zZyk7CisgICAgICAgIHJldHVybjsK
KyAgICAgIH0KKyAgICB9CisgICAgLy8gQXMgcGVyIEdMU0wgMS4wLjE3IDEwLjI3IHdlIGNhbiBv
bmx5IGNoZWNrIGZvciBzdWNjZXNzIG9uCisgICAgLy8gY29tcGlsZVNoYWRlciwgbm90IGZhaWx1
cmUuCisgICAgaWYgKGluZm8udlNoYWRlclN1Y2Nlc3MgJiYgIXZTaGFkZXIpIHsKKyAgICAgIHRl
c3RGYWlsZWQoIlt1bmV4cGVjdGVkIHZlcnRleCBzaGFkZXIgY29tcGlsZSBzdGF0dXNdIChleHBl
Y3RlZDogIiArCisgICAgICAgICAgICAgICAgIGluZm8udlNoYWRlclN1Y2Nlc3MgKyAiKSAiICsg
cGFzc01zZyk7CisgICAgfQorICAgIC8vIFNhdmUgdGhlIHNoYWRlcnMgc28gd2UgdGVzdCBzaGFy
ZWQgc2hhZGVyLgorICAgIGlmICh2U2hhZGVyKSB7CisgICAgICB2U2hhZGVyREJbdlNvdXJjZV0g
PSB2U2hhZGVyOworICAgIH0KKyAgfQorCisgIHZhciBmU291cmNlID0gaW5mby5mU2hhZGVyUHJl
cCA/IGluZm8uZlNoYWRlclByZXAoaW5mby5mU2hhZGVyU291cmNlKSA6CisgICAgaW5mby5mU2hh
ZGVyU291cmNlOworCisgIHd0dS5hZGRTaGFkZXJTb3VyY2UoY29uc29sZSwgZkxhYmVsLCBmU291
cmNlKTsKKworICAvLyBSZXVzZSBpZGVudGljYWwgc2hhZGVycyBzbyB3ZSB0ZXN0IHNoYXJlZCBz
aGFkZXIuCisgIHZhciBmU2hhZGVyID0gZlNoYWRlckRCW2ZTb3VyY2VdOworICBpZiAoIWZTaGFk
ZXIpIHsKKyAgICBmU2hhZGVyID0gd3R1LmxvYWRTaGFkZXIoZ2wsIGZTb3VyY2UsIGdsLkZSQUdN
RU5UX1NIQURFUik7CisgICAgaWYgKGluZm8uZlNoYWRlclRlc3QpIHsKKyAgICAgIGlmICghaW5m
by5mU2hhZGVyVGVzdChmU2hhZGVyKSkgeworICAgICAgICB0ZXN0RmFpbGVkKCJbZnJhZ21lbnQg
c2hkYWVyIHRlc3RdICIgKyBwYXNzTXNnKTsKKyAgICAgICAgcmV0dXJuOworICAgICAgfQorICAg
IH0KKyAgICAvL2RlYnVnKGZTaGFkZXIgPT0gbnVsbCA/ICJmYWlsIiA6ICJzdWNjZWVkIik7Cisg
ICAgLy8gQXMgcGVyIEdMU0wgMS4wLjE3IDEwLjI3IHdlIGNhbiBvbmx5IGNoZWNrIGZvciBzdWNj
ZXNzIG9uCisgICAgLy8gY29tcGlsZVNoYWRlciwgbm90IGZhaWx1cmUuCisgICAgaWYgKGluZm8u
ZlNoYWRlclN1Y2Nlc3MgJiYgIWZTaGFkZXIpIHsKKyAgICAgIHRlc3RGYWlsZWQoIlt1bmV4cGVj
dGVkIGZyYWdtZW50IHNoYWRlciBjb21waWxlIHN0YXR1c10gKGV4cGVjdGVkOiAiICsKKyAgICAg
ICAgICAgICAgICBpbmZvLmZTaGFkZXJTdWNjZXNzICsgIikgIiArIHBhc3NNc2cpOworICAgICAg
cmV0dXJuOworICAgIH0KKyAgICAvLyBTYWZlIHRoZSBzaGFkZXJzIHNvIHdlIHRlc3Qgc2hhcmVk
IHNoYWRlci4KKyAgICBpZiAoZlNoYWRlcikgeworICAgICAgZlNoYWRlckRCW2ZTb3VyY2VdID0g
ZlNoYWRlcjsKKyAgICB9CisgIH0KKworICBpZiAodlNoYWRlciAmJiBmU2hhZGVyKSB7CisgICAg
dmFyIHByb2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7CisgICAgZ2wuYXR0YWNoU2hhZGVyKHBy
b2dyYW0sIHZTaGFkZXIpOworICAgIGdsLmF0dGFjaFNoYWRlcihwcm9ncmFtLCBmU2hhZGVyKTsK
KworICAgIGlmICh2U291cmNlLmluZGV4T2YoInZQb3NpdGlvbiIpID49IDApIHsKKyAgICAgIGds
LmJpbmRBdHRyaWJMb2NhdGlvbihwcm9ncmFtLCAwLCAidlBvc2l0aW9uIik7CisgICAgfQorICAg
IGlmICh2U291cmNlLmluZGV4T2YoInRleENvb3JkMCIpID49IDApIHsKKyAgICAgIGdsLmJpbmRB
dHRyaWJMb2NhdGlvbihwcm9ncmFtLCAxLCAidGV4Q29vcmQwIik7CisgICAgfQorICAgIGdsLmxp
bmtQcm9ncmFtKHByb2dyYW0pOworICAgIHZhciBsaW5rZWQgPSAoZ2wuZ2V0UHJvZ3JhbVBhcmFt
ZXRlcihwcm9ncmFtLCBnbC5MSU5LX1NUQVRVUykgIT0gMCk7CisgICAgaWYgKCFsaW5rZWQpIHsK
KyAgICAgIHZhciBlcnJvciA9IGdsLmdldFByb2dyYW1JbmZvTG9nKHByb2dyYW0pOworICAgICAg
bG9nKCIqKiogRXJyb3IgbGlua2luZyBwcm9ncmFtICciK3Byb2dyYW0rIic6IitlcnJvcik7Cisg
ICAgfQorICAgIGlmIChsaW5rZWQgIT0gaW5mby5saW5rU3VjY2VzcykgeworICAgICAgdGVzdEZh
aWxlZCgiW3VuZXhwZWN0ZWQgbGluayBzdGF0dXNdICIgKyBwYXNzTXNnKTsKKyAgICAgIHJldHVy
bjsKKyAgICB9CisgIH0gZWxzZSB7CisgICAgaWYgKGluZm8ubGlua1N1Y2Nlc3MpIHsKKyAgICAg
IHRlc3RGYWlsZWQoIltsaW5rIGZhaWxlZF0gIiArIHBhc3NNc2cpOworICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgfQorCisgIGlmICghaW5mby5yZW5kZXIpIHsKKyAgICB0ZXN0UGFzc2VkKHBhc3NN
c2cpOworICAgIHJldHVybjsKKyAgfQorCisgIGdsLnVzZVByb2dyYW0ocHJvZ3JhbSk7CisgIHd0
dS5zZXR1cFVuaXRRdWFkKGdsKTsKKyAgd3R1LmRyYXdRdWFkKGdsKTsKKworICB2YXIgZGl2ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgIGRpdi5jbGFzc05hbWUgPSAidGVzdGlt
YWdlcyI7CisgIHd0dS5pbnNlcnRJbWFnZShkaXYsICJyZXN1bHQiLCB3dHUubWFrZUltYWdlKGds
LmNhbnZhcykpOworICBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnIn
KSk7CisgIGNvbnNvbGUuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgd3R1LmNoZWNrQ2FudmFzKGdsLCBb
MCwgMjU1LCAwLCAyNTVdLCAic2hvdWxkIGJlIGdyZWVuIiwgMCk7Cit9CisKK2Z1bmN0aW9uIHJ1
blRlc3RzKHNoYWRlckluZm9zKSB7CisgIHZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKKyAgdmFy
IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICBjYW52YXMud2lk
dGggPSAzMjsKKyAgY2FudmFzLmhlaWdodCA9IDMyOworICB2YXIgZ2wgPSB3dHUuY3JlYXRlM0RD
b250ZXh0KGNhbnZhcyk7CisgIGlmICghZ2wpIHsKKyAgICB0ZXN0RmFpbGVkKCJjb250ZXh0IGRv
ZXMgbm90IGV4aXN0Iik7CisgICAgZmluaXNoVGVzdCgpOworICAgIHJldHVybjsKKyAgfQorCisg
IGZvciAodmFyIGlpID0gMDsgaWkgPCBzaGFkZXJJbmZvcy5sZW5ndGg7ICsraWkpIHsKKyAgICBy
dW5PbmVUZXN0KGdsLCBzaGFkZXJJbmZvc1tpaV0pOworICB9CisKKyAgZmluaXNoVGVzdCgpOwor
fTsKKworZnVuY3Rpb24gbG9hZEV4dGVybmFsU2hhZGVycyhmaWxlbmFtZSwgcGFzc01zZykgewor
ICB2YXIgc2hhZGVySW5mb3MgPSBbXTsKKyAgdmFyIGxpbmVzID0gd3R1LnJlYWRGaWxlTGlzdChm
aWxlbmFtZSk7CisgIGZvciAodmFyIGlpID0gMDsgaWkgPCBsaW5lcy5sZW5ndGg7ICsraWkpIHsK
KyAgICB2YXIgaW5mbyA9IHsKKyAgICAgIHZTaGFkZXJTb3VyY2U6ICBkZWZhdWx0VmVydGV4U2hh
ZGVyLAorICAgICAgdlNoYWRlclN1Y2Nlc3M6IHRydWUsCisgICAgICBmU2hhZGVyU291cmNlOiAg
ZGVmYXVsdEZyYWdtZW50U2hhZGVyLAorICAgICAgZlNoYWRlclN1Y2Nlc3M6IHRydWUsCisgICAg
ICBsaW5rU3VjY2VzczogICAgdHJ1ZSwKKyAgICB9OworCisgICAgdmFyIGxpbmUgPSBsaW5lc1tp
aV07CisgICAgdmFyIGZpbGVzID0gbGluZS5zcGxpdCgvICsvKTsKKyAgICB2YXIgcGFzc01zZyA9
ICIiOworICAgIGZvciAodmFyIGpqID0gMDsgamogPCBmaWxlcy5sZW5ndGg7ICsramopIHsKKyAg
ICAgIHZhciBmaWxlID0gZmlsZXNbampdOworICAgICAgdmFyIHNoYWRlclNvdXJjZSA9IHd0dS5y
ZWFkRmlsZShmaWxlKTsKKyAgICAgIHZhciBmaXJzdExpbmUgPSBzaGFkZXJTb3VyY2Uuc3BsaXQo
IlxuIilbMF07CisgICAgICB2YXIgc3VjY2VzcyA9IHVuZGVmaW5lZDsKKyAgICAgIGlmIChmaXJz
dExpbmUuaW5kZXhPZigiZmFpbCIpID49IDApIHsKKyAgICAgICAgc3VjY2VzcyA9IGZhbHNlOwor
ICAgICAgfSBlbHNlIGlmIChmaXJzdExpbmUuaW5kZXhPZigic3VjY2VlZCIpID49IDApIHsKKyAg
ICAgICAgc3VjY2VzcyA9IHRydWU7CisgICAgICB9CisgICAgICBpZiAoc3VjY2VzcyA9PT0gdW5k
ZWZpbmVkKSB7CisgICAgICAgIHRlc3RGYWlsZWQoImJhZCBmaXJzdCBsaW5lIGluICIgKyBmaWxl
ICsgIjoiICsgZmlyc3RMaW5lKTsKKyAgICAgICAgY29udGludWU7CisgICAgICB9CisgICAgICBp
ZiAoIXd0dS5zdGFydHNXaXRoKGZpcnN0TGluZSwgIi8vICIpKSB7CisgICAgICAgIHRlc3RGYWls
ZWQoImJhZCBmaXJzdCBsaW5lIGluICIgKyBmaWxlICsgIjoiICsgZmlyc3RMaW5lKTsKKyAgICAg
ICAgY29udGludWU7CisgICAgICB9CisgICAgICBwYXNzTXNnID0gcGFzc01zZyArIChwYXNzTXNn
Lmxlbmd0aCA/ICIsICIgOiAiIikgKyBmaXJzdExpbmUuc3Vic3RyKDMpOworICAgICAgaWYgKHd0
dS5lbmRzV2l0aChmaWxlLCAiLnZlcnQiKSkgeworICAgICAgICBpbmZvLnZTaGFkZXJTb3VyY2Ug
PSBzaGFkZXJTb3VyY2U7CisgICAgICAgIGluZm8udlNoYWRlclN1Y2Nlc3MgPSBzdWNjZXNzOwor
ICAgICAgfSBlbHNlIGlmICh3dHUuZW5kc1dpdGgoZmlsZSwgIi5mcmFnIikpIHsKKyAgICAgICAg
aW5mby5mU2hhZGVyU291cmNlID0gc2hhZGVyU291cmNlOworICAgICAgICBpbmZvLmZTaGFkZXJT
dWNjZXNzID0gc3VjY2VzczsKKyAgICAgIH0KKyAgICB9CisgICAgaW5mby5saW5rU3VjY2VzcyA9
IGluZm8udlNoYWRlclN1Y2Nlc3MgJiYgaW5mby5mU2hhZGVyU3VjY2VzczsKKyAgICBpbmZvLnBh
c3NNc2cgPSBwYXNzTXNnOworICAgIHNoYWRlckluZm9zLnB1c2goaW5mbyk7CisgIH0KKyAgcmV0
dXJuIHNoYWRlckluZm9zOworfQorCitmdW5jdGlvbiBnZXRTb3VyY2UoZWxlbSkgeworICB2YXIg
c3RyID0gZWxlbS50ZXh0OworICByZXR1cm4gc3RyLnJlcGxhY2UoL15ccyovLCAnJykucmVwbGFj
ZSgvXHMqJC8sICcnKTsKK30KKworZnVuY3Rpb24gZ2V0UGFzc01lc3NhZ2Uoc291cmNlKSB7Cisg
IHZhciBsaW5lcyA9IHNvdXJjZS5zcGxpdCgnXG4nKTsKKyAgcmV0dXJuIGxpbmVzWzBdLnN1YnN0
cmluZygzKTsKK30KKworZnVuY3Rpb24gZ2V0U3VjY2Vzcyhtc2cpIHsKKyAgaWYgKG1zZy5pbmRl
eE9mKCJmYWlsIikgPj0gMCkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBpZiAobXNnLmlu
ZGV4T2YoInN1Y2NlZWQiKSA+PSAwKSB7CisgICAgcmV0dXJuIHRydWU7CisgIH0KKyAgdGVzdEZh
aWxlZCgiYmFkIHRlc3QgZGVzY3JpcHRpb24uIE11c3QgaGF2ZSAnZmFpbCcgb3IgJ3N1Y2Nlc3Mn
Iik7Cit9CisKK2Z1bmN0aW9uIHNldHVwVGVzdCgpIHsKKyAgdmFyIHZTaGFkZXJFbGVtID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ZlcnRleFNoYWRlcicpOworICB2YXIgdlNoYWRlclNvdXJj
ZSA9IGRlZmF1bHRWZXJ0ZXhTaGFkZXI7CisgIHZhciB2U2hhZGVyU3VjY2VzcyA9IHRydWU7CisK
KyAgdmFyIGZTaGFkZXJFbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZyYWdtZW50U2hh
ZGVyJyk7CisgIHZhciBmU2hhZGVyU291cmNlID0gZGVmYXVsdEZyYWdtZW50U2hhZGVyOworICB2
YXIgZlNoYWRlclN1Y2Nlc3MgPSB0cnVlOworCisgIHZhciBwYXNzTXNnID0gdW5kZWZpbmVkOwor
CisgIGlmICh2U2hhZGVyRWxlbSkgeworICAgIHZTaGFkZXJTb3VyY2UgPSBnZXRTb3VyY2UodlNo
YWRlckVsZW0pOworICAgIHBhc3NNc2cgPSBnZXRQYXNzTWVzc2FnZSh2U2hhZGVyU291cmNlKTsK
KyAgICB2U2hhZGVyU3VjY2VzcyA9IGdldFN1Y2Nlc3MocGFzc01zZyk7CisgIH0KKworICBpZiAo
ZlNoYWRlckVsZW0pIHsKKyAgICBmU2hhZGVyU291cmNlID0gZ2V0U291cmNlKGZTaGFkZXJFbGVt
KTsKKyAgICBwYXNzTXNnID0gZ2V0UGFzc01lc3NhZ2UoZlNoYWRlclNvdXJjZSk7CisgICAgZlNo
YWRlclN1Y2Nlc3MgPSBnZXRTdWNjZXNzKHBhc3NNc2cpOworICB9CisKKyAgdmFyIGxpbmtTdWNj
ZXNzID0gdlNoYWRlclN1Y2Nlc3MgJiYgZlNoYWRlclN1Y2Nlc3M7CisKKyAgaWYgKHBhc3NNc2cg
PT09IHVuZGVmaW5lZCkgeworICAgIHRlc3RGYWlsZWQoIm5vIHRlc3Qgc2hhZGVyIGZvdW5kLiIp
OworICAgIGZpbmlzaFRlc3QoKTsKKyAgICByZXR1cm47CisgIH0KKworICB2YXIgaW5mbyA9IHsK
KyAgICB2U2hhZGVyU291cmNlOiB2U2hhZGVyU291cmNlLAorICAgIHZTaGFkZXJTdWNjZXNzOiB2
U2hhZGVyU3VjY2VzcywKKyAgICBmU2hhZGVyU291cmNlOiBmU2hhZGVyU291cmNlLAorICAgIGZT
aGFkZXJTdWNjZXNzOiBmU2hhZGVyU3VjY2VzcywKKyAgICBsaW5rU3VjY2VzczogbGlua1N1Y2Nl
c3MsCisgICAgcGFzc01zZzogcGFzc01zZworICB9OworCisgIHJldHVybiBpbmZvOworfQorCitm
dW5jdGlvbiBydW5UZXN0KCkgeworICB2YXIgaW5mbyA9IHNldHVwVGVzdCgpOworICBkZXNjcmlw
dGlvbihpbmZvLnBhc3NNc2cpOworICBydW5UZXN0cyhbaW5mb10pOworfQorCitmdW5jdGlvbiBy
dW5SZW5kZXJUZXN0cyh0ZXN0cykgeworICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgdGVzdHMubGVu
Z3RoOyArK2lpKSB7CisgICAgdGVzdHNbaWldLnJlbmRlciA9IHRydWUKKyAgfQorICBydW5UZXN0
cyh0ZXN0cyk7Cit9CisKK2Z1bmN0aW9uIHJ1blJlbmRlclRlc3QoKSB7CisgIHZhciBpbmZvID0g
c2V0dXBUZXN0KCk7CisgIGRlc2NyaXB0aW9uKGluZm8ucGFzc01zZyk7CisgIHJ1blJlbmRlclRl
c3RzKFtpbmZvXSk7Cit9CisKK3JldHVybiB7CisgIHJ1blRlc3Q6IHJ1blRlc3QsCisgIHJ1blRl
c3RzOiBydW5UZXN0cywKKyAgcnVuUmVuZGVyVGVzdDogcnVuUmVuZGVyVGVzdCwKKyAgcnVuUmVu
ZGVyVGVzdHM6IHJ1blJlbmRlclRlc3RzLAorICBsb2FkRXh0ZXJuYWxTaGFkZXJzOiBsb2FkRXh0
ZXJuYWxTaGFkZXJzLAorCisgIG5vbmU6IGZhbHNlLAorfTsKK30oKSk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9y
ZXNvdXJjZXMvZ2xzbC1mZWF0dXJlLXRlc3RzLmNzcyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9nbHNsLWZlYXR1cmUt
dGVzdHMuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4MDYzZDkyYjJhNTkxZGYzNzk0MDk0NGNlMDNmMzlmZWVm
OGRjNTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ2xzbC1mZWF0dXJlLXRlc3RzLmNz
cwpAQCAtMCwwICsxLDI5IEBACitjYW52YXMgeworICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsK
KyAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDAsIHJnYmEoMjAwLCAyMDAsIDIw
MCwgLjUpIDUwJSwgdHJhbnNwYXJlbnQgNTAlKSwgbGluZWFyLWdyYWRpZW50KHJnYmEoMjAwLCAy
MDAsIDIwMCwgLjUpIDUwJSwgdHJhbnNwYXJlbnQgNTAlKTsKKyAgYmFja2dyb3VuZC1zaXplOiA4
cHggOHB4OworfQorCisuc2hhZGVyLXNvdXJjZSB7CisgIGJvcmRlcjogMXB4IGRhc2hlZCBibGFj
azsKKyAgcGFkZGluZzogMWVtOworfQorCisuc2hhZGVyLXNvdXJjZSBsaTpudGgtY2hpbGQob2Rk
KSB7IGJhY2tncm91bmQ6ICNmOGY4Zjg7IH0KKy5zaGFkZXItc291cmNlIGxpOm50aC1jaGlsZChl
dmVuKSB7IGJhY2tncm91bmQ6ICNmMGYwZjA7IH0KKworLnRlc3RpbWFnZXMgeworfQorCisudGVz
dGltYWdlcyBiciB7CisgIGNsZWFyOiBib3RoOworfQorCisudGVzdGltYWdlcyA+IGRpdiB7Cisg
IGZsb2F0OiBsZWZ0OworICBtYXJnaW46IDFlbTsKK30KKworSU1HIHsKKyAgYm9yZGVyOiAxcHgg
c29saWQgYmxhY2s7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ2xzbC1nZW5lcmF0b3IuanMg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9yZXNvdXJjZXMvZ2xzbC1nZW5lcmF0b3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjU4NzIzMmE2MDQ0NmVj
YmUwYzliMTA5OTlkM2VhZmYxYTE2M2VmNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9n
bHNsLWdlbmVyYXRvci5qcwpAQCAtMCwwICsxLDExNjcgQEAKKy8qCisqKiBDb3B5cmlnaHQgKGMp
IDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5
IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBj
b3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxl
cyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0
IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRz
IHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1
YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoq
IHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRv
IHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhl
IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwg
YmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2Yg
dGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMi
LCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJ
TkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFO
VEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5H
RU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9M
REVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklM
SVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJX
SVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBN
QVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgor
Ki8KK0dMU0xHZW5lcmF0b3IgPSAoZnVuY3Rpb24oKSB7CisKK3ZhciB2ZXJ0ZXhTaGFkZXJUZW1w
bGF0ZSA9IFsKKyAgImF0dHJpYnV0ZSB2ZWM0IGFQb3NpdGlvbjsiLAorICAiIiwKKyAgInZhcnlp
bmcgdmVjNCB2Q29sb3I7IiwKKyAgIiIsCisgICIkKGV4dHJhKSIsCisgICIkKGVtdSkiLAorICAi
IiwKKyAgInZvaWQgbWFpbigpIiwKKyAgInsiLAorICAiICAgZ2xfUG9zaXRpb24gPSBhUG9zaXRp
b247IiwKKyAgIiAgIHZlYzIgdGV4Y29vcmQgPSB2ZWMyKGFQb3NpdGlvbi54eSAqIDAuNSArIHZl
YzIoMC41LCAwLjUpKTsiLAorICAiICAgdmVjNCBjb2xvciA9IHZlYzQoIiwKKyAgIiAgICAgICB0
ZXhjb29yZCwiLAorICAiICAgICAgIHRleGNvb3JkLnggKiB0ZXhjb29yZC55LCIsCisgICIgICAg
ICAgKDEuMCAtIHRleGNvb3JkLngpICogdGV4Y29vcmQueSAqIDAuNSArIDAuNSk7IiwKKyAgIiAg
ICQodGVzdCkiLAorICAifSIKK10uam9pbigiXG4iKTsKKwordmFyIGZyYWdtZW50U2hhZGVyVGVt
cGxhdGUgPSBbCisgICIjaWYgZGVmaW5lZChHTF9FUykiLAorICAicHJlY2lzaW9uIG1lZGl1bXAg
ZmxvYXQ7IiwKKyAgIiNlbmRpZiIsCisgICIiLAorICAidmFyeWluZyB2ZWM0IHZDb2xvcjsiLAor
ICAiIiwKKyAgIiQoZXh0cmEpIiwKKyAgIiQoZW11KSIsCisgICIiLAorICAidm9pZCBtYWluKCki
LAorICAieyIsCisgICIgICAkKHRlc3QpIiwKKyAgIn0iCitdLmpvaW4oIlxuIik7CisKK3ZhciBi
YXNlVmVydGV4U2hhZGVyID0gWworICAiYXR0cmlidXRlIHZlYzQgYVBvc2l0aW9uOyIsCisgICIi
LAorICAidmFyeWluZyB2ZWM0IHZDb2xvcjsiLAorICAiIiwKKyAgInZvaWQgbWFpbigpIiwKKyAg
InsiLAorICAiICAgZ2xfUG9zaXRpb24gPSBhUG9zaXRpb247IiwKKyAgIiAgIHZlYzIgdGV4Y29v
cmQgPSB2ZWMyKGFQb3NpdGlvbi54eSAqIDAuNSArIHZlYzIoMC41LCAwLjUpKTsiLAorICAiICAg
dkNvbG9yID0gdmVjNCgiLAorICAiICAgICAgIHRleGNvb3JkLCIsCisgICIgICAgICAgdGV4Y29v
cmQueCAqIHRleGNvb3JkLnksIiwKKyAgIiAgICAgICAoMS4wIC0gdGV4Y29vcmQueCkgKiB0ZXhj
b29yZC55ICogMC41ICsgMC41KTsiLAorICAifSIKK10uam9pbigiXG4iKTsKKwordmFyIGJhc2VG
cmFnbWVudFNoYWRlciA9IFsKKyAgIiNpZiBkZWZpbmVkKEdMX0VTKSIsCisgICJwcmVjaXNpb24g
bWVkaXVtcCBmbG9hdDsiLAorICAiI2VuZGlmIiwKKyAgInZhcnlpbmcgdmVjNCB2Q29sb3I7IiwK
KyAgIiIsCisgICJ2b2lkIG1haW4oKSIsCisgICJ7IiwKKyAgIiAgIGdsX0ZyYWdDb2xvciA9IHZD
b2xvcjsiLAorICAifSIKK10uam9pbigiXG4iKTsKKwordmFyIHR5cGVzID0gWworICB7IHR5cGU6
ICJmbG9hdCIsCisgICAgY29kZTogWworICAgICAgImZsb2F0ICQoZnVuYylfZW11KCQoYXJncykp
IHsiLAorICAgICAgIiAgcmV0dXJuICQoZnVuYylfYmFzZSgkKGJhc2VBcmdzKSk7IiwKKyAgICAg
ICJ9Il0uam9pbigiXG4iKQorICB9LAorICB7IHR5cGU6ICJ2ZWMyIiwKKyAgICBjb2RlOiBbCisg
ICAgICAidmVjMiAkKGZ1bmMpX2VtdSgkKGFyZ3MpKSB7IiwKKyAgICAgICIgIHJldHVybiB2ZWMy
KCIsCisgICAgICAiICAgICAgJChmdW5jKV9iYXNlKCQoYmFzZUFyZ3NYKSksIiwKKyAgICAgICIg
ICAgICAkKGZ1bmMpX2Jhc2UoJChiYXNlQXJnc1kpKSk7IiwKKyAgICAgICJ9Il0uam9pbigiXG4i
KQorICB9LAorICB7IHR5cGU6ICJ2ZWMzIiwKKyAgICBjb2RlOiBbCisgICAgICAidmVjMyAkKGZ1
bmMpX2VtdSgkKGFyZ3MpKSB7IiwKKyAgICAgICIgIHJldHVybiB2ZWMzKCIsCisgICAgICAiICAg
ICAgJChmdW5jKV9iYXNlKCQoYmFzZUFyZ3NYKSksIiwKKyAgICAgICIgICAgICAkKGZ1bmMpX2Jh
c2UoJChiYXNlQXJnc1kpKSwiLAorICAgICAgIiAgICAgICQoZnVuYylfYmFzZSgkKGJhc2VBcmdz
WikpKTsiLAorICAgICAgIn0iXS5qb2luKCJcbiIpCisgIH0sCisgIHsgdHlwZTogInZlYzQiLAor
ICAgIGNvZGU6IFsKKyAgICAgICJ2ZWM0ICQoZnVuYylfZW11KCQoYXJncykpIHsiLAorICAgICAg
IiAgcmV0dXJuIHZlYzQoIiwKKyAgICAgICIgICAgICAkKGZ1bmMpX2Jhc2UoJChiYXNlQXJnc1gp
KSwiLAorICAgICAgIiAgICAgICQoZnVuYylfYmFzZSgkKGJhc2VBcmdzWSkpLCIsCisgICAgICAi
ICAgICAgJChmdW5jKV9iYXNlKCQoYmFzZUFyZ3NaKSksIiwKKyAgICAgICIgICAgICAkKGZ1bmMp
X2Jhc2UoJChiYXNlQXJnc1cpKSk7IiwKKyAgICAgICJ9Il0uam9pbigiXG4iKQorICB9CitdOwor
Cit2YXIgYnZlY1R5cGVzID0gWworICB7IHR5cGU6ICJidmVjMiIsCisgICAgY29kZTogWworICAg
ICAgImJ2ZWMyICQoZnVuYylfZW11KCQoYXJncykpIHsiLAorICAgICAgIiAgcmV0dXJuIGJ2ZWMy
KCIsCisgICAgICAiICAgICAgJChmdW5jKV9iYXNlKCQoYmFzZUFyZ3NYKSksIiwKKyAgICAgICIg
ICAgICAkKGZ1bmMpX2Jhc2UoJChiYXNlQXJnc1kpKSk7IiwKKyAgICAgICJ9Il0uam9pbigiXG4i
KQorICB9LAorICB7IHR5cGU6ICJidmVjMyIsCisgICAgY29kZTogWworICAgICAgImJ2ZWMzICQo
ZnVuYylfZW11KCQoYXJncykpIHsiLAorICAgICAgIiAgcmV0dXJuIGJ2ZWMzKCIsCisgICAgICAi
ICAgICAgJChmdW5jKV9iYXNlKCQoYmFzZUFyZ3NYKSksIiwKKyAgICAgICIgICAgICAkKGZ1bmMp
X2Jhc2UoJChiYXNlQXJnc1kpKSwiLAorICAgICAgIiAgICAgICQoZnVuYylfYmFzZSgkKGJhc2VB
cmdzWikpKTsiLAorICAgICAgIn0iXS5qb2luKCJcbiIpCisgIH0sCisgIHsgdHlwZTogImJ2ZWM0
IiwKKyAgICBjb2RlOiBbCisgICAgICAidmVjNCAkKGZ1bmMpX2VtdSgkKGFyZ3MpKSB7IiwKKyAg
ICAgICIgIHJldHVybiBidmVjNCgiLAorICAgICAgIiAgICAgICQoZnVuYylfYmFzZSgkKGJhc2VB
cmdzWCkpLCIsCisgICAgICAiICAgICAgJChmdW5jKV9iYXNlKCQoYmFzZUFyZ3NZKSksIiwKKyAg
ICAgICIgICAgICAkKGZ1bmMpX2Jhc2UoJChiYXNlQXJnc1opKSwiLAorICAgICAgIiAgICAgICQo
ZnVuYylfYmFzZSgkKGJhc2VBcmdzVykpKTsiLAorICAgICAgIn0iXS5qb2luKCJcbiIpCisgIH0K
K107CisKK3ZhciByZXBsYWNlUkUgPSAvXCRcKChcdyspXCkvZzsKKwordmFyIHJlcGxhY2VQYXJh
bXMgPSBmdW5jdGlvbihzdHIpIHsKKyAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7CisgIHJldHVybiBz
dHIucmVwbGFjZShyZXBsYWNlUkUsIGZ1bmN0aW9uKHN0ciwgcDEsIG9mZnNldCwgcykgeworICAg
IGZvciAodmFyIGlpID0gMTsgaWkgPCBhcmdzLmxlbmd0aDsgKytpaSkgeworICAgICAgaWYgKGFy
Z3NbaWldW3AxXSAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHJldHVybiBhcmdzW2lpXVtwMV07
CisgICAgICB9CisgICAgfQorICAgIHRocm93ICJ1bmtub3duIHN0cmluZyBwYXJhbSAnIiArIHAx
ICsgIiciOworICB9KTsKK307CisKK3ZhciBnZW5lcmF0ZVJlZmVyZW5jZVNoYWRlciA9IGZ1bmN0
aW9uKAorICAgIHNoYWRlckluZm8sIHRlbXBsYXRlLCBwYXJhbXMsIHR5cGVJbmZvLCB0ZXN0KSB7
CisgIHZhciBpbnB1dCA9IHNoYWRlckluZm8uaW5wdXQ7CisgIHZhciBvdXRwdXQgPSBzaGFkZXJJ
bmZvLm91dHB1dDsKKyAgdmFyIGZlYXR1cmUgPSBwYXJhbXMuZmVhdHVyZTsKKyAgdmFyIHRlc3RG
dW5jID0gcGFyYW1zLnRlc3RGdW5jOworICB2YXIgZW11RnVuYyA9IHBhcmFtcy5lbXVGdW5jIHx8
ICIiOworICB2YXIgZXh0cmEgPSBwYXJhbXMuZXh0cmEgfHwgJyc7CisgIHZhciBhcmdzID0gcGFy
YW1zLmFyZ3MgfHwgIiQodHlwZSkgdmFsdWUiOworICB2YXIgdHlwZSA9IHR5cGVJbmZvLnR5cGU7
CisgIHZhciB0eXBlQ29kZSA9IHR5cGVJbmZvLmNvZGU7CisKKyAgdmFyIGJhc2VBcmdzID0gcGFy
YW1zLmJhc2VBcmdzIHx8ICJ2YWx1ZSQoZmllbGQpIjsKKyAgdmFyIGJhc2VBcmdzWCA9IHJlcGxh
Y2VQYXJhbXMoYmFzZUFyZ3MsIHtmaWVsZDogIi54In0pOworICB2YXIgYmFzZUFyZ3NZID0gcmVw
bGFjZVBhcmFtcyhiYXNlQXJncywge2ZpZWxkOiAiLnkifSk7CisgIHZhciBiYXNlQXJnc1ogPSBy
ZXBsYWNlUGFyYW1zKGJhc2VBcmdzLCB7ZmllbGQ6ICIueiJ9KTsKKyAgdmFyIGJhc2VBcmdzVyA9
IHJlcGxhY2VQYXJhbXMoYmFzZUFyZ3MsIHtmaWVsZDogIi53In0pOworICB2YXIgYmFzZUFyZ3Mg
PSByZXBsYWNlUGFyYW1zKGJhc2VBcmdzLCB7ZmllbGQ6ICIifSk7CisKKyAgdGVzdCA9IHJlcGxh
Y2VQYXJhbXModGVzdCwgeworICAgIGlucHV0OiBpbnB1dCwKKyAgICBvdXRwdXQ6IG91dHB1dCwK
KyAgICBmdW5jOiBmZWF0dXJlICsgIl9lbXUiCisgIH0pOworICBlbXVGdW5jID0gcmVwbGFjZVBh
cmFtcyhlbXVGdW5jLCB7CisgICAgZnVuYzogZmVhdHVyZQorICB9KTsKKyAgYXJncyA9IHJlcGxh
Y2VQYXJhbXMoYXJncywgeworICAgIHR5cGU6IHR5cGUKKyAgfSk7CisgIHR5cGVDb2RlID0gcmVw
bGFjZVBhcmFtcyh0eXBlQ29kZSwgeworICAgIGZ1bmM6IGZlYXR1cmUsCisgICAgdHlwZTogdHlw
ZSwKKyAgICBhcmdzOiBhcmdzLAorICAgIGJhc2VBcmdzOiBiYXNlQXJncywKKyAgICBiYXNlQXJn
c1g6IGJhc2VBcmdzWCwKKyAgICBiYXNlQXJnc1k6IGJhc2VBcmdzWSwKKyAgICBiYXNlQXJnc1o6
IGJhc2VBcmdzWiwKKyAgICBiYXNlQXJnc1c6IGJhc2VBcmdzVworICB9KTsKKyAgdmFyIHNoYWRl
ciA9IHJlcGxhY2VQYXJhbXModGVtcGxhdGUsIHsKKyAgICBleHRyYTogZXh0cmEsCisgICAgZW11
OiBlbXVGdW5jICsgIlxuXG4iICsgdHlwZUNvZGUsCisgICAgdGVzdDogdGVzdAorICB9KTsKKyAg
cmV0dXJuIHNoYWRlcjsKK307CisKK3ZhciBnZW5lcmF0ZVRlc3RTaGFkZXIgPSBmdW5jdGlvbigK
KyAgICBzaGFkZXJJbmZvLCB0ZW1wbGF0ZSwgcGFyYW1zLCB0ZXN0KSB7CisgIHZhciBpbnB1dCA9
IHNoYWRlckluZm8uaW5wdXQ7CisgIHZhciBvdXRwdXQgPSBzaGFkZXJJbmZvLm91dHB1dDsKKyAg
dmFyIGZlYXR1cmUgPSBwYXJhbXMuZmVhdHVyZTsKKyAgdmFyIHRlc3RGdW5jID0gcGFyYW1zLnRl
c3RGdW5jOworICB2YXIgZXh0cmEgPSBwYXJhbXMuZXh0cmEgfHwgJyc7CisKKyAgdGVzdCA9IHJl
cGxhY2VQYXJhbXModGVzdCwgeworICAgIGlucHV0OiBpbnB1dCwKKyAgICBvdXRwdXQ6IG91dHB1
dCwKKyAgICBmdW5jOiBmZWF0dXJlCisgIH0pOworICB2YXIgc2hhZGVyID0gcmVwbGFjZVBhcmFt
cyh0ZW1wbGF0ZSwgeworICAgIGV4dHJhOiBleHRyYSwKKyAgICBlbXU6ICcnLAorICAgIHRlc3Q6
IHRlc3QKKyAgfSk7CisgIHJldHVybiBzaGFkZXI7Cit9OworCit2YXIgcnVuRmVhdHVyZVRlc3Qg
PSBmdW5jdGlvbihwYXJhbXMpIHsKKyAgdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOworICB2YXIg
Z3JpZFJlcyA9IHBhcmFtcy5ncmlkUmVzOworICB2YXIgdmVydGV4VG9sZXJhbmNlID0gcGFyYW1z
LnRvbGVyYW5jZSB8fCAwOworICB2YXIgZnJhZ21lbnRUb2xlcmFuY2UgPSB2ZXJ0ZXhUb2xlcmFu
Y2U7CisgIGlmICgnZnJhZ21lbnRUb2xlcmFuY2UnIGluIHBhcmFtcykKKyAgICBmcmFnbWVudFRv
bGVyYW5jZSA9IHBhcmFtcy5mcmFnbWVudFRvbGVyYW5jZSB8fCAwOworCisgIGRlc2NyaXB0aW9u
KCJUZXN0aW5nIEdMU0wgZmVhdHVyZTogIiArIHBhcmFtcy5mZWF0dXJlKTsKKworICB2YXIgd2lk
dGggPSAzMjsKKyAgdmFyIGhlaWdodCA9IDMyOworCisgIHZhciBjb25zb2xlID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKyAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2NhbnZhcycpOworICBjYW52YXMud2lkdGggPSB3aWR0aDsKKyAgY2FudmFzLmhl
aWdodCA9IGhlaWdodDsKKyAgdmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMpOwor
ICBpZiAoIWdsKSB7CisgICAgdGVzdEZhaWxlZCgiY29udGV4dCBkb2VzIG5vdCBleGlzdCIpOwor
ICAgIGZpbmlzaFRlc3QoKTsKKyAgICByZXR1cm47CisgIH0KKworICB2YXIgY2FudmFzMmQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKKyAgY2FudmFzMmQud2lkdGggPSB3aWR0
aDsKKyAgY2FudmFzMmQuaGVpZ2h0ID0gaGVpZ2h0OworICB2YXIgY3R4ID0gY2FudmFzMmQuZ2V0
Q29udGV4dCgiMmQiKTsKKyAgdmFyIGltZ0RhdGEgPSBjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIHdp
ZHRoLCBoZWlnaHQpOworCisgIHZhciBzaGFkZXJJbmZvcyA9IFsKKyAgICB7IHR5cGU6ICJ2ZXJ0
ZXgiLAorICAgICAgaW5wdXQ6ICJjb2xvciIsCisgICAgICBvdXRwdXQ6ICJ2Q29sb3IiLAorICAg
ICAgdmVydGV4U2hhZGVyVGVtcGxhdGU6IHZlcnRleFNoYWRlclRlbXBsYXRlLAorICAgICAgZnJh
Z21lbnRTaGFkZXJUZW1wbGF0ZTogYmFzZUZyYWdtZW50U2hhZGVyLAorICAgICAgdG9sZXJhbmNl
OiB2ZXJ0ZXhUb2xlcmFuY2UKKyAgICB9LAorICAgIHsgdHlwZTogImZyYWdtZW50IiwKKyAgICAg
IGlucHV0OiAidkNvbG9yIiwKKyAgICAgIG91dHB1dDogImdsX0ZyYWdDb2xvciIsCisgICAgICB2
ZXJ0ZXhTaGFkZXJUZW1wbGF0ZTogYmFzZVZlcnRleFNoYWRlciwKKyAgICAgIGZyYWdtZW50U2hh
ZGVyVGVtcGxhdGU6IGZyYWdtZW50U2hhZGVyVGVtcGxhdGUsCisgICAgICB0b2xlcmFuY2U6IGZy
YWdtZW50VG9sZXJhbmNlCisgICAgfQorICBdOworICBmb3IgKHZhciBzcyA9IDA7IHNzIDwgc2hh
ZGVySW5mb3MubGVuZ3RoOyArK3NzKSB7CisgICAgdmFyIHNoYWRlckluZm8gPSBzaGFkZXJJbmZv
c1tzc107CisgICAgdmFyIHRlc3RzID0gcGFyYW1zLnRlc3RzOworICAgIHZhciB0ZXN0VHlwZXMg
PSBwYXJhbXMuZW11RnVuY3MgfHwgKHBhcmFtcy5idmVjVGVzdCA/IGJ2ZWNUeXBlcyA6IHR5cGVz
KTsKKyAgICAvLyBUZXN0IHZlcnRleCBzaGFkZXJzCisgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8
IHRlc3RzLmxlbmd0aDsgKytpaSkgeworICAgICAgdmFyIHR5cGUgPSB0ZXN0VHlwZXNbaWldOwor
ICAgICAgaWYgKHBhcmFtcy5zaW1wbGVFbXUpIHsKKyAgICAgICAgdHlwZSA9IHsKKyAgICAgICAg
ICB0eXBlOiB0eXBlLnR5cGUsCisgICAgICAgICAgY29kZTogcGFyYW1zLnNpbXBsZUVtdQorICAg
ICAgICB9OworICAgICAgfQorICAgICAgZGVidWcoIiIpOworICAgICAgdmFyIHN0ciA9IHJlcGxh
Y2VQYXJhbXMocGFyYW1zLnRlc3RGdW5jLCB7CisgICAgICAgIGZ1bmM6IHBhcmFtcy5mZWF0dXJl
LAorICAgICAgICB0eXBlOiB0eXBlLnR5cGUsCisgICAgICAgIGFyZzA6IHR5cGUudHlwZQorICAg
ICAgfSk7CisgICAgICBkZWJ1ZygiVGVzdGluZzogIiArIHN0ciArICIgaW4gIiArIHNoYWRlcklu
Zm8udHlwZSArICIgc2hhZGVyIik7CisKKyAgICAgIHZhciByZWZlcmVuY2VWZXJ0ZXhTaGFkZXJT
b3VyY2UgPSBnZW5lcmF0ZVJlZmVyZW5jZVNoYWRlcigKKyAgICAgICAgICBzaGFkZXJJbmZvLAor
ICAgICAgICAgIHNoYWRlckluZm8udmVydGV4U2hhZGVyVGVtcGxhdGUsCisgICAgICAgICAgcGFy
YW1zLAorICAgICAgICAgIHR5cGUsCisgICAgICAgICAgdGVzdHNbaWldKTsKKyAgICAgIHZhciBy
ZWZlcmVuY2VGcmFnbWVudFNoYWRlclNvdXJjZSA9IGdlbmVyYXRlUmVmZXJlbmNlU2hhZGVyKAor
ICAgICAgICAgIHNoYWRlckluZm8sCisgICAgICAgICAgc2hhZGVySW5mby5mcmFnbWVudFNoYWRl
clRlbXBsYXRlLAorICAgICAgICAgIHBhcmFtcywKKyAgICAgICAgICB0eXBlLAorICAgICAgICAg
IHRlc3RzW2lpXSk7CisgICAgICB2YXIgdGVzdFZlcnRleFNoYWRlclNvdXJjZSA9IGdlbmVyYXRl
VGVzdFNoYWRlcigKKyAgICAgICAgICBzaGFkZXJJbmZvLAorICAgICAgICAgIHNoYWRlckluZm8u
dmVydGV4U2hhZGVyVGVtcGxhdGUsCisgICAgICAgICAgcGFyYW1zLAorICAgICAgICAgIHRlc3Rz
W2lpXSk7CisgICAgICB2YXIgdGVzdEZyYWdtZW50U2hhZGVyU291cmNlID0gZ2VuZXJhdGVUZXN0
U2hhZGVyKAorICAgICAgICAgIHNoYWRlckluZm8sCisgICAgICAgICAgc2hhZGVySW5mby5mcmFn
bWVudFNoYWRlclRlbXBsYXRlLAorICAgICAgICAgIHBhcmFtcywKKyAgICAgICAgICB0ZXN0c1tp
aV0pOworCisgICAgICBkZWJ1ZygiIik7CisgICAgICB3dHUuYWRkU2hhZGVyU291cmNlKAorICAg
ICAgICAgIGNvbnNvbGUsICJyZWZlcmVuY2UgdmVydGV4IHNoYWRlciIsIHJlZmVyZW5jZVZlcnRl
eFNoYWRlclNvdXJjZSk7CisgICAgICB3dHUuYWRkU2hhZGVyU291cmNlKAorICAgICAgICAgIGNv
bnNvbGUsICJyZWZlcmVuY2UgZnJhZ21lbnQgc2hhZGVyIiwgcmVmZXJlbmNlRnJhZ21lbnRTaGFk
ZXJTb3VyY2UpOworICAgICAgd3R1LmFkZFNoYWRlclNvdXJjZSgKKyAgICAgICAgICBjb25zb2xl
LCAidGVzdCB2ZXJ0ZXggc2hhZGVyIiwgdGVzdFZlcnRleFNoYWRlclNvdXJjZSk7CisgICAgICB3
dHUuYWRkU2hhZGVyU291cmNlKAorICAgICAgICAgIGNvbnNvbGUsICJ0ZXN0IGZyYWdtZW50IHNo
YWRlciIsIHRlc3RGcmFnbWVudFNoYWRlclNvdXJjZSk7CisgICAgICBkZWJ1ZygiIik7CisKKyAg
ICAgIHZhciByZWZEYXRhID0gZHJhdygKKyAgICAgICAgICBjYW52YXMsIHJlZmVyZW5jZVZlcnRl
eFNoYWRlclNvdXJjZSwgcmVmZXJlbmNlRnJhZ21lbnRTaGFkZXJTb3VyY2UpOworICAgICAgdmFy
IHJlZkltZyA9IHd0dS5tYWtlSW1hZ2UoY2FudmFzKTsKKyAgICAgIGlmIChzcyA9PSAwKSB7Cisg
ICAgICAgIHZhciB0ZXN0RGF0YSA9IGRyYXcoCisgICAgICAgICAgICBjYW52YXMsIHRlc3RWZXJ0
ZXhTaGFkZXJTb3VyY2UsIHJlZmVyZW5jZUZyYWdtZW50U2hhZGVyU291cmNlKTsKKyAgICAgIH0g
ZWxzZSB7CisgICAgICAgIHZhciB0ZXN0RGF0YSA9IGRyYXcoCisgICAgICAgICAgICBjYW52YXMs
IHJlZmVyZW5jZVZlcnRleFNoYWRlclNvdXJjZSwgdGVzdEZyYWdtZW50U2hhZGVyU291cmNlKTsK
KyAgICAgIH0KKyAgICAgIHZhciB0ZXN0SW1nID0gd3R1Lm1ha2VJbWFnZShjYW52YXMpOworCisg
ICAgICByZXBvcnRSZXN1bHRzKHJlZkRhdGEsIHJlZkltZywgdGVzdERhdGEsIHRlc3RJbWcsIHNo
YWRlckluZm8udG9sZXJhbmNlKTsKKyAgICB9CisgIH0KKworICBmaW5pc2hUZXN0KCk7CisKKyAg
ZnVuY3Rpb24gcmVwb3J0UmVzdWx0cyhyZWZEYXRhLCByZWZJbWFnZSwgdGVzdERhdGEsIHRlc3RJ
bWFnZSwgdG9sZXJhbmNlKSB7CisgICAgdmFyIHNhbWUgPSB0cnVlOworICAgIGZvciAodmFyIHl5
ID0gMDsgeXkgPCBoZWlnaHQ7ICsreXkpIHsKKyAgICAgIGZvciAodmFyIHh4ID0gMDsgeHggPCB3
aWR0aDsgKyt4eCkgeworICAgICAgICB2YXIgb2Zmc2V0ID0gKHl5ICogd2lkdGggKyB4eCkgKiA0
OworICAgICAgICB2YXIgaW1nT2Zmc2V0ID0gKChoZWlnaHQgLSB5eSAtIDEpICogd2lkdGggKyB4
eCkgKiA0OworICAgICAgICBpbWdEYXRhLmRhdGFbaW1nT2Zmc2V0ICsgMF0gPSAwOworICAgICAg
ICBpbWdEYXRhLmRhdGFbaW1nT2Zmc2V0ICsgMV0gPSAwOworICAgICAgICBpbWdEYXRhLmRhdGFb
aW1nT2Zmc2V0ICsgMl0gPSAwOworICAgICAgICBpbWdEYXRhLmRhdGFbaW1nT2Zmc2V0ICsgM10g
PSAyNTU7CisgICAgICAgIGlmIChNYXRoLmFicyhyZWZEYXRhW29mZnNldCArIDBdIC0gdGVzdERh
dGFbb2Zmc2V0ICsgMF0pID4gdG9sZXJhbmNlIHx8CisgICAgICAgICAgICBNYXRoLmFicyhyZWZE
YXRhW29mZnNldCArIDFdIC0gdGVzdERhdGFbb2Zmc2V0ICsgMV0pID4gdG9sZXJhbmNlIHx8Cisg
ICAgICAgICAgICBNYXRoLmFicyhyZWZEYXRhW29mZnNldCArIDJdIC0gdGVzdERhdGFbb2Zmc2V0
ICsgMl0pID4gdG9sZXJhbmNlIHx8CisgICAgICAgICAgICBNYXRoLmFicyhyZWZEYXRhW29mZnNl
dCArIDNdIC0gdGVzdERhdGFbb2Zmc2V0ICsgM10pID4gdG9sZXJhbmNlKSB7CisgICAgICAgICAg
aW1nRGF0YS5kYXRhW2ltZ09mZnNldF0gPSAyNTU7CisgICAgICAgICAgc2FtZSA9IGZhbHNlOwor
ICAgICAgICB9CisgICAgICB9CisgICAgfQorCisgICAgdmFyIGRpZmZJbWcgPSBudWxsOworICAg
IGlmICghc2FtZSkgeworICAgICAgY3R4LnB1dEltYWdlRGF0YShpbWdEYXRhLCAwLCAwKTsKKyAg
ICAgIGRpZmZJbWcgPSB3dHUubWFrZUltYWdlKGNhbnZhczJkKTsKKyAgICB9CisKKyAgICB2YXIg
ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZGl2LmNsYXNzTmFtZSA9
ICJ0ZXN0aW1hZ2VzIjsKKyAgICB3dHUuaW5zZXJ0SW1hZ2UoZGl2LCAicmVmIiwgcmVmSW1nKTsK
KyAgICB3dHUuaW5zZXJ0SW1hZ2UoZGl2LCAidGVzdCIsIHRlc3RJbWcpOworICAgIGlmIChkaWZm
SW1nKSB7CisgICAgICB3dHUuaW5zZXJ0SW1hZ2UoZGl2LCAiZGlmZiIsIGRpZmZJbWcpOworICAg
IH0KKyAgICBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnInKSk7CisK
KworICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQoZGl2KTsKKworICAgIGlmICghc2FtZSkgeworICAg
ICAgdGVzdEZhaWxlZCgiaW1hZ2VzIGFyZSBkaWZmZXJlbnQiKTsKKyAgICB9IGVsc2UgeworICAg
ICAgdGVzdFBhc3NlZCgiaW1hZ2VzIGFyZSB0aGUgc2FtZSIpOworICAgIH0KKworICAgIGNvbnNv
bGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaHInKSk7CisgIH0KKworICBm
dW5jdGlvbiBkcmF3KGNhbnZhcywgdnNTb3VyY2UsIGZzU291cmNlKSB7CisgICAgdmFyIHByb2dy
YW0gPSB3dHUubG9hZFByb2dyYW0oZ2wsIHZzU291cmNlLCBmc1NvdXJjZSwgdGVzdEZhaWxlZCk7
CisKKyAgICB2YXIgcG9zTG9jID0gZ2wuZ2V0QXR0cmliTG9jYXRpb24ocHJvZ3JhbSwgImFQb3Np
dGlvbiIpOworICAgIFdlYkdMVGVzdFV0aWxzLnNldHVwUXVhZChnbCwgZ3JpZFJlcywgcG9zTG9j
KTsKKworICAgIGdsLnVzZVByb2dyYW0ocHJvZ3JhbSk7CisgICAgZ2wuY2xlYXJDb2xvcigwLCAw
LCAxLCAxKTsKKyAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVG
RkVSX0JJVCk7CisgICAgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgZ3JpZFJlcyAqIGdy
aWRSZXMgKiA2LCBnbC5VTlNJR05FRF9TSE9SVCwgMCk7CisgICAgd3R1LmdsRXJyb3JTaG91bGRC
ZShnbCwgZ2wuTk9fRVJST1IsICJubyBlcnJvcnMgZnJvbSBkcmF3Iik7CisKKyAgICB2YXIgaW1n
ID0gbmV3IFVpbnQ4QXJyYXkod2lkdGggKiBoZWlnaHQgKiA0KTsKKyAgICBnbC5yZWFkUGl4ZWxz
KDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGltZyk7Cisg
ICAgcmV0dXJuIGltZzsKKyAgfQorCit9OworCit2YXIgcnVuQmFzaWNUZXN0ID0gZnVuY3Rpb24o
cGFyYW1zKSB7CisgIHZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKKyAgdmFyIGdyaWRSZXMgPSBw
YXJhbXMuZ3JpZFJlczsKKyAgdmFyIHZlcnRleFRvbGVyYW5jZSA9IHBhcmFtcy50b2xlcmFuY2Ug
fHwgMDsKKyAgdmFyIGZyYWdtZW50VG9sZXJhbmNlID0gdmVydGV4VG9sZXJhbmNlOworICBpZiAo
J2ZyYWdtZW50VG9sZXJhbmNlJyBpbiBwYXJhbXMpCisgICAgZnJhZ21lbnRUb2xlcmFuY2UgPSBw
YXJhbXMuZnJhZ21lbnRUb2xlcmFuY2UgfHwgMDsKKworICBkZXNjcmlwdGlvbigiVGVzdGluZyA6
ICIgKyBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGl0bGUiKVswXS5pbm5lclRleHQp
OworCisgIHZhciB3aWR0aCA9IDMyOworICB2YXIgaGVpZ2h0ID0gMzI7CisKKyAgdmFyIGNvbnNv
bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOworICB2YXIgY2FudmFzID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7CisgIGNhbnZhcy53aWR0aCA9IHdpZHRo
OworICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0OworICB2YXIgZ2wgPSB3dHUuY3JlYXRlM0RDb250
ZXh0KGNhbnZhcyk7CisgIGlmICghZ2wpIHsKKyAgICB0ZXN0RmFpbGVkKCJjb250ZXh0IGRvZXMg
bm90IGV4aXN0Iik7CisgICAgZmluaXNoVGVzdCgpOworICAgIHJldHVybjsKKyAgfQorCisgIHZh
ciBjYW52YXMyZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICBjYW52YXMy
ZC53aWR0aCA9IHdpZHRoOworICBjYW52YXMyZC5oZWlnaHQgPSBoZWlnaHQ7CisgIHZhciBjdHgg
PSBjYW52YXMyZC5nZXRDb250ZXh0KCIyZCIpOworICB2YXIgaW1nRGF0YSA9IGN0eC5nZXRJbWFn
ZURhdGEoMCwgMCwgd2lkdGgsIGhlaWdodCk7CisKKyAgdmFyIHNoYWRlckluZm9zID0gWworICAg
IHsgdHlwZTogInZlcnRleCIsCisgICAgICBpbnB1dDogImNvbG9yIiwKKyAgICAgIG91dHB1dDog
InZDb2xvciIsCisgICAgICB2ZXJ0ZXhTaGFkZXJUZW1wbGF0ZTogdmVydGV4U2hhZGVyVGVtcGxh
dGUsCisgICAgICBmcmFnbWVudFNoYWRlclRlbXBsYXRlOiBiYXNlRnJhZ21lbnRTaGFkZXIsCisg
ICAgICB0b2xlcmFuY2U6IHZlcnRleFRvbGVyYW5jZQorICAgIH0sCisgICAgeyB0eXBlOiAiZnJh
Z21lbnQiLAorICAgICAgaW5wdXQ6ICJ2Q29sb3IiLAorICAgICAgb3V0cHV0OiAiZ2xfRnJhZ0Nv
bG9yIiwKKyAgICAgIHZlcnRleFNoYWRlclRlbXBsYXRlOiBiYXNlVmVydGV4U2hhZGVyLAorICAg
ICAgZnJhZ21lbnRTaGFkZXJUZW1wbGF0ZTogZnJhZ21lbnRTaGFkZXJUZW1wbGF0ZSwKKyAgICAg
IHRvbGVyYW5jZTogZnJhZ21lbnRUb2xlcmFuY2UKKyAgICB9CisgIF07CisgIGZvciAodmFyIHNz
ID0gMDsgc3MgPCBzaGFkZXJJbmZvcy5sZW5ndGg7ICsrc3MpIHsKKyAgICB2YXIgc2hhZGVySW5m
byA9IHNoYWRlckluZm9zW3NzXTsKKyAgICB2YXIgdGVzdHMgPSBwYXJhbXMudGVzdHM7CisvLyAg
ICB2YXIgdGVzdFR5cGVzID0gcGFyYW1zLmVtdUZ1bmNzIHx8IChwYXJhbXMuYnZlY1Rlc3QgPyBi
dmVjVHlwZXMgOiB0eXBlcyk7CisgICAgLy8gVGVzdCB2ZXJ0ZXggc2hhZGVycworICAgIGZvciAo
dmFyIGlpID0gMDsgaWkgPCB0ZXN0cy5sZW5ndGg7ICsraWkpIHsKKyAgICAgIHZhciB0ZXN0ID0g
dGVzdHNbaWldOworICAgICAgZGVidWcoIiIpOworICAgICAgZGVidWcoIlRlc3Rpbmc6ICIgKyB0
ZXN0Lm5hbWUgKyAiIGluICIgKyBzaGFkZXJJbmZvLnR5cGUgKyAiIHNoYWRlciIpOworCisgICAg
ICBmdW5jdGlvbiBnZW5TaGFkZXIoc2hhZGVySW5mbywgdGVtcGxhdGUsIHNoYWRlciwgc3Vicykg
eworICAgICAgICBzaGFkZXIgPSByZXBsYWNlUGFyYW1zKHNoYWRlciwgc3VicywgeworICAgICAg
ICAgICAgaW5wdXQ6IHNoYWRlckluZm8uaW5wdXQsCisgICAgICAgICAgICBvdXRwdXQ6IHNoYWRl
ckluZm8ub3V0cHV0CisgICAgICAgICAgfSk7CisgICAgICAgIHNoYWRlciA9IHJlcGxhY2VQYXJh
bXModGVtcGxhdGUsIHN1YnMsIHsKKyAgICAgICAgICAgIHRlc3Q6IHNoYWRlciwKKyAgICAgICAg
ICAgIGVtdTogIiIsCisgICAgICAgICAgICBleHRyYTogIiIKKyAgICAgICAgICB9KTsKKyAgICAg
ICAgcmV0dXJuIHNoYWRlcjsKKyAgICAgIH0KKworICAgICAgdmFyIHJlZmVyZW5jZVZlcnRleFNo
YWRlclNvdXJjZSA9IGdlblNoYWRlcigKKyAgICAgICAgICBzaGFkZXJJbmZvLAorICAgICAgICAg
IHNoYWRlckluZm8udmVydGV4U2hhZGVyVGVtcGxhdGUsCisgICAgICAgICAgdGVzdC5yZWZlcmVu
Y2Uuc2hhZGVyLAorICAgICAgICAgIHRlc3QucmVmZXJlbmNlLnN1YnMpOworICAgICAgdmFyIHJl
ZmVyZW5jZUZyYWdtZW50U2hhZGVyU291cmNlID0gZ2VuU2hhZGVyKAorICAgICAgICAgIHNoYWRl
ckluZm8sCisgICAgICAgICAgc2hhZGVySW5mby5mcmFnbWVudFNoYWRlclRlbXBsYXRlLAorICAg
ICAgICAgIHRlc3QucmVmZXJlbmNlLnNoYWRlciwKKyAgICAgICAgICB0ZXN0LnJlZmVyZW5jZS5z
dWJzKTsKKyAgICAgIHZhciB0ZXN0VmVydGV4U2hhZGVyU291cmNlID0gZ2VuU2hhZGVyKAorICAg
ICAgICAgIHNoYWRlckluZm8sCisgICAgICAgICAgc2hhZGVySW5mby52ZXJ0ZXhTaGFkZXJUZW1w
bGF0ZSwKKyAgICAgICAgICB0ZXN0LnRlc3Quc2hhZGVyLAorICAgICAgICAgIHRlc3QudGVzdC5z
dWJzKTsKKyAgICAgIHZhciB0ZXN0RnJhZ21lbnRTaGFkZXJTb3VyY2UgPSBnZW5TaGFkZXIoCisg
ICAgICAgICAgc2hhZGVySW5mbywKKyAgICAgICAgICBzaGFkZXJJbmZvLmZyYWdtZW50U2hhZGVy
VGVtcGxhdGUsCisgICAgICAgICAgdGVzdC50ZXN0LnNoYWRlciwKKyAgICAgICAgICB0ZXN0LnRl
c3Quc3Vicyk7CisKKyAgICAgIGRlYnVnKCIiKTsKKyAgICAgIHd0dS5hZGRTaGFkZXJTb3VyY2Uo
CisgICAgICAgICAgY29uc29sZSwgInJlZmVyZW5jZSB2ZXJ0ZXggc2hhZGVyIiwgcmVmZXJlbmNl
VmVydGV4U2hhZGVyU291cmNlKTsKKyAgICAgIHd0dS5hZGRTaGFkZXJTb3VyY2UoCisgICAgICAg
ICAgY29uc29sZSwgInJlZmVyZW5jZSBmcmFnbWVudCBzaGFkZXIiLCByZWZlcmVuY2VGcmFnbWVu
dFNoYWRlclNvdXJjZSk7CisgICAgICB3dHUuYWRkU2hhZGVyU291cmNlKAorICAgICAgICAgIGNv
bnNvbGUsICJ0ZXN0IHZlcnRleCBzaGFkZXIiLCB0ZXN0VmVydGV4U2hhZGVyU291cmNlKTsKKyAg
ICAgIHd0dS5hZGRTaGFkZXJTb3VyY2UoCisgICAgICAgICAgY29uc29sZSwgInRlc3QgZnJhZ21l
bnQgc2hhZGVyIiwgdGVzdEZyYWdtZW50U2hhZGVyU291cmNlKTsKKyAgICAgIGRlYnVnKCIiKTsK
KworICAgICAgdmFyIHJlZkRhdGEgPSBkcmF3KAorICAgICAgICAgIGNhbnZhcywgcmVmZXJlbmNl
VmVydGV4U2hhZGVyU291cmNlLCByZWZlcmVuY2VGcmFnbWVudFNoYWRlclNvdXJjZSk7CisgICAg
ICB2YXIgcmVmSW1nID0gd3R1Lm1ha2VJbWFnZShjYW52YXMpOworICAgICAgaWYgKHNzID09IDAp
IHsKKyAgICAgICAgdmFyIHRlc3REYXRhID0gZHJhdygKKyAgICAgICAgICAgIGNhbnZhcywgdGVz
dFZlcnRleFNoYWRlclNvdXJjZSwgcmVmZXJlbmNlRnJhZ21lbnRTaGFkZXJTb3VyY2UpOworICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIHRlc3REYXRhID0gZHJhdygKKyAgICAgICAgICAgIGNh
bnZhcywgcmVmZXJlbmNlVmVydGV4U2hhZGVyU291cmNlLCB0ZXN0RnJhZ21lbnRTaGFkZXJTb3Vy
Y2UpOworICAgICAgfQorICAgICAgdmFyIHRlc3RJbWcgPSB3dHUubWFrZUltYWdlKGNhbnZhcyk7
CisKKyAgICAgIHJlcG9ydFJlc3VsdHMocmVmRGF0YSwgcmVmSW1nLCB0ZXN0RGF0YSwgdGVzdElt
Zywgc2hhZGVySW5mby50b2xlcmFuY2UpOworICAgIH0KKyAgfQorCisgIGZpbmlzaFRlc3QoKTsK
KworICBmdW5jdGlvbiByZXBvcnRSZXN1bHRzKHJlZkRhdGEsIHJlZkltYWdlLCB0ZXN0RGF0YSwg
dGVzdEltYWdlLCB0b2xlcmFuY2UpIHsKKyAgICB2YXIgc2FtZSA9IHRydWU7CisgICAgZm9yICh2
YXIgeXkgPSAwOyB5eSA8IGhlaWdodDsgKyt5eSkgeworICAgICAgZm9yICh2YXIgeHggPSAwOyB4
eCA8IHdpZHRoOyArK3h4KSB7CisgICAgICAgIHZhciBvZmZzZXQgPSAoeXkgKiB3aWR0aCArIHh4
KSAqIDQ7CisgICAgICAgIHZhciBpbWdPZmZzZXQgPSAoKGhlaWdodCAtIHl5IC0gMSkgKiB3aWR0
aCArIHh4KSAqIDQ7CisgICAgICAgIGltZ0RhdGEuZGF0YVtpbWdPZmZzZXQgKyAwXSA9IDA7Cisg
ICAgICAgIGltZ0RhdGEuZGF0YVtpbWdPZmZzZXQgKyAxXSA9IDA7CisgICAgICAgIGltZ0RhdGEu
ZGF0YVtpbWdPZmZzZXQgKyAyXSA9IDA7CisgICAgICAgIGltZ0RhdGEuZGF0YVtpbWdPZmZzZXQg
KyAzXSA9IDI1NTsKKyAgICAgICAgaWYgKE1hdGguYWJzKHJlZkRhdGFbb2Zmc2V0ICsgMF0gLSB0
ZXN0RGF0YVtvZmZzZXQgKyAwXSkgPiB0b2xlcmFuY2UgfHwKKyAgICAgICAgICAgIE1hdGguYWJz
KHJlZkRhdGFbb2Zmc2V0ICsgMV0gLSB0ZXN0RGF0YVtvZmZzZXQgKyAxXSkgPiB0b2xlcmFuY2Ug
fHwKKyAgICAgICAgICAgIE1hdGguYWJzKHJlZkRhdGFbb2Zmc2V0ICsgMl0gLSB0ZXN0RGF0YVtv
ZmZzZXQgKyAyXSkgPiB0b2xlcmFuY2UgfHwKKyAgICAgICAgICAgIE1hdGguYWJzKHJlZkRhdGFb
b2Zmc2V0ICsgM10gLSB0ZXN0RGF0YVtvZmZzZXQgKyAzXSkgPiB0b2xlcmFuY2UpIHsKKyAgICAg
ICAgICBpbWdEYXRhLmRhdGFbaW1nT2Zmc2V0XSA9IDI1NTsKKyAgICAgICAgICBzYW1lID0gZmFs
c2U7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisKKyAgICB2YXIgZGlmZkltZyA9IG51bGw7
CisgICAgaWYgKCFzYW1lKSB7CisgICAgICBjdHgucHV0SW1hZ2VEYXRhKGltZ0RhdGEsIDAsIDAp
OworICAgICAgZGlmZkltZyA9IHd0dS5tYWtlSW1hZ2UoY2FudmFzMmQpOworICAgIH0KKworICAg
IHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBkaXYuY2xhc3NO
YW1lID0gInRlc3RpbWFnZXMiOworICAgIHd0dS5pbnNlcnRJbWFnZShkaXYsICJyZWYiLCByZWZJ
bWcpOworICAgIHd0dS5pbnNlcnRJbWFnZShkaXYsICJ0ZXN0IiwgdGVzdEltZyk7CisgICAgaWYg
KGRpZmZJbWcpIHsKKyAgICAgIHd0dS5pbnNlcnRJbWFnZShkaXYsICJkaWZmIiwgZGlmZkltZyk7
CisgICAgfQorICAgIGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdicicp
KTsKKworICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQoZGl2KTsKKworICAgIGlmICghc2FtZSkgewor
ICAgICAgdGVzdEZhaWxlZCgiaW1hZ2VzIGFyZSBkaWZmZXJlbnQiKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgdGVzdFBhc3NlZCgiaW1hZ2VzIGFyZSB0aGUgc2FtZSIpOworICAgIH0KKworICAgIGNv
bnNvbGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaHInKSk7CisgIH0KKwor
ICBmdW5jdGlvbiBkcmF3KGNhbnZhcywgdnNTb3VyY2UsIGZzU291cmNlKSB7CisgICAgdmFyIHBy
b2dyYW0gPSB3dHUubG9hZFByb2dyYW0oZ2wsIHZzU291cmNlLCBmc1NvdXJjZSwgdGVzdEZhaWxl
ZCk7CisKKyAgICB2YXIgcG9zTG9jID0gZ2wuZ2V0QXR0cmliTG9jYXRpb24ocHJvZ3JhbSwgImFQ
b3NpdGlvbiIpOworICAgIFdlYkdMVGVzdFV0aWxzLnNldHVwUXVhZChnbCwgZ3JpZFJlcywgcG9z
TG9jKTsKKworICAgIGdsLnVzZVByb2dyYW0ocHJvZ3JhbSk7CisgICAgZ2wuY2xlYXJDb2xvcigw
LCAwLCAxLCAxKTsKKyAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhf
QlVGRkVSX0JJVCk7CisgICAgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgZ3JpZFJlcyAq
IGdyaWRSZXMgKiA2LCBnbC5VTlNJR05FRF9TSE9SVCwgMCk7CisgICAgd3R1LmdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuTk9fRVJST1IsICJubyBlcnJvcnMgZnJvbSBkcmF3Iik7CisKKyAgICB2YXIg
aW1nID0gbmV3IFVpbnQ4QXJyYXkod2lkdGggKiBoZWlnaHQgKiA0KTsKKyAgICBnbC5yZWFkUGl4
ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGltZyk7
CisgICAgcmV0dXJuIGltZzsKKyAgfQorCit9OworCit2YXIgcnVuUmVmZXJlbmNlSW1hZ2VUZXN0
ID0gZnVuY3Rpb24ocGFyYW1zKSB7CisgIHZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKKyAgdmFy
IGdyaWRSZXMgPSBwYXJhbXMuZ3JpZFJlczsKKyAgdmFyIHZlcnRleFRvbGVyYW5jZSA9IHBhcmFt
cy50b2xlcmFuY2UgfHwgMDsKKyAgdmFyIGZyYWdtZW50VG9sZXJhbmNlID0gdmVydGV4VG9sZXJh
bmNlOworICBpZiAoJ2ZyYWdtZW50VG9sZXJhbmNlJyBpbiBwYXJhbXMpCisgICAgZnJhZ21lbnRU
b2xlcmFuY2UgPSBwYXJhbXMuZnJhZ21lbnRUb2xlcmFuY2UgfHwgMDsKKworICBkZXNjcmlwdGlv
bigiVGVzdGluZyBHTFNMIGZlYXR1cmU6ICIgKyBwYXJhbXMuZmVhdHVyZSk7CisKKyAgdmFyIHdp
ZHRoID0gMzI7CisgIHZhciBoZWlnaHQgPSAzMjsKKworICB2YXIgY29uc29sZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7CisgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdjYW52YXMnKTsKKyAgY2FudmFzLndpZHRoID0gd2lkdGg7CisgIGNhbnZhcy5o
ZWlnaHQgPSBoZWlnaHQ7CisgIHZhciBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoY2FudmFzLCB7
IGFudGlhbGlhczogZmFsc2UgfSk7CisgIGlmICghZ2wpIHsKKyAgICB0ZXN0RmFpbGVkKCJjb250
ZXh0IGRvZXMgbm90IGV4aXN0Iik7CisgICAgZmluaXNoVGVzdCgpOworICAgIHJldHVybjsKKyAg
fQorCisgIHZhciBjYW52YXMyZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOwor
ICBjYW52YXMyZC53aWR0aCA9IHdpZHRoOworICBjYW52YXMyZC5oZWlnaHQgPSBoZWlnaHQ7Cisg
IHZhciBjdHggPSBjYW52YXMyZC5nZXRDb250ZXh0KCIyZCIpOworICB2YXIgaW1nRGF0YSA9IGN0
eC5nZXRJbWFnZURhdGEoMCwgMCwgd2lkdGgsIGhlaWdodCk7CisKKyAgdmFyIHNoYWRlckluZm9z
ID0gWworICAgIHsgdHlwZTogInZlcnRleCIsCisgICAgICBpbnB1dDogImNvbG9yIiwKKyAgICAg
IG91dHB1dDogInZDb2xvciIsCisgICAgICB2ZXJ0ZXhTaGFkZXJUZW1wbGF0ZTogdmVydGV4U2hh
ZGVyVGVtcGxhdGUsCisgICAgICBmcmFnbWVudFNoYWRlclRlbXBsYXRlOiBiYXNlRnJhZ21lbnRT
aGFkZXIsCisgICAgICB0b2xlcmFuY2U6IHZlcnRleFRvbGVyYW5jZQorICAgIH0sCisgICAgeyB0
eXBlOiAiZnJhZ21lbnQiLAorICAgICAgaW5wdXQ6ICJ2Q29sb3IiLAorICAgICAgb3V0cHV0OiAi
Z2xfRnJhZ0NvbG9yIiwKKyAgICAgIHZlcnRleFNoYWRlclRlbXBsYXRlOiBiYXNlVmVydGV4U2hh
ZGVyLAorICAgICAgZnJhZ21lbnRTaGFkZXJUZW1wbGF0ZTogZnJhZ21lbnRTaGFkZXJUZW1wbGF0
ZSwKKyAgICAgIHRvbGVyYW5jZTogZnJhZ21lbnRUb2xlcmFuY2UKKyAgICB9CisgIF07CisgIGZv
ciAodmFyIHNzID0gMDsgc3MgPCBzaGFkZXJJbmZvcy5sZW5ndGg7ICsrc3MpIHsKKyAgICB2YXIg
c2hhZGVySW5mbyA9IHNoYWRlckluZm9zW3NzXTsKKyAgICB2YXIgdGVzdHMgPSBwYXJhbXMudGVz
dHM7CisgICAgdmFyIHRlc3RUeXBlcyA9IHBhcmFtcy5lbXVGdW5jcyB8fCAocGFyYW1zLmJ2ZWNU
ZXN0ID8gYnZlY1R5cGVzIDogdHlwZXMpOworICAgIC8vIFRlc3QgdmVydGV4IHNoYWRlcnMKKyAg
ICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgdGVzdHMubGVuZ3RoOyArK2lpKSB7CisgICAgICB2YXIg
dHlwZSA9IHRlc3RUeXBlc1tpaV07CisgICAgICB2YXIgaXNWZXJ0ZXggPSAoc3MgPT0gMCk7Cisg
ICAgICBkZWJ1ZygiIik7CisgICAgICB2YXIgc3RyID0gcmVwbGFjZVBhcmFtcyhwYXJhbXMudGVz
dEZ1bmMsIHsKKyAgICAgICAgZnVuYzogcGFyYW1zLmZlYXR1cmUsCisgICAgICAgIHR5cGU6IHR5
cGUudHlwZSwKKyAgICAgICAgYXJnMDogdHlwZS50eXBlCisgICAgICB9KTsKKyAgICAgIGRlYnVn
KCJUZXN0aW5nOiAiICsgc3RyICsgIiBpbiAiICsgc2hhZGVySW5mby50eXBlICsgIiBzaGFkZXIi
KTsKKworICAgICAgdmFyIHJlZmVyZW5jZVZlcnRleFNoYWRlclNvdXJjZSA9IGdlbmVyYXRlUmVm
ZXJlbmNlU2hhZGVyKAorICAgICAgICAgIHNoYWRlckluZm8sCisgICAgICAgICAgc2hhZGVySW5m
by52ZXJ0ZXhTaGFkZXJUZW1wbGF0ZSwKKyAgICAgICAgICBwYXJhbXMsCisgICAgICAgICAgdHlw
ZSwKKyAgICAgICAgICB0ZXN0c1tpaV0uc291cmNlKTsKKyAgICAgIHZhciByZWZlcmVuY2VGcmFn
bWVudFNoYWRlclNvdXJjZSA9IGdlbmVyYXRlUmVmZXJlbmNlU2hhZGVyKAorICAgICAgICAgIHNo
YWRlckluZm8sCisgICAgICAgICAgc2hhZGVySW5mby5mcmFnbWVudFNoYWRlclRlbXBsYXRlLAor
ICAgICAgICAgIHBhcmFtcywKKyAgICAgICAgICB0eXBlLAorICAgICAgICAgIHRlc3RzW2lpXS5z
b3VyY2UpOworICAgICAgdmFyIHRlc3RWZXJ0ZXhTaGFkZXJTb3VyY2UgPSBnZW5lcmF0ZVRlc3RT
aGFkZXIoCisgICAgICAgICAgc2hhZGVySW5mbywKKyAgICAgICAgICBzaGFkZXJJbmZvLnZlcnRl
eFNoYWRlclRlbXBsYXRlLAorICAgICAgICAgIHBhcmFtcywKKyAgICAgICAgICB0ZXN0c1tpaV0u
c291cmNlKTsKKyAgICAgIHZhciB0ZXN0RnJhZ21lbnRTaGFkZXJTb3VyY2UgPSBnZW5lcmF0ZVRl
c3RTaGFkZXIoCisgICAgICAgICAgc2hhZGVySW5mbywKKyAgICAgICAgICBzaGFkZXJJbmZvLmZy
YWdtZW50U2hhZGVyVGVtcGxhdGUsCisgICAgICAgICAgcGFyYW1zLAorICAgICAgICAgIHRlc3Rz
W2lpXS5zb3VyY2UpOworICAgICAgdmFyIHJlZmVyZW5jZVRleHR1cmUgPSBnZW5lcmF0ZVJlZmVy
ZW5jZVRleHR1cmUoCisgICAgICAgICAgZ2wsCisgICAgICAgICAgdGVzdHNbaWldLmdlbmVyYXRv
ciwKKyAgICAgICAgICBpc1ZlcnRleCA/IGdyaWRSZXMgOiB3aWR0aCwKKyAgICAgICAgICBpc1Zl
cnRleCA/IGdyaWRSZXMgOiBoZWlnaHQsCisgICAgICAgICAgaXNWZXJ0ZXgpOworCisgICAgICBk
ZWJ1ZygiIik7CisgICAgICB3dHUuYWRkU2hhZGVyU291cmNlKAorICAgICAgICAgIGNvbnNvbGUs
ICJ0ZXN0IHZlcnRleCBzaGFkZXIiLCB0ZXN0VmVydGV4U2hhZGVyU291cmNlKTsKKyAgICAgIHd0
dS5hZGRTaGFkZXJTb3VyY2UoCisgICAgICAgICAgY29uc29sZSwgInRlc3QgZnJhZ21lbnQgc2hh
ZGVyIiwgdGVzdEZyYWdtZW50U2hhZGVyU291cmNlKTsKKyAgICAgIGRlYnVnKCIiKTsKKyAgICAg
IHZhciByZWZEYXRhID0gZHJhd1JlZmVyZW5jZUltYWdlKGNhbnZhcywgcmVmZXJlbmNlVGV4dHVy
ZSwgaXNWZXJ0ZXgpOworICAgICAgdmFyIHJlZkltZyA9IHd0dS5tYWtlSW1hZ2UoY2FudmFzKTsK
KyAgICAgIGlmIChpc1ZlcnRleCkgeworICAgICAgICB2YXIgdGVzdERhdGEgPSBkcmF3KAorICAg
ICAgICAgICAgY2FudmFzLCB0ZXN0VmVydGV4U2hhZGVyU291cmNlLCByZWZlcmVuY2VGcmFnbWVu
dFNoYWRlclNvdXJjZSk7CisgICAgICB9IGVsc2UgeworICAgICAgICB2YXIgdGVzdERhdGEgPSBk
cmF3KAorICAgICAgICAgICAgY2FudmFzLCByZWZlcmVuY2VWZXJ0ZXhTaGFkZXJTb3VyY2UsIHRl
c3RGcmFnbWVudFNoYWRlclNvdXJjZSk7CisgICAgICB9CisgICAgICB2YXIgdGVzdEltZyA9IHd0
dS5tYWtlSW1hZ2UoY2FudmFzKTsKKyAgICAgIHZhciB0ZXN0VG9sZXJhbmNlID0gc2hhZGVySW5m
by50b2xlcmFuY2U7CisgICAgICAvLyBQcm92aWRlIHBlci10ZXN0IHRvbGVyYW5jZSBzbyB0aGF0
IHdlIGNhbiBpbmNyZWFzZSBpdCBvbmx5IGZvciB0aG9zZSBkZXNpcmVkLgorICAgICAgaWYgKCd0
b2xlcmFuY2UnIGluIHRlc3RzW2lpXSkKKyAgICAgICAgdGVzdFRvbGVyYW5jZSA9IHRlc3RzW2lp
XS50b2xlcmFuY2UgfHwgMDsKKyAgICAgIHJlcG9ydFJlc3VsdHMocmVmRGF0YSwgcmVmSW1nLCB0
ZXN0RGF0YSwgdGVzdEltZywgdGVzdFRvbGVyYW5jZSk7CisgICAgfQorICB9CisKKyAgZmluaXNo
VGVzdCgpOworCisgIGZ1bmN0aW9uIHJlcG9ydFJlc3VsdHMocmVmRGF0YSwgcmVmSW1hZ2UsIHRl
c3REYXRhLCB0ZXN0SW1hZ2UsIHRvbGVyYW5jZSkgeworICAgIHZhciBzYW1lID0gdHJ1ZTsKKyAg
ICBmb3IgKHZhciB5eSA9IDA7IHl5IDwgaGVpZ2h0OyArK3l5KSB7CisgICAgICBmb3IgKHZhciB4
eCA9IDA7IHh4IDwgd2lkdGg7ICsreHgpIHsKKyAgICAgICAgdmFyIG9mZnNldCA9ICh5eSAqIHdp
ZHRoICsgeHgpICogNDsKKyAgICAgICAgdmFyIGltZ09mZnNldCA9ICgoaGVpZ2h0IC0geXkgLSAx
KSAqIHdpZHRoICsgeHgpICogNDsKKyAgICAgICAgaW1nRGF0YS5kYXRhW2ltZ09mZnNldCArIDBd
ID0gMDsKKyAgICAgICAgaW1nRGF0YS5kYXRhW2ltZ09mZnNldCArIDFdID0gMDsKKyAgICAgICAg
aW1nRGF0YS5kYXRhW2ltZ09mZnNldCArIDJdID0gMDsKKyAgICAgICAgaW1nRGF0YS5kYXRhW2lt
Z09mZnNldCArIDNdID0gMjU1OworICAgICAgICBpZiAoTWF0aC5hYnMocmVmRGF0YVtvZmZzZXQg
KyAwXSAtIHRlc3REYXRhW29mZnNldCArIDBdKSA+IHRvbGVyYW5jZSB8fAorICAgICAgICAgICAg
TWF0aC5hYnMocmVmRGF0YVtvZmZzZXQgKyAxXSAtIHRlc3REYXRhW29mZnNldCArIDFdKSA+IHRv
bGVyYW5jZSB8fAorICAgICAgICAgICAgTWF0aC5hYnMocmVmRGF0YVtvZmZzZXQgKyAyXSAtIHRl
c3REYXRhW29mZnNldCArIDJdKSA+IHRvbGVyYW5jZSB8fAorICAgICAgICAgICAgTWF0aC5hYnMo
cmVmRGF0YVtvZmZzZXQgKyAzXSAtIHRlc3REYXRhW29mZnNldCArIDNdKSA+IHRvbGVyYW5jZSkg
eworICAgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
J2F0ICgnICsgeHggKyAnLCcgKyB5eSArICcpOiByZWY9KCcgKworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmRGF0YVtvZmZzZXQgKyAwXSAr
ICcsJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZWZEYXRhW29mZnNldCArIDFdICsgJywnICsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZkRhdGFbb2Zmc2V0ICsgMl0gKyAnLCcg
KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVmRGF0YVtvZmZzZXQgKyAzXSArICcpICB0ZXN0PSgnICsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3REYXRhW29mZnNldCArIDBdICsg
JywnICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3REYXRhW29mZnNldCArIDFdICsgJywnICsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3REYXRhW29mZnNldCArIDJdICsgJywn
ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3REYXRhW29mZnNldCArIDNdICsgJyknKSk7CisgICAgICAgICAgY29uc29sZS5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdicicpKTsgICAgICAgICAgCisKKworCisgICAg
ICAgICAgaW1nRGF0YS5kYXRhW2ltZ09mZnNldF0gPSAyNTU7CisgICAgICAgICAgc2FtZSA9IGZh
bHNlOworICAgICAgICB9CisgICAgICB9CisgICAgfQorCisgICAgdmFyIGRpZmZJbWcgPSBudWxs
OworICAgIGlmICghc2FtZSkgeworICAgICAgY3R4LnB1dEltYWdlRGF0YShpbWdEYXRhLCAwLCAw
KTsKKyAgICAgIGRpZmZJbWcgPSB3dHUubWFrZUltYWdlKGNhbnZhczJkKTsKKyAgICB9CisKKyAg
ICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZGl2LmNsYXNz
TmFtZSA9ICJ0ZXN0aW1hZ2VzIjsKKyAgICB3dHUuaW5zZXJ0SW1hZ2UoZGl2LCAicmVmIiwgcmVm
SW1nKTsKKyAgICB3dHUuaW5zZXJ0SW1hZ2UoZGl2LCAidGVzdCIsIHRlc3RJbWcpOworICAgIGlm
IChkaWZmSW1nKSB7CisgICAgICB3dHUuaW5zZXJ0SW1hZ2UoZGl2LCAiZGlmZiIsIGRpZmZJbWcp
OworICAgIH0KKyAgICBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnIn
KSk7CisKKyAgICBjb25zb2xlLmFwcGVuZENoaWxkKGRpdik7CisKKyAgICBpZiAoIXNhbWUpIHsK
KyAgICAgIHRlc3RGYWlsZWQoImltYWdlcyBhcmUgZGlmZmVyZW50Iik7CisgICAgfSBlbHNlIHsK
KyAgICAgIHRlc3RQYXNzZWQoImltYWdlcyBhcmUgdGhlIHNhbWUiKTsKKyAgICB9CisKKyAgICBj
b25zb2xlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2hyJykpOworICB9CisK
KyAgZnVuY3Rpb24gZHJhdyhjYW52YXMsIHZzU291cmNlLCBmc1NvdXJjZSkgeworICAgIHZhciBw
cm9ncmFtID0gd3R1LmxvYWRQcm9ncmFtKGdsLCB2c1NvdXJjZSwgZnNTb3VyY2UsIHRlc3RGYWls
ZWQpOworCisgICAgdmFyIHBvc0xvYyA9IGdsLmdldEF0dHJpYkxvY2F0aW9uKHByb2dyYW0sICJh
UG9zaXRpb24iKTsKKyAgICBXZWJHTFRlc3RVdGlscy5zZXR1cFF1YWQoZ2wsIGdyaWRSZXMsIHBv
c0xvYyk7CisKKyAgICBnbC51c2VQcm9ncmFtKHByb2dyYW0pOworICAgIGdsLmNsZWFyQ29sb3Io
MCwgMCwgMSwgMSk7CisgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRI
X0JVRkZFUl9CSVQpOworICAgIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIGdyaWRSZXMg
KiBncmlkUmVzICogNiwgZ2wuVU5TSUdORURfU0hPUlQsIDApOworICAgIHd0dS5nbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAibm8gZXJyb3JzIGZyb20gZHJhdyIpOworCisgICAgdmFy
IGltZyA9IG5ldyBVaW50OEFycmF5KHdpZHRoICogaGVpZ2h0ICogNCk7CisgICAgZ2wucmVhZFBp
eGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWcp
OworICAgIHJldHVybiBpbWc7CisgIH0KKworICBmdW5jdGlvbiBkcmF3UmVmZXJlbmNlSW1hZ2Uo
Y2FudmFzLCB0ZXh0dXJlLCBpc1ZlcnRleCkgeworICAgIHZhciBwcm9ncmFtOworICAgIGlmIChp
c1ZlcnRleCkgeworICAgICAgdmFyIGhhbGZUZXhlbCA9IDAuNSAvICgxLjAgKyBncmlkUmVzKTsK
KyAgICAgIHByb2dyYW0gPSBXZWJHTFRlc3RVdGlscy5zZXR1cFRleHR1cmVkUXVhZFdpdGhUZXhD
b29yZHMoCisgICAgICAgIGdsLCBbaGFsZlRleGVsLCBoYWxmVGV4ZWxdLCBbMS4wIC0gaGFsZlRl
eGVsLCAxLjAgLSBoYWxmVGV4ZWxdKTsKKyAgICB9IGVsc2UgeworICAgICAgcHJvZ3JhbSA9IFdl
YkdMVGVzdFV0aWxzLnNldHVwVGV4dHVyZWRRdWFkKGdsKTsKKyAgICB9CisKKyAgICBnbC5hY3Rp
dmVUZXh0dXJlKGdsLlRFWFRVUkUwKTsKKyAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJE
LCB0ZXh0dXJlKTsKKyAgICB2YXIgdGV4TG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dy
YW0sICJ0ZXgiKTsKKyAgICBnbC51bmlmb3JtMWkodGV4TG9jLCAwKTsKKyAgICB3dHUuZHJhd1F1
YWQoZ2wpOworICAgIHd0dS5nbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAibm8gZXJy
b3JzIGZyb20gZHJhdyIpOworCisgICAgdmFyIGltZyA9IG5ldyBVaW50OEFycmF5KHdpZHRoICog
aGVpZ2h0ICogNCk7CisgICAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5S
R0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWcpOworICAgIHJldHVybiBpbWc7CisgIH0KKworICAv
KioKKyAgICogQ3JlYXRlcyBhbmQgcmV0dXJucyBhIHRleHR1cmUgY29udGFpbmluZyB0aGUgcmVm
ZXJlbmNlIGltYWdlIGZvcgorICAgKiB0aGUgZnVuY3Rpb24gYmVpbmcgdGVzdGVkLiBFeGFjdGx5
IGhvdyB0aGUgZnVuY3Rpb24gaXMgZXZhbHVhdGVkLAorICAgKiBhbmQgdGhlIHNpemUgb2YgdGhl
IHJldHVybmVkIHRleHR1cmUsIGRlcGVuZHMgb24gd2hldGhlciB3ZSBhcmUKKyAgICogdGVzdGlu
ZyBhIHZlcnRleCBvciBmcmFnbWVudCBzaGFkZXIuIElmIGEgZnJhZ21lbnQgc2hhZGVyLCB0aGUK
KyAgICogZnVuY3Rpb24gaXMgZXZhbHVhdGVkIGF0IHRoZSBwaXhlbCBjZW50ZXJzLiBJZiBhIHZl
cnRleCBzaGFkZXIsCisgICAqIHRoZSBmdW5jdGlvbiBpcyBldmFsdWF0ZWQgYXQgdGhlIHRyaWFu
Z2xlJ3MgdmVydGljZXMsIGFuZCB0aGUKKyAgICogcmVzdWx0aW5nIHRleHR1cmUgbXVzdCBiZSBv
ZmZzZXQgYnkgaGFsZiBhIHRleGVsIGR1cmluZworICAgKiByZW5kZXJpbmcuCisgICAqCisgICAq
IEBwYXJhbSB7IVdlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2wgVGhlIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dCB0byB1c2UgdG8gZ2VuZXJhdGUgdGV4dHVyZSBvYmplY3RzLgorICAgKiBAcGFyYW0geyFm
dW5jdGlvbihudW1iZXIsbnVtYmVyLG51bWJlcixudW1iZXIpOiAhQXJyYXkuPG51bWJlcj59IGdl
bmVyYXRvciBUaGUgcmVmZXJlbmNlIGltYWdlIGdlbmVyYXRvciBmdW5jdGlvbi4KKyAgICogQHBh
cmFtIHtudW1iZXJ9IHdpZHRoIFRoZSB3aWR0aCBvZiB0aGUgdGV4dHVyZSB0byBnZW5lcmF0ZSBp
ZiB0ZXN0aW5nIGEgZnJhZ21lbnQgc2hhZGVyOyB0aGUgZ3JpZCByZXNvbHV0aW9uIGlmIHRlc3Rp
bmcgYSB2ZXJ0ZXggc2hhZGVyLgorICAgKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IFRoZSBoZWln
aHQgb2YgdGhlIHRleHR1cmUgdG8gZ2VuZXJhdGUgaWYgdGVzdGluZyBhIGZyYWdtZW50IHNoYWRl
cjsgdGhlIGdyaWQgcmVzb2x1dGlvbiBpZiB0ZXN0aW5nIGEgdmVydGV4IHNoYWRlci4KKyAgICog
QHBhcmFtIHtib29sZWFufSBpc1ZlcnRleCBUcnVlIGlmIGdlbmVyYXRpbmcgYSByZWZlcmVuY2Ug
aW1hZ2UgZm9yIGEgdmVydGV4IHNoYWRlcjsgZmFsc2UgaWYgZm9yIGEgZnJhZ21lbnQgc2hhZGVy
LgorICAgKiBAcmV0dXJuIHshV2ViR0xUZXh0dXJlfSBUaGUgdGV4dHVyZSBvYmplY3QgdGhhdCB3
YXMgZ2VuZXJhdGVkLgorICAgKi8KKyAgZnVuY3Rpb24gZ2VuZXJhdGVSZWZlcmVuY2VUZXh0dXJl
KAorICAgIGdsLAorICAgIGdlbmVyYXRvciwKKyAgICB3aWR0aCwKKyAgICBoZWlnaHQsCisgICAg
aXNWZXJ0ZXgpIHsKKworICAgIC8vIE5vdGU6IHRoZSBtYXRoIGluIHRoaXMgZnVuY3Rpb24gbXVz
dCBtYXRjaCB0aGF0IGluIHRoZSB2ZXJ0ZXggYW5kCisgICAgLy8gZnJhZ21lbnQgc2hhZGVyIHRl
bXBsYXRlcyBhYm92ZS4KKyAgICBmdW5jdGlvbiBjb21wdXRlVGV4Q29vcmQoeCkgeworICAgICAg
cmV0dXJuIHggKiAwLjUgKyAwLjU7CisgICAgfQorCisgICAgZnVuY3Rpb24gY29tcHV0ZUNvbG9y
KHRleENvb3JkWCwgdGV4Q29vcmRZKSB7CisgICAgICByZXR1cm4gWyB0ZXhDb29yZFgsCisgICAg
ICAgICAgICAgICB0ZXhDb29yZFksCisgICAgICAgICAgICAgICB0ZXhDb29yZFggKiB0ZXhDb29y
ZFksCisgICAgICAgICAgICAgICAoMS4wIC0gdGV4Q29vcmRYKSAqIHRleENvb3JkWSAqIDAuNSAr
IDAuNSBdOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNsYW1wKHZhbHVlLCBtaW5WYWwsIG1heFZh
bCkgeworICAgICAgcmV0dXJuIE1hdGgubWF4KG1pblZhbCwgTWF0aC5taW4odmFsdWUsIG1heFZh
bCkpOworICAgIH0KKworICAgIC8vIEV2YWx1YXRlcyB0aGUgZnVuY3Rpb24gYXQgY2xpcCBjb29y
ZGluYXRlcyAocHgscHkpLCBzdG9yaW5nIHRoZQorICAgIC8vIHJlc3VsdCBpbiB0aGUgYXJyYXkg
InBpeGVsIi4gRWFjaCBjaGFubmVsJ3MgcmVzdWx0IGlzIGNsYW1wZWQKKyAgICAvLyBiZXR3ZWVu
IDAgYW5kIDI1NS4KKyAgICBmdW5jdGlvbiBldmFsdWF0ZUF0Q2xpcENvb3JkcyhweCwgcHksIHBp
eGVsKSB7CisgICAgICB2YXIgdGN4ID0gY29tcHV0ZVRleENvb3JkKHB4KTsKKyAgICAgIHZhciB0
Y3kgPSBjb21wdXRlVGV4Q29vcmQocHkpOworCisgICAgICB2YXIgY29sb3IgPSBjb21wdXRlQ29s
b3IodGN4LCB0Y3kpOworCisgICAgICB2YXIgb3V0cHV0ID0gZ2VuZXJhdG9yKGNvbG9yWzBdLCBj
b2xvclsxXSwgY29sb3JbMl0sIGNvbG9yWzNdKTsKKworICAgICAgLy8gTXVsdGlwbHkgYnkgMjU2
IHRvIGdldCBldmVuIGRpc3RyaWJ1dGlvbiBmb3IgYWxsIHZhbHVlcyBiZXR3ZWVuIDAgYW5kIDEu
CisgICAgICAvLyBVc2Ugcm91bmRpbmcgcmF0aGVyIHRoYW4gdHJ1bmNhdGlvbiB0byBtb3JlIGNs
b3NlbHkgbWF0Y2ggdGhlIEdQVSdzIGJlaGF2aW9yLgorICAgICAgcGl4ZWxbMF0gPSBjbGFtcChN
YXRoLnJvdW5kKDI1NiAqIG91dHB1dFswXSksIDAsIDI1NSk7CisgICAgICBwaXhlbFsxXSA9IGNs
YW1wKE1hdGgucm91bmQoMjU2ICogb3V0cHV0WzFdKSwgMCwgMjU1KTsKKyAgICAgIHBpeGVsWzJd
ID0gY2xhbXAoTWF0aC5yb3VuZCgyNTYgKiBvdXRwdXRbMl0pLCAwLCAyNTUpOworICAgICAgcGl4
ZWxbM10gPSBjbGFtcChNYXRoLnJvdW5kKDI1NiAqIG91dHB1dFszXSksIDAsIDI1NSk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gZmlsbEZyYWdtZW50UmVmZXJlbmNlKCkgeworICAgICAgdmFyIGRh
dGEgPSBuZXcgVWludDhBcnJheSg0ICogd2lkdGggKiBoZWlnaHQpOworCisgICAgICB2YXIgaG9y
aXpUZXhlbCA9IDEuMCAvIHdpZHRoOworICAgICAgdmFyIHZlcnRUZXhlbCA9IDEuMCAvIGhlaWdo
dDsKKyAgICAgIHZhciBoYWxmSG9yaXpUZXhlbCA9IDAuNSAqIGhvcml6VGV4ZWw7CisgICAgICB2
YXIgaGFsZlZlcnRUZXhlbCA9IDAuNSAqIHZlcnRUZXhlbDsKKworICAgICAgdmFyIHBpeGVsID0g
bmV3IEFycmF5KDQpOworCisgICAgICBmb3IgKHZhciB5aSA9IDA7IHlpIDwgaGVpZ2h0OyArK3lp
KSB7CisgICAgICAgIGZvciAodmFyIHhpID0gMDsgeGkgPCB3aWR0aDsgKyt4aSkgeworICAgICAg
ICAgIC8vIFRoZSBmdW5jdGlvbiBtdXN0IGJlIGV2YWx1YXRlZCBhdCBwaXhlbCBjZW50ZXJzLgor
CisgICAgICAgICAgLy8gQ29tcHV0ZSBkZXNpcmVkIHBvc2l0aW9uIGluIGNsaXAgc3BhY2UKKyAg
ICAgICAgICB2YXIgcHggPSAtMS4wICsgMi4wICogKGhhbGZIb3JpelRleGVsICsgeGkgKiBob3Jp
elRleGVsKTsKKyAgICAgICAgICB2YXIgcHkgPSAtMS4wICsgMi4wICogKGhhbGZWZXJ0VGV4ZWwg
KyB5aSAqIHZlcnRUZXhlbCk7CisKKyAgICAgICAgICBldmFsdWF0ZUF0Q2xpcENvb3JkcyhweCwg
cHksIHBpeGVsKTsKKyAgICAgICAgICB2YXIgaW5kZXggPSA0ICogKHdpZHRoICogeWkgKyB4aSk7
CisgICAgICAgICAgZGF0YVtpbmRleCArIDBdID0gcGl4ZWxbMF07CisgICAgICAgICAgZGF0YVtp
bmRleCArIDFdID0gcGl4ZWxbMV07CisgICAgICAgICAgZGF0YVtpbmRleCArIDJdID0gcGl4ZWxb
Ml07CisgICAgICAgICAgZGF0YVtpbmRleCArIDNdID0gcGl4ZWxbM107CisgICAgICAgIH0KKyAg
ICAgIH0KKworICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCB3
aWR0aCwgaGVpZ2h0LCAwLAorICAgICAgICAgICAgICAgICAgICBnbC5SR0JBLCBnbC5VTlNJR05F
RF9CWVRFLCBkYXRhKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaWxsVmVydGV4UmVmZXJlbmNl
KCkgeworICAgICAgLy8gV2UgZ2VuZXJhdGUgYSB0ZXh0dXJlIHdoaWNoIGNvbnRhaW5zIHRoZSBl
dmFsdWF0aW9uIG9mIHRoZQorICAgICAgLy8gZnVuY3Rpb24gYXQgdGhlIHZlcnRpY2VzIG9mIHRo
ZSB0cmlhbmdsZSBtZXNoLiBJdCBpcyBleHBlY3RlZAorICAgICAgLy8gdGhhdCB0aGUgd2lkdGgg
YW5kIHRoZSBoZWlnaHQgYXJlIGlkZW50aWNhbCwgYW5kIGVxdWl2YWxlbnQKKyAgICAgIC8vIHRv
IHRoZSBncmlkIHJlc29sdXRpb24uCisgICAgICBpZiAod2lkdGggIT0gaGVpZ2h0KSB7CisgICAg
ICAgIHRocm93ICJ3aWR0aCBhbmQgaGVpZ2h0IG11c3QgYmUgZXF1YWwiOworICAgICAgfQorCisg
ICAgICB2YXIgdGV4U2l6ZSA9IDEgKyB3aWR0aDsKKyAgICAgIHZhciBkYXRhID0gbmV3IFVpbnQ4
QXJyYXkoNCAqIHRleFNpemUgKiB0ZXhTaXplKTsKKworICAgICAgdmFyIHN0ZXAgPSAyLjAgLyB3
aWR0aDsKKworICAgICAgdmFyIHBpeGVsID0gbmV3IEFycmF5KDQpOworCisgICAgICBmb3IgKHZh
ciB5aSA9IDA7IHlpIDwgdGV4U2l6ZTsgKyt5aSkgeworICAgICAgICBmb3IgKHZhciB4aSA9IDA7
IHhpIDwgdGV4U2l6ZTsgKyt4aSkgeworICAgICAgICAgIC8vIFRoZSBmdW5jdGlvbiBpcyBldmFs
dWF0ZWQgYXQgdGhlIHRyaWFuZ2xlcycgdmVydGljZXMuCisKKyAgICAgICAgICAvLyBDb21wdXRl
IGRlc2lyZWQgcG9zaXRpb24gaW4gY2xpcCBzcGFjZQorICAgICAgICAgIHZhciBweCA9IC0xLjAg
KyAoeGkgKiBzdGVwKTsKKyAgICAgICAgICB2YXIgcHkgPSAtMS4wICsgKHlpICogc3RlcCk7CisK
KyAgICAgICAgICBldmFsdWF0ZUF0Q2xpcENvb3JkcyhweCwgcHksIHBpeGVsKTsKKyAgICAgICAg
ICB2YXIgaW5kZXggPSA0ICogKHRleFNpemUgKiB5aSArIHhpKTsKKyAgICAgICAgICBkYXRhW2lu
ZGV4ICsgMF0gPSBwaXhlbFswXTsKKyAgICAgICAgICBkYXRhW2luZGV4ICsgMV0gPSBwaXhlbFsx
XTsKKyAgICAgICAgICBkYXRhW2luZGV4ICsgMl0gPSBwaXhlbFsyXTsKKyAgICAgICAgICBkYXRh
W2luZGV4ICsgM10gPSBwaXhlbFszXTsKKyAgICAgICAgfQorICAgICAgfQorCisgICAgICBnbC50
ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIHRleFNpemUsIHRleFNpemUsIDAs
CisgICAgICAgICAgICAgICAgICAgIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGRhdGEpOwor
ICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEJvZHkgb2YgZ2VuZXJhdGVSZWZl
cmVuY2VUZXh0dXJlCisgICAgLy8KKworICAgIHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVy
ZSgpOworICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOworICAgIGds
LnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5M
SU5FQVIpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9N
QUdfRklMVEVSLCBnbC5MSU5FQVIpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8y
RCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOworICAgIGdsLnRleFBhcmFt
ZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0Up
OworCisgICAgaWYgKGlzVmVydGV4KSB7CisgICAgICBmaWxsVmVydGV4UmVmZXJlbmNlKCk7Cisg
ICAgfSBlbHNlIHsKKyAgICAgIGZpbGxGcmFnbWVudFJlZmVyZW5jZSgpOworICAgIH0KKworICAg
IHJldHVybiB0ZXh0dXJlOworICB9Cit9OworCityZXR1cm4geworICAvKioKKyAgICogcnVucyBh
IGJ1bmNoIG9mIEdMU0wgdGVzdHMgdXNpbmcgdGhlIHBhc3NlZCBpbiBwYXJhbWV0ZXJzCisgICAq
IFRoZSBwYXJhbWV0ZXJzIGFyZToKKyAgICoKKyAgICogZmVhdHVyZToKKyAgICogICAgdGhlIG5h
bWUgb2YgdGhlIGZ1bmN0aW9uIGJlaW5nIHRlc3RlZCAoZWcsIHNpbiwgZG90LAorICAgKiAgICBu
b3JtYWxpemUpCisgICAqCisgICAqIHRlc3RGdW5jOgorICAgKiAgICBUaGUgcHJvdG90eXBlIG9m
IGZ1bmN0aW9uIHRvIGJlIHRlc3RlZCBub3QgaW5jbHVkaW5nIHRoZQorICAgKiAgICByZXR1cm4g
dHlwZS4KKyAgICoKKyAgICogZW11RnVuYzoKKyAgICogICAgQSBiYXNlIGZ1bmN0aW9uIHRoYXQg
Y2FuIGJlIHVzZWQgdG8gZ2VuZXJhdGUgZW11bGF0aW9uCisgICAqICAgIGZ1bmN0aW9ucy4gRXhh
bXBsZSBmb3IgJ2NlaWwnCisgICAqCisgICAqICAgICAgZmxvYXQgJChmdW5jKV9iYXNlKGZsb2F0
IHZhbHVlKSB7CisgICAqICAgICAgICBmbG9hdCBtID0gbW9kKHZhbHVlLCAxLjApOworICAgKiAg
ICAgICAgcmV0dXJuIG0gIT0gMC4wID8gKHZhbHVlICsgMS4wIC0gbSkgOiB2YWx1ZTsKKyAgICog
ICAgICB9CisgICAqCisgICAqIGFyZ3M6CisgICAqICAgIFRoZSBhcmd1bWVudHMgdG8gdGhlIGZ1
bmN0aW9uCisgICAqCisgICAqIGJhc2VBcmdzOiAob3B0aW9uYWwpCisgICAqICAgIFRoZSBhcmd1
bWVudHMgd2hlbiBhIGJhc2UgZnVuY3Rpb24gaXMgdXNlZCB0byBjcmVhdGUgYW4KKyAgICogICAg
ZW11bGF0aW9uIGZ1bmN0aW9uLiBGb3IgZXhhbXBsZSAnZmxvYXQgc2lnbl9iYXNlKGZsb2F0IHYp
JworICAgKiAgICBpcyB1c2VkIHRvIGltcGxlbWVuZW50IHZlYzIgc2lnbl9lbXUodmVjMiB2KS4K
KyAgICoKKyAgICogc2ltcGxlRW11OgorICAgKiAgICBpZiBzdXBwbGllZCwgdGhlIGNvZGUgdGhh
dCBjYW4gYmUgdXNlZCB0byBnZW5lcmF0ZSBhbGwKKyAgICogICAgZnVuY3Rpb25zIGZvciBhbGwg
dHlwZXMuCisgICAqCisgICAqICAgIEV4YW1wbGUgZm9yICdub3JtYWxpemUnOgorICAgKgorICAg
KiAgICAgICAgJCh0eXBlKSAkKGZ1bmMpX2VtdSgkKGFyZ3MpKSB7CisgICAqICAgICAgICAgICBy
ZXR1cm4gdmFsdWUgLyBsZW5ndGgodmFsdWUpOworICAgKiAgICAgICAgfQorICAgKgorICAgKiBn
cmlkUmVzOiAob3B0aW9uYWwpCisgICAqICAgIFRoZSByZXNvbHV0aW9uIG9mIHRoZSBtZXNoIHRv
IGdlbmVyYXRlLiBUaGUgZGVmYXVsdCBpcyBhCisgICAqICAgIDF4MSBncmlkIGJ1dCBtYW55IHZl
cnRleCBzaGFkZXJzIG5lZWQgYSBoaWdoZXIgcmVzb2x1dGlvbgorICAgKiAgICBvdGhlcndpc2Ug
dGhlIG9ubHkgdmFsdWVzIHBhc3NlZCBpbiBhcmUgdGhlIDQgY29ybmVycworICAgKiAgICB3aGlj
aCBvZnRlbiBoYXZlIHRoZSBzYW1lIHZhbHVlLgorICAgKgorICAgKiB0ZXN0czoKKyAgICogICAg
VGhlIGNvZGUgZm9yIGVhY2ggdGVzdC4gSXQgaXMgYXNzdW1lZCB0aGUgdGVzdHMgYXJlIGZvcgor
ICAgKiAgICBmbG9hdCwgdmVjMiwgdmVjMywgdmVjNCBpbiB0aGF0IG9yZGVyLgorICAgKgorICAg
KiB0b2xlcmFuY2U6IChvcHRpb25hbCkKKyAgICogICAgQWxsb3cgc29tZSB0b2xlcmFuY2UgaW4g
dGhlIGNvbXBhcmlzb25zLiBUaGUgdG9sZXJhbmNlIGlzIGFwcGxpZWQgdG8gCisgICAqICAgIGJv
dGggdmVydGV4IGFuZCBmcmFnbWVudCBzaGFkZXJzLiBUaGUgZGVmYXVsdCB0b2xlcmFuY2UgaXMg
MCwgbWVhbmluZyAKKyAgICogICAgdGhlIHZhbHVlcyBoYXZlIHRvIGJlIGlkZW50aWNhbC4KKyAg
ICoKKyAgICogZnJhZ21lbnRUb2xlcmFuY2U6IChvcHRpb25hbCkKKyAgICogICAgU3BlY2lmeSBh
IHRvbGVyYW5jZSB3aGljaCBvbmx5IGFwcGxpZXMgdG8gZnJhZ21lbnQgc2hhZGVycy4gVGhlIAor
ICAgKiAgICBmcmFnbWVudC1vbmx5IHRvbGVyYW5jZSB3aWxsIG92ZXJyaWRlIHRoZSBzaGFyZWQg
dG9sZXJhbmNlIGZvciAKKyAgICogICAgZnJhZ21lbnQgc2hhZGVycyBpZiBib3RoIGFyZSBzcGVj
aWZpZWQuIEZyYWdtZW50IHNoYWRlcnMgdXN1YWxseQorICAgKiAgICB1c2UgbWVkaXVtcCBmbG9h
dCBwcmVjaXNpb24gc28gdGhleSBzb21ldGltZXMgcmVxdWlyZSBoaWdoZXIgdG9sZXJhbmNlCisg
ICAqICAgIHRoYW4gdmVydGV4IHNoYWRlcnMgd2hpY2ggdXNlIGhpZ2hwIGJ5IGRlZmF1bHQuCisg
ICAqLworICBydW5GZWF0dXJlVGVzdDogcnVuRmVhdHVyZVRlc3QsCisKKyAgLyoKKyAgICogUnVu
cyBhIGJ1bmNoIG9mIEdMU0wgdGVzdHMgdXNpbmcgdGhlIHBhc3NlZCBpbiBwYXJhbWV0ZXJzCisg
ICAqCisgICAqIFRoZSBwYXJhbWV0ZXJzIGFyZToKKyAgICoKKyAgICogdGVzdHM6CisgICAqICAg
IEFycmF5IG9mIHRlc3RzLiBGb3IgZWFjaCB0ZXN0IHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVycyBh
cmUgZXhwZWN0ZWQKKyAgICoKKyAgICogICAgbmFtZToKKyAgICogICAgICAgc29tZSBkZXNjcmlw
dGlvbiBvZiB0aGUgdGVzdAorICAgKiAgICByZWZlcmVuY2U6CisgICAqICAgICAgIHBhcmFtZXRl
cnMgZm9yIHRoZSByZWZlcmVuY2Ugc2hhZGVyIChzZWUgYmVsb3cpCisgICAqICAgIHRlc3Q6Cisg
ICAqICAgICAgIHBhcmFtZXRlcnMgZm9yIHRoZSB0ZXN0IHNoYWRlciAoc2VlIGJlbG93KQorICAg
KgorICAgKiAgICBUaGUgcGFyYW1ldGVyIGZvciB0aGUgcmVmZXJlbmNlIGFuZCB0ZXN0IHNoYWRl
cnMgYXJlCisgICAqCisgICAqICAgIHNoYWRlcjogdGhlIEdMU0wgZm9yIHRoZSBzaGFkZXIKKyAg
ICogICAgc3ViczogYW55IHN1YnN0aXR1dGlvbnMgeW91IHdpc2ggdG8gZGVmaW5lIGZvciB0aGUg
c2hhZGVyLgorICAgKgorICAgKiAgICBFYWNoIHNoYWRlciBpcyBjcmVhdGVkIGZyb20gYSBiYXNp
YyB0ZW1wbGF0ZSB0aGF0CisgICAqICAgIGRlZmluZXMgYW4gaW5wdXQgYW5kIGFuIG91dHB1dC4g
WW91IGNhbiBzZWUgdGhlCisgICAqICAgIHRlbXBsYXRlcyBhdCB0aGUgdG9wIG9mIHRoaXMgZmls
ZS4gVGhlIGlucHV0IGFuZCBvdXRwdXQKKyAgICogICAgY2hhbmdlIGRlcGVuZGluZyBvbiB3aGV0
aGVyIG9yIG5vdCB3ZSBhcmUgZ2VuZXJhdGluZworICAgKiAgICBhIHZlcnRleCBvciBmcmFnbWVu
dCBzaGFkZXIuCisgICAqCisgICAqICAgIEFsbCB0aGlzIGNvZGUgZnVuY3Rpb24gZG9lcyBpcyBh
IGJ1bmNoIG9mIHN0cmluZyBzdWJzdGl0dXRpb25zLgorICAgKiAgICBBIHN1YnN0aXR1dGlvbiBp
cyBkZWZpbmVkIGJ5ICQobmFtZSkuIElmIG5hbWUgaXMgZm91bmQgaW4KKyAgICogICAgdGhlICdz
dWJzJyBwYXJhbWV0ZXIgaXQgaXMgcmVwbGFjZWQuIDQgc3BlY2lhbCBuYW1lcyBleGlzdC4KKyAg
ICoKKyAgICogICAgJ2lucHV0JyB0aGUgaW5wdXQgdG8geW91ciBHTFNMLiBBbHdheXMgYSB2ZWM0
LiBBbGwgY2hhbmdlCisgICAqICAgIGZyb20gMCB0byAxIG92ZXIgdGhlIHF1YWQgdG8gYmUgZHJh
d24uCisgICAqCisgICAqICAgICdvdXRwdXQnIHRoZSBvdXRwdXQgY29sb3IuIEFsc28gYSB2ZWM0
CisgICAqCisgICAqICAgICdlbXUnIGEgcGxhY2UgdG8gaW5zZXJ0IGV4dHJhIHN0dWZmCisgICAq
ICAgICdleHRyYScgYSBwbGFjZSB0byBpbnNlcnQgZXh0cmEgc3R1ZmYuCisgICAqCisgICAqICAg
IFlvdSBjYW4gdGhpbmsgb2YgdGhlIHRlbXBsYXRlcyBsaWtlIHRoaXMKKyAgICoKKyAgICogICAg
ICAgJChleHRyYSkKKyAgICogICAgICAgJChlbXUpCisgICAqCisgICAqICAgICAgIHZvaWQgbWFp
bigpIHsKKyAgICogICAgICAgICAgLy8gZG8gbWF0aCB0byBjYWxjdWxhdGUgaW5wdXQKKyAgICog
ICAgICAgICAgLi4uCisgICAqCisgICAqICAgICAgICAgICQoc2hhZGVyKQorICAgKiAgICAgICB9
CisgICAqCisgICAqICAgIFlvdXIgc2hhZGVyIGZpcnN0IGhhcyBhbnkgc3VicyB5b3UgcHJvdmlk
ZWQgYXBwbGllZCBhcyB3ZWxsCisgICAqICAgIGFzICdpbnB1dCcgYW5kICdvdXRwdXQnCisgICAq
CisgICAqICAgIEl0IGlzIHRoZW4gaW5zZXJ0ZWQgaW50byB0aGUgdGVtcGxhdGUgd2hpY2ggaXMg
YWxzbyBwcm92aWRlZAorICAgKiAgICB3aXRoIHlvdXIgc3Vicy4KKyAgICoKKyAgICogZ3JpZFJl
czogKG9wdGlvbmFsKQorICAgKiAgICBUaGUgcmVzb2x1dGlvbiBvZiB0aGUgbWVzaCB0byBnZW5l
cmF0ZS4gVGhlIGRlZmF1bHQgaXMgYQorICAgKiAgICAxeDEgZ3JpZCBidXQgbWFueSB2ZXJ0ZXgg
c2hhZGVycyBuZWVkIGEgaGlnaGVyIHJlc29sdXRpb24KKyAgICogICAgb3RoZXJ3aXNlIHRoZSBv
bmx5IHZhbHVlcyBwYXNzZWQgaW4gYXJlIHRoZSA0IGNvcm5lcnMKKyAgICogICAgd2hpY2ggb2Z0
ZW4gaGF2ZSB0aGUgc2FtZSB2YWx1ZS4KKyAgICoKKyAgICogdG9sZXJhbmNlOiAob3B0aW9uYWwp
CisgICAqICAgIEFsbG93IHNvbWUgdG9sZXJhbmNlIGluIHRoZSBjb21wYXJpc29ucy4gVGhlIHRv
bGVyYW5jZSBpcyBhcHBsaWVkIHRvCisgICAqICAgIGJvdGggdmVydGV4IGFuZCBmcmFnbWVudCBz
aGFkZXJzLiBUaGUgZGVmYXVsdCB0b2xlcmFuY2UgaXMgMCwgbWVhbmluZworICAgKiAgICB0aGUg
dmFsdWVzIGhhdmUgdG8gYmUgaWRlbnRpY2FsLgorICAgKgorICAgKiBmcmFnbWVudFRvbGVyYW5j
ZTogKG9wdGlvbmFsKQorICAgKiAgICBTcGVjaWZ5IGEgdG9sZXJhbmNlIHdoaWNoIG9ubHkgYXBw
bGllcyB0byBmcmFnbWVudCBzaGFkZXJzLiBUaGUKKyAgICogICAgZnJhZ21lbnQtb25seSB0b2xl
cmFuY2Ugd2lsbCBvdmVycmlkZSB0aGUgc2hhcmVkIHRvbGVyYW5jZSBmb3IKKyAgICogICAgZnJh
Z21lbnQgc2hhZGVycyBpZiBib3RoIGFyZSBzcGVjaWZpZWQuIEZyYWdtZW50IHNoYWRlcnMgdXN1
YWxseQorICAgKiAgICB1c2UgbWVkaXVtcCBmbG9hdCBwcmVjaXNpb24gc28gdGhleSBzb21ldGlt
ZXMgcmVxdWlyZSBoaWdoZXIgdG9sZXJhbmNlCisgICAqICAgIHRoYW4gdmVydGV4IHNoYWRlcnMg
d2hpY2ggdXNlIGhpZ2hwLgorICAgKi8KKyAgcnVuQmFzaWNUZXN0OiBydW5CYXNpY1Rlc3QsCisK
KyAgLyoqCisgICAqIFJ1bnMgYSBidW5jaCBvZiBHTFNMIHRlc3RzIHVzaW5nIHRoZSBwYXNzZWQg
aW4gcGFyYW1ldGVycy4gVGhlCisgICAqIGV4cGVjdGVkIHJlc3VsdHMgYXJlIGNvbXB1dGVkIGFz
IGEgcmVmZXJlbmNlIGltYWdlIGluIEphdmFTY3JpcHQKKyAgICogaW5zdGVhZCBvZiBvbiB0aGUg
R1BVLiBUaGUgcGFyYW1ldGVycyBhcmU6CisgICAqCisgICAqIGZlYXR1cmU6CisgICAqICAgIHRo
ZSBuYW1lIG9mIHRoZSBmdW5jdGlvbiBiZWluZyB0ZXN0ZWQgKGVnLCBzaW4sIGRvdCwKKyAgICog
ICAgbm9ybWFsaXplKQorICAgKgorICAgKiB0ZXN0RnVuYzoKKyAgICogICAgVGhlIHByb3RvdHlw
ZSBvZiBmdW5jdGlvbiB0byBiZSB0ZXN0ZWQgbm90IGluY2x1ZGluZyB0aGUKKyAgICogICAgcmV0
dXJuIHR5cGUuCisgICAqCisgICAqIGFyZ3M6CisgICAqICAgIFRoZSBhcmd1bWVudHMgdG8gdGhl
IGZ1bmN0aW9uCisgICAqCisgICAqIGdyaWRSZXM6IChvcHRpb25hbCkKKyAgICogICAgVGhlIHJl
c29sdXRpb24gb2YgdGhlIG1lc2ggdG8gZ2VuZXJhdGUuIFRoZSBkZWZhdWx0IGlzIGEKKyAgICog
ICAgMXgxIGdyaWQgYnV0IG1hbnkgdmVydGV4IHNoYWRlcnMgbmVlZCBhIGhpZ2hlciByZXNvbHV0
aW9uCisgICAqICAgIG90aGVyd2lzZSB0aGUgb25seSB2YWx1ZXMgcGFzc2VkIGluIGFyZSB0aGUg
NCBjb3JuZXJzCisgICAqICAgIHdoaWNoIG9mdGVuIGhhdmUgdGhlIHNhbWUgdmFsdWUuCisgICAq
CisgICAqIHRlc3RzOgorICAgKiAgICBBcnJheSBvZiB0ZXN0cy4gSXQgaXMgYXNzdW1lZCB0aGUg
dGVzdHMgYXJlIGZvciBmbG9hdCwgdmVjMiwKKyAgICogICAgdmVjMywgdmVjNCBpbiB0aGF0IG9y
ZGVyLiBGb3IgZWFjaCB0ZXN0IHRoZSBmb2xsb3dpbmcKKyAgICogICAgcGFyYW1ldGVycyBhcmUg
ZXhwZWN0ZWQ6CisgICAqCisgICAqICAgICAgIHNvdXJjZTogdGhlIEdMU0wgc291cmNlIGNvZGUg
Zm9yIHRoZSB0ZXN0cworICAgKgorICAgKiAgICAgICBnZW5lcmF0b3I6IGEgSmF2YVNjcmlwdCBm
dW5jdGlvbiB0YWtpbmcgZm91ciBwYXJhbWV0ZXJzCisgICAqICAgICAgIHdoaWNoIGV2YWx1YXRl
cyB0aGUgc2FtZSBmdW5jdGlvbiBhcyB0aGUgR0xTTCBzb3VyY2UsCisgICAqICAgICAgIHJldHVy
bmluZyBpdHMgcmVzdWx0IGFzIGEgbmV3bHkgYWxsb2NhdGVkIGFycmF5LgorICAgKgorICAgKiAg
ICAgICB0b2xlcmFuY2U6IChvcHRpb25hbCkgYSBwZXItdGVzdCB0b2xlcmFuY2UuCisgICAqCisg
ICAqIGV4dHJhOiAob3B0aW9uYWwpCisgICAqICAgIEV4dHJhIEdMU0wgY29kZSBpbnNlcnRlZCBh
dCB0aGUgdG9wIG9mIGVhY2ggdGVzdCdzIHNoYWRlci4KKyAgICogCisgICAqIHRvbGVyYW5jZTog
KG9wdGlvbmFsKQorICAgKiAgICBBbGxvdyBzb21lIHRvbGVyYW5jZSBpbiB0aGUgY29tcGFyaXNv
bnMuIFRoZSB0b2xlcmFuY2UgaXMgYXBwbGllZCB0byAKKyAgICogICAgYm90aCB2ZXJ0ZXggYW5k
IGZyYWdtZW50IHNoYWRlcnMuIFRoZSBkZWZhdWx0IHRvbGVyYW5jZSBpcyAwLCBtZWFuaW5nIAor
ICAgKiAgICB0aGUgdmFsdWVzIGhhdmUgdG8gYmUgaWRlbnRpY2FsLgorICAgKgorICAgKiBmcmFn
bWVudFRvbGVyYW5jZTogKG9wdGlvbmFsKQorICAgKiAgICBTcGVjaWZ5IGEgdG9sZXJhbmNlIHdo
aWNoIG9ubHkgYXBwbGllcyB0byBmcmFnbWVudCBzaGFkZXJzLiBUaGUgCisgICAqICAgIGZyYWdt
ZW50LW9ubHkgdG9sZXJhbmNlIHdpbGwgb3ZlcnJpZGUgdGhlIHNoYXJlZCB0b2xlcmFuY2UgZm9y
IAorICAgKiAgICBmcmFnbWVudCBzaGFkZXJzIGlmIGJvdGggYXJlIHNwZWNpZmllZC4gRnJhZ21l
bnQgc2hhZGVycyB1c3VhbGx5CisgICAqICAgIHVzZSBtZWRpdW1wIGZsb2F0IHByZWNpc2lvbiBz
byB0aGV5IHNvbWV0aW1lcyByZXF1aXJlIGhpZ2hlciB0b2xlcmFuY2UKKyAgICogICAgdGhhbiB2
ZXJ0ZXggc2hhZGVycyB3aGljaCB1c2UgaGlnaHAuCisgICAqLworICBydW5SZWZlcmVuY2VJbWFn
ZVRlc3Q6IHJ1blJlZmVyZW5jZUltYWdlVGVzdCwKKworICBub25lOiBmYWxzZQorfTsKKworfSgp
KTsKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC0yNTYtd2l0aC0xMjgtYWxwaGEu
cG5nIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC0yNTYtd2l0aC0xMjgtYWxwaGEucG5nCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjE4M2U1NWRlMjE5MGJiNjI2MTI1MTNjM2U2ZGRlNjc0ZGYwMDJiNzkKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDgxCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VTw1SzU3JitMMHErdykx
SWdwYUBiYTQhXj11SipaTlhTUz9ObEI0NwpleTB9ODUtLWRfYj8+cHhEVkNtYkFBUlY1cmVsRnty
NX1FKm9nQT02eQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2Vz
L2dyYXktcmFtcC0yNTYucG5nIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC0yNTYucG5nCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjAxZTQ4NmI1YTkyZTQwNTE1OGNmMzhmNmRmYmI0NDQ0MGZkZmJkNmQKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDc4CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VTw1SzU3JitMMHErdykx
SWdrP2RiYTQhXj11SipaMDBKNC0jUighawpiOXQ7ZT4zWXFfWE9uJVM/UktWY3I+Z1RlfkRXTTRm
S1NkSjgKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5
LXJhbXAtZGVmYXVsdC1nYW1tYS5wbmcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLWRlZmF1bHQtZ2Ft
bWEucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE1YTg5YmViNzA5YjRmMGM4Nzg3NzI2NmRhZjI4NDE2NWIyMWVh
MWUKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDEyMwp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+
eVU8NUs1NyYrTDBxK3cpMUlnb1BsYmE0IStuM0o1NjAwYiMxREptfCkKekxlQTtKaG1XaGVefmwm
VjNJb0I7UGRBPmQmfihlUytrMGs3TlJOYk4odnozMDk9XnwpSlcpO2h0WUshIUBNJDlSClVLalZ1
bSZwPjgteTg1fVNiNHE5ZTBEN2IpPypJUyoKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZv
cm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2FtbWEwLjEucG5nIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXkt
cmFtcC1nYW1tYTAuMS5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjM3Yzc5MmRhMDNiYTYzM2I3MDhhM2E4MDg2
MDE3ZmU5MWUxZWI0MwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTMzCnpjbWVBU0BOPyhvbEh5
YHVWQnEhaWEweX55VTw1SzU3JitMMHErdykxSWdueVdjbDMyK1V7RHdFMnx3Zm08bEFfPAp6SUVH
bDlQRUtLOWEjSyluNWYqWXo3ZTBKayl2WlV5bVFoJD5mX0FAZS0+anI3Jm59PCNAakFMZihFSk9f
bDRacH4KZ3BNKkE2aXAtV19fJXhDRS0tOzx1TEZPYGV5ODV9U2I0cTllMEpTa0RDamJCZAoKbGl0
ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC1nYW1t
YTEuMC5wbmcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1hMS4wLnBuZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
MGNlZWIwNDY1MTY4ZDFhZTMyMTkwNzIwZmQ4NDRiM2ExYmQ5YjBiCkdJVCBiaW5hcnkgcGF0Y2gK
bGl0ZXJhbCAxMzMKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVPDVLNTcmK0wwcSt3KTFJZ255
V2NsMzIrVX5GNHBfK25aLWtaPEdaCno7dXZDYUl5ckBiJHhUN1FNT2VyPVVISV5FUmt0MSlUU2o0
bDNFS1U+ZVkyOVRKaUMwXyRMcl97TEd2I3hPT19QfQpnZUc9TU9ES2NBejtuUElzZT1EWHUxKTBt
Pj5GVmRRJk1CYkAwNFNGeWJOflBWCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5j
ZS9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1hMi4wLnBuZyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAt
Z2FtbWEyLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjczZmNmN2I0MWI2YjQzZDI3MzU0OWY2YjEwMzAwMmRh
YTIyNmU0ZTYKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDEzMwp6Y21lQVNATj8ob2xIeWB1VkJx
IWlhMHl+eVU8NUs1NyYrTDBxK3cpMUlnbnlXY2wzMitWQ0hyMzVgMV9QJGhZeHkKemFTWDlJb3Qo
bko8ZmZxREF9cipiRWAwZDdzI31rWUV1KmwmMW5xdmB6RkEzRW8/U2xlPDheZH1wIXBZO0NDaUZ+
CmdKXyY4QzZxemw8QE0kOVJ6WkZ4U2czTSpgYm9GeXQ9YWtSezBORm4jbG1HdyMKCmxpdGVyYWwg
MApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmF5LXJhbXAtZ2FtbWE0LjAu
cG5nIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvcmVzb3VyY2VzL2dyYXktcmFtcC1nYW1tYTQuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDg3OGYx
ZTk2N2RjNGRkMjZkOGUzZTJiNWQ2Y2Q5ZTNiZDJlZjAwZgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVy
YWwgMTMzCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VTw1SzU3JitMMHErdykxSWdueVdjbDMy
K1YzVFVOV1Noelk8bEFfPAp6SUVHbDlQRUtLOWEjSyluNWYqWXo3ZTBKayl2WlV5bVFoJD5mX0FA
ZS0+anI3Jm59PCNAakFMZihFSk9fbDRacH4KZ3BNKkE2aXAtV19fJXhDRS0tOzx1TEZPYGV5ODV9
U2I0cTllMExSNTlSeyNKMgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVz
b3VyY2VzL2dyYXktcmFtcC1nYW1tYTkuMC5wbmcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLWdhbW1h
OS4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44YTY5ZWQxZjNkMzE2OGNlMzQ2MmQxOTMyMzRlYzMwOWQ3NmUw
N2MxCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMzMKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5
fnlVPDVLNTcmK0wwcSt3KTFJZ255V2NsMzIrO044Ni1OSl9tRyRoWXh5CnphU1g5SW90KG5KPGZm
cURBfXIqYkVgMGQ3cyN9a1lFdSpsJjFucXZgekZBM0VvP1NsZTw4XmR9cCFwWTtDQ2lGfgpnSl8m
OEM2cXpsPEBNJDlSelpGeFNnM00qYGJvRnl0PWFrUnswUEdraHpXQExMCgpsaXRlcmFsIDAKSGNt
Vj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvZ3JheS1yYW1wLnBuZyBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNl
cy9ncmF5LXJhbXAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1YTg5YmViNzA5YjRmMGM4Nzg3NzI2NmRhZjI4
NDE2NWIyMWVhMWUKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDEyMwp6Y21lQVNATj8ob2xIeWB1
VkJxIWlhMHl+eVU8NUs1NyYrTDBxK3cpMUlnb1BsYmE0IStuM0o1NjAwYiMxREptfCkKekxlQTtK
aG1XaGVefmwmVjNJb0I7UGRBPmQmfihlUytrMGs3TlJOYk4odnozMDk9XnwpSlcpO2h0WUshIUBN
JDlSClVLalZ1bSZwPjgteTg1fVNiNHE5ZTBEN2IpPypJUyoKCmxpdGVyYWwgMApIY21WP2QwMDAw
MQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ncmVlbi0yeDItMTZiaXQucG5nIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2Vz
L2dyZWVuLTJ4Mi0xNmJpdC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2ZjYjk2OTYwZTE0MmNjY2E0OWY0NDc1
NWQ2Mjk0MzUyY2FmMGU0MgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTM0CnpjbWVBU0BOPyhv
bEh5YHVWQnEhaWEwdnBeT2R1PShCRzxhTzgyfkJIMCp9YUlBbmdJaFpZUSh0SyFSbGpqX0UpZQp6
dGVQUTlyPis2V1FUQjlrNEJAeip7NnU4TS1ReCFpZTM8PV5vdGF0cWJZaD1CNF5LezZlVnNBVHhK
Vns7Y205R0QKUURXR3gmUGdnJmVieHNMUTBHVURfRiNyR24KCmxpdGVyYWwgMApIY21WP2QwMDAw
MQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9pbnRBcnJheVVuaWZvcm1TaGFkZXIudmVydCBiL0xh
eW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jl
c291cmNlcy9pbnRBcnJheVVuaWZvcm1TaGFkZXIudmVydApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kODIwNzRlNDcz
NzAxMWUzODIwMmE2M2M0YWM5NjZjMjMxMGVhMDBjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3Vy
Y2VzL2ludEFycmF5VW5pZm9ybVNoYWRlci52ZXJ0CkBAIC0wLDAgKzEsOCBAQAordW5pZm9ybSBp
bnQgaXZhbDsKK3VuaWZvcm0gaW50IGl2YWwyWzJdOworCit2b2lkIG1haW4oKQoreworICAgIGlu
dCBzdW0gPSBpdmFsICsgaXZhbDJbMF0gKyBpdmFsMlsxXTsKKyAgICBnbF9Qb3NpdGlvbiA9IHZl
YzQoc3VtLCAwLjAsIDAuMCwgMS4wKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9pbnRVbmlm
b3JtU2hhZGVyLnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvaW50VW5pZm9ybVNoYWRlci52ZXJ0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjA1MWMwNWUyYjg1ODEwNDBkMjNlYzBhZWRjNjgzMmRjMTM5ODY3NWEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9yZXNvdXJjZXMvaW50VW5pZm9ybVNoYWRlci52ZXJ0CkBAIC0wLDAgKzEsNDMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDkgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqIEFTIElTIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8K
KwordW5pZm9ybSBpbnQgaXZhbDsKK3VuaWZvcm0gaXZlYzIgaXZhbDI7Cit1bmlmb3JtIGl2ZWMz
IGl2YWwzOwordW5pZm9ybSBpdmVjNCBpdmFsNDsKKwordm9pZCBtYWluKCkKK3sKKyAgICBpbnQg
c3VtID0gaXZhbAorICAgICAgICAgICAgKyBpdmFsMlswXSArIGl2YWwyWzFdCisgICAgICAgICAg
ICArIGl2YWwzWzBdICsgaXZhbDNbMV0gKyBpdmFsM1syXQorICAgICAgICAgICAgKyBpdmFsNFsw
XSArIGl2YWw0WzFdICsgaXZhbDRbMl0gKyBpdmFsNFszXTsKKyAgICBnbF9Qb3NpdGlvbiA9IHZl
YzQoc3VtLCAwLjAsIDAuMCwgMS4wKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9tYXRVbmlm
b3JtU2hhZGVyLnZlcnQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvbWF0VW5pZm9ybVNoYWRlci52ZXJ0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjEyM2E0YmUwM2JjODA1ODMyODg5ZDc0ZmVlMWZkZTc5NzE4NDE3MzEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25m
b3JtYW5jZS9yZXNvdXJjZXMvbWF0VW5pZm9ybVNoYWRlci52ZXJ0CkBAIC0wLDAgKzEsNDAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDkgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqIEFTIElTIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK3VuaWZvcm0gbWF0MiBtdmFsMjsKK3VuaWZvcm0gbWF0MyBtdmFsMzsKK3VuaWZvcm0gbWF0
NCBtdmFsNDsKKwordm9pZCBtYWluKCkKK3sKKyAgICBnbF9Qb3NpdGlvbiA9IHZlYzQobXZhbDIg
KiB2ZWMyKDEuMCwgMi4wKSwgMC4wLCAwLjApCisgICAgICAgICAgICArIHZlYzQobXZhbDMgKiB2
ZWMzKDEuMCwgMi4wLCAzLjApLCAwLjApCisgICAgICAgICAgICArIG12YWw0ICogdmVjNCgxLjAs
IDIuMCwgMy4wLCA0LjApOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hh
ZGVyLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9yZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFkZXIuZnJhZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
MmRmYzlmMWQ0ZWQ4Mzc0YzEzMDUwMWE1MmFiMjU5OWEzNzlmNTJkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFu
Y2UvcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyLmZyYWcKQEAgLTAsMCArMSwzNCBAQAorLyoK
KyAqIENvcHlyaWdodCAoYykgMjAwOSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogQVMgSVMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCit2
b2lkIG1haW4oKQoreworICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMC4wLCAwLjAsIDAuMCwgMS4w
KTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ub29wVW5pZm9ybVNoYWRlci52ZXJ0IGIvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVz
b3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyLnZlcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODIxZTQ0MGQ0YzI2Mzc0
NDRhZmUzY2I1ODdhYTNiOGJkZmJhYzBjZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9u
b29wVW5pZm9ybVNoYWRlci52ZXJ0CkBAIC0wLDAgKzEsNCBAQAordm9pZCBtYWluKCkKK3sKKyAg
ICBnbF9Qb3NpdGlvbiA9IHZlYzQoMC4wLCAwLjAsIDAuMCwgMS4wKTsKK30KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3Jlc291cmNlcy9ucG90LXZpZGVvLm1wNCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9ucG90LXZpZGVvLm1wNApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41OWY1Zjc3NGE3ODNiNDU5Mzg1NDUxYjRjNWRmMjM4MDAxY2I5ZjFkCkdJVCBiaW5h
cnkgcGF0Y2gKbGl0ZXJhbCAzODIxNQp6Y21lSTVlUSpAejltbGBCY1kjWD9hMHdBJk5PM08+NUha
U3V1XzZPeF5XcUVkTEN+VU5BJj54KHlxUDxxO0BnSG4KejVVVnAtOTZMfWIhRCVWOSVFMEpRYmhK
SDxSZENTeSh5NnhQazMlfTBSLUd8Z01gPFZaYGg5TD12YlhORU5yY1IoCnp6aTBCeD8oO21tJnZY
MGleTGMqSD98MXYkMD8xdCp5YCNDSXhuIXl+NHZXPmNGNEVLaEFoNWNud2lhbW5McWtuPAp6Nndx
aFotZngqJCpWSSpkWUpXUzVCYzF2MVBYeD4qQEU/antVZnJlbExtdmwoZWllaiYwWkA2SCYlKHd8
MWdeRVAKemRIdTB3MWIrWjZxWUE7LW9AVH0tbVZjey10KFUwYDMpK1k8dkwrbHxjLSQ0di0xflYo
ZD5SNF5FTGkpSVVKWSNqCno8KGlMeGlXaWFBe3VyP0o3JjQyQElFPiN3JnVLPyFQaDxyMlZSM30h
S3RLUHBGd1puQ1l7XkFuYF5nU2c4bjcjIQp6YFJhXmF1Q1JPTlN4aFNKRHZkdj4jYkJPNkl8PiUo
eWs7T1VuVD9UU0JLdVduN2lJRThgVD9VNmRmTTl8OSVzUW4Kem9TU0Y8JThYRzQzaTY+fWRedDE5
WXY4WjJhT0orIUgkUmFZNHUldDU9ZiY3fHI2QHcrNW4lSkFIN2BLWk8kNl9UCnojPT9XZzB4VDRt
YHdzbCRWd2smMClvSXZ1ZWlta25sfHZ1RyZHTHdrNEhIOVAzLUg0JFBxNC0yMHJ4aX1AWUolbQp6
VHNQelJAd1d6PzZsYUdARldhZjdTdWVkYXl2VUNEKTZGU0lkfkB1YGtsYCEzQk49NW8xNmY5OWdZ
fjltWEp6RFEKejQ7eypAdkxsKGZqPnczN008aSVDQkg0d0dOS1RPPkdQPjlpJHFoUnFjX29mV3t4
bkJxK3pkeT1GZGRQQ049S3lkCno4YkBUcEpWJkljJGBQNWcjMVNjOD5XRXlqdFVJRjVCNVZmb3sq
b0FaPTlWSDEla0xUckVqQDxkZEMtYyg3P241Zwp6VTB7b2F6JTRJQTgpWUh1SjJCcU5YS2VefXd+
KSorN1JuIWl8SSZqZFgjamtCe3Q2ViNTMitncGNAWH5EMlM8SX0Kemt7YSYwQWhHZU4+Vm9Zc0NQ
ODBucVZUO1BVRj1kSEwwZW03cGBabzZqM0IhUkpNKD8pYzU0KD04XyhFPy0raDgtCnoxYFVLPmY/
bFk0U1YleyoodUkrUTZXdzlxKi1UO142KU9+R0J+a2REOGl6T3A4MjUxO2RlWCQ0NHhmY0s0bVZA
RAp6TnNkRFhHIz9NWUJzbVRwdndReDBINGcyNzdLfGdTPyYjYT1UO2FqZUx8UVozWmUlUDJgZ2tE
cHo+WkR9PH5IfioKekZpezVocnxLK31jeis2UT1wa2dFUWd3MilRRlkjfXB5QytVYmAqZ3pDdTN9
d0YhV0ZpMSNoVXFZN31oVCRDU0E1CnpNb2FYUWZoTGA/U3JPVmU8bikhY3UrWmtGYmZPb2dMUjsj
ZiolQjRuZGV3N1pYajJvKEFjaD1DYmJPeG8wUThxagp6SE9fUko7WkhMJEh4dkdzd29rSlZpYkt5
ayV2b2R7eztRam4lN0x3Tm1UaUhTN0R3PnMmQCRpTyN0ZjUrRnFhY04KemxAWnspPVFPbkpiKF58
ZV5TZUQ7NjdocFImVUY1Y0shJH0hZ0dpc2c/X08kJTg3Nk1iO1FWWnRnJXtLdXNkd143Cno3MUFA
U1JBK0tIUzJOYWBZQj13aVJTdE1VKVZDQWFNOG0+TD9ec0lqT2lAfjI+RHkyeHJ2YX1jYCVzSkAo
ekdYWAp6SCFJIUYxfjU7O0tQOypCcmBsQGZFdE42Qk1DQ08yWiowOG0mI3JLS1dhOVp7b0wlQGpi
ellyYHp7LTdoODMtMHEKemstZChmJCE0fnc+MFhFYklTWFlVejw8PGFvanNGQndwajExa2AyPXtk
RipoXkQkbk0wZHpQclNwMUUqZVZhcE5OCnorQF8zfEJfcHU4MkY9fDlUbUxtJXVEflgrckdWNSYt
OyUpQWY3dFFgSGkxb0c+amtJYTlRcT56KDRQMmhYSlllWAp6NzdxVmpJb3goWikyZmkmMGQzMDls
I2x5JXh9aEk4a3U/b2spPTZiYyNjVzVzQF5QMmw0KiFLRkR5QXpSY00hSWwKelAtVD9VZHAwZUcl
QUtjNS1Uc0dEaThCe2phZkdIcipWezNFNlo4Y0tfUiEldUdLa1J8PkUpWWZBaVVTLWJWMVNyCno+
RzRnKmN4STBhUWRNZW5gekZ0KHJfSUFmbSpgQXZKZlJHI3hINzJiRXY3WkE0OVVQRVV+VVFna0U/
R2IqWkBnKQp6cGZYeEA4bSpVZWxlQXslUys/ezJCczA+dEEhYEoqKExaXnBeKzsrcytMN3F8elEl
NzF5M21lLUQoSlpmX1IhcyoKejR3UVdZS01TdWdYdV8zMW80ZitTSkUye29vVkduSyRQVzQ8ZHdp
MkBtPnc2VGFAekx6Q2VObWEpKUokd1VxK2txCnp7LStDVkU9UVpFTHRKUWNrRDNkR3dxQVlNN1ot
YDVFa2tHJStFUGpLYHRyaj1ER0ZgPHIpYCtmQ2JTN3tqd2U2UAp6clFNYih2PFlvTythUz80VHhi
KjhndGtHVmpzN3c1TnY4N1ZfMUtfek5tN1pOSThuU0w0bnE2dEJeZkVTckx4dXsKeksxbU9raCkw
cm1OJjQ/NDtWS1NVWklrbGw/az14S0RQKjxIbW1VRiNMc3J7LXYwJGpMeTNIP1orZnJIRUNBOVZK
CnpBI0leOzBKX1oqLVI4bmdiZW1nYGQ5RjdWKzZGKmRPbFQ5QFF0PEx4ME82dFRndHE/RW1MXyhh
M3BTWmFkWjZXegp6Qih4MkhIbkgxO3dpTU9vSWMqZiRfKikySHtXblJ7I0JMTVhnZl89X1hYbzxD
dHUoUlFnZl5qVmtaMm5zY0FMOzkKenY8KCgqVnomdXhMZmNAYENVJT85Q2JTSX1aRE98eFo5Pn4x
KEtifTxIbGE7dTghWHp5WldHI3N3IXh4Sj5eN2xJCnpYZDVpciNCTE1YZ3RrR1R0KDNwSCNVRFBE
N3U8WWxVOSFqR05xT2FsWXRebTFhPklkV1VsekN9YVNJQT1acmJEeAp6SHlednVAPzZqXlpAQjUt
YklEMkU8bj9WSHM+fnh2dzNgYi0oUVg2TFp1MCYlNTRKcCMxVUpGJHRFfmVfWUJ5NlIKemxRTmwx
Q0NUZkQkMntKVEFkfEBmT2VVKVlIXkVKQ2I0KDErKXctTGNjM1VDMTMyeHNeK19WZkpgfjhOZHJk
OXk7Cno0WHRaeXhXeX1Ga0F7XiVUZlBrISZaJlkxXzE3Q3hCMjBHMCZFNnh1X1VQKSp6QWY1UHle
Zmo3cVUofSU0KCtNKQp6aV8lb1I/JT1BJnQ2blk0bE1XP01FVWN9R00hMSg+VE9XeWI3b3tieU43
YSFtRTk9OUNuITBNezg0V2VBWVhgO3cKenpSbDtvb0lKQitaQjJia2NOdTd7dEV2NUJVdX5+dnl2
ZGtmJWM2e0hzdkIkU1l0XkF5K1oqWntTOTIkKXdJTnh5CnpeVjFqQiptP09pRXckPHg2O3l1YWBq
JmRiLXBeVmJpTFJ7WXsqTlFrTmI8aGU+RFdAO3hAcnBkUmRBTVJDeG0oUgp6KktrKmYzUipfbF4l
WGAlNkR3Un1yP34mO0NLNjFWIWNyQD1AXzBfLTYhTy1UVFJEI3wpPm5TMj9gMCNYVDZ+elgKemR2
RXpaT01gI3lAbTFJSWd4cDlwKn1TU2FiLS1xT2lgLVMtPV9TMDNScTl7e0E0UHJpVmNsREgzOXVf
Qih7QWVDCnpHSml4ZCYpTDl1Y1RqY2NXc0Q0VyRPeTsyR2t0KmpkYno4LXVVcS0meF96WWwpYyl0
e1hKN21OXkw2azReNypCSQp6eHxtR1M3eWw8dV87dSsmUzk/a09OYzs0TUMtPD9eZjQ8QFVyXjBv
OFhNNnJFPF5PTn17JXZkQHs+cXx1UzB1V3MKemlHNUU2V2tWTHhSe1ZnYlcrTzBVMCVicGMyN05p
QFU3RElTci16VEY/Qj9zMW1yKHUpakN6b2tgYmYmZHohKTBPCnpWX3hBQ2lFWTRHe19fNDwrTVZO
T1FEUSlkRlNaVy04ej8qc2o0ej1hVk82WjdzMXZ5ODdlTWhPJUh6T2YpLW1+Uwp6enxAfXRtbTB1
alp2KUBFayNaOGE7dF5vX1hrZjt4eilaUzFYMSlvUzVBY1B9blM1TEdpJExYN3oqWVlOdUN7MiQK
ej4lZzM2X2AydkIhMkV2IzMrU3BAel5fZGYoYUNZYFJBOStfejsqUyYoKGg5QzBYT2l2WjtJMml2
SnpOK0s0bGxNCnpnMDc1fXl2OXthZno/NkVrQVMrX2xvUC0kM3hFYyRucnFrIUd9RT9nWDhwSWF7
c140e1FDfE9UKDwjcGE4fFhzVwp6QEVMSUQ5bCQtVF9ueFBLSHJDdHJBJU9qfikwTH01ZyRXZG0h
biZjezZzIWw7NnJLbVJFZT1xZ3J+SFpYNWY0cUwKemdlWEB+N0UkVWJaSW02OSE8NkhjUTxRKTRl
cjhjRncwIXtqNGN5KkoqLUZfPGQ3QVBEPHNaRH44cyZWLTZ2fUskCnpIUlRUMHd8NCNkeHw7YipE
d2pPYCtAQGNiRX4/em5jelArQDkkfV9rI1pOcn03ZWxBWk41Zig/cF49fD9LS0g4NwplZjt6UEZE
eCRDKktaWXVVTX56bTtVJmp7WGpSUzlaR1ctfEFGOSZHPQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAx
CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL25wb3QtdmlkZW8udGhlb3JhLm9ndiBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNl
cy9ucG90LXZpZGVvLnRoZW9yYS5vZ3YKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQ1ODY3OGZiZmQ4MTk5N2VlNWVm
ZjU0ZjhiNWU3ZmJkODU1MjY0YQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjQ2MzAKemNtZUk0
Y3w0Unx8SGxvbyVoKGxSbjZlZ3dFSmIjTSg5QnB1cH18PHZGcVNNKWNHKzVwK0BmU2pRcnN5LUM9
Pzx+CnpUMnhZenR4fVhrY1BZPWdXPm5NdCs+YyhyPWxTZFJhKCFScHlQZmtudTkte2sqRXlHMHd0
MEc1R2NZbk4rRkV7RQp6OyV1U2pnVjZLdjQpaGBzLTVIcF40fTx1VXpXOWZsWllzbUpVKUVOM3Ft
OFgmJHRefDVNK0pHMmB+cndmajBnc1AKejIyS1dxRzZUYSE+Yk4tWTJ4Pjw0dztITGQoNEBkYVJ8
cE5Uek1rPCU7Sl84U2B1VU89NmhRfUNBRyRiYjBteHtKCnooREx0fDF0Zi1rekNrNDRwIUdJazZ3
KVRpVX5oTWxwQXprMnhIKjNQVWVKb3JEJTtrIVBwXnohcHRHYVZHPSV+Zgp6d2ZDbFlaUCpzekRZ
P2hubURaS1NZYHtwV0NAWDZ6WXBTUzclRyFBQzRmR31MYVZOP19wUitYaEdQV3xAV0BKcHoKekAk
ZXYxTlMtUCopcTNSKEQoVlY+IU0rJUVFZnFFQlUwODNrQl5WbUpZX200aXc+SCgkQkJeTSl4b2Ng
KkdffS0tCnpuaXw5eW4oU0phPnxBWV5rNFYpeUdqbjhNP2llUE9rV3F3VSE9JDwqPDR8bVJVPlRi
NmxGT3w8KHtJaCZAeSY7Nwp6P2J0SVd8SXpFYmpWISskKzdiQ0pPZV5QKmhjJGNYQzBuXjtOJDhr
V1khVFhQNHptPk1ON2RXTzMkUWMwcUNpODgKekR9a3t8Rkh1dWFzREQmRk96fXR5UUs+Qzl2JTFe
JFByS3dRZ0pfaj48OXdkK1c3IyEqQjt+QT53UztXVmJXX3lQCnpnRXlLVTRlbk1HO2NSaXUqRT96
PWcjP1lwVGV9bm0qa1lzZ0YyNEk7dCtEWXZOPyN2JD1ndHI+M1hqKHQ5MFZtRQp6an5oYnBWbkQ8
cmNwO0MrcW9AQGdQcGhhY3MkKiFaSzxLQWNHeSoqZS1fJiQqdW9zan5PXnJoYzQ2JmxPd319QDYK
enMtZEE/e3BnQ09VSiF1PzBWS2VuejtIMWk1ZmlJPXI/R0plUSZAT3wwYHhKbDhQLXVseXVeRE9f
YzlIa1QmO150CnpgaHQzNlJEKUlzOVRkREZ6JnNpcGw5Z1orLSFkITFWaUp0YFVrISFBcnt4MWY9
QFglbGswKDtnZTQzfVdtVU8lKgp6OzxTTipmaiZ3PE1oYzM9NyhOZ1RecnhaZl9vbU5faWtWZWNT
STQwNk1lQ3AjVTY9clp5Mj1ieHtvWEo/QDVGelgKenB9K149QUR2ZFE3QEJCUlEhbGolP2lEbCFM
aG9XMnFFJG1mKUYheHJ5dTdebntgdClhVDN8I2BEQEd8aSlNUygqCno7QXckP3ImYV8pOHFfMloo
aEMrdEpfM1F6azhXbStyaUl3V3opV3ElR0JZRTw3em9TPVQzfShNUnhFNmJmc0ctOwp6ZDF1Z209
WWNvNk82Mzw8ZCZvcUBpIzkjcjQtZT14eklzQHJAeFVtYlFBMU5qYHNXNyh3YSlVRU17KEA4biU9
SWwKeiRtJTltbyMjJDFDRGVaajtjNEhUPSQtQTlRbypkMGhEfHQrK3Y4cTtBWWpzVUpHTEBSaEpE
Vn5SNmx2XzkwPXZECnpGeyZBTldCYXV5WUVnfEhlUXRpYXkyPGJBYDk1NWttc3dMUi1hQWUoWUdy
KWc9VjZXV3h3ZExPM09nSVVQdkN0Owp6WFB2YShCclk2I0c5WlQ+YSZofCNgQmIpUj0hRiNIM2pz
VmVNd0BlN0NRO3NeVHJIV1dITFQxPmFDM2Z9KG0mY3sKenZWRzlCJURuSnNnR01zMVEqPT51YC1f
OGhkIUh9M3dAeUVqVzQrdjFJa0VZJHFNYUwwUkw1YkhMcT5Qb3N9fUJgCnpzZUxTRkEwWipiZTdD
KGFicDQ+fT56NmB5JSNMcERuYX5oPm5SeHZobWl4dkZPcHBIQiZ0NG4lPUpTcVNXdDRUdAp6RXJW
SlJWXiZrUHJjdm1KNjlXeGE+I314cGNWOHkqLVBobiQ7TVEjcyN+ekBScmYwMF5KP1ZiNCY/UD1J
ck0+LTMKektsV3J6QW84STk8UXxEdldNZiZqYSFTakRnS18yJnc5QXRhbD19VnNmMjd7WCpadTVY
eSplMnU5cH5WMV59fTFVCnp1Pjx7YU16dDRUST1hdFVhc0tmc3QhSit3TEdnbCU/RWF+IXstbE02
I2kxcnJNQGNzWDJLcU5fejhBV1NiSGJxewp6PmIxQ04jTU9LJmcmbjU/ZilpJmxqcVlPcURtTExD
NlllZj1Kb3c/UEtSSjIpNCMjZTlGVXFLaHI5d2FZIV9IS1YKeiZlZ1JFdiZTK1l3R0spQG5QY141
XnNMK31iSkZJbHM/NDRCIzJUSz4+S3lCNDlpKTc/LTtPSl5jPGRVenp0NnA5Cno7WWpqMSQ3WTds
diYjRzwxM3Z2NWErPyopMHVlKEJ1MU84KUktQ3lJaGlzKj9adSlKV0tpVFN+Q14reW1ZUFNVJAp6
ZCNSbkBEI2J4N3VKdj1nTz18Nj9adkpgU21BcjgrKypQd3FuPTcxKE02PGcyIWh8SCk8T3dFSW9R
QVY8K0dUREAKelo1cyo8MTFYKVdhWmctNHZKfTF2KWExSCQ2YDxZWT8hR04rKD5WRU1AYmlQcm1f
KjhnZS1fUzB6RyQtLWA8WkBBCnp1ZCQoQWptOW1OXkI9e1c/Q3J3aC1nWl9ENX5PaDQjYVJ3JkBz
VXs4K1IofXkqUlh2RzcqQn4yX0RNZ1NnT2htKAp6YD1tNTtTNT1tb05fPG5+d1V6TyFoV2VpJHdz
OEgxdSQ3VXJfYF98NFdzPTlXYV9fV29VfTZXTmBtKjxpa24qbzIKeipIVGx2aFAoaClvPGl7clVy
QzxFKTQ/T2VMXmJrLSN+cD5UQGl0Y3dJVlN6MXNhTioxR2FaYjdCVmhSe3h5NV8pCnpDZGIqSmgo
dms5OzY5QSM/KUtzIVZxfnlyekZuMmhPfFByc1RQMVRBWUZUK1VLR2hrTUwwZ3QydTxUOGR2clAq
JAp6SldFdSY2ZlFDVCRXYTNNKkEzQ21FNHJKcGYyeVZeP0RUcXRUJGttb1FePEhDYitGUiQ4cT5K
TW0wV0hDS0VDUTQKem14JCY7dFo+QXIxSWdVfUA/TiV4K1o/dE1SfSZDezstWTtILWwyVE88Tz9V
VGNgfUU0YnFYay1VKXpkWjspWXRNCnpURUQjdVBCSjtMaFM+YXNXNjstKT5qaTdpVSlIIVB1SG5v
NUVOKjV3SzhvMyF1M2MoKkNNR2hOdGtYS09QKEhmQwp6U2toaG5mdlV4NXteMiFPbFB9JVc2Xz9n
WXBBJE5DciVicUhtMElWTW8lV1d4VVZATFRhVmYqK3Y/UzhNMW8+JFMKejU7azNyOHh4dHtRaSY/
T2V1dH08ck43OD5MKXojbzY2dSsqK2B4elU+ail2LVEkKXdScW1+TmZwbClyNkl5WmZpCnpgXyNT
PyFZNVojXiM9LU9tcGMtNylhLXFFZlZmJj1lKjNQeCU9Mn5ueE15ZFNTJHpyeXViaDNCeFY0P0R0
SUdXRAp6bzxEe2I0JDlwKHhtM3wkaihmKkRnTFpDOEt+PGtTO2k+ZWtRT29MVCU9N2MxNn5iO0V3
d2g9cV5HNVF5ajRzdkkKems9YUNpQWo4TSRCWWshelEpTytMYXpiQ0ZeR3VOIUV+RSt7UX1ORFdC
S3l+VURfQz1PRF5AaEkrdSY3Nz1QRm40Cno5SjFHeSRBV3I8T19NRiZXKCVMPFooN2FeOTNpUnxt
YXNwZkx9dUx4UGomZDx1Kj1CUXlyMWtnYi1WQXJke05FcQp6Pnh8MEs4I3xfRTxNUXNuIzZ2RU9l
bDBvcVIjPmpCc2ZucSV3PDxaWFVgfjtPYFk7JldxNFpZI1c5eTZYMyk+a3UKekZ4T30xODtrUklQ
YXp+Yj98U3MjS0YldlcqPDdpI1B4RmdeP1ZYJExtfH04T3JVfDxldyZPJTEmejFgcF5SOFNHCnpk
S1cxbT9YUjd1bTFLKSUrWklgUXNwMmBsaEolVWhwdz1WQXVYS0VoV3E0Kkg4cHhGTWs4NTxIeTtn
MWBlZGE0UQp6K1AxIW9fPFNjRHBKcW1VYEBecjN3cV8pRWdUU0hjUVc1OHgrZHxvMlJCeVluST0/
cVIrWlBpQi1IRD1aP0ooNH0KejV1VD9QTnl4bjBmfEdMUm09NUJPQEsyWEZ4fnpHPTk9RlNNdHY5
Qitifk0lVVM+MyFmWmZlfUZRQWF1QEd4TDxNCnohRis9PmkhXzxFJmltQU17QHo5aDJWdlp+NjZ1
SlZkWD88cmZKMFNuPnwkakZPa0t+OGo4OD0hPmNIT25UJCo8TQp6Q145MzJ3PFdvRzxhfSMoXzVF
ZktgdnBKIWRncXZqM242WHNuSzhDRTZkZ1V0cjU/Z1BTaC1ELVNkTFAyZGB7aEsKekRNcVoyVkNg
RFlWcSlZbCpgbVRidVMyTTM9Kj5uIUxSNn1Re3FUWUlvazx5MTxucyMmX0xaR2lgLURIZjslYFNH
Cnp3V309a3h3fDd9bCtwYSkkSlpnQ3QmVUBrTCl0ajlkKEZPOypSNCNzdERzQSlYI1BAYSZHNWRi
SWs5WUBxT0cpaAp6SUw7YytiRWZ7Mm89SEFSN1dgMEh0Um8kb15PY3h1TnBBblA3aW9leHpGcm1s
QmpLRlBucHBfQVJKRDtVQkkrcmgKenV9fWtMcVQqRyUhTShwP3NUViZjLTFGP0V5ajx2dT04ZUFU
XllIPylxM3gpfEQ5Uj0taWY3dU1pQWpyMzUzeWVZCnozYUBXZjIkTF4wZDdvfmAlUDwldUdUMDth
X35BaElgfD1+UnF1MnctP1dTI1E0aF5GZHEhNWlTRi1AbjhGYUtHcQp6SV94Q3p3JlU8dSNqPXNv
YkFrailVSX5LbG95OSM+R081RXYpOV4oe09afk1Pcl5qbX5DT08+XyZNNTc/ZSVmSXQKellmZ01T
bXE9PXtjWHN1cT1lbiRzUVpJU04kMik4bEZHJTJwJVpCdFFycF83UU9gMnU5I1hsfEZhbVRALTxL
ZXdlCnpDUE9taHVhWDhxMlFya2lrMUtTa2xGUk5KNiZEPTQ2K0pUKEplKzR4Q21yUnhVVSF4Mkpy
eGgoOUd7PkRHajBRYwp6WkZid3VpPHJYMTUhMGtPdDRnMjN1YztLempRVG9DVmFZOUlBKTRLfD9f
enpuKGZFR2Qmbj4mMll9Vz1fb3YraHQKelo4RGQqZChgdDFeWTxlTGJUKSZJSUFMMjZWRj1wa2tI
S3puNUlSZGlWP3RhJCQzPngmKWNmek1VISUle0ghazUqCnpgPT1WX3VGWENCXjhCQXV7d2F4WW0o
VlokVSlxfHA9Wl5lb3pVQlFhdz9ydGtxOHt0WWV4ITIoWFZGSTRpSHFGPgp6e0V2eERwJSVXaUQo
Kz11YjM/LTZJPEFSMk1hY2xXI2ZGZ3QjZHB9YTtfKllgMEw4NzFNSkx4U1IkTFNGVz5gJCoKemVi
Vyg3ay1AZ1pUO1pCK0VaUCplJEV9KX07YUtyKk93JG9Ea3ktITRUJW0oKUU4V1dpb0xBUTBje2Ze
K3lqciRnCnpaS3FkNE98TzM7RFVOJlc7SG1vRnUhMFlVSiZ2O1oxPEF3NHQlKkt8Z2pjS0U+cGst
ZG85R2ZncGBAbiR1Xl5kfgp6K0xOVUFjKUkjZU9HXjViP3FeO2hNK2ppS29ici13UmxyJW56VEU5
anhlOF5QPCNuM2Q5c1FreERkbStmdUhIKSgKekw3JE4lYndvdkhaaSFDZDVAOUdgeDY/dlRQcD5C
MUFHME45I21NZFV0WWI+K0J6SWNXYD5SU3lkVW9lSiZvc1AqCnorJCZHY1hJVHlXRFpuV1hoMk5i
a0BDV1dwdUZeaXw4N3IjOHhNdSZrNGspNmNQbEE7ZD9XMXJaWXVmeXVoOT9BQQp6WWomJXFwS1M5
VjJ5cV9EJkZFSDU5WFQ2TnUpPkhWUU9TcVZUMXpoWGJoSkxCRWhxKCVAeyRjTCU8TUt1U3hLQjsK
ekNaM1R0JHNkZHxiRmN7QCpWXmNuTTlhcjhtJEdke293cUJ9QE9AZkc1YTN3QkJ4YXRFRUFjJnoo
bVRCY0IkMjRFCnpVKmB7QTBYOGtMZCF3a0JkNzBoJGFReDlpZTRnRVQrcEdUdml7fXVLI3BONlBG
MF40ZjFJN09DRztHKnFgN29WKAp6OE9AbjlLISF0fkhxJVJ3VWkrV1J5JF93aEUzeVombUlZbk52
P0NVNnc7KUhuS3xieiVpSCRzenk/dF9KJipSRzsKemkoejYlYDJITmxIKmJOeDByb1MjYz5+ViM7
ODNwQCYxalVnR01iUyZpNFNkPkNkSkgjTD5uZFh4d2p2Y0dEPWMkCnpaJUdrU3c2QWRlVUhJJDZj
dShHemh+ST0+YTRNcU9zIW8lQCs7T2UkP0BwS2NgfiVjXlExaHJoR1pNVjsjc1lYRgp6MHBSVlBr
Z0xCO1U4REk5SDhzQ0ZII2I5SVpvcXk8SF93cFokdGVfQHhwaiNGVXE8eTRhXipjc2I/fHlaUj1h
MGUKentne3hQVk4tQk1RMSthJHhqZz5BRlIoeEZyZWNTT3dNdXFJWEU2ITtHZ1h6I3cpb05pPU9Y
anhgX3tVNTdRQyFaCnpaVkd4dUFId1ModDcqbGd4YHt4YShKSjdeSmU7MFZ6bDtTM3s5NlJAU2d7
fTh6YkZrMnleXyVCPkJlWD9HYnV8Twp6Iz5HY2w8VjZDMGV9R2pRdlRhUUdTMVNJZlhiLTUya2hC
SipmYXFIcF5VKz1PJERBTEA1NnI/KWdgbztWXipkWikKenNReCNFe2VLNDQ5ZHc5WDBmPVpeVElz
a25SMEhTfihDLVE0b1J0dHVFNmdObXNEJmBoM2V1NlRGWTNReV95PldoCno2SlpSKTc9fCRuVnxX
P3VaRmtXamtffHZtZXolOTsob2hZZFE/TFdZMSRFNTgoaDRoT0ZieD1sVkdhPHJZWUg4SQp6VkU5
KThRfEd9TGhBfDlkN3s+NTIhWjMqcmsoPmE2Q0ZmUT9Tc0pQbGJQNnRANytBJURUVXVlUU4yTXpq
IWB2WUsKel8/Qz1ARiNIYiRyY1EpMDN9WUNeRnBTfTRneUckS1JQcz5+eGV9eD0xKUJDTzRPTTtJ
UFghTjFnS0Y9YXtNZyZsCnpoODheeXZvS1Upc0tRVyVwfUxIcVlFT3FxQiFGU1J7fnhKS0wpREs/
ITN6ey12WmZvQlIrI0xmUTVKZnt6ejVRZQp6Ul94KmJoR0R2bUV7dElxISFVK24zQDstTEpKQkgk
YGQ+dEstQ0dZVzRiPm56ZyNie2JnIXI2WFRDdFNeclU4UjYKekVDfUxBMCh5b1ghKm0zdSZWdy13
VjtJSVRqTnhVM1ZPS2d0M0lQYk5le21zdlh7ZChMRFdJOTM+czJPflJeWHpqCnpiZnNjZzFmPUdM
KllfPUFgMG9VIVBKfVRHVjtJSVRqTnhVM1ZOV19sdF55RjtUKWJPb1h7YThjUT4rRkd7djhrYwp6
bVI4c3YxPUR+KnlJfX53Skxjbn5NRX5RaitaWSZONDhzX1BGJGBtUDhEViUyOVV7ZDVCRFdedFBi
PntwIV8jMEkKekZiSndeS3M/enNnYHxKUEtwaDBgYCRpWHJEaHlRXnN4VlpTNW1YJmQoO3heVDY4
YlltcU5MSkNPR0RNNFA5WHNsCnppN0xxNz59XmRpe2A/LTJBZjVkZG5laklhZTx2Xz9COCpgZSEh
VStuM0A7LUx5VS15TDF0NiUjN1QmIXloSikhOAp6UWIxdXBLYlgwKyFtXlB7U0wkdzk4bDtXZVZA
clF4XyFrMEdDJkN6cEYkYGxFI18lJTJ1c2E8aChFeCghKW19X1gKekxwN1hFdUApJUNVI3R2U1Qw
eXUyclU4Uj8tME1KTyt8a29TI3FocnFtXnUlfUZwT2FzISFVLUk1cikwIzVHZXk3CnpJSl9UMlNz
SlEoZ0glPmhwKCtjflQlPE1NJiVHXmVZfCZGTzNxdXUjRGh5UV5zPj10ZSV0bkpXMDdDbXRJZ215
JgpMeTBURkorVCpfZjUqVThvCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9y
ZXNvdXJjZXMvbnBvdC12aWRlby53ZWJtdnA4LndlYm0gYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvbnBvdC12aWRlby53
ZWJtdnA4LndlYm0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDcyNzdiZGFhYzFmNDdmODAzYmJlNjk2OTEzYTUzZmEy
ODU0OGY1OQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNTEyNDAKemNtZUk1NE53JjQ4T0x7emxM
TXBTcGxVRW1MRFoyZDV0UjU8c1Q+JXBDTGx5S0FWdDlfZW53XmQwKEM2NjJkRmllCnooOXhze2h9
VTNaakhyaE1sMHIhNmhoVXYoQFQxeUI0ZnF1cktTNUNgTVh0Tj1GMCR8QmVjeTJrYmVZY01PcnJu
IQp6eHR5OzVJY3xUP2I5Km1fKjV2YVhgciNSfVM+UXQraX5ycGheZFMhZnJ3fmhlYV5qb0lMJChP
SWtQSmNSOSVXdTYKenxKSkdvKllLUCpyaXROWVokfStXPz5wX2whbChrRkNjRz9ETyNObWFVS1Vr
ZztlRiplRnNlKzdmMngrRmJldEhnCnpPdCtOPmVOVFN1WnVXb2F1Y1o2fGdOSSl6T21oaF9nYDN8
Rm80MFBebjkoRTBqdndoQzlqczJQX2hsVW9KdX5qRAp6YkdrIUFeSyh2QmN7WDJwPHVfWVJtJjRG
c09GQVJVN1lqWUN7MzdzenpeXl9nQFZOciNVN1ZZaXhNST1majVwJW4KemgjYTNMQFBuX1ZyU21Q
O1MrJmFWSFFGcV5mMm0tYkRnOFdDe0R0U19sQz81M0szNkFqYE44bzUkQzxPLXhqcD1GCnpmOE5H
JTJCKGFTdHJfV0NJbT57V2NkbVVMUkZUVDleRyRLN2ItQ0ZpQ2RsaDZ6Sj5xSmVyak49THo2P2NM
eU11dwp6clFVTzg+eVpjTjk0e0ZmXytSXzNKSmhoQ0dDQXQmRlhyeUpjeCRadjJlV218KXk3amQq
U3tCLTxpNVVpUV5lP28KejRVNDgkbmNZTHo/b0tIV0Q5eEBwPSN0KmtGWU5DQS02X2RLMWc+KDsx
SFR0T059aiYwSWRBZVFPWCVpKlQ7YntfCnpPZFMlbHtRYzRvbVUjJCtQWCZ4Ri1FOzJ6cVg4YWdD
bSM1SXVIVVJBeDQ+JXdCTXd9UypjWkRsSTt1MTtAb012Ugp6dUdNWlk5dUB6Nm5aMmZAWDRVRFAq
TV9WKHZ9ZVRCbShNKEdLM2ttcVpKKHlDVz5jenR1SEY5SzxDVXcxUm93Z1kKekB5eUBiVWkkMEcq
czE9TilfMSVmYUwoU2wlVip2YDg5d3JGJEJ2fTc5QDgoNThnK0JeNj9lQj9Dd3I5fiRUMFgrCnpw
OHNnY14rVDFyP1Q9Mj5eRk9iZkpMQzQ4dENRK1dgTkNLRSFYZipvUlBVPyFxd31NcC08YEMte19a
WD1VO0prcAp6I1FqI3NJVHxsPD93b3MhVW5BI2EqMmhuK0VqcXk9SSs7bHFGbG1OTkU2ODdZemY1
PEw+MmFCXkE9NGpac18mRCkKeiV9ZTtJbilCdmRIeDBJWTxBZVVwe0J0c21CT2M1OSVHNS1yO1dH
NmgpMEh3NiYoeDMzbURwODIzJWM1K1VGOGQ8CnpeVW9RYjI8SmFuO0xwbGJQb3xBNXNfVjw3PENy
dnROIUtmcyppfkgpXlZseiNeZkhzJD1+VjJoZ0JOdFFPU3xlMgp6T2g1bSpnMlF8IU89cj4lblk0
O1l8SC0weVhOM35Hc3ZwNVRIakdKXkd3SGlARHQxK0dnUlhYSVNNe2dxPVJhNF8KektWWj13ZVZC
OSVsU1ZVWDNYfD91RDZ5K08lOXpKcVYkdnJwPmdZK1FWcGtuYShBNiZPc15kS1JgT2cmYCkwbEsw
CnpsT0FLekl1PG9KRzNuMH5PNjtvUEhSaUV6RzNqPERKd201cVJ9SXpCKWhfTC1wQER3PmF8TmZM
RnpMJW9JKlVuQAp6blJGTUV7ejBMe3R+eTwwOV4xbUEmS150fU01UVYlKDV1ZWtvQiY/bmY5M0Be
QmwmOElMdGNQTmtyJHYrPE9RZXsKemM+eVgjVVZ1dUc3WjU0MnlSc0xjOVY+ZVFEbih2Xk58Nl5K
UX1LQmd5ZyhOX3RUcnp8P2thY3p3Yjlkbzd0cXdWCnpmKWBNP1E0ZTBBOF94IzczI2h4PTFIMz50
P2thY3pieXA0RzEtZnhwITMoSW4rNmk5M3dXLWVIUnNtaUJ5Wn58Ygp6JVJQZV47RW0mbiRJNCFT
Tnw2XyFRc2YyNUcmbCUoZnFxWVNUZWN7PkVlO2w0PEhDJDRtI2F0U0hhSWoxR2hCfVEKelJpcWsm
JT1oZWRvU2k/eHd+Q3VCN3dpWEhDSXBeJGN7SSNEP3x5M2ooJjQhbXhZPnZKaldPU0RKTXVudiZp
ZDFCCnopMn5JVzQ/MH5gZEVlOVdfNGJjSGBCI0VSK15ldy1lWXdYd28oemFjRn57bTI2JkNsNl92
SEArLU8mNDhEc0w+QQp6fDdIMGN4N3YkVW4+S3Z2PGtrTzxIIyl3IV93MmdeKGN6eDEpP3hpa3px
b0ZucVRkO308bGVDNnVeLSRxeDd1NDkKenJrM0JjS2tTe24pXyZpMj07MiM2YHtPXnEtKX5GbiM/
WnNySFJuKDQkZ3x2ZnZaYn1ieyR6T0M8PHlwKCZDekVQCno7fGV4cEE2PmtFUU02eSkqYGlOQVp+
YkBieFVeUXp6Ml49MFFLTSR+MjR+a3EqbmhRbFJgWm0rYEw/c208RUktdQp6YjhFNT1VK0k3MT9E
TE1vIV9VSUBTYCZtIUZMJGY3b2chY04+dUNSU1hkaSR8KExSOUE3KWJuQW0taGp2Nnp2MDAKekRj
VDMxUW5VfUNxY3wjZ0FBb3UrKzZTT2d2PTJhfj0oP1h3I1YkKHcwTU53X2JXeSZwQyFnUThjfFZu
K2N8Vm4rCnpjfFZuK2N8Vm4rY3xWUUheTHw8djwjfDgjU1R5Z2FRZ21IVXJEKXp5cmVZVlJjfFVa
cTE2YERfK3NXcypaSndfKQp6bEQ2MSMxJG13P2M3cGk0KmFPWTtzVDlyZ3NUOXJnc1Q5cmdNTWB3
e0A7c2s8RVNsJDJEWXxaX1FGKSRFcmVZVlIKemN8TFRwMTZgRF8lZ05gclpDKzJNWGtKZ0hYa0pn
SFhrSmdGXjFQbCgoWSMpeSM0Z0o3ZGdgJWdVUWVheXh8fllVCnp5cS0rT0U9dSF5PXdiKURDfGBH
eiZ1YG0ybz1WWD9vPVZYP289Vlg/bz1WWD9vPVZYP1VabGg+JUpYPll2MWxHbwp6cXc7ayhtNztr
KG5UbE8+UEprfFU9LVMwdWtvRnpPPVFtZXkmUyVvVUZ6RjJ6P1AqfEFBMTBscVArfUsqRUBLez4K
eiQpdHl2XmN5Tnwtd2twN2QhNUNAbU0/WndkZH48dlBqPXZXUWhyWWV0KClAaDJiSDRUND1QMndB
NUBCVktkMlAjCnplbyFmTEpSJjdfUXtNZmM5VjxIP0RuKldtTnxFQ3NRP1pORT9ndzxTMTZeISRK
bWwqVWRBRWFuX0MtSVdJM0R0YAp6Wkh8WFI2fnt4TmlzUFpzWEwzQjBWLT8za3BeRD83UHtyfChz
TXRrdEpSUzZuWkh8WEBlJWw9bmcoe0FSTEtWa0QKenBeRD83UHtyfCg+OWFXPSVDVTskcC17IX5Q
XmpXfk5MMWAxSUd6cjZ2Q1orMiZUcVRwQXlhVFg/ZWo7bWl7Ti1WCnoqaE8kVz9TMEE+PGxQSX1Z
WjMhRW8tVW1VZzV5emw1Z2Q8fV5KI0VBPk1yKXw5TE04aDE7XjZ+eUEkQWUpWk9JNAp6QHBPWWQ5
YGUtK0kzOUlWPEBmSzlVdE5PWj5HKTA9STM5Snw8b0Q7MCthXzhEYTZEYWxFZCEyNi05YEVSSD8l
SW8KejkjN1pxK0pmVXpjTSUrcW1lPHdiYytfMTQkRD9IeiFTU2ZPKmghOGpBUFhFMUkzRFZ+VTFf
ZllWVU1UI3pnRyghCnprTXp6cDlxalJGPW9gV0RzSn59fTxJKGM8QlJDIyk3czJzcCorcDxYPk1u
eGcoWHh4K2MrXzE0JEQ/SHohU1NmTwp6KmghOU9re0tLaUkzOTMzfEErVkUwbWxRNU45JWgtZiNY
cXMmaiFiJTw/QmFxSm5BbGo8SSVFPDtDUiRzMWpuT2cKejdzMnRVeTlrYSklUHhaQlFGcFBFOU03
flFhNkk2NiEwfnxOa3cyTG0/I0pgPXYoQDNmVEpUPTJBQWZkeitkWUBiCnoyMn5JRDxCQEo8LSEx
UCY0fnxGdWBWa3pEbWUoQGljK18xNCREP0h6IVNTZk8yIyFhfkVgc0F4Y2Q/VGsmckk/Mgp6eFok
NDU5c1ZwTXhGMyhZbj5eZilONWw4V3omKTRNVTQteylZNTZASF9JVDc/Z2dxV0R5OWthKS05Pk9i
VDZQZn0KemtHaE5DYyhtKnlJMzlIdSFTUUk+TVF9WG9FX1JhUmlIYCl3MUE5RU0jeyt2anUqVmJR
KlRefXdLZ1lyejVBNTs0Cno5P3lWPzZteldaUURKZjRjd2hjTiY8KHhjclNpcy1gQ3BkTGFqVSZw
d1Ewa3JQRzBAKmN3ZFdIQTlUOTdfdzJnXgp6eVlHRjwhMTEme3d+M3p5NTEqWmA7VCM0V2tHaE5D
YyhsQigyRklpQkF+K3JgeTlrYSktTmpDRkpXRWFCYyk7PDEKejt7bkc1anQzbDFPVX54I0dsXzhw
OD91aXMtb0wwNW8pPSt7TkJ1bjtfSVJ7PntSb2FuLTk+T2JUNlBmfWtHaE5DCnpjKG0qeUkzOUh1
IVNRST5NUX1Yb0Y4PGUhWEpBeT5HTTx4dT1vZ2VfNzc1JkVUT0pGMWdONUh6dyFPJjBYSk9JNwp6
M3lYUmk3OUNBa0cqbn5KSVlFaThKRWdET3ZtVDRSJXZnTmhoKCNBRzdHMz9aPXZKWWBLP1R4Uj9o
fWN7ek9gNjwKekFxazg5SVZgQElnfmZxaFNvRStkRn5CQjBrZiNaWVVlI0ZpUFFjPmVkTXBrI1Z7
dz1maSN9RSpoTjUjZCsjaWMwCnpEek54Y0JvO14zViRuWWRpPSNPIzI0cEVRSXp7PiRqcSQ/YlNR
ezN7bzNKPmM4akJNWHVvemc2I1l0dSpFe1QmSwp6JFlqSn51b2E3d3tqdkI7MXJ+bzlpTnpfa1Nl
JXhtI0VtQkRmbk1YVjc/eT5fPjBWZmp1d242YTZCY0p3Vnt2QUoKejYxTllMOSV4b1E3TmdCcm9O
ZEhudFFDdUt7I2N3LWZ5TVlwQ0dLXlM5dz95fWkqRmBqYVJHPEwjNEljPl4xfFhgCno4eTEoRWx4
VnZ4Sjx6Z2hFR3wjTDspOzRLQ1lpQ2clODEzKSl+Q0BtSlpGdmtlOFlWaFVYfmVrRnhfKTwkPWF2
XwpxQGQqY3V0fjs/ZnJ+ciFySFl8cVh6ZDFTdXFmNnFqeFkyfmc/TClBKio5bldaK3k0UXFIUTxe
NgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL29nbGVzLXRl
c3RzLmNzcyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3Jlc291cmNlcy9vZ2xlcy10ZXN0cy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDIyNjljOGI2
MDQxOTkzMjBkYjRhMGUxNjU5ZjcxOTJmNDVjNzE1OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291
cmNlcy9vZ2xlcy10ZXN0cy5jc3MKQEAgLTAsMCArMSwzMCBAQAorY2FudmFzIHsKKyAgYmFja2dy
b3VuZC1jb2xvcjogd2hpdGU7CisgIGJhY2tncm91bmQtc2l6ZTogOHB4IDhweDsKK30KKworLnNo
YWRlci1zb3VyY2UgeworICBib3JkZXI6IDFweCBkYXNoZWQgYmxhY2s7CisgIHBhZGRpbmc6IDFl
bTsKK30KKworLnNoYWRlci1zb3VyY2UgbGk6bnRoLWNoaWxkKG9kZCkgeyBiYWNrZ3JvdW5kOiAj
ZjhmOGY4OyB9Cisuc2hhZGVyLXNvdXJjZSBsaTpudGgtY2hpbGQoZXZlbikgeyBiYWNrZ3JvdW5k
OiAjZjBmMGYwOyB9CisKKy50ZXN0aW1hZ2VzIHsKK30KKworLnRlc3RpbWFnZXMgYnIgeworICBj
bGVhcjogYm90aDsKK30KKworLnRlc3RpbWFnZXMgPiBkaXYgeworICBmbG9hdDogbGVmdDsKKyAg
bWFyZ2luOiAxZW07Cit9CisKK0lNRyB7CisgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICB3
aWR0aDogMjUwcHg7CisgIGhlaWdodDogMjUwcHg7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMv
cG5nbGliLmpzIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvcmVzb3VyY2VzL3BuZ2xpYi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMmE5Yjk5ZTA4NWNh
OTgwMzJiNTY1YmViNzhkNWU2Y2E4ZjZlYzEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2Vz
L3BuZ2xpYi5qcwpAQCAtMCwwICsxLDIwNyBAQAorLyoqCisqIEEgaGFuZHkgY2xhc3MgdG8gY2Fs
Y3VsYXRlIGNvbG9yIHZhbHVlcy4KKyoKKyogQHZlcnNpb24gMS4wCisqIEBhdXRob3IgUm9iZXJ0
IEVpc2VsZSA8cm9iZXJ0QHhhcmcub3JnPgorKiBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAx
MCwgUm9iZXJ0IEVpc2VsZQorKiBAbGluayBodHRwOi8vd3d3Lnhhcmcub3JnLzIwMTAvMDMvZ2Vu
ZXJhdGUtY2xpZW50LXNpZGUtcG5nLWZpbGVzLXVzaW5nLWphdmFzY3JpcHQvCisqIEBsaWNlbnNl
IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vuc2UucGhwIEJTRCBM
aWNlbnNlCisqCisqLworCisoZnVuY3Rpb24oKSB7CisKKyAgICAvLyBoZWxwZXIgZnVuY3Rpb25z
IGZvciB0aGF0IGN0eAorICAgIGZ1bmN0aW9uIHdyaXRlKGJ1ZmZlciwgb2ZmcykgeworICAgICAg
ICBmb3IgKHZhciBpID0gMjsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeworICAgICAgICAg
ICAgZm9yICh2YXIgaiA9IDA7IGogPCBhcmd1bWVudHNbaV0ubGVuZ3RoOyBqKyspIHsKKyAgICAg
ICAgICAgICAgICBidWZmZXJbb2ZmcysrXSA9IGFyZ3VtZW50c1tpXS5jaGFyQXQoaik7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBieXRlMih3KSB7Cisg
ICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKCh3ID4+IDgpICYgMjU1LCB3ICYgMjU1
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBieXRlNCh3KSB7CisgICAgICAgIHJldHVybiBTdHJp
bmcuZnJvbUNoYXJDb2RlKCh3ID4+IDI0KSAmIDI1NSwgKHcgPj4gMTYpICYgMjU1LCAodyA+PiA4
KSAmIDI1NSwgdyAmIDI1NSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYnl0ZTJsc2Iodykgewor
ICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSh3ICYgMjU1LCAodyA+PiA4KSAmIDI1
NSk7CisgICAgfQorCisgICAgd2luZG93LlBOR2xpYiA9IGZ1bmN0aW9uKHdpZHRoLGhlaWdodCxk
ZXB0aCkgeworCisgICAgICAgIHRoaXMud2lkdGggICA9IHdpZHRoOworICAgICAgICB0aGlzLmhl
aWdodCAgPSBoZWlnaHQ7CisgICAgICAgIHRoaXMuZGVwdGggICA9IGRlcHRoOworCisgICAgICAg
IC8vIHBpeGVsIGRhdGEgYW5kIHJvdyBmaWx0ZXIgaWRlbnRpZmllciBzaXplCisgICAgICAgIHRo
aXMucGl4X3NpemUgPSBoZWlnaHQgKiAod2lkdGggKyAxKTsKKworICAgICAgICAvLyBkZWZsYXRl
IGhlYWRlciwgcGl4X3NpemUsIGJsb2NrIGhlYWRlcnMsIGFkbGVyMzIgY2hlY2tzdW0KKyAgICAg
ICAgdGhpcy5kYXRhX3NpemUgPSAyICsgdGhpcy5waXhfc2l6ZSArIDUgKiBNYXRoLmZsb29yKCgw
eGZmZmUgKyB0aGlzLnBpeF9zaXplKSAvIDB4ZmZmZikgKyA0OworCisgICAgICAgIC8vIG9mZnNl
dHMgYW5kIHNpemVzIG9mIFBuZyBjaHVua3MKKyAgICAgICAgdGhpcy5paGRyX29mZnMgPSAwOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElIRFIgb2Zmc2V0IGFuZCBzaXpl
CisgICAgICAgIHRoaXMuaWhkcl9zaXplID0gNCArIDQgKyAxMyArIDQ7CisgICAgICAgIHRoaXMu
cGx0ZV9vZmZzID0gdGhpcy5paGRyX29mZnMgKyB0aGlzLmloZHJfc2l6ZTsgICAgLy8gUExURSBv
ZmZzZXQgYW5kIHNpemUKKyAgICAgICAgdGhpcy5wbHRlX3NpemUgPSA0ICsgNCArIDMgKiBkZXB0
aCArIDQ7CisgICAgICAgIHRoaXMudHJuc19vZmZzID0gdGhpcy5wbHRlX29mZnMgKyB0aGlzLnBs
dGVfc2l6ZTsgICAgLy8gdFJOUyBvZmZzZXQgYW5kIHNpemUKKyAgICAgICAgdGhpcy50cm5zX3Np
emUgPSA0ICsgNCArIGRlcHRoICsgNDsKKyAgICAgICAgdGhpcy5pZGF0X29mZnMgPSB0aGlzLnRy
bnNfb2ZmcyArIHRoaXMudHJuc19zaXplOyAgICAvLyBJREFUIG9mZnNldCBhbmQgc2l6ZQorICAg
ICAgICB0aGlzLmlkYXRfc2l6ZSA9IDQgKyA0ICsgdGhpcy5kYXRhX3NpemUgKyA0OworICAgICAg
ICB0aGlzLmllbmRfb2ZmcyA9IHRoaXMuaWRhdF9vZmZzICsgdGhpcy5pZGF0X3NpemU7ICAgIC8v
IElFTkQgb2Zmc2V0IGFuZCBzaXplCisgICAgICAgIHRoaXMuaWVuZF9zaXplID0gNCArIDQgKyA0
OworICAgICAgICB0aGlzLmJ1ZmZlcl9zaXplICA9IHRoaXMuaWVuZF9vZmZzICsgdGhpcy5pZW5k
X3NpemU7ICAgIC8vIHRvdGFsIFBORyBzaXplCisKKyAgICAgICAgdGhpcy5idWZmZXIgID0gbmV3
IEFycmF5KCk7CisgICAgICAgIHRoaXMucGFsZXR0ZSA9IG5ldyBPYmplY3QoKTsKKyAgICAgICAg
dGhpcy5waW5kZXggID0gMDsKKworICAgICAgICB2YXIgX2NyYzMyID0gbmV3IEFycmF5KCk7CisK
KyAgICAgICAgLy8gaW5pdGlhbGl6ZSBidWZmZXIgd2l0aCB6ZXJvIGJ5dGVzCisgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgdGhpcy5idWZmZXJfc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICB0
aGlzLmJ1ZmZlcltpXSA9ICJceDAwIjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGluaXRpYWxp
emUgbm9uLXplcm8gZWxlbWVudHMKKyAgICAgICAgd3JpdGUodGhpcy5idWZmZXIsIHRoaXMuaWhk
cl9vZmZzLCBieXRlNCh0aGlzLmloZHJfc2l6ZSAtIDEyKSwgJ0lIRFInLCBieXRlNCh3aWR0aCks
IGJ5dGU0KGhlaWdodCksICJceDA4XHgwMyIpOworICAgICAgICB3cml0ZSh0aGlzLmJ1ZmZlciwg
dGhpcy5wbHRlX29mZnMsIGJ5dGU0KHRoaXMucGx0ZV9zaXplIC0gMTIpLCAnUExURScpOworICAg
ICAgICB3cml0ZSh0aGlzLmJ1ZmZlciwgdGhpcy50cm5zX29mZnMsIGJ5dGU0KHRoaXMudHJuc19z
aXplIC0gMTIpLCAndFJOUycpOworICAgICAgICB3cml0ZSh0aGlzLmJ1ZmZlciwgdGhpcy5pZGF0
X29mZnMsIGJ5dGU0KHRoaXMuaWRhdF9zaXplIC0gMTIpLCAnSURBVCcpOworICAgICAgICB3cml0
ZSh0aGlzLmJ1ZmZlciwgdGhpcy5pZW5kX29mZnMsIGJ5dGU0KHRoaXMuaWVuZF9zaXplIC0gMTIp
LCAnSUVORCcpOworCisgICAgICAgIC8vIGluaXRpYWxpemUgZGVmbGF0ZSBoZWFkZXIKKyAgICAg
ICAgdmFyIGhlYWRlciA9ICgoOCArICg3IDw8IDQpKSA8PCA4KSB8ICgzIDw8IDYpOworICAgICAg
ICBoZWFkZXIrPSAzMSAtIChoZWFkZXIgJSAzMSk7CisKKyAgICAgICAgd3JpdGUodGhpcy5idWZm
ZXIsIHRoaXMuaWRhdF9vZmZzICsgOCwgYnl0ZTIoaGVhZGVyKSk7CisKKyAgICAgICAgLy8gaW5p
dGlhbGl6ZSBkZWZsYXRlIGJsb2NrIGhlYWRlcnMKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IChp
IDw8IDE2KSAtIDEgPCB0aGlzLnBpeF9zaXplOyBpKyspIHsKKyAgICAgICAgICAgIHZhciBzaXpl
LCBiaXRzOworICAgICAgICAgICAgaWYgKGkgKyAweGZmZmYgPCB0aGlzLnBpeF9zaXplKSB7Cisg
ICAgICAgICAgICAgICAgc2l6ZSA9IDB4ZmZmZjsKKyAgICAgICAgICAgICAgICBiaXRzID0gIlx4
MDAiOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzaXplID0gdGhpcy5w
aXhfc2l6ZSAtIChpIDw8IDE2KSAtIGk7CisgICAgICAgICAgICAgICAgYml0cyA9ICJceDAxIjsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdyaXRlKHRoaXMuYnVmZmVyLCB0aGlzLmlkYXRf
b2ZmcyArIDggKyAyICsgKGkgPDwgMTYpICsgKGkgPDwgMiksIGJpdHMsIGJ5dGUybHNiKHNpemUp
LCBieXRlMmxzYih+c2l6ZSkpOworICAgICAgICB9CisKKyAgICAgICAgLyogQ3JlYXRlIGNyYzMy
IGxvb2t1cCB0YWJsZSAqLworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDI1NjsgaSsrKSB7
CisgICAgICAgICAgICB2YXIgYyA9IGk7CisgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8
IDg7IGorKykgeworICAgICAgICAgICAgICAgIGlmIChjICYgMSkgeworICAgICAgICAgICAgICAg
ICAgICBjID0gLTMwNjY3NDkxMiBeICgoYyA+PiAxKSAmIDB4N2ZmZmZmZmYpOworICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGMgPSAoYyA+PiAxKSAmIDB4N2Zm
ZmZmZmY7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgX2Ny
YzMyW2ldID0gYzsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGNvbXB1dGUgdGhlIGluZGV4IGlu
dG8gYSBwbmcgZm9yIGEgZ2l2ZW4gcGl4ZWwKKyAgICAgICAgdGhpcy5pbmRleCA9IGZ1bmN0aW9u
KHgseSkgeworICAgICAgICAgICAgdmFyIGkgPSB5ICogKHRoaXMud2lkdGggKyAxKSArIHggKyAx
OworICAgICAgICAgICAgdmFyIGogPSB0aGlzLmlkYXRfb2ZmcyArIDggKyAyICsgNSAqIE1hdGgu
Zmxvb3IoKGkgLyAweGZmZmYpICsgMSkgKyBpOworICAgICAgICAgICAgcmV0dXJuIGo7CisgICAg
ICAgIH0KKworICAgICAgICAvLyBjb252ZXJ0IGEgY29sb3IgYW5kIGJ1aWxkIHVwIHRoZSBwYWxl
dHRlCisgICAgICAgIHRoaXMuY29sb3IgPSBmdW5jdGlvbihyZWQsIGdyZWVuLCBibHVlLCBhbHBo
YSkgeworCisgICAgICAgICAgICBhbHBoYSA9IGFscGhhID49IDAgPyBhbHBoYSA6IDI1NTsKKyAg
ICAgICAgICAgIHZhciBjb2xvciA9ICgoKCgoYWxwaGEgPDwgOCkgfCByZWQpIDw8IDgpIHwgZ3Jl
ZW4pIDw8IDgpIHwgYmx1ZTsKKworICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBhbGV0dGVb
Y29sb3JdID09ICJ1bmRlZmluZWQiKSB7CisgICAgICAgICAgICAgICAgaWYgKHRoaXMucGluZGV4
ID09IHRoaXMuZGVwdGgpIHJldHVybiAiXHgwMCI7CisKKyAgICAgICAgICAgICAgICB2YXIgbmR4
ID0gdGhpcy5wbHRlX29mZnMgKyA4ICsgMyAqIHRoaXMucGluZGV4OworCisgICAgICAgICAgICAg
ICAgdGhpcy5idWZmZXJbbmR4ICsgMF0gPSBTdHJpbmcuZnJvbUNoYXJDb2RlKHJlZCk7CisgICAg
ICAgICAgICAgICAgdGhpcy5idWZmZXJbbmR4ICsgMV0gPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGdy
ZWVuKTsKKyAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltuZHggKyAyXSA9IFN0cmluZy5mcm9t
Q2hhckNvZGUoYmx1ZSk7CisgICAgICAgICAgICAgICAgdGhpcy5idWZmZXJbdGhpcy50cm5zX29m
ZnMrOCt0aGlzLnBpbmRleF0gPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGFscGhhKTsKKworICAgICAg
ICAgICAgICAgIHRoaXMucGFsZXR0ZVtjb2xvcl0gPSBTdHJpbmcuZnJvbUNoYXJDb2RlKHRoaXMu
cGluZGV4KyspOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFsZXR0
ZVtjb2xvcl07CisgICAgICAgIH0KKworICAgICAgICAvLyBvdXRwdXQgYSBQTkcgc3RyaW5nLCBC
YXNlNjQgZW5jb2RlZAorICAgICAgICB0aGlzLmdldEJhc2U2NCA9IGZ1bmN0aW9uKCkgeworCisg
ICAgICAgICAgICB2YXIgcyA9IHRoaXMuZ2V0RHVtcCgpOworCisgICAgICAgICAgICB2YXIgY2gg
PSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAx
MjM0NTY3ODkrLz0iOworICAgICAgICAgICAgdmFyIGMxLCBjMiwgYzMsIGUxLCBlMiwgZTMsIGU0
OworICAgICAgICAgICAgdmFyIGwgPSBzLmxlbmd0aDsKKyAgICAgICAgICAgIHZhciBpID0gMDsK
KyAgICAgICAgICAgIHZhciByID0gIiI7CisKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAg
ICAgICBjMSA9IHMuY2hhckNvZGVBdChpKTsKKyAgICAgICAgICAgICAgICBlMSA9IGMxID4+IDI7
CisgICAgICAgICAgICAgICAgYzIgPSBzLmNoYXJDb2RlQXQoaSsxKTsKKyAgICAgICAgICAgICAg
ICBlMiA9ICgoYzEgJiAzKSA8PCA0KSB8IChjMiA+PiA0KTsKKyAgICAgICAgICAgICAgICBjMyA9
IHMuY2hhckNvZGVBdChpKzIpOworICAgICAgICAgICAgICAgIGlmIChsIDwgaSsyKSB7IGUzID0g
NjQ7IH0gZWxzZSB7IGUzID0gKChjMiAmIDB4ZikgPDwgMikgfCAoYzMgPj4gNik7IH0KKyAgICAg
ICAgICAgICAgICBpZiAobCA8IGkrMykgeyBlNCA9IDY0OyB9IGVsc2UgeyBlNCA9IGMzICYgMHgz
ZjsgfQorICAgICAgICAgICAgICAgIHIrPSBjaC5jaGFyQXQoZTEpICsgY2guY2hhckF0KGUyKSAr
IGNoLmNoYXJBdChlMykgKyBjaC5jaGFyQXQoZTQpOworICAgICAgICAgICAgfSB3aGlsZSAoKGkr
PSAzKSA8IGwpOworICAgICAgICAgICAgcmV0dXJuIHI7CisgICAgICAgIH0KKworICAgICAgICAv
LyBvdXRwdXQgYSBQTkcgc3RyaW5nCisgICAgICAgIHRoaXMuZ2V0RHVtcCA9IGZ1bmN0aW9uKCkg
eworCisgICAgICAgICAgICAvLyBjb21wdXRlIGFkbGVyMzIgb2Ygb3V0cHV0IHBpeGVscyArIHJv
dyBmaWx0ZXIgYnl0ZXMKKyAgICAgICAgICAgIHZhciBCQVNFID0gNjU1MjE7IC8qIGxhcmdlc3Qg
cHJpbWUgc21hbGxlciB0aGFuIDY1NTM2ICovCisgICAgICAgICAgICB2YXIgTk1BWCA9IDU1NTI7
ICAvKiBOTUFYIGlzIHRoZSBsYXJnZXN0IG4gc3VjaCB0aGF0IDI1NW4obisxKS8yICsgKG4rMSko
QkFTRS0xKSA8PSAyXjMyLTEgKi8KKyAgICAgICAgICAgIHZhciBzMSA9IDE7CisgICAgICAgICAg
ICB2YXIgczIgPSAwOworICAgICAgICAgICAgdmFyIG4gPSBOTUFYOworCisgICAgICAgICAgICBm
b3IgKHZhciB5ID0gMDsgeSA8IHRoaXMuaGVpZ2h0OyB5KyspIHsKKyAgICAgICAgICAgICAgICBm
b3IgKHZhciB4ID0gLTE7IHggPCB0aGlzLndpZHRoOyB4KyspIHsKKyAgICAgICAgICAgICAgICAg
ICAgczErPSB0aGlzLmJ1ZmZlclt0aGlzLmluZGV4KHgsIHkpXS5jaGFyQ29kZUF0KDApOworICAg
ICAgICAgICAgICAgICAgICBzMis9IHMxOworICAgICAgICAgICAgICAgICAgICBpZiAoKG4tPSAx
KSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzMSU9IEJBU0U7CisgICAgICAgICAg
ICAgICAgICAgICAgICBzMiU9IEJBU0U7CisgICAgICAgICAgICAgICAgICAgICAgICBuID0gTk1B
WDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIHMxJT0gQkFTRTsKKyAgICAgICAgICAgIHMyJT0gQkFTRTsKKyAgICAg
ICAgICAgIHdyaXRlKHRoaXMuYnVmZmVyLCB0aGlzLmlkYXRfb2ZmcyArIHRoaXMuaWRhdF9zaXpl
IC0gOCwgYnl0ZTQoKHMyIDw8IDE2KSB8IHMxKSk7CisKKyAgICAgICAgICAgIC8vIGNvbXB1dGUg
Y3JjMzIgb2YgdGhlIFBORyBjaHVua3MKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNyYzMyKHBuZywg
b2Zmcywgc2l6ZSkgeworICAgICAgICAgICAgICAgIHZhciBjcmMgPSAtMTsKKyAgICAgICAgICAg
ICAgICBmb3IgKHZhciBpID0gNDsgaSA8IHNpemUtNDsgaSArPSAxKSB7CisgICAgICAgICAgICAg
ICAgICAgIGNyYyA9IF9jcmMzMlsoY3JjIF4gcG5nW29mZnMraV0uY2hhckNvZGVBdCgwKSkgJiAw
eGZmXSBeICgoY3JjID4+IDgpICYgMHgwMGZmZmZmZik7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIHdyaXRlKHBuZywgb2ZmcytzaXplLTQsIGJ5dGU0KGNyYyBeIC0xKSk7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNyYzMyKHRoaXMuYnVmZmVyLCB0aGlzLmloZHJf
b2ZmcywgdGhpcy5paGRyX3NpemUpOworICAgICAgICAgICAgY3JjMzIodGhpcy5idWZmZXIsIHRo
aXMucGx0ZV9vZmZzLCB0aGlzLnBsdGVfc2l6ZSk7CisgICAgICAgICAgICBjcmMzMih0aGlzLmJ1
ZmZlciwgdGhpcy50cm5zX29mZnMsIHRoaXMudHJuc19zaXplKTsKKyAgICAgICAgICAgIGNyYzMy
KHRoaXMuYnVmZmVyLCB0aGlzLmlkYXRfb2ZmcywgdGhpcy5pZGF0X3NpemUpOworICAgICAgICAg
ICAgY3JjMzIodGhpcy5idWZmZXIsIHRoaXMuaWVuZF9vZmZzLCB0aGlzLmllbmRfc2l6ZSk7CisK
KyAgICAgICAgICAgIC8vIGNvbnZlcnQgUE5HIHRvIHN0cmluZworICAgICAgICAgICAgcmV0dXJu
ICJcMjExUE5HXHJcblwwMzJcbiIrdGhpcy5idWZmZXIuam9pbignJyk7CisgICAgICAgIH0KKyAg
ICB9CisKK30pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvcmVkLWdyZWVuLm1wNCBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291
cmNlcy9yZWQtZ3JlZW4ubXA0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiZDZkNTk2NTg5MDZkMjM1NjZmMWFhMTQ0
NDNjM2RjMWVhYjQ2MTAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDkyMjI1CnpjbWVJNTN2PzlL
OE9RSkpHeUJMVUs7RDJSQWM3VzR3MiV9TDVga0p1M0FMcz90VilTJkI5dyVYWXpQa3BFPVUhUQp6
UjFzPlMwcEhYSXdsb297Y3U/eVJENlBlNEtAMjR8SzlXWWs5Kn4xUGk9PW13KDlMfUZXcWFxYFBF
WEoyd30od08KenxMbnx2enUoUmBjamlBZzN1NyM7cS14Plp2YmpVQSkyP1FQYHVBQ3BALW9JKVR1
RWhkRzFHM3B4LTQ4JkM0UDRKCno2MjtlZTVBIXYmRnFWOWRGJjdzPyRmTm5obGRxVmBuM0hMYFFh
NH5GUGFKVyt1enY2RElqYWpzRXh0ZUhqc1h1Twp6e0M0I3tpP2wtblVFZXNKKGZybzJtc2FnOWRI
PEYjN3U+JlVSbXRGY1BuPjthPVplN1U9OTFIb3g2UGgteE93eGkKenlsPyReKHVgWSF3WT9ffXgl
PFI3WiFMWGN7ZyZzQ28qZD5xXjUtM0lUdDBRZSloQ0NaYDEtcmA7fEtIQkBBWnV6CnpKPzZjSXA0
TWxhUXx8aUIpUT5MQyU1aCMqZFU/cVFJZzFZNnxMcmRgV3xzfW1KM3NDNHIqRkI+Qjw/ITI/NWts
Xwp6eHdyVEdTI0M9RHJubUF9alF3NUNtVyplMmghXmVmV25VXkx6aVRtPlN2OU8+I0txT3k4eiRe
blNlX0JzdXN6YikKemxzS3FtPWlsQj1Vd0VTVj9KdGJXQH4rRVhvPmltOCVAQG49dDhnfnZ3NE9V
JCZ4WXNzOCFfQD07a3QlWDdYfmpkCnpGOFQmc2JmeFR+bmdQRlhieDZCdmhHTythPHl+UXxQSSpe
WXQ1ZSQ1MGMmK2h5RTxVNHUyYDtGaUVqMnBAM3VGQAp6bj8kIXgwPVhPMVAlSSotV2BNYUh4TExI
SyVwPEMxVCZrUHVUIUtuYSU+LTt2c1EreiUlQmNUc3BzRVVXRzNgeyUKej99fkUmUn0pbz9zIyZ3
NVIxI0QoRjRne3o1TDY1Kkg7WXlqSXtycyEoV1ooKFFJJUFvRX17TjZ6WGkoVUtjeTtXCnpzTElG
eF5KIUJ4USZzSyVNUGlsRnB4cHJqV1Zke2ozajxfI3RTSHl1PlZ5SFpON35nMTE3d2Y5RTNETms/
K1I9Ngp6TzFydlh0I1EoPkU/OEB2eWVxOExDK2BZdF5+R3xmN1I2ZVduPyktTWpWMV4hKWcyIz1D
TkBBX0s+Y3J+cyhkc18KelhfNlZMXjNmIW5xN3podmZETXZ6fDVIWVh5ZXEyWEtrWmEpZk88RUx8
N05QbntaQiljOExJTzVQYlhEMkt3VWB2CnpaPkNFOVopVCNkc0UrP01uKyRtbVJIMEkrZjxvbnBZ
Qyk8SCZ5OG1FWmtRblpyTCRaJk9weUp0dlJ0RHBPcHBXZQp6dH1zQ2tOVnxHcXR3Q3Y1NTNEc1A/
K1I7O212QEQ9IyFJXztWWFl4KVMxK3RKNnc4JnlYbWp0Vz8pZEhAc1EtRFcKemJsemlURCRhWDJx
RlJ0Pmo3RElvX0NFejVIYjdsVUo1QDdQPF5IRmskXyFPR09gXkhVSGJBQkVBQkQ7aClxK0c8Cnps
TXE7ezwzQ05Ld0UtJGNeZTl4MHMxX3ZaZSp+Nmx8STxtODROJlB3NkB8KFgpcSpyJUpVNXlxZHR1
Z0BBZkd6SQp6dFRRMjI+UyVDe2dJUTt5dn0rdjlJdXFxeFZYWnluVTE2O35xK05abSl9R1I/SzNI
b3tjfkA5I0ZMX3MzWXArPFkKemJkR05CSj1Ne0t1MSVWbUR4YWJnUjFfKmxSMHxSdnFhKDBYYD04
UWU4PXo3fGhlRzl1WUMpb0R2PE5LS3stPGVsCnpIYkFBYk5mYXRhUjB8U357fEdHVmUqfXVFcXph
WUJmOC1yZHpNNVBgPWxeRGBzKyVmSmRAd1VyS0w0a2FEaWtWNQp6UjB8VE5EaE1wcXskREtDOEk5
PXVGaEVYe2ombDdsS3UoR2s8ci1hS2ZTZkd2M0lwVjFZMWFVKEhBVUpyMEJjUT0KemNaSWQ0JURj
aV5RPjkmbHUrfXRiKkM0RGxFdFY/eyhkSGdpWkJlQDVZaTZvR0g8P0JnbHF3PXhrbXdLe2Z1LTky
CnpedHM2PlJGMD8/QnViTUpTZ007VUxBMyFZUDU0QmlhendRdChOUHJ3T1NTKUxzSW1ibl4qOyln
QmRQXzc8fFpTcwp6UlFzUCFzJShIdFRQZ35iQmRQXzdfTm9YaCkmOGcxQnNNXmVoOz5GSWBYQ0lE
KTgoVUY3JEIjfGlnRkZFQGkwS24KemthbXJTMGRqYENFM0NEKnllcTc9eDNwXnIqNGp0ZkgzVnp6
Qmt1fXA/Sk1zSll3YTckbF9HamBrMUVlaXB5MHl7CnpScnhZSDlabEsqbTl8dEFEbzBjYzUoT1Uh
RVkraClubnBgZDVkdDx5JUh3fHA5YVdqJTdTO1p6WD4/fCQkX0dfNgp6O1MrXyo1IUhmM1glWWZV
d2Z8fVN3KmV8YHNWRyNBczFfc3xzdHtQSntaSHJySGI3azwqNkh2aWltJms9PTQpdFMKekVjcU5g
RS1yK1NOQW8zZzRMYE5pMFZ7YzJzT0B9VntvZGw7eHRYYHNwOGYycEdiTVctJH5tM1d6dmFOSD81
eExZCno4IW5xdDwqTSNvQGJib19eKiM1elMkMVUybER5UjF4eXZkeGx7UmZIU2h7P0YkYThlXiFe
PUtSK3hsODRBPithRgp6dHNCR0J3ZyFlWVlGbTx6b2djQzh6VihDQmNmTjRyeVQ8fmQhNUloWipL
SyFpLWQ8T31aU31zWjc5Nl9udkJSYU8KellDbWZKIS11VX5ydGhwd3MlPmpLXis7Uld4VipOUEs1
U2ROXnNDYyVBNnQ3ZEAjRFB5bzhOdE8tMFBwKjtAeTQyCno3fCoySVFMfEc9b3QlPW5IfUomeW5l
Kko9VW1hWD8+WVhKPyYqbCU8OTJvejQoXjNDcjg9QXR1YDBDS25SfVF7Ngp6XmlTSSFzbmhPVXZI
dj8rUz82d0MqP1JOMXBTLTx4JiM5P0hFO0toQGB8Mk5TSHEwMTNZZ3FSRjwjfDg5PXx7aSoKelJx
cCFGPiUtUz9OPXNUUVVffSNvVyhhLXpYVnRLbDVmQGsyRXpnPTtQK2hsY0ArJHVlaGQoKmM8YStX
S2hxdFg4Cno4T2k/TWJ4cD5fNFomfGxSKmp8eXpqY0V+UHJjVDhAN2xVPW8+K1k5d2FUOUomej8w
ZFd5cE4+clMjMUEten13ZQp6ZVJyOHkkfDIqVzg0QT53bEpiSWVJaTxXe1R9fk08MmR2OF88Sz0q
THh3YFM5bFJMNVBmdCZJdkdZeSU1c1EjbnMKemtWekE7WkdjTVFFKCg8K3NzKU11TkUoNXErVyN+
RyF2PzV5JThXd2doLXlLaTNEXmlNKSY4ZWJXKmVaPU5RRlk+CnpoLXlLaWkza1dSKSY1XlZyPmJW
RXMhKFlId3diQj1BN0luQEtTfnU1RWw5TGVNUFJBK0thS3c9UkYwPz9COyZNcAp6MlRZNklRVkF8
aGl7MEhNeFotdDExQThZLWkjOy00UE04KlpxYFk4VlVNVmtGbXNpSGkxPyE1RkBwOGVzOy10Sl8K
elR8T3g8U2VMSUdGRks0ZGNhckxFak9NN0JuSk5lRmxudFgkSWlneVM9JVpje1NnUVJgKl5tdVRY
LWg/K2F6d1F0CnpRUjBya1F0Zn5HS1EzKjZOKkNOd3Myb3UoTll3dWJFWTwjfUB0PmR+MVo8RiQ9
WjRYeWlvN2VUe1pCRWI0TiZRVgp6OHchO3BzcylMejRJIXxVYChMYXg4aUtvRlNuUVZ4YU5SSTBf
SURIRDhvZ2p4OUZYI1lWUjFtbCVMRDVRJTZOSFQKelR8cEA/U1hhRTE3cHlCQCM+KSVxM2R3a1JW
T15uYXllTSF0Y2JzYSYoRmB7O1F9dVpSYmNxfEtpaWoyQEleYWZOCnpzckVtbTcke1ZaczFfdTs7
KWNMZC1CYztZdjtpdnBGJE1+aUJkUF83JmJTZCtze0shZ3N5MEJTWXJgbTFqO0l6Uwp6K0VmdShz
e0sjZHVua2FZcShZJWBNNzFFJVVLTjMqK1chP3xvelpPQTN2PGxgc2pMeV5uaEQpeGpSdm5jbX1A
ND0KemMqVmg3R2Z+UDUqNDBERzMpYTtgIz4pcm0+TTcmcGdMVTxrQGA4MnNsSmJJZV8zRmxwdlNE
K19zV3UhOXhNcnM2CnoqKVYtI0FXOVZ4RWwzbiZBaDE7WHA4fElqRG8wY2M2MitKWkVZKGV3Y0Io
YyZySF40b3A+am1FQWtuNlp6KjZtaAp6YG52JWVwaSt2N0xnazJSTDg1RjNmdS05Mnc1aSR2bUNw
WkJzMm91KE5SK3JFdXZHaD5jQihjJkgzc2Z9NyMxaFYKejFoez99N0FKS1I7RUxCRDRmcCpwRUta
ajRmPzt2OGo4XzJHbF9LTDZmT1Z4dmRCTTY7ck16SFdzV00oY1NYWXtpCnpSfWp7Zil7UGVoPyZn
a0R7K2x1eWFtYFNiS21MU0h4TlUkK2ZqYko3QmRQXzc1X2JmYT5haWdPP2x3VEJvaGt+SQp6QmRQ
Xzc1X2JmYVlYOCV3WTZEYVgrKT0wO1E3dVQ2NEkhe3BgPTk8OCVMYj92eFQ4PXhxRlJ2WHRPfGpw
K1cmTT8KeldkbF9EXmItXitNXnA8XndSbW5jMXJOZnNJOSkyaWc9dWttSHdtdTZEO31vQjg4VGsr
RmZHb0lAYDgyc21oeXNpCnpeX0tBcCFNZ2ckYyFna0hlV2JpI1U0NW16VXxvSD9AdUl9dCsofFN4
bjMqVW1zIShaY0s7OG83WWVSSXpqWiNISwp6M2xoeTZLd3pvJUtWP0hHUkYwPz9Cc3pealY1eDRa
MWwwenApYytfe2o7SXpTK0VmdShze0sjZHVua2JAKCteUm8Kejk4b1B1RyZjLV5yUH19Vy09XjlD
bUJ4UCpEbzBjY1FwZipBbkpBV3NfYl57VzN1RFJXNzt8d1VnZ2x4ciE0UHlGCno4bkJXRkx2N35e
Pi1RRyMmZHQyN19VdmEqb2hqTSNQfG9SYHt3KVZxV29KRUoraT07R0RweiZ5ZnxvWll0PyMrIwp6
JjlXbkZtZ0pAOCZSdGZxc2tFdT88aSs8TntxNWR5S1ZJXntRKEohalYqMiEpUDFEWU5HV1cmNU9j
XnElQEw9blkKejZBbkNHIUFJM0BuQUFHNFg4cHsmMkJoUmkyMG5QLWxVZVdJYUJ0KyF7SnZsSUR8
djN0XmUyS1hDI1V9LT1nN0FBCnpjVkQwUCNEUiVkSmV1e3ViNUQoI0Zuc3l3ZzJjdm17eUs4QFJi
UE1lVmZQMHxyPTVMdSVgJGY3XypicXVRb081cgp6X19tcEU8JkRqYm9jc09wVVJPV2RjJjA5TmU4
PFpabXUjK2xZflMrZGtCTXJkMFhafG93OE9KJVNqJml1dEc3MnkKeipzLXVZQmR9cTZxX0hWNmA9
dlhFe2N6YUVqbUpMXns7SHQoaV5wMUB6Q0xzR0dKbnpFVXU1amcoWDdWYEVuJXJ+CnpyR155dWhP
OFAqUGpSPkp0OGd+dnc0T1UkJnhZc3M4fVdFaldhSy0pT210N15tJCZPTHtnZHVWSXNSbipmJkF0
ewp6QU05PF5fSSVMJXdZbj9jY3locGU8OVpEX0A4eDI+ZGQ+XmhKTXYpUnhgdEMxMX1gdXlzdXx1
fXY4ViVpTiE9YEoKekslXzQhP2BpLWM3SW4oSSFkaml1dGAxbk1PV01AfFlqd3FQcjhyJHxXOGtK
Ym9ZSlFXMUVCaGtzISVEVE00QHMtCnp3SUVUUGo9LVcjNkBqOEU1bVoleiRudGJLNFN9TDhzY3h6
P2UtKEtQUkgwSXdoQz0wdFlDKW9xMCllSHZzUztFaAp6cGkpTU9MZ2syUkw4ODRYMCF5fDNZMzcj
PVAtJi0lTGdrMlJMODRSemZ1LTkyMyZsRjRAd0B7RCRacSo0N1k0fWcKelNXJkxRKWQ+UytrRj17
MzJGTTxIUzZIaTgtV0FzQm0zRFEoVEh+WiRVOWk/VGN+QEFnUHU+O1E+V2skezV4dSFiCnpSYT14
czZFam93NHxTKT5TdHdPUnY+O0pMa0hBdnh7fGVmdm55RChNJEBDYyRXfmo7K0s1M30zMFY/Zk9R
SyVlSQp6RWwzbzZBaDEtMkQqN31lOD0lcmlnK2s/c1lDKXBPKiQ2RHZ7LV5RWjJCPnMzMzVDaUwp
cStHNTl9IXJwe2w3QDgKekdueXY1VmI8eEZQOTVEYT4tNUo7OWdWSXE+a1A9ZCFtS2tPP2RwTkcy
QmxwK3UtMmZ3RTM3cU0tV0Fwd0ZZVzR1Cnp3VDdmIXl8QzYkRUxSRlglc3J+d3FCTlNBblgwR0Ji
ZEhXdk1NTWh7byVrVElSUXNRe1IxXypsUjB8U2FPK3NMKQp6Wm1JOzsyQjxXUDI4R0hJKXErSDZH
NkdBcnwwJHhnMFY+VStNV0ojO3dJST5RS3FJaEpgPTVeZ1pHY01TS01JdjIKenNzKU1xQUF6T1h8
Q05qZDl4NXZAKkZSJnN3NSluJlNvaXFEO3ZXdng/QGFzQThzXzxNRXpfOShGTTJjbEFZfH0hCnpl
KU81eEJQVX4/dVRAblIlQCk3Qnk9ciM1cn10bDttKTdRS0clVlkwMGV0P0E/LWotMkQqZnxlYFZe
TiZzeWJKdQp6dX1rWjFVemh2b3ZoYmBUQHc/MmpGc1BtRjxqbmFUT1d4YlE8anxTblFvKlhAN0Fj
PU09aDk+U2QhaElfb0xOdlQKelIrVHhmWGltN2FTYndWZitodyFubCF5bjNrK1AwOz4oM1JwRTVh
Um1wS3hXZHsoSnFWem5iOEAlRkBoXiRMPkkrCno+ZHNRfV9fanpAcjJSZVYoQWpzKDxfXl9ndVlQ
TjxwIzcxOT43UmgzemhlRDF1czlPZD50QGIkQHh8MzZLYmQqTgp6diVoUz15QiQ1JmNyPUlqTU92
aCk5Z3FHQGVOeylyYk0/bjdoMjskV2Z3PWpfVUhfZkZkaX1lMj5zVWhQV0J0ak8KemJnfStfPkUx
NTd1WnltKT4oY1hzVUcoQGFkTUsocFVscCVJenUwbDxDU0lSNU4hJXhRZXk3SkJKY3Q4dl8jZktf
Cnoqbn4qY2pQbE9MNzVmV2syNGZrb0Y/TC1NVzg7M3EqentXJW59M1MyaFh5aEJPYnVoTjJOLSpB
QVktM3pWNEJtPAp6dzJXSnNjSV5lR2pUPGxhTm5nWW1EKWp4QjcpYF93MSNrTV5zX1BCPm9VaX14
V153MkcxSj16QHB8OTZAcSs+X3gKem4lVnRPRil5MXIjQH5reDcxZ3VDI3FBRUFVbll5NiVTfVV0
RTcmPHlCdnAzfDY8dUdnI0JreDwqRXc4bDJFKWJBCnppbUdRXitpQmYob2dMRTZxV1c+LXA/PXFJ
bipZWWhWPX44LWl9QzVNNGg0UXFZaWtxSUQ2IVR0VDB1VCpgPE0rSgp6U2Ricmx2fktKS1NINnls
OWk0dUN3KT9NK1c2S307WGAxN2hIdmgpKXlTRGQ7VGVDKUV1MGNtMSVvSXoqYXAmamwKempEPGVL
STM4V25gKmF6UF5jd1ZnPWVYbiQxR3swMjVYLVA4YWxiKl9OQm49PndYdmVrSmFOell8Rn47elFL
Izc3Cnp2OG0kei0rWWgzSzg9WmVTNlZxXip9V0xNc2ZlKkA7Jl5EQHZ5NDM7X0dfRCRoPVp9P2pP
YGN1d0lsYjRFJXE0Rwp6UXBKOTQkWDJGKD53PFhRYFpuRXVoJGJIRSQ1aT9ASnlQOERLTlh4Z1p7
RG5NITRKbSU7TmpPK3lxeCNfdjVWJDMKelB1KHh7WUB5dkdvX1FzXmhCP0goTXFgRG5vWHJ1LTZv
Xk1SdnIwQ0xSa0k+aSNYOXlsbmZmfSF2cl9jdVB1ZVl4Ck1GVTNtMjs7IUhSMzZUZ1I4VU8kUQoK
bGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3JlZC1ncmVlbi5w
bmcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9yZXNvdXJjZXMvcmVkLWdyZWVuLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDVhYzliYTFiYjg0NDRi
MDQ5NWIzNDY1NGYwZWI0YmQ0M2I1YTQ0CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxNDQKemNt
ZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5qNmxyOSEyfjQ1OXhFMXIxZDQ7KW9meWBnbFgoZmB1JXRX
c0l4O1k5Cno/QzFXSSRPX351QnpwdztHQjh4QkYpJWM9RmZqWkEzTl5mN1U/Pz9VVjBlfGx6K2cz
bGZrQ2ByJmFPWmtwYWg/JQpsaShgbUhjPUNfKTNAcmE4ODk0cWt7eGBke0xJTm5tO09Yazt2ZCRA
PzI+PyVwQjVlUXcKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNl
cy9yZWQtZ3JlZW4udGhlb3JhLm9ndiBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9yZWQtZ3JlZW4udGhlb3JhLm9ndgpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xNTQzOTE1YTEwODBjOGJhYzVkZWQ4YjE2NTU0YmFlYzI5MGQxYzgxCkdJVCBi
aW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMDI5Mgp6Y21lRz9jfDZvPl91c0xPSE90dD0zeyNBeTNAWEhK
T3g3dEghPkNjSiFOaWJ+TEFoO1g0TXtjR3NxQUlLalMjSnQKeml8ams0alM3YGdtJiZ+QCpZRWt4
PXc5OVR7QChaZl51Qi1uS0VMeU1KbSkjKkprTDRMSW5Wd2JufHlzO0FwdkxzCnpzYHV+PHpaNWlG
TS1YLX5TJCsoPDQ8el9pNERqPkMjTldgMXN6UkgtKEprJUVteU9sanhRRWJWaHhqcX0yR2Ehdgp6
NVJmcDBnZGoybXYwLV9yNWQ7YW87TUdKeGtodmI+Rkl2KipKUTxYZF5eJDxsSyFvaUxfRn1TTm1I
XylZMWtENDAKei1YVkNuMkVudD51TVRxOUg9cShLRkJzNGpBZGBWfVVWSGEyQU9wYUh5OVdEWjZi
ZG9gRmFGe3IlbWFPZCo2LWFECnohcV5qSD1vVEt0dXQwfH5lSGVSSl44SnQhVSN0KUFCJi03TjUp
ODF9I3FjJVctfEN9PmBZYHZkPGE7Q357JXo7cwp6OT5ROClJNkJOb041Tzc+ZztOcHk5X1J6PDdH
e3YmaWNQYDM9LW9eJkp7T0gmZmt6dH44SlFjSTg1XlRALVRYcFgKemRsPFdZPXMzNncrVGhSRGRI
cDZFVForfUxVNGNPaVV0QGtOTCElWU90TXlyN2QrQDh4alpITmBIUD1tNCU2aSkhCnpuX0x+TlRe
KzI8U0RUdXpHUkZIRG5mUkV+KkJCY3xAfClmMilTYXZDM3tiOHJifGxITHZNMkN+bDtpPm81fSlX
TAp6Nk9CTzxmRXFyPzI5fit7YV8pUn5tLX5GY2VDekhCejR2flgrO3J0fVNQei1zIV9CaSE+fmEt
NVAoajY9aU57OCYKekFQLXFDTyVsbnNYNVZudkx4fkFfVkV7djJHRkc2VDVORD5LSTVOSUUrfjh5
cmVQdjVqTl9DZ2xQd29qLSMwWD1LCnpaU0lvRUdaezVRNDVQSDslUDFMVTkwJHkpVn56RTlOQnZF
ZUM3UWYpMzgoQ3xXQntZPyZRMWRxR0FlPl9gUiN1Uwp6YiM9ZEJ0Z1hwQ0ohNyZNN1o8fGxDP0gq
MiRZVGd1SmlzbXBTdllyYiFTRTstN2UyKmZAaU01YzlBU09CeWJpUi0KenhZWEJROV88QldlU09e
KzAjN2dSP1g4IV4xOFF1bipFKnVTejg3R1MwfFd7SFU8NiZ4TU1Pckted2lhajtxJnR3CnpnRnlT
cHNBTzA2bUBLYDJSakErPyM+PSg5WllaUVQoai1KIUB0OHMqTkB6VDZlX0VfdE93JEopNXhYJF9l
K24zawp6JWpzTUk3OzhGPWEkVj49R01BdDhTcFBKVyNuNU1uTTR+bXVJI0xWOV5oaH4/aH1KVk9e
ez5ITjc4Q2hsXzNHN2wKemo3ITBDNylSdkMwPF94cjlaZGFlITJkWkMtJmV3YjBQS3I2VUF9PG9g
QlolYGp8cypLbUkyaGVmWDRYTCpjZ3VxCnoyMmZVMylfUHhWMUE+blBGZyF7PyVMUWYlWGk7NEZo
fm1QZEQzc0dNbFMxTC1FdWRUazAlMEF8QVB+VnZRNDJfagp6JEJZc1pMSTQ+K0xJXiQqNSNVaUck
T1ZMaTRzRzhTYShNZkxTTDtAbVR+Xih0YjB8aXdlbysya2FFSS0rcSYwTyUKeiNecjJvKXxZY1c0
cEt9eiU5YCMqaWB9Vnp5PnckKjdycDl8UjNldmg8SjB+bnQhdnwkOEpAPz5nO3QpbmtHKHxSCno/
UWBRdUBVKyl2YF5zPH51e28tUGI7M2szS3hOSTVDZHF3S0JiSE9PbjdYemhANGVhVTY1aWdCbzR4
djNYSzlmfQp6PzxCPmhTPldaK0U/MDhFRWZxdEl7ZkNHalFOTlVUVC1QUXtsTW1YVDRiQlNPZXxm
WDhVTHhgcWNLKjArTiRgPnkKem8zJlh4clpHJTQkKT1RP0hPezFHPGhpe1RvY0NAaSRYUFN6bCM7
dEUpK0VTIU1pZk19Sn4/KGheenBuO15VUGhHCno9I3skNHNrS1E0PyVxcS1aQW8/floyRFRPPF84
TEVAMlBKJnFeVHArKklJZU5hTWF9R2I0N097NUFXNiNTUl9gZQp6YXBSVDlmYkcyQy1RTnoyKWtl
U2l4T0hifihER0VMa1M0XjBeQmJ4STgjX0dwO0hMQlBHPUhoQ0R8RVNtSDReJCMKej56WHZ8anw2
YyEkLT0jN2VTWGcwNXRETWZ3WTZ9PnslajNQPUdlYUotSV59flpGUH1sS319T00rbXdebzlyeVFS
CnpSdTNGYlBpKUx4X3RCP1hIRyEtaE9gfjAjZWVGMUxXRio/QV9WUk5OcEUrbFZean1ZUmhibUFF
Tl9PWlRlIzBKIwp6cEMyd2RWNWZEOChUSTk1dlNNeGpmdD9hbHcyU1BROGZ1NUc8dlF6Y0pyXjdu
X2IkYnomO0dYfUpOWEh2dUNsc2cKenZsc1JTQ1FTQi1gIW9INSMrOUEpTjNnVG82NCFMNyoyYUR+
bFhBQ3RSUXZ2JT1zcDQ4JF8rWWEtN2M4dV5jZDE+CnptYUpWWnpXZjdDRD9zWT9xPCsoYG8jTypQ
YHFhI3lPZXBxZmZJZmFPbDdJRmZVfVF5aGdGel9eRntiWW9mMEpWKwp6TEF5T2gpa156JEA3bTky
b0JhJEY5ejEwR1p3JDFyWHE5KDlQQlZ7Z3t1dHd5U1ptUUd8OU93Slk7PT1VKWQkYkQKejwoPnM8
WDxjJlJpa2U3MGlycEtEXiZmRFNyUVkhXkVBck59Zjt2Pm1famx8eylCaGIrbGtMQCtoeExpPmR0
S1ZICno9SXAxQGtBbz9aYVk2SUAoI1VSbDEjQTdwM1ArcyRDZFJWWSljc0tUYE10WDU3V2VTeipC
I31mNmZMcTtRNXd4Twp6PUJUfUI/U2FiMVRsUGN4Y3dmekRWJCp4Y0cqOGxndjF4NmcmWjt5PTxD
eXhSeDE/aUsjenIwfFpTP3ZiTERrWFAKem5DfF5kV098OExXJDI2JkUzT1N1ZVRCSlZmN3VzPzd1
VWk0PUp7YUpDSFdkRnpBJGBrWFRxTSo8NGdsZj96UUZYCnojPCpRWVdaOHwzQ3RmYClDVWA5Nzcw
VCg/Z2VLLSUzeSUqV2h2TWBvcWQoJSt7OUI3Yz10c2xVYV4wKH1lKWhZagp6dT5xWW1Vbnt5filr
Q1daOWp3I0VTZHF9PElPPUtFYFVgWl5paTRWeWNSZSZeZXJyX2d4Vm1ud3taQSZ4XnwkJUcKemtY
ZkZfdzh8SUFPZFBIQnhGdEJMY3tOKUtCX34mJXdjfTkzc0orc21hVDxmUDx3X3s+UGBmeCleSTl4
fHJKKilOCnpWOyt6ejNNfFJBS2QrUDJZbjIhREBnLUhnTEpEU2BZeVNPaFNpSWVsclN5alQ7LWg9
S0M3KzBQfEs+YHJsNi1uKQp6TTh3LU1FNUlQYjsjTmh8QlgjQWAxZ3F2fV5KVX0wd3JIUSNnQy1s
dGJDWkB7T1Fgc0hvcmJtKlhITX0lUHBRJkgKejcxTklVK3FPOFpeSGFGJU48Ukx5KmokdElEUCpz
aTA+JEVYXm5+KXY1MCNrdytkWSFLQXxuTShEXjhFVVVAI3UtCnohOUFGYnhzNmFIS1NaPj5KPntl
eTd9OH5fZEVNS1o7cSZJbGk8RG96OTk5cU5KNj5zditnY08pezBMb0R8TVRYWgp6PVRrMFN3PGJS
LUchaE5TOEArbnJRUVVAQiQ8OFdMLXxxQ1dgRDNeTnlOZEZnQj1URj9jaThScSQxJkIjblo3SDMK
enVRUFlQN1d3JG5mcFI3OUhtVnRSQzg7ajNJSndpTGBQcWohN1omdD49SCFzTy1KODt1NnJBRTA/
ZWgqWUJfKVlVCnpYTjtMeWZgUis0fERMej4hVWxWX3hHdigwO35ncXElJmI3YXRNP1FMNnBRSTVy
c01wdEYrViRmTXhDVWE9M2YtTQp6OCswX1NAbjlsdG1iVE56Zml4MjZ7aWMwcksoQzt0e2tESis/
QVJHb3c7Z1lmT2J0dW90IW8xbD91MkprOXFiJVAKek9wYCFYLWtkPVlXX0MySlpSS2w/X3N2Zlpt
VFpRXkB3ZVo3dH1EdiplfWgxR156OW1IUG5GZjRabTMtT3F1SGxACnp3TEwkIzspPz5TUXRaVDUr
UDd1S0UlfkEzXjcqUyo3Mmg2M1k0NVc8WnlyeUBBfnprYXRTRW8lUVg/KUhOSGd0TAp6bHdYPHBN
JiMrY3NSKz1fQ152T1lDKVE3VDZYVDtDKkpoSnBEZ0UmX3E/fW9ET3paSE1Ye3NaYGhzWVlNPHw9
UW0Kelg7O2tuV1lYPn15OFJjQGdgcjNgSlE0KzZtZkBJTiZ6M3lBJSNiPFh0fXUtJjdDYzVpREwr
JEl3YDF2SkwtSjBDCnpXbFZmXj9SY1dvcXdBa3QkIXtqej4jVmVvcj0qPFFMO1FTR1RTUG1NdjdD
OHN2d1V3SWppeTh7ek5tZXU9N3c9Ygp6UVNnYlg3QlRoR0ppKlJLQ253KnFQcWYraGY4P0lOZU0l
O0l6aWQtTiE/UjF4OFB4Kn55U0J7bHdaNUBFYShJNCEKek9INHs2d2I4KDFTMEh6blFueCtNMCZP
cU9DQW5sPmYyayM0dWMlUEZPcm5UPl5sOU02YV8wRnEjcVAwSnN9dn5nCnpNQjB8OE1fUllWQ3Ah
bVRudmRPNSo+UD0xPkhRMSZSKlp+Z202TnFwKkhJbEt0VVE+JHdCVk5POyZiQkt3bnd7YAp6e3dS
SWgqK0hyYj9xWWV2QyQxfj5PTHMkRD40V2tYWnI5VWpTQz1KKUgtMDc5PHpqVGZxfWFIZWFiaitk
PTNHLWsKej4raGo1YzhGOSU2Uj0xbXJxa1pkMlVrP0JMTE9wMmwoU1g1ODhsVj9xTHRZSFROSlBK
Nkg0OFdwNmxUYkpaVl85CnpoeDBpRzY/TEUkNlVQcCtrUFB4WXk/YmhVPEZDV15wTXZ2bVpfcDNk
PEokZWdTdVlFWGhBNUFBWXV5YHVrbnV+fAp6JHEoYzlNXmZFcXNCUn5vVnE+KXNiPGdxaj1XTVYx
UkJRNm9RfWNDTyhpZWwkWFdVezFPMz9YPjIpVlojYCVNQkYKelpGWGtzcFJfZ0l4YkBFUy1jcnFK
M0dkaiNtRF9JVCg2KShZI2s1SylDbClhP3N3KkNeNkZzVytlOTdjdzhgWXBoCnooP3pMdGoxYzZv
SnNDTFpuQmc3c0ZuPzxnam4rMll8RXR9WVBUJl9iRzJ9P0hRQVZuTXIlN1B4Zks1QH1uTDgyaAp6
LWkxOXFQclI8cC1lYjU8I2pEP1Ztcl88aCRXMkVuQjVJVFNXPlNHKnhDVVp8RzNRKHZrcENxeSRU
I2BNXmBRS1YKemNWek9oVnp4dDxaKURnXjkkeHBjWTNLZFRtWX1XR216aWE1RGdSe2p6SWB2akZF
SUdNUkYyblMlNyVTP0R9QlgrCnp7NzJTT1Arez90JCh7RkBMXzZ7eU9seXFIfEVySEFnZlFQS2o9
MF8oMFk0fCVTe3Mjclg3YCs7TFhacHU8Jj47Ugp6SiRVRWwrQHBnTDd3dTY4PEtXV002OG9NWDw3
ej1eYHNNfUlnWUFJRkxZdysxSyMmbGAjdndDPE1+Tj9RJlN8SmoKeiRoeFROd1pOc0FjJXgqTTde
ez5LazE1UVYyZ0h8RmxOdn1WbmxKPk9feWk7LThieHV5I0MqK2doM1FAaXhUMThnCnpIcnhldVJ0
TFRYOVZLbj95eDxJKEQyNktfbGt8IVVrfGB2XkFySUV7UDBAI31IYGMkUnFoKkxkJD04aE0yTzlK
Ugp6Rm54R1RTVGtRQS16X3glUDQ5UmIpbjJhTip7azA5aStaPjBHOGVnSnl+Yys5bHZTPUtSI1oz
Skt7eDdWcztCNHYKenpgP008IVBMTkVjVjU5Z2tYOVhkfEolZks5Z1RvO3c5UHIlSUYxJk1eVkV6
WjZkaFk0MFF0Wm4kPGEtQ1lMQGlPCnpBISErdHZueEUrSCRMLVhNJnxTNGJLPC16VV9KPSgtayts
ZjUrKUJNYEcjfE5kRkJPWFgzQFchMiE0MDtBT2VWRwp6JVJZNX12SmJ8SkAqO2Moe3pPMmFVfFdJ
Pj57K0hRRUtCPGtvMGdEYHQ7dWUhUm9mKUs0ZyZsWTBmR3FmMkRZeDIKekVvVXNkPHlVcTBufDhg
T3h0S2Nqe35PNV82flVWP3ohQSpaVTgoK1RxeyU1ZEZEemBKUnlofkJVWHBKS1JFVyFjCnpoUipF
Q29iNUUxJkslRHZNckhOYSRHY19lKUUxe192QVdEQnZ2K3I/Sms0Zng7bzM1cWF4IWB7U3pWNWpu
VDdtUAp6eExsVEtYPmxMbXNaM0B8SD49UD1KIVc1flh6eyUqcGU/TkBiSyt0eDNZNmxMdnZqSXot
VDMtPU4/QmRTK3ExanMKeiZCczhDXz5ydURTfXsqaGBwcVlNeD5GNDEwbE4jQzc7cEx6el9gKXhE
bVJ+dkw/MkVQQGpfdldGbFJKRVBELUUyCnohUWE2WlhxLXMwQk5hIUhESm5YSkEoMUBLKEdWMFp2
dj9MYFZ3SnQoRmMtM2UjcX07MGExISp8Ymd5KDZ3O1JBJgp6Tm5AQUEpYTZFKl5eKjk/SzlhJHpM
M2kmSFJUSmt9VyMkZTZnO2hmeWBoe1NFO3xscEozSmZhUj1halhHM1U3VkgKenJVISNua3JPR3Rj
O01iKnlKZVU1RT10fE1zRHNKT3BVPUY+T3grdzdOSnxVN2U+S01RWnNfQ1QhO2duZz5gO25qCnom
e0RyaWVBal58NVdKanQlUTR3MjUjTiM+PHhDWGc1QWVkdXZFUFNrSWohRCQ4b1F3YT4ocG5eSWIq
dE0qMGZqTgp6N0VCamMxPHppRSgwKWFSPnVTJmJSZzhXclY9Izx5dWJRIy0+UzA+LTttMzF9KHMx
YkZsPj9USW1VK0BzaGlfTC0KeihpNXtKWkFUODQjI3pvPUltSD8wVUtIcDNXIyMxZkMwc35QeERi
fng4SkRDUnBVUkJTPGtzZnhaWSFJKl9Baz5QCnpEK2VxWGtaZFZmK2l6QSo5YlNEc1NVZVI1UFAy
Ujt0JE0tazVNcnllY21OPSU/diYmUGNxX3JXUHoobnRzfEcyQwp6UjV2VD96aykke1hAUzZ8SyMm
UnFIQzhfQjMrX0lWPERoMz5ITjxmbCQyT159Q2dlb0F2IW9QRTt+YkE7eXU+bGYKekB1fGBsTWNE
KFl0fmVFejgqNFlsRXpWS09xS0pZTUYrX3JTaS1kQWpBbjZ0YXdwez9iO3A/fFQkOXx9RDdIWGRi
Cnohd0xoVCYkTXBGbHJVP19DO3poPz5tK0V9NFd8Vil6fGJaWDB3Z3xOSClCflJaJmZGNmA9NDNp
d15zailFI01JXwp6KUdmYlkzd1EoIXtnLVYwSH5SYmtJe3JeYjA4QmZDSDI2fl89Mz97KCprJWFt
N31sRERjSStgX2BfT3Qhe1p1IX4KenFpS3EhUWtmJEN7Tm8qdDI0TXlXT3JgUldyJWFiKmlhMTUt
ZSpOTU9MMS1vcldRdz41SWx6Sjw+I3U3RndDZFI/CnpwTkRqYlcocnZMTjl6KCVednU1eEVFfEhA
MnZMWCkkK3I+eT11X1NuTUY9d0VjKygoZylRclBHS3hfc3I1MWpVPwp6aDRFVHt1amIkOXs+MzFJ
dHFWY05mV2FYM2M3WV5zOGk4WFZ2NkJYTTNpXyFNUHpib1AwTmd0QChgQWFIeH40d00KekFRQHEz
bCNGV2NHaih9cG1SaVdueUt+eExMJSs+dzF+WVJxVzRVU1A+Xyp3ViQ/emh2P3BmZUJHYS0qRjBG
RDxCCnpjNDBXfHRObG1AKHF6OW9CblhYIz5jLTRjJEhWaVVodilmYWFAK1A5dzluZU9wcXlOKClS
ZD13c2d2PH14fHV+Pgp6dHt5UGQleyF1flI4UE9tMUBeVFNtZlpgckooYlEpaFVlKWY2Y3V5SkJ3
U0ZvO05rLXxATF4kfjZ0SzgydU11RCMKelYwa0xWQGx9PmgyYHA0ZkBua2MoVHJOMG8xbCZNezta
VE4zNCYwPG56YTFKNV4mQyFOJl9xVW93NTxhQ3R9fE1QCnpmWTViRmlgSSkzTkh3Ukx3LThGVExK
TnVtYjBMdlYhV1QrPCVNcnpNPV5LZC03I3w4bjRfN0VvKUxXSzl2MzRqZAp6cGNzPTMzc1doPW09
cTRGNytwWjI7RGpPZVFadytrMXNNfXRBX1VFVituelVrWGlzOF5CPlk0K09BYkAwM35uflgKekN+
eD9WbGd6PGBpO2dxdE1MT1c9NiM4QGstV2lHb2VFRCgyNl40Sys7QkhOUHR7d3ZKQTdAJDhMPEJf
T00+fUQrCnp2eXEkfEZXZEBILTYlWDw9WDRUXm4yd3lIQE48KiNNTz1TUTBncUc2e1VlXlJmRVRB
PSZ4TDMlWXRRcTghXkBSYAp6Rk9fYzg7VFpVVyVqSGZyUktzQiU0eUU0Kks/RzUlMTBlJDt5YU9O
SzFgLWdvREZ9a31GNElHISYqWVdZZnJDeH0Kekp9O3kzTkYyQ3gtOVo8fjVGS3phckBvIzMyKH13
dyRPTSN2M3NyIVdIXkBMcVpuNlg+ZEEkRT48X0A5NVZnJjEpCnpxb3Bvc1hRTklDRTI+dD1LfWI8
QnFTa1R2PVU4eGBpOz9sfWFkYXJHUXIzQEZqdnx2dHJCJiZjbGpfa0Y0fVpodgp6WFhjYVdmJnFf
MntQSlBvTm54dGpAJHdvKXE4X2VsJGc4QVBJZmRlSFNnam9KeTZJdnZYIz43bElsIW9TMDxKdmQK
emFVNUBQUmM9RWZ6UyQjTXd6KX5zeVFGR1pEXmEkaHNuNFVkTzJqKnt5dGVBRGVgbD8tYzRDPWZt
M3UmXkZxQ2QtCnoxYChGc0hFU2dHKFo+OU96JUdHY0tMQyN+RmlFYE94ZDRWN1N4aVlaMk9SP3Ny
YCUpO2cqU1ZeWklEZEY2JjU3bwp6Q3dLeiplIypvI0k/UTFLeFR6LWhRS3F0NHBhdCpaeH55O2pf
YD9AYU5GK21gTipBYnQ+dyRjczF0NXpIbE5WWm0KeldgS143MFhCSGAzWDtGeGZkVDFnU2R+b0M8
cU1LSTl6WUZHNzA3QGczVFooPUEjREtxVT5pSXNGTHpyWWFmSmhMCnpHcnJVIzAwZncjJEZFbTg7
MUt9U15Yb0I3Zmd1dHVnfDhsTHlBZ3NBZmkwViY9eWdHNXZxcHJyeFhTVnotclZ6bgp6QWokaz5p
bGQ9enEqa0dGS2BMPlgwKmcjWiZ9QihlTntXZUg9bX41fTB6TnU5JUZTM2JoMDxYeWokdiVYaUlr
PSYKelRRc05Wcn5CKldkUHs7bSkqNkIkUEtnUEw9aFA4SUFheWo+MFJoRGIkNGJqOzVmVExpcEZa
Z21melpnKURxNkRUCnolR2wqQGcwQFd8KEIrIUNRJWZLZlJXK3VQUVYpWUlhamo7R2ZWNCZ1V3NW
RSNxN2tBeDU4blEpYn1sR05KfHV5KAp6bD1xJF4ydHdlTmhnQm9rKnFFfV5tdWhJREY8UlEjV3hP
dkUzJTRjK2cxPDw+cjtxYFhJRUFvV3VFUmYpYzhXbG4KejVhY0s+QlAtamZaaHgjcilGSks7KGxO
ZU9qMDg/OXUkMlFxcTlPMz40cVJmeDhHYD9fd2gmeH4wc2RKVio4QmNwCnpRe0tYbDwpOUt6I1FS
K3ZtVzJ6dz1vRmx2P19EUCNGfSVpblBqS1Y1QCFJdyklalhRSXcqKS02U3t1a3BvaXRlMAp6c2g/
ZHZlUSE4cVkwdnhWdHEoNFR6U2UoR1U2YTRoUFc4ISZDZ2xWNVE2ajRrPzVzY0R3a0RiV2xrT3Z6
c3dUQXIKenFoWnRALUIrelFeMjY7XlhISlooSExRdT1AI2JOO3B8IVIxOSVSakhpZ01VUkJ2U1J8
UytudVJQfjdIKG04ZXw9CnohWlA9T3tnbzRBY0l0K34rbyNUJTNKRk9iPSlZOTlmN3xxaWlPekle
NTA4bCFKZGtfMHowWGEqa1goYExOeFZRKgp6KEM1PEolOEghYDkjbitDejx9X2hDcGxIdHsqaTtp
N2I4ZXshWnpadStvTUI1Xnc/QzBpKlZIfGUjZ0JxeFFUb0kKelcpbihXN2UmXzFHM2w3Sz9CLT10
USZVO3NAMjgqMmpAPGVLdUI0RUliSD1TNzl6Tns1YXQ5eDExRUVYcFVFc3teCnpvUTgmK3ZjRXZH
dSYlaCNefGdHIXpJeWQ0eSZoeXtLWjRHIzNmJHA3U1EpNWsqUEgzIztqc2xrPTw5PnFoZUJTagp6
Yj8jZClZMTlaKHE4VWktWCk2ZXwhT3RZcFImMSpjOXstbTVHX3w5QFE1aGZnSFFqIUVfey1KcCEm
TVZLcXRlalYKekIoXmA/SXdCJU1tP21ESztHPWhrZGc+QyFvbWdePWhpeUR+JGFYOSlMVUpAaEt1
RVZZLXxubk0kVCpJfiR7cXBUCnpRcm8oOXRKP2toX2VUSjxyTWd1VjQocmg8WkUwSkk4NWBnTiV0
PGtUaUxIZSZxZXA+OUVKKXI5MilwVFc7e1FtVwp6SkhGaUN4XjtpeDB6ZTJvbCYoV0AldGslQnQ5
Wkl3THk+fSF0UGY0O2xZJFo4Sj1DJjR5WUNyTjQ7O34jeE5RfEIKem0kWn0ybytSalVZcEhFeilj
MEdzUDQwUmxDNDsqenQpZypYWn16YFZlTUo0dW8lX1JzWWdBRl5mdSt2ZyVGWHhfCno1PW15JDdp
VXZHeXkoQldDKiRESSl0ZG5hYHdrOU49PHhxRDFSfVdlQ3ApfnI7UCgreyhDZHM2U1RUUEdraHR7
VQp6MHNxX0tsMH5acVJ1dExMVjdFa3l1bCNGJWJTQihjUSRYWGBXJGhxU0dgfF80Zi1pKmEhPmlJ
UFI1MGomdjtUTC0KejBndGFwZHkjIXVrKl56aDQpeFhXViFVOGlucU1FYjNxSjVjYkJgcGd6UlJ4
UkJEPTduJitpKT0jczlSJngzKj9jCnpCQHJNekdLVj8jNTAkez5vQ29sS3RBSH5aYGpSVzdgKmx3
dWAxNkh1Y1ZQdi1JbzB7ISltYCZOTSZSdk42cV50Mwp6UFlXPz17P2lFRGZtK2tlalBFa0NWVVpD
cnBlVT8xJl94YntXST1IO2ZhIyFqT1hUP0lSRV9LQEhXYStgMEtYZzUKek1YbGk9Kn5RbDF8QSUw
S2tIOT5EZzlXWiRQO2tzWis4PSZzIVBfP2YoMTNraERiMW1NbW1peEs4RyVwMy1KdWdOCnp8MWZn
b1BiMDk4ejN5b1R6c21AN2tyODtrdFcyTksxaXxfJUBNRlZUUjJlKWxweX5iMnNERnFKVmRUJVEh
OXZ4TAp6MktzayhFbzcwa0J8eT1PSjFSJjJAUDlTYGF8JTJvO1FgcFB3PlI7LWoydjVKMWJvU2Rk
fV96diVMNlA4WWg0N3EKeiomXzZWdVYofkdNd0pYR15GekFmJnk3U0VIaj5rZSlXOCQlO2IrNGB7
fT50MHBQaHlXbHd8S2VfZFQ1ITt3LVdUCmY1N3hVKzVfMWNZNXJQVy1HeSlJazR5JmlEZ245Y1pa
dio9dVA3fHR4CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMv
cmVkLWdyZWVuLndlYm12cDgud2VibSBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9yZWQtZ3JlZW4ud2VibXZwOC53ZWJt
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZkZTU5YTE4YjRkZGU5YTEzZjM3YzNmNDYyYWY4OGFkNGIwZjNjM2EKR0lU
IGJpbmFyeSBwYXRjaApsaXRlcmFsIDEwOTc5CnpjbWVITjNzZSk9KTteTn1OZFM/amY8e2RjM1c+
cE1GaUBhU2hhZVNAcGFndD9RcCtSQyF4dGQ1d0FZXm0wdDU8KAp6N3kta2h5bj0jQTYtN21CTU9y
fD8yWiRFaStLUXJ9Wk17e29TRk9MfktRanFkRm10Pjl6dzJNP3k0SWFGOEReakYKej8wc19mS0hy
PUBvNlBYT1FHKT5kbjhWTU1BcDlycl5HS3FAQUMqd35ZMD9peDV1NWx+NSl3WntMYjQxSlolfXQt
CnpIPH0xYXgxc0x7UEpTQStVdXhsN3pkb29AYXprKTM3ZlJFRG84cDJSKC00a1lxejllRU1BaXx0
aTBNSSpvJVZ9bgp6KEIwfj58SU0hMGxyJiRebFJhPUtlSlVSbmgoR2xZUGhSaWpJTiNaMnsoQERX
dVMkdXYxKiFAbzU0UzExWDEtSWAKeistZFB1ZThKKnU4RzUpMHBCQ20zd0swPVZubHg3MzF8JiNn
aFhnNTswUEJ7cmJrWEp3bkhla0J0ejdQc0U8eHJGCnpyQXZfKSk7V1drekQ1VG4lVEd3ZSFTR0tv
e0hybHheMHhzQTM3UjBpVm5YSipac2pyfC0hfnstTGJ8RVpIdSszSwp6WUxUSE1Uay1EXzVoWEU+
dFhANyFuak1IRlolSyVWTnlNNS07KiRXVi1+ci1FX319OVFTJmd6R3g7a2NTXiEjTkIKejh5Rmo3
QjM5eCQzfTElaDBgN3RaM211JnBfVEleJmdwPzFYTUZ9RG5IbCFLK2gmRCVWaTRyQXZLIS0mX2hy
UFhVCnp7c0tmLVpJSCRIVDhSS0U/OE5uRmJjbE5rUnNkaU96eX4lZ3FoMEhMU3hSfThlTSpWazJm
T1E3a1g8NnI/eSF1Xgp6PCN2dT03YCFNODBDYSVab3xhIVQ+PkdSMGIlVWl7ZW5PPmRPbn1RPzF8
PXRPKDNSSHkrZ3AqRj55RmdMWk5BOHwKenJBYFVhZyVicCo0PlFBRGgrUUlOJXVHdm8kKVlFbVck
ckNZJn1aK2ZPdylIZiVTaVdreWpReWAhMHEwP250WnBQCno/MnEqRjRJR1lLX1ZlZG5UXlpTUU4t
eW0xaTVGYyokfXxAbUpgVj1gRV9eKyFDfVRicUdjUk0rbF9XcUA+Uy1+Ngp6Nyl9IWAqPWc+MyRo
X3dle1goRDN2UFlhaUdwRHxWLWEpfkY3NFMkM1RhXyN0TktQNl4tWDJudHZGNztwa21ESV4KenU0
Uk5oJHEyWDEpU09TWi0qfCRaX3x6RSlzR1JGc0d7bWE1bz42X3Z3VkV1PVkkU213JXEwdzNwKjU/
cCM8eTtMCnpZKlMzPihkaGswSH15MWdkWVRSS0UmemREdSVqfFlRVE4pcEtCUCRXPU8tRnttSkx3
byVkVThPU0c8azQoNTVTYQp6TCV9X0s3UW1SSUxRWTJsWiVIRHJFNzJYRU9TVWFPQy09WWIqbmpH
SDVVe1dWZk82Pl9AJF9AaDgkeVR2MWdCTXIKejlzYE1qMHE2P01CbWVyNDtPaGxXZ2p2NDZDe3wy
ZVNQK2k4TUdWYmFSI0NrUylnIT9Vdlp+dCpNWHpHP2Z+JTNACnpQRyFBJFk1JHEqOzhNSFJgalMj
U2YqVVZkNFomRWx5N3pRYz8mKHp8VWkzOW9EQWppPHJscGh2Xl9POXIpa3Y5OQp6ciZUIVk3anMh
YnNzREMwKUQ3dVg0RFZ8LWhqLWNYUW9FTWNWNntFWHZaI04qP0JXXk1uQH1WQnlWQUg7U3tTXjAK
ejdGRzYtM3BBezReNzI3cCtgX0x9Yzl5M3h3JiZ8Ym1eMTVgeUptME9WWUk3fmR6TXVASjFfcXx6
eHdwJExNdUR2Cnp3bHNYXjM7PzlZXyRuVTE7N2VKKGlmYXBWKnhtTXImcFk7VHV1SjF0N3V8azdf
PzVBakFzNFA8anVUd1BjYGReZwp6aUF9Q1BhbXRvJkxneSp2TE8rJkwlX3RhRE1wU3tQbyl1MSMl
I3dzfCk/VWJwUnxFSUo9OTA7KnpFe3BtNTl4dVgKencoI3Q4Yk8+N0x1X0FjSXNebT19I1l4e0Ul
THUhY2JZbyFxamUpIyUoPSNWOHRlNENJa1RnPTlsayRqTVpkWH0pCnowSDNBfkBIbGhnJkFXRWUm
K1c4WCtINTFaJSg/SzB3YGBReFhYWUtxNjlpZD1eO3NuS1BaST8+aHhJIyZgZDVncQp6Q1gycDNE
cTNARmQmcDRAVmJydl9GXzgyTWIxO2ZueVhGdTE2emNySm9KI3hyVFEyIT9lRzY/dTNnMWQ4K0t7
Y04Kei0mMWp+ekZMMTBiRTAkaG1nTVl9PCY0UGs/WCF6d3ZLMC1qKWY+QjtlbT9RMT1TJGArTnc5
JEBXUjc9JiVgNDFsCno8ST1xI28wPlUtUVN9QD5gaytJJWN+NV5lMDA2V1Y3JXMpMUJZe0dQdDNz
ISVMV2RRPjl7LXYjNVdVSjFeeikhJgp6O1p8en0hMHA8KUQ8Mnp+TWlqVmFkcXpgenpvdkpyYi1Q
enF2bzwlWVZENVhxX25BVEdqZGZafGRWTXBAdWlPZmEKem9zfTU7WTJKWS1BNVZ2KW9rSGZGZUg4
ZkVxazx8Y1ZBT0BzMSFWZUNHR3JjaGAxUypWSWRae0Z2K0swPUBsWjFsCnopWFpDcns8U0x7aCE+
fj5QbUxLa1ArdV84JEoyfWpNYD5IPWpxPjE1XjRBWTdWK0FAUCVVJjRePHE2UFchQ3hRZwp6S05r
TXVmansqQ1Q7aGxrezdtQ2xHM1N4UUUocGpQTEpKd2I0fHc5cGtPJUdgJkcwdUhUc19Ud3MpRXUj
JkpNVzIKektIX35lK2tJKnN0JDtWUmZec1E2aFYqaEFNaFhOZlV9cWw7NyYkWSh1Mz83PHskX1F3
SzR+bjt5PFp5QiZJQG1OCnpzV2puNjQxZ0crMDVMR0BNcWhyWDhYcj50VG5lSz9WMUQ2S0NfO2Mo
NmpESX1waXE9RGR4R309TDZ8ZmtCRE0hMAp6dDl0ZGN0QEl2SmVxO3oqJFQ5ZEoxUEk2PCV8T2km
dFRQR3difkFhbCg8dGA1Q3xoOHgza0o4RV9ndi0kLWdZVGMKeiMjRW47PVBkMUN5aSl7fHBsb1gl
eWZ2djlOdldlPDhpbig9JiM4X2YhUi1hUVReRG5eYkY/NEZYbkZLbUtmdGc3CnpaOHUkdD94YS1Q
PWZNMV9wKng8X0dyQm0/VG9BTSh0YXhhMyhNV2MreWBydysjQyRsPUM0N3M1JHo4UEtXaXdBOwp6
NHhoc0NYJmczUEZgU0tBWGxRNk1mSWEocDBAIW12dz5ueDtTS2sxNDUpfCl2SDdSVm0zfk90RXk5
KXtIdj82Ul4KendANGZWXi1lVCMkaVpzYXM8TlRzcnhRKXtkSF90SXpUR1ZmKEhxMzFXKTEqQFoz
dGtyUVFnayVZb15XPTlEZX1KCnpYRWEqXzhDKG13O2VLNERWV2NUdnpiZjNIQDU3N3wzZlV+QktB
Jnk3VGo9U2R0UTkpP0lWZypTeTNFfiRlKVd1Ngp6cF4mOHUjSXMhQlhFaWs9dnJ6eztnNHRmQUpt
UzNUaHo7TTVKNng3JSUyWm15XnJxZkM2M2NQcWc8T34/MmwkO1UKemZvKm9tREE9IVRtKFVIaThO
cX5POHwrZG03eE0zeENCcG9wOUNrcWZzYGhyeSMoKUs7IU1NOUVLLShZfHRfbk5vCnpacntTWGxu
T2hUeDVnSU1zI19IOW1vKGxfc25HYTFBcSsrWGJDaGlsN05oIXgyN01eP0xxfXlgYEVFblEmK1NK
cwp6e3xfWEVlfiZyOz1NIXp2P0AxITc8Sms3aUYjdXAwZGBEcyoze1I1b3N5QF5QSCMhb3dVck09
RDdSPFR5bjY8YHkKekE2Nz1lI08wNU9wXm4mQ15NPk1fOD9MI0YqTUllYDwmWEU1fElmUT9wPllS
VlJzemU1OER1bT5uenlqZ3JyYVc1CnpafkJhOFEkVkdgc0Mmd3xjV3ZaX2V0czdHVHZ2UEItOUAx
fTJsejVCUmF0dV9iUiYxI0MwOXlTdHZvYmBiQFVidAp6NU52fX0zMC1UelJMVm0/YnZTQlN4eyhR
Xjc2O29SN3k3bHBIYUx8eWokYlFtSkpld3JtKjtJP3gmfWt6NG1oI3kKekJyWkw0SDhpclo8Kmww
QkxhZVFePHJ7MGMoNlE0ejI7TTJBM3AkQHpNbUJPc0xVKTxBS2I7LXEwNldMUXdKPGotCnp1Zjgp
QkUqelJESF96ZCFKbl5Dfktze1VsWUhSNmZYU0hIbGNueGooWSV2fn5SYD9ESG10SDVmIW14RUV0
aEcjcAp6JVp3cSMtbyRGRElOJUE+T0JnZSYkWj89YlN9NSM+OFc7ZUZ2c0dTRVl1SUMldXdWVTRL
cTszQ2FhfTUmQkV3ZnYKekVLQGF3WWdhQ1dkS3F2R2I/eXV1cTdUUXcwWUNXNFlSOyNyMGVLPHBy
Xz15JkFaVDkkej01Q3t3RmJQd1F0O2hhCnpVK2YwSSk/O14yUkExR0E1KUszIylsSnd5UH1KRE4y
YSpmZlk3c3R1JD1LNnhGNUJWamZRMyEmcSRURSN7d1U1Xwp6Xz1hWG9JZHRUayhFWWd5LU0rcER5
eHlCSlR2PmF+bSU/bVd5O1F7VD9EcTk1UG91Syo+TjlmTCU5MzQwe0dKa18KelZaPVB7d3B7S0sq
RV8tZEU9JjBBUDZMMiE7JUcpU008byhOO0RZKVRrYnU1eztqRktgUUZLMURybWI/VHpsJllECnpH
WFMybF5UeWUtNGhGWXNoQ1JFRUViaD9GezV2Pz9kKEckTWFxKWNlK1RNO1ozWktlMVBGcWIhNXRA
dDMlfWwhPQp6QTRxNEdSUiN0Qmd1LXpFcG8ybTlgMSUlRFRVWU5IeThHWk1wcVdAUFN6SzM3NkM4
RjFQWFhgfGllPDlzVkhZPnwKemNUeFcwX2s4XlAxRDM8YjgtbmtJQ190IUdeJFJCXlE+aztqandZ
IXlNcXtAVGlCfUVVRCM1NXIxTFgqTklySkh6CnpQJXw9UThCIVRZQmZwenVATzB7K1FPVFVQSWxX
ZH0+NU1zcEA3e1A0ZCU5T2d3QEozUj1aeUMkP0RYOH1eV0Q3ewp6ZC1uTkFTQjFabWFEdWVLSUx+
cUA4alB2aEsyeGNWVyFeOGhZSTh9KjZzeW9KRCVJd20/ezA5I2k2U0U+bUZvQnIKeil0R3kjWVRH
SytTb0djWTEqdTw3PEp4ITN0MnE3WjYwMWF+ZDh5cnA/KjFleEcxam05RjZyXlFobiU9eWNFJnlM
CnpKOFFIaT1lQj5EbzczWWpQRSRjbXU+PiV8TGo7aEZSfDg5Nnglekw5MGFmLT9qMDFjJTtRa3NB
cjNQJFgxMldXcgp6YEQ/JmxIOSZuMElJOU05VUlYckYwUF96KF95P3paZiVWKjUwUSoqbTBmN2Q+
QXAhKE16IXQzbCtBS2l8MipQUD0KemktKXNnMmxDJkAzIzFybk41O3RhUm11QmJmT25qN19xfHs3
e05DMTIlNkFCVkBhUH4tSiQqbUo9PSVBP1dmITthCnoyenEhdVd4O3FqbF4tZFZtcFFzR2BYTlc5
eThtc0FwIU5ZPFhMcHdCTWFOIyUheShvND5lSCZ4Q0VvM0k5XnRvXgp6LWFuQ2E8NEh8IXQwTU57
c2hYJSRxLVMhfEAyaFVvPUg2bm5KYnowKU1IaztXelIhUjkhQT14Jk9meG5jVkVtZFoKemskeGlK
RiMkbERNZytWfjFnc19rS0dwen08NDd0YygpZloxXz5sLXVYJDQ+JCQ7Pnd8aiUxdjZUSDs4SylI
PTsjCnoyXnB1SUhqTyRXalY+WXByPTFwNEl7RiVvJCNLK35NX0BfXnI9MiFhbn41fEV2O3JgV0kp
fm84SU88JjFJLTZwTgp6NGlXOGlFZUpHcG9yd1M8K1VjZWNYXmhpdWF2WEp1WHM3IUZrdHl4OEUw
Klhudn0oWE8+VXE5LWFudktDb3R7K2QKekd+eFZ9TDt3LSheeklVOVB7d0lEZDRIc2coezZHY0Rn
SCNKaC1nUklMOE5nfER9YzYzRDNgP3h3NUJfUCpVfXdsCnpeekdrTXBDNnplSk5RVTh5ZUtDNTlT
aXEqdWl6VlhKIyRPOD1fWDQ3RmQtWjZhUVkmQyhYT3FVNEtpIXlmeHs9fQp6P0VDcypZTHkqS2Y3
Wns7ZT5CRSRAOTttWmRTMDVQOHRQSSNAbEk2QD1nKjRDfDEjT1p2Zz5PNUZOO3BtNiZ+QkcKemNi
eHZNRzVPS0RBcDQ+ak15KUBPSnglfkEkK0NnejdDTExfciY0JXp7bmtga24mfHk3KjElWEIrJUdB
a1Q0ekAqCnpwXyZyYExeUHpYQkdNcURBeXEtN2FaJj9KandfWGpoU1ZfdlE/eGxtZlR2YWZKdDNo
Kmg/aUBQdEc2em1fdzQpcAp6bUFvZzRvVnIpbFRHNE1MXlAwY3BsalY7Y04+VyRsSlJ+MzkrTVRz
SUNJRW5gcmNfVHNCJWQ+VEpkdz07dkFnJDYKejJZeU5ZJk9AZDh7eEQjNmc+fntNRCVJSFZQMVZ6
ZnN1ejloUkxeUn1rO2UqdS17YjhOOXlrKzVGIzVORFd+O2BVCnpNJDBkKTJ7Ujd0ak4xOSk/cnJl
c3pEWUk5RjBzcWAhN3FLYXclems9NHF9TlJqZmpwa0IwQURLd2ZYXj9CQkctewp6algqPTZPJDNi
N2FkSkhNSHhYJiU2OUwta1NTLT0rKTJhZEVzWHpNVyM/eWReaDZZWXJyJn15QkFmbG5jTT9ATlgK
emg9NmUjUEpacWhULVJ0IWo7RnkzMCNrLVdHJkRxc0ckT1BERnJKMyNaKkR2ZFlxaWQqU1lrKi1M
JkZnUWpWVitqCnpmUVdgdW1KKEA8KHtPUztyeDRMXyVJOEY7dzl+THlHVWJzcmpYJGFnZFlfTV44
TGd+PUByN2xDSH0/NHB0aExQJgp6S0EzP1E1ckVlYnc3ZW1KT2Q8YHVqLVhCQjlGZkxQOGVucEsp
cFowZHJWc31MUSVDPzJmWSVYVEdsZ0UzQVVnQC0KemQ3Wk1Rb1Mtb0RVd1JpRkFPM28wIytoJE0q
UntYPFZEOTZyJndnekB4Mj18KF4hfWNYVVVxNWJzPjw8MWk1V0xHCno7dyVpWE5qKkBFQn0mWXxG
VElfNjA+VnxRZT5mfnM/VTx3YiE5dH17eEgrIXFgdFYobnI9LSlUPDtDNWhgUmZ+aAp6ZU8zXl9A
YmpSMUhuXlhqdjE1eUE9YSstT3BaK2wpT31NX3dkUDdfTT1XNyEjVVhaVnYpd1lLMW9JUzlUVHoq
YUEKemQhNTdTYXhvJnwxKF5TUm8jOGhFI31VXlZUIT1KNmh5Y1BtTG04M0FESSRRViZIKD5JdCp5
ZD5wMlhANVRlYXAqCnpaWT4xJEIyeFF7LWVJPSRgUE9ybm1BfXFBO358U0pSaTVBVXs5fGNzYlI2
ZU84Q3sxVnJhdjd8b0hCMl9AKXRARQp6eHYjdEhpPE9MME5LLWpPI3pGZzRXNEhRV0NRZUd+diFI
ZCRaMWRKbCEmMlkpOylRYCUmZEpKOWBOdUJsaV9XZiUKel80dlp1bzJ7I1FRZDItYlc8a3NScD9Z
fUppfSNyfVNVfH17ezNIfGNsZXBrTyM3e0NfPVg7R0phQiN3YzE3N0VZCno4azMydWdWKmBBbT9B
RFhYeSskPDZES0cqb1JzSl56cmd8M0F1OU0wUzAwRThlITV4PGUlTWJqKWRnX1NlbHF2NAp6I09x
a3I2QUFKIyZHaGlleXUpY297eylkN0g5XiNRSlZEZnhQN3RYVTZHV1BGZkB0NzhLe1ZgfkFSNFhJ
aH1PQHIKb3VRN0ZHZkB0I0wxa3NIOFFwQTJxcytyQWZePjBoRHRyYEJkKWIjS0soZlpsezAzcTlA
eCZRekcKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9yZWQt
aW5kZXhlZC5wbmcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvcmVkLWluZGV4ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxODhk
MmQ3NWI0NzBkYjhmNzM4NjFjYTcxNTlmN2Y0ZDhlODIxMjEKR0lUIGJpbmFyeSBwYXRjaApsaXRl
cmFsIDE2OAp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXmozQ1UmMz94LT1obilnYSVtRj9qdUt5
VnJCcC0yXzFHJF85OStBWmkKejRCV3lYJSpaZm5qcyNGcHNsK3YrIzVxNFZII00oPiFNUHxrdV9R
R2BwKip1QkwmNHFDSCRXampQYSNwa0ghLTw9CnpNWSVJakhHN0d0dVBnZylNajBfSChaakp4LTlS
Qk9QWiE0IWpfYihAS3NGTnQ8MEhqQSN5fVE+cj5tZEtJO1ZzdApFMEZYNSV7UXYqfQoKbGl0ZXJh
bCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NhbXBsZXJVbmlmb3JtU2hh
ZGVyLmZyYWcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9yZXNvdXJjZXMvc2FtcGxlclVuaWZvcm1TaGFkZXIuZnJhZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xMWNiYTEyNzQ2MGY2MDg4NmI2YmI4NjA3NjRkODk4ZWJhOWEwNjdlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UvcmVzb3VyY2VzL3NhbXBsZXJVbmlmb3JtU2hhZGVyLmZyYWcKQEAgLTAsMCArMSw4IEBA
CitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKK3VuaWZvcm0gc2FtcGxlcjJEIHMyRDsKK3VuaWZv
cm0gc2FtcGxlckN1YmUgc0N1YmU7Cit2b2lkIG1haW4oKQoreworICAgIGdsX0ZyYWdDb2xvciA9
IHRleHR1cmUyRChzMkQsIHZlYzIoMC41LCAwLjUpKSArCisgICAgICAgICAgICAgICAgICAgdGV4
dHVyZUN1YmUoc0N1YmUsIHZlYzMoMC41LCAwLjUsIDAuNSkpOworfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVz
b3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLWNpZS1yZ2ItcHJvZmlsZS5wbmcgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMv
c21hbGwtc3F1YXJlLXdpdGgtY2llLXJnYi1wcm9maWxlLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYThiZjM3
NzE3OWViOWFiYjQ0MzUxNGM3M2UxYzFmYjAyZWM3MWU1CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJh
bCA4NjgKemNtVi1xMURwSmJQKTxoOzNLfExrMDAwZTFOSkxUcTAwMWloMDAxSGcwc3NJMk5pZXJ4
MDAwMDlhN2JCbTAwMXJ7CnowMDFyezBlR2M5Yl5yaFlHSEY5WVAqNy1aYlo+S0xaKlUrPExxaX5O
YSZLbTdZLUlvZGMtcE96emU+WVU2bzxiWAp6MWRCb3V5Ym99ZmZ9bGRFWmNhJkNOPHBNVmhhXzgq
aEE3ZWArKzY8QGQ8QF5mI2xfWGgqLTIwK0lRYTw5UENefUcKenR4aDhOIUdaN21oUXJ8O3UtMlRt
K3AkKClsb3s9SFVGOFIlVDcwNiRHT0tLfUdsPEs9Pkd5WDV2T0cpcGlHYTZmCnoxaSltfFh9Y1ol
IyFfNXAxSDEjeFZOJTgqWSM9JV9nI21GMSRtcUIqQWclJGE1NDt3TEpEe0Zje3M3ZFklM3B4Rwp6
X0phX19EPEQlcDIqQ283UVJOYmxDT0owJXQtS2lQcXg4X0lyZnU4RzhSayk8X1EkMTNNeTJYeWFq
dUo4NEBAIXkKenN7SF97d1IjPXBielN9JktNMitBdlkjY3R2VHd2RWBnSGFLWXdQIVpLSTdzRkhn
MmNXPkNIVWI4Xk5SajMqa0lsCnp6WHV4ZCohVGQrKmlOa3R7ckM/NjAwMUNrTksjRHowRD5fOTBE
Pl85MFVzT3kwQjNeJDBCWjtVMFQ+ZWkwNnt3ZAp6MDBWQEY8cmA3fTAwRkU/TF90KHwrTyRfa21j
PWojbFglfEV7alkxeTB3LX14YXJ4ZSl5Y2pTTmZ7PWQjQWZaPz4KenlCN2RaeElUO05maWZ1cUpp
akdDbDd9QENDSUtNbWp7eEx2TkR9fVVNd1hpKG5aTnQ4QGpSZ0Z2eU1jdHZlJCFYCnotMihfP1Jz
PSpoTHVeeyVEUGAzP1I1Jko3ZV4zRSohOT9nVGcxMVooQWZQTE1nJTVVSmp4Rm5aP0p9XlQ2NXxG
Rwp6Pj5VTGlCc0JKenAmdnhocUNnJlhuNUE4Tm19c0E+Nz8mdCpVKlJQSWI7NWJjTGEhRW5mV2pM
X2R1cEwzNlo/OVQKem9GeldXTiYzdmg2RjZsP2UzXzsrdjJgIzMhVnhyd0JoViUkcmQoPkEyaSgq
T0I8MHZHRjtRR2chKWtadFdHKG9YCnpOQyotWGhFUHpgSFlaZzFvUk5IUlRGUVo4RzZ3fDs+UWhY
OENSI0JhPXY1Q0khcX5DSnUzOHY2TCleb31jfnZIfQp6X1EqWGdhIVFlNk9yYUJgRXNoOU5pc1VU
YkJ2NEAjMTszPFlZcn44KmdAVXcpZ2NTO31nPFZ2bTMhP1QjQFo/QHUKejtZRSp3SzM2PkYlNmpx
PWlGYFF0aDVgIzteM2hwK0hBc3M0SjBAbCk7K05rNDxAYXtESk0rc1NaTlA5P3JfJE1HCnUmZE1D
QiZ+Vj8wQDIzKEt6cCN9Z05FJksze3tzTWBsKUh0ZD1AWHk7MDAwMDxNTlVNbkxTVFklKU5wP1EK
CmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zbWFsbC1zcXVh
cmUtd2l0aC1jb2xvcm1hdGNoLXByb2ZpbGUucG5nIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13
aXRoLWNvbG9ybWF0Y2gtcHJvZmlsZS5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjM0NTRlYzBkZDdjZWQ4OGQ4
MmM4MmFlN2E3MmM4Njk5M2RhNDM0MgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgODcxCnpjbVYt
dDFETzFZUCk8aDszS3xMazAwMGUxTkpMVHEwMDFpaDAwMUhnMHNzSTJOaWVyeDAwMDA5YTdiQm0w
MDFyewp6MDAxcnswZUdjOWJecmhZSEVCYWJQKjctWmJaPktMWipVKzxMcWl+TmEmS203WS1Jb2Rj
LXBPenplPllVNm88Y0MKenBeOElQJGZtPFphVEtiOVBgOU01Ulp1OT1BPDVSSHApSXchO3BZME10
SXkjQklPO3BOaWk0dHlxbUxrKzkyfXdxCnpDbFVPbkBCRF90O3J5VWRiREQwZXZJeWhVWHNfKWBL
TTNYUTE2NWBLcGQwNnopOUQtbHEkKkFMaUdiLWQwXm83Twp6WH1UQGAjKGJQPDFBRzhteShFdTgp
UFVpKyRxYX1xej5ZP2wwZFdKXmBxKm9MeEM1K3k7Wkp9Uzc1KVpUKzdDaHkKej98fEwrZ0FnaW5m
RV5YUzBAeDxHRmFRbWVQNHV1b0Zta2hBdVM9KD1xQ180fGErOGQ2eHUzPkxYRyhXWChnVFk3Cnow
OWFfSzZRdktrQ0xUenk/ZWcjVktgMEJHekpDMzhyXzQmP1ErQFdgZ31ERUhFX1lteFVeajs5Y0Ew
cj1hNk4oTAp6bW9pKTNnUWEhMm03aHZRUWJZczlkU3c2cjAzYyZYUWNWQj1oWUExeWoweWslXzco
c0Rnd0ZyfmIyfFY0Pns5PiQKekkrcCtkOVpVTjJXdFJXfDBqeDx4S34jOSF2e3klIyNWYG55Yzsz
elp1V1FXJEN2aSkwYFFEX3c3JSZvb2tiZVJvCnpwOyQ0eTdYVlBXSzh4dnJHQVJOKXphPkREaGN5
eD0wVStwKTBPVzUtNjk1PVNtWVgxJXp4JVRCSmZQfmNqenFBcwp6Kk1uJT8wfDtZUTFWbEdPWStC
KGRXentgWUkzYHFvUHl1d29NQ2RNcHdAZVpzcGV1aWM0fFpMU0UkZSZqR08oYyUKejt8M0okOVIo
ZEVIMT9SR0E0SmZpS3B1Nk5yQ29jTlhySFBXbW5keXQ7VXhpZSFnPEw7dU5Ib1EhVyV8PVlNfnwq
CnpgK0Fke0J8Z2VZYHBtPT1JQXVuQm5XaStjYnVhPEs1ajJNKiY/WTlQVHh5JkwrfCZ2cjw9OERU
UUN2JklZSW8qagp6RSU9czUyb2U7QVAqQnIwQ3NnXklrJGlBayU3SX1yMkwlZjFRJXJwKFN9YDV5
UlN6MSUqcztaflN7T1AqK3s0NnEKelJWSzZjJFVRQWBOfDlucnAlYkpuanRFblY8U2dES1ArPTRX
em9jVnAhO0NiQWcwelEoNiQtQ35UfnduQnFWYDRiCno8WCYwZk1VUjYlUzNLditkaCF5OWRecUBx
MHQ7WEEoT0c+cE5RKFBBQ1QxdCVtKWAmN19qYjVEXlVFUF56O0labgp4KCVFTHQke2VjRGFObWpW
cnhGI3Z1JDNmODhmckhHMHwyNnd5TT9DZDZRQlM5MDAyb3ZQREhMa1YxZ1d8YzhDQX4KCmxpdGVy
YWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0
aC1jb2xvcnNwaW4tcHJvZmlsZS5qcGcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtY29s
b3JzcGluLXByb2ZpbGUuanBnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5MTg2OTY4ZmJkMDMzODVmZGUzZDI3OGNh
ODBhNWIxZDgxNjZhYzMKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDkxNDUKemNtZUc+WWp7JnR3
KS1TKWwwSWsmRW1GS1FPYnBNRnc4PVNuWFF0TFBOdWYlaHF+K3lSZC1GSStRPEkhREljWkRQCnpL
QGIoNGBENmY8KFEmODxzUEspU2p9Y010OVhrcnJuZlllITJvdzxneWErbUM7Y0B9N1NXITU0P1Mx
bTlxVlViVgp6R2s+TiMtKEZ8IXdib3ZIP1h9bF9XTithZTtSN2BHaEs5eGxMYGYpMEx1bjhhaiEy
KHliJSVvcHghdmVtZ3BkTnMKenNjfWRPN3pJQj5VNXlGfWoqeVN+bW5ffislfUMyZ0shISNEKGYx
JUhEMkN2YmZJb08mNyF7PUpaaWVzTXNDeEhuCnoydSZaR2BQdWBWazV4NmJhWGdvNzxLaWt1dnE3
fmU5MUN6PU55Ty1Bb3NGaCN2e14rUFk8aXV8WGFwNVZgVUVBbQp6RCttWlpBPDYyV2BHaG8hdEZh
Jj84NnsySUQ5aTUkSDdWQipZRmQ2akJ2ZUtSUlVec2ptYjhvTiZ9e2dFTjVycD8Kej9ATFNydTVj
MlNsMExPTSs9dnFYMmJHWiQzZnpUajNoJHduczhwZCk2ZSZ1SmlifEN3I1U7d3w8KXgrTjxFdHR2
CnojI2RCU0ROOUw4ZjVnSnFBdkxDP1dLN3dadjFNZ3JFNmQ4dERsc1VsNnNzdCZNMWstLXEqTmRe
bmtsOCFOVFFecQp6Tj1rU2l4LUF1VVFGVU50QXc/MXhqRlNgc3JKenRJUn0+WU9Lc2J6S1FiOzFy
RnZsWFFmUmFpSUIhek9CcUVLM0AKejJjfVk1YUxxV24mXzNUPXEzJjREJFNUKXRlNCYyd2w8fVQ3
ZTBvRC0jVTYpej5lfVloTjZ6P0AjO2N4dUAkUEJQCnpidTl0Y28xMXZrZ3VNJW52WS1CRDw8NVBu
NTY/RENlYHhiUEZGbXwjO0dAc0JZPTNNMlV4eVkzSk1WcXVzaDQqagp6YDFxVzgpfW0wP2VlMGp6
KFNQdlI9U24xemZWQm4wQ2JfSzhOS0NrZjkjO1NzYmZfeHxuZE5JTHU/MjU8X01GeUYKekBmfUk1
U25Gc1c/QHQ9ZU9xRjIrPGtPNkE/Z2IrQE8kZkxhbjBXU1IpYFZ9alYwejkzO2F5WkpDMmNCRTlY
alN8CnpvY2R0dlR1PFlhJERYPT0+eD42MCpZIU1tVHRMRnhgMyQjYmUqMFEoIUVhbElKO3l2WmAp
PlQrPnlNdm5KWHAyMQp6ZVomNTNIP0M/bFp+TCQzZ2hScWZnKWNXcF5mZndVc2MmPV9PZUYmfW1j
VHJLZEQ0PzJrRDRoUSFtfktAQ0gxQmUKelVSa2I2LUNhbzNJRUsqaGpHYVV6Q3lwI2omeXNReGZk
RDh7M3VaRzsjYmpuK09oUE9lIVlJck1aNz5MJjJ0YiZGCnprZj0wZTxELXZkREdaX0MxVFo2bXIj
Z2tJYX09VTs3fElDNlZWKyR3Tms3NXRPUnxMajN5PTZoZnBzST9TNkJmZwp6Kk5adnJ3QEUtbldh
U1kzY3JgOWNad0RhdTJOd31jSWZRMEhve1creGlvN1RTemlQbGNQenAqMyM2cWJIZyVPWTEKejBQ
YGFiXyNEdWEoQm0rUTBXQShDNGg1a1UwY20waHo+eHtCUG5tPlUlZENZTjhhRHFNRGN2bmhrRUoz
Sl9+N01TCno9SHBWYUt5c2UxLTRDVTdKJiZLS3BAZjQzd1pNYGM7Ykl8LTwxfmoyXjctWEBve09m
LSMwKmNVRXlLc0EkJiEoPAp6cEdfYHwldD1DdDhxclE2O1FASVpXSH43YElgZWVQTGtUVndBMz42
RmlFdDwhVmBIZigpRzJpfVc5ezxANGEjR0AKekRXMDNmI0BLfEhYOUdZJEVsY0JVVERWdmcjdVV0
SGpEfVMzYEZyPFlubzJ9a1QjSCt2c2tDI2teRzh6TCRxK2smCnpCSilRMDdIPzwtdDwyOXRKK18t
fk93TWpgJismMHcxUz9jeiRSbVZ7K1BGbElKcldMT0pYSjFzZXMrY29IUlM7fAp6PXVKZzxLI014
cjFiKyRmZyZGY2xAZSpJaSE5fT00b156Rj17YHkmMjIyPz9GeGZ1MyE1em9jdnJUOFM5MkBLM0QK
emp6QSFOZ0llbjJjbkdMKCZgViY1K3JCUE49SWppdDQzJEViKVNWYHtJNnZ7KEw9MGh5JFlCWDJ4
ZmNMLVRWfmQqCnpMYGI7YD08VFFxX1VfVCRlc3M3MF99bzhXdzxpJks0VVJ+KDA1WExgdksta18w
RzU2cUVjK19kMVJEZWcrWE0kJgp6MUlBIU9MPX41alAkMzZ1TWgyYDxvQ0Qme0IhfDtKWCt0PW95
cllmaDwySjF9bWFPc09iOXMlUWkpeT5RYVY9ZT0KeikxbntPYjtySF8rZ00pWlZffXU4UmlGQ3pL
RDg8d3M4dWdBeF4/Y2pnS1oxWD9uJHVDSiMkPDlKLTdMLTBkP0pWCnpzdm1kVHh9KShaJVg/TWIo
TVQrNT4ja0szPHU8QEVTKnVuTjUmcEpYSDkwRyo3UTM1TjRsY299M15oeSpRfDtIOAp6XmVVc2lN
c0grSGo2dEpmYlVLU3hYViZVPCl3SVAlR2Q5fHlOKyZoNm1rMCFIOSVuPGtIN00xcCk3fFJvPlo8
OXwKeipLbW9EbWJPfjBTezxXaG19LSF5UEEta3stdE92SGEma3Q0bFRHPik7VyFgV1ZrKWZCM3Aq
aVNzfEgpZVBESkJiCnp3VV9pKE1saiZkJUVlKV5DeWZYRVN+a0spKiUrUyQmKGhjZEx9QChwRkRQ
NE9nejdBdDNgZUZDSU0/bUliY017dwp6TVdmaiFsRHctRXk3Njcob1d1KmEqMjU7YlJLbX0/ST5G
NHpuYTIyVkZ6M3pAIyRuQ355SUEtYGRGaDVRQ28zQWEKeklURWF3aHdURWt0VntzcGo9RmgmMmVB
IWxZMVJvbGMmIUAkS2RoJGRZVERkRj51cEE+JjB3aDNTIV9DO0RDKl97Cno7byNENWlsK1pjanUz
QDc0MHc2KFdyWUtOVGFaZ2N6MkwpZSlFaT44P1F1NHdSJU02QU1zXyU4OE8rbj8oO0ZSKgp6clVW
eFpNfVI/T24mYVVadkQ1OWdITzcqPkh8QSM+b3dhSntXS0IzNnVzTXg3diZtdip0Zm1JVyorQTN2
Y0dfVnYKeiohMzJqd1Z0dS1LeyorRG8wSWRXYTQyUSEyNT89Jm1ETHJHTSY4S1pyVU1WVDRPQnFt
VU9aMX4pd0VoZ2g+TE9iCnpMe2NKPWZ2SU0tOG5tPHlRZChmaTxwZ3M0MStnJFZuQEx4azNvVWlC
JlR4b0xWeWUta1ZUQCtUN1JYaSZ0UGRLLQp6WT04X2ppJFA9NT5tYnZCMUtwejZmSE82RTlqKCNS
N1JYa09rJTZwZGZDaFRaST47YnYjJF9ZJEE/cG8jPTBgZUwKenoyMEUzbjs2RG12S3BOX2xpNSkz
YXh0e3M9YHVKP0c+aW19WGpAYWJufmZ9WGhHOCgwIzJiYllvRiNjMnkmK3ZFCno5U0w0UE0xeyN7
KUVtP0VrPUBqckVHQzEtcHRHOEUxVlJWUUckVFRXUCgtSyl4eyglVDM+c1heT2R4YT9Jc3oxYwp6
S3J2WDFJcyYxaWZJfkx7ZkA5MmphMnRqbzU3M0lDMXRiQ0R3KUVnYzN+PylaYTR2Plc3YSp3JXR+
Sm1HOzk+flkKejB1KDdgZj9GYE9mfUg/fmpNV0lablphfjMzPEUkSUVDWCE/b2Z6Vn1SdHY2Y3dP
fD5tMTxQMmlNOC0tSjlCWj1ACnpaNGg0c0N2fndVdXIhITdGclhSOzAqeSZ5KT50JUY0WS1EO0g4
aTg0XiV+bHNmZEt7fitOXjxTVV9jZ1AxVlJMJgp6I3xWSzBhUjRDJGs/PHBuLUNXT0Q+eTVQQ1dI
dmtYXi1jIUQhfHJnXitaX2hsVllUMkxMITY0VSElMH1rbVp0WmgKelgwe2BaTVp6a3c/JUtTNWFa
MzJ7bEUoKHJYPiN+ZClCbXpsU1g5fjcjPV53UVVrU2dxeW9xOC1GMzVMejZSYlQxCnp2LVBgfFM/
I3g0JkJnRlBmdD1sT1peOD5aSUdhZTtzKUdxR3N1R3ZQY3Iydml4cGFaN2tLZHs/PkZ2eV55UUNX
fgp6eTkpbGorPmpte2YxNVdKViZST1ZScFZaMEBtVzl8Uz8kKmNvJCZJYDRIPERiajlAZi00IVNP
TFN7ZVAwZFNLSzgKenFhR09iel5EZ0NKQDhORGYhc3xCOC10QG83dT1Id04yJWxSQUY7S2BHcTBn
PmoqREZTUTE3fiU4KEppQUg2TS1mCnozRDJ5MCkjND5Mc3BSfE5yRFl0dkwlezIjKlBvMnJvMHtn
cDRHeE5sKlFwcklCKUIqX2NSOypaLWx4STNHSz8keQp6N1d2fXxkO15TY1BOeE9uTWclVTNzc0lt
a0BvfUoyY0t9fFEwSFhsXkltU2FHejhUe181cjJpcXcwSW1LXkMhVHwKekxWMzZeNTlpX2I4dS1Z
OyNnfiUlVHp0YEVSTHkyJWlMZ0pGUkpweU9TUEdzQUxfNHF+RCRmM3NDZEwwaGZjLTNMCnpKTEA2
LXFwdGM+al48bUIoMm5+TXN5ZFhUUDF5aTxiWn1xJV4zRUtNK1gkfmlAQ3FqVnhqJldZT2p9MSRm
NmpYcQp6ejg8TEp0RlpYeWRQUHVAT1ZWdTB0QkshMEMwV0xtQjYrWEVAUWoqITZfJnhQQFJNTXNP
YWQ+UCooNnVVM0paIykKeiNxZUdadWZqK3NoNCE7ZFVgZ2M/MXl6S0tPQ1V9dURaQzN5dXwqUERR
SHB7V1ZgYnF1Kil7U0NIQiEpKGM0cVNVCnpxV1NlI2Q4ZzxuY3NpQz5gUE5Lelk8JUpMRygpMHo7
djBMNih+bVRwUi05UztxX1pYSVlCMTA4JnNlWjwoYlhAJAp6eCVjUiZmeEcjMkU3P3VJKn0zbi1B
NmtORVFgY0g7dm0wKiFfbE1mVD9WVmxTT01DOVFfcjZ2NEtrKDRRa0Y1WDIKenFtT09nXjM+RE1Z
fkErS19McTBPXjZHMjUtckMqJmAjPTB+VkU9KUc/O0x2ZnFyWk45PzMyT2NwQURWK2VFNXM9Cnoo
MCUtbFRfN3ppQ0A3SDAzWnIxTTY1Zz4zWCZGKmkqeXFhYFopSnl+ZSk7NHo8MkBVRlNMdXNobkRX
TFJOODxFXgp6QlAkSD5vTCVMMm9fWEBjWH51fnlDUmJwM2Fxe2tVNExyN1kwaD9OQVVVPzVPYDBO
al9lcldTY18oQSgmQGtNKmEKenRWS2FmX0U5X2NxQ0k8WVRsY0Q4Sm9DISQtfXorTitQRWFWXiFg
Vjt6V1JxbGdJYD4weVd5dHhvKENTPV9TenJjCnpKJGA9ViF9R3djXkcrXiVSelMqQXJ8IUFxd1Zp
OHJyNmtTVj1MWkU7KFEkRmRfTCtPMWBSYVZBY1NIQWkwcXFkYgp6emgzQ3U5XlNkQj5PY0N8LXxS
b0g5cXR8ZTwrNUczemlAVWlhJngpSWImfjZVeCV9eWQramVmOUdfKzRacFVHUT0KencrQytkVipr
WjIyU0l0cSt+K14pX2BaR0peOFI0fnQ9P1lKemgoWkpUSyY4V2IrKl8wUDZ9dyFmJDMjR15LSVN3
Cno+NF52S29OIV47YUJ0XyhVfVE8Wj1iPjgjXndWWCNgP21oejtDb35HSHlNdXtTa15QUmFDUHMp
SGV0YGVFeUw5cAp6YHd0JmhTbWVMOU9ua2EyYURMaEEwKHhMfGAtSWd1ZTBjT0h8TX0/Z3kxTCMp
MUI+NH5hZ29AcT09K3VKZ0k8P18KelN9I3QyfDNYaHx4JEBqbGI9fjEqSkVVTFRgRiFfPXBBRyFt
JkBiUWJTK0gzXjZWeyghLTc0JUkyLT03MDRoWk8hCnpeemRRSD1AVmxQcDhvOWNebkRsbHpDODdw
P0tBdGdiVSs2Tkhnd2w1dGg9bDN4ZXNuJXtKNGVwRThkIVNeVzt9Ywp6YHE3MURAQVAoRmNjPUY1
UmJUY3pAXzZzKGhnWCFwYm5PMDVfU0R3KXtRMT1UR2Z4UW4ySE5LaEtpQnUkcHxkQigKel5pJXV6
VVRGOCVjVyU0MmNJTjclZ0IhVTBVdEV8cUlQfSRwK0dwb31mOHR4ZThgQHBoZkFIKihmTnB1Y0A1
NTd9Cml6aWZIX2p2RUpGeCFDdkw8ekY1cWRNKGVyY2NBcXJnUlFOP3E1bE9LVWJZYmMKCmxpdGVy
YWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zbWFsbC1zcXVhcmUtd2l0
aC1jb2xvcnNwaW4tcHJvZmlsZS5wbmcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgtY29s
b3JzcGluLXByb2ZpbGUucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5MjI2MjczNzY4ZTUwOTVmMjMwYTM5ZGNi
YzM1ZGY5NzNiZGVjMWEKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDg0MQp6Y21WLVAxR2ZCJFAp
PGg7M0t8TGswMDBlMU5KTFRxMDAxaWgwMDFIZzBzc0kyTmllcngwMDAwOWE3YkJtMDAxcnsKejAw
MXJ7MGVHYzliXnJoWTdpbUw3UCo3LVpiWj5LTFoqVSs8THFpfk5hJkttN1ktSW9kYy1wT3p5LUxH
UzA3bFFQCnpnNGpXZTFuR0RPYWRJZXY7SHJWQFY0eCUhbDU5O0hWbkNCe2JLPyY8M2E7SlUxaUAh
ZWNoQD9KZjxBPkhJeShlTwp6OVI8JkhJTVc5b2gmUmpXeVI4bCFXP0k9aCt0VHZgSXJtSlBCfDVh
MjlZJHJiSDVsdnhXTyl8ejh2JFEwMiFOK0cKeiVqdnVQanJwaWg4aDhnKk17eVp9PW1NaS1VMSQo
emZUMjc7MDVKeFByMWwlWTJ5NEZ3NENVRztoellRZU9uRXJ2CnpJekdfPVc/cjFDR30rZzN6MVEy
MnlLJHp7czRBczNPdFB3a2RJdGIpR2U1fGNRPX1SSGl7fVRqd2h0UXRofi1Kcwp6IWJgWmpmYk1K
NFI8MjwyOUJ2PCltUzRsPkMoTWthTiooPXRBfEFnMUsmd1pgVUEtWGkwMDAwV1ZAT2c+MDA0Uj0K
ejAwNGw0MDA0Q2AwMDhQPTAwMjZkMDAwK24wMDg7ezAwNG1LcGx9OSowMDA1M05rbDxaYy1wakFO
MCFBZjIkT2k7CnomSGIteSU+cE5KT0w2KCRxYFZqfjVgdklfMHdBR1NGfW9LNFBgRXllPjQ3cFMw
ekFKWkskMz93NSsoczQ9I0sjOAp6WiU3alc3KUYreEFlcTFXdmhoNWk+YSZoU3UoSD5LWHgjJHtW
XiMhMkgkIVklO1ZFVStKeWJYKlJEVnpiYmlxWEUKekVgcW1BNStJLX1lfXhaclU1K2o1ZCtqbz9w
JVVXOzZ6bS1aOVY5Z05uNHVwOyg0cyZkYihwMUhkemZnU3N1LTZqCnpaQ35MZjBkPk44JHdJRmRl
dF5Pb010Zj9aQ0tMTzVsYmpfISUxUWRuIzFsQVdNdHFzM0dfaUZzMG0yYjloYT1EPwp6Q1o9MyFv
Q248MDNNQSMmRWlxQUNPVCVoKz00MzdTbVBpTl42b3lieCg+NW5tYEo5bl9hOVlaTlZLTjU9M2hH
bCMKemVJe0JsOXEzZ0w4cDdESSNqYVd5SXoheVUjQ2NVRnYtWmU2RXBrZWNWb2FlRXElRHBKUTtP
cyktWHVfQTZhfk1lCnpWezV+Vkc9K2sraGxDWGh1WjNNeXFZSSs7TWV5V2FTPloqR2dGYVYwPWdO
Qlc1e1l+YF89Vy10VS1IcGVlS2ttbQp6YCNVQ1BDKnFnaHxLO35+eEk2UjlBI0syTFNmfHEyWDNv
a1NzP2MhWGlTTVRwNn5DflJCdUUtK0h2YTx2cUxqT1oKVHJzKSUpMDAwMDBOa3ZYWHUwbWpmMmRH
OyQKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zbWFsbC1z
cXVhcmUtd2l0aC1lLXNyZ2ItcHJvZmlsZS5wbmcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdp
dGgtZS1zcmdiLXByb2ZpbGUucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3OTJiMGFjNTcwM2YzMDY4NTZkMjI4
ZjEzNWY0YWM5MmZmOTczNzEKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDE5ODUKemNtVjt5MlJg
X1RQKTxoOzNLfExrMDAwZTFOSkxUcTAwMWloMDAxSGcwc3NJMk5pZXJ4MDAwMDlhN2JCbTAwMXJ7
CnowMDFyezBlR2M5Yl5yaGNrNyt8Z1AqNy1aYlo+S0xaKlUrPExxaX5OYSZLbTdZLUlvZGMtcm1Q
WWMhTzM5MCYwNAp6N2BLV2ptbEMkZ0J9SXhNbW9YUjVGc05pQlFMP29SUVZpM35OVlptNkMjVEQ1
bFA9cUJCaHJQb2kpPXwzPjR1VU0KekhrR1ZQdjIwM0dSSEZhQj08SmJwK3dEYz9ZJWlZUXRLYWBR
Jit+aUVeRXt2UHxERmRoSGx5NXlCNHElUTc9X0h3CnpRXj1ZPEN5MXExaU5Wa1UwM2J2eG1yXnJr
YztsYW8wZCFZYDBSVUNqbClGJm1tJTYxWFB8MGBMejNabXV3UjQ2eQp6O29vYkJTU25LaDQwUWw4
VmN+S3l6KnFga1QpYVo2MDJ0ezJiVkgtMDNWQExaS3Z4X1k1KFkzejA4RjZSTEt9ZWIKejk4bGQo
djQhaytkUnNzfThCcENXV0slWVBtS21UMUEpOHtxKTd0fDJXYEcoYihRKUdiPVlkOWUlJmVJSmB+
Vm9pCno0WTgwUzBXdkphMHpeVXE3VEI8WDRjSzZUTEt0RVppZzIobjZBNiQqZnBBRDUyTWJkVzEy
Sk1EZ0F9b2xBcHtEOQp6Qk1jdzlwOVRPVWd1QHpnX2B3c3gqPmkkZVolXnhnJE5rNWNgVCl9b1B9
KFB0dXclY1NyWGNgU1k2KkVaN0VudDgKemBjZXNieV9iLV80MWllK1R2I2xqZ2UoQUhHNjRXQTBQ
WC0zZXwtPmZvTlVRfF59c2pmSz1jd3xvSHhNVjUwcEx6CnpoVW95emhrIylxUF52Pm47WjghJU8o
dndJclQ8ejYwN2pIanJMdnQkaWZYR21YVkJXZzYmbWBRdnhjVDxVRDU2eQp6Wm1LZz9TRTg0IXBF
YVVqPGFMQUZxdntNQmpwfmk+ZW87UVVrZC1yTHZxYCpaZlNJa2l4X1FtbWdCRyVKUFVDdlUKenBS
JHglamtVVHhWWVJpamI+JjMpQjwpR3JIVWdVcCtqK0xGPj1eYl9KRT5pcGVXLW8pV1JKLXc5RT09
UklXIyVDCnpJcXFAbmNBRG4mbFQofHNnTDkodUM1fCUzamtBSzImdU1vVjxLcFgqPXlKJVYhbGoj
UXo7KSZaYSVKM1BaVSotaAp6eDBITDIrcypAVElNMG1kITFMay1AdUdRJnlqMCNIVUo8WEJfbGpA
OGNqMz9IdWkrbygqOWtOUTApYXdzU2tVNVgKej9pJTVtP2I9Q2tzZFpHMWFIMjN0Kng8JUBPTEpG
dGs5Tk4hQCk4d3oqbX5yNmpgeiY9dmhnfVNNS3E7KT5ZezFQCnpYPSZhOT8rNFNyX2leLVRgRXU2
YGVfdzZpbnxAbm8maHhrT0AwKFFfYTUhLU5Zez93fEFpPjs4IUtQbXMlYD0hawp6PlQ2YnJSVllY
NzZTZzNIYjtTTSFXc3hyeVN3c2EjWjxTUVY+UHpQPiZYTSZoWDJ1PGZBRyViWVBgN09RQH1ma30K
eml1eyRfUmhMKSRCe2kqQ3pScUMlbmRIelB2XkhNWTZ1O1NpT1ZfcnUrdD08NCtISmM+R3AmOF50
O355QWM/V1YxCno5bjh1OElybkpjQHlaaXpDa04kUTdYK001SSlEMVl2ckJlWTV7ZlRoKDxfVEVG
UjhHc08wQzhuTWF8PmlCPXcjNQp6emlsNGNsSiF2ZHNPaWF1UFZWIUw3ZGJ1QWVRWksjMyR6OD0w
JlVAYTMhZiZKNV57bTRXcT9JSHp9RXZ4Mztedm0KemZZfUhianMlSitMVy1zbmF7ZCh8Kk1leih2
X0U8O3FBayFDWGJUX0FCX1p7cFQtcHd4X00+dTFpQlU0KHVVQ210Cnp7TkIyUjVNb0xRRihRUHhl
YXVXSEM4ZEVRMDdQXnxiVlBMY3lvfXRHXlcldEBtc2lmYzA5LVhxazBpdj1Wb19ZSAp6bnA0Uzlx
dkw4QF41PV9vWGwpRDFkXkZKY1hJbTIpam0ka041bygtNGhDPkV4cyV6O0ZiSUA2K21wZjgtUkVu
fFgKej1vWFZRXlpNfnQ2VkJNQStqbHVQMj97KC17TiZMQU9JPXBuTlhsUlQlU041ZSp0VF4/Xlh8
VTE9OFN6PSlQY2ZtCnpsZiNsRDhPSlc9Ul4/VG1FWHZPO1NiQTE/anVmNkszY2xFVGRDT0pQO19P
bihZbmYkd0gmJk1hZSQlNU95fFV8OQp6KFhFWnUpcHRoUl57PzQqP18ldzxJIyZJWmhTPGhVX200
ZCZZaWUlcFkwKyNvez1AUjJlSC1AP18xTFo1e1IhMjwKemQrTnw+e21rVUtaa0l+ZV5YYFRoKkko
d24rU1QqallqTGxyJi1ATVpPIz9ZWUtDN1pGJj16UDV3MXhOVSk4d0NPCnohb2FabGA8anM2MjEw
ci02NEt7Uz1PNjh5LXQlWSt2PDJHMnw2UDlxK2k3SUNNSSNpeTAwMDBXVkBPZz4wMDRSPwp6MDA0
bDYwMDAwMDAwNFpuMDAwM18wMEQoajAwMDAwMDAwMEFTMDxpczAwMDUzTmtsPFpjLXBqQU4wIUFm
MiRPaTsKeiZIYi15JT5wTkpPTDYoJHFgVmp+NWB2SV8wd0FHU0Z9b0s0UGBFeWU+NDdwUzB6QUpa
SyQzP3c1KyhzND0jSyM4CnpaJTdqVzcpRit4QWVxMVd2aGg1aT5hJmhTdShIPktYeCMke1ZeIyEy
SCQhWSU7VkVVK0p5YlgqUkRWemJiaXFYRQp6RWBxbUE1K0ktfWV9eFpyVTUrajVkK2pvP3AlVVc7
NnptLVo5VjlnTm40dXA7KDRzJmRiKHAxSGR6ZmdTc3UtNmoKelpDfkxmMGQ+Tjgkd0lGZGV0Xk9v
TXRmP1pDS0xPNWxial8hJTFRZG4jMWxBV010cXMzR19pRnMwbTJiOWhhPUQ/CnpDWj0zIW9Dbjww
M01BIyZFaXFBQ09UJWgrPTQzN1NtUGlOXjZveWJ4KD41bm1gSjluX2E5WVpOVktONT0zaEdsIwp6
ZUl7Qmw5cTNnTDhwN0RJI2phV3lJeiF5VSNDY1VGdi1aZTZFcGtlY1ZvYWVFcSVEcEpRO09zKS1Y
dV9BNmF+TWUKelZ7NX5WRz0raytobENYaHVaM015cVlJKztNZXlXYVM+WipHZ0ZhVjA9Z05CVzV7
WX5gXz1XLXRVLUhwZWVLa21tCnpgI1VDUEMqcWdofEs7fn54STZSOUEjSzJMU2Z8cTJYM29rU3M/
YyFYaVNNVHA2fkN+UkJ1RS0rSHZhPHZxTGpPWgpUcnMpJSkwMDAwME5rdlhYdTBtamZjZXxwXwoK
bGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFy
ZS13aXRoLXNtcHRlLWMtcHJvZmlsZS5wbmcgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvc21hbGwtc3F1YXJlLXdpdGgt
c21wdGUtYy1wcm9maWxlLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTA0ZTg5NTIzNWM4ODVhMmZkYWFiMjQ2
OTc1MWU4NzNhOWRmMjQzCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA4NzEKemNtVi10MURPMVlQ
KTxoOzNLfExrMDAwZTFOSkxUcTAwMWloMDAxSGcwc3NJMk5pZXJ4MDAwMDlhN2JCbTAwMXJ7Cnow
MDFyezBlR2M5Yl5yaFlIRUJhYlAqNy1aYlo+S0xaKlUrPExxaX5OYSZLbTdZLUlvZGMtcE96SjQ/
ZjA2aE99eAp6MlRPJEBIMGIobXgpZWZ7OytqNFhMOFoxR2w1RVhgYGsrYnBeNy1ofUEwY2wzMG9A
JU85USordDFpe0lsOzNoYVoKekkwT2shQjZ5fkEmdjNiTCFCfUBYdCopXlFsU0hmamMxeWFSRkJo
TXZ1dGJkfW8xLXcjb0wrQWlBVzQmJHA5dUpQCnpLPiQ0MG9sZExFLT44T30oIWVMc2h+aGoxVkZT
VXImTlBUQ3p6Uis+NGRNb3spVWUrTUBjQHxQIXNtYik2I2ZkQgp6JUpxQkBaLTZ5K0pzJTdKRD02
Rm9FRkU4SGZPZVdxKXpTRCslWjY+Kyh1dlhfbVY7QG88NEc9ZWt9eT9Tc3p5NEYKemZaeyM/RHVj
Yj11dj41US0/Kk1IM3d1OTYwQWdpY3d2ekJ2b3Foa24qIVg9ZWNOfH5CKSp+IzskYDsraVRAX1lH
CnpXbX4oM1NgK1R+eld7bDdQM2htPFNlcE88MDNjJlhRY1ZCPWRMO2s9ZlAoLTRfODAmRmd3WCYx
Y15Mb3o9eGhLMAp6SmN8R1Q4KDZ6TWlrPClmMGp4PHhLfiM5IXZ7eSUjI1ZgbnljOzN6WnVXUVck
Q3ZpKTBgUURfdzclJm9va2JlUm8KenA7JDR5N1hWUFdLOHh2ckdBUk4pemE+RERoY3l4PTBVK3Ap
ME9XNS02OTU9U21ZWDElenglVEJKZlB+Y2p6cUFzCnoqTW4lPzB8O1lRMVZsR09ZK0IoZFd6e2BZ
STNgcW9QeXV3b01DZE1wd0BlWnNwZXVpYzR8WkxTRSRlJmpHTyhjJQp6O3wzSiQ5UihkRUgxP1JH
QTRKZmlLcHU2TnJDb2NOWHJIUFdtbmR5dDtVeGllIWc8TDt1TkhvUSFXJXw9WU1+fCoKemArQWR7
QnxnZVlgcG09PUlBdW5CbldpK2NidWE8SzVqMk0qJj9ZOVBUeHkmTCt8JnZyPD04RFRRQ3YmSVlJ
bypqCnpFJT1zNTJvZTtBUCpCcjBDc2deSWskaUFrJTdJfXIyTCVmMVElcnAoU31gNXlSU3oxJSpz
O1p+U3tPUCorezQ2cQp6UlZLNmMkVVFBYE58OW5ycCViSm5qdEVuVjxTZ0RLUCs9NFd6b2NWcCE7
Q2JBZzB6USg2JC1DflR+d25CcVZgNGIKejxYJjBmTVVSNiVTM0t2K2RoIXk5ZF5xQHEwdDtYQShP
Rz5wTlEoUEFDVDF0JW0pYCY3X2piNUReVUVQXno7SVpuCngoJUVMdCR7ZWNEYU5talZyeEYjdnUk
M2Y4OGZySEcwfDI2d3lNP0NkNlFCUzkwMDJvdlBESExrVjFnP1Jafl8xVAoKbGl0ZXJhbCAwCkhj
bVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLXNyZ2It
aWVjNjE5NjYtMi4xLXByb2ZpbGUucG5nIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3NtYWxsLXNxdWFyZS13aXRoLXNy
Z2ItaWVjNjE5NjYtMi4xLXByb2ZpbGUucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwMjAxZjExM2ZkYzhlOTcx
ZmFhMTdkYmZmODk1NDE5MmVhODY2ZmQKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDMyMDEKemNt
Vi17NDFWKjhQKTxoOzNLfExrMDAwZTFOSkxUcTAwMWloMDAxSGcwc3NJMk5pZXJ4MDAwMDlhN2JC
bTAwMXJ7CnowMDFyezBlR2M5Yl5yaGhQaWFGI1AqNy1aYlo+S0xaKlUrPExxaX5OYSZLbTdZLUlv
ZGMtb3kpWEgtK143Q3JhZwp6Xmc+SUJmUnN5YlFXWGR3UWJMUD42cDx6PkFxZnlsaCN7ZmI2O1oo
dk1NVlN+JGVAUz1qKmZ0ZzY7VWg8aVZEflYKejxSUE10Z1FKTHclS1BEYXFpZmNAX3ZYJDF3Yndy
OXRuOzAtJmotSz00MzxiVVE4aj1Kc1hgdFI7RGc3KyNeS35ICnpLIUZNKlp+emJwdnQlSzJ7VVpT
WV88bFMqRDxaJUx6NW9HdSgrZGF5eiloUkxGZFQ+ZjU5JmdoVG1nV0QwbDsqVAp6STc8a0M2YVlZ
YWp6WHBZS3Q9KDhvdFAkNTBINmNfVjlSNC07e1pAQzBBTUc3PUY8UnhvJW9yMTBSVVQrQXIlM2oK
emtwTGhRV3IjIW9YZ2RJYCZzS14+MDlZXnA2bFAxcklSTXgjMDVDfmNXPUhfQXcqYkotNURUJloy
bit4KVFIWF5wCnowMGVzZ1Y4fG1RY21SWiUwMkReQFMzTDE2dGBPJWMwMDROSXZPS3ZZSVlvaDYy
clkzM1M2NDBgRDklWTJELTw/aQp6MCU0aiFGMlpANDg4VSUxNTgoNjYwMDV3bzYlcFdyXlpqX3Y0
ekFBNUhqY0lxVW9HbXQyTEI+clYmbmVoJiNRMWkKejAwN34xZSRvQ2NGUzhuZUl8aEpsey1QIUIx
Wlo5aHBtcTApWDBpYEp3RSY+JCtFPz4lXzxsUypNV0srbisxY2dmCno8ayg4WUxSKD9WU0FHNngh
ZTc4d3tjUVB1SnBBfGQ7SilHe2ZpaGl6TStFcmIhcCF0Y3I1dythMzR+KFk9OHM0Rwp6dytzTEw5
biZKak5uKktKRGlxXlU1XjtgMW52Qy1AcjZQJCFrfTFVeygqST1RLXpAdEJLSG9JfXV4ZFU1ZHl5
QHUKelUxSjBHT0Q3T21iaW1eRzAwOHA0Wl42X2sybV5wPGdXPUQyfEw7SGpOMSFERGZNIVhPYVIy
fmJMP2tYJCVDa1NtCnoybWs7P3BuKW98S155ZUo3JWFkQjlLaStMITMrRmdIaVNZWCNLSi1sTEpE
TW45Q0JiT3RiIyUpaFJ2YFlEcXRfdgp6S3BpeHxRRH15ZmExSmlRUmsjajRhMVopbjIlZjx4eW56
Vj5MQzZSYlZJa1V4MGIrXytCYVIzY25UN1p2IUFKeFcKeml6RmIpaCFqeUdPT1o4NUY7YT9EQVhQ
e21AOyEwX0lmcTxFeHsqN2AwNVhGN2hQKzJIbCEzQlFKPTZAZkwlRkNvCno4aVlvbzMoI2JBRmBB
RFNwcXRRZ3Y+SDgoSGxnUnh0N3MzfWszS2BrRnU+Pi0yUSRRTUZmUFchTGF7aDMzNm8+WAp6dV9D
TXR0SHY2elI7JlpOaVM9WDh2M0NSI2ZrblV4SFV4SjxBWW1Sc05MV2wqUFN7QU9BUkh0IzUhd2tp
Mj9LO3QKeiFZM2s9czd0Z2F4KUolcjctQkxwaGdlN35CaTBnKzZFNl5aaChwOVRCb2N7M0dBRnJe
MCFndT9STUhhQ00kJkZsCnpCazMldW4+MHVvQmFfTTZXTldlcUlnfjZRRTY5YzlvI2V5aEd2cGlP
QUBXLWFvbms8N3IxKD9mQ3tvSTVOKlUhNAp6PHV2NjZXdGNLU1JpbTB4LUtlMmQ1akJybUxhbXs7
UW07e21zMXIxR25tTnNiN0QtRWB0KWk5RjhmWGAyX2kzLV8KemJoOzdVbF4jeCkme3h2Uz18fHw3
PW1ZZTMzPU1gQWdVNSh4Qz5mZz0yTi03PWNObmpqT3J7eXJpeTZtTUZnRyNsCnpuQ0Y9Zm5RdjhD
RHorK282X0xzY2x9ZVErbF5aSEFSSD4/X3NAfCMjUnI2S0xSRkExJVErPSpSUldub0xzUmA3VQp6
dDV2RjxRMHI0MFEpajY9c0U0WCZzQmN0MXE8JmZiaTNWQjJPdjZ0QHEqMCk7VSpvKlNBUFp2fHZ2
QDJhWVluVDAKemIlOGErQ2I3LWdlMEQwa25FZjVRaSNAOFRwKmNle047NmxwUXVDQiVLTF9LT2Fy
bTVjUDZfOElyPGUxN2lyeTZPCnpEZEgmYHJaaH5zRj1icTlzK08wUVNnU35AUUw5Sm15Kjk0eHI9
Nnl+TVl+ITFmZXR+KE4rKDw9TWB3QEQxKWIrcAp6KjtDITgzYTF1TEp2I05TRX47eSM4PTw+SWNm
VzNAP3dGcHdVVnhyVlo+UWRRejMyS0llSn1rfntjWlpFXit5YT8KejJEMXojMkhPbkk3KEIlX2Fj
P3t3RlVRO1FRQTF0Qkt0cldybTBfM1JncHMrP0pmcWJ7alliY1FYfnRhUkI7IyR5CnpaTntTfTF8
fWdVT0hKeGM/d1YzZnh1eittSjRgIUYkSVo7bXFSck5zSEpkIyMqRH5qdT1iUDc/LT92fnxjdj52
Qgp6c0o2SWVOd1ZaeHJkalRgeWwjYkJJYSNHeFJhI3hNTXk7SyNDRHl5R3lRZE1TeGxXVCN0RGU/
cCE/NXdUJCtvR3QKejhMO0twMkhVUS1aTUo9M1hKUXY7eDVjaSo/dnVUZmVZJDsoe1hHV19odUlG
UjlhPGZKYkZefDRJI3hRfm4kRGM9CnpLWWhqWW1nejVOU2tEbTgqZlptezZVITtZWGBORz4oP0Az
KVhTczhPXk41UnlPTT1UVG1wKDM9OF4renB6MnIpQwp6Xj5KT3tkZVpmc28zb3EzP1dvKFk/bCRn
ZT91WG87JXJ1YFZvPj88PCg4SV8+OzhFcSNLTVM5Z0ZsKm5lZW9zU0IKemZvSFluQlFJa3dreW93
UHUoemRtc2Bwezw3ZTRrcmEtWldxPDIqT3NHVHZFViVzMFRkJGhYVCshKjhCbmgyS01lCnpCbVpS
b2RqSFY/citfNV5YOUowV0w0aktXYH1sZiVBLXw0NElAQExUdmYxckhqRyh6ZTYrd0BKdCVCdmp0
cyFYMAp6PzJ4Uz9fdmVfLWs8TXVqZzswTHoqM2J1Rz0zJEcmZWhlcHRobE4qJEthT3lTU1Febldt
bzwwTSsoVUVVTUVYUlEKek1CYlpjRjs2K0tFbE0+aUtCX0tpSmxaJDlHYGNePUVAb05HKW1XV2FO
by0zVElXOCkkSGcwVWItfjg/S2h2Sj4kCnozKiZuaW1AbWooYUN4RTUhdHtsdzdPNV4wRUlPN3pP
byZjNmw8K3xpRHlTQldDR3J6QEM1e1N0IVgzaEFBfWBUNAp6KFRMYlhUcSsoO0A8PUw4ZFhuc3N5
ZnR8dyNXU1RXPCsrMz5zZ1MlKDROVHBlSS1WQXFifDdzc0p2ek5IZ09aVnUKemFZQ3ZnT19SMX4+
U3lMPWNGVXx+Z3xoeXxaaX19czkrZH5sWXFPQjcxejlaJHduQz1wUjlZejREaElNPldtamd1Cnom
NTZvNm1hQ3BDJkYjI3klRzsxUG9iUjlpP0duTmc7Z1l0Y2hEJXAxOWEhZVF0WkYmM0phS3YzM2da
PDhEfjQ3RQp6dFVTMWl3a21EYVBwaj0kbSMlKWpDVkVZNGZuTEdOZzJBLWBZd0hWRDNndn07Pilo
QXZUfkFtcVM+THJgYGk3a3cKekp7NV9JdGB5ckJtbGMyNURCTzdFODs1Vm96blI+V3c1aEFheG4k
Mn4ocWAlQS1ZdVM2NHdrQnk9OWRtYDRjWGVYCno0Y31JQD9lK0ZXK2JAXlJEQkhWKHduTXEyemRY
M1NXdjl1YCV7eEMtcSpVfSZgY3lYViglclJUKlo2TUg/aStpJgp6X0I4QygrZ3JUJXtYV1VRK2ZA
Tm9QMVI9QVcmMjZ7di1keClpS14tTm1pdWo4dHhqIW0/WipTczFOe2RoNHp9MDEKeilZVG8qSnlj
U1UpK181cjQjeXc5eys7aTRFZSRwZVJnSWorO3Y7WkdkRjFLJDNFJWV+NExhSShqQy11JTJoJCZS
Cno5Y0xYY1lDQFh3bm5zJmJuKV9RflRlP3JvS0dEfGQtZ144OythQ3t7RygxXihPN20zN1kxLSs2
KTAxY04meTFhdwp6b3Fje1RgUF5YSnFQQmJJVzZzfWQ0e3pfZjVPbT92TWdOUUVKRz92MlQ9S1lk
XjBNM0k2SVp4Ym55KSV2WlImTEQKekpwUGxAUHNoOFF5UEJAS1R4K0BSZGNDIUtYN31rRW87U3xq
XnUybFU3WFF9T287Znw7ejRMbCtfcj5AMS14bDN8Cnphd3EtSCVlJmNrQytAQWhQclA2Qks8ej08
TCowa2ZLVUBDWCp6ZXFiWVFUNCheVT5UI19YZFQ3JjtGNzFqfUpveQp6a0N+NmxoN0VANm87V0Be
SXBSTlp7cHRMdEwoZ1EtQ1l+NG1xVztVUzdaeHZtX3xAeXomZTUzQnBfbFRQbGZQfHoKenJUeXhf
Pmx2QHgjPV4hUHpSN3FxRjwkZ21gfFpKWis7PClDcXUmb3Q8YXs4MURGMH5ydkdyNVhyfjh1YGxh
djFoCnoxRE55dFY+Mno9MDAwMFdWQE9nPjAwNFI9MDA0bDQwMDg7XzAwNG1MMDA0Q2AwMDhQPjAw
MjZlMDAwK25sMyZGfQp6MDAwNTNOa2w8WmMtcGpBTjAhQWYyJE9pOyZIYi15JT5wTkpPTDYoJHFg
Vmp+NWB2SV8wd0FHU0Z9b0s0UGBFeWUKej40N3BTMHpBSlpLJDM/dzUrKHM0PSNLIzhaJTdqVzcp
Rit4QWVxMVd2aGg1aT5hJmhTdShIPktYeCMke1ZeIyEyCnpIJCFZJTtWRVUrSnliWCpSRFZ6YmJp
cVhFRWBxbUE1K0ktfWV9eFpyVTUrajVkK2pvP3AlVVc7NnptLVo5VjlnTgp6bjR1cDsoNHMmZGIo
cDFIZHpmZ1NzdS02alpDfkxmMGQ+Tjgkd0lGZGV0Xk9vTXRmP1pDS0xPNWxial8hJTFRZG4KeiMx
bEFXTXRxczNHX2lGczBtMmI5aGE9RD9DWj0zIW9DbjwwM01BIyZFaXFBQ09UJWgrPTQzN1NtUGlO
XjZveWJ4CnooPjVubWBKOW5fYTlZWk5WS041PTNoR2wjZUl7Qmw5cTNnTDhwN0RJI2phV3lJeiF5
VSNDY1VGdi1aZTZFcGtlYwp6Vm9hZUVxJURwSlE7T3MpLVh1X0E2YX5NZVZ7NX5WRz0raytobENY
aHVaM015cVlJKztNZXlXYVM+WipHZ0ZhVjAKej1nTkJXNXtZfmBfPVctdFUtSHBlZUtrbW1gI1VD
UEMqcWdofEs7fn54STZSOUEjSzJMU2Z8cTJYM29rU3M/YyFYCm5pU01UcDZ+Q35SQnVFLStIdmE8
dnFMak9acnMpJSkwMDAwME5rdlhYdTBtamY+RCVZYgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvcmVzb3VyY2VzL3N0cnVjdFVuaWZvcm1TaGFkZXIudmVydCBiL0xheW91dFRl
c3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNl
cy9zdHJ1Y3RVbmlmb3JtU2hhZGVyLnZlcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTljNzE5YTAwMTRhMDQ1NWUw
NzE0MTAzYWMyYTY3MGVkNDAwZjA5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy9zdHJ1
Y3RVbmlmb3JtU2hhZGVyLnZlcnQKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
YykgMjAwOSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogQVMg
SVMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworYXR0cmlidXRlIHZlYzQg
YV92ZXJ0ZXg7CithdHRyaWJ1dGUgdmVjMyBhX25vcm1hbDsKKwordW5pZm9ybSBtYXQ0IHVfbW9k
ZWxWaWV3UHJvak1hdHJpeDsKKworc3RydWN0IE15U3RydWN0Cit7CisgIGludCB4OworICBpbnQg
eTsKK307CisKK3VuaWZvcm0gTXlTdHJ1Y3QgdV9zdHJ1Y3Q7Cit1bmlmb3JtIGZsb2F0IHVfYXJy
YXlbNF07CisKK3ZhcnlpbmcgdmVjMyB2X25vcm1hbDsKKwordm9pZCBtYWluKCkKK3sgCisgICAg
dl9ub3JtYWwgPSBhX25vcm1hbDsKKyAgICBnbF9Qb3NpdGlvbiA9IHVfbW9kZWxWaWV3UHJvak1h
dHJpeCAqIGFfdmVydGV4ICsKKyAgICAgICAgdmVjNCh1X3N0cnVjdC54LCB1X3N0cnVjdC55LCAw
LCAxKSArCisgICAgICAgIHZlYzQodV9hcnJheVswXSwgdV9hcnJheVsxXSwgdV9hcnJheVsyXSwg
dV9hcnJheVszXSk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC1jYW52YXMuanMgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1zdWItaW1h
Z2UtMmQtd2l0aC1jYW52YXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjdjNzlmODQ4ZDk2Zjk0ZTlmNzcxN2Vh
NjlkM2NmMjM1N2M1Yjg5ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy90ZXgtaW1hZ2Ut
YW5kLXN1Yi1pbWFnZS0yZC13aXRoLWNhbnZhcy5qcwpAQCAtMCwwICsxLDIyMSBAQAorLyoKKyoq
IENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlz
c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0
YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1
bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0
ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0
aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiog
ZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlh
bHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBm
dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
czoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u
IG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlh
bCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBS
T1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNT
IE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMg
T0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9S
IENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBP
UiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiog
VE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04g
V0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRI
RSBNQVRFUklBTFMuCisqLworCitmdW5jdGlvbiBnZW5lcmF0ZVRlc3QocGl4ZWxGb3JtYXQsIHBp
eGVsVHlwZSwgcHJvbG9ndWUpIHsKKyAgICB2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CisgICAg
dmFyIGdsID0gbnVsbDsKKyAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFsc2U7CisKKyAg
ICB2YXIgaW5pdCA9IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGluaXRUZXN0aW5nSGFybmVz
c1dhaXRVbnRpbERvbmUoKTsKKworICAgICAgICBkZXNjcmlwdGlvbignVmVyaWZ5IHRleEltYWdl
MkQgYW5kIHRleFN1YkltYWdlMkQgY29kZSBwYXRocyB0YWtpbmcgY2FudmFzIGVsZW1lbnRzICgn
ICsgcGl4ZWxGb3JtYXQgKyAnLycgKyBwaXhlbFR5cGUgKyAnKScpOworCisgICAgICAgIGdsID0g
d3R1LmNyZWF0ZTNEQ29udGV4dCgiZXhhbXBsZSIpOworCisgICAgICAgIGlmICghcHJvbG9ndWUo
Z2wpKSB7CisgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKworICAgICAgICB2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChn
bCk7CisKKyAgICAgICAgZ2wuY2xlYXJDb2xvcigwLDAsMCwxKTsKKyAgICAgICAgZ2wuY2xlYXJE
ZXB0aCgxKTsKKworICAgICAgICB2YXIgdGVzdENhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2NhbnZhcycpOworICAgICAgICBydW5UZXN0KHRlc3RDYW52YXMpOworICAgICAgICAvL2Rv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGVzdENhbnZhcyk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gc2V0Q2FudmFzVG9SZWRHcmVlbihjdHgpIHsKKyAgICAgIHZhciB3aWR0aCA9IGN0eC5jYW52
YXMud2lkdGg7CisgICAgICB2YXIgaGVpZ2h0ID0gY3R4LmNhbnZhcy5oZWlnaHQ7CisgICAgICB2
YXIgaGFsZkhlaWdodCA9IE1hdGguZmxvb3IoaGVpZ2h0IC8gMik7CisgICAgICBjdHguZmlsbFN0
eWxlID0gIiNmZjAwMDAiOworICAgICAgY3R4LmZpbGxSZWN0KDAsIDAsIHdpZHRoLCBoYWxmSGVp
Z2h0KTsKKyAgICAgIGN0eC5maWxsU3R5bGUgPSAiIzAwZmYwMCI7CisgICAgICBjdHguZmlsbFJl
Y3QoMCwgaGFsZkhlaWdodCwgd2lkdGgsIGhlaWdodCAtIGhhbGZIZWlnaHQpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIGRyYXdUZXh0SW5DYW52YXMoY3R4KSB7CisgICAgICB2YXIgd2lkdGggPSBj
dHguY2FudmFzLndpZHRoOworICAgICAgdmFyIGhlaWdodCA9IGN0eC5jYW52YXMuaGVpZ2h0Owor
ICAgICAgY3R4LmZpbGxTdHlsZSA9ICIjZmZmZmZmIjsKKyAgICAgIGN0eC5maWxsUmVjdCgwLCAw
LCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAgIGN0eC5mb250ID0gJzIwcHQgQXJpYWwnOworICAgICAg
Y3R4LmZpbGxTdHlsZSA9ICdibGFjayc7CisgICAgICBjdHgudGV4dEFsaWduID0gImNlbnRlciI7
CisgICAgICBjdHgudGV4dEJhc2VsaW5lID0gIm1pZGRsZSI7CisgICAgICBjdHguZmlsbFRleHQo
IjEyMzQ1Njc4OTAiLCB3aWR0aCAvIDIsIGhlaWdodCAvIDQpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIHNldENhbnZhc1RvMjU3eDI1NyhjdHgpIHsKKyAgICAgIGN0eC5jYW52YXMud2lkdGggPSAy
NTc7CisgICAgICBjdHguY2FudmFzLmhlaWdodCA9IDI1NzsKKyAgICAgIHNldENhbnZhc1RvUmVk
R3JlZW4oY3R4KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZXRDYW52YXNUbzF4MihjdHgpIHsK
KyAgICAgIGN0eC5jYW52YXMud2lkdGggPSAxOworICAgICAgY3R4LmNhbnZhcy5oZWlnaHQgPSAy
OworICAgICAgc2V0Q2FudmFzVG9SZWRHcmVlbihjdHgpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHJ1bk9uZUl0ZXJhdGlvbihjYW52YXMsIHVzZVRleFN1YkltYWdlMkQsIGZsaXBZLCB0b3BDb2xv
ciwgYm90dG9tQ29sb3IsIG9wdF90ZXh0dXJlLCBvcHRfZm9udFRlc3QpCisgICAgeworICAgICAg
ICBkZWJ1ZygnVGVzdGluZyAnICsgKHVzZVRleFN1YkltYWdlMkQgPyAndGV4U3ViSW1hZ2UyRCcg
OiAndGV4SW1hZ2UyRCcpICsKKyAgICAgICAgICAgICAgJyB3aXRoIGZsaXBZPScgKyBmbGlwWSAr
ICcgY2FudmFzIHNpemU6ICcgKyBjYW52YXMud2lkdGggKyAneCcgKyBjYW52YXMuaGVpZ2h0ICsK
KyAgICAgICAgICAgICAgKG9wdF9mb250VGVzdCA/ICIgd2l0aCBmb250cyIgOiAiIHdpdGggcmVk
LWdyZWVuIikpOworICAgICAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQ
VEhfQlVGRkVSX0JJVCk7CisgICAgICAgIC8vIERpc2FibGUgYW55IHdyaXRlcyB0byB0aGUgYWxw
aGEgY2hhbm5lbAorICAgICAgICAvLyBObyBpZGVhIHdoeSB0aGlzIHdhcyBoZXJlLiBJZiBpdCdz
IGltcG9ydGFudCBwdXQgaXQgYmFjayBhbmQgbGVhdmUgYSBjb21tZW50IGFzIHRvIHdoeQorLy8g
ICAgICAgIGdsLmNvbG9yTWFzaygxLCAxLCAxLCAwKTsKKyAgICAgICAgaWYgKCFvcHRfdGV4dHVy
ZSkgeworICAgICAgICAgICAgdmFyIHRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgICAg
ICAgICAgICAvLyBCaW5kIHRoZSB0ZXh0dXJlIHRvIHRleHR1cmUgdW5pdCAwCisgICAgICAgICAg
ICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsKKyAgICAgICAgICAgIC8v
IFNldCB1cCB0ZXh0dXJlIHBhcmFtZXRlcnMKKyAgICAgICAgICAgIGdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKKyAgICAg
ICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklM
VEVSLCBnbC5ORUFSRVNUKTsKKyAgICAgICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVS
RV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOworICAgICAgICAgICAg
Z2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xB
TVBfVE9fRURHRSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB2YXIgdGV4dHVyZSA9
IG9wdF90ZXh0dXJlOworICAgICAgICB9CisgICAgICAgIC8vIFNldCB1cCBwaXhlbCBzdG9yZSBw
YXJhbWV0ZXJzCisgICAgICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19GTElQX1lfV0VCR0ws
IGZsaXBZKTsKKyAgICAgICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX1BSRU1VTFRJUExZX0FM
UEhBX1dFQkdMLCBmYWxzZSk7CisgICAgICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19DT0xP
UlNQQUNFX0NPTlZFUlNJT05fV0VCR0wsIGdsLk5PTkUpOworICAgICAgICAvLyBVcGxvYWQgdGhl
IGltYWdlIGludG8gdGhlIHRleHR1cmUKKyAgICAgICAgaWYgKHVzZVRleFN1YkltYWdlMkQpIHsK
KyAgICAgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIHRleHR1cmUgdG8gYmxhY2sgZmlyc3QKKyAg
ICAgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2xbcGl4ZWxGb3JtYXRd
LCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQsIDAsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdsW3BpeGVsRm9ybWF0XSwgZ2xbcGl4ZWxUeXBlXSwgbnVsbCk7CisgICAgICAgICAgICBn
bC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIGdsW3BpeGVsRm9ybWF0XSwg
Z2xbcGl4ZWxUeXBlXSwgY2FudmFzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGds
LnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2xbcGl4ZWxGb3JtYXRdLCBnbFtwaXhlbEZv
cm1hdF0sIGdsW3BpeGVsVHlwZV0sIGNhbnZhcyk7CisgICAgICAgIH0KKworICAgICAgICAvLyBE
cmF3IHRoZSB0cmlhbmdsZXMKKyAgICAgICAgd3R1LmRyYXdRdWFkKGdsLCBbMCwgMjU1LCAwLCAy
NTVdKTsKKworICAgICAgICBpZiAob3B0X2ZvbnRUZXN0KSB7CisgICAgICAgICAgICB2YXIgd2lk
dGggPSBnbC5jYW52YXMud2lkdGg7CisgICAgICAgICAgICB2YXIgaGVpZ2h0ID0gZ2wuY2FudmFz
LmhlaWdodDsKKyAgICAgICAgICAgIHZhciBoYWxmSGVpZ2h0ID0gTWF0aC5mbG9vcihoZWlnaHQg
LyAyKTsKKyAgICAgICAgICAgIHZhciB0b3AgPSBmbGlwWSA/IDAgOiAoaGVpZ2h0IC0gaGFsZkhl
aWdodCk7CisgICAgICAgICAgICB2YXIgYm90dG9tID0gZmxpcFkgPyAoaGVpZ2h0IC0gaGFsZkhl
aWdodCkgOiAwOworICAgICAgICAgICAgLy8gY2hlY2sgaGFsZiBpcyBhIHNvbGlkIGNvbG9yLgor
ICAgICAgICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdCgKKyAgICAgICAgICAgICAgICAgIGdsLCAw
LCB0b3AsIHdpZHRoLCBoYWxmSGVpZ2h0LAorICAgICAgICAgICAgICAgICAgWzI1NSwgMjU1LCAy
NTUsIDI1NV0sCisgICAgICAgICAgICAgICAgICAic2hvdWxkIGJlIHdoaXRlIik7CisgICAgICAg
ICAgICAvLyBjaGVjayBvdGhlciBoYWxmIGlzIG5vdCBhIHNvbGlkIGNvbG9yLgorICAgICAgICAg
ICAgd3R1LmNoZWNrQ2FudmFzUmVjdENvbG9yKAorICAgICAgICAgICAgICAgICAgZ2wsIDAsIGJv
dHRvbSwgd2lkdGgsIGhhbGZIZWlnaHQsCisgICAgICAgICAgICAgICAgICBbMjU1LCAyNTUsIDI1
NSwgMjU1XSwgMCwKKyAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJmb250IG1pc3NpbmciKTsKKyAgICAgICAgICAgICAgICAgIH0s
CisgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVz
dFBhc3NlZCgiZm9udCByZW5kZXJlcmVkIik7CisgICAgICAgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgICAgICAgZGVidWcpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gQ2hl
Y2sgYSBmZXcgcGl4ZWxzIG5lYXIgdGhlIHRvcCBhbmQgYm90dG9tIGFuZCBtYWtlIHN1cmUgdGhl
eSBoYXZlCisgICAgICAgICAgICAvLyB0aGUgcmlnaHQgY29sb3IuCisgICAgICAgICAgICB2YXIg
d2lkdGggPSBnbC5jYW52YXMud2lkdGg7CisgICAgICAgICAgICB2YXIgaGVpZ2h0ID0gZ2wuY2Fu
dmFzLmhlaWdodDsKKyAgICAgICAgICAgIHZhciBoYWxmSGVpZ2h0ID0gTWF0aC5mbG9vcihoZWln
aHQgLyAyKTsKKyAgICAgICAgICAgIGRlYnVnKCJDaGVja2luZyBib3R0b20iKTsKKyAgICAgICAg
ICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIHdpZHRoLCBoYWxmSGVpZ2h0LCBib3R0
b21Db2xvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNob3VsZEJlICIgKyBi
b3R0b21Db2xvcik7CisgICAgICAgICAgICBkZWJ1ZygiQ2hlY2tpbmcgdG9wIik7CisgICAgICAg
ICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCBoZWlnaHQgLSBoYWxmSGVpZ2h0LCB3aWR0
aCwgaGFsZkhlaWdodCwgdG9wQ29sb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJzaG91bGRCZSAiICsgdG9wQ29sb3IpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZhbHNl
KSB7CisgICAgICAgICAgdmFyIG0gPSBuZXcgSW1hZ2UoKTsKKyAgICAgICAgICBtLnNyYyA9IGds
LmNhbnZhcy50b0RhdGFVUkwoKTsKKyAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y29uc29sZSIpLmFwcGVuZENoaWxkKG0pOworICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaHIiKSk7
CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdGV4dHVyZTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBydW5UZXN0KGNhbnZhcykKKyAgICB7CisgICAgICAgIHZhciBjdHggPSBjYW52YXMuZ2V0
Q29udGV4dCgiMmQiKTsKKyAgICAgICAgdmFyIHJlZCA9IFsyNTUsIDAsIDBdOworICAgICAgICB2
YXIgZ3JlZW4gPSBbMCwgMjU1LCAwXTsKKworICAgICAgICB2YXIgY291bnQgPSA0OworICAgICAg
ICB2YXIgY2FzZU5keCA9IDA7CisKKyAgICAgICAgdmFyIGNhc2VzID0gWworICAgICAgICAgICAg
eyBzdWI6IGZhbHNlLCBmbGlwWTogdHJ1ZSwgIHRvcDogcmVkLCAgIGJvdHRvbTogZ3JlZW4sIGZv
bnQ6IGZhbHNlLCBpbml0OiBzZXRDYW52YXNUbzF4MiB9LAorICAgICAgICAgICAgeyBzdWI6IGZh
bHNlLCBmbGlwWTogZmFsc2UsIHRvcDogZ3JlZW4sIGJvdHRvbTogcmVkLCAgIGZvbnQ6IGZhbHNl
IH0sCisgICAgICAgICAgICB7IHN1YjogdHJ1ZSwgIGZsaXBZOiB0cnVlLCAgdG9wOiByZWQsICAg
Ym90dG9tOiBncmVlbiwgZm9udDogZmFsc2UgfSwKKyAgICAgICAgICAgIHsgc3ViOiB0cnVlLCAg
ZmxpcFk6IGZhbHNlLCB0b3A6IGdyZWVuLCBib3R0b206IHJlZCwgICBmb250OiBmYWxzZSB9LAor
ICAgICAgICAgICAgeyBzdWI6IGZhbHNlLCBmbGlwWTogdHJ1ZSwgIHRvcDogcmVkLCAgIGJvdHRv
bTogZ3JlZW4sIGZvbnQ6IGZhbHNlLCBpbml0OiBzZXRDYW52YXNUbzI1N3gyNTcgfSwKKyAgICAg
ICAgICAgIHsgc3ViOiBmYWxzZSwgZmxpcFk6IGZhbHNlLCB0b3A6IGdyZWVuLCBib3R0b206IHJl
ZCwgICBmb250OiBmYWxzZSB9LAorICAgICAgICAgICAgeyBzdWI6IHRydWUsICBmbGlwWTogdHJ1
ZSwgIHRvcDogcmVkLCAgIGJvdHRvbTogZ3JlZW4sIGZvbnQ6IGZhbHNlIH0sCisgICAgICAgICAg
ICB7IHN1YjogdHJ1ZSwgIGZsaXBZOiBmYWxzZSwgdG9wOiBncmVlbiwgYm90dG9tOiByZWQsICAg
Zm9udDogZmFsc2UgfSwKKyAgICAgICAgICAgIHsgc3ViOiBmYWxzZSwgZmxpcFk6IHRydWUsICB0
b3A6IHJlZCwgICBib3R0b206IGdyZWVuLCBmb250OiB0cnVlLCBpbml0OiBkcmF3VGV4dEluQ2Fu
dmFzIH0sCisgICAgICAgICAgICB7IHN1YjogZmFsc2UsIGZsaXBZOiBmYWxzZSwgdG9wOiBncmVl
biwgYm90dG9tOiByZWQsICAgZm9udDogdHJ1ZSB9LAorICAgICAgICAgICAgeyBzdWI6IHRydWUs
ICBmbGlwWTogdHJ1ZSwgIHRvcDogcmVkLCAgIGJvdHRvbTogZ3JlZW4sIGZvbnQ6IHRydWUgfSwK
KyAgICAgICAgICAgIHsgc3ViOiB0cnVlLCAgZmxpcFk6IGZhbHNlLCB0b3A6IGdyZWVuLCBib3R0
b206IHJlZCwgICBmb250OiB0cnVlIH0sCisgICAgICAgIF07CisKKyAgICAgICAgdmFyIHRleHR1
cmU7CisgICAgICAgIGZ1bmN0aW9uIHJ1bk5leHRUZXN0KCkgeworICAgICAgICAgICAgdmFyIGMg
PSBjYXNlc1tjYXNlTmR4XTsKKyAgICAgICAgICAgIGlmIChjLmluaXQpIHsKKyAgICAgICAgICAg
ICAgYy5pbml0KGN0eCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZXh0dXJlID0gcnVu
T25lSXRlcmF0aW9uKGNhbnZhcywgYy5zdWIsIGMuZmxpcFksIGMudG9wLCBjLmJvdHRvbSwgdGV4
dHVyZSwgYy5mb250KTsKKyAgICAgICAgICAgIC8vIGZvciB0aGUgZmlyc3QgMiBpdGVyYXRpb25z
IGFsd2F5cyBtYWtlIGEgbmV3IHRleHR1cmUuCisgICAgICAgICAgICBpZiAoY291bnQgPiAyKSB7
CisgICAgICAgICAgICAgIHRleHR1cmUgPSB1bmRlZmluZWQ7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICArK2Nhc2VOZHg7CisgICAgICAgICAgICBpZiAoY2FzZU5keCA9PSBjYXNlcy5sZW5n
dGgpIHsKKyAgICAgICAgICAgICAgICBjYXNlTmR4ID0gMDsKKyAgICAgICAgICAgICAgICAtLWNv
dW50OworICAgICAgICAgICAgICAgIGlmICghY291bnQpIHsKKyAgICAgICAgICAgICAgICAgICAg
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgInNob3VsZCBiZSBubyBlcnJvcnMiKTsK
KyAgICAgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgd3R1
LndhaXRGb3JDb21wb3NpdGUoZ2wsIHJ1bk5leHRUZXN0KTsKKyAgICAgICAgfQorICAgICAgICBy
dW5OZXh0VGVzdCgpOworICAgIH0KKworICAgIHJldHVybiBpbml0OworfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
cmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UtZGF0YS5qcyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNl
L3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRoLWltYWdlLWRhdGEuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOGY5NmE5MjIyYzY1NzM4NDBkZDcwMjBmOGZjYjJlYjAxMjk3ODUyZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2Zp
bGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRo
LWltYWdlLWRhdGEuanMKQEAgLTAsMCArMSwxMzUgQEAKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIw
MTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdy
YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5
IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAo
dGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJl
c3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRv
IHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1Ymxp
Y2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBl
cm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNv
LCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFi
b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUg
aW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhl
IE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBX
SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNM
VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFC
SUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F
TlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS
UyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZ
LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNF
LCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRF
UklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8K
KworZnVuY3Rpb24gZ2VuZXJhdGVUZXN0KHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIHByb2xvZ3Vl
KSB7CisgICAgdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOworICAgIHZhciBnbCA9IG51bGw7Cisg
ICAgdmFyIHRleHR1cmVMb2MgPSBudWxsOworICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBm
YWxzZTsKKyAgICB2YXIgaW1hZ2VEYXRhID0gbnVsbDsKKworICAgIHZhciBpbml0ID0gZnVuY3Rp
b24oKQorICAgIHsKKyAgICAgICAgaW5pdFRlc3RpbmdIYXJuZXNzV2FpdFVudGlsRG9uZSgpOwor
CisgICAgICAgIGRlc2NyaXB0aW9uKCdWZXJpZnkgdGV4SW1hZ2UyRCBhbmQgdGV4U3ViSW1hZ2Uy
RCBjb2RlIHBhdGhzIHRha2luZyBJbWFnZURhdGEgKCcgKyBwaXhlbEZvcm1hdCArICcvJyArIHBp
eGVsVHlwZSArICcpJyk7CisKKyAgICAgICAgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFt
cGxlIik7CisKKyAgICAgICAgaWYgKCFwcm9sb2d1ZShnbCkpIHsKKyAgICAgICAgICAgIGZpbmlz
aFRlc3QoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBw
cm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGdsKTsKKyAgICAgICAgZ2wuY2xlYXJDb2xv
cigwLDAsMCwxKTsKKyAgICAgICAgZ2wuY2xlYXJEZXB0aCgxKTsKKyAgICAgICAgZ2wuZGlzYWJs
ZShnbC5CTEVORCk7CisKKyAgICAgICAgdGV4dHVyZUxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlv
bihwcm9ncmFtLCAidGV4Iik7CisKKyAgICAgICAgdmFyIGNhbnZhczJkID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRleGNhbnZhcyIpOworICAgICAgICB2YXIgY29udGV4dDJkID0gY2FudmFz
MmQuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICAgICAgaW1hZ2VEYXRhID0gY29udGV4dDJkLmNyZWF0
ZUltYWdlRGF0YSgxLCAyKTsKKyAgICAgICAgdmFyIGRhdGEgPSBpbWFnZURhdGEuZGF0YTsKKyAg
ICAgICAgZGF0YVswXSA9IDI1NTsKKyAgICAgICAgZGF0YVsxXSA9IDA7CisgICAgICAgIGRhdGFb
Ml0gPSAwOworICAgICAgICBkYXRhWzNdID0gMjU1OworICAgICAgICBkYXRhWzRdID0gMDsKKyAg
ICAgICAgZGF0YVs1XSA9IDI1NTsKKyAgICAgICAgZGF0YVs2XSA9IDA7CisgICAgICAgIGRhdGFb
N10gPSAwOworCisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5P
bmVJdGVyYXRpb24odXNlVGV4U3ViSW1hZ2UyRCwgZmxpcFksIHByZW11bHRpcGx5QWxwaGEsIHRv
cENvbG9yLCBib3R0b21Db2xvcikKKyAgICB7CisgICAgICAgIGRlYnVnKCdUZXN0aW5nICcgKyAo
dXNlVGV4U3ViSW1hZ2UyRCA/ICd0ZXhTdWJJbWFnZTJEJyA6ICd0ZXhJbWFnZTJEJykgKworICAg
ICAgICAgICAgICAnIHdpdGggZmxpcFk9JyArIGZsaXBZICsgJyBhbmQgcHJlbXVsdGlwbHlBbHBo
YT0nICsgcHJlbXVsdGlwbHlBbHBoYSk7CisgICAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZF
Ul9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTsKKyAgICAgICAgLy8gRW5hYmxlIHdyaXRlcyB0
byB0aGUgUkdCQSBjaGFubmVscworICAgICAgICBnbC5jb2xvck1hc2soMSwgMSwgMSwgMCk7Cisg
ICAgICAgIHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICAgICAgICAvLyBCaW5k
IHRoZSB0ZXh0dXJlIHRvIHRleHR1cmUgdW5pdCAwCisgICAgICAgIGdsLmJpbmRUZXh0dXJlKGds
LlRFWFRVUkVfMkQsIHRleHR1cmUpOworICAgICAgICAvLyBTZXQgdXAgdGV4dHVyZSBwYXJhbWV0
ZXJzCisgICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9N
SU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKKyAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOworICAgICAgICAvLyBT
ZXQgdXAgcGl4ZWwgc3RvcmUgcGFyYW1ldGVycworICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5V
TlBBQ0tfRkxJUF9ZX1dFQkdMLCBmbGlwWSk7CisgICAgICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVO
UEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCwgcHJlbXVsdGlwbHlBbHBoYSk7CisgICAgICAg
IC8vIFVwbG9hZCB0aGUgaW1hZ2UgaW50byB0aGUgdGV4dHVyZQorICAgICAgICBpZiAodXNlVGV4
U3ViSW1hZ2UyRCkgeworICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgdGV4dHVyZSB0byBi
bGFjayBmaXJzdAorICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBn
bFtwaXhlbEZvcm1hdF0sIDEsIDIsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGdsW3Bp
eGVsRm9ybWF0XSwgZ2xbcGl4ZWxUeXBlXSwgbnVsbCk7CisgICAgICAgICAgICBnbC50ZXhTdWJJ
bWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIGdsW3BpeGVsRm9ybWF0XSwgZ2xbcGl4ZWxU
eXBlXSwgaW1hZ2VEYXRhKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGdsLnRleElt
YWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2xbcGl4ZWxGb3JtYXRdLCBnbFtwaXhlbEZvcm1hdF0s
IGdsW3BpeGVsVHlwZV0sIGltYWdlRGF0YSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBQb2lu
dCB0aGUgdW5pZm9ybSBzYW1wbGVyIHRvIHRleHR1cmUgdW5pdCAwCisgICAgICAgIGdsLnVuaWZv
cm0xaSh0ZXh0dXJlTG9jLCAwKTsKKyAgICAgICAgLy8gRHJhdyB0aGUgdHJpYW5nbGVzCisgICAg
ICAgIHd0dS5kcmF3UXVhZChnbCwgWzAsIDAsIDAsIDI1NV0pOworCisgICAgICAgIC8vIENoZWNr
IHRoZSB0b3AgcGl4ZWwgYW5kIGJvdHRvbSBwaXhlbCBhbmQgbWFrZSBzdXJlIHRoZXkgaGF2ZQor
ICAgICAgICAvLyB0aGUgcmlnaHQgY29sb3IuCisgICAgICAgIGRlYnVnKCJDaGVja2luZyBib3R0
b20gcGl4ZWwiKTsKKyAgICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgMSwgMSwg
Ym90dG9tQ29sb3IsICJzaG91bGRCZSAiICsgYm90dG9tQ29sb3IpOworICAgICAgICBkZWJ1Zygi
Q2hlY2tpbmcgdG9wIHBpeGVsIik7CisgICAgICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAs
IDEsIDEsIDEsIHRvcENvbG9yLCAic2hvdWxkQmUgIiArIHRvcENvbG9yKTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICB7CisgICAgICAgIHZhciByZWQgPSBbMjU1LCAwLCAw
LCAyNTVdOworICAgICAgICB2YXIgZ3JlZW4gPSBbMCwgMjU1LCAwLCAyNTVdOworICAgICAgICB2
YXIgcmVkUHJlbXVsdGlwbHlBbHBoYSA9IFsyNTUsIDAsIDAsIDI1NV07CisgICAgICAgIHZhciBn
cmVlblByZW11bHRpcGx5QWxwaGEgPSBbMCwgMCwgMCwgMjU1XTsKKworICAgICAgICBydW5PbmVJ
dGVyYXRpb24oZmFsc2UsIHRydWUsIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgcmVk
LCBncmVlbik7CisgICAgICAgIHJ1bk9uZUl0ZXJhdGlvbihmYWxzZSwgZmFsc2UsIGZhbHNlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZW4sIHJlZCk7CisgICAgICAgIHJ1bk9uZUl0ZXJh
dGlvbihmYWxzZSwgdHJ1ZSwgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlZFByZW11
bHRpcGx5QWxwaGEsIGdyZWVuUHJlbXVsdGlwbHlBbHBoYSk7CisgICAgICAgIHJ1bk9uZUl0ZXJh
dGlvbihmYWxzZSwgZmFsc2UsIHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICBncmVlblBy
ZW11bHRpcGx5QWxwaGEsIHJlZFByZW11bHRpcGx5QWxwaGEpOworICAgICAgICBydW5PbmVJdGVy
YXRpb24odHJ1ZSwgdHJ1ZSwgZmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICByZWQsIGdy
ZWVuKTsKKyAgICAgICAgcnVuT25lSXRlcmF0aW9uKHRydWUsIGZhbHNlLCBmYWxzZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGdyZWVuLCByZWQpOworICAgICAgICBydW5PbmVJdGVyYXRpb24o
dHJ1ZSwgdHJ1ZSwgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlZFByZW11bHRpcGx5
QWxwaGEsIGdyZWVuUHJlbXVsdGlwbHlBbHBoYSk7CisgICAgICAgIHJ1bk9uZUl0ZXJhdGlvbih0
cnVlLCBmYWxzZSwgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGdyZWVuUHJlbXVsdGlw
bHlBbHBoYSwgcmVkUHJlbXVsdGlwbHlBbHBoYSk7CisKKyAgICAgICAgZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5OT19FUlJPUiwgInNob3VsZCBiZSBubyBlcnJvcnMiKTsKKyAgICAgICAgZmluaXNo
VGVzdCgpOworICAgIH0KKworICAgIHJldHVybiBpbml0OworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3Vy
Y2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UuanMgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMv
dGV4LWltYWdlLWFuZC1zdWItaW1hZ2UtMmQtd2l0aC1pbWFnZS5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTQ4
OGYzNmJkZTVlODA2OGUzYTAyZWU0NDM3YjM4MWVjZDdhMWUxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
cmVzb3VyY2VzL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2UuanMKQEAgLTAs
MCArMSwxNDkgQEAKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAg
SW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl
LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5k
L29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiks
IHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcK
KyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt
ZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNv
cGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20g
dGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Ug
YW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBj
b3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBU
SEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO
WSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE
IFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQor
KiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP
TiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBP
RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBP
VEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworZnVuY3Rpb24gZ2VuZXJhdGVU
ZXN0KHBpeGVsRm9ybWF0LCBwaXhlbFR5cGUsIHBhdGhUb1Rlc3RSb290LCBwcm9sb2d1ZSkgewor
ICAgIHZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKKyAgICB2YXIgZ2wgPSBudWxsOworICAgIHZh
ciB0ZXh0dXJlTG9jID0gbnVsbDsKKyAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFsc2U7
CisgICAgdmFyIGltZ0NhbnZhczsKKyAgICB2YXIgcmVkID0gWzI1NSwgMCwgMF07CisgICAgdmFy
IGdyZWVuID0gWzAsIDI1NSwgMF07CisKKyAgICB2YXIgaW5pdCA9IGZ1bmN0aW9uKCkKKyAgICB7
CisgICAgICAgIGluaXRUZXN0aW5nSGFybmVzc1dhaXRVbnRpbERvbmUoKTsKKworICAgICAgICBk
ZXNjcmlwdGlvbignVmVyaWZ5IHRleEltYWdlMkQgYW5kIHRleFN1YkltYWdlMkQgY29kZSBwYXRo
cyB0YWtpbmcgaW1hZ2UgZWxlbWVudHMgKCcgKyBwaXhlbEZvcm1hdCArICcvJyArIHBpeGVsVHlw
ZSArICcpJyk7CisKKyAgICAgICAgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIik7
CisKKyAgICAgICAgaWYgKCFwcm9sb2d1ZShnbCkpIHsKKyAgICAgICAgICAgIGZpbmlzaFRlc3Qo
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBwcm9ncmFt
ID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGdsKTsKKworICAgICAgICBnbC5jbGVhckNvbG9yKDAs
MCwwLDEpOworICAgICAgICBnbC5jbGVhckRlcHRoKDEpOworCisgICAgICAgIHRleHR1cmVMb2Mg
PSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInRleCIpOworCisgICAgICAgIHd0dS5s
b2FkVGV4dHVyZShnbCwgcGF0aFRvVGVzdFJvb3QgKyAiL3Jlc291cmNlcy9yZWQtZ3JlZW4ucG5n
IiwgcnVuVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuT25lSXRlcmF0aW9uKGltYWdl
LCB1c2VUZXhTdWJJbWFnZTJELCBmbGlwWSwgdG9wQ29sb3IsIGJvdHRvbUNvbG9yKQorICAgIHsK
KyAgICAgICAgZGVidWcoJ1Rlc3RpbmcgJyArICh1c2VUZXhTdWJJbWFnZTJEID8gJ3RleFN1Yklt
YWdlMkQnIDogJ3RleEltYWdlMkQnKSArCisgICAgICAgICAgICAgICcgd2l0aCBmbGlwWT0nICsg
ZmxpcFkpOworICAgICAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhf
QlVGRkVSX0JJVCk7CisgICAgICAgIC8vIERpc2FibGUgYW55IHdyaXRlcyB0byB0aGUgYWxwaGEg
Y2hhbm5lbAorICAgICAgICBnbC5jb2xvck1hc2soMSwgMSwgMSwgMCk7CisgICAgICAgIHZhciB0
ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICAgICAgICAvLyBCaW5kIHRoZSB0ZXh0dXJl
IHRvIHRleHR1cmUgdW5pdCAwCisgICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQs
IHRleHR1cmUpOworICAgICAgICAvLyBTZXQgdXAgdGV4dHVyZSBwYXJhbWV0ZXJzCisgICAgICAg
IGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBn
bC5ORUFSRVNUKTsKKyAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5U
RVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOworICAgICAgICAvLyBTZXQgdXAgcGl4ZWwg
c3RvcmUgcGFyYW1ldGVycworICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfRkxJUF9Z
X1dFQkdMLCBmbGlwWSk7CisgICAgICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19QUkVNVUxU
SVBMWV9BTFBIQV9XRUJHTCwgZmFsc2UpOworICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBB
Q0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMLCBnbC5OT05FKTsKKyAgICAgICAgLy8gVXBs
b2FkIHRoZSBpbWFnZSBpbnRvIHRoZSB0ZXh0dXJlCisgICAgICAgIGlmICh1c2VUZXhTdWJJbWFn
ZTJEKSB7CisgICAgICAgICAgICAvLyBJbml0aWFsaXplIHRoZSB0ZXh0dXJlIHRvIGJsYWNrIGZp
cnN0CisgICAgICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsW3BpeGVs
Rm9ybWF0XSwgaW1hZ2Uud2lkdGgsIGltYWdlLmhlaWdodCwgMCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ2xbcGl4ZWxGb3JtYXRdLCBnbFtwaXhlbFR5cGVdLCBudWxsKTsKKyAgICAgICAg
ICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgZ2xbcGl4ZWxGb3Jt
YXRdLCBnbFtwaXhlbFR5cGVdLCBpbWFnZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsW3BpeGVsRm9ybWF0XSwgZ2xbcGl4
ZWxGb3JtYXRdLCBnbFtwaXhlbFR5cGVdLCBpbWFnZSk7CisgICAgICAgIH0KKworICAgICAgICAv
LyBQb2ludCB0aGUgdW5pZm9ybSBzYW1wbGVyIHRvIHRleHR1cmUgdW5pdCAwCisgICAgICAgIGds
LnVuaWZvcm0xaSh0ZXh0dXJlTG9jLCAwKTsKKyAgICAgICAgLy8gRHJhdyB0aGUgdHJpYW5nbGVz
CisgICAgICAgIHd0dS5kcmF3UXVhZChnbCwgWzAsIDAsIDAsIDI1NV0pOworICAgICAgICAvLyBD
aGVjayBhIGZldyBwaXhlbHMgbmVhciB0aGUgdG9wIGFuZCBib3R0b20gYW5kIG1ha2Ugc3VyZSB0
aGV5IGhhdmUKKyAgICAgICAgLy8gdGhlIHJpZ2h0IGNvbG9yLgorICAgICAgICBkZWJ1ZygiQ2hl
Y2tpbmcgbG93ZXIgbGVmdCBjb3JuZXIiKTsKKyAgICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChn
bCwgNCwgNCwgMiwgMiwgYm90dG9tQ29sb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InNob3VsZEJlICIgKyBib3R0b21Db2xvcik7CisgICAgICAgIGRlYnVnKCJDaGVja2luZyB1cHBl
ciBsZWZ0IGNvcm5lciIpOworICAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCA0LCBnbC5j
YW52YXMuaGVpZ2h0IC0gOCwgMiwgMiwgdG9wQ29sb3IsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInNob3VsZEJlICIgKyB0b3BDb2xvcik7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVu
VGVzdE9uSW1hZ2UoaW1hZ2UpIHsKKyAgICAgICAgcnVuT25lSXRlcmF0aW9uKGltYWdlLCBmYWxz
ZSwgdHJ1ZSwgcmVkLCBncmVlbik7CisgICAgICAgIHJ1bk9uZUl0ZXJhdGlvbihpbWFnZSwgZmFs
c2UsIGZhbHNlLCBncmVlbiwgcmVkKTsKKyAgICAgICAgcnVuT25lSXRlcmF0aW9uKGltYWdlLCB0
cnVlLCB0cnVlLCByZWQsIGdyZWVuKTsKKyAgICAgICAgcnVuT25lSXRlcmF0aW9uKGltYWdlLCB0
cnVlLCBmYWxzZSwgZ3JlZW4sIHJlZCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdChp
bWFnZSkKKyAgICB7CisgICAgICAgIHJ1blRlc3RPbkltYWdlKGltYWdlKTsKKworICAgICAgICBp
bWdDYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKKyAgICAgICAgaW1n
Q2FudmFzLndpZHRoID0gMTsKKyAgICAgICAgaW1nQ2FudmFzLmhlaWdodCA9IDI7CisgICAgICAg
IHZhciBpbWdDdHggPSBpbWdDYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICAgICAgdmFyIGlt
Z0RhdGEgPSBpbWdDdHguY3JlYXRlSW1hZ2VEYXRhKDEsIDIpOworICAgICAgICBpbWdEYXRhLmRh
dGFbMF0gPSByZWRbMF07CisgICAgICAgIGltZ0RhdGEuZGF0YVsxXSA9IHJlZFsxXTsKKyAgICAg
ICAgaW1nRGF0YS5kYXRhWzJdID0gcmVkWzJdOworICAgICAgICBpbWdEYXRhLmRhdGFbM10gPSAy
NTU7CisgICAgICAgIGltZ0RhdGEuZGF0YVs0XSA9IGdyZWVuWzBdOworICAgICAgICBpbWdEYXRh
LmRhdGFbNV0gPSBncmVlblsxXTsKKyAgICAgICAgaW1nRGF0YS5kYXRhWzZdID0gZ3JlZW5bMl07
CisgICAgICAgIGltZ0RhdGEuZGF0YVs3XSA9IDI1NTsKKyAgICAgICAgaW1nQ3R4LnB1dEltYWdl
RGF0YShpbWdEYXRhLCAwLCAwKTsKKworICAgICAgICAvLyBhcHBhcmVudGx5IEltYWdlIGlzIGRp
ZmZlcmVudCB0aGFuIDxpbWc+LgorICAgICAgICB2YXIgbmV3SW1hZ2UgPSAgbmV3IEltYWdlKCk7
CisgICAgICAgIG5ld0ltYWdlLm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcnVu
VGVzdDIobmV3SW1hZ2UpOworICAgICAgICB9OworICAgICAgICBuZXdJbWFnZS5zcmMgPSBpbWdD
YW52YXMudG9EYXRhVVJMKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdDIoaW1hZ2Up
IHsKKyAgICAgICAgcnVuVGVzdE9uSW1hZ2UoaW1hZ2UpOworCisgICAgICAgIHZhciBuZXdJbWFn
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOworICAgICAgICBuZXdJbWFnZS5vbmxv
YWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJ1blRlc3QzKG5ld0ltYWdlKTsKKyAgICAg
ICAgfTsKKyAgICAgICAgbmV3SW1hZ2Uuc3JjID0gaW1nQ2FudmFzLnRvRGF0YVVSTCgpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QzKGltYWdlKSB7CisgICAgICAgIHJ1blRlc3RPbklt
YWdlKGltYWdlKTsKKworICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SLCAi
c2hvdWxkIGJlIG5vIGVycm9ycyIpOworICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgfQorCisg
ICAgcmV0dXJuIGluaXQ7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvdGV4LWltYWdlLWFuZC1z
dWItaW1hZ2UtMmQtd2l0aC12aWRlby5qcyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93
ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy90ZXgtaW1hZ2UtYW5kLXN1Yi1p
bWFnZS0yZC13aXRoLXZpZGVvLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmZmJhNTk2ZDIyMTcwZmRlNjI2Y2Yy
MWVhNWViNDZlYzU3MDI3NTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvdGV4LWltYWdl
LWFuZC1zdWItaW1hZ2UtMmQtd2l0aC12aWRlby5qcwpAQCAtMCwwICsxLDE2OSBAQAorLyoKKyoq
IENvcHlyaWdodCAoYykgMjAxMiBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlz
c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0
YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1
bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0
ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0
aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiog
ZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlh
bHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBm
dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
czoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u
IG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlh
bCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBS
T1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNT
IE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMg
T0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9S
IENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBP
UiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiog
VE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04g
V0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRI
RSBNQVRFUklBTFMuCisqLworCisvLyBUaGlzIGJsb2NrIG5lZWRzIHRvIGJlIG91dHNpZGUgdGhl
IG9ubG9hZCBoYW5kbGVyIGluIG9yZGVyIGZvciB0aGlzCisvLyB0ZXN0IHRvIHJ1biByZWxpYWJs
eSBpbiBXZWJLaXQncyB0ZXN0IGhhcm5lc3MgKGF0IGxlYXN0IHRoZQorLy8gQ2hyb21pdW0gcG9y
dCkuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzQ0OAoraW5pdFRl
c3RpbmdIYXJuZXNzV2FpdFVudGlsRG9uZSgpOworCit2YXIgb2xkID0gZGVidWc7Cit2YXIgZGVi
dWcgPSBmdW5jdGlvbihtc2cpIHsKKyAgY29uc29sZS5sb2cobXNnKTsKKyAgb2xkKG1zZyk7Cit9
OworCitmdW5jdGlvbiBnZW5lcmF0ZVRlc3QocGl4ZWxGb3JtYXQsIHBpeGVsVHlwZSwgcHJvbG9n
dWUpIHsKKyAgICB2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CisgICAgdmFyIGdsID0gbnVsbDsK
KyAgICB2YXIgdGV4dHVyZUxvYyA9IG51bGw7CisgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IGZhbHNlOworCisgICAgLy8gVGVzdCBlYWNoIGZvcm1hdCBzZXBhcmF0ZWx5IGJlY2F1c2UgbWFu
eSBicm93c2VycyBpbXBsZW1lbnQgZWFjaAorICAgIC8vIGRpZmZlcmVudGx5LiBTb21lIG1pZ2h0
IGJlIEdQVSBhY2NlbGVyYXRlZCwgc29tZSBtaWdodCBub3QuIEV0Yy4uLgorICAgIHZhciB2aWRl
b3MgPSBbCisgICAgICB7IHNyYzogIi4uL3Jlc291cmNlcy9yZWQtZ3JlZW4ubXA0IiAgICAgICAg
ICwgdHlwZTogJ3ZpZGVvL21wNDsgY29kZWNzPSJhdmMxLjQyRTAxRSwgbXA0YS40MC4yIicsIH0s
CisgICAgICB7IHNyYzogIi4uL3Jlc291cmNlcy9yZWQtZ3JlZW4ud2VibXZwOC53ZWJtIiwgdHlw
ZTogJ3ZpZGVvL3dlYm07IGNvZGVjcz0idnA4LCB2b3JiaXMiJywgICAgICAgICAgIH0sCisgICAg
ICB7IHNyYzogIi4uL3Jlc291cmNlcy9yZWQtZ3JlZW4udGhlb3JhLm9ndiIsICAgdHlwZTogJ3Zp
ZGVvL29nZzsgY29kZWNzPSJ0aGVvcmEsIHZvcmJpcyInLCAgICAgICAgIH0sCisgICAgXTsKKwor
ICAgIHZhciB2aWRlb05keCA9IDA7CisgICAgdmFyIHZpZGVvOworICAgIHZhciBydW5OZXh0Vmlk
ZW8gPSBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKHZpZGVvTmR4ID09IHZpZGVvcy5sZW5ndGgp
IHsKKyAgICAgICAgICAgIHZpZGVvLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBsYXlpbmciLCBydW5U
ZXN0KTsKKyAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorICAgICAgICB2YXIgaW5mbyA9IHZpZGVvc1t2aWRlb05keCsrXTsKKyAgICAgICAg
ZGVidWcoIiIpOworICAgICAgICBkZWJ1ZygidGVzdGluZzogIiArIGluZm8udHlwZSk7CisgICAg
ICAgIHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidmlkZW8iKTsKKyAgICAgICAgdmFy
IGNhblBsYXkgPSB0cnVlOworICAgICAgICBpZiAoIXZpZGVvLmNhblBsYXlUeXBlKSB7CisgICAg
ICAgICAgdGVzdEZhaWxlZCgidmlkZW8uY2FuUGxheVR5cGUgcmVxdWlyZWQgbWV0aG9kIG1pc3Np
bmciKTsKKyAgICAgICAgICBydW5OZXh0VGVzdCgpOworICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmKCF2aWRlby5jYW5QbGF5VHlwZShpbmZvLnR5cGUpLnJlcGxhY2Uo
L25vLywgJycpKSB7CisgICAgICAgICAgZGVidWcoaW5mby50eXBlICsgIiB1bnN1cHBvcnRlZCIp
OworICAgICAgICAgIHJ1bk5leHRWaWRlbygpOworICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fTsKKworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZGVvKTsKKyAgICAgICAg
dmlkZW8uYWRkRXZlbnRMaXN0ZW5lcigKKyAgICAgICAgICAgICJwbGF5aW5nIiwgZnVuY3Rpb24o
KSB7IHJ1blRlc3QodmlkZW8pOyB9LCB0cnVlKTsKKyAgICAgICAgdmlkZW8udHlwZSA9IGluZm8u
dHlwZTsKKyAgICAgICAgdmlkZW8uc3JjID0gaW5mby5zcmM7CisgICAgICAgIHZpZGVvLmxvb3Ag
PSB0cnVlOworICAgICAgICB2aWRlby5wbGF5KCk7CisgICAgfQorCisgICAgdmFyIGluaXQgPSBm
dW5jdGlvbigpCisgICAgeworICAgICAgICBkZXNjcmlwdGlvbignVmVyaWZ5IHRleEltYWdlMkQg
YW5kIHRleFN1YkltYWdlMkQgY29kZSBwYXRocyB0YWtpbmcgdmlkZW8gZWxlbWVudHMgKCcgKyBw
aXhlbEZvcm1hdCArICcvJyArIHBpeGVsVHlwZSArICcpJyk7CisKKyAgICAgICAgZ2wgPSB3dHUu
Y3JlYXRlM0RDb250ZXh0KCJleGFtcGxlIik7CisKKyAgICAgICAgaWYgKCFwcm9sb2d1ZShnbCkp
IHsKKyAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIHZhciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGdsKTsK
KworICAgICAgICBnbC5jbGVhckNvbG9yKDAsMCwwLDEpOworICAgICAgICBnbC5jbGVhckRlcHRo
KDEpOworCisgICAgICAgIHRleHR1cmVMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3Jh
bSwgInRleCIpOworICAgICAgICBydW5OZXh0VmlkZW8oKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBydW5PbmVJdGVyYXRpb24odmlkZW9FbGVtZW50LCB1c2VUZXhTdWJJbWFnZTJELCBmbGlwWSwg
dG9wQ29sb3IsIGJvdHRvbUNvbG9yKQorICAgIHsKKyAgICAgICAgZGVidWcoJ1Rlc3RpbmcgJyAr
ICh1c2VUZXhTdWJJbWFnZTJEID8gJ3RleFN1YkltYWdlMkQnIDogJ3RleEltYWdlMkQnKSArCisg
ICAgICAgICAgICAgICcgd2l0aCBmbGlwWT0nICsgZmxpcFkpOworICAgICAgICBnbC5jbGVhcihn
bC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7CisgICAgICAgIC8vIERp
c2FibGUgYW55IHdyaXRlcyB0byB0aGUgYWxwaGEgY2hhbm5lbAorICAgICAgICBnbC5jb2xvck1h
c2soMSwgMSwgMSwgMCk7CisgICAgICAgIHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgp
OworICAgICAgICAvLyBCaW5kIHRoZSB0ZXh0dXJlIHRvIHRleHR1cmUgdW5pdCAwCisgICAgICAg
IGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOworICAgICAgICAvLyBTZXQg
dXAgdGV4dHVyZSBwYXJhbWV0ZXJzCisgICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVS
RV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKKyAgICAgICAgZ2wudGV4
UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJF
U1QpOworICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVf
V1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKKyAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5U
RVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7CisgICAgICAg
IC8vIFNldCB1cCBwaXhlbCBzdG9yZSBwYXJhbWV0ZXJzCisgICAgICAgIGdsLnBpeGVsU3RvcmVp
KGdsLlVOUEFDS19GTElQX1lfV0VCR0wsIGZsaXBZKTsKKyAgICAgICAgZ2wucGl4ZWxTdG9yZWko
Z2wuVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMLCBmYWxzZSk7CisgICAgICAgIC8vIFVw
bG9hZCB0aGUgdmlkZW9FbGVtZW50IGludG8gdGhlIHRleHR1cmUKKyAgICAgICAgaWYgKHVzZVRl
eFN1YkltYWdlMkQpIHsKKyAgICAgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIHRleHR1cmUgdG8g
YmxhY2sgZmlyc3QKKyAgICAgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwg
Z2xbcGl4ZWxGb3JtYXRdLAorICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb0VsZW1lbnQu
dmlkZW9XaWR0aCwgdmlkZW9FbGVtZW50LnZpZGVvSGVpZ2h0LCAwLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICBnbFtwaXhlbEZvcm1hdF0sIGdsW3BpeGVsVHlwZV0sIG51bGwpOworICAgICAg
ICAgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCBnbFtwaXhlbEZv
cm1hdF0sIGdsW3BpeGVsVHlwZV0sIHZpZGVvRWxlbWVudCk7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsW3BpeGVsRm9ybWF0
XSwgZ2xbcGl4ZWxGb3JtYXRdLCBnbFtwaXhlbFR5cGVdLCB2aWRlb0VsZW1lbnQpOworICAgICAg
ICB9CisKKyAgICAgICAgdmFyIGMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsK
KyAgICAgICAgYy53aWR0aCA9IDE2OworICAgICAgICBjLmhlaWdodCA9IDE2OworICAgICAgICBj
LnN0eWxlLmJvcmRlciA9ICIxcHggc29saWQgYmxhY2siOworICAgICAgICB2YXIgY3R4ID0gYy5n
ZXRDb250ZXh0KCIyZCIpOworICAgICAgICBjdHguZHJhd0ltYWdlKHZpZGVvRWxlbWVudCwgMCwg
MCwgMTYsIDE2KTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjKTsKKworICAg
ICAgICAvLyBQb2ludCB0aGUgdW5pZm9ybSBzYW1wbGVyIHRvIHRleHR1cmUgdW5pdCAwCisgICAg
ICAgIGdsLnVuaWZvcm0xaSh0ZXh0dXJlTG9jLCAwKTsKKyAgICAgICAgLy8gRHJhdyB0aGUgdHJp
YW5nbGVzCisgICAgICAgIHd0dS5kcmF3UXVhZChnbCwgWzAsIDAsIDAsIDI1NV0pOworICAgICAg
ICAvLyBDaGVjayBhIGZldyBwaXhlbHMgbmVhciB0aGUgdG9wIGFuZCBib3R0b20gYW5kIG1ha2Ug
c3VyZSB0aGV5IGhhdmUKKyAgICAgICAgLy8gdGhlIHJpZ2h0IGNvbG9yLgorICAgICAgICBkZWJ1
ZygiQ2hlY2tpbmcgbG93ZXIgbGVmdCBjb3JuZXIiKTsKKyAgICAgICAgd3R1LmNoZWNrQ2FudmFz
UmVjdChnbCwgNCwgNCwgMiwgMiwgYm90dG9tQ29sb3IsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInNob3VsZEJlICIgKyBib3R0b21Db2xvcik7CisgICAgICAgIGRlYnVnKCJDaGVja2lu
ZyB1cHBlciBsZWZ0IGNvcm5lciIpOworICAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCA0
LCBnbC5jYW52YXMuaGVpZ2h0IC0gOCwgMiwgMiwgdG9wQ29sb3IsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInNob3VsZEJlICIgKyB0b3BDb2xvcik7CisgICAgfQorCisgICAgZnVuY3Rp
b24gcnVuVGVzdCh2aWRlb0VsZW1lbnQpCisgICAgeworICAgICAgICB2YXIgcmVkID0gWzI1NSwg
MCwgMF07CisgICAgICAgIHZhciBncmVlbiA9IFswLCAyNTUsIDBdOworICAgICAgICBydW5PbmVJ
dGVyYXRpb24odmlkZW9FbGVtZW50LCBmYWxzZSwgdHJ1ZSwgcmVkLCBncmVlbik7CisgICAgICAg
IHJ1bk9uZUl0ZXJhdGlvbih2aWRlb0VsZW1lbnQsIGZhbHNlLCBmYWxzZSwgZ3JlZW4sIHJlZCk7
CisgICAgICAgIHJ1bk9uZUl0ZXJhdGlvbih2aWRlb0VsZW1lbnQsIHRydWUsIHRydWUsIHJlZCwg
Z3JlZW4pOworICAgICAgICBydW5PbmVJdGVyYXRpb24odmlkZW9FbGVtZW50LCB0cnVlLCBmYWxz
ZSwgZ3JlZW4sIHJlZCk7CisKKyAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJP
UiwgInNob3VsZCBiZSBubyBlcnJvcnMiKTsKKworICAgICAgICBydW5OZXh0VmlkZW8oKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gaW5pdDsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy92ZXJ0ZXhT
aGFkZXIudmVydCBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVz
L2NvbmZvcm1hbmNlL3Jlc291cmNlcy92ZXJ0ZXhTaGFkZXIudmVydApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTY2
NDBiNzViYWVhY2JkMzA0MWQzYjI2OTdlOGQwNzc5NTBkYjIwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uv
cmVzb3VyY2VzL3ZlcnRleFNoYWRlci52ZXJ0CkBAIC0wLDAgKzEsMzYgQEAKKy8qCitDb3B5cmln
aHQgKEMpIDIwMDkgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisK
K1JlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCithcmUgbWV0OgorMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKzIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorCitUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIEFTIElTIEFORCBBTlkKK0VYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CitJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKK1BVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgorQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCitFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCitQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKK1BST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKK09GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCitPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KK2F0dHJp
YnV0ZSB2ZWM0IGFfdmVydGV4OworYXR0cmlidXRlIHZlYzMgYV9ub3JtYWw7CisKK3VuaWZvcm0g
bWVkaXVtcCBtYXQ0IHVfbW9kZWxWaWV3UHJvak1hdHJpeDsKKwordmFyeWluZyB2ZWMzIHZfbm9y
bWFsOworCit2b2lkIG1haW4oKQoreworICAgIHZfbm9ybWFsID0gYV9ub3JtYWw7CisgICAgZ2xf
UG9zaXRpb24gPSAgdV9tb2RlbFZpZXdQcm9qTWF0cml4ICogYV92ZXJ0ZXg7Cit9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyBiL0xheW91dFRlc3RzL3dlYmdsL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3Jlc291cmNlcy93ZWJnbC10ZXN0
LXV0aWxzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2MjEyMmM5MDdjZGVlOTUzNDQ0NDkxM2QzNjE4ZmM3NDI1
NjBmYmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcwpA
QCAtMCwwICsxLDE5OTggQEAKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3Mg
R3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg
Y2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdh
cmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJp
YWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNs
dWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9k
aWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBz
ZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRv
IHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisq
KiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGlu
IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoq
CisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZ
IE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBM
SU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9S
IEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFO
IEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00s
IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVT
RSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KK3ZhciBXZWJHTFRlc3RV
dGlscyA9IChmdW5jdGlvbigpIHsKKyJ1c2Ugc3RyaWN0IjsKKworLyoqCisgKiBXcmFwcGVkIGxv
Z2dpbmcgZnVuY3Rpb24uCisgKiBAcGFyYW0ge3N0cmluZ30gbXNnIFRoZSBtZXNzYWdlIHRvIGxv
Zy4KKyAqLwordmFyIGxvZyA9IGZ1bmN0aW9uKG1zZykgeworICBpZiAod2luZG93LmNvbnNvbGUg
JiYgd2luZG93LmNvbnNvbGUubG9nKSB7CisgICAgd2luZG93LmNvbnNvbGUubG9nKG1zZyk7Cisg
IH0KK307CisKKy8qKgorICogV3JhcHBlZCBsb2dnaW5nIGZ1bmN0aW9uLgorICogQHBhcmFtIHtz
dHJpbmd9IG1zZyBUaGUgbWVzc2FnZSB0byBsb2cuCisgKi8KK3ZhciBlcnJvciA9IGZ1bmN0aW9u
KG1zZykgeworICBpZiAod2luZG93LmNvbnNvbGUpIHsKKyAgICBpZiAod2luZG93LmNvbnNvbGUu
ZXJyb3IpIHsKKyAgICAgIHdpbmRvdy5jb25zb2xlLmVycm9yKG1zZyk7CisgICAgfQorICAgIGVs
c2UgaWYgKHdpbmRvdy5jb25zb2xlLmxvZykgeworICAgICAgd2luZG93LmNvbnNvbGUubG9nKG1z
Zyk7CisgICAgfQorICB9Cit9OworCisvKioKKyAqIFR1cm4gb2ZmIGFsbCBsb2dnaW5nLgorICov
Cit2YXIgbG9nZ2luZ09mZiA9IGZ1bmN0aW9uKCkgeworICBsb2cgPSBmdW5jdGlvbigpIHt9Owor
ICBlcnJvciA9IGZ1bmN0aW9uKCkge307Cit9OworCisvKioKKyAqIENvbnZlcnRzIGEgV2ViR0wg
ZW51bSB0byBhIHN0cmluZworICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xD
b250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSBUaGUgZW51bSB2YWx1ZS4K
KyAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGVudW0gYXMgYSBzdHJpbmcuCisgKi8KK3ZhciBnbEVu
dW1Ub1N0cmluZyA9IGZ1bmN0aW9uKGdsLCB2YWx1ZSkgeworICBmb3IgKHZhciBwIGluIGdsKSB7
CisgICAgaWYgKGdsW3BdID09IHZhbHVlKSB7CisgICAgICByZXR1cm4gcDsKKyAgICB9CisgIH0K
KyAgcmV0dXJuICIweCIgKyB2YWx1ZS50b1N0cmluZygxNik7Cit9OworCit2YXIgbGFzdEVycm9y
ID0gIiI7CisKKy8qKgorICogUmV0dXJucyB0aGUgbGFzdCBjb21waWxlci9saW5rZXIgZXJyb3Iu
CisgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBsYXN0IGNvbXBpbGVyL2xpbmtlciBlcnJvci4KKyAq
LwordmFyIGdldExhc3RFcnJvciA9IGZ1bmN0aW9uKCkgeworICByZXR1cm4gbGFzdEVycm9yOwor
fTsKKworLyoqCisgKiBXaGV0aGVyIGEgaGF5c3RhY2sgZW5kcyB3aXRoIGEgbmVlZGxlLgorICog
QHBhcmFtIHtzdHJpbmd9IGhheXN0YWNrIFN0cmluZyB0byBzZWFyY2gKKyAqIEBwYXJhbSB7c3Ry
aW5nfSBuZWVkbGUgU3RyaW5nIHRvIHNlYXJjaCBmb3IuCisgKiBAcGFyYW0ge2Jvb2xlYW59IFRy
dWUgaWYgaGF5c3RhY2sgZW5kcyB3aXRoIG5lZWRsZS4KKyAqLwordmFyIGVuZHNXaXRoID0gZnVu
Y3Rpb24oaGF5c3RhY2ssIG5lZWRsZSkgeworICByZXR1cm4gaGF5c3RhY2suc3Vic3RyKGhheXN0
YWNrLmxlbmd0aCAtIG5lZWRsZS5sZW5ndGgpID09PSBuZWVkbGU7Cit9OworCisvKioKKyAqIFdo
ZXRoZXIgYSBoYXlzdGFjayBzdGFydHMgd2l0aCBhIG5lZWRsZS4KKyAqIEBwYXJhbSB7c3RyaW5n
fSBoYXlzdGFjayBTdHJpbmcgdG8gc2VhcmNoCisgKiBAcGFyYW0ge3N0cmluZ30gbmVlZGxlIFN0
cmluZyB0byBzZWFyY2ggZm9yLgorICogQHBhcmFtIHtib29sZWFufSBUcnVlIGlmIGhheXN0YWNr
IHN0YXJ0cyB3aXRoIG5lZWRsZS4KKyAqLwordmFyIHN0YXJ0c1dpdGggPSBmdW5jdGlvbihoYXlz
dGFjaywgbmVlZGxlKSB7CisgIHJldHVybiBoYXlzdGFjay5zdWJzdHIoMCwgbmVlZGxlLmxlbmd0
aCkgPT09IG5lZWRsZTsKK307CisKKy8qKgorICogQSB2ZXJ0ZXggc2hhZGVyIGZvciBhIHNpbmds
ZSB0ZXh0dXJlLgorICogQHR5cGUge3N0cmluZ30KKyAqLwordmFyIHNpbXBsZVRleHR1cmVWZXJ0
ZXhTaGFkZXIgPSBbCisgICdhdHRyaWJ1dGUgdmVjNCB2UG9zaXRpb247JywKKyAgJ2F0dHJpYnV0
ZSB2ZWMyIHRleENvb3JkMDsnLAorICAndmFyeWluZyB2ZWMyIHRleENvb3JkOycsCisgICd2b2lk
IG1haW4oKSB7JywKKyAgJyAgICBnbF9Qb3NpdGlvbiA9IHZQb3NpdGlvbjsnLAorICAnICAgIHRl
eENvb3JkID0gdGV4Q29vcmQwOycsCisgICd9J10uam9pbignXG4nKTsKKworLyoqCisgKiBBIGZy
YWdtZW50IHNoYWRlciBmb3IgYSBzaW5nbGUgdGV4dHVyZS4KKyAqIEB0eXBlIHtzdHJpbmd9Cisg
Ki8KK3ZhciBzaW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXIgPSBbCisgICdwcmVjaXNpb24gbWVk
aXVtcCBmbG9hdDsnLAorICAndW5pZm9ybSBzYW1wbGVyMkQgdGV4OycsCisgICd2YXJ5aW5nIHZl
YzIgdGV4Q29vcmQ7JywKKyAgJ3ZvaWQgbWFpbigpIHsnLAorICAnICAgIGdsX0ZyYWdEYXRhWzBd
ID0gdGV4dHVyZTJEKHRleCwgdGV4Q29vcmQpOycsCisgICd9J10uam9pbignXG4nKTsKKworLyoq
CisgKiBBIHZlcnRleCBzaGFkZXIgZm9yIGEgc2luZ2xlIHRleHR1cmUuCisgKiBAdHlwZSB7c3Ry
aW5nfQorICovCit2YXIgbm9UZXhDb29yZFRleHR1cmVWZXJ0ZXhTaGFkZXIgPSBbCisgICdhdHRy
aWJ1dGUgdmVjNCB2UG9zaXRpb247JywKKyAgJ3ZhcnlpbmcgdmVjMiB0ZXhDb29yZDsnLAorICAn
dm9pZCBtYWluKCkgeycsCisgICcgICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247JywKKyAgJyAg
ICB0ZXhDb29yZCA9IHZQb3NpdGlvbi54eSAqIDAuNSArIDAuNTsnLAorICAnfSddLmpvaW4oJ1xu
Jyk7CisKKy8qKgorICogQSB2ZXJ0ZXggc2hhZGVyIGZvciBhIHVuaWZvcm0gY29sb3IuCisgKiBA
dHlwZSB7c3RyaW5nfQorICovCit2YXIgc2ltcGxlQ29sb3JWZXJ0ZXhTaGFkZXIgPSBbCisgICdh
dHRyaWJ1dGUgdmVjNCB2UG9zaXRpb247JywKKyAgJ3ZvaWQgbWFpbigpIHsnLAorICAnICAgIGds
X1Bvc2l0aW9uID0gdlBvc2l0aW9uOycsCisgICd9J10uam9pbignXG4nKTsKKworLyoqCisgKiBB
IGZyYWdtZW50IHNoYWRlciBmb3IgYSB1bmlmb3JtIGNvbG9yLgorICogQHR5cGUge3N0cmluZ30K
KyAqLwordmFyIHNpbXBsZUNvbG9yRnJhZ21lbnRTaGFkZXIgPSBbCisgICdwcmVjaXNpb24gbWVk
aXVtcCBmbG9hdDsnLAorICAndW5pZm9ybSB2ZWM0IHVfY29sb3I7JywKKyAgJ3ZvaWQgbWFpbigp
IHsnLAorICAnICAgIGdsX0ZyYWdEYXRhWzBdID0gdV9jb2xvcjsnLAorICAnfSddLmpvaW4oJ1xu
Jyk7CisKKy8qKgorICogQSB2ZXJ0ZXggc2hhZGVyIGZvciB2ZXJ0ZXggY29sb3JzLgorICogQHR5
cGUge3N0cmluZ30KKyAqLwordmFyIHNpbXBsZVZlcnRleENvbG9yVmVydGV4U2hhZGVyID0gWwor
ICAnYXR0cmlidXRlIHZlYzQgdlBvc2l0aW9uOycsCisgICdhdHRyaWJ1dGUgdmVjNCBhX2NvbG9y
OycsCisgICd2YXJ5aW5nIHZlYzQgdl9jb2xvcjsnLAorICAndm9pZCBtYWluKCkgeycsCisgICcg
ICAgZ2xfUG9zaXRpb24gPSB2UG9zaXRpb247JywKKyAgJyAgICB2X2NvbG9yID0gYV9jb2xvcjsn
LAorICAnfSddLmpvaW4oJ1xuJyk7CisKKy8qKgorICogQSBmcmFnbWVudCBzaGFkZXIgZm9yIHZl
cnRleCBjb2xvcnMuCisgKiBAdHlwZSB7c3RyaW5nfQorICovCit2YXIgc2ltcGxlVmVydGV4Q29s
b3JGcmFnbWVudFNoYWRlciA9IFsKKyAgJ3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OycsCisgICd2
YXJ5aW5nIHZlYzQgdl9jb2xvcjsnLAorICAndm9pZCBtYWluKCkgeycsCisgICcgICAgZ2xfRnJh
Z0RhdGFbMF0gPSB2X2NvbG9yOycsCisgICd9J10uam9pbignXG4nKTsKKworLyoqCisgKiBDcmVh
dGVzIGEgc2ltcGxlIHRleHR1cmUgdmVydGV4IHNoYWRlci4KKyAqIEBwYXJhbSB7IVdlYkdMQ29u
dGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCisgKiBAcmV0dXJuIHshV2ViR0xTaGFk
ZXJ9CisgKi8KK3ZhciBzZXR1cFNpbXBsZVRleHR1cmVWZXJ0ZXhTaGFkZXIgPSBmdW5jdGlvbihn
bCkgeworICAgIHJldHVybiBsb2FkU2hhZGVyKGdsLCBzaW1wbGVUZXh0dXJlVmVydGV4U2hhZGVy
LCBnbC5WRVJURVhfU0hBREVSKTsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIHNpbXBsZSB0ZXh0
dXJlIGZyYWdtZW50IHNoYWRlci4KKyAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdl
YkdMQ29udGV4dCB0byB1c2UuCisgKiBAcmV0dXJuIHshV2ViR0xTaGFkZXJ9CisgKi8KK3ZhciBz
ZXR1cFNpbXBsZVRleHR1cmVGcmFnbWVudFNoYWRlciA9IGZ1bmN0aW9uKGdsKSB7CisgICAgcmV0
dXJuIGxvYWRTaGFkZXIoCisgICAgICAgIGdsLCBzaW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXIs
IGdsLkZSQUdNRU5UX1NIQURFUik7Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSB0ZXh0dXJlIHZl
cnRleCBzaGFkZXIgdGhhdCBkb2Vzbid0IG5lZWQgdGV4Y29vcmRzLgorICogQHBhcmFtIHshV2Vi
R0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KKyAqIEByZXR1cm4geyFXZWJH
TFNoYWRlcn0KKyAqLwordmFyIHNldHVwTm9UZXhDb29yZFRleHR1cmVWZXJ0ZXhTaGFkZXIgPSBm
dW5jdGlvbihnbCkgeworICAgIHJldHVybiBsb2FkU2hhZGVyKGdsLCBub1RleENvb3JkVGV4dHVy
ZVZlcnRleFNoYWRlciwgZ2wuVkVSVEVYX1NIQURFUik7Cit9OworCisvKioKKyAqIENyZWF0ZXMg
YSBzaW1wbGUgdmVydGV4IGNvbG9yIHZlcnRleCBzaGFkZXIuCisgKiBAcGFyYW0geyFXZWJHTENv
bnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgorICogQHJldHVybiB7IVdlYkdMU2hh
ZGVyfQorICovCit2YXIgc2V0dXBTaW1wbGVWZXJ0ZXhDb2xvclZlcnRleFNoYWRlciA9IGZ1bmN0
aW9uKGdsKSB7CisgICAgcmV0dXJuIGxvYWRTaGFkZXIoZ2wsIHNpbXBsZVZlcnRleENvbG9yVmVy
dGV4U2hhZGVyLCBnbC5WRVJURVhfU0hBREVSKTsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIHNp
bXBsZSB2ZXJ0ZXggY29sb3IgZnJhZ21lbnQgc2hhZGVyLgorICogQHBhcmFtIHshV2ViR0xDb250
ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KKyAqIEByZXR1cm4geyFXZWJHTFNoYWRl
cn0KKyAqLwordmFyIHNldHVwU2ltcGxlVmVydGV4Q29sb3JGcmFnbWVudFNoYWRlciA9IGZ1bmN0
aW9uKGdsKSB7CisgICAgcmV0dXJuIGxvYWRTaGFkZXIoCisgICAgICAgIGdsLCBzaW1wbGVWZXJ0
ZXhDb2xvckZyYWdtZW50U2hhZGVyLCBnbC5GUkFHTUVOVF9TSEFERVIpOworfTsKKworLyoqCisg
KiBDcmVhdGVzIGEgc2ltcGxlIGNvbG9yIHZlcnRleCBzaGFkZXIuCisgKiBAcGFyYW0geyFXZWJH
TENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgorICogQHJldHVybiB7IVdlYkdM
U2hhZGVyfQorICovCit2YXIgc2V0dXBTaW1wbGVDb2xvclZlcnRleFNoYWRlciA9IGZ1bmN0aW9u
KGdsKSB7CisgICAgcmV0dXJuIGxvYWRTaGFkZXIoZ2wsIHNpbXBsZUNvbG9yVmVydGV4U2hhZGVy
LCBnbC5WRVJURVhfU0hBREVSKTsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIHNpbXBsZSBjb2xv
ciBmcmFnbWVudCBzaGFkZXIuCisgKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJH
TENvbnRleHQgdG8gdXNlLgorICogQHJldHVybiB7IVdlYkdMU2hhZGVyfQorICovCit2YXIgc2V0
dXBTaW1wbGVDb2xvckZyYWdtZW50U2hhZGVyID0gZnVuY3Rpb24oZ2wpIHsKKyAgICByZXR1cm4g
bG9hZFNoYWRlcigKKyAgICAgICAgZ2wsIHNpbXBsZUNvbG9yRnJhZ21lbnRTaGFkZXIsIGdsLkZS
QUdNRU5UX1NIQURFUik7Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSBwcm9ncmFtLCBhdHRhY2hl
cyBzaGFkZXJzLCBiaW5kcyBhdHRyaWIgbG9jYXRpb25zLCBsaW5rcyB0aGUKKyAqIHByb2dyYW0g
YW5kIGNhbGxzIHVzZVByb2dyYW0uCisgKiBAcGFyYW0geyFBcnJheS48IVdlYkdMU2hhZGVyfHN0
cmluZz59IHNoYWRlcnMgVGhlIHNoYWRlcnMgdG8KKyAqICAgICAgICBhdHRhY2gsIG9yIHRoZSBz
b3VyY2UsIG9yIHRoZSBpZCBvZiBhIHNjcmlwdCB0byBnZXQKKyAqICAgICAgICB0aGUgc291cmNl
IGZyb20uCisgKiBAcGFyYW0geyFBcnJheS48c3RyaW5nPn0gb3B0X2F0dHJpYnMgVGhlIGF0dHJp
YnMgbmFtZXMuCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gb3B0X2xvY2F0aW9ucyBUaGUg
bG9jYXRpb25zIGZvciB0aGUgYXR0cmlicy4KKyAqLwordmFyIHNldHVwUHJvZ3JhbSA9IGZ1bmN0
aW9uKGdsLCBzaGFkZXJzLCBvcHRfYXR0cmlicywgb3B0X2xvY2F0aW9ucykgeworICB2YXIgcmVh
bFNoYWRlcnMgPSBbXTsKKyAgdmFyIHByb2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7CisgIHZh
ciBzaGFkZXJUeXBlID0gdW5kZWZpbmVkOworICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgc2hhZGVy
cy5sZW5ndGg7ICsraWkpIHsKKyAgICB2YXIgc2hhZGVyID0gc2hhZGVyc1tpaV07CisgICAgaWYg
KHR5cGVvZiBzaGFkZXIgPT0gJ3N0cmluZycpIHsKKyAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoc2hhZGVyKTsKKyAgICAgIGlmIChlbGVtZW50KSB7CisgICAgICAg
IGlmIChlbGVtZW50LnR5cGUgIT0gIngtc2hhZGVyL3gtdmVydGV4IiAmJiBlbGVtZW50LnR5cGUg
IT0gIngtc2hhZGVyL3gtZnJhZ21lbnQiKQorICAgICAgICAgIHNoYWRlclR5cGUgPSBpaSA/IGds
LkZSQUdNRU5UX1NIQURFUiA6IGdsLlZFUlRFWF9TSEFERVI7CisgICAgICAgIHNoYWRlciA9IGxv
YWRTaGFkZXJGcm9tU2NyaXB0KGdsLCBzaGFkZXIsIHNoYWRlclR5cGUpOworICAgICAgfSBlbHNl
IGlmIChlbmRzV2l0aChzaGFkZXIsICIudmVydCIpKSB7CisgICAgICAgIHNoYWRlciA9IGxvYWRT
aGFkZXJGcm9tRmlsZShnbCwgc2hhZGVyLCBnbC5WRVJURVhfU0hBREVSKTsKKyAgICAgIH0gZWxz
ZSBpZiAoZW5kc1dpdGgoc2hhZGVyLCAiLmZyYWciKSkgeworICAgICAgICBzaGFkZXIgPSBsb2Fk
U2hhZGVyRnJvbUZpbGUoZ2wsIHNoYWRlciwgZ2wuRlJBR01FTlRfU0hBREVSKTsKKyAgICAgIH0g
ZWxzZSB7CisgICAgICAgIHNoYWRlciA9IGxvYWRTaGFkZXIoZ2wsIHNoYWRlciwgaWkgPyBnbC5G
UkFHTUVOVF9TSEFERVIgOiBnbC5WRVJURVhfU0hBREVSKTsKKyAgICAgIH0KKyAgICB9CisgICAg
Z2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIHNoYWRlcik7CisgIH0KKyAgaWYgKG9wdF9hdHRyaWJz
KSB7CisgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IG9wdF9hdHRyaWJzLmxlbmd0aDsgKytpaSkg
eworICAgICAgZ2wuYmluZEF0dHJpYkxvY2F0aW9uKAorICAgICAgICAgIHByb2dyYW0sCisgICAg
ICAgICAgb3B0X2xvY2F0aW9ucyA/IG9wdF9sb2NhdGlvbnNbaWldIDogaWksCisgICAgICAgICAg
b3B0X2F0dHJpYnNbaWldKTsKKyAgICB9CisgIH0KKyAgZ2wubGlua1Byb2dyYW0ocHJvZ3JhbSk7
CisKKyAgLy8gQ2hlY2sgdGhlIGxpbmsgc3RhdHVzCisgIHZhciBsaW5rZWQgPSBnbC5nZXRQcm9n
cmFtUGFyYW1ldGVyKHByb2dyYW0sIGdsLkxJTktfU1RBVFVTKTsKKyAgaWYgKCFsaW5rZWQpIHsK
KyAgICAgIC8vIHNvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggdGhlIGxpbmsKKyAgICAgIGxhc3RF
cnJvciA9IGdsLmdldFByb2dyYW1JbmZvTG9nIChwcm9ncmFtKTsKKyAgICAgIGVycm9yKCJFcnJv
ciBpbiBwcm9ncmFtIGxpbmtpbmc6IiArIGxhc3RFcnJvcik7CisKKyAgICAgIGdsLmRlbGV0ZVBy
b2dyYW0ocHJvZ3JhbSk7CisgICAgICByZXR1cm4gbnVsbDsKKyAgfQorCisgIGdsLnVzZVByb2dy
YW0ocHJvZ3JhbSk7CisgIHJldHVybiBwcm9ncmFtOworfTsKKworLyoqCisgKiBDcmVhdGVzIGEg
c2ltcGxlIHRleHR1cmUgcHJvZ3JhbS4KKyAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhl
IFdlYkdMQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9uTG9j
YXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24uCisgKiBAcGFyYW0ge251bWJl
cn0gb3B0X3RleGNvb3JkTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgdGV4dHVyZSBj
b29yZHMuCisgKiBAcmV0dXJuIHtXZWJHTFByb2dyYW19CisgKi8KK3ZhciBzZXR1cFNpbXBsZVRl
eHR1cmVQcm9ncmFtID0gZnVuY3Rpb24oCisgICAgZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBv
cHRfdGV4Y29vcmRMb2NhdGlvbikgeworICBvcHRfcG9zaXRpb25Mb2NhdGlvbiA9IG9wdF9wb3Np
dGlvbkxvY2F0aW9uIHx8IDA7CisgIG9wdF90ZXhjb29yZExvY2F0aW9uID0gb3B0X3RleGNvb3Jk
TG9jYXRpb24gfHwgMTsKKyAgdmFyIHZzID0gc2V0dXBTaW1wbGVUZXh0dXJlVmVydGV4U2hhZGVy
KGdsKTsKKyAgdmFyIGZzID0gc2V0dXBTaW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXIoZ2wpOwor
ICBpZiAoIXZzIHx8ICFmcykgeworICAgIHJldHVybiBudWxsOworICB9CisgIHZhciBwcm9ncmFt
ID0gc2V0dXBQcm9ncmFtKAorICAgICAgZ2wsCisgICAgICBbdnMsIGZzXSwKKyAgICAgIFsndlBv
c2l0aW9uJywgJ3RleENvb3JkMCddLAorICAgICAgW29wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRf
dGV4Y29vcmRMb2NhdGlvbl0pOworICBpZiAoIXByb2dyYW0pIHsKKyAgICBnbC5kZWxldGVTaGFk
ZXIoZnMpOworICAgIGdsLmRlbGV0ZVNoYWRlcih2cyk7CisgIH0KKyAgZ2wudXNlUHJvZ3JhbShw
cm9ncmFtKTsKKyAgcmV0dXJuIHByb2dyYW07Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSBzaW1w
bGUgdGV4dHVyZSBwcm9ncmFtLgorICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2Vi
R0xDb250ZXh0IHRvIHVzZS4KKyAqIEByZXR1cm4ge1dlYkdMUHJvZ3JhbX0KKyAqLwordmFyIHNl
dHVwTm9UZXhDb29yZFRleHR1cmVQcm9ncmFtID0gZnVuY3Rpb24oZ2wpIHsKKyAgdmFyIHZzID0g
c2V0dXBOb1RleENvb3JkVGV4dHVyZVZlcnRleFNoYWRlcihnbCk7CisgIHZhciBmcyA9IHNldHVw
U2ltcGxlVGV4dHVyZUZyYWdtZW50U2hhZGVyKGdsKTsKKyAgaWYgKCF2cyB8fCAhZnMpIHsKKyAg
ICByZXR1cm4gbnVsbDsKKyAgfQorICB2YXIgcHJvZ3JhbSA9IHNldHVwUHJvZ3JhbSgKKyAgICAg
IGdsLAorICAgICAgW3ZzLCBmc10sCisgICAgICBbJ3ZQb3NpdGlvbiddLAorICAgICAgWzBdKTsK
KyAgaWYgKCFwcm9ncmFtKSB7CisgICAgZ2wuZGVsZXRlU2hhZGVyKGZzKTsKKyAgICBnbC5kZWxl
dGVTaGFkZXIodnMpOworICB9CisgIGdsLnVzZVByb2dyYW0ocHJvZ3JhbSk7CisgIHJldHVybiBw
cm9ncmFtOworfTsKKworLyoqCisgKiBDcmVhdGVzIGEgc2ltcGxlIHRleHR1cmUgcHJvZ3JhbS4K
KyAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCisg
KiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlv
biBmb3IgcG9zaXRpb24uCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X3RleGNvb3JkTG9jYXRpb24g
VGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgdGV4dHVyZSBjb29yZHMuCisgKiBAcmV0dXJuIHtXZWJH
TFByb2dyYW19CisgKi8KK3ZhciBzZXR1cFNpbXBsZVRleHR1cmVQcm9ncmFtID0gZnVuY3Rpb24o
CisgICAgZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbikgewor
ICBvcHRfcG9zaXRpb25Mb2NhdGlvbiA9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIHx8IDA7CisgIG9w
dF90ZXhjb29yZExvY2F0aW9uID0gb3B0X3RleGNvb3JkTG9jYXRpb24gfHwgMTsKKyAgdmFyIHZz
ID0gc2V0dXBTaW1wbGVUZXh0dXJlVmVydGV4U2hhZGVyKGdsKTsKKyAgdmFyIGZzID0gc2V0dXBT
aW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXIoZ2wpOworICBpZiAoIXZzIHx8ICFmcykgeworICAg
IHJldHVybiBudWxsOworICB9CisgIHZhciBwcm9ncmFtID0gc2V0dXBQcm9ncmFtKAorICAgICAg
Z2wsCisgICAgICBbdnMsIGZzXSwKKyAgICAgIFsndlBvc2l0aW9uJywgJ3RleENvb3JkMCddLAor
ICAgICAgW29wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbl0pOworICBp
ZiAoIXByb2dyYW0pIHsKKyAgICBnbC5kZWxldGVTaGFkZXIoZnMpOworICAgIGdsLmRlbGV0ZVNo
YWRlcih2cyk7CisgIH0KKyAgZ2wudXNlUHJvZ3JhbShwcm9ncmFtKTsKKyAgcmV0dXJuIHByb2dy
YW07Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSBzaW1wbGUgdmVydGV4IGNvbG9yIHByb2dyYW0u
CisgKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgor
ICogQHBhcmFtIHtudW1iZXJ9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRp
b24gZm9yIHBvc2l0aW9uLgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF92ZXJ0ZXhDb2xvckxvY2F0
aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24KKyAqICAgICAgICBmb3IgdmVydGV4IGNvbG9ycy4KKyAq
IEByZXR1cm4ge1dlYkdMUHJvZ3JhbX0KKyAqLwordmFyIHNldHVwU2ltcGxlVmVydGV4Q29sb3JQ
cm9ncmFtID0gZnVuY3Rpb24oCisgICAgZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdmVy
dGV4Q29sb3JMb2NhdGlvbikgeworICBvcHRfcG9zaXRpb25Mb2NhdGlvbiA9IG9wdF9wb3NpdGlv
bkxvY2F0aW9uIHx8IDA7CisgIG9wdF92ZXJ0ZXhDb2xvckxvY2F0aW9uID0gb3B0X3ZlcnRleENv
bG9yTG9jYXRpb24gfHwgMTsKKyAgdmFyIHZzID0gc2V0dXBTaW1wbGVWZXJ0ZXhDb2xvclZlcnRl
eFNoYWRlcihnbCk7CisgIHZhciBmcyA9IHNldHVwU2ltcGxlVmVydGV4Q29sb3JGcmFnbWVudFNo
YWRlcihnbCk7CisgIGlmICghdnMgfHwgIWZzKSB7CisgICAgcmV0dXJuIG51bGw7CisgIH0KKyAg
dmFyIHByb2dyYW0gPSBzZXR1cFByb2dyYW0oCisgICAgICBnbCwKKyAgICAgIFt2cywgZnNdLAor
ICAgICAgWyd2UG9zaXRpb24nLCAnYV9jb2xvciddLAorICAgICAgW29wdF9wb3NpdGlvbkxvY2F0
aW9uLCBvcHRfdmVydGV4Q29sb3JMb2NhdGlvbl0pOworICBpZiAoIXByb2dyYW0pIHsKKyAgICBn
bC5kZWxldGVTaGFkZXIoZnMpOworICAgIGdsLmRlbGV0ZVNoYWRlcih2cyk7CisgIH0KKyAgZ2wu
dXNlUHJvZ3JhbShwcm9ncmFtKTsKKyAgcmV0dXJuIHByb2dyYW07Cit9OworCisvKioKKyAqIENy
ZWF0ZXMgYSBzaW1wbGUgY29sb3IgcHJvZ3JhbS4KKyAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0g
Z2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0
aW9uTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24uCisgKiBAcmV0dXJu
IHtXZWJHTFByb2dyYW19CisgKi8KK3ZhciBzZXR1cFNpbXBsZUNvbG9yUHJvZ3JhbSA9IGZ1bmN0
aW9uKGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbikgeworICBvcHRfcG9zaXRpb25Mb2NhdGlvbiA9
IG9wdF9wb3NpdGlvbkxvY2F0aW9uIHx8IDA7CisgIHZhciB2cyA9IHNldHVwU2ltcGxlQ29sb3JW
ZXJ0ZXhTaGFkZXIoZ2wpOworICB2YXIgZnMgPSBzZXR1cFNpbXBsZUNvbG9yRnJhZ21lbnRTaGFk
ZXIoZ2wpOworICBpZiAoIXZzIHx8ICFmcykgeworICAgIHJldHVybiBudWxsOworICB9CisgIHZh
ciBwcm9ncmFtID0gc2V0dXBQcm9ncmFtKAorICAgICAgZ2wsCisgICAgICBbdnMsIGZzXSwKKyAg
ICAgIFsndlBvc2l0aW9uJ10sCisgICAgICBbb3B0X3Bvc2l0aW9uTG9jYXRpb25dKTsKKyAgaWYg
KCFwcm9ncmFtKSB7CisgICAgZ2wuZGVsZXRlU2hhZGVyKGZzKTsKKyAgICBnbC5kZWxldGVTaGFk
ZXIodnMpOworICB9CisgIGdsLnVzZVByb2dyYW0ocHJvZ3JhbSk7CisgIHJldHVybiBwcm9ncmFt
OworfTsKKworLyoqCisgKiBDcmVhdGVzIGJ1ZmZlcnMgZm9yIGEgdGV4dHVyZWQgdW5pdCBxdWFk
IGFuZCBhdHRhY2hlcyB0aGVtIHRvIHZlcnRleCBhdHRyaWJzLgorICogQHBhcmFtIHshV2ViR0xD
b250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSBv
cHRfcG9zaXRpb25Mb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9uIGZvciBwb3NpdGlvbi4KKyAq
IEBwYXJhbSB7bnVtYmVyfSBvcHRfdGV4Y29vcmRMb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9u
IGZvciB0ZXh0dXJlIGNvb3Jkcy4KKyAqIEByZXR1cm4geyFBcnJheS48V2ViR0xCdWZmZXI+fSBU
aGUgYnVmZmVyIG9iamVjdHMgdGhhdCB3ZXJlCisgKiAgICAgIGNyZWF0ZWQuCisgKi8KK3ZhciBz
ZXR1cFVuaXRRdWFkID0gZnVuY3Rpb24oZ2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4
Y29vcmRMb2NhdGlvbikgeworICByZXR1cm4gc2V0dXBVbml0UXVhZFdpdGhUZXhDb29yZHMoZ2ws
IFsgMC4wLCAwLjAgXSwgWyAxLjAsIDEuMCBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3B0X3Bvc2l0aW9uTG9jYXRpb24sIG9wdF90ZXhjb29yZExvY2F0aW9uKTsKK307
CisKKy8qKgorICogQ3JlYXRlcyBidWZmZXJzIGZvciBhIHRleHR1cmVkIHVuaXQgcXVhZCB3aXRo
IHNwZWNpZmllZCBsb3dlciBsZWZ0CisgKiBhbmQgdXBwZXIgcmlnaHQgdGV4dHVyZSBjb29yZGlu
YXRlcywgYW5kIGF0dGFjaGVzIHRoZW0gdG8gdmVydGV4CisgKiBhdHRyaWJzLgorICogQHBhcmFt
IHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7
IUFycmF5LjxudW1iZXI+fSBsb3dlckxlZnRUZXhDb29yZHMgVGhlIHRleHR1cmUgY29vcmRpbmF0
ZXMgZm9yIHRoZSBsb3dlciBsZWZ0IGNvcm5lci4KKyAqIEBwYXJhbSB7IUFycmF5LjxudW1iZXI+
fSB1cHBlclJpZ2h0VGV4Q29vcmRzIFRoZSB0ZXh0dXJlIGNvb3JkaW5hdGVzIGZvciB0aGUgdXBw
ZXIgcmlnaHQgY29ybmVyLgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF9wb3NpdGlvbkxvY2F0aW9u
IFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBvc2l0aW9uLgorICogQHBhcmFtIHtudW1iZXJ9IG9w
dF90ZXhjb29yZExvY2F0aW9uIFRoZSBhdHRyaWIgbG9jYXRpb24gZm9yIHRleHR1cmUgY29vcmRz
LgorICogQHJldHVybiB7IUFycmF5LjxXZWJHTEJ1ZmZlcj59IFRoZSBidWZmZXIgb2JqZWN0cyB0
aGF0IHdlcmUKKyAqICAgICAgY3JlYXRlZC4KKyAqLwordmFyIHNldHVwVW5pdFF1YWRXaXRoVGV4
Q29vcmRzID0gZnVuY3Rpb24oCisgICAgZ2wsIGxvd2VyTGVmdFRleENvb3JkcywgdXBwZXJSaWdo
dFRleENvb3JkcywKKyAgICBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRp
b24pIHsKKyAgb3B0X3Bvc2l0aW9uTG9jYXRpb24gPSBvcHRfcG9zaXRpb25Mb2NhdGlvbiB8fCAw
OworICBvcHRfdGV4Y29vcmRMb2NhdGlvbiA9IG9wdF90ZXhjb29yZExvY2F0aW9uIHx8IDE7Cisg
IHZhciBvYmplY3RzID0gW107CisKKyAgdmFyIHZlcnRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZl
cigpOworICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKKyAg
Z2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIG5ldyBGbG9hdDMyQXJyYXkoWworICAgICAg
IDEuMCwgIDEuMCwgMC4wLAorICAgICAgLTEuMCwgIDEuMCwgMC4wLAorICAgICAgLTEuMCwgLTEu
MCwgMC4wLAorICAgICAgIDEuMCwgIDEuMCwgMC4wLAorICAgICAgLTEuMCwgLTEuMCwgMC4wLAor
ICAgICAgIDEuMCwgLTEuMCwgMC4wXSksIGdsLlNUQVRJQ19EUkFXKTsKKyAgZ2wuZW5hYmxlVmVy
dGV4QXR0cmliQXJyYXkob3B0X3Bvc2l0aW9uTG9jYXRpb24pOworICBnbC52ZXJ0ZXhBdHRyaWJQ
b2ludGVyKG9wdF9wb3NpdGlvbkxvY2F0aW9uLCAzLCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApOwor
ICBvYmplY3RzLnB1c2godmVydGV4T2JqZWN0KTsKKworICB2YXIgbGx4ID0gbG93ZXJMZWZ0VGV4
Q29vcmRzWzBdOworICB2YXIgbGx5ID0gbG93ZXJMZWZ0VGV4Q29vcmRzWzFdOworICB2YXIgdXJ4
ID0gdXBwZXJSaWdodFRleENvb3Jkc1swXTsKKyAgdmFyIHVyeSA9IHVwcGVyUmlnaHRUZXhDb29y
ZHNbMV07CisKKyAgdmFyIHZlcnRleE9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICBnbC5i
aW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKKyAgZ2wuYnVmZmVyRGF0
YShnbC5BUlJBWV9CVUZGRVIsIG5ldyBGbG9hdDMyQXJyYXkoWworICAgICAgdXJ4LCB1cnksCisg
ICAgICBsbHgsIHVyeSwKKyAgICAgIGxseCwgbGx5LAorICAgICAgdXJ4LCB1cnksCisgICAgICBs
bHgsIGxseSwKKyAgICAgIHVyeCwgbGx5XSksIGdsLlNUQVRJQ19EUkFXKTsKKyAgZ2wuZW5hYmxl
VmVydGV4QXR0cmliQXJyYXkob3B0X3RleGNvb3JkTG9jYXRpb24pOworICBnbC52ZXJ0ZXhBdHRy
aWJQb2ludGVyKG9wdF90ZXhjb29yZExvY2F0aW9uLCAyLCBnbC5GTE9BVCwgZmFsc2UsIDAsIDAp
OworICBvYmplY3RzLnB1c2godmVydGV4T2JqZWN0KTsKKyAgcmV0dXJuIG9iamVjdHM7Cit9Owor
CisvKioKKyAqIENyZWF0ZXMgYSBwcm9ncmFtIGFuZCBidWZmZXJzIGZvciByZW5kZXJpbmcgYSB0
ZXh0dXJlZCBxdWFkLgorICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250
ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfcG9zaXRpb25Mb2NhdGlvbiBUaGUg
YXR0cmliIGxvY2F0aW9uIGZvcgorICogICAgICAgIHBvc2l0aW9uLiBEZWZhdWx0ID0gMC4KKyAq
IEBwYXJhbSB7bnVtYmVyfSBvcHRfdGV4Y29vcmRMb2NhdGlvbiBUaGUgYXR0cmliIGxvY2F0aW9u
IGZvcgorICogICAgICAgIHRleHR1cmUgY29vcmRzLiBEZWZhdWx0ID0gMC4KKyAqIEByZXR1cm4g
eyFXZWJHTFByb2dyYW19CisgKi8KK3ZhciBzZXR1cFRleHR1cmVkUXVhZCA9IGZ1bmN0aW9uKAor
ICAgIGdsLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRpb24pIHsKKyAg
dmFyIHByb2dyYW0gPSBzZXR1cFNpbXBsZVRleHR1cmVQcm9ncmFtKAorICAgICAgZ2wsIG9wdF9w
b3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbik7CisgIHNldHVwVW5pdFF1YWQo
Z2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbik7CisgIHJldHVy
biBwcm9ncmFtOworfTsKKworLyoqCisgKiBDcmVhdGVzIGEgcHJvZ3JhbSBhbmQgYnVmZmVycyBm
b3IgcmVuZGVyaW5nIGEgY29sb3IgcXVhZC4KKyAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wg
VGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9u
TG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24uCisgKiBAcmV0dXJuIHsh
V2ViR0xQcm9ncmFtfQorICovCit2YXIgc2V0dXBDb2xvclF1YWQgPSBmdW5jdGlvbihnbCwgb3B0
X3Bvc2l0aW9uTG9jYXRpb24pIHsKKyAgb3B0X3Bvc2l0aW9uTG9jYXRpb24gPSBvcHRfcG9zaXRp
b25Mb2NhdGlvbiB8fCAwOworICB2YXIgcHJvZ3JhbSA9IHNldHVwU2ltcGxlQ29sb3JQcm9ncmFt
KGdsKTsKKyAgc2V0dXBVbml0UXVhZChnbCwgb3B0X3Bvc2l0aW9uTG9jYXRpb24pOworICByZXR1
cm4gcHJvZ3JhbTsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIHByb2dyYW0gYW5kIGJ1ZmZlcnMg
Zm9yIHJlbmRlcmluZyBhIHRleHR1cmVkIHF1YWQgd2l0aAorICogc3BlY2lmaWVkIGxvd2VyIGxl
ZnQgYW5kIHVwcGVyIHJpZ2h0IHRleHR1cmUgY29vcmRpbmF0ZXMuCisgKiBAcGFyYW0geyFXZWJH
TENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHshQXJyYXku
PG51bWJlcj59IGxvd2VyTGVmdFRleENvb3JkcyBUaGUgdGV4dHVyZSBjb29yZGluYXRlcyBmb3Ig
dGhlIGxvd2VyIGxlZnQgY29ybmVyLgorICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IHVwcGVy
UmlnaHRUZXhDb29yZHMgVGhlIHRleHR1cmUgY29vcmRpbmF0ZXMgZm9yIHRoZSB1cHBlciByaWdo
dCBjb3JuZXIuCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X3Bvc2l0aW9uTG9jYXRpb24gVGhlIGF0
dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24uCisgKiBAcGFyYW0ge251bWJlcn0gb3B0X3RleGNv
b3JkTG9jYXRpb24gVGhlIGF0dHJpYiBsb2NhdGlvbiBmb3IgdGV4dHVyZSBjb29yZHMuCisgKiBA
cmV0dXJuIHshV2ViR0xQcm9ncmFtfQorICovCit2YXIgc2V0dXBUZXh0dXJlZFF1YWRXaXRoVGV4
Q29vcmRzID0gZnVuY3Rpb24oCisgICAgZ2wsIGxvd2VyTGVmdFRleENvb3JkcywgdXBwZXJSaWdo
dFRleENvb3JkcywKKyAgICBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X3RleGNvb3JkTG9jYXRp
b24pIHsKKyAgdmFyIHByb2dyYW0gPSBzZXR1cFNpbXBsZVRleHR1cmVQcm9ncmFtKAorICAgICAg
Z2wsIG9wdF9wb3NpdGlvbkxvY2F0aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbik7CisgIHNldHVw
VW5pdFF1YWRXaXRoVGV4Q29vcmRzKGdsLCBsb3dlckxlZnRUZXhDb29yZHMsIHVwcGVyUmlnaHRU
ZXhDb29yZHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF9wb3NpdGlvbkxvY2F0
aW9uLCBvcHRfdGV4Y29vcmRMb2NhdGlvbik7CisgIHJldHVybiBwcm9ncmFtOworfTsKKworLyoq
CisgKiBDcmVhdGVzIGEgdW5pdCBxdWFkIHdpdGggb25seSBwb3NpdGlvbnMgb2YgYSBnaXZlbiBy
ZXNvbHV0aW9uLgorICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0
IHRvIHVzZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSBncmlkUmVzIFRoZSByZXNvbHV0aW9uIG9mIHRo
ZSBtZXNoIGdyaWQsCisgKiAgICAgZXhwcmVzc2VkIGluIHRoZSBudW1iZXIgb2YgcXVhZHMgYWNy
b3NzIGFuZCBkb3duLgorICogQHBhcmFtIHtudW1iZXJ9IG9wdF9wb3NpdGlvbkxvY2F0aW9uIFRo
ZSBhdHRyaWIgbG9jYXRpb24gZm9yIHBvc2l0aW9uLgorICovCit2YXIgc2V0dXBRdWFkID0gZnVu
Y3Rpb24gKAorICAgIGdsLCBncmlkUmVzLCBvcHRfcG9zaXRpb25Mb2NhdGlvbiwgb3B0X2ZsaXBP
ZGRUcmlhbmdsZXMpIHsKKyAgcmV0dXJuIHNldHVwUXVhZFdpdGhPcHRpb25zKGdsLAorICAgIHsg
Z3JpZFJlczogZ3JpZFJlcywKKyAgICAgIHBvc2l0aW9uTG9jYXRpb246IG9wdF9wb3NpdGlvbkxv
Y2F0aW9uLAorICAgICAgZmxpcE9kZFRyaWFuZ2xlczogb3B0X2ZsaXBPZGRUcmlhbmdsZXMKKyAg
ICB9KTsKK307CisKKy8qKgorICogQ3JlYXRlcyBhIHF1YWQgd2l0aCB2YXJpb3VzIG9wdGlvbnMu
CisgKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgor
ICogQHBhcmFtIHshT2JqZWN0KSBvcHRpb25zIFRoZSBvcHRpb25zLiBTZWUgYmVsb3cuCisgKiBA
cmV0dXJuIHshQXJyYXkuPFdlYkdMQnVmZmVyPn0gVGhlIGNyZWF0ZWQgYnVmZmVycy4KKyAqICAg
ICBbcG9zaXRpb25zLCA8Y29sb3JzPiwgaW5kaWNlc10KKyAqCisgKiBPcHRpb25zOgorICogICBn
cmlkUmVzOiBudW1iZXIgb2YgcXVhZHMgYWNyb3NzIGFuZCBkb3duIGdyaWQuCisgKiAgIHBvc2l0
aW9uTG9jYXRpb246IGF0dHJpYiBsb2NhdGlvbiBmb3IgcG9zaXRpb24KKyAqICAgZmxpcE9kZFRy
aWFuZ2xlczogcmV2ZXJzZSBvcmRlciBvZiB2ZXJ0aWNlcyBvZiBldmVyeSBvdGhlcgorICogICAg
ICAgdHJpYW5nbGUKKyAqICAgcG9zaXRpb25PZmZzZXQ6IG9mZnNldCBhZGRlZCB0byBlYWNoIHZl
cnRleAorICogICBwb3NpdGlvbk11bHQ6IG11bHRpcGllciBmb3IgZWFjaCB2ZXJ0ZXgKKyAqICAg
Y29sb3JMb2NhdGlvbjogYXR0cmliIGxvY2F0aW9uIGZvciB2ZXJ0ZXggY29sb3JzLiBJZgorICog
ICAgICB1bmRlZmluZWQgbm8gdmVydGV4IGNvbG9ycyB3aWxsIGJlIGNyZWF0ZWQuCisgKi8KK3Zh
ciBzZXR1cFF1YWRXaXRoT3B0aW9ucyA9IGZ1bmN0aW9uIChnbCwgb3B0aW9ucykgeworICB2YXIg
cG9zaXRpb25Mb2NhdGlvbiA9IG9wdGlvbnMucG9zaXRpb25Mb2NhdGlvbiB8fCAwOworICB2YXIg
b2JqZWN0cyA9IFtdOworCisgIHZhciBncmlkUmVzID0gb3B0aW9ucy5ncmlkUmVzIHx8IDE7Cisg
IHZhciBwb3NpdGlvbk9mZnNldCA9IG9wdGlvbnMucG9zaXRpb25PZmZzZXQgfHwgMDsKKyAgdmFy
IHBvc2l0aW9uTXVsdCA9IG9wdGlvbnMucG9zaXRpb25NdWx0IHx8IDE7CisgIHZhciB2ZXJ0c0Fj
cm9zcyA9IGdyaWRSZXMgKyAxOworICB2YXIgbnVtVmVydHMgPSB2ZXJ0c0Fjcm9zcyAqIHZlcnRz
QWNyb3NzOworICB2YXIgcG9zaXRpb25zID0gbmV3IEZsb2F0MzJBcnJheShudW1WZXJ0cyAqIDMp
OworICB2YXIgaW5kaWNlcyA9IG5ldyBVaW50MTZBcnJheSg2ICogZ3JpZFJlcyAqIGdyaWRSZXMp
OworICB2YXIgcG9mZnNldCA9IDA7CisKKyAgZm9yICh2YXIgeXkgPSAwOyB5eSA8PSBncmlkUmVz
OyArK3l5KSB7CisgICAgZm9yICh2YXIgeHggPSAwOyB4eCA8PSBncmlkUmVzOyArK3h4KSB7Cisg
ICAgICBwb3NpdGlvbnNbcG9mZnNldCArIDBdID0gKC0xICsgMiAqIHh4IC8gZ3JpZFJlcykgKiBw
b3NpdGlvbk11bHQgKyBwb3NpdGlvbk9mZnNldDsKKyAgICAgIHBvc2l0aW9uc1twb2Zmc2V0ICsg
MV0gPSAoLTEgKyAyICogeXkgLyBncmlkUmVzKSAqIHBvc2l0aW9uTXVsdCArIHBvc2l0aW9uT2Zm
c2V0OworICAgICAgcG9zaXRpb25zW3BvZmZzZXQgKyAyXSA9IDA7CisKKyAgICAgIHBvZmZzZXQg
Kz0gMzsKKyAgICB9CisgIH0KKworICB2YXIgYnVmID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgIGds
LmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCBidWYpOworICBnbC5idWZmZXJEYXRhKGdsLkFS
UkFZX0JVRkZFUiwgcG9zaXRpb25zLCBnbC5TVEFUSUNfRFJBVyk7CisgIGdsLmVuYWJsZVZlcnRl
eEF0dHJpYkFycmF5KHBvc2l0aW9uTG9jYXRpb24pOworICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVy
KHBvc2l0aW9uTG9jYXRpb24sIDMsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCk7CisgIG9iamVjdHMu
cHVzaChidWYpOworCisgIGlmIChvcHRpb25zLmNvbG9yTG9jYXRpb24gIT09IHVuZGVmaW5lZCkg
eworICAgIHZhciBjb2xvcnMgPSBuZXcgRmxvYXQzMkFycmF5KG51bVZlcnRzICogNCk7CisgICAg
Zm9yICh2YXIgeXkgPSAwOyB5eSA8PSBncmlkUmVzOyArK3l5KSB7CisgICAgICBmb3IgKHZhciB4
eCA9IDA7IHh4IDw9IGdyaWRSZXM7ICsreHgpIHsKKyAgICAgICAgaWYgKG9wdGlvbnMuY29sb3Ig
IT09IHVuZGVmaW5lZCkgeworICAgICAgICAgIGNvbG9yc1twb2Zmc2V0ICsgMF0gPSBvcHRpb25z
LmNvbG9yWzBdOworICAgICAgICAgIGNvbG9yc1twb2Zmc2V0ICsgMV0gPSBvcHRpb25zLmNvbG9y
WzFdOworICAgICAgICAgIGNvbG9yc1twb2Zmc2V0ICsgMl0gPSBvcHRpb25zLmNvbG9yWzJdOwor
ICAgICAgICAgIGNvbG9yc1twb2Zmc2V0ICsgM10gPSBvcHRpb25zLmNvbG9yWzNdOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgIGNvbG9yc1twb2Zmc2V0ICsgMF0gPSB4eCAvIGdyaWRSZXM7
CisgICAgICAgICAgY29sb3JzW3BvZmZzZXQgKyAxXSA9IHl5IC8gZ3JpZFJlczsKKyAgICAgICAg
ICBjb2xvcnNbcG9mZnNldCArIDJdID0gKHh4IC8gZ3JpZFJlcykgKiAoeXkgLyBncmlkUmVzKTsK
KyAgICAgICAgICBjb2xvcnNbcG9mZnNldCArIDNdID0gKHl5ICUgMikgKiAwLjUgKyAwLjU7Cisg
ICAgICAgIH0KKyAgICAgICAgcG9mZnNldCArPSA0OworICAgICAgfQorICAgIH0KKworICAgIHZh
ciBidWYgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JV
RkZFUiwgYnVmKTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgY29sb3JzLCBn
bC5TVEFUSUNfRFJBVyk7CisgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkob3B0aW9ucy5j
b2xvckxvY2F0aW9uKTsKKyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKG9wdGlvbnMuY29sb3JM
b2NhdGlvbiwgNCwgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKKyAgICBvYmplY3RzLnB1c2goYnVm
KTsKKyAgfQorCisgIHZhciB0YmFzZSA9IDA7CisgIGZvciAodmFyIHl5ID0gMDsgeXkgPCBncmlk
UmVzOyArK3l5KSB7CisgICAgdmFyIGluZGV4ID0geXkgKiB2ZXJ0c0Fjcm9zczsKKyAgICBmb3Ig
KHZhciB4eCA9IDA7IHh4IDwgZ3JpZFJlczsgKyt4eCkgeworICAgICAgaW5kaWNlc1t0YmFzZSAr
IDBdID0gaW5kZXggKyAwOworICAgICAgaW5kaWNlc1t0YmFzZSArIDFdID0gaW5kZXggKyAxOwor
ICAgICAgaW5kaWNlc1t0YmFzZSArIDJdID0gaW5kZXggKyB2ZXJ0c0Fjcm9zczsKKyAgICAgIGlu
ZGljZXNbdGJhc2UgKyAzXSA9IGluZGV4ICsgdmVydHNBY3Jvc3M7CisgICAgICBpbmRpY2VzW3Ri
YXNlICsgNF0gPSBpbmRleCArIDE7CisgICAgICBpbmRpY2VzW3RiYXNlICsgNV0gPSBpbmRleCAr
IHZlcnRzQWNyb3NzICsgMTsKKworICAgICAgaWYgKG9wdGlvbnMuZmxpcE9kZFRyaWFuZ2xlcykg
eworICAgICAgICBpbmRpY2VzW3RiYXNlICsgNF0gPSBpbmRleCArIHZlcnRzQWNyb3NzICsgMTsK
KyAgICAgICAgaW5kaWNlc1t0YmFzZSArIDVdID0gaW5kZXggKyAxOworICAgICAgfQorCisgICAg
ICBpbmRleCArPSAxOworICAgICAgdGJhc2UgKz0gNjsKKyAgICB9CisgIH0KKworICB2YXIgYnVm
ID0gZ2wuY3JlYXRlQnVmZmVyKCk7CisgIGdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9C
VUZGRVIsIGJ1Zik7CisgIGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGlu
ZGljZXMsIGdsLlNUQVRJQ19EUkFXKTsKKyAgb2JqZWN0cy5wdXNoKGJ1Zik7CisKKyAgcmV0dXJu
IG9iamVjdHM7Cit9OworCisvKioKKyAqIEZpbGxzIHRoZSBnaXZlbiB0ZXh0dXJlIHdpdGggYSBz
b2xpZCBjb2xvcgorICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0
IHRvIHVzZS4KKyAqIEBwYXJhbSB7IVdlYkdMVGV4dHVyZX0gdGV4IFRoZSB0ZXh0dXJlIHRvIGZp
bGwuCisgKiBAcGFyYW0ge251bWJlcn0gd2lkdGggVGhlIHdpZHRoIG9mIHRoZSB0ZXh0dXJlIHRv
IGNyZWF0ZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSBoZWlnaHQgVGhlIGhlaWdodCBvZiB0aGUgdGV4
dHVyZSB0byBjcmVhdGUuCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gY29sb3IgVGhlIGNv
bG9yIHRvIGZpbGwgd2l0aC4gQSA0IGVsZW1lbnQgYXJyYXkKKyAqICAgICAgICB3aGVyZSBlYWNo
IGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8gMjU1LgorICogQHBhcmFtIHtudW1iZXJ9IG9w
dF9sZXZlbCBUaGUgbGV2ZWwgb2YgdGhlIHRleHR1cmUgdG8gZmlsbC4gRGVmYXVsdCA9IDAuCisg
Ki8KK3ZhciBmaWxsVGV4dHVyZSA9IGZ1bmN0aW9uKGdsLCB0ZXgsIHdpZHRoLCBoZWlnaHQsIGNv
bG9yLCBvcHRfbGV2ZWwpIHsKKyAgb3B0X2xldmVsID0gb3B0X2xldmVsIHx8IDA7CisgIHZhciBu
dW1QaXhlbHMgPSB3aWR0aCAqIGhlaWdodDsKKyAgdmFyIHNpemUgPSBudW1QaXhlbHMgKiA0Owor
ICB2YXIgYnVmID0gbmV3IFVpbnQ4QXJyYXkoc2l6ZSk7CisgIGZvciAodmFyIGlpID0gMDsgaWkg
PCBudW1QaXhlbHM7ICsraWkpIHsKKyAgICB2YXIgb2ZmID0gaWkgKiA0OworICAgIGJ1ZltvZmYg
KyAwXSA9IGNvbG9yWzBdOworICAgIGJ1ZltvZmYgKyAxXSA9IGNvbG9yWzFdOworICAgIGJ1Zltv
ZmYgKyAyXSA9IGNvbG9yWzJdOworICAgIGJ1ZltvZmYgKyAzXSA9IGNvbG9yWzNdOworICB9Cisg
IGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7CisgIGdsLnRleEltYWdlMkQoCisg
ICAgICBnbC5URVhUVVJFXzJELCBvcHRfbGV2ZWwsIGdsLlJHQkEsIHdpZHRoLCBoZWlnaHQsIDAs
CisgICAgICBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBidWYpOworICB9OworCisvKioKKyAq
IENyZWF0ZXMgYSB0ZXh0dXJlcyBhbmQgZmlsbHMgaXQgd2l0aCBhIHNvbGlkIGNvbG9yCisgKiBA
cGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgorICogQHBh
cmFtIHtudW1iZXJ9IHdpZHRoIFRoZSB3aWR0aCBvZiB0aGUgdGV4dHVyZSB0byBjcmVhdGUuCisg
KiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IFRoZSBoZWlnaHQgb2YgdGhlIHRleHR1cmUgdG8gY3Jl
YXRlLgorICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IGNvbG9yIFRoZSBjb2xvciB0byBmaWxs
IHdpdGguIEEgNCBlbGVtZW50IGFycmF5CisgKiAgICAgICAgd2hlcmUgZWFjaCBlbGVtZW50IGlz
IGluIHRoZSByYW5nZSAwIHRvIDI1NS4KKyAqIEByZXR1cm4geyFXZWJHTFRleHR1cmV9CisgKi8K
K3ZhciBjcmVhdGVDb2xvcmVkVGV4dHVyZSA9IGZ1bmN0aW9uKGdsLCB3aWR0aCwgaGVpZ2h0LCBj
b2xvcikgeworICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICBmaWxsVGV4dHVyZShn
bCwgdGV4LCB3aWR0aCwgaGVpZ2h0LCBjb2xvcik7CisgIHJldHVybiB0ZXg7Cit9OworCit2YXIg
dWJ5dGVUb0Zsb2F0ID0gZnVuY3Rpb24oYykgeworICByZXR1cm4gYyAvIDI1NTsKK307CisKK3Zh
ciB1Ynl0ZUNvbG9yVG9GbG9hdENvbG9yID0gZnVuY3Rpb24oY29sb3IpIHsKKyAgdmFyIGZsb2F0
Q29sb3IgPSBbXTsKKyAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGNvbG9yLmxlbmd0aDsgKytpaSkg
eworICAgIGZsb2F0Q29sb3JbaWldID0gdWJ5dGVUb0Zsb2F0KGNvbG9yW2lpXSk7CisgIH0KKyAg
cmV0dXJuIGZsb2F0Q29sb3I7Cit9OworCisvKioKKyAqIFNldHMgdGhlICJ1X2NvbG9yIiB1bmlm
b3JtIG9mIHRoZSBjdXJyZW50IHByb2dyYW0gdG8gY29sb3IuCisgKiBAcGFyYW0geyFXZWJHTENv
bnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHshQXJyYXkuPG51
bWJlcj4gY29sb3IgNCBlbGVtZW50IGFycmF5IG9mIDAtMSBjb2xvcgorICogICAgICBjb21wb25l
bnRzLgorICovCit2YXIgc2V0RmxvYXREcmF3Q29sb3IgPSBmdW5jdGlvbihnbCwgY29sb3IpIHsK
KyAgdmFyIHByb2dyYW0gPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuQ1VSUkVOVF9QUk9HUkFNKTsKKyAg
dmFyIGNvbG9yTG9jYXRpb24gPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInVfY29s
b3IiKTsKKyAgZ2wudW5pZm9ybTRmdihjb2xvckxvY2F0aW9uLCBjb2xvcik7Cit9OworCisvKioK
KyAqIFNldHMgdGhlICJ1X2NvbG9yIiB1bmlmb3JtIG9mIHRoZSBjdXJyZW50IHByb2dyYW0gdG8g
Y29sb3IuCisgKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8g
dXNlLgorICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj4gY29sb3IgNCBlbGVtZW50IGFycmF5IG9m
IDAtMjU1IGNvbG9yCisgKiAgICAgIGNvbXBvbmVudHMuCisgKi8KK3ZhciBzZXRVQnl0ZURyYXdD
b2xvciA9IGZ1bmN0aW9uKGdsLCBjb2xvcikgeworICBzZXRGbG9hdERyYXdDb2xvcihnbCwgdWJ5
dGVDb2xvclRvRmxvYXRDb2xvcihjb2xvcikpOworfTsKKworLyoqCisgKiBEcmF3cyBhIHByZXZp
b3VzbHkgc2V0dXAgcXVhZCBpbiB0aGUgZ2l2ZW4gY29sb3IuCisgKiBAcGFyYW0geyFXZWJHTENv
bnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHshQXJyYXkuPG51
bWJlcj59IGNvbG9yIFRoZSBjb2xvciB0byBkcmF3IHdpdGguIEEgNAorICogICAgICAgIGVsZW1l
bnQgYXJyYXkgd2hlcmUgZWFjaCBlbGVtZW50IGlzIGluIHRoZSByYW5nZSAwIHRvCisgKiAgICAg
ICAgMS4KKyAqLwordmFyIGRyYXdGbG9hdENvbG9yUXVhZCA9IGZ1bmN0aW9uKGdsLCBjb2xvcikg
eworICB2YXIgcHJvZ3JhbSA9IGdsLmdldFBhcmFtZXRlcihnbC5DVVJSRU5UX1BST0dSQU0pOwor
ICB2YXIgY29sb3JMb2NhdGlvbiA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidV9j
b2xvciIpOworICBnbC51bmlmb3JtNGZ2KGNvbG9yTG9jYXRpb24sIGNvbG9yKTsKKyAgZ2wuZHJh
d0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDYpOworfTsKKworCisvKioKKyAqIERyYXdzIGEgcHJl
dmlvdXNseSBzZXR1cCBxdWFkIGluIHRoZSBnaXZlbiBjb2xvci4KKyAqIEBwYXJhbSB7IVdlYkdM
Q29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0geyFBcnJheS48
bnVtYmVyPn0gY29sb3IgVGhlIGNvbG9yIHRvIGRyYXcgd2l0aC4gQSA0CisgKiAgICAgICAgZWxl
bWVudCBhcnJheSB3aGVyZSBlYWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8KKyAqICAg
ICAgICAyNTUuCisgKi8KK3ZhciBkcmF3VUJ5dGVDb2xvclF1YWQgPSBmdW5jdGlvbihnbCwgY29s
b3IpIHsKKyAgZHJhd0Zsb2F0Q29sb3JRdWFkKGdsLCB1Ynl0ZUNvbG9yVG9GbG9hdENvbG9yKGNv
bG9yKSk7Cit9OworCisvKioKKyAqIERyYXdzIGEgcHJldmlvdXNseSBzZXR1cCBxdWFkLgorICog
QHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KKyAqIEBw
YXJhbSB7IUFycmF5LjxudW1iZXI+fSBvcHRfY29sb3IgVGhlIGNvbG9yIHRvIGZpbGwgY2xlYXIg
d2l0aCBiZWZvcmUKKyAqICAgICAgICBkcmF3aW5nLiBBIDQgZWxlbWVudCBhcnJheSB3aGVyZSBl
YWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8KKyAqICAgICAgICAyNTUuIERlZmF1bHQg
WzI1NSwgMjU1LCAyNTUsIDI1NV0KKyAqLwordmFyIGRyYXdRdWFkID0gZnVuY3Rpb24oZ2wsIG9w
dF9jb2xvcikgeworICBvcHRfY29sb3IgPSBvcHRfY29sb3IgfHwgWzI1NSwgMjU1LCAyNTUsIDI1
NV07CisgIGdsLmNsZWFyQ29sb3IoCisgICAgICBvcHRfY29sb3JbMF0gLyAyNTUsCisgICAgICBv
cHRfY29sb3JbMV0gLyAyNTUsCisgICAgICBvcHRfY29sb3JbMl0gLyAyNTUsCisgICAgICBvcHRf
Y29sb3JbM10gLyAyNTUpOworICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQ
VEhfQlVGRkVSX0JJVCk7CisgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCA2KTsKK307
CisKKy8qKgorICogRHJhd3MgYSBwcmV2aW91c2x5IHNldHVwIHF1YWQuCisgKiBAcGFyYW0geyFX
ZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtudW1i
ZXJ9IGdyaWRSZXMgUmVzb2x1dGlvbiBvZiBncmlkLgorICogQHBhcmFtIHshQXJyYXkuPG51bWJl
cj59IG9wdF9jb2xvciBUaGUgY29sb3IgdG8gZmlsbCBjbGVhciB3aXRoIGJlZm9yZQorICogICAg
ICAgIGRyYXdpbmcuIEEgNCBlbGVtZW50IGFycmF5IHdoZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0
aGUgcmFuZ2UgMCB0bworICogICAgICAgIDI1NS4gRGVmYXVsdCBbMjU1LCAyNTUsIDI1NSwgMjU1
XQorICovCit2YXIgZHJhd0luZGV4ZWRRdWFkID0gZnVuY3Rpb24oZ2wsIGdyaWRSZXMsIG9wdF9j
b2xvcikgeworICBvcHRfY29sb3IgPSBvcHRfY29sb3IgfHwgWzI1NSwgMjU1LCAyNTUsIDI1NV07
CisgIGdsLmNsZWFyQ29sb3IoCisgICAgICBvcHRfY29sb3JbMF0gLyAyNTUsCisgICAgICBvcHRf
Y29sb3JbMV0gLyAyNTUsCisgICAgICBvcHRfY29sb3JbMl0gLyAyNTUsCisgICAgICBvcHRfY29s
b3JbM10gLyAyNTUpOworICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhf
QlVGRkVSX0JJVCk7CisgIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIGdyaWRSZXMgKiA2
LCBnbC5VTlNJR05FRF9TSE9SVCwgMCk7Cit9OworCisvKioKKyAqIENoZWNrcyB0aGF0IGEgcG9y
dGlvbiBvZiBhIGNhbnZhcyBpcyAxIGNvbG9yLgorICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBn
bCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSB4IGxlZnQgY29y
bmVyIG9mIHJlZ2lvbiB0byBjaGVjay4KKyAqIEBwYXJhbSB7bnVtYmVyfSB5IGJvdHRvbSBjb3Ju
ZXIgb2YgcmVnaW9uIHRvIGNoZWNrLgorICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoIHdpZHRoIG9m
IHJlZ2lvbiB0byBjaGVjay4KKyAqIEBwYXJhbSB7bnVtYmVyfSBoZWlnaHQgd2lkdGggb2YgcmVn
aW9uIHRvIGNoZWNrLgorICogQHBhcmFtIHshQXJyYXkuPG51bWJlcj59IGNvbG9yIFRoZSBjb2xv
ciB0byBmaWxsIGNsZWFyIHdpdGggYmVmb3JlIGRyYXdpbmcuIEEKKyAqICAgICAgICA0IGVsZW1l
bnQgYXJyYXkgd2hlcmUgZWFjaCBlbGVtZW50IGlzIGluIHRoZSByYW5nZSAwIHRvIDI1NS4KKyAq
IEBwYXJhbSB7bnVtYmVyfSBvcHRfZXJyb3JSYW5nZSBPcHRpb25hbC4gQWNjZXB0YWJsZSBlcnJv
ciBpbgorICogICAgICAgIGNvbG9yIGNoZWNraW5nLiAwIGJ5IGRlZmF1bHQuCisgKiBAcGFyYW0g
eyFmdW5jdGlvbigpfSBzYW1lRm4gRnVuY3Rpb24gdG8gY2FsbCBpZiBhbGwgcGl4ZWxzCisgKiAg
ICAgICAgYXJlIHRoZSBzYW1lIGFzIGNvbG9yLgorICogQHBhcmFtIHshZnVuY3Rpb24oKX0gZGlm
ZmVyZW50Rm4gRnVuY3Rpb24gdG8gY2FsbCBpZiBhIHBpeGVsCisgKiAgICAgICAgaXMgZGlmZmVy
ZW50IHRoYW4gY29sb3IKKyAqIEBwYXJhbSB7IWZ1bmN0aW9uKCl9IGxvZ0ZuIEZ1bmN0aW9uIHRv
IGNhbGwgZm9yIGxvZ2dpbmcuCisgKi8KK3ZhciBjaGVja0NhbnZhc1JlY3RDb2xvciA9IGZ1bmN0
aW9uKGdsLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBjb2xvciwgb3B0X2Vycm9yUmFuZ2UsIHNhbWVG
biwgZGlmZmVyZW50Rm4sIGxvZ0ZuKSB7CisgIHZhciBlcnJvclJhbmdlID0gb3B0X2Vycm9yUmFu
Z2UgfHwgMDsKKyAgaWYgKCFlcnJvclJhbmdlLmxlbmd0aCkgeworICAgIGVycm9yUmFuZ2UgPSBb
ZXJyb3JSYW5nZSwgZXJyb3JSYW5nZSwgZXJyb3JSYW5nZSwgZXJyb3JSYW5nZV0KKyAgfQorICB2
YXIgYnVmOworICBpZiAoZ2wgaW5zdGFuY2VvZiBXZWJHTFJlbmRlcmluZ0NvbnRleHQpIHsKKyAg
ICBidWYgPSBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdodCAqIDQpOworICAgIGdsLnJlYWRQ
aXhlbHMoeCwgeSwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYnVm
KTsKKyAgfSBlbHNlIHsKKyAgICBidWYgPSBnbC5nZXRJbWFnZURhdGEoeCwgeSwgd2lkdGgsIGhl
aWdodCkuZGF0YTsKKyAgfQorICBmb3IgKHZhciBpID0gMDsgaSA8IHdpZHRoICogaGVpZ2h0OyAr
K2kpIHsKKyAgICB2YXIgb2Zmc2V0ID0gaSAqIDQ7CisgICAgZm9yICh2YXIgaiA9IDA7IGogPCBj
b2xvci5sZW5ndGg7ICsraikgeworICAgICAgaWYgKE1hdGguYWJzKGJ1ZltvZmZzZXQgKyBqXSAt
IGNvbG9yW2pdKSA+IGVycm9yUmFuZ2Vbal0pIHsKKyAgICAgICAgZGlmZmVyZW50Rm4oKTsKKyAg
ICAgICAgdmFyIHdhcyA9IGJ1ZltvZmZzZXQgKyAwXS50b1N0cmluZygpOworICAgICAgICBmb3Ig
KGogPSAxOyBqIDwgY29sb3IubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICB3YXMgKz0gIiwiICsg
YnVmW29mZnNldCArIGpdOworICAgICAgICB9CisgICAgICAgIGxvZ0ZuKCdhdCAoJyArIChpICUg
d2lkdGgpICsgJywgJyArIE1hdGguZmxvb3IoaSAvIHdpZHRoKSArCisgICAgICAgICAgICAgICcp
IGV4cGVjdGVkOiAnICsgY29sb3IgKyAnIHdhcyAnICsgd2FzKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgICAgfQorICAgIH0KKyAgfQorICBzYW1lRm4oKTsKK307CisKKy8qKgorICogQ2hlY2tzIHRo
YXQgYSBwb3J0aW9uIG9mIGEgY2FudmFzIGlzIDEgY29sb3IuCisgKiBAcGFyYW0geyFXZWJHTENv
bnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtudW1iZXJ9IHgg
bGVmdCBjb3JuZXIgb2YgcmVnaW9uIHRvIGNoZWNrLgorICogQHBhcmFtIHtudW1iZXJ9IHkgYm90
dG9tIGNvcm5lciBvZiByZWdpb24gdG8gY2hlY2suCisgKiBAcGFyYW0ge251bWJlcn0gd2lkdGgg
d2lkdGggb2YgcmVnaW9uIHRvIGNoZWNrLgorICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodCB3aWR0
aCBvZiByZWdpb24gdG8gY2hlY2suCisgKiBAcGFyYW0geyFBcnJheS48bnVtYmVyPn0gY29sb3Ig
VGhlIGNvbG9yIHRvIGZpbGwgY2xlYXIgd2l0aCBiZWZvcmUgZHJhd2luZy4gQQorICogICAgICAg
IDQgZWxlbWVudCBhcnJheSB3aGVyZSBlYWNoIGVsZW1lbnQgaXMgaW4gdGhlIHJhbmdlIDAgdG8g
MjU1LgorICogQHBhcmFtIHtzdHJpbmd9IG9wdF9tc2cgTWVzc2FnZSB0byBhc3NvY2lhdGUgd2l0
aCBzdWNjZXNzLiBFZworICogICAgICAgICgic2hvdWxkIGJlIHJlZCIpLgorICogQHBhcmFtIHtu
dW1iZXJ9IG9wdF9lcnJvclJhbmdlIE9wdGlvbmFsLiBBY2NlcHRhYmxlIGVycm9yIGluCisgKiAg
ICAgICAgY29sb3IgY2hlY2tpbmcuIDAgYnkgZGVmYXVsdC4KKyAqLwordmFyIGNoZWNrQ2FudmFz
UmVjdCA9IGZ1bmN0aW9uKGdsLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBjb2xvciwgb3B0X21zZywg
b3B0X2Vycm9yUmFuZ2UpIHsKKyAgdmFyIG1zZyA9IG9wdF9tc2c7CisgIGlmIChtc2cgPT09IHVu
ZGVmaW5lZCkgeworICAgIG1zZyA9ICJzaG91bGQgYmUgIiArIGNvbG9yLnRvU3RyaW5nKCk7Cisg
IH0KKyAgY2hlY2tDYW52YXNSZWN0Q29sb3IoCisgICAgICBnbCwgeCwgeSwgd2lkdGgsIGhlaWdo
dCwgY29sb3IsIG9wdF9lcnJvclJhbmdlLAorICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgIHRl
c3RQYXNzZWQobXNnKTsKKyAgICAgIH0sCisgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgdGVz
dEZhaWxlZChtc2cpOworICAgICAgfSwKKyAgICAgIGRlYnVnKTsKK307CisKKy8qKgorICogQ2hl
Y2tzIHRoYXQgYW4gZW50aXJlIGNhbnZhcyBpcyAxIGNvbG9yLgorICogQHBhcmFtIHshV2ViR0xD
b250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7IUFycmF5Ljxu
dW1iZXI+fSBjb2xvciBUaGUgY29sb3IgdG8gZmlsbCBjbGVhciB3aXRoIGJlZm9yZSBkcmF3aW5n
LiBBCisgKiAgICAgICAgNCBlbGVtZW50IGFycmF5IHdoZXJlIGVhY2ggZWxlbWVudCBpcyBpbiB0
aGUgcmFuZ2UgMCB0byAyNTUuCisgKiBAcGFyYW0ge3N0cmluZ30gbXNnIE1lc3NhZ2UgdG8gYXNz
b2NpYXRlIHdpdGggc3VjY2Vzcy4gRWcgKCJzaG91bGQgYmUgcmVkIikuCisgKiBAcGFyYW0ge251
bWJlcn0gZXJyb3JSYW5nZSBPcHRpb25hbC4gQWNjZXB0YWJsZSBlcnJvciBpbgorICogICAgICAg
IGNvbG9yIGNoZWNraW5nLiAwIGJ5IGRlZmF1bHQuCisgKi8KK3ZhciBjaGVja0NhbnZhcyA9IGZ1
bmN0aW9uKGdsLCBjb2xvciwgbXNnLCBlcnJvclJhbmdlKSB7CisgIGNoZWNrQ2FudmFzUmVjdChn
bCwgMCwgMCwgZ2wuY2FudmFzLndpZHRoLCBnbC5jYW52YXMuaGVpZ2h0LCBjb2xvciwgbXNnLCBl
cnJvclJhbmdlKTsKK307CisKKy8qKgorICogTG9hZHMgYSB0ZXh0dXJlLCBjYWxscyBjYWxsYmFj
ayB3aGVuIGZpbmlzaGVkLgorICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xD
b250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVVJMIG9mIGltYWdlIHRvIGxv
YWQKKyAqIEBwYXJhbSB7ZnVuY3Rpb24oIUltYWdlKTogdm9pZH0gY2FsbGJhY2sgRnVuY3Rpb24g
dGhhdCBnZXRzIGNhbGxlZCBhZnRlcgorICogICAgICAgIGltYWdlIGhhcyBsb2FkZWQKKyAqIEBy
ZXR1cm4geyFXZWJHTFRleHR1cmV9IFRoZSBjcmVhdGVkIHRleHR1cmUuCisgKi8KK3ZhciBsb2Fk
VGV4dHVyZSA9IGZ1bmN0aW9uKGdsLCB1cmwsIGNhbGxiYWNrKSB7CisgICAgdmFyIHRleHR1cmUg
PSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwg
dGV4dHVyZSk7CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJF
X01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVS
RV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKKyAgICB2YXIgaW1hZ2Ug
PSBuZXcgSW1hZ2UoKTsKKyAgICBpbWFnZS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAg
Z2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7CisgICAgICAgIGdsLnBpeGVs
U3RvcmVpKGdsLlVOUEFDS19GTElQX1lfV0VCR0wsIHRydWUpOworICAgICAgICBnbC50ZXhJbWFn
ZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IGltYWdlKTsKKyAgICAgICAgY2FsbGJhY2soaW1hZ2UpOworICAgIH07CisgICAgaW1hZ2Uuc3Jj
ID0gdXJsOworICAgIHJldHVybiB0ZXh0dXJlOworfTsKKworLyoqCisgKiBNYWtlcyBhIHNoYWxs
b3cgY29weSBvZiBhbiBvYmplY3QuCisgKiBAcGFyYW0geyFPYmplY3QpIHNyYyBPYmplY3QgdG8g
Y29weQorICogQHJldHVybiB7IU9iamVjdH0gVGhlIGNvcHkgb2Ygc3JjLgorICovCit2YXIgc2hh
bGxvd0NvcHlPYmplY3QgPSBmdW5jdGlvbihzcmMpIHsKKyAgdmFyIGRzdCA9IHt9OworICBmb3Ig
KHZhciBhdHRyIGluIHNyYykgeworICAgIGlmIChzcmMuaGFzT3duUHJvcGVydHkoYXR0cikpIHsK
KyAgICAgIGRzdFthdHRyXSA9IHNyY1thdHRyXTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIGRzdDsK
K307CisKKy8qKgorICogQ2hlY2tzIGlmIGFuIGF0dHJpYnV0ZSBleGlzdHMgb24gYW4gb2JqZWN0
IGNhc2UgaW5zZW5zaXRpdmUuCisgKiBAcGFyYW0geyFPYmplY3QpIG9iaiBPYmplY3QgdG8gY2hl
Y2sKKyAqIEBwYXJhbSB7c3RyaW5nfSBhdHRyIE5hbWUgb2YgYXR0cmlidXRlIHRvIGxvb2sgZm9y
LgorICogQHJldHVybiB7c3RyaW5nP30gVGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZSBpZiBpdCBl
eGlzdHMsCisgKiAgICAgICAgIHVuZGVmaW5lZCBpZiBub3QuCisgKi8KK3ZhciBoYXNBdHRyaWJ1
dGVDYXNlSW5zZW5zaXRpdmUgPSBmdW5jdGlvbihvYmosIGF0dHIpIHsKKyAgdmFyIGxvd2VyID0g
YXR0ci50b0xvd2VyQ2FzZSgpOworICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7CisgICAgaWYgKG9i
ai5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIGtleS50b0xvd2VyQ2FzZSgpID09IGxvd2VyKSB7Cisg
ICAgICByZXR1cm4ga2V5OworICAgIH0KKyAgfQorfTsKKworLyoqCisgKiBDcmVhdGVzIGEgd2Vi
Z2wgY29udGV4dC4KKyAqIEBwYXJhbSB7IUNhbnZhc3xzdHJpbmd9IG9wdF9jYW52YXMgVGhlIGNh
bnZhcyB0YWcgdG8gZ2V0CisgKiAgICAgY29udGV4dCBmcm9tLiBJZiBvbmUgaXMgbm90IHBhc3Nl
ZCBpbiBvbmUgd2lsbCBiZQorICogICAgIGNyZWF0ZWQuIElmIGl0J3MgYSBzdHJpbmcgaXQncyBh
c3N1bWVkIHRvIGJlIHRoZSBpZCBvZiBhCisgKiAgICAgY2FudmFzLgorICogQHJldHVybiB7IVdl
YkdMQ29udGV4dH0gVGhlIGNyZWF0ZWQgY29udGV4dC4KKyAqLwordmFyIGNyZWF0ZTNEQ29udGV4
dCA9IGZ1bmN0aW9uKG9wdF9jYW52YXMsIG9wdF9hdHRyaWJ1dGVzKSB7CisgIGlmICh3aW5kb3cu
aW5pdFRlc3RpbmdIYXJuZXNzKSB7CisgICAgd2luZG93LmluaXRUZXN0aW5nSGFybmVzcygpOwor
ICB9CisgIHZhciBhdHRyaWJ1dGVzID0gc2hhbGxvd0NvcHlPYmplY3Qob3B0X2F0dHJpYnV0ZXMg
fHwge30pOworICBpZiAoIWhhc0F0dHJpYnV0ZUNhc2VJbnNlbnNpdGl2ZShhdHRyaWJ1dGVzLCAi
YW50aWFsaWFzIikpIHsKKyAgICBhdHRyaWJ1dGVzLmFudGlhbGlhcyA9IGZhbHNlOworICB9CisK
KyAgb3B0X2NhbnZhcyA9IG9wdF9jYW52YXMgfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2Fu
dmFzIik7CisgIGlmICh0eXBlb2Ygb3B0X2NhbnZhcyA9PSAnc3RyaW5nJykgeworICAgIG9wdF9j
YW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChvcHRfY2FudmFzKTsKKyAgfQorICB2YXIg
Y29udGV4dCA9IG51bGw7CisgIHZhciBuYW1lcyA9IFsid2ViZ2wiLCAiZXhwZXJpbWVudGFsLXdl
YmdsIl07CisgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICB0
cnkgeworICAgICAgY29udGV4dCA9IG9wdF9jYW52YXMuZ2V0Q29udGV4dChuYW1lc1tpXSwgYXR0
cmlidXRlcyk7CisgICAgfSBjYXRjaCAoZSkgeworICAgIH0KKyAgICBpZiAoY29udGV4dCkgewor
ICAgICAgYnJlYWs7CisgICAgfQorICB9CisgIGlmICghY29udGV4dCkgeworICAgIHRlc3RGYWls
ZWQoIlVuYWJsZSB0byBmZXRjaCBXZWJHTCByZW5kZXJpbmcgY29udGV4dCBmb3IgQ2FudmFzIik7
CisgIH0KKyAgcmV0dXJuIGNvbnRleHQ7Cit9CisKKy8qKgorICogR2V0cyBhIEdMRXJyb3IgdmFs
dWUgYXMgYSBzdHJpbmcuCisgKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBXZWJHTENv
bnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtudW1iZXJ9IGVyciBUaGUgd2ViZ2wgZXJyb3IgYXMg
cmV0cmlldmVkIGZyb20gZ2wuZ2V0RXJyb3IoKS4KKyAqIEByZXR1cm4ge3N0cmluZ30gdGhlIGVy
cm9yIGFzIGEgc3RyaW5nLgorICovCit2YXIgZ2V0R0xFcnJvckFzU3RyaW5nID0gZnVuY3Rpb24o
Z2wsIGVycikgeworICBpZiAoZXJyID09PSBnbC5OT19FUlJPUikgeworICAgIHJldHVybiAiTk9f
RVJST1IiOworICB9CisgIGZvciAodmFyIG5hbWUgaW4gZ2wpIHsKKyAgICBpZiAoZ2xbbmFtZV0g
PT09IGVycikgeworICAgICAgcmV0dXJuIG5hbWU7CisgICAgfQorICB9CisgIHJldHVybiBlcnIu
dG9TdHJpbmcoKTsKK307CisKKy8qKgorICogV3JhcHMgYSBXZWJHTCBmdW5jdGlvbiB3aXRoIGEg
ZnVuY3Rpb24gdGhhdCB0aHJvd3MgYW4gZXhjZXB0aW9uIGlmIHRoZXJlIGlzCisgKiBhbiBlcnJv
ci4KKyAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2Uu
CisgKiBAcGFyYW0ge3N0cmluZ30gZm5hbWUgTmFtZSBvZiBmdW5jdGlvbiB0byB3cmFwLgorICog
QHJldHVybiB7ZnVuY3Rpb259IFRoZSB3cmFwcGVkIGZ1bmN0aW9uLgorICovCit2YXIgY3JlYXRl
R0xFcnJvcldyYXBwZXIgPSBmdW5jdGlvbihjb250ZXh0LCBmbmFtZSkgeworICByZXR1cm4gZnVu
Y3Rpb24oKSB7CisgICAgdmFyIHJ2ID0gY29udGV4dFtmbmFtZV0uYXBwbHkoY29udGV4dCwgYXJn
dW1lbnRzKTsKKyAgICB2YXIgZXJyID0gY29udGV4dC5nZXRFcnJvcigpOworICAgIGlmIChlcnIg
IT0gY29udGV4dC5OT19FUlJPUikKKyAgICAgIHRocm93ICJHTCBlcnJvciAiICsgZ2V0R0xFcnJv
ckFzU3RyaW5nKGNvbnRleHQsIGVycikgKyAiIGluICIgKyBmbmFtZTsKKyAgICByZXR1cm4gcnY7
CisgIH07Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSBXZWJHTCBjb250ZXh0IHdoZXJlIGFsbCBm
dW5jdGlvbnMgYXJlIHdyYXBwZWQgdG8gdGhyb3cgYW4gZXhjZXB0aW9uCisgKiBpZiB0aGVyZSBp
cyBhbiBlcnJvci4KKyAqIEBwYXJhbSB7IUNhbnZhc30gY2FudmFzIFRoZSBIVE1MIGNhbnZhcyB0
byBnZXQgYSBjb250ZXh0IGZyb20uCisgKiBAcmV0dXJuIHshT2JqZWN0fSBUaGUgd3JhcHBlZCBj
b250ZXh0LgorICovCitmdW5jdGlvbiBjcmVhdGUzRENvbnRleHRXaXRoV3JhcHBlclRoYXRUaHJv
d3NPbkdMRXJyb3IoY2FudmFzKSB7CisgIHZhciBjb250ZXh0ID0gY3JlYXRlM0RDb250ZXh0KGNh
bnZhcyk7CisgIHZhciB3cmFwID0ge307CisgIGZvciAodmFyIGkgaW4gY29udGV4dCkgeworICAg
IHRyeSB7CisgICAgICBpZiAodHlwZW9mIGNvbnRleHRbaV0gPT0gJ2Z1bmN0aW9uJykgeworICAg
ICAgICB3cmFwW2ldID0gY3JlYXRlR0xFcnJvcldyYXBwZXIoY29udGV4dCwgaSk7CisgICAgICB9
IGVsc2UgeworICAgICAgICB3cmFwW2ldID0gY29udGV4dFtpXTsKKyAgICAgIH0KKyAgICB9IGNh
dGNoIChlKSB7CisgICAgICBlcnJvcigiY3JlYXRlQ29udGV4dFdyYXBwZXJUaGF0VGhyb3dzT25H
TEVycm9yOiBFcnJvciBhY2Nlc3NpbmcgIiArIGkpOworICAgIH0KKyAgfQorICB3cmFwLmdldEVy
cm9yID0gZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4gY29udGV4dC5nZXRFcnJvcigpOworICB9
OworICByZXR1cm4gd3JhcDsKK307CisKKy8qKgorICogVGVzdHMgdGhhdCBhbiBldmFsdWF0ZWQg
ZXhwcmVzc2lvbiBnZW5lcmF0ZXMgYSBzcGVjaWZpYyBHTCBlcnJvci4KKyAqIEBwYXJhbSB7IVdl
YkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge251bWJl
cn0gZ2xFcnJvciBUaGUgZXhwZWN0ZWQgZ2wgZXJyb3IuCisgKiBAcGFyYW0ge3N0cmluZ30gZXZh
bFNUciBUaGUgc3RyaW5nIHRvIGV2YWx1YXRlLgorICovCit2YXIgc2hvdWxkR2VuZXJhdGVHTEVy
cm9yID0gZnVuY3Rpb24oZ2wsIGdsRXJyb3IsIGV2YWxTdHIpIHsKKyAgdmFyIGV4Y2VwdGlvbjsK
KyAgdHJ5IHsKKyAgICBldmFsKGV2YWxTdHIpOworICB9IGNhdGNoIChlKSB7CisgICAgZXhjZXB0
aW9uID0gZTsKKyAgfQorICBpZiAoZXhjZXB0aW9uKSB7CisgICAgdGVzdEZhaWxlZChldmFsU3Ry
ICsgIiB0aHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgIH0gZWxzZSB7CisgICAgdmFy
IGVyciA9IGdsLmdldEVycm9yKCk7CisgICAgaWYgKGVyciAhPSBnbEVycm9yKSB7CisgICAgICB0
ZXN0RmFpbGVkKGV2YWxTdHIgKyAiIGV4cGVjdGVkOiAiICsgZ2V0R0xFcnJvckFzU3RyaW5nKGds
LCBnbEVycm9yKSArICIuIFdhcyAiICsgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBlcnIpICsgIi4i
KTsKKyAgICB9IGVsc2UgeworICAgICAgdGVzdFBhc3NlZChldmFsU3RyICsgIiB3YXMgZXhwZWN0
ZWQgdmFsdWU6ICIgKyBnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGdsRXJyb3IpICsgIi4iKTsKKyAg
ICB9CisgIH0KK307CisKKy8qKgorICogVGVzdHMgdGhhdCB0aGUgZmlyc3QgZXJyb3IgR0wgcmV0
dXJucyBpcyB0aGUgc3BlY2lmaWVkIGVycm9yLgorICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBn
bCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7bnVtYmVyfSBnbEVycm9yIFRo
ZSBleHBlY3RlZCBnbCBlcnJvci4KKyAqIEBwYXJhbSB7c3RyaW5nfSBvcHRfbXNnCisgKi8KK3Zh
ciBnbEVycm9yU2hvdWxkQmUgPSBmdW5jdGlvbihnbCwgZ2xFcnJvciwgb3B0X21zZykgeworICBv
cHRfbXNnID0gb3B0X21zZyB8fCAiIjsKKyAgdmFyIGVyciA9IGdsLmdldEVycm9yKCk7CisgIGlm
IChlcnIgIT0gZ2xFcnJvcikgeworICAgIHRlc3RGYWlsZWQoImdldEVycm9yIGV4cGVjdGVkOiAi
ICsgZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBnbEVycm9yKSArCisgICAgICAgICAgICAgICAiLiBX
YXMgIiArIGdldEdMRXJyb3JBc1N0cmluZyhnbCwgZXJyKSArICIgOiAiICsgb3B0X21zZyk7Cisg
IH0gZWxzZSB7CisgICAgdGVzdFBhc3NlZCgiZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiAi
ICsKKyAgICAgICAgICAgICAgICBnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGdsRXJyb3IpICsgIiA6
ICIgKyBvcHRfbXNnKTsKKyAgfQorfTsKKworLyoqCisgKiBMaW5rcyBhIFdlYkdMIHByb2dyYW0s
IHRocm93cyBpZiB0aGVyZSBhcmUgZXJyb3JzLgorICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBn
bCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7IVdlYkdMUHJvZ3JhbX0gcHJv
Z3JhbSBUaGUgV2ViR0xQcm9ncmFtIHRvIGxpbmsuCisgKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmlu
Zyk6IHZvaWQpIG9wdF9lcnJvckNhbGxiYWNrIGNhbGxiYWNrIGZvciBlcnJvcnMuIAorICovCit2
YXIgbGlua1Byb2dyYW0gPSBmdW5jdGlvbihnbCwgcHJvZ3JhbSwgb3B0X2Vycm9yQ2FsbGJhY2sp
IHsKKyAgdmFyIGVyckZuID0gb3B0X2Vycm9yQ2FsbGJhY2sgfHwgdGVzdEZhaWxlZDsKKyAgLy8g
TGluayB0aGUgcHJvZ3JhbQorICBnbC5saW5rUHJvZ3JhbShwcm9ncmFtKTsKKworICAvLyBDaGVj
ayB0aGUgbGluayBzdGF0dXMKKyAgdmFyIGxpbmtlZCA9IGdsLmdldFByb2dyYW1QYXJhbWV0ZXIo
cHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpOworICBpZiAoIWxpbmtlZCkgeworICAgIC8vIHNvbWV0
aGluZyB3ZW50IHdyb25nIHdpdGggdGhlIGxpbmsKKyAgICB2YXIgZXJyb3IgPSBnbC5nZXRQcm9n
cmFtSW5mb0xvZyAocHJvZ3JhbSk7CisKKyAgICBlcnJGbigiRXJyb3IgaW4gcHJvZ3JhbSBsaW5r
aW5nOiIgKyBlcnJvcik7CisKKyAgICBnbC5kZWxldGVQcm9ncmFtKHByb2dyYW0pOworICB9Cit9
OworCisvKioKKyAqIExvYWRzIHRleHQgZnJvbSBhbiBleHRlcm5hbCBmaWxlLiBUaGlzIGZ1bmN0
aW9uIGlzIHN5bmNocm9ub3VzLgorICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgdXJsIG9mIHRo
ZSBleHRlcm5hbCBmaWxlLgorICogQHBhcmFtIHshZnVuY3Rpb24oYm9vbCwgc3RyaW5nKTogdm9p
ZH0gY2FsbGJhY2sgdGhhdCBpcyBzZW50IGEgYm9vbCBmb3IKKyAqICAgICBzdWNjZXNzIGFuZCB0
aGUgc3RyaW5nLgorICovCit2YXIgbG9hZFRleHRGaWxlQXN5bmMgPSBmdW5jdGlvbih1cmwsIGNh
bGxiYWNrKSB7CisgIGxvZyAoImxvYWRpbmc6ICIgKyB1cmwpOworICB2YXIgZXJyb3IgPSAnbG9h
ZFRleHRGaWxlU3luY2hyb25vdXMgZmFpbGVkIHRvIGxvYWQgdXJsICInICsgdXJsICsgJyInOwor
ICB2YXIgcmVxdWVzdDsKKyAgaWYgKHdpbmRvdy5YTUxIdHRwUmVxdWVzdCkgeworICAgIHJlcXVl
c3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICBpZiAocmVxdWVzdC5vdmVycmlkZU1pbWVU
eXBlKSB7CisgICAgICByZXF1ZXN0Lm92ZXJyaWRlTWltZVR5cGUoJ3RleHQvcGxhaW4nKTsKKyAg
ICB9CisgIH0gZWxzZSB7CisgICAgdGhyb3cgJ1hNTEh0dHBSZXF1ZXN0IGlzIGRpc2FibGVkJzsK
KyAgfQorICB0cnkgeworICAgIHJlcXVlc3Qub3BlbignR0VUJywgdXJsLCB0cnVlKTsKKyAgICBy
ZXF1ZXN0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgeworICAgICAgaWYgKHJlcXVl
c3QucmVhZHlTdGF0ZSA9PSA0KSB7CisgICAgICAgIHZhciB0ZXh0ID0gJyc7CisgICAgICAgIC8v
IEhUVFAgcmVwb3J0cyBzdWNjZXNzIHdpdGggYSAyMDAgc3RhdHVzLiBUaGUgZmlsZSBwcm90b2Nv
bCByZXBvcnRzCisgICAgICAgIC8vIHN1Y2Nlc3Mgd2l0aCB6ZXJvLiBIVFRQIGRvZXMgbm90IHVz
ZSB6ZXJvIGFzIGEgc3RhdHVzIGNvZGUgKHRoZXkKKyAgICAgICAgLy8gc3RhcnQgYXQgMTAwKS4K
KyAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvRW4vVXNpbmdfWE1MSHR0
cFJlcXVlc3QKKyAgICAgICAgdmFyIHN1Y2Nlc3MgPSByZXF1ZXN0LnN0YXR1cyA9PSAyMDAgfHwg
cmVxdWVzdC5zdGF0dXMgPT0gMDsKKyAgICAgICAgaWYgKHN1Y2Nlc3MpIHsKKyAgICAgICAgICB0
ZXh0ID0gcmVxdWVzdC5yZXNwb25zZVRleHQ7CisgICAgICAgIH0KKyAgICAgICAgbG9nKCJsb2Fk
ZWQ6ICIgKyB1cmwpOworICAgICAgICBjYWxsYmFjayhzdWNjZXNzLCB0ZXh0KTsKKyAgICAgIH0K
KyAgICB9OworICAgIHJlcXVlc3Quc2VuZChudWxsKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIGxv
ZygiZmFpbGVkIHRvIGxvYWQ6ICIgKyB1cmwpOworICAgIGNhbGxiYWNrKGZhbHNlLCAnJyk7Cisg
IH0KK307CisKKy8qKgorICogUmVjdXJzaXZlbHkgbG9hZHMgYSBmaWxlIGFzIGEgbGlzdC4gRWFj
aCBsaW5lIGlzIHBhcnNlZCBmb3IgYSByZWxhdGl2ZQorICogcGF0aC4gSWYgdGhlIGZpbGUgZW5k
cyBpbiAudHh0IHRoZSBjb250ZW50cyBvZiB0aGF0IGZpbGUgaXMgaW5zZXJ0ZWQgaW4KKyAqIHRo
ZSBsaXN0LgorICoKKyAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIHVybCBvZiB0aGUgZXh0ZXJu
YWwgZmlsZS4KKyAqIEBwYXJhbSB7IWZ1bmN0aW9uKGJvb2wsIEFycmF5PHN0cmluZz4pOiB2b2lk
fSBjYWxsYmFjayB0aGF0IGlzIHNlbnQgYSBib29sCisgKiAgICAgZm9yIHN1Y2Nlc3MgYW5kIHRo
ZSBhcnJheSBvZiBzdHJpbmdzLgorICovCit2YXIgZ2V0RmlsZUxpc3RBc3luYyA9IGZ1bmN0aW9u
KHVybCwgY2FsbGJhY2spIHsKKyAgdmFyIGZpbGVzID0gW107CisKKyAgdmFyIGdldEZpbGVMaXN0
SW1wbCA9IGZ1bmN0aW9uKHVybCwgY2FsbGJhY2spIHsKKyAgICB2YXIgZmlsZXMgPSBbXTsKKyAg
ICBpZiAodXJsLnN1YnN0cih1cmwubGVuZ3RoIC0gNCkgPT0gJy50eHQnKSB7CisgICAgICBsb2Fk
VGV4dEZpbGVBc3luYyh1cmwsIGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4gZnVuY3Rpb24o
c3VjY2VzcywgdGV4dCkgeworICAgICAgICAgIGlmICghc3VjY2VzcykgeworICAgICAgICAgICAg
Y2FsbGJhY2soZmFsc2UsICcnKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICB9Cisg
ICAgICAgICAgdmFyIGxpbmVzID0gdGV4dC5zcGxpdCgnXG4nKTsKKyAgICAgICAgICB2YXIgcHJl
Zml4ID0gJyc7CisgICAgICAgICAgdmFyIGxhc3RTbGFzaCA9IHVybC5sYXN0SW5kZXhPZignLycp
OworICAgICAgICAgIGlmIChsYXN0U2xhc2ggPj0gMCkgeworICAgICAgICAgICAgcHJlZml4ID0g
dXJsLnN1YnN0cigwLCBsYXN0U2xhc2ggKyAxKTsKKyAgICAgICAgICB9CisgICAgICAgICAgdmFy
IGZhaWwgPSBmYWxzZTsKKyAgICAgICAgICB2YXIgY291bnQgPSAxOworICAgICAgICAgIHZhciBp
bmRleCA9IDA7CisgICAgICAgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGxpbmVzLmxlbmd0aDsg
KytpaSkgeworICAgICAgICAgICAgdmFyIHN0ciA9IGxpbmVzW2lpXS5yZXBsYWNlKC9eXHNccyov
LCAnJykucmVwbGFjZSgvXHNccyokLywgJycpOworICAgICAgICAgICAgaWYgKHN0ci5sZW5ndGgg
PiA0ICYmCisgICAgICAgICAgICAgICAgc3RyWzBdICE9ICcjJyAmJgorICAgICAgICAgICAgICAg
IHN0clswXSAhPSAiOyIgJiYKKyAgICAgICAgICAgICAgICBzdHIuc3Vic3RyKDAsIDIpICE9ICIv
LyIpIHsKKyAgICAgICAgICAgICAgdmFyIG5hbWVzID0gc3RyLnNwbGl0KC8gKy8pOworICAgICAg
ICAgICAgICBuZXdfdXJsID0gcHJlZml4ICsgc3RyOworICAgICAgICAgICAgICBpZiAobmFtZXMu
bGVuZ3RoID09IDEpIHsKKyAgICAgICAgICAgICAgICBuZXdfdXJsID0gcHJlZml4ICsgc3RyOwor
ICAgICAgICAgICAgICAgICsrY291bnQ7CisgICAgICAgICAgICAgICAgZ2V0RmlsZUxpc3RJbXBs
KG5ld191cmwsIGZ1bmN0aW9uKGluZGV4KSB7CisgICAgICAgICAgICAgICAgICByZXR1cm4gZnVu
Y3Rpb24oc3VjY2VzcywgbmV3X2ZpbGVzKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZygiZ290
IGZpbGVzOiAiICsgbmV3X2ZpbGVzLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChz
dWNjZXNzKSB7CisgICAgICAgICAgICAgICAgICAgICAgZmlsZXNbaW5kZXhdID0gbmV3X2ZpbGVz
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGZpbmlzaChzdWNj
ZXNzKTsKKyAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgfShpbmRleCsrKSk7
CisgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdmFyIHMgPSAiIjsKKyAg
ICAgICAgICAgICAgICB2YXIgcCA9ICIiOworICAgICAgICAgICAgICAgIGZvciAodmFyIGpqID0g
MDsgamogPCBuYW1lcy5sZW5ndGg7ICsramopIHsKKyAgICAgICAgICAgICAgICAgIHMgKz0gcCAr
IHByZWZpeCArIG5hbWVzW2pqXTsKKyAgICAgICAgICAgICAgICAgIHAgPSAiICI7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZpbGVzW2luZGV4KytdID0gczsKKyAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBmaW5pc2godHJ1
ZSk7CisKKyAgICAgICAgICBmdW5jdGlvbiBmaW5pc2goc3VjY2VzcykgeworICAgICAgICAgICAg
aWYgKCFzdWNjZXNzKSB7CisgICAgICAgICAgICAgIGZhaWwgPSB0cnVlOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgLS1jb3VudDsKKyAgICAgICAgICAgIGxvZygiY291bnQ6ICIgKyBjb3Vu
dCk7CisgICAgICAgICAgICBpZiAoIWNvdW50KSB7CisgICAgICAgICAgICAgIGNhbGxiYWNrKCFm
YWlsLCBmaWxlcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICB9CisgICAg
ICB9KCkpOworCisgICAgfSBlbHNlIHsKKyAgICAgIGZpbGVzLnB1c2godXJsKTsKKyAgICAgIGNh
bGxiYWNrKHRydWUsIGZpbGVzKTsKKyAgICB9CisgIH07CisKKyAgZ2V0RmlsZUxpc3RJbXBsKHVy
bCwgZnVuY3Rpb24oc3VjY2VzcywgZmlsZXMpIHsKKyAgICAvLyBmbGF0dGVuCisgICAgdmFyIGZs
YXQgPSBbXTsKKyAgICBmbGF0dGVuKGZpbGVzKTsKKyAgICBmdW5jdGlvbiBmbGF0dGVuKGZpbGVz
KSB7CisgICAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgZmlsZXMubGVuZ3RoOyArK2lpKSB7Cisg
ICAgICAgIHZhciB2YWx1ZSA9IGZpbGVzW2lpXTsKKyAgICAgICAgaWYgKHR5cGVvZih2YWx1ZSkg
PT0gInN0cmluZyIpIHsKKyAgICAgICAgICBmbGF0LnB1c2godmFsdWUpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgIGZsYXR0ZW4odmFsdWUpOworICAgICAgICB9CisgICAgICB9CisgICAg
fQorICAgIGNhbGxiYWNrKHN1Y2Nlc3MsIGZsYXQpOworICB9KTsKK307CisKKy8qKgorICogR2V0
cyBhIGZpbGUgZnJvbSBhIGZpbGUvVVJMCisgKiBAcGFyYW0ge3N0cmluZ30gZmlsZSB0aGUgVVJM
IG9mIHRoZSBmaWxlIHRvIGdldC4KKyAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGNvbnRlbnRzIG9m
IHRoZSBmaWxlLgorICovCit2YXIgcmVhZEZpbGUgPSBmdW5jdGlvbihmaWxlKSB7CisgIHZhciB4
aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgeGhyLm9wZW4oIkdFVCIsIGZpbGUsIGZhbHNl
KTsKKyAgeGhyLnNlbmQoKTsKKyAgcmV0dXJuIHhoci5yZXNwb25zZVRleHQucmVwbGFjZSgvXHIv
ZywgIiIpOworfTsKKwordmFyIHJlYWRGaWxlTGlzdCA9IGZ1bmN0aW9uKHVybCkgeworICB2YXIg
ZmlsZXMgPSBbXTsKKyAgaWYgKHVybC5zdWJzdHIodXJsLmxlbmd0aCAtIDQpID09ICcudHh0Jykg
eworICAgIHZhciBsaW5lcyA9IHJlYWRGaWxlKHVybCkuc3BsaXQoJ1xuJyk7CisgICAgdmFyIHBy
ZWZpeCA9ICcnOworICAgIHZhciBsYXN0U2xhc2ggPSB1cmwubGFzdEluZGV4T2YoJy8nKTsKKyAg
ICBpZiAobGFzdFNsYXNoID49IDApIHsKKyAgICAgIHByZWZpeCA9IHVybC5zdWJzdHIoMCwgbGFz
dFNsYXNoICsgMSk7CisgICAgfQorICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCBsaW5lcy5sZW5n
dGg7ICsraWkpIHsKKyAgICAgIHZhciBzdHIgPSBsaW5lc1tpaV0ucmVwbGFjZSgvXlxzXHMqLywg
JycpLnJlcGxhY2UoL1xzXHMqJC8sICcnKTsKKyAgICAgIGlmIChzdHIubGVuZ3RoID4gNCAmJgor
ICAgICAgICAgIHN0clswXSAhPSAnIycgJiYKKyAgICAgICAgICBzdHJbMF0gIT0gIjsiICYmCisg
ICAgICAgICAgc3RyLnN1YnN0cigwLCAyKSAhPSAiLy8iKSB7CisgICAgICAgIHZhciBuYW1lcyA9
IHN0ci5zcGxpdCgvICsvKTsKKyAgICAgICAgaWYgKG5hbWVzLmxlbmd0aCA9PSAxKSB7CisgICAg
ICAgICAgbmV3X3VybCA9IHByZWZpeCArIHN0cjsKKyAgICAgICAgICBmaWxlcyA9IGZpbGVzLmNv
bmNhdChyZWFkRmlsZUxpc3QobmV3X3VybCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
IHZhciBzID0gIiI7CisgICAgICAgICAgdmFyIHAgPSAiIjsKKyAgICAgICAgICBmb3IgKHZhciBq
aiA9IDA7IGpqIDwgbmFtZXMubGVuZ3RoOyArK2pqKSB7CisgICAgICAgICAgICBzICs9IHAgKyBw
cmVmaXggKyBuYW1lc1tqal07CisgICAgICAgICAgICBwID0gIiAiOworICAgICAgICAgIH0KKyAg
ICAgICAgICBmaWxlcy5wdXNoKHMpOworICAgICAgICB9CisgICAgICB9CisgICAgfQorICB9IGVs
c2UgeworICAgIGZpbGVzLnB1c2godXJsKTsKKyAgfQorICByZXR1cm4gZmlsZXM7Cit9OworCisv
KioKKyAqIExvYWRzIGEgc2hhZGVyLgorICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUg
V2ViR0xDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7c3RyaW5nfSBzaGFkZXJTb3VyY2UgVGhl
IHNoYWRlciBzb3VyY2UuCisgKiBAcGFyYW0ge251bWJlcn0gc2hhZGVyVHlwZSBUaGUgdHlwZSBv
ZiBzaGFkZXIuIAorICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmcpOiB2b2lkKSBvcHRfZXJyb3JD
YWxsYmFjayBjYWxsYmFjayBmb3IgZXJyb3JzLiAKKyAqIEByZXR1cm4geyFXZWJHTFNoYWRlcn0g
VGhlIGNyZWF0ZWQgc2hhZGVyLgorICovCit2YXIgbG9hZFNoYWRlciA9IGZ1bmN0aW9uKGdsLCBz
aGFkZXJTb3VyY2UsIHNoYWRlclR5cGUsIG9wdF9lcnJvckNhbGxiYWNrKSB7CisgIHZhciBlcnJG
biA9IG9wdF9lcnJvckNhbGxiYWNrIHx8IGVycm9yOworICAvLyBDcmVhdGUgdGhlIHNoYWRlciBv
YmplY3QKKyAgdmFyIHNoYWRlciA9IGdsLmNyZWF0ZVNoYWRlcihzaGFkZXJUeXBlKTsKKyAgaWYg
KHNoYWRlciA9PSBudWxsKSB7CisgICAgZXJyRm4oIioqKiBFcnJvcjogdW5hYmxlIHRvIGNyZWF0
ZSBzaGFkZXIgJyIrc2hhZGVyU291cmNlKyInIik7CisgICAgcmV0dXJuIG51bGw7CisgIH0KKwor
ICAvLyBMb2FkIHRoZSBzaGFkZXIgc291cmNlCisgIGdsLnNoYWRlclNvdXJjZShzaGFkZXIsIHNo
YWRlclNvdXJjZSk7CisgIHZhciBlcnIgPSBnbC5nZXRFcnJvcigpOworICBpZiAoZXJyICE9IGds
Lk5PX0VSUk9SKSB7CisgICAgZXJyRm4oIioqKiBFcnJvciBsb2FkaW5nIHNoYWRlciAnIiArIHNo
YWRlciArICInOiIgKyBnbEVudW1Ub1N0cmluZyhnbCwgZXJyKSk7CisgICAgcmV0dXJuIG51bGw7
CisgIH0KKworICAvLyBDb21waWxlIHRoZSBzaGFkZXIKKyAgZ2wuY29tcGlsZVNoYWRlcihzaGFk
ZXIpOworCisgIC8vIENoZWNrIHRoZSBjb21waWxlIHN0YXR1cworICB2YXIgY29tcGlsZWQgPSBn
bC5nZXRTaGFkZXJQYXJhbWV0ZXIoc2hhZGVyLCBnbC5DT01QSUxFX1NUQVRVUyk7CisgIGlmICgh
Y29tcGlsZWQpIHsKKyAgICAvLyBTb21ldGhpbmcgd2VudCB3cm9uZyBkdXJpbmcgY29tcGlsYXRp
b247IGdldCB0aGUgZXJyb3IKKyAgICBsYXN0RXJyb3IgPSBnbC5nZXRTaGFkZXJJbmZvTG9nKHNo
YWRlcik7CisgICAgZXJyRm4oIioqKiBFcnJvciBjb21waWxpbmcgIiArIGdsRW51bVRvU3RyaW5n
KGdsLCBzaGFkZXJUeXBlKSArICIgJyIgKyBzaGFkZXIgKyAiJzoiICsgbGFzdEVycm9yKTsKKyAg
ICBnbC5kZWxldGVTaGFkZXIoc2hhZGVyKTsKKyAgICByZXR1cm4gbnVsbDsKKyAgfQorCisgIHJl
dHVybiBzaGFkZXI7Cit9CisKKy8qKgorICogTG9hZHMgYSBzaGFkZXIgZnJvbSBhIFVSTC4KKyAq
IEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCisgKiBA
cGFyYW0ge2ZpbGV9IGZpbGUgVGhlIFVSTCBvZiB0aGUgc2hhZGVyIHNvdXJjZS4KKyAqIEBwYXJh
bSB7bnVtYmVyfSB0eXBlIFRoZSB0eXBlIG9mIHNoYWRlci4KKyAqIEBwYXJhbSB7ZnVuY3Rpb24o
c3RyaW5nKTogdm9pZCkgb3B0X2Vycm9yQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIGVycm9ycy4gCisg
KiBAcmV0dXJuIHshV2ViR0xTaGFkZXJ9IFRoZSBjcmVhdGVkIHNoYWRlci4KKyAqLwordmFyIGxv
YWRTaGFkZXJGcm9tRmlsZSA9IGZ1bmN0aW9uKGdsLCBmaWxlLCB0eXBlLCBvcHRfZXJyb3JDYWxs
YmFjaykgeworICB2YXIgc2hhZGVyU291cmNlID0gcmVhZEZpbGUoZmlsZSk7CisgIHJldHVybiBs
b2FkU2hhZGVyKGdsLCBzaGFkZXJTb3VyY2UsIHR5cGUsIG9wdF9lcnJvckNhbGxiYWNrKTsKK307
CisKKy8qKgorICogR2V0cyB0aGUgY29udGVudCBvZiBzY3JpcHQuCisgKi8KK3ZhciBnZXRTY3Jp
cHQgPSBmdW5jdGlvbihzY3JpcHRJZCkgeworICB2YXIgc2hhZGVyU2NyaXB0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoc2NyaXB0SWQpOworICBpZiAoIXNoYWRlclNjcmlwdCkgeworICAgIHRo
cm93KCIqKiogRXJyb3I6IHVua25vd24gc2NyaXB0IGVsZW1lbnQiICsgc2NyaXB0SWQpOworICB9
CisgIHJldHVybiBzaGFkZXJTY3JpcHQudGV4dDsKK307CisKKy8qKgorICogTG9hZHMgYSBzaGFk
ZXIgZnJvbSBhIHNjcmlwdCB0YWcuCisgKiBAcGFyYW0geyFXZWJHTENvbnRleHR9IGdsIFRoZSBX
ZWJHTENvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtzdHJpbmd9IHNjcmlwdElkIFRoZSBpZCBv
ZiB0aGUgc2NyaXB0IHRhZy4KKyAqIEBwYXJhbSB7bnVtYmVyfSBvcHRfc2hhZGVyVHlwZSBUaGUg
dHlwZSBvZiBzaGFkZXIuIElmIG5vdCBwYXNzZWQgaW4gaXQgd2lsbAorICogICAgIGJlIGRlcml2
ZWQgZnJvbSB0aGUgdHlwZSBvZiB0aGUgc2NyaXB0IHRhZy4KKyAqIEBwYXJhbSB7ZnVuY3Rpb24o
c3RyaW5nKTogdm9pZCkgb3B0X2Vycm9yQ2FsbGJhY2sgY2FsbGJhY2sgZm9yIGVycm9ycy4gCisg
KiBAcmV0dXJuIHshV2ViR0xTaGFkZXJ9IFRoZSBjcmVhdGVkIHNoYWRlci4KKyAqLwordmFyIGxv
YWRTaGFkZXJGcm9tU2NyaXB0ID0gZnVuY3Rpb24oCisgICAgZ2wsIHNjcmlwdElkLCBvcHRfc2hh
ZGVyVHlwZSwgb3B0X2Vycm9yQ2FsbGJhY2spIHsKKyAgdmFyIHNoYWRlclNvdXJjZSA9ICIiOwor
ICB2YXIgc2hhZGVyVHlwZTsKKyAgdmFyIHNoYWRlclNjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKHNjcmlwdElkKTsKKyAgaWYgKCFzaGFkZXJTY3JpcHQpIHsKKyAgICB0aHJvdygiKioq
IEVycm9yOiB1bmtub3duIHNjcmlwdCBlbGVtZW50ICIgKyBzY3JpcHRJZCk7CisgIH0KKyAgc2hh
ZGVyU291cmNlID0gc2hhZGVyU2NyaXB0LnRleHQ7CisKKyAgaWYgKCFvcHRfc2hhZGVyVHlwZSkg
eworICAgIGlmIChzaGFkZXJTY3JpcHQudHlwZSA9PSAieC1zaGFkZXIveC12ZXJ0ZXgiKSB7Cisg
ICAgICBzaGFkZXJUeXBlID0gZ2wuVkVSVEVYX1NIQURFUjsKKyAgICB9IGVsc2UgaWYgKHNoYWRl
clNjcmlwdC50eXBlID09ICJ4LXNoYWRlci94LWZyYWdtZW50IikgeworICAgICAgc2hhZGVyVHlw
ZSA9IGdsLkZSQUdNRU5UX1NIQURFUjsKKyAgICB9IGVsc2UgaWYgKHNoYWRlclR5cGUgIT0gZ2wu
VkVSVEVYX1NIQURFUiAmJiBzaGFkZXJUeXBlICE9IGdsLkZSQUdNRU5UX1NIQURFUikgeworICAg
ICAgdGhyb3coIioqKiBFcnJvcjogdW5rbm93biBzaGFkZXIgdHlwZSIpOworICAgICAgcmV0dXJu
IG51bGw7CisgICAgfQorICB9CisKKyAgcmV0dXJuIGxvYWRTaGFkZXIoCisgICAgICBnbCwgc2hh
ZGVyU291cmNlLCBvcHRfc2hhZGVyVHlwZSA/IG9wdF9zaGFkZXJUeXBlIDogc2hhZGVyVHlwZSwK
KyAgICAgIG9wdF9lcnJvckNhbGxiYWNrKTsKK307CisKK3ZhciBsb2FkU3RhbmRhcmRQcm9ncmFt
ID0gZnVuY3Rpb24oZ2wpIHsKKyAgdmFyIHByb2dyYW0gPSBnbC5jcmVhdGVQcm9ncmFtKCk7Cisg
IGdsLmF0dGFjaFNoYWRlcihwcm9ncmFtLCBsb2FkU3RhbmRhcmRWZXJ0ZXhTaGFkZXIoZ2wpKTsK
KyAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGxvYWRTdGFuZGFyZEZyYWdtZW50U2hhZGVyKGds
KSk7CisgIGxpbmtQcm9ncmFtKGdsLCBwcm9ncmFtKTsKKyAgcmV0dXJuIHByb2dyYW07Cit9Owor
CisvKioKKyAqIExvYWRzIHNoYWRlcnMgZnJvbSBmaWxlcywgY3JlYXRlcyBhIHByb2dyYW0sIGF0
dGFjaGVzIHRoZSBzaGFkZXJzIGFuZCBsaW5rcy4KKyAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0g
Z2wgVGhlIFdlYkdMQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge3N0cmluZ30gdmVydGV4U2hh
ZGVyUGF0aCBUaGUgVVJMIG9mIHRoZSB2ZXJ0ZXggc2hhZGVyLgorICogQHBhcmFtIHtzdHJpbmd9
IGZyYWdtZW50U2hhZGVyUGF0aCBUaGUgVVJMIG9mIHRoZSBmcmFnbWVudCBzaGFkZXIuCisgKiBA
cGFyYW0ge2Z1bmN0aW9uKHN0cmluZyk6IHZvaWQpIG9wdF9lcnJvckNhbGxiYWNrIGNhbGxiYWNr
IGZvciBlcnJvcnMuIAorICogQHJldHVybiB7IVdlYkdMUHJvZ3JhbX0gVGhlIGNyZWF0ZWQgcHJv
Z3JhbS4KKyAqLwordmFyIGxvYWRQcm9ncmFtRnJvbUZpbGUgPSBmdW5jdGlvbigKKyAgICBnbCwg
dmVydGV4U2hhZGVyUGF0aCwgZnJhZ21lbnRTaGFkZXJQYXRoLCBvcHRfZXJyb3JDYWxsYmFjaykg
eworICB2YXIgcHJvZ3JhbSA9IGdsLmNyZWF0ZVByb2dyYW0oKTsKKyAgdmFyIHZzID0gbG9hZFNo
YWRlckZyb21GaWxlKAorICAgICAgZ2wsIHZlcnRleFNoYWRlclBhdGgsIGdsLlZFUlRFWF9TSEFE
RVIsIG9wdF9lcnJvckNhbGxiYWNrKTsKKyAgdmFyIGZzID0gbG9hZFNoYWRlckZyb21GaWxlKAor
ICAgICAgZ2wsIGZyYWdtZW50U2hhZGVyUGF0aCwgZ2wuRlJBR01FTlRfU0hBREVSLCBvcHRfZXJy
b3JDYWxsYmFjayk7CisgIGlmICh2cyAmJiBmcykgeworICAgIGdsLmF0dGFjaFNoYWRlcihwcm9n
cmFtLCB2cyk7CisgICAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGZzKTsKKyAgICBsaW5rUHJv
Z3JhbShnbCwgcHJvZ3JhbSwgb3B0X2Vycm9yQ2FsbGJhY2spOworICB9CisgIGlmICh2cykgewor
ICAgIGdsLmRlbGV0ZVNoYWRlcih2cyk7CisgIH0KKyAgaWYgKGZzKSB7CisgICAgZ2wuZGVsZXRl
U2hhZGVyKGZzKTsKKyAgfQorICByZXR1cm4gcHJvZ3JhbTsKK307CisKKy8qKgorICogTG9hZHMg
c2hhZGVycyBmcm9tIHNjcmlwdCB0YWdzLCBjcmVhdGVzIGEgcHJvZ3JhbSwgYXR0YWNoZXMgdGhl
IHNoYWRlcnMgYW5kCisgKiBsaW5rcy4KKyAqIEBwYXJhbSB7IVdlYkdMQ29udGV4dH0gZ2wgVGhl
IFdlYkdMQ29udGV4dCB0byB1c2UuCisgKiBAcGFyYW0ge3N0cmluZ30gdmVydGV4U2NyaXB0SWQg
VGhlIGlkIG9mIHRoZSBzY3JpcHQgdGFnIHRoYXQgY29udGFpbnMgdGhlCisgKiAgICAgICAgdmVy
dGV4IHNoYWRlci4KKyAqIEBwYXJhbSB7c3RyaW5nfSBmcmFnbWVudFNjcmlwdElkIFRoZSBpZCBv
ZiB0aGUgc2NyaXB0IHRhZyB0aGF0IGNvbnRhaW5zIHRoZQorICogICAgICAgIGZyYWdtZW50IHNo
YWRlci4KKyAqIEBwYXJhbSB7ZnVuY3Rpb24oc3RyaW5nKTogdm9pZCkgb3B0X2Vycm9yQ2FsbGJh
Y2sgY2FsbGJhY2sgZm9yIGVycm9ycy4gCisgKiBAcmV0dXJuIHshV2ViR0xQcm9ncmFtfSBUaGUg
Y3JlYXRlZCBwcm9ncmFtLgorICovCit2YXIgbG9hZFByb2dyYW1Gcm9tU2NyaXB0ID0gZnVuY3Rp
b24gbG9hZFByb2dyYW1Gcm9tU2NyaXB0KAorICAgIGdsLCB2ZXJ0ZXhTY3JpcHRJZCwgZnJhZ21l
bnRTY3JpcHRJZCwgb3B0X2Vycm9yQ2FsbGJhY2spIHsKKyAgdmFyIHByb2dyYW0gPSBnbC5jcmVh
dGVQcm9ncmFtKCk7CisgIGdsLmF0dGFjaFNoYWRlcigKKyAgICAgIHByb2dyYW0sCisgICAgICBs
b2FkU2hhZGVyRnJvbVNjcmlwdCgKKyAgICAgICAgICBnbCwgdmVydGV4U2NyaXB0SWQsIGdsLlZF
UlRFWF9TSEFERVIsIG9wdF9lcnJvckNhbGxiYWNrKSk7CisgIGdsLmF0dGFjaFNoYWRlcigKKyAg
ICAgIHByb2dyYW0sCisgICAgICBsb2FkU2hhZGVyRnJvbVNjcmlwdCgKKyAgICAgICAgICBnbCwg
ZnJhZ21lbnRTY3JpcHRJZCwgIGdsLkZSQUdNRU5UX1NIQURFUiwgb3B0X2Vycm9yQ2FsbGJhY2sp
KTsKKyAgbGlua1Byb2dyYW0oZ2wsIHByb2dyYW0sIG9wdF9lcnJvckNhbGxiYWNrKTsKKyAgcmV0
dXJuIHByb2dyYW07Cit9OworCisvKioKKyAqIExvYWRzIHNoYWRlcnMgZnJvbSBzb3VyY2UsIGNy
ZWF0ZXMgYSBwcm9ncmFtLCBhdHRhY2hlcyB0aGUgc2hhZGVycyBhbmQKKyAqIGxpbmtzLgorICog
QHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KKyAqIEBw
YXJhbSB7IVdlYkdMU2hhZGVyfSB2ZXJ0ZXhTaGFkZXIgVGhlIHZlcnRleCBzaGFkZXIuCisgKiBA
cGFyYW0geyFXZWJHTFNoYWRlcn0gZnJhZ21lbnRTaGFkZXIgVGhlIGZyYWdtZW50IHNoYWRlci4K
KyAqIEBwYXJhbSB7ZnVuY3Rpb24oc3RyaW5nKTogdm9pZCkgb3B0X2Vycm9yQ2FsbGJhY2sgY2Fs
bGJhY2sgZm9yIGVycm9ycy4KKyAqIEByZXR1cm4geyFXZWJHTFByb2dyYW19IFRoZSBjcmVhdGVk
IHByb2dyYW0uCisgKi8KK3ZhciBjcmVhdGVQcm9ncmFtID0gZnVuY3Rpb24oZ2wsIHZlcnRleFNo
YWRlciwgZnJhZ21lbnRTaGFkZXIsIG9wdF9lcnJvckNhbGxiYWNrKSB7CisgIHZhciBwcm9ncmFt
ID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOworICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgdmVydGV4
U2hhZGVyKTsKKyAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGZyYWdtZW50U2hhZGVyKTsKKyAg
bGlua1Byb2dyYW0oZ2wsIHByb2dyYW0sIG9wdF9lcnJvckNhbGxiYWNrKTsKKyAgcmV0dXJuIHBy
b2dyYW07Cit9OworCisvKioKKyAqIExvYWRzIHNoYWRlcnMgZnJvbSBzb3VyY2UsIGNyZWF0ZXMg
YSBwcm9ncmFtLCBhdHRhY2hlcyB0aGUgc2hhZGVycyBhbmQKKyAqIGxpbmtzLgorICogQHBhcmFt
IHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7
c3RyaW5nfSB2ZXJ0ZXhTaGFkZXIgVGhlIHZlcnRleCBzaGFkZXIgc291cmNlLgorICogQHBhcmFt
IHtzdHJpbmd9IGZyYWdtZW50U2hhZGVyIFRoZSBmcmFnbWVudCBzaGFkZXIgc291cmNlLgorICog
QHBhcmFtIHtmdW5jdGlvbihzdHJpbmcpOiB2b2lkKSBvcHRfZXJyb3JDYWxsYmFjayBjYWxsYmFj
ayBmb3IgZXJyb3JzLiAKKyAqIEByZXR1cm4geyFXZWJHTFByb2dyYW19IFRoZSBjcmVhdGVkIHBy
b2dyYW0uCisgKi8KK3ZhciBsb2FkUHJvZ3JhbSA9IGZ1bmN0aW9uKAorICAgIGdsLCB2ZXJ0ZXhT
aGFkZXIsIGZyYWdtZW50U2hhZGVyLCBvcHRfZXJyb3JDYWxsYmFjaykgeworICB2YXIgcHJvZ3Jh
bTsKKyAgdmFyIHZzID0gbG9hZFNoYWRlcigKKyAgICAgIGdsLCB2ZXJ0ZXhTaGFkZXIsIGdsLlZF
UlRFWF9TSEFERVIsIG9wdF9lcnJvckNhbGxiYWNrKTsKKyAgdmFyIGZzID0gbG9hZFNoYWRlcigK
KyAgICAgIGdsLCBmcmFnbWVudFNoYWRlciwgZ2wuRlJBR01FTlRfU0hBREVSLCBvcHRfZXJyb3JD
YWxsYmFjayk7CisgIGlmICh2cyAmJiBmcykgeworICAgIHByb2dyYW0gPSBjcmVhdGVQcm9ncmFt
KGdsLCB2cywgZnMsIG9wdF9lcnJvckNhbGxiYWNrKQorICB9CisgIGlmICh2cykgeworICAgIGds
LmRlbGV0ZVNoYWRlcih2cyk7CisgIH0KKyAgaWYgKGZzKSB7CisgICAgZ2wuZGVsZXRlU2hhZGVy
KGZzKTsKKyAgfQorICByZXR1cm4gcHJvZ3JhbTsKK307CisKKy8qKgorICogTG9hZHMgc2hhZGVy
cyBmcm9tIHNvdXJjZSwgY3JlYXRlcyBhIHByb2dyYW0sIGF0dGFjaGVzIHRoZSBzaGFkZXJzIGFu
ZAorICogbGlua3MgYnV0IGV4cGVjdHMgZXJyb3IuCisgKgorICogR0xTTCAxLjAuMTcgMTAuMjcg
ZWZmZWN0aXZlbHkgc2F5cyB0aGF0IGNvbXBpbGVTaGFkZXIgY2FuCisgKiBhbHdheXMgc3VjY2Vl
ZCBhcyBsb25nIGFzIGxpbmtQcm9ncmFtIGZhaWxzIHNvIHdlIGNhbid0CisgKiByZWx5IG9uIGNv
bXBpbGVTaGFkZXIgZmFpbGluZy4gVGhpcyBmdW5jdGlvbiBleHBlY3RzCisgKiBvbmUgb2YgdGhl
IHNoYWRlciB0byBmYWlsIE9SIGxpbmtpbmcgdG8gZmFpbC4KKyAqCisgKiBAcGFyYW0geyFXZWJH
TENvbnRleHR9IGdsIFRoZSBXZWJHTENvbnRleHQgdG8gdXNlLgorICogQHBhcmFtIHtzdHJpbmd9
IHZlcnRleFNoYWRlclNjcmlwdElkIFRoZSB2ZXJ0ZXggc2hhZGVyLgorICogQHBhcmFtIHtzdHJp
bmd9IGZyYWdtZW50U2hhZGVyU2NyaXB0SWQgVGhlIGZyYWdtZW50IHNoYWRlci4KKyAqIEByZXR1
cm4ge1dlYkdMUHJvZ3JhbX0gVGhlIGNyZWF0ZWQgcHJvZ3JhbS4KKyAqLwordmFyIGxvYWRQcm9n
cmFtRnJvbVNjcmlwdEV4cGVjdEVycm9yID0gZnVuY3Rpb24oCisgICAgZ2wsIHZlcnRleFNoYWRl
clNjcmlwdElkLCBmcmFnbWVudFNoYWRlclNjcmlwdElkKSB7CisgIHZhciB2ZXJ0ZXhTaGFkZXIg
PSBsb2FkU2hhZGVyRnJvbVNjcmlwdChnbCwgdmVydGV4U2hhZGVyU2NyaXB0SWQpOworICBpZiAo
IXZlcnRleFNoYWRlcikgeworICAgIHJldHVybiBudWxsOworICB9CisgIHZhciBmcmFnbWVudFNo
YWRlciA9IGxvYWRTaGFkZXJGcm9tU2NyaXB0KGdsLCBmcmFnbWVudFNoYWRlclNjcmlwdElkKTsK
KyAgaWYgKCFmcmFnbWVudFNoYWRlcikgeworICAgIHJldHVybiBudWxsOworICB9CisgIHZhciBs
aW5rU3VjY2VzcyA9IHRydWU7CisgIHZhciBwcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOwor
ICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgdmVydGV4U2hhZGVyKTsKKyAgZ2wuYXR0YWNoU2hh
ZGVyKHByb2dyYW0sIGZyYWdtZW50U2hhZGVyKTsKKyAgbGlua1N1Y2Nlc3MgPSB0cnVlOworICBs
aW5rUHJvZ3JhbShnbCwgcHJvZ3JhbSwgZnVuY3Rpb24oKSB7CisgICAgICBsaW5rU3VjY2VzcyA9
IGZhbHNlOworICAgIH0pOworICByZXR1cm4gbGlua1N1Y2Nlc3MgPyBwcm9ncmFtIDogbnVsbDsK
K307CisKKwordmFyIGdldEFjdGl2ZU1hcCA9IGZ1bmN0aW9uKGdsLCBwcm9ncmFtLCB0eXBlSW5m
bykgeworICB2YXIgbnVtVmFyaWFibGVzID0gZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFt
LCBnbFt0eXBlSW5mby5wYXJhbV0pOworICB2YXIgdmFyaWFibGVzID0ge307CisgIGZvciAodmFy
IGlpID0gMDsgaWkgPCBudW1WYXJpYWJsZXM7ICsraWkpIHsKKyAgICB2YXIgaW5mbyA9IGdsW3R5
cGVJbmZvLmFjdGl2ZUZuXShwcm9ncmFtLCBpaSk7CisgICAgdmFyaWFibGVzW2luZm8ubmFtZV0g
PSB7CisgICAgICBuYW1lOiBpbmZvLm5hbWUsCisgICAgICBzaXplOiBpbmZvLnNpemUsCisgICAg
ICB0eXBlOiBpbmZvLnR5cGUsCisgICAgICBsb2NhdGlvbjogZ2xbdHlwZUluZm8ubG9jRm5dKHBy
b2dyYW0sIGluZm8ubmFtZSkKKyAgICB9OworICB9CisgIHJldHVybiB2YXJpYWJsZXM7Cit9Owor
CisvKioKKyAqIFJldHVybnMgYSBtYXAgb2YgYXR0cmliIG5hbWVzIHRvIGluZm8gYWJvdXQgdGhv
c2UKKyAqIGF0dHJpYnMKKyAqCisgKiBlZzoKKyAqICAgIHsgImF0dHJpYjFOYW1lIjoKKyAqICAg
ICAgeworICogICAgICAgIG5hbWU6ICJhdHRyaWIxTmFtZSIsCisgKiAgICAgICAgc2l6ZTogMSwK
KyAqICAgICAgICB0eXBlOiBnbC5GTE9BVF9NQVQyLAorICogICAgICAgIGxvY2F0aW9uOiAwCisg
KiAgICAgIH0sCisgKiAgICAgICJhdHRyaWIyTmFtZVswXSI6CisgKiAgICAgIHsKKyAqICAgICAg
ICAgbmFtZTogImF0dHJpYjJOYW1lWzBdIiwKKyAqICAgICAgICAgc2l6ZTogNCwKKyAqICAgICAg
ICAgdHlwZTogZ2wuRkxPQVQsCisgKiAgICAgICAgIGxvY2F0aW9uOiAxCisgKiAgICAgIH0sCisg
KiAgICB9CisgKgorICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0
IHRvIHVzZS4KKyAqIEBwYXJhbSB7V2ViR0xQcm9ncmFtfSBUaGUgcHJvZ3JhbSB0byBxdWVyeSBm
b3IgYXR0cmlicy4KKyAqIEByZXR1cm4gdGhlIG1hcC4KKyAqLwordmFyIGdldEF0dHJpYk1hcCA9
IGZ1bmN0aW9uKGdsLCBwcm9ncmFtKSB7CisgIHJldHVybiBnZXRBY3RpdmVNYXAoZ2wsIHByb2dy
YW0sIHsKKyAgICAgIHBhcmFtOiAiQUNUSVZFX0FUVFJJQlMiLAorICAgICAgYWN0aXZlRm46ICJn
ZXRBY3RpdmVBdHRyaWIiLAorICAgICAgbG9jRm46ICJnZXRBdHRyaWJMb2NhdGlvbiIKKyAgfSk7
Cit9OworCisvKioKKyAqIFJldHVybnMgYSBtYXAgb2YgdW5pZm9ybSBuYW1lcyB0byBpbmZvIGFi
b3V0IHRob3NlIHVuaWZvcm0KKyAqCisgKiBlZzoKKyAqICAgIHsgInVuaWZvcm0xTmFtZSI6Cisg
KiAgICAgIHsKKyAqICAgICAgICBuYW1lOiAidW5pZm9ybTFOYW1lIiwKKyAqICAgICAgICBzaXpl
OiAxLAorICogICAgICAgIHR5cGU6IGdsLkZMT0FUX01BVDIsCisgKiAgICAgICAgbG9jYXRpb246
IFdlYkdMVW5pZm9ybUxvY2F0aW9uCisgKiAgICAgIH0sCisgKiAgICAgICJ1bmlmb3JtMk5hbWVb
MF0iOgorICogICAgICB7CisgKiAgICAgICAgIG5hbWU6ICJ1bmlmb3JtMk5hbWVbMF0iLAorICog
ICAgICAgICBzaXplOiA0LAorICogICAgICAgICB0eXBlOiBnbC5GTE9BVCwKKyAqICAgICAgICAg
bG9jYXRpb246IFdlYkdMVW5pZm9ybUxvY2F0aW9uCisgKiAgICAgIH0sCisgKiAgICB9CisgKgor
ICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBnbCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KKyAq
IEBwYXJhbSB7V2ViR0xQcm9ncmFtfSBUaGUgcHJvZ3JhbSB0byBxdWVyeSBmb3IgdW5pZm9ybXMu
CisgKiBAcmV0dXJuIHRoZSBtYXAuCisgKi8KK3ZhciBnZXRVbmlmb3JtTWFwID0gZnVuY3Rpb24o
Z2wsIHByb2dyYW0pIHsKKyAgcmV0dXJuIGdldEFjdGl2ZU1hcChnbCwgcHJvZ3JhbSwgeworICAg
ICAgcGFyYW06ICJBQ1RJVkVfVU5JRk9STVMiLAorICAgICAgYWN0aXZlRm46ICJnZXRBY3RpdmVV
bmlmb3JtIiwKKyAgICAgIGxvY0ZuOiAiZ2V0VW5pZm9ybUxvY2F0aW9uIgorICB9KTsKK307CisK
K3ZhciBiYXNlUGF0aDsKK3ZhciBnZXRCYXNlUGF0aCA9IGZ1bmN0aW9uKCkgeworICBpZiAoIWJh
c2VQYXRoKSB7CisgICAgdmFyIGV4cGVjdGVkQmFzZSA9ICJ3ZWJnbC10ZXN0LXV0aWxzLmpzIjsK
KyAgICB2YXIgc2NyaXB0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQn
KTsKKyAgICBmb3IgKHZhciBzY3JpcHQsIGkgPSAwOyBzY3JpcHQgPSBzY3JpcHRzW2ldOyBpKysp
IHsKKyAgICAgIHZhciBzcmMgPSBzY3JpcHQuc3JjOworICAgICAgdmFyIGwgPSBzcmMubGVuZ3Ro
OworICAgICAgaWYgKHNyYy5zdWJzdHIobCAtIGV4cGVjdGVkQmFzZS5sZW5ndGgpID09IGV4cGVj
dGVkQmFzZSkgeworICAgICAgICBiYXNlUGF0aCA9IHNyYy5zdWJzdHIoMCwgbCAtIGV4cGVjdGVk
QmFzZS5sZW5ndGgpOworICAgICAgfQorICAgIH0KKyAgfQorICByZXR1cm4gYmFzZVBhdGg7Cit9
OworCit2YXIgbG9hZFN0YW5kYXJkVmVydGV4U2hhZGVyID0gZnVuY3Rpb24oZ2wpIHsKKyAgcmV0
dXJuIGxvYWRTaGFkZXJGcm9tRmlsZSgKKyAgICAgIGdsLCBnZXRCYXNlUGF0aCgpICsgInZlcnRl
eFNoYWRlci52ZXJ0IiwgZ2wuVkVSVEVYX1NIQURFUik7Cit9OworCit2YXIgbG9hZFN0YW5kYXJk
RnJhZ21lbnRTaGFkZXIgPSBmdW5jdGlvbihnbCkgeworICByZXR1cm4gbG9hZFNoYWRlckZyb21G
aWxlKAorICAgICAgZ2wsIGdldEJhc2VQYXRoKCkgKyAiZnJhZ21lbnRTaGFkZXIuZnJhZyIsIGds
LkZSQUdNRU5UX1NIQURFUik7Cit9OworCisvKioKKyAqIExvYWRzIGFuIGltYWdlIGFzeW5jaHJv
bm91c2x5LgorICogQHBhcmFtIHtzdHJpbmd9IHVybCBVUkwgb2YgaW1hZ2UgdG8gbG9hZC4KKyAq
IEBwYXJhbSB7IWZ1bmN0aW9uKCFFbGVtZW50KTogdm9pZH0gY2FsbGJhY2sgRnVuY3Rpb24gdG8g
Y2FsbAorICogICAgIHdpdGggbG9hZGVkIGltYWdlLgorICovCit2YXIgbG9hZEltYWdlQXN5bmMg
PSBmdW5jdGlvbih1cmwsIGNhbGxiYWNrKSB7CisgIHZhciBpbWcgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdpbWcnKTsKKyAgaW1nLm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGNhbGxiYWNr
KGltZyk7CisgIH07CisgIGltZy5zcmMgPSB1cmw7Cit9OworCisvKioKKyAqIExvYWRzIGFuIGFy
cmF5IG9mIGltYWdlcy4KKyAqIEBwYXJhbSB7IUFycmF5LjxzdHJpbmc+fSB1cmxzIFVSTHMgb2Yg
aW1hZ2VzIHRvIGxvYWQuCisgKiBAcGFyYW0geyFmdW5jdGlvbighe3N0cmluZywgaW1nfSk6IHZv
aWR9IGNhbGxiYWNrLiBDYWxsYmFjaworICogICAgIHRoYXQgZ2V0cyBwYXNzZWQgbWFwIG9mIHVy
bHMgdG8gaW1nIHRhZ3MuCisgKi8KK3ZhciBsb2FkSW1hZ2VzQXN5bmMgPSBmdW5jdGlvbih1cmxz
LCBjYWxsYmFjaykgeworICB2YXIgY291bnQgPSAxOworICB2YXIgaW1hZ2VzID0geyB9OworICBm
dW5jdGlvbiBjb3VudERvd24oKSB7CisgICAgLS1jb3VudDsKKyAgICBpZiAoY291bnQgPT0gMCkg
eworICAgICAgY2FsbGJhY2soaW1hZ2VzKTsKKyAgICB9CisgIH0KKyAgZnVuY3Rpb24gaW1hZ2VM
b2FkZWQodXJsKSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uKGltZykgeworICAgICAgaW1hZ2VzW3Vy
bF0gPSBpbWc7CisgICAgICBjb3VudERvd24oKTsKKyAgICB9CisgIH0KKyAgZm9yICh2YXIgaWkg
PSAwOyBpaSA8IHVybHMubGVuZ3RoOyArK2lpKSB7CisgICAgKytjb3VudDsKKyAgICBsb2FkSW1h
Z2VBc3luYyh1cmxzW2lpXSwgaW1hZ2VMb2FkZWQodXJsc1tpaV0pKTsKKyAgfQorICBjb3VudERv
d24oKTsKK307CisKK3ZhciBnZXRVcmxBcmd1bWVudHMgPSBmdW5jdGlvbigpIHsKKyAgdmFyIGFy
Z3MgPSB7fTsKKyAgdHJ5IHsKKyAgICB2YXIgcyA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmOworICAg
IHZhciBxID0gcy5pbmRleE9mKCI/Iik7CisgICAgdmFyIGUgPSBzLmluZGV4T2YoIiMiKTsKKyAg
ICBpZiAoZSA8IDApIHsKKyAgICAgIGUgPSBzLmxlbmd0aDsKKyAgICB9CisgICAgdmFyIHF1ZXJ5
ID0gcy5zdWJzdHJpbmcocSArIDEsIGUpOworICAgIHZhciBwYWlycyA9IHF1ZXJ5LnNwbGl0KCIm
Iik7CisgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHBhaXJzLmxlbmd0aDsgKytpaSkgeworICAg
ICAgdmFyIGtleVZhbHVlID0gcGFpcnNbaWldLnNwbGl0KCI9Iik7CisgICAgICB2YXIga2V5ID0g
a2V5VmFsdWVbMF07CisgICAgICB2YXIgdmFsdWUgPSBkZWNvZGVVUklDb21wb25lbnQoa2V5VmFs
dWVbMV0pOworICAgICAgYXJnc1trZXldID0gdmFsdWU7CisgICAgfQorICB9IGNhdGNoIChlKSB7
CisgICAgdGhyb3cgImNvdWxkIG5vdCBwYXJzZSB1cmwiOworICB9CisgIHJldHVybiBhcmdzOwor
fTsKKwordmFyIG1ha2VJbWFnZSA9IGZ1bmN0aW9uKGNhbnZhcykgeworICB2YXIgaW1nID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7CisgIGltZy5zcmMgPSBjYW52YXMudG9EYXRhVVJM
KCk7CisgIHJldHVybiBpbWc7Cit9OworCit2YXIgaW5zZXJ0SW1hZ2UgPSBmdW5jdGlvbihlbGVt
ZW50LCBjYXB0aW9uLCBpbWcpIHsKKyAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOworICBkaXYuYXBwZW5kQ2hpbGQoaW1nKTsKKyAgdmFyIGxhYmVsID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iik7CisgIGxhYmVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKGNhcHRpb24pKTsKKyAgZGl2LmFwcGVuZENoaWxkKGxhYmVsKTsKKyAgIGVsZW1l
bnQuYXBwZW5kQ2hpbGQoZGl2KTsKK307CisKK3ZhciBhZGRTaGFkZXJTb3VyY2UgPSBmdW5jdGlv
bihlbGVtZW50LCBsYWJlbCwgc291cmNlLCBvcHRfdXJsKSB7CisgIHZhciBkaXYgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJwcmUiKTsKKyAgcy5jbGFzc05hbWUgPSAic2hhZGVyLXNvdXJjZSI7CisgIHMuc3R5bGUuZGlz
cGxheSA9ICJub25lIjsKKyAgdmFyIG9sID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib2wiKTsK
KyAgLy9zLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHNvdXJjZSkpOworICB2
YXIgbGluZXMgPSBzb3VyY2Uuc3BsaXQoIlxuIik7CisgIGZvciAodmFyIGlpID0gMDsgaWkgPCBs
aW5lcy5sZW5ndGg7ICsraWkpIHsKKyAgICB2YXIgbGluZSA9IGxpbmVzW2lpXTsKKyAgICB2YXIg
bGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOworICAgIGxpLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKGxpbmUpKTsKKyAgICBvbC5hcHBlbmRDaGlsZChsaSk7Cisg
IH0KKyAgcy5hcHBlbmRDaGlsZChvbCk7CisgIHZhciBsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiYSIpOworICBsLmhyZWYgPSAic2hvdy1zaGFkZXItc291cmNlIjsKKyAgbC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShsYWJlbCkpOworICBsLmFkZEV2ZW50TGlzdGVuZXIo
J2NsaWNrJywgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgIGlmIChldmVudC5wcmV2ZW50RGVmYXVs
dCkgeworICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgfQorICAgICAgcy5z
dHlsZS5kaXNwbGF5ID0gKHMuc3R5bGUuZGlzcGxheSA9PSAnbm9uZScpID8gJ2Jsb2NrJyA6ICdu
b25lJzsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9LCBmYWxzZSk7CisgIGRpdi5hcHBlbmRD
aGlsZChsKTsKKyAgaWYgKG9wdF91cmwpIHsKKyAgICB2YXIgdSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImEiKTsKKyAgICB1LmhyZWYgPSBvcHRfdXJsOworICAgIGRpdi5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiICIpKTsKKyAgICB1LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKCIoIiArIG9wdF91cmwgKyAiKSIpKTsKKyAgICBkaXYuYXBwZW5kQ2hp
bGQodSk7CisgIH0KKyAgZGl2LmFwcGVuZENoaWxkKHMpOworICBlbGVtZW50LmFwcGVuZENoaWxk
KGRpdik7Cit9OworCisvLyBBZGQgeW91ciBwcmVmaXggaGVyZS4KK3ZhciBicm93c2VyUHJlZml4
ZXMgPSBbCisgICIiLAorICAiTU9aXyIsCisgICJPUF8iLAorICAiV0VCS0lUXyIKK107CisKKy8q
KgorICogR2l2ZW4gYW4gZXh0ZW5zaW9uIG5hbWUgbGlrZSBXRUJHTF9jb21wcmVzc2VkX3RleHR1
cmVfczN0YworICogcmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgc3VwcG9ydGVkIHZlcnNpb24gZXh0
ZW5zaW9uLCBsaWtlCisgKiBXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXR1cmVfczN0YworICog
QHBhcmFtIHtzdHJpbmd9IG5hbWUgTmFtZSBvZiBleHRlbnNpb24gdG8gbG9vayBmb3IKKyAqIEBy
ZXR1cm4ge3N0cmluZ30gbmFtZSBvZiBleHRlbnNpb24gZm91bmQgb3IgdW5kZWZpbmVkIGlmIG5v
dAorICogICAgIGZvdW5kLgorICovCit2YXIgZ2V0U3VwcG9ydGVkRXh0ZW5zaW9uV2l0aEtub3du
UHJlZml4ZXMgPSBmdW5jdGlvbihnbCwgbmFtZSkgeworICB2YXIgc3VwcG9ydGVkID0gZ2wuZ2V0
U3VwcG9ydGVkRXh0ZW5zaW9ucygpOworICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgYnJvd3NlclBy
ZWZpeGVzLmxlbmd0aDsgKytpaSkgeworICAgIHZhciBwcmVmaXhlZE5hbWUgPSBicm93c2VyUHJl
Zml4ZXNbaWldICsgbmFtZTsKKyAgICBpZiAoc3VwcG9ydGVkLmluZGV4T2YocHJlZml4ZWROYW1l
KSA+PSAwKSB7CisgICAgICByZXR1cm4gcHJlZml4ZWROYW1lOworICAgIH0KKyAgfQorfTsKKwor
LyoqCisgKiBHaXZlbiBhbiBleHRlbnNpb24gbmFtZSBsaWtlIFdFQkdMX2NvbXByZXNzZWRfdGV4
dHVyZV9zM3RjCisgKiByZXR1cm5zIHRoZSBzdXBwb3J0ZWQgdmVyc2lvbiBleHRlbnNpb24sIGxp
a2UKKyAqIFdFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RldHVyZV9zM3RjCisgKiBAcGFyYW0ge3N0
cmluZ30gbmFtZSBOYW1lIG9mIGV4dGVuc2lvbiB0byBsb29rIGZvcgorICogQHJldHVybiB7V2Vi
R0xFeHRlbnNpb259IFRoZSBleHRlbnNpb24gb3IgdW5kZWZpbmVkIGlmIG5vdAorICogICAgIGZv
dW5kLgorICovCit2YXIgZ2V0RXh0ZW5zaW9uV2l0aEtub3duUHJlZml4ZXMgPSBmdW5jdGlvbihn
bCwgbmFtZSkgeworICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgYnJvd3NlclByZWZpeGVzLmxlbmd0
aDsgKytpaSkgeworICAgIHZhciBwcmVmaXhlZE5hbWUgPSBicm93c2VyUHJlZml4ZXNbaWldICsg
bmFtZTsKKyAgICB2YXIgZXh0ID0gZ2wuZ2V0RXh0ZW5zaW9uKHByZWZpeGVkTmFtZSk7CisgICAg
aWYgKGV4dCkgeworICAgICAgcmV0dXJuIGV4dDsKKyAgICB9CisgIH0KK307CisKKwordmFyIHJl
cGxhY2VSRSA9IC9cJFwoKFx3KylcKS9nOworCisvKioKKyAqIFJlcGxhY2VzIHN0cmluZ3Mgd2l0
aCBwcm9wZXJ0eSB2YWx1ZXMuCisgKiBHaXZlbiBhIHN0cmluZyBsaWtlICJoZWxsbyAkKGZpcnN0
KSAkKGxhc3QpIiBhbmQgYW4gb2JqZWN0CisgKiBsaWtlIHtmaXJzdDoiSm9obiIsIGxhc3Q6IlNt
aXRoIn0gd2lsbCByZXR1cm4KKyAqICJoZWxsbyBKb2huIFNtaXRoIi4KKyAqIEBwYXJhbSB7c3Ry
aW5nfSBzdHIgU3RyaW5nIHRvIGRvIHJlcGxhY2VtZW50cyBpbgorICogQHBhcmFtIHsuLi59IDEg
b3IgbW9yZSBvYmplY3RzIGNvbmFpbmluZyBwcm9wZXJ0aWVzLgorICovCit2YXIgcmVwbGFjZVBh
cmFtcyA9IGZ1bmN0aW9uKHN0cikgeworICB2YXIgYXJncyA9IGFyZ3VtZW50czsKKyAgcmV0dXJu
IHN0ci5yZXBsYWNlKHJlcGxhY2VSRSwgZnVuY3Rpb24oc3RyLCBwMSwgb2Zmc2V0LCBzKSB7Cisg
ICAgZm9yICh2YXIgaWkgPSAxOyBpaSA8IGFyZ3MubGVuZ3RoOyArK2lpKSB7CisgICAgICBpZiAo
YXJnc1tpaV1bcDFdICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgcmV0dXJuIGFyZ3NbaWldW3Ax
XTsKKyAgICAgIH0KKyAgICB9CisgICAgdGhyb3cgInVua25vd24gc3RyaW5nIHBhcmFtICciICsg
cDEgKyAiJyI7CisgIH0pOworfTsKKworCisvKioKKyAqIFByb3ZpZGVzIHJlcXVlc3RBbmltYXRp
b25GcmFtZSBpbiBhIGNyb3NzIGJyb3dzZXIgd2F5LgorICovCit2YXIgcmVxdWVzdEFuaW1GcmFt
ZUltcGxfOworCit2YXIgcmVxdWVzdEFuaW1GcmFtZSA9IGZ1bmN0aW9uKGNhbGxiYWNrLCBlbGVt
ZW50KSB7CisgIGlmICghcmVxdWVzdEFuaW1GcmFtZUltcGxfKSB7CisgICAgcmVxdWVzdEFuaW1G
cmFtZUltcGxfID0gZnVuY3Rpb24oKSB7CisgICAgICB2YXIgZnVuY3Rpb25OYW1lcyA9IFsKKyAg
ICAgICAgInJlcXVlc3RBbmltYXRpb25GcmFtZSIsCisgICAgICAgICJ3ZWJraXRSZXF1ZXN0QW5p
bWF0aW9uRnJhbWUiLAorICAgICAgICAibW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwKKyAgICAg
ICAgIm9SZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLAorICAgICAgICAibXNSZXF1ZXN0QW5pbWF0aW9u
RnJhbWUiCisgICAgICBdOworICAgICAgZm9yICh2YXIgamogPSAwOyBqaiA8IGZ1bmN0aW9uTmFt
ZXMubGVuZ3RoOyArK2pqKSB7CisgICAgICAgIHZhciBmdW5jdGlvbk5hbWUgPSBmdW5jdGlvbk5h
bWVzW2pqXTsKKyAgICAgICAgaWYgKHdpbmRvd1tmdW5jdGlvbk5hbWVdKSB7CisgICAgICAgICAg
cmV0dXJuIGZ1bmN0aW9uKG5hbWUpIHsKKyAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbihjYWxs
YmFjaywgZWxlbWVudCkgeworICAgICAgICAgICAgICByZXR1cm4gd2luZG93W25hbWVdLmNhbGwo
d2luZG93LCBjYWxsYmFjaywgZWxlbWVudCk7CisgICAgICAgICAgICB9OworICAgICAgICAgIH0o
ZnVuY3Rpb25OYW1lKTsKKyAgICAgICAgfQorICAgICAgfQorICAgICAgcmV0dXJuIGZ1bmN0aW9u
KGNhbGxiYWNrLCBlbGVtZW50KSB7CisgICAgICAgICAgIHJldHVybiB3aW5kb3cuc2V0VGltZW91
dChjYWxsYmFjaywgMTAwMCAvIDcwKTsKKyAgICAgICAgfTsKKyAgICB9KCk7CisgIH0KKworICBy
ZXR1cm4gcmVxdWVzdEFuaW1GcmFtZUltcGxfKGNhbGxiYWNrLCBlbGVtZW50KTsKK307CisKKy8q
KgorICogUHJvdmlkZXMgY2FuY2VsQW5pbWF0aW9uRnJhbWUgaW4gYSBjcm9zcyBicm93c2VyIHdh
eS4KKyAqLwordmFyIGNhbmNlbEFuaW1GcmFtZSA9IChmdW5jdGlvbigpIHsKKyAgcmV0dXJuIHdp
bmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSB8fAorICAgICAgICAgd2luZG93LndlYmtpdENhbmNl
bEFuaW1hdGlvbkZyYW1lIHx8CisgICAgICAgICB3aW5kb3cubW96Q2FuY2VsQW5pbWF0aW9uRnJh
bWUgfHwKKyAgICAgICAgIHdpbmRvdy5vQ2FuY2VsQW5pbWF0aW9uRnJhbWUgfHwKKyAgICAgICAg
IHdpbmRvdy5tc0NhbmNlbEFuaW1hdGlvbkZyYW1lIHx8CisgICAgICAgICB3aW5kb3cuY2xlYXJU
aW1lb3V0OworfSkoKTsKKworLyoqCisgKiBXYWl0cyBmb3IgdGhlIGJyb3dzZXIgdG8gY29tcG9z
aXRlIHRoZSBjYW52YXMgYXNzb2NpYXRlZCB3aXRoCisgKiB0aGUgV2ViR0wgY29udGV4dCBwYXNz
ZWQgaW4uCisgKi8KK3ZhciB3YWl0Rm9yQ29tcG9zaXRlID0gZnVuY3Rpb24oZ2wsIGNhbGxiYWNr
KSB7CisgIHZhciBmcmFtZXMgPSA1OworICB2YXIgY291bnREb3duID0gZnVuY3Rpb24oKSB7Cisg
ICAgaWYgKGZyYW1lcyA9PSAwKSB7CisgICAgICBjYWxsYmFjaygpOworICAgIH0gZWxzZSB7Cisg
ICAgICAtLWZyYW1lczsKKyAgICAgIHJlcXVlc3RBbmltRnJhbWUoY291bnREb3duKTsKKyAgICB9
CisgIH07CisgIGNvdW50RG93bigpOworfTsKKworcmV0dXJuIHsKKyAgYWRkU2hhZGVyU291cmNl
OiBhZGRTaGFkZXJTb3VyY2UsCisgIGNhbmNlbEFuaW1GcmFtZTogY2FuY2VsQW5pbUZyYW1lLAor
ICBjcmVhdGUzRENvbnRleHQ6IGNyZWF0ZTNEQ29udGV4dCwKKyAgY3JlYXRlM0RDb250ZXh0V2l0
aFdyYXBwZXJUaGF0VGhyb3dzT25HTEVycm9yOgorICAgICAgY3JlYXRlM0RDb250ZXh0V2l0aFdy
YXBwZXJUaGF0VGhyb3dzT25HTEVycm9yLAorICBjaGVja0NhbnZhczogY2hlY2tDYW52YXMsCisg
IGNoZWNrQ2FudmFzUmVjdDogY2hlY2tDYW52YXNSZWN0LAorICBjaGVja0NhbnZhc1JlY3RDb2xv
cjogY2hlY2tDYW52YXNSZWN0Q29sb3IsCisgIGNyZWF0ZUNvbG9yZWRUZXh0dXJlOiBjcmVhdGVD
b2xvcmVkVGV4dHVyZSwKKyAgY3JlYXRlUHJvZ3JhbTogY3JlYXRlUHJvZ3JhbSwKKyAgZHJhd1F1
YWQ6IGRyYXdRdWFkLAorICBkcmF3SW5kZXhlZFF1YWQ6IGRyYXdJbmRleGVkUXVhZCwKKyAgZHJh
d1VCeXRlQ29sb3JRdWFkOiBkcmF3VUJ5dGVDb2xvclF1YWQsCisgIGRyYXdGbG9hdENvbG9yUXVh
ZDogZHJhd0Zsb2F0Q29sb3JRdWFkLAorICBlbmRzV2l0aDogZW5kc1dpdGgsCisgIGZpbGxUZXh0
dXJlOiBmaWxsVGV4dHVyZSwKKyAgZ2V0RXh0ZW5zaW9uV2l0aEtub3duUHJlZml4ZXM6IGdldEV4
dGVuc2lvbldpdGhLbm93blByZWZpeGVzLAorICBnZXRGaWxlTGlzdEFzeW5jOiBnZXRGaWxlTGlz
dEFzeW5jLAorICBnZXRMYXN0RXJyb3I6IGdldExhc3RFcnJvciwKKyAgZ2V0U2NyaXB0OiBnZXRT
Y3JpcHQsCisgIGdldFN1cHBvcnRlZEV4dGVuc2lvbldpdGhLbm93blByZWZpeGVzOiBnZXRTdXBw
b3J0ZWRFeHRlbnNpb25XaXRoS25vd25QcmVmaXhlcywKKyAgZ2V0VXJsQXJndW1lbnRzOiBnZXRV
cmxBcmd1bWVudHMsCisgIGdldEF0dHJpYk1hcDogZ2V0QXR0cmliTWFwLAorICBnZXRVbmlmb3Jt
TWFwOiBnZXRVbmlmb3JtTWFwLAorICBnbEVudW1Ub1N0cmluZzogZ2xFbnVtVG9TdHJpbmcsCisg
IGdsRXJyb3JTaG91bGRCZTogZ2xFcnJvclNob3VsZEJlLAorICBoYXNBdHRyaWJ1dGVDYXNlSW5z
ZW5zaXRpdmU6IGhhc0F0dHJpYnV0ZUNhc2VJbnNlbnNpdGl2ZSwKKyAgaW5zZXJ0SW1hZ2U6IGlu
c2VydEltYWdlLAorICBsb2FkSW1hZ2VBc3luYzogbG9hZEltYWdlQXN5bmMsCisgIGxvYWRJbWFn
ZXNBc3luYzogbG9hZEltYWdlc0FzeW5jLAorICBsb2FkUHJvZ3JhbTogbG9hZFByb2dyYW0sCisg
IGxvYWRQcm9ncmFtRnJvbUZpbGU6IGxvYWRQcm9ncmFtRnJvbUZpbGUsCisgIGxvYWRQcm9ncmFt
RnJvbVNjcmlwdDogbG9hZFByb2dyYW1Gcm9tU2NyaXB0LAorICBsb2FkUHJvZ3JhbUZyb21TY3Jp
cHRFeHBlY3RFcnJvcjogbG9hZFByb2dyYW1Gcm9tU2NyaXB0RXhwZWN0RXJyb3IsCisgIGxvYWRT
aGFkZXI6IGxvYWRTaGFkZXIsCisgIGxvYWRTaGFkZXJGcm9tRmlsZTogbG9hZFNoYWRlckZyb21G
aWxlLAorICBsb2FkU2hhZGVyRnJvbVNjcmlwdDogbG9hZFNoYWRlckZyb21TY3JpcHQsCisgIGxv
YWRTdGFuZGFyZFByb2dyYW06IGxvYWRTdGFuZGFyZFByb2dyYW0sCisgIGxvYWRTdGFuZGFyZFZl
cnRleFNoYWRlcjogbG9hZFN0YW5kYXJkVmVydGV4U2hhZGVyLAorICBsb2FkU3RhbmRhcmRGcmFn
bWVudFNoYWRlcjogbG9hZFN0YW5kYXJkRnJhZ21lbnRTaGFkZXIsCisgIGxvYWRUZXh0RmlsZUFz
eW5jOiBsb2FkVGV4dEZpbGVBc3luYywKKyAgbG9hZFRleHR1cmU6IGxvYWRUZXh0dXJlLAorICBs
b2c6IGxvZywKKyAgbG9nZ2luZ09mZjogbG9nZ2luZ09mZiwKKyAgbWFrZUltYWdlOiBtYWtlSW1h
Z2UsCisgIGVycm9yOiBlcnJvciwKKyAgc2hhbGxvd0NvcHlPYmplY3Q6IHNoYWxsb3dDb3B5T2Jq
ZWN0LAorICBzZXR1cENvbG9yUXVhZDogc2V0dXBDb2xvclF1YWQsCisgIHNldHVwUHJvZ3JhbTog
c2V0dXBQcm9ncmFtLAorICBzZXR1cFF1YWQ6IHNldHVwUXVhZCwKKyAgc2V0dXBRdWFkV2l0aE9w
dGlvbnM6IHNldHVwUXVhZFdpdGhPcHRpb25zLAorICBzZXR1cFNpbXBsZUNvbG9yRnJhZ21lbnRT
aGFkZXI6IHNldHVwU2ltcGxlQ29sb3JGcmFnbWVudFNoYWRlciwKKyAgc2V0dXBTaW1wbGVDb2xv
clZlcnRleFNoYWRlcjogc2V0dXBTaW1wbGVDb2xvclZlcnRleFNoYWRlciwKKyAgc2V0dXBTaW1w
bGVDb2xvclByb2dyYW06IHNldHVwU2ltcGxlQ29sb3JQcm9ncmFtLAorICBzZXR1cFNpbXBsZVRl
eHR1cmVGcmFnbWVudFNoYWRlcjogc2V0dXBTaW1wbGVUZXh0dXJlRnJhZ21lbnRTaGFkZXIsCisg
IHNldHVwU2ltcGxlVGV4dHVyZVByb2dyYW06IHNldHVwU2ltcGxlVGV4dHVyZVByb2dyYW0sCisg
IHNldHVwU2ltcGxlVGV4dHVyZVZlcnRleFNoYWRlcjogc2V0dXBTaW1wbGVUZXh0dXJlVmVydGV4
U2hhZGVyLAorICBzZXR1cFNpbXBsZVZlcnRleENvbG9yRnJhZ21lbnRTaGFkZXI6IHNldHVwU2lt
cGxlVmVydGV4Q29sb3JGcmFnbWVudFNoYWRlciwKKyAgc2V0dXBTaW1wbGVWZXJ0ZXhDb2xvclBy
b2dyYW06IHNldHVwU2ltcGxlVmVydGV4Q29sb3JQcm9ncmFtLAorICBzZXR1cFNpbXBsZVZlcnRl
eENvbG9yVmVydGV4U2hhZGVyOiBzZXR1cFNpbXBsZVZlcnRleENvbG9yVmVydGV4U2hhZGVyLAor
ICBzZXR1cE5vVGV4Q29vcmRUZXh0dXJlUHJvZ3JhbTogc2V0dXBOb1RleENvb3JkVGV4dHVyZVBy
b2dyYW0sCisgIHNldHVwTm9UZXhDb29yZFRleHR1cmVWZXJ0ZXhTaGFkZXI6IHNldHVwTm9UZXhD
b29yZFRleHR1cmVWZXJ0ZXhTaGFkZXIsCisgIHNldHVwVGV4dHVyZWRRdWFkOiBzZXR1cFRleHR1
cmVkUXVhZCwKKyAgc2V0dXBUZXh0dXJlZFF1YWRXaXRoVGV4Q29vcmRzOiBzZXR1cFRleHR1cmVk
UXVhZFdpdGhUZXhDb29yZHMsCisgIHNldHVwVW5pdFF1YWQ6IHNldHVwVW5pdFF1YWQsCisgIHNl
dHVwVW5pdFF1YWRXaXRoVGV4Q29vcmRzOiBzZXR1cFVuaXRRdWFkV2l0aFRleENvb3JkcywKKyAg
c2V0RmxvYXREcmF3Q29sb3I6IHNldEZsb2F0RHJhd0NvbG9yLAorICBzZXRVQnl0ZURyYXdDb2xv
cjogc2V0VUJ5dGVEcmF3Q29sb3IsCisgIHN0YXJ0c1dpdGg6IHN0YXJ0c1dpdGgsCisgIHNob3Vs
ZEdlbmVyYXRlR0xFcnJvcjogc2hvdWxkR2VuZXJhdGVHTEVycm9yLAorICByZWFkRmlsZTogcmVh
ZEZpbGUsCisgIHJlYWRGaWxlTGlzdDogcmVhZEZpbGVMaXN0LAorICByZXBsYWNlUGFyYW1zOiBy
ZXBsYWNlUGFyYW1zLAorICByZXF1ZXN0QW5pbUZyYW1lOiByZXF1ZXN0QW5pbUZyYW1lLAorICB3
YWl0Rm9yQ29tcG9zaXRlOiB3YWl0Rm9yQ29tcG9zaXRlLAorCisgIG5vbmU6IGZhbHNlCit9Owor
Cit9KCkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMgYi9MYXlvdXRUZXN0
cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMv
d2ViZ2wtdGVzdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MTYyNDRlMzk1ZjI3N2VjYjBmNzUyNzU3YzM4MGMx
MTI4MjYyOTVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMKQEAg
LTAsMCArMSwxMDYgQEAKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3Jv
dXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hh
cmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUg
YW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxz
IiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRp
bmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5
LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxs
IGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdo
b20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp
Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFs
bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisq
KiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9G
IEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1J
VEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFO
WQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD
VElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9V
VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBP
UiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworZnVuY3Rpb24gd2ViZ2xU
ZXN0TG9nKG1zZykgeworICBpZiAod2luZG93LmNvbnNvbGUgJiYgd2luZG93LmNvbnNvbGUubG9n
KSB7CisgICAgd2luZG93LmNvbnNvbGUubG9nKG1zZyk7CisgIH0KKyAgaWYgKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJjb25zb2xlIikpIHsKKyAgICB2YXIgbG9nID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnNvbGUiKTsKKyAgICBsb2cuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsK
KyAgfQorfQorCitmdW5jdGlvbiBnZXRHTEVycm9yQXNTdHJpbmcoY3R4LCBlcnIpIHsKKyAgaWYg
KGVyciA9PT0gY3R4Lk5PX0VSUk9SKSB7CisgICAgcmV0dXJuICJOT19FUlJPUiI7CisgIH0KKyAg
Zm9yICh2YXIgbmFtZSBpbiBjdHgpIHsKKyAgICBpZiAoY3R4W25hbWVdID09PSBlcnIpIHsKKyAg
ICAgIHJldHVybiBuYW1lOworICAgIH0KKyAgfQorICByZXR1cm4gIjB4IiArIGVyci50b1N0cmlu
ZygxNik7Cit9CisKKy8vIFBhc3MgdW5kZWZpbmVkIGZvciBnbEVycm9yIHRvIHRlc3QgdGhhdCBp
dCBhdCBsZWFzdCB0aHJvd3Mgc29tZSBlcnJvcgorZnVuY3Rpb24gc2hvdWxkR2VuZXJhdGVHTEVy
cm9yKGN0eCwgZ2xFcnJvcnMsIGV2YWxTdHIpIHsKKyAgaWYgKCFnbEVycm9ycy5sZW5ndGgpIHsK
KyAgICBnbEVycm9ycyA9IFtnbEVycm9yc107CisgIH0KKyAgdmFyIGV4Y2VwdGlvbjsKKyAgdHJ5
IHsKKyAgICBldmFsKGV2YWxTdHIpOworICB9IGNhdGNoIChlKSB7CisgICAgZXhjZXB0aW9uID0g
ZTsKKyAgfQorICBpZiAoZXhjZXB0aW9uKSB7CisgICAgdGVzdEZhaWxlZChldmFsU3RyICsgIiB0
aHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgIH0gZWxzZSB7CisgICAgdmFyIGVyciA9
IGN0eC5nZXRFcnJvcigpOworICAgIHZhciBlcnJTdHJzID0gW107CisgICAgZm9yICh2YXIgaWkg
PSAwOyBpaSA8IGdsRXJyb3JzLmxlbmd0aDsgKytpaSkgeworICAgICAgZXJyU3Rycy5wdXNoKGdl
dEdMRXJyb3JBc1N0cmluZyhjdHgsIGdsRXJyb3JzW2lpXSkpOworICAgIH0KKyAgICB2YXIgZXhw
ZWN0ZWQgPSBlcnJTdHJzLmpvaW4oIiBvciAiKTsKKyAgICBpZiAoZ2xFcnJvcnMuaW5kZXhPZihl
cnIpIDwgMCkgeworICAgICAgdGVzdEZhaWxlZChldmFsU3RyICsgIiBleHBlY3RlZDogIiArIGV4
cGVjdGVkICsgIi4gV2FzICIgKyBnZXRHTEVycm9yQXNTdHJpbmcoY3R4LCBlcnIpICsgIi4iKTsK
KyAgICB9IGVsc2UgeworICAgICAgdmFyIG1zZyA9IChnbEVycm9ycy5sZW5ndGggPT0gMSkgPyAi
IGdlbmVyYXRlZCBleHBlY3RlZCBHTCBlcnJvcjogIiA6CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICIgZ2VuZXJhdGVkIG9uZSBvZiBleHBlY3RlZCBHTCBlcnJvcnM6
ICI7CisgICAgICB0ZXN0UGFzc2VkKGV2YWxTdHIgKyBtc2cgKyBleHBlY3RlZCArICIuIik7Cisg
ICAgfQorICB9Cit9CisKKy8qKgorICogVGVzdHMgdGhhdCB0aGUgZmlyc3QgZXJyb3IgR0wgcmV0
dXJucyBpcyB0aGUgc3BlY2lmaWVkIGVycm9yLgorICogQHBhcmFtIHshV2ViR0xDb250ZXh0fSBn
bCBUaGUgV2ViR0xDb250ZXh0IHRvIHVzZS4KKyAqIEBwYXJhbSB7bnVtYmVyfCFBcnJheS48bnVt
YmVyPn0gZ2xFcnJvciBUaGUgZXhwZWN0ZWQgZ2wKKyAqICAgICAgICBlcnJvci4gTXVsdGlwbGUg
ZXJyb3JzIGNhbiBiZSBwYXNzZWQgaW4gdXNpbmcgYW4KKyAqICAgICAgICBhcnJheS4KKyAqIEBw
YXJhbSB7c3RyaW5nfSBvcHRfbXNnIE9wdGlvbmFsIGFkZGl0aW9uYWwgbWVzc2FnZS4KKyAqLwor
ZnVuY3Rpb24gZ2xFcnJvclNob3VsZEJlKGdsLCBnbEVycm9ycywgb3B0X21zZykgeworICBpZiAo
IWdsRXJyb3JzLmxlbmd0aCkgeworICAgIGdsRXJyb3JzID0gW2dsRXJyb3JzXTsKKyAgfQorICBv
cHRfbXNnID0gb3B0X21zZyB8fCAiIjsKKyAgdmFyIGVyciA9IGdsLmdldEVycm9yKCk7CisgIHZh
ciBuZHggPSBnbEVycm9ycy5pbmRleE9mKGVycik7CisgIHZhciBlcnJTdHJzID0gW107CisgIGZv
ciAodmFyIGlpID0gMDsgaWkgPCBnbEVycm9ycy5sZW5ndGg7ICsraWkpIHsKKyAgICBlcnJTdHJz
LnB1c2goZ2V0R0xFcnJvckFzU3RyaW5nKGdsLCBnbEVycm9yc1tpaV0pKTsKKyAgfQorICB2YXIg
ZXhwZWN0ZWQgPSBlcnJTdHJzLmpvaW4oIiBvciAiKTsKKyAgaWYgKG5keCA8IDApIHsKKyAgICB2
YXIgbXNnID0gImdldEVycm9yIGV4cGVjdGVkIiArICgoZ2xFcnJvcnMubGVuZ3RoID4gMSkgPyAi
IG9uZSBvZjogIiA6ICI6ICIpOworICAgIHRlc3RGYWlsZWQobXNnICsgZXhwZWN0ZWQgKyAgIi4g
V2FzICIgKyBnZXRHTEVycm9yQXNTdHJpbmcoZ2wsIGVycikgKyAiIDogIiArIG9wdF9tc2cpOwor
ICB9IGVsc2UgeworICAgIHZhciBtc2cgPSAiZ2V0RXJyb3Igd2FzICIgKyAoKGdsRXJyb3JzLmxl
bmd0aCA+IDEpID8gIm9uZSBvZjogIiA6ICJleHBlY3RlZCB2YWx1ZTogIik7CisgICAgdGVzdFBh
c3NlZChtc2cgKyBleHBlY3RlZCArICIgOiAiICsgb3B0X21zZyk7CisgIH0KK307CisKKworCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS9yZXNvdXJjZXMvemVyby1hbHBoYS5wbmcgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9yZXNvdXJjZXMvemVyby1hbHBo
YS5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTU1NjMwYzExNjAzOGY5MGVmNzJjZGQwMmI2NjRmOGYwZGFhMDZl
MwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgODkKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF4l
cGxDYzF8LThZdyhiV34zWjU+R0FyKjV9UGoyTDhGeUxTfHhQMUVJCm1yOy15SGx9dzJyXjBvXn05
Yzc+RXopPiQpYUIzRyZFclh9NHBVWE9AZ2VDeG0mbHN1egoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAx
CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvcmVzb3VyY2VzL2Rlc2t0b3AtZ2wtY29uc3RhbnRzLmpzIGIvTGF5b3V0VGVzdHMvd2ViZ2wv
cmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL2Rlc2t0b3AtZ2wtY29uc3RhbnRz
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZiZWEwYWNiNGU0ZmE4OGZhMTY4MzRkMjRjNDBiMDljMjdlNDc0YzYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9yZXNvdXJjZXMvZGVza3RvcC1nbC1jb25zdGFudHMuanMKQEAgLTAsMCArMSwyNjQ1
IEBACisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoq
CisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55
IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3Nv
Y2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFs
IGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRo
b3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1
Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2Yg
dGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRl
cmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz
IHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9y
IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVS
SUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwK
KyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg
V0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlN
LCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O
VFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4g
Q09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVB
TElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy8vIERlZmluZXMgYSBidW5jaCBvZiBEZXNr
dG9wR0wgY29uc3RhbnRzIHNvIHdlIGNhbiBtYWtlIHN1cmUgV2ViR0wKKy8vIGltcGxlbWVudGF0
aW9ucyBkaXNhbGxvdyB0aGVtLgorCit2YXIgZGVza3RvcEdMID0geworICAnTUlOJzogMHg4MDA3
LAorICAnTUFYJzogMHg4MDA4LAorICAnUVVBRFMnOiAweDAwMDcsCisgICdRVUFEX1NUUklQJzog
MHgwMDA4LAorICAnUE9MWUdPTic6IDB4MDAwOSwKKyAgJzEnOiAweDAwMDEsCisgICcyJzogMHgw
MDAyLAorICAnMyc6IDB4MDAwMywKKyAgJzQnOiAweDAwMDQsCisgICdTVEFUSUNfUkVBRCc6IDB4
ODhFNSwKKyAgJ0NMSVBfUExBTkUwJzogMHgzMDAwLAorICAnUEVSU1BFQ1RJVkVfQ09SUkVDVElP
Tl9ISU5UJzogMHgwQzUwLAorICAnQUNDVU1fQlVGRkVSX0JJVCc6IDB4MDIwMCwKKyAgJ1JHQjQn
OiAweDgwNEYsCisgICdSR0I1JzogMHg4MDUwLAorICAnUkdCOCc6IDB4ODA1MSwKKyAgJ1JHQjEw
JzogMHg4MDUyLAorICAnUkdCMTInOiAweDgwNTMsCisgICdSR0IxNic6IDB4ODA1NCwKKyAgJ1JH
QkEyJzogMHg4MDU1LAorICAnUkdCQTQnOiAweDgwNTYsCisgICdSR0I1X0ExJzogMHg4MDU3LAor
ICAnUkdCQTgnOiAweDgwNTgsCisgICdSR0IxMF9BMic6IDB4ODA1OSwKKyAgJ1JHQkExMic6IDB4
ODA1QSwKKyAgJ1JHQkExNic6IDB4ODA1QiwKKyAgJ1NNT09USF9QT0lOVF9TSVpFX1JBTkdFJzog
MHgwQjEyLAorICAnU01PT1RIX1BPSU5UX1NJWkVfR1JBTlVMQVJJVFknOiAweDBCMTMsCisgICdT
TU9PVEhfTElORV9XSURUSF9SQU5HRSc6IDB4MEIyMiwKKyAgJ1NNT09USF9MSU5FX1dJRFRIX0dS
QU5VTEFSSVRZJzogMHgwQjIzLAorICAnVU5TSUdORURfQllURV8zXzNfMic6IDB4ODAzMiwKKyAg
J1VOU0lHTkVEX1NIT1JUXzRfNF80XzQnOiAweDgwMzMsCisgICdVTlNJR05FRF9TSE9SVF81XzVf
NV8xJzogMHg4MDM0LAorICAnVU5TSUdORURfSU5UXzhfOF84XzgnOiAweDgwMzUsCisgICdVTlNJ
R05FRF9JTlRfMTBfMTBfMTBfMic6IDB4ODAzNiwKKyAgJ1JFU0NBTEVfTk9STUFMJzogMHg4MDNB
LAorICAnVEVYVFVSRV9CSU5ESU5HXzNEJzogMHg4MDZBLAorICAnUEFDS19TS0lQX0lNQUdFUyc6
IDB4ODA2QiwKKyAgJ1BBQ0tfSU1BR0VfSEVJR0hUJzogMHg4MDZDLAorICAnVU5QQUNLX1NLSVBf
SU1BR0VTJzogMHg4MDZELAorICAnVU5QQUNLX0lNQUdFX0hFSUdIVCc6IDB4ODA2RSwKKyAgJ1RF
WFRVUkVfM0QnOiAweDgwNkYsCisgICdQUk9YWV9URVhUVVJFXzNEJzogMHg4MDcwLAorICAnVEVY
VFVSRV9ERVBUSCc6IDB4ODA3MSwKKyAgJ1RFWFRVUkVfV1JBUF9SJzogMHg4MDcyLAorICAnTUFY
XzNEX1RFWFRVUkVfU0laRSc6IDB4ODA3MywKKyAgJ0JHUic6IDB4ODBFMCwKKyAgJ0JHUkEnOiAw
eDgwRTEsCisgICdNQVhfRUxFTUVOVFNfVkVSVElDRVMnOiAweDgwRTgsCisgICdNQVhfRUxFTUVO
VFNfSU5ESUNFUyc6IDB4ODBFOSwKKyAgJ0NMQU1QX1RPX0VER0UnOiAweDgxMkYsCisgICdURVhU
VVJFX01JTl9MT0QnOiAweDgxM0EsCisgICdURVhUVVJFX01BWF9MT0QnOiAweDgxM0IsCisgICdU
RVhUVVJFX0JBU0VfTEVWRUwnOiAweDgxM0MsCisgICdURVhUVVJFX01BWF9MRVZFTCc6IDB4ODEz
RCwKKyAgJ0xJR0hUX01PREVMX0NPTE9SX0NPTlRST0wnOiAweDgxRjgsCisgICdTSU5HTEVfQ09M
T1InOiAweDgxRjksCisgICdTRVBBUkFURV9TUEVDVUxBUl9DT0xPUic6IDB4ODFGQSwKKyAgJ1VO
U0lHTkVEX0JZVEVfMl8zXzNfUkVWJzogMHg4MzYyLAorICAnVU5TSUdORURfU0hPUlRfNV82XzUn
OiAweDgzNjMsCisgICdVTlNJR05FRF9TSE9SVF81XzZfNV9SRVYnOiAweDgzNjQsCisgICdVTlNJ
R05FRF9TSE9SVF80XzRfNF80X1JFVic6IDB4ODM2NSwKKyAgJ1VOU0lHTkVEX1NIT1JUXzFfNV81
XzVfUkVWJzogMHg4MzY2LAorICAnVU5TSUdORURfSU5UXzhfOF84XzhfUkVWJzogMHg4MzY3LAor
ICAnVU5TSUdORURfSU5UXzJfMTBfMTBfMTBfUkVWJzogMHg4MzY4LAorICAnQUxJQVNFRF9QT0lO
VF9TSVpFX1JBTkdFJzogMHg4NDZELAorICAnQUxJQVNFRF9MSU5FX1dJRFRIX1JBTkdFJzogMHg4
NDZFLAorICAnTVVMVElTQU1QTEUnOiAweDgwOUQsCisgICdTQU1QTEVfQUxQSEFfVE9fQ09WRVJB
R0UnOiAweDgwOUUsCisgICdTQU1QTEVfQUxQSEFfVE9fT05FJzogMHg4MDlGLAorICAnU0FNUExF
X0NPVkVSQUdFJzogMHg4MEEwLAorICAnU0FNUExFX0JVRkZFUlMnOiAweDgwQTgsCisgICdTQU1Q
TEVTJzogMHg4MEE5LAorICAnU0FNUExFX0NPVkVSQUdFX1ZBTFVFJzogMHg4MEFBLAorICAnU0FN
UExFX0NPVkVSQUdFX0lOVkVSVCc6IDB4ODBBQiwKKyAgJ0NMQU1QX1RPX0JPUkRFUic6IDB4ODEy
RCwKKyAgJ1RFWFRVUkUwJzogMHg4NEMwLAorICAnVEVYVFVSRTEnOiAweDg0QzEsCisgICdURVhU
VVJFMic6IDB4ODRDMiwKKyAgJ1RFWFRVUkUzJzogMHg4NEMzLAorICAnVEVYVFVSRTQnOiAweDg0
QzQsCisgICdURVhUVVJFNSc6IDB4ODRDNSwKKyAgJ1RFWFRVUkU2JzogMHg4NEM2LAorICAnVEVY
VFVSRTcnOiAweDg0QzcsCisgICdURVhUVVJFOCc6IDB4ODRDOCwKKyAgJ1RFWFRVUkU5JzogMHg4
NEM5LAorICAnVEVYVFVSRTEwJzogMHg4NENBLAorICAnVEVYVFVSRTExJzogMHg4NENCLAorICAn
VEVYVFVSRTEyJzogMHg4NENDLAorICAnVEVYVFVSRTEzJzogMHg4NENELAorICAnVEVYVFVSRTE0
JzogMHg4NENFLAorICAnVEVYVFVSRTE1JzogMHg4NENGLAorICAnVEVYVFVSRTE2JzogMHg4NEQw
LAorICAnVEVYVFVSRTE3JzogMHg4NEQxLAorICAnVEVYVFVSRTE4JzogMHg4NEQyLAorICAnVEVY
VFVSRTE5JzogMHg4NEQzLAorICAnVEVYVFVSRTIwJzogMHg4NEQ0LAorICAnVEVYVFVSRTIxJzog
MHg4NEQ1LAorICAnVEVYVFVSRTIyJzogMHg4NEQ2LAorICAnVEVYVFVSRTIzJzogMHg4NEQ3LAor
ICAnVEVYVFVSRTI0JzogMHg4NEQ4LAorICAnVEVYVFVSRTI1JzogMHg4NEQ5LAorICAnVEVYVFVS
RTI2JzogMHg4NERBLAorICAnVEVYVFVSRTI3JzogMHg4NERCLAorICAnVEVYVFVSRTI4JzogMHg4
NERDLAorICAnVEVYVFVSRTI5JzogMHg4NERELAorICAnVEVYVFVSRTMwJzogMHg4NERFLAorICAn
VEVYVFVSRTMxJzogMHg4NERGLAorICAnQUNUSVZFX1RFWFRVUkUnOiAweDg0RTAsCisgICdDTElF
TlRfQUNUSVZFX1RFWFRVUkUnOiAweDg0RTEsCisgICdNQVhfVEVYVFVSRV9VTklUUyc6IDB4ODRF
MiwKKyAgJ1RSQU5TUE9TRV9NT0RFTFZJRVdfTUFUUklYJzogMHg4NEUzLAorICAnVFJBTlNQT1NF
X1BST0pFQ1RJT05fTUFUUklYJzogMHg4NEU0LAorICAnVFJBTlNQT1NFX1RFWFRVUkVfTUFUUklY
JzogMHg4NEU1LAorICAnVFJBTlNQT1NFX0NPTE9SX01BVFJJWCc6IDB4ODRFNiwKKyAgJ1NVQlRS
QUNUJzogMHg4NEU3LAorICAnQ09NUFJFU1NFRF9BTFBIQSc6IDB4ODRFOSwKKyAgJ0NPTVBSRVNT
RURfTFVNSU5BTkNFJzogMHg4NEVBLAorICAnQ09NUFJFU1NFRF9MVU1JTkFOQ0VfQUxQSEEnOiAw
eDg0RUIsCisgICdDT01QUkVTU0VEX0lOVEVOU0lUWSc6IDB4ODRFQywKKyAgJ0NPTVBSRVNTRURf
UkdCJzogMHg4NEVELAorICAnQ09NUFJFU1NFRF9SR0JBJzogMHg4NEVFLAorICAnVEVYVFVSRV9D
T01QUkVTU0lPTl9ISU5UJzogMHg4NEVGLAorICAnTk9STUFMX01BUCc6IDB4ODUxMSwKKyAgJ1JF
RkxFQ1RJT05fTUFQJzogMHg4NTEyLAorICAnVEVYVFVSRV9DVUJFX01BUCc6IDB4ODUxMywKKyAg
J1RFWFRVUkVfQklORElOR19DVUJFX01BUCc6IDB4ODUxNCwKKyAgJ1RFWFRVUkVfQ1VCRV9NQVBf
UE9TSVRJVkVfWCc6IDB4ODUxNSwKKyAgJ1RFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWCc6IDB4
ODUxNiwKKyAgJ1RFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWSc6IDB4ODUxNywKKyAgJ1RFWFRV
UkVfQ1VCRV9NQVBfTkVHQVRJVkVfWSc6IDB4ODUxOCwKKyAgJ1RFWFRVUkVfQ1VCRV9NQVBfUE9T
SVRJVkVfWic6IDB4ODUxOSwKKyAgJ1RFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWic6IDB4ODUx
QSwKKyAgJ1BST1hZX1RFWFRVUkVfQ1VCRV9NQVAnOiAweDg1MUIsCisgICdNQVhfQ1VCRV9NQVBf
VEVYVFVSRV9TSVpFJzogMHg4NTFDLAorICAnQ09NQklORSc6IDB4ODU3MCwKKyAgJ0NPTUJJTkVf
UkdCJzogMHg4NTcxLAorICAnQ09NQklORV9BTFBIQSc6IDB4ODU3MiwKKyAgJ1JHQl9TQ0FMRSc6
IDB4ODU3MywKKyAgJ0FERF9TSUdORUQnOiAweDg1NzQsCisgICdJTlRFUlBPTEFURSc6IDB4ODU3
NSwKKyAgJ0NPTlNUQU5UJzogMHg4NTc2LAorICAnUFJJTUFSWV9DT0xPUic6IDB4ODU3NywKKyAg
J1BSRVZJT1VTJzogMHg4NTc4LAorICAnU09VUkNFMF9SR0InOiAweDg1ODAsCisgICdTT1VSQ0Ux
X1JHQic6IDB4ODU4MSwKKyAgJ1NPVVJDRTJfUkdCJzogMHg4NTgyLAorICAnU09VUkNFMF9BTFBI
QSc6IDB4ODU4OCwKKyAgJ1NPVVJDRTFfQUxQSEEnOiAweDg1ODksCisgICdTT1VSQ0UyX0FMUEhB
JzogMHg4NThBLAorICAnT1BFUkFORDBfUkdCJzogMHg4NTkwLAorICAnT1BFUkFORDFfUkdCJzog
MHg4NTkxLAorICAnT1BFUkFORDJfUkdCJzogMHg4NTkyLAorICAnT1BFUkFORDBfQUxQSEEnOiAw
eDg1OTgsCisgICdPUEVSQU5EMV9BTFBIQSc6IDB4ODU5OSwKKyAgJ09QRVJBTkQyX0FMUEhBJzog
MHg4NTlBLAorICAnVEVYVFVSRV9DT01QUkVTU0VEX0lNQUdFX1NJWkUnOiAweDg2QTAsCisgICdU
RVhUVVJFX0NPTVBSRVNTRUQnOiAweDg2QTEsCisgICdOVU1fQ09NUFJFU1NFRF9URVhUVVJFX0ZP
Uk1BVFMnOiAweDg2QTIsCisgICdDT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUyc6IDB4ODZBMywK
KyAgJ0RPVDNfUkdCJzogMHg4NkFFLAorICAnRE9UM19SR0JBJzogMHg4NkFGLAorICAnTVVMVElT
QU1QTEVfQklUJzogMHgyMDAwMDAwMCwKKyAgJ0JMRU5EX0RTVF9SR0InOiAweDgwQzgsCisgICdC
TEVORF9TUkNfUkdCJzogMHg4MEM5LAorICAnQkxFTkRfRFNUX0FMUEhBJzogMHg4MENBLAorICAn
QkxFTkRfU1JDX0FMUEhBJzogMHg4MENCLAorICAnUE9JTlRfU0laRV9NSU4nOiAweDgxMjYsCisg
ICdQT0lOVF9TSVpFX01BWCc6IDB4ODEyNywKKyAgJ1BPSU5UX0ZBREVfVEhSRVNIT0xEX1NJWkUn
OiAweDgxMjgsCisgICdQT0lOVF9ESVNUQU5DRV9BVFRFTlVBVElPTic6IDB4ODEyOSwKKyAgJ0dF
TkVSQVRFX01JUE1BUCc6IDB4ODE5MSwKKyAgJ0dFTkVSQVRFX01JUE1BUF9ISU5UJzogMHg4MTky
LAorICAnREVQVEhfQ09NUE9ORU5UMTYnOiAweDgxQTUsCisgICdERVBUSF9DT01QT05FTlQyNCc6
IDB4ODFBNiwKKyAgJ0RFUFRIX0NPTVBPTkVOVDMyJzogMHg4MUE3LAorICAnTUlSUk9SRURfUkVQ
RUFUJzogMHg4MzcwLAorICAnRk9HX0NPT1JESU5BVEVfU09VUkNFJzogMHg4NDUwLAorICAnRk9H
X0NPT1JESU5BVEUnOiAweDg0NTEsCisgICdGUkFHTUVOVF9ERVBUSCc6IDB4ODQ1MiwKKyAgJ0NV
UlJFTlRfRk9HX0NPT1JESU5BVEUnOiAweDg0NTMsCisgICdGT0dfQ09PUkRJTkFURV9BUlJBWV9U
WVBFJzogMHg4NDU0LAorICAnRk9HX0NPT1JESU5BVEVfQVJSQVlfU1RSSURFJzogMHg4NDU1LAor
ICAnRk9HX0NPT1JESU5BVEVfQVJSQVlfUE9JTlRFUic6IDB4ODQ1NiwKKyAgJ0ZPR19DT09SRElO
QVRFX0FSUkFZJzogMHg4NDU3LAorICAnQ09MT1JfU1VNJzogMHg4NDU4LAorICAnQ1VSUkVOVF9T
RUNPTkRBUllfQ09MT1InOiAweDg0NTksCisgICdTRUNPTkRBUllfQ09MT1JfQVJSQVlfU0laRSc6
IDB4ODQ1QSwKKyAgJ1NFQ09OREFSWV9DT0xPUl9BUlJBWV9UWVBFJzogMHg4NDVCLAorICAnU0VD
T05EQVJZX0NPTE9SX0FSUkFZX1NUUklERSc6IDB4ODQ1QywKKyAgJ1NFQ09OREFSWV9DT0xPUl9B
UlJBWV9QT0lOVEVSJzogMHg4NDVELAorICAnU0VDT05EQVJZX0NPTE9SX0FSUkFZJzogMHg4NDVF
LAorICAnTUFYX1RFWFRVUkVfTE9EX0JJQVMnOiAweDg0RkQsCisgICdURVhUVVJFX0ZJTFRFUl9D
T05UUk9MJzogMHg4NTAwLAorICAnVEVYVFVSRV9MT0RfQklBUyc6IDB4ODUwMSwKKyAgJ0lOQ1Jf
V1JBUCc6IDB4ODUwNywKKyAgJ0RFQ1JfV1JBUCc6IDB4ODUwOCwKKyAgJ1RFWFRVUkVfREVQVEhf
U0laRSc6IDB4ODg0QSwKKyAgJ0RFUFRIX1RFWFRVUkVfTU9ERSc6IDB4ODg0QiwKKyAgJ1RFWFRV
UkVfQ09NUEFSRV9NT0RFJzogMHg4ODRDLAorICAnVEVYVFVSRV9DT01QQVJFX0ZVTkMnOiAweDg4
NEQsCisgICdDT01QQVJFX1JfVE9fVEVYVFVSRSc6IDB4ODg0RSwKKyAgJ0JVRkZFUl9TSVpFJzog
MHg4NzY0LAorICAnQlVGRkVSX1VTQUdFJzogMHg4NzY1LAorICAnUVVFUllfQ09VTlRFUl9CSVRT
JzogMHg4ODY0LAorICAnQ1VSUkVOVF9RVUVSWSc6IDB4ODg2NSwKKyAgJ1FVRVJZX1JFU1VMVCc6
IDB4ODg2NiwKKyAgJ1FVRVJZX1JFU1VMVF9BVkFJTEFCTEUnOiAweDg4NjcsCisgICdBUlJBWV9C
VUZGRVInOiAweDg4OTIsCisgICdFTEVNRU5UX0FSUkFZX0JVRkZFUic6IDB4ODg5MywKKyAgJ0FS
UkFZX0JVRkZFUl9CSU5ESU5HJzogMHg4ODk0LAorICAnRUxFTUVOVF9BUlJBWV9CVUZGRVJfQklO
RElORyc6IDB4ODg5NSwKKyAgJ1ZFUlRFWF9BUlJBWV9CVUZGRVJfQklORElORyc6IDB4ODg5NiwK
KyAgJ05PUk1BTF9BUlJBWV9CVUZGRVJfQklORElORyc6IDB4ODg5NywKKyAgJ0NPTE9SX0FSUkFZ
X0JVRkZFUl9CSU5ESU5HJzogMHg4ODk4LAorICAnSU5ERVhfQVJSQVlfQlVGRkVSX0JJTkRJTkcn
OiAweDg4OTksCisgICdURVhUVVJFX0NPT1JEX0FSUkFZX0JVRkZFUl9CSU5ESU5HJzogMHg4ODlB
LAorICAnRURHRV9GTEFHX0FSUkFZX0JVRkZFUl9CSU5ESU5HJzogMHg4ODlCLAorICAnU0VDT05E
QVJZX0NPTE9SX0FSUkFZX0JVRkZFUl9CSU5ESU5HJzogMHg4ODlDLAorICAnRk9HX0NPT1JESU5B
VEVfQVJSQVlfQlVGRkVSX0JJTkRJTkcnOiAweDg4OUQsCisgICdXRUlHSFRfQVJSQVlfQlVGRkVS
X0JJTkRJTkcnOiAweDg4OUUsCisgICdWRVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5ESU5H
JzogMHg4ODlGLAorICAnUkVBRF9PTkxZJzogMHg4OEI4LAorICAnV1JJVEVfT05MWSc6IDB4ODhC
OSwKKyAgJ1JFQURfV1JJVEUnOiAweDg4QkEsCisgICdCVUZGRVJfQUNDRVNTJzogMHg4OEJCLAor
ICAnQlVGRkVSX01BUFBFRCc6IDB4ODhCQywKKyAgJ0JVRkZFUl9NQVBfUE9JTlRFUic6IDB4ODhC
RCwKKyAgJ1NUUkVBTV9EUkFXJzogMHg4OEUwLAorICAnU1RSRUFNX1JFQUQnOiAweDg4RTEsCisg
ICdTVFJFQU1fQ09QWSc6IDB4ODhFMiwKKyAgJ1NUQVRJQ19EUkFXJzogMHg4OEU0LAorICAnU1RB
VElDX1JFQUQnOiAweDg4RTUsCisgICdTVEFUSUNfQ09QWSc6IDB4ODhFNiwKKyAgJ0RZTkFNSUNf
RFJBVyc6IDB4ODhFOCwKKyAgJ0RZTkFNSUNfUkVBRCc6IDB4ODhFOSwKKyAgJ0RZTkFNSUNfQ09Q
WSc6IDB4ODhFQSwKKyAgJ1NBTVBMRVNfUEFTU0VEJzogMHg4OTE0LAorICAnVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9FTkFCTEVEJzogMHg4NjIyLAorICAnVkVSVEVYX0FUVFJJQl9BUlJBWV9TSVpFJzog
MHg4NjIzLAorICAnVkVSVEVYX0FUVFJJQl9BUlJBWV9TVFJJREUnOiAweDg2MjQsCisgICdWRVJU
RVhfQVRUUklCX0FSUkFZX1RZUEUnOiAweDg2MjUsCisgICdDVVJSRU5UX1ZFUlRFWF9BVFRSSUIn
OiAweDg2MjYsCisgICdWRVJURVhfUFJPR1JBTV9QT0lOVF9TSVpFJzogMHg4NjQyLAorICAnVkVS
VEVYX1BST0dSQU1fVFdPX1NJREUnOiAweDg2NDMsCisgICdWRVJURVhfQVRUUklCX0FSUkFZX1BP
SU5URVInOiAweDg2NDUsCisgICdTVEVOQ0lMX0JBQ0tfRlVOQyc6IDB4ODgwMCwKKyAgJ1NURU5D
SUxfQkFDS19GQUlMJzogMHg4ODAxLAorICAnU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfRkFJTCc6
IDB4ODgwMiwKKyAgJ1NURU5DSUxfQkFDS19QQVNTX0RFUFRIX1BBU1MnOiAweDg4MDMsCisgICdN
QVhfRFJBV19CVUZGRVJTJzogMHg4ODI0LAorICAnRFJBV19CVUZGRVIwJzogMHg4ODI1LAorICAn
RFJBV19CVUZGRVIxJzogMHg4ODI2LAorICAnRFJBV19CVUZGRVIyJzogMHg4ODI3LAorICAnRFJB
V19CVUZGRVIzJzogMHg4ODI4LAorICAnRFJBV19CVUZGRVI0JzogMHg4ODI5LAorICAnRFJBV19C
VUZGRVI1JzogMHg4ODJBLAorICAnRFJBV19CVUZGRVI2JzogMHg4ODJCLAorICAnRFJBV19CVUZG
RVI3JzogMHg4ODJDLAorICAnRFJBV19CVUZGRVI4JzogMHg4ODJELAorICAnRFJBV19CVUZGRVI5
JzogMHg4ODJFLAorICAnRFJBV19CVUZGRVIxMCc6IDB4ODgyRiwKKyAgJ0RSQVdfQlVGRkVSMTEn
OiAweDg4MzAsCisgICdEUkFXX0JVRkZFUjEyJzogMHg4ODMxLAorICAnRFJBV19CVUZGRVIxMyc6
IDB4ODgzMiwKKyAgJ0RSQVdfQlVGRkVSMTQnOiAweDg4MzMsCisgICdEUkFXX0JVRkZFUjE1Jzog
MHg4ODM0LAorICAnQkxFTkRfRVFVQVRJT05fQUxQSEEnOiAweDg4M0QsCisgICdQT0lOVF9TUFJJ
VEUnOiAweDg4NjEsCisgICdDT09SRF9SRVBMQUNFJzogMHg4ODYyLAorICAnTUFYX1ZFUlRFWF9B
VFRSSUJTJzogMHg4ODY5LAorICAnVkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEJzogMHg4
ODZBLAorICAnTUFYX1RFWFRVUkVfQ09PUkRTJzogMHg4ODcxLAorICAnTUFYX1RFWFRVUkVfSU1B
R0VfVU5JVFMnOiAweDg4NzIsCisgICdGUkFHTUVOVF9TSEFERVInOiAweDhCMzAsCisgICdWRVJU
RVhfU0hBREVSJzogMHg4QjMxLAorICAnTUFYX0ZSQUdNRU5UX1VOSUZPUk1fQ09NUE9ORU5UUyc6
IDB4OEI0OSwKKyAgJ01BWF9WRVJURVhfVU5JRk9STV9DT01QT05FTlRTJzogMHg4QjRBLAorICAn
TUFYX1ZBUllJTkdfRkxPQVRTJzogMHg4QjRCLAorICAnTUFYX1ZFUlRFWF9URVhUVVJFX0lNQUdF
X1VOSVRTJzogMHg4QjRDLAorICAnTUFYX0NPTUJJTkVEX1RFWFRVUkVfSU1BR0VfVU5JVFMnOiAw
eDhCNEQsCisgICdTSEFERVJfVFlQRSc6IDB4OEI0RiwKKyAgJ0ZMT0FUX1ZFQzInOiAweDhCNTAs
CisgICdGTE9BVF9WRUMzJzogMHg4QjUxLAorICAnRkxPQVRfVkVDNCc6IDB4OEI1MiwKKyAgJ0lO
VF9WRUMyJzogMHg4QjUzLAorICAnSU5UX1ZFQzMnOiAweDhCNTQsCisgICdJTlRfVkVDNCc6IDB4
OEI1NSwKKyAgJ0JPT0wnOiAweDhCNTYsCisgICdCT09MX1ZFQzInOiAweDhCNTcsCisgICdCT09M
X1ZFQzMnOiAweDhCNTgsCisgICdCT09MX1ZFQzQnOiAweDhCNTksCisgICdGTE9BVF9NQVQyJzog
MHg4QjVBLAorICAnRkxPQVRfTUFUMyc6IDB4OEI1QiwKKyAgJ0ZMT0FUX01BVDQnOiAweDhCNUMs
CisgICdTQU1QTEVSXzFEJzogMHg4QjVELAorICAnU0FNUExFUl8yRCc6IDB4OEI1RSwKKyAgJ1NB
TVBMRVJfM0QnOiAweDhCNUYsCisgICdTQU1QTEVSX0NVQkUnOiAweDhCNjAsCisgICdTQU1QTEVS
XzFEX1NIQURPVyc6IDB4OEI2MSwKKyAgJ1NBTVBMRVJfMkRfU0hBRE9XJzogMHg4QjYyLAorICAn
REVMRVRFX1NUQVRVUyc6IDB4OEI4MCwKKyAgJ0NPTVBJTEVfU1RBVFVTJzogMHg4QjgxLAorICAn
TElOS19TVEFUVVMnOiAweDhCODIsCisgICdWQUxJREFURV9TVEFUVVMnOiAweDhCODMsCisgICdJ
TkZPX0xPR19MRU5HVEgnOiAweDhCODQsCisgICdBVFRBQ0hFRF9TSEFERVJTJzogMHg4Qjg1LAor
ICAnQUNUSVZFX1VOSUZPUk1TJzogMHg4Qjg2LAorICAnQUNUSVZFX1VOSUZPUk1fTUFYX0xFTkdU
SCc6IDB4OEI4NywKKyAgJ1NIQURFUl9TT1VSQ0VfTEVOR1RIJzogMHg4Qjg4LAorICAnQUNUSVZF
X0FUVFJJQlVURVMnOiAweDhCODksCisgICdBQ1RJVkVfQVRUUklCVVRFX01BWF9MRU5HVEgnOiAw
eDhCOEEsCisgICdGUkFHTUVOVF9TSEFERVJfREVSSVZBVElWRV9ISU5UJzogMHg4QjhCLAorICAn
U0hBRElOR19MQU5HVUFHRV9WRVJTSU9OJzogMHg4QjhDLAorICAnQ1VSUkVOVF9QUk9HUkFNJzog
MHg4QjhELAorICAnUE9JTlRfU1BSSVRFX0NPT1JEX09SSUdJTic6IDB4OENBMCwKKyAgJ0xPV0VS
X0xFRlQnOiAweDhDQTEsCisgICdVUFBFUl9MRUZUJzogMHg4Q0EyLAorICAnU1RFTkNJTF9CQUNL
X1JFRic6IDB4OENBMywKKyAgJ1NURU5DSUxfQkFDS19WQUxVRV9NQVNLJzogMHg4Q0E0LAorICAn
U1RFTkNJTF9CQUNLX1dSSVRFTUFTSyc6IDB4OENBNSwKKyAgJ0NVUlJFTlRfUkFTVEVSX1NFQ09O
REFSWV9DT0xPUic6IDB4ODQ1RiwKKyAgJ1BJWEVMX1BBQ0tfQlVGRkVSJzogMHg4OEVCLAorICAn
UElYRUxfVU5QQUNLX0JVRkZFUic6IDB4ODhFQywKKyAgJ1BJWEVMX1BBQ0tfQlVGRkVSX0JJTkRJ
TkcnOiAweDg4RUQsCisgICdQSVhFTF9VTlBBQ0tfQlVGRkVSX0JJTkRJTkcnOiAweDg4RUYsCisg
ICdGTE9BVF9NQVQyeDMnOiAweDhCNjUsCisgICdGTE9BVF9NQVQyeDQnOiAweDhCNjYsCisgICdG
TE9BVF9NQVQzeDInOiAweDhCNjcsCisgICdGTE9BVF9NQVQzeDQnOiAweDhCNjgsCisgICdGTE9B
VF9NQVQ0eDInOiAweDhCNjksCisgICdGTE9BVF9NQVQ0eDMnOiAweDhCNkEsCisgICdTUkdCJzog
MHg4QzQwLAorICAnU1JHQjgnOiAweDhDNDEsCisgICdTUkdCX0FMUEhBJzogMHg4QzQyLAorICAn
U1JHQjhfQUxQSEE4JzogMHg4QzQzLAorICAnU0xVTUlOQU5DRV9BTFBIQSc6IDB4OEM0NCwKKyAg
J1NMVU1JTkFOQ0U4X0FMUEhBOCc6IDB4OEM0NSwKKyAgJ1NMVU1JTkFOQ0UnOiAweDhDNDYsCisg
ICdTTFVNSU5BTkNFOCc6IDB4OEM0NywKKyAgJ0NPTVBSRVNTRURfU1JHQic6IDB4OEM0OCwKKyAg
J0NPTVBSRVNTRURfU1JHQl9BTFBIQSc6IDB4OEM0OSwKKyAgJ0NPTVBSRVNTRURfU0xVTUlOQU5D
RSc6IDB4OEM0QSwKKyAgJ0NPTVBSRVNTRURfU0xVTUlOQU5DRV9BTFBIQSc6IDB4OEM0QiwKKyAg
J0NPTlRFWFRfRkxBR19GT1JXQVJEX0NPTVBBVElCTEVfQklUJzogMHgwMDAxLAorICAnTUFKT1Jf
VkVSU0lPTic6IDB4ODIxQiwKKyAgJ01JTk9SX1ZFUlNJT04nOiAweDgyMUMsCisgICdOVU1fRVhU
RU5TSU9OUyc6IDB4ODIxRCwKKyAgJ0NPTlRFWFRfRkxBR1MnOiAweDgyMUUsCisgICdERVBUSF9C
VUZGRVInOiAweDgyMjMsCisgICdTVEVOQ0lMX0JVRkZFUic6IDB4ODIyNCwKKyAgJ0NPTVBSRVNT
RURfUkVEJzogMHg4MjI1LAorICAnQ09NUFJFU1NFRF9SRyc6IDB4ODIyNiwKKyAgJ1JHQkEzMkYn
OiAweDg4MTQsCisgICdSR0IzMkYnOiAweDg4MTUsCisgICdSR0JBMTZGJzogMHg4ODFBLAorICAn
UkdCMTZGJzogMHg4ODFCLAorICAnVkVSVEVYX0FUVFJJQl9BUlJBWV9JTlRFR0VSJzogMHg4OEZE
LAorICAnTUFYX0FSUkFZX1RFWFRVUkVfTEFZRVJTJzogMHg4OEZGLAorICAnTUlOX1BST0dSQU1f
VEVYRUxfT0ZGU0VUJzogMHg4OTA0LAorICAnTUFYX1BST0dSQU1fVEVYRUxfT0ZGU0VUJzogMHg4
OTA1LAorICAnQ0xBTVBfVkVSVEVYX0NPTE9SJzogMHg4OTFBLAorICAnQ0xBTVBfRlJBR01FTlRf
Q09MT1InOiAweDg5MUIsCisgICdDTEFNUF9SRUFEX0NPTE9SJzogMHg4OTFDLAorICAnRklYRURf
T05MWSc6IDB4ODkxRCwKKyAgJ1RFWFRVUkVfUkVEX1RZUEUnOiAweDhDMTAsCisgICdURVhUVVJF
X0dSRUVOX1RZUEUnOiAweDhDMTEsCisgICdURVhUVVJFX0JMVUVfVFlQRSc6IDB4OEMxMiwKKyAg
J1RFWFRVUkVfQUxQSEFfVFlQRSc6IDB4OEMxMywKKyAgJ1RFWFRVUkVfTFVNSU5BTkNFX1RZUEUn
OiAweDhDMTQsCisgICdURVhUVVJFX0lOVEVOU0lUWV9UWVBFJzogMHg4QzE1LAorICAnVEVYVFVS
RV9ERVBUSF9UWVBFJzogMHg4QzE2LAorICAnVU5TSUdORURfTk9STUFMSVpFRCc6IDB4OEMxNywK
KyAgJ1RFWFRVUkVfMURfQVJSQVknOiAweDhDMTgsCisgICdQUk9YWV9URVhUVVJFXzFEX0FSUkFZ
JzogMHg4QzE5LAorICAnVEVYVFVSRV8yRF9BUlJBWSc6IDB4OEMxQSwKKyAgJ1BST1hZX1RFWFRV
UkVfMkRfQVJSQVknOiAweDhDMUIsCisgICdURVhUVVJFX0JJTkRJTkdfMURfQVJSQVknOiAweDhD
MUMsCisgICdURVhUVVJFX0JJTkRJTkdfMkRfQVJSQVknOiAweDhDMUQsCisgICdSMTFGX0cxMUZf
QjEwRic6IDB4OEMzQSwKKyAgJ1VOU0lHTkVEX0lOVF8xMEZfMTFGXzExRl9SRVYnOiAweDhDM0Is
CisgICdSR0I5X0U1JzogMHg4QzNELAorICAnVU5TSUdORURfSU5UXzVfOV85XzlfUkVWJzogMHg4
QzNFLAorICAnVEVYVFVSRV9TSEFSRURfU0laRSc6IDB4OEMzRiwKKyAgJ1RSQU5TRk9STV9GRUVE
QkFDS19WQVJZSU5HX01BWF9MRU5HVEgnOiAweDhDNzYsCisgICdUUkFOU0ZPUk1fRkVFREJBQ0tf
QlVGRkVSX01PREUnOiAweDhDN0YsCisgICdNQVhfVFJBTlNGT1JNX0ZFRURCQUNLX1NFUEFSQVRF
X0NPTVBPTkVOVFMnOiAweDhDODAsCisgICdUUkFOU0ZPUk1fRkVFREJBQ0tfVkFSWUlOR1MnOiAw
eDhDODMsCisgICdUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX1NUQVJUJzogMHg4Qzg0LAorICAn
VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TSVpFJzogMHg4Qzg1LAorICAnUFJJTUlUSVZFU19H
RU5FUkFURUQnOiAweDhDODcsCisgICdUUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklU
VEVOJzogMHg4Qzg4LAorICAnUkFTVEVSSVpFUl9ESVNDQVJEJzogMHg4Qzg5LAorICAnTUFYX1RS
QU5TRk9STV9GRUVEQkFDS19JTlRFUkxFQVZFRF9DT01QT05FTlRTJzogMHg4QzhBLAorICAnTUFY
X1RSQU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9BVFRSSUJTJzogMHg4QzhCLAorICAnSU5URVJM
RUFWRURfQVRUUklCUyc6IDB4OEM4QywKKyAgJ1NFUEFSQVRFX0FUVFJJQlMnOiAweDhDOEQsCisg
ICdUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSJzogMHg4QzhFLAorICAnVFJBTlNGT1JNX0ZFRURC
QUNLX0JVRkZFUl9CSU5ESU5HJzogMHg4QzhGLAorICAnUkdCQTMyVUknOiAweDhENzAsCisgICdS
R0IzMlVJJzogMHg4RDcxLAorICAnUkdCQTE2VUknOiAweDhENzYsCisgICdSR0IxNlVJJzogMHg4
RDc3LAorICAnUkdCQThVSSc6IDB4OEQ3QywKKyAgJ1JHQjhVSSc6IDB4OEQ3RCwKKyAgJ1JHQkEz
MkknOiAweDhEODIsCisgICdSR0IzMkknOiAweDhEODMsCisgICdSR0JBMTZJJzogMHg4RDg4LAor
ICAnUkdCMTZJJzogMHg4RDg5LAorICAnUkdCQThJJzogMHg4RDhFLAorICAnUkdCOEknOiAweDhE
OEYsCisgICdSRURfSU5URUdFUic6IDB4OEQ5NCwKKyAgJ0dSRUVOX0lOVEVHRVInOiAweDhEOTUs
CisgICdCTFVFX0lOVEVHRVInOiAweDhEOTYsCisgICdBTFBIQV9JTlRFR0VSJzogMHg4RDk3LAor
ICAnUkdCX0lOVEVHRVInOiAweDhEOTgsCisgICdSR0JBX0lOVEVHRVInOiAweDhEOTksCisgICdC
R1JfSU5URUdFUic6IDB4OEQ5QSwKKyAgJ0JHUkFfSU5URUdFUic6IDB4OEQ5QiwKKyAgJ1NBTVBM
RVJfMURfQVJSQVknOiAweDhEQzAsCisgICdTQU1QTEVSXzJEX0FSUkFZJzogMHg4REMxLAorICAn
U0FNUExFUl8xRF9BUlJBWV9TSEFET1cnOiAweDhEQzMsCisgICdTQU1QTEVSXzJEX0FSUkFZX1NI
QURPVyc6IDB4OERDNCwKKyAgJ1NBTVBMRVJfQ1VCRV9TSEFET1cnOiAweDhEQzUsCisgICdVTlNJ
R05FRF9JTlRfVkVDMic6IDB4OERDNiwKKyAgJ1VOU0lHTkVEX0lOVF9WRUMzJzogMHg4REM3LAor
ICAnVU5TSUdORURfSU5UX1ZFQzQnOiAweDhEQzgsCisgICdJTlRfU0FNUExFUl8xRCc6IDB4OERD
OSwKKyAgJ0lOVF9TQU1QTEVSXzJEJzogMHg4RENBLAorICAnSU5UX1NBTVBMRVJfM0QnOiAweDhE
Q0IsCisgICdJTlRfU0FNUExFUl9DVUJFJzogMHg4RENDLAorICAnSU5UX1NBTVBMRVJfMURfQVJS
QVknOiAweDhEQ0UsCisgICdJTlRfU0FNUExFUl8yRF9BUlJBWSc6IDB4OERDRiwKKyAgJ1VOU0lH
TkVEX0lOVF9TQU1QTEVSXzFEJzogMHg4REQxLAorICAnVU5TSUdORURfSU5UX1NBTVBMRVJfMkQn
OiAweDhERDIsCisgICdVTlNJR05FRF9JTlRfU0FNUExFUl8zRCc6IDB4OEREMywKKyAgJ1VOU0lH
TkVEX0lOVF9TQU1QTEVSX0NVQkUnOiAweDhERDQsCisgICdVTlNJR05FRF9JTlRfU0FNUExFUl8x
RF9BUlJBWSc6IDB4OERENiwKKyAgJ1VOU0lHTkVEX0lOVF9TQU1QTEVSXzJEX0FSUkFZJzogMHg4
REQ3LAorICAnUVVFUllfV0FJVCc6IDB4OEUxMywKKyAgJ1FVRVJZX05PX1dBSVQnOiAweDhFMTQs
CisgICdRVUVSWV9CWV9SRUdJT05fV0FJVCc6IDB4OEUxNSwKKyAgJ1FVRVJZX0JZX1JFR0lPTl9O
T19XQUlUJzogMHg4RTE2LAorICAnTVVMVElTQU1QTEVfM0RGWCc6IDB4ODZCMiwKKyAgJ1NBTVBM
RV9CVUZGRVJTXzNERlgnOiAweDg2QjMsCisgICdTQU1QTEVTXzNERlgnOiAweDg2QjQsCisgICdN
VUxUSVNBTVBMRV9CSVRfM0RGWCc6IDB4MjAwMDAwMDAsCisgICdDT01QUkVTU0VEX1JHQl9GWFQx
XzNERlgnOiAweDg2QjAsCisgICdDT01QUkVTU0VEX1JHQkFfRlhUMV8zREZYJzogMHg4NkIxLAor
ICAnVU5QQUNLX0NMSUVOVF9TVE9SQUdFX0FQUExFJzogMHg4NUIyLAorICAnRUxFTUVOVF9BUlJB
WV9BUFBMRSc6IDB4ODc2OCwKKyAgJ0VMRU1FTlRfQVJSQVlfVFlQRV9BUFBMRSc6IDB4ODc2OSwK
KyAgJ0VMRU1FTlRfQVJSQVlfUE9JTlRFUl9BUFBMRSc6IDB4ODc2QSwKKyAgJ0hBTEZfQVBQTEUn
OiAweDE0MEIsCisgICdSR0JBX0ZMT0FUMzJfQVBQTEUnOiAweDg4MTQsCisgICdSR0JfRkxPQVQz
Ml9BUFBMRSc6IDB4ODgxNSwKKyAgJ0FMUEhBX0ZMT0FUMzJfQVBQTEUnOiAweDg4MTYsCisgICdJ
TlRFTlNJVFlfRkxPQVQzMl9BUFBMRSc6IDB4ODgxNywKKyAgJ0xVTUlOQU5DRV9GTE9BVDMyX0FQ
UExFJzogMHg4ODE4LAorICAnTFVNSU5BTkNFX0FMUEhBX0ZMT0FUMzJfQVBQTEUnOiAweDg4MTks
CisgICdSR0JBX0ZMT0FUMTZfQVBQTEUnOiAweDg4MUEsCisgICdSR0JfRkxPQVQxNl9BUFBMRSc6
IDB4ODgxQiwKKyAgJ0FMUEhBX0ZMT0FUMTZfQVBQTEUnOiAweDg4MUMsCisgICdJTlRFTlNJVFlf
RkxPQVQxNl9BUFBMRSc6IDB4ODgxRCwKKyAgJ0xVTUlOQU5DRV9GTE9BVDE2X0FQUExFJzogMHg4
ODFFLAorICAnTFVNSU5BTkNFX0FMUEhBX0ZMT0FUMTZfQVBQTEUnOiAweDg4MUYsCisgICdDT0xP
Ul9GTE9BVF9BUFBMRSc6IDB4OEEwRiwKKyAgJ0JVRkZFUl9TRVJJQUxJWkVEX01PRElGWV9BUFBM
RSc6IDB4OEExMiwKKyAgJ0JVRkZFUl9GTFVTSElOR19VTk1BUF9BUFBMRSc6IDB4OEExMywKKyAg
J01JTl9QQlVGRkVSX1ZJRVdQT1JUX0RJTVNfQVBQTEUnOiAweDhBMTAsCisgICdMSUdIVF9NT0RF
TF9TUEVDVUxBUl9WRUNUT1JfQVBQTEUnOiAweDg1QjAsCisgICdURVhUVVJFX1JBTkdFX0xFTkdU
SF9BUFBMRSc6IDB4ODVCNywKKyAgJ1RFWFRVUkVfUkFOR0VfUE9JTlRFUl9BUFBMRSc6IDB4ODVC
OCwKKyAgJ1RFWFRVUkVfU1RPUkFHRV9ISU5UX0FQUExFJzogMHg4NUJDLAorICAnU1RPUkFHRV9Q
UklWQVRFX0FQUExFJzogMHg4NUJELAorICAnU1RPUkFHRV9DQUNIRURfQVBQTEUnOiAweDg1QkUs
CisgICdTVE9SQUdFX1NIQVJFRF9BUFBMRSc6IDB4ODVCRiwKKyAgJ1RSQU5TRk9STV9ISU5UX0FQ
UExFJzogMHg4NUIxLAorICAnVkVSVEVYX0FSUkFZX0JJTkRJTkdfQVBQTEUnOiAweDg1QjUsCisg
ICdWRVJURVhfQVJSQVlfUkFOR0VfQVBQTEUnOiAweDg1MUQsCisgICdWRVJURVhfQVJSQVlfUkFO
R0VfTEVOR1RIX0FQUExFJzogMHg4NTFFLAorICAnVkVSVEVYX0FSUkFZX1NUT1JBR0VfSElOVF9B
UFBMRSc6IDB4ODUxRiwKKyAgJ01BWF9WRVJURVhfQVJSQVlfUkFOR0VfRUxFTUVOVF9BUFBMRSc6
IDB4ODUyMCwKKyAgJ1ZFUlRFWF9BUlJBWV9SQU5HRV9QT0lOVEVSX0FQUExFJzogMHg4NTIxLAor
ICAnU1RPUkFHRV9DQUNIRURfQVBQTEUnOiAweDg1QkUsCisgICdTVE9SQUdFX1NIQVJFRF9BUFBM
RSc6IDB4ODVCRiwKKyAgJ1lDQkNSXzQyMl9BUFBMRSc6IDB4ODVCOSwKKyAgJ1VOU0lHTkVEX1NI
T1JUXzhfOF9BUFBMRSc6IDB4ODVCQSwKKyAgJ1VOU0lHTkVEX1NIT1JUXzhfOF9SRVZfQVBQTEUn
OiAweDg1QkIsCisgICdSR0JBX0ZMT0FUX01PREVfQVJCJzogMHg4ODIwLAorICAnQ0xBTVBfVkVS
VEVYX0NPTE9SX0FSQic6IDB4ODkxQSwKKyAgJ0NMQU1QX0ZSQUdNRU5UX0NPTE9SX0FSQic6IDB4
ODkxQiwKKyAgJ0NMQU1QX1JFQURfQ09MT1JfQVJCJzogMHg4OTFDLAorICAnRklYRURfT05MWV9B
UkInOiAweDg5MUQsCisgICdERVBUSF9DT01QT05FTlQzMkYnOiAweDhDQUMsCisgICdERVBUSDMy
Rl9TVEVOQ0lMOCc6IDB4OENBRCwKKyAgJ0ZMT0FUXzMyX1VOU0lHTkVEX0lOVF8yNF84X1JFVic6
IDB4OERBRCwKKyAgJ0RFUFRIX0NPTVBPTkVOVDE2X0FSQic6IDB4ODFBNSwKKyAgJ0RFUFRIX0NP
TVBPTkVOVDI0X0FSQic6IDB4ODFBNiwKKyAgJ0RFUFRIX0NPTVBPTkVOVDMyX0FSQic6IDB4ODFB
NywKKyAgJ1RFWFRVUkVfREVQVEhfU0laRV9BUkInOiAweDg4NEEsCisgICdERVBUSF9URVhUVVJF
X01PREVfQVJCJzogMHg4ODRCLAorICAnTUFYX0RSQVdfQlVGRkVSU19BUkInOiAweDg4MjQsCisg
ICdEUkFXX0JVRkZFUjBfQVJCJzogMHg4ODI1LAorICAnRFJBV19CVUZGRVIxX0FSQic6IDB4ODgy
NiwKKyAgJ0RSQVdfQlVGRkVSMl9BUkInOiAweDg4MjcsCisgICdEUkFXX0JVRkZFUjNfQVJCJzog
MHg4ODI4LAorICAnRFJBV19CVUZGRVI0X0FSQic6IDB4ODgyOSwKKyAgJ0RSQVdfQlVGRkVSNV9B
UkInOiAweDg4MkEsCisgICdEUkFXX0JVRkZFUjZfQVJCJzogMHg4ODJCLAorICAnRFJBV19CVUZG
RVI3X0FSQic6IDB4ODgyQywKKyAgJ0RSQVdfQlVGRkVSOF9BUkInOiAweDg4MkQsCisgICdEUkFX
X0JVRkZFUjlfQVJCJzogMHg4ODJFLAorICAnRFJBV19CVUZGRVIxMF9BUkInOiAweDg4MkYsCisg
ICdEUkFXX0JVRkZFUjExX0FSQic6IDB4ODgzMCwKKyAgJ0RSQVdfQlVGRkVSMTJfQVJCJzogMHg4
ODMxLAorICAnRFJBV19CVUZGRVIxM19BUkInOiAweDg4MzIsCisgICdEUkFXX0JVRkZFUjE0X0FS
Qic6IDB4ODgzMywKKyAgJ0RSQVdfQlVGRkVSMTVfQVJCJzogMHg4ODM0LAorICAnRlJBR01FTlRf
UFJPR1JBTV9BUkInOiAweDg4MDQsCisgICdQUk9HUkFNX0FMVV9JTlNUUlVDVElPTlNfQVJCJzog
MHg4ODA1LAorICAnUFJPR1JBTV9URVhfSU5TVFJVQ1RJT05TX0FSQic6IDB4ODgwNiwKKyAgJ1BS
T0dSQU1fVEVYX0lORElSRUNUSU9OU19BUkInOiAweDg4MDcsCisgICdQUk9HUkFNX05BVElWRV9B
TFVfSU5TVFJVQ1RJT05TX0FSQic6IDB4ODgwOCwKKyAgJ1BST0dSQU1fTkFUSVZFX1RFWF9JTlNU
UlVDVElPTlNfQVJCJzogMHg4ODA5LAorICAnUFJPR1JBTV9OQVRJVkVfVEVYX0lORElSRUNUSU9O
U19BUkInOiAweDg4MEEsCisgICdNQVhfUFJPR1JBTV9BTFVfSU5TVFJVQ1RJT05TX0FSQic6IDB4
ODgwQiwKKyAgJ01BWF9QUk9HUkFNX1RFWF9JTlNUUlVDVElPTlNfQVJCJzogMHg4ODBDLAorICAn
TUFYX1BST0dSQU1fVEVYX0lORElSRUNUSU9OU19BUkInOiAweDg4MEQsCisgICdNQVhfUFJPR1JB
TV9OQVRJVkVfQUxVX0lOU1RSVUNUSU9OU19BUkInOiAweDg4MEUsCisgICdNQVhfUFJPR1JBTV9O
QVRJVkVfVEVYX0lOU1RSVUNUSU9OU19BUkInOiAweDg4MEYsCisgICdNQVhfUFJPR1JBTV9OQVRJ
VkVfVEVYX0lORElSRUNUSU9OU19BUkInOiAweDg4MTAsCisgICdNQVhfVEVYVFVSRV9DT09SRFNf
QVJCJzogMHg4ODcxLAorICAnTUFYX1RFWFRVUkVfSU1BR0VfVU5JVFNfQVJCJzogMHg4ODcyLAor
ICAnRlJBR01FTlRfU0hBREVSX0FSQic6IDB4OEIzMCwKKyAgJ01BWF9GUkFHTUVOVF9VTklGT1JN
X0NPTVBPTkVOVFNfQVJCJzogMHg4QjQ5LAorICAnRlJBR01FTlRfU0hBREVSX0RFUklWQVRJVkVf
SElOVF9BUkInOiAweDhCOEIsCisgICdJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTic6IDB4
MDUwNiwKKyAgJ0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkcnOiAweDgyMTAs
CisgICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTVBPTkVOVF9UWVBFJzogMHg4MjExLAorICAn
RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9SRURfU0laRSc6IDB4ODIxMiwKKyAgJ0ZSQU1FQlVGRkVS
X0FUVEFDSE1FTlRfR1JFRU5fU0laRSc6IDB4ODIxMywKKyAgJ0ZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfQkxVRV9TSVpFJzogMHg4MjE0LAorICAnRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9BTFBIQV9T
SVpFJzogMHg4MjE1LAorICAnRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9ERVBUSF9TSVpFJzogMHg4
MjE2LAorICAnRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9TVEVOQ0lMX1NJWkUnOiAweDgyMTcsCisg
ICdGUkFNRUJVRkZFUl9ERUZBVUxUJzogMHg4MjE4LAorICAnRlJBTUVCVUZGRVJfVU5ERUZJTkVE
JzogMHg4MjE5LAorICAnREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UJzogMHg4MjFBLAorICAnSU5E
RVgnOiAweDgyMjIsCisgICdNQVhfUkVOREVSQlVGRkVSX1NJWkUnOiAweDg0RTgsCisgICdERVBU
SF9TVEVOQ0lMJzogMHg4NEY5LAorICAnVU5TSUdORURfSU5UXzI0XzgnOiAweDg0RkEsCisgICdE
RVBUSDI0X1NURU5DSUw4JzogMHg4OEYwLAorICAnVEVYVFVSRV9TVEVOQ0lMX1NJWkUnOiAweDg4
RjEsCisgICdVTlNJR05FRF9OT1JNQUxJWkVEJzogMHg4QzE3LAorICAnU1JHQic6IDB4OEM0MCwK
KyAgJ0RSQVdfRlJBTUVCVUZGRVJfQklORElORyc6IDB4OENBNiwKKyAgJ0ZSQU1FQlVGRkVSX0JJ
TkRJTkcnOiAweDhDQTYsCisgICdSRU5ERVJCVUZGRVJfQklORElORyc6IDB4OENBNywKKyAgJ1JF
QURfRlJBTUVCVUZGRVInOiAweDhDQTgsCisgICdEUkFXX0ZSQU1FQlVGRkVSJzogMHg4Q0E5LAor
ICAnUkVBRF9GUkFNRUJVRkZFUl9CSU5ESU5HJzogMHg4Q0FBLAorICAnUkVOREVSQlVGRkVSX1NB
TVBMRVMnOiAweDhDQUIsCisgICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFJzog
MHg4Q0QwLAorICAnRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRSc6IDB4OENEMSwK
KyAgJ0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9MRVZFTCc6IDB4OENEMiwKKyAgJ0ZS
QU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9DVUJFX01BUF9GQUNFJzogMHg4Q0QzLAorICAn
RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xBWUVSJzogMHg4Q0Q0LAorICAnRlJBTUVC
VUZGRVJfQ09NUExFVEUnOiAweDhDRDUsCisgICdGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFD
SE1FTlQnOiAweDhDRDYsCisgICdGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01JU1NJTkdfQVRUQUNI
TUVOVCc6IDB4OENENywKKyAgJ0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRFJBV19CVUZGRVInOiAw
eDhDREIsCisgICdGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX1JFQURfQlVGRkVSJzogMHg4Q0RDLAor
ICAnRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQnOiAweDhDREQsCisgICdNQVhfQ09MT1JfQVRUQUNI
TUVOVFMnOiAweDhDREYsCisgICdDT0xPUl9BVFRBQ0hNRU5UMCc6IDB4OENFMCwKKyAgJ0NPTE9S
X0FUVEFDSE1FTlQxJzogMHg4Q0UxLAorICAnQ09MT1JfQVRUQUNITUVOVDInOiAweDhDRTIsCisg
ICdDT0xPUl9BVFRBQ0hNRU5UMyc6IDB4OENFMywKKyAgJ0NPTE9SX0FUVEFDSE1FTlQ0JzogMHg4
Q0U0LAorICAnQ09MT1JfQVRUQUNITUVOVDUnOiAweDhDRTUsCisgICdDT0xPUl9BVFRBQ0hNRU5U
Nic6IDB4OENFNiwKKyAgJ0NPTE9SX0FUVEFDSE1FTlQ3JzogMHg4Q0U3LAorICAnQ09MT1JfQVRU
QUNITUVOVDgnOiAweDhDRTgsCisgICdDT0xPUl9BVFRBQ0hNRU5UOSc6IDB4OENFOSwKKyAgJ0NP
TE9SX0FUVEFDSE1FTlQxMCc6IDB4OENFQSwKKyAgJ0NPTE9SX0FUVEFDSE1FTlQxMSc6IDB4OENF
QiwKKyAgJ0NPTE9SX0FUVEFDSE1FTlQxMic6IDB4OENFQywKKyAgJ0NPTE9SX0FUVEFDSE1FTlQx
Myc6IDB4OENFRCwKKyAgJ0NPTE9SX0FUVEFDSE1FTlQxNCc6IDB4OENFRSwKKyAgJ0NPTE9SX0FU
VEFDSE1FTlQxNSc6IDB4OENFRiwKKyAgJ0RFUFRIX0FUVEFDSE1FTlQnOiAweDhEMDAsCisgICdT
VEVOQ0lMX0FUVEFDSE1FTlQnOiAweDhEMjAsCisgICdGUkFNRUJVRkZFUic6IDB4OEQ0MCwKKyAg
J1JFTkRFUkJVRkZFUic6IDB4OEQ0MSwKKyAgJ1JFTkRFUkJVRkZFUl9XSURUSCc6IDB4OEQ0MiwK
KyAgJ1JFTkRFUkJVRkZFUl9IRUlHSFQnOiAweDhENDMsCisgICdSRU5ERVJCVUZGRVJfSU5URVJO
QUxfRk9STUFUJzogMHg4RDQ0LAorICAnU1RFTkNJTF9JTkRFWDEnOiAweDhENDYsCisgICdTVEVO
Q0lMX0lOREVYNCc6IDB4OEQ0NywKKyAgJ1NURU5DSUxfSU5ERVg4JzogMHg4RDQ4LAorICAnU1RF
TkNJTF9JTkRFWDE2JzogMHg4RDQ5LAorICAnUkVOREVSQlVGRkVSX1JFRF9TSVpFJzogMHg4RDUw
LAorICAnUkVOREVSQlVGRkVSX0dSRUVOX1NJWkUnOiAweDhENTEsCisgICdSRU5ERVJCVUZGRVJf
QkxVRV9TSVpFJzogMHg4RDUyLAorICAnUkVOREVSQlVGRkVSX0FMUEhBX1NJWkUnOiAweDhENTMs
CisgICdSRU5ERVJCVUZGRVJfREVQVEhfU0laRSc6IDB4OEQ1NCwKKyAgJ1JFTkRFUkJVRkZFUl9T
VEVOQ0lMX1NJWkUnOiAweDhENTUsCisgICdGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01VTFRJU0FN
UExFJzogMHg4RDU2LAorICAnTUFYX1NBTVBMRVMnOiAweDhENTcsCisgICdGUkFNRUJVRkZFUl9T
UkdCJzogMHg4REI5LAorICAnTElORVNfQURKQUNFTkNZX0FSQic6IDB4QSwKKyAgJ0xJTkVfU1RS
SVBfQURKQUNFTkNZX0FSQic6IDB4QiwKKyAgJ1RSSUFOR0xFU19BREpBQ0VOQ1lfQVJCJzogMHhD
LAorICAnVFJJQU5HTEVfU1RSSVBfQURKQUNFTkNZX0FSQic6IDB4RCwKKyAgJ1BST0dSQU1fUE9J
TlRfU0laRV9BUkInOiAweDg2NDIsCisgICdNQVhfR0VPTUVUUllfVEVYVFVSRV9JTUFHRV9VTklU
U19BUkInOiAweDhDMjksCisgICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEFZRVIn
OiAweDhDRDQsCisgICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0xBWUVSRURfQVJCJzogMHg4REE3
LAorICAnRlJBTUVCVUZGRVJfSU5DT01QTEVURV9MQVlFUl9UQVJHRVRTX0FSQic6IDB4OERBOCwK
KyAgJ0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTEFZRVJfQ09VTlRfQVJCJzogMHg4REE5LAorICAn
R0VPTUVUUllfU0hBREVSX0FSQic6IDB4OEREOSwKKyAgJ0dFT01FVFJZX1ZFUlRJQ0VTX09VVF9B
UkInOiAweDhEREEsCisgICdHRU9NRVRSWV9JTlBVVF9UWVBFX0FSQic6IDB4OEREQiwKKyAgJ0dF
T01FVFJZX09VVFBVVF9UWVBFX0FSQic6IDB4OEREQywKKyAgJ01BWF9HRU9NRVRSWV9WQVJZSU5H
X0NPTVBPTkVOVFNfQVJCJzogMHg4RERELAorICAnTUFYX1ZFUlRFWF9WQVJZSU5HX0NPTVBPTkVO
VFNfQVJCJzogMHg4RERFLAorICAnTUFYX0dFT01FVFJZX1VOSUZPUk1fQ09NUE9ORU5UU19BUkIn
OiAweDhEREYsCisgICdNQVhfR0VPTUVUUllfT1VUUFVUX1ZFUlRJQ0VTX0FSQic6IDB4OERFMCwK
KyAgJ01BWF9HRU9NRVRSWV9UT1RBTF9PVVRQVVRfQ09NUE9ORU5UU19BUkInOiAweDhERTEsCisg
ICdIQUxGX0ZMT0FUX0FSQic6IDB4MTQwQiwKKyAgJ0hBTEZfRkxPQVQnOiAweDE0MEIsCisgICdD
T05TVEFOVF9DT0xPUic6IDB4ODAwMSwKKyAgJ09ORV9NSU5VU19DT05TVEFOVF9DT0xPUic6IDB4
ODAwMiwKKyAgJ0NPTlNUQU5UX0FMUEhBJzogMHg4MDAzLAorICAnT05FX01JTlVTX0NPTlNUQU5U
X0FMUEhBJzogMHg4MDA0LAorICAnQkxFTkRfQ09MT1InOiAweDgwMDUsCisgICdGVU5DX0FERCc6
IDB4ODAwNiwKKyAgJ01JTic6IDB4ODAwNywKKyAgJ01BWCc6IDB4ODAwOCwKKyAgJ0JMRU5EX0VR
VUFUSU9OJzogMHg4MDA5LAorICAnRlVOQ19TVUJUUkFDVCc6IDB4ODAwQSwKKyAgJ0ZVTkNfUkVW
RVJTRV9TVUJUUkFDVCc6IDB4ODAwQiwKKyAgJ0NPTlZPTFVUSU9OXzFEJzogMHg4MDEwLAorICAn
Q09OVk9MVVRJT05fMkQnOiAweDgwMTEsCisgICdTRVBBUkFCTEVfMkQnOiAweDgwMTIsCisgICdD
T05WT0xVVElPTl9CT1JERVJfTU9ERSc6IDB4ODAxMywKKyAgJ0NPTlZPTFVUSU9OX0ZJTFRFUl9T
Q0FMRSc6IDB4ODAxNCwKKyAgJ0NPTlZPTFVUSU9OX0ZJTFRFUl9CSUFTJzogMHg4MDE1LAorICAn
UkVEVUNFJzogMHg4MDE2LAorICAnQ09OVk9MVVRJT05fRk9STUFUJzogMHg4MDE3LAorICAnQ09O
Vk9MVVRJT05fV0lEVEgnOiAweDgwMTgsCisgICdDT05WT0xVVElPTl9IRUlHSFQnOiAweDgwMTks
CisgICdNQVhfQ09OVk9MVVRJT05fV0lEVEgnOiAweDgwMUEsCisgICdNQVhfQ09OVk9MVVRJT05f
SEVJR0hUJzogMHg4MDFCLAorICAnUE9TVF9DT05WT0xVVElPTl9SRURfU0NBTEUnOiAweDgwMUMs
CisgICdQT1NUX0NPTlZPTFVUSU9OX0dSRUVOX1NDQUxFJzogMHg4MDFELAorICAnUE9TVF9DT05W
T0xVVElPTl9CTFVFX1NDQUxFJzogMHg4MDFFLAorICAnUE9TVF9DT05WT0xVVElPTl9BTFBIQV9T
Q0FMRSc6IDB4ODAxRiwKKyAgJ1BPU1RfQ09OVk9MVVRJT05fUkVEX0JJQVMnOiAweDgwMjAsCisg
ICdQT1NUX0NPTlZPTFVUSU9OX0dSRUVOX0JJQVMnOiAweDgwMjEsCisgICdQT1NUX0NPTlZPTFVU
SU9OX0JMVUVfQklBUyc6IDB4ODAyMiwKKyAgJ1BPU1RfQ09OVk9MVVRJT05fQUxQSEFfQklBUyc6
IDB4ODAyMywKKyAgJ0hJU1RPR1JBTSc6IDB4ODAyNCwKKyAgJ1BST1hZX0hJU1RPR1JBTSc6IDB4
ODAyNSwKKyAgJ0hJU1RPR1JBTV9XSURUSCc6IDB4ODAyNiwKKyAgJ0hJU1RPR1JBTV9GT1JNQVQn
OiAweDgwMjcsCisgICdISVNUT0dSQU1fUkVEX1NJWkUnOiAweDgwMjgsCisgICdISVNUT0dSQU1f
R1JFRU5fU0laRSc6IDB4ODAyOSwKKyAgJ0hJU1RPR1JBTV9CTFVFX1NJWkUnOiAweDgwMkEsCisg
ICdISVNUT0dSQU1fQUxQSEFfU0laRSc6IDB4ODAyQiwKKyAgJ0hJU1RPR1JBTV9MVU1JTkFOQ0Vf
U0laRSc6IDB4ODAyQywKKyAgJ0hJU1RPR1JBTV9TSU5LJzogMHg4MDJELAorICAnTUlOTUFYJzog
MHg4MDJFLAorICAnTUlOTUFYX0ZPUk1BVCc6IDB4ODAyRiwKKyAgJ01JTk1BWF9TSU5LJzogMHg4
MDMwLAorICAnVEFCTEVfVE9PX0xBUkdFJzogMHg4MDMxLAorICAnQ09MT1JfTUFUUklYJzogMHg4
MEIxLAorICAnQ09MT1JfTUFUUklYX1NUQUNLX0RFUFRIJzogMHg4MEIyLAorICAnTUFYX0NPTE9S
X01BVFJJWF9TVEFDS19ERVBUSCc6IDB4ODBCMywKKyAgJ1BPU1RfQ09MT1JfTUFUUklYX1JFRF9T
Q0FMRSc6IDB4ODBCNCwKKyAgJ1BPU1RfQ09MT1JfTUFUUklYX0dSRUVOX1NDQUxFJzogMHg4MEI1
LAorICAnUE9TVF9DT0xPUl9NQVRSSVhfQkxVRV9TQ0FMRSc6IDB4ODBCNiwKKyAgJ1BPU1RfQ09M
T1JfTUFUUklYX0FMUEhBX1NDQUxFJzogMHg4MEI3LAorICAnUE9TVF9DT0xPUl9NQVRSSVhfUkVE
X0JJQVMnOiAweDgwQjgsCisgICdQT1NUX0NPTE9SX01BVFJJWF9HUkVFTl9CSUFTJzogMHg4MEI5
LAorICAnUE9TVF9DT0xPUl9NQVRSSVhfQkxVRV9CSUFTJzogMHg4MEJBLAorICAnUE9TVF9DT0xP
Ul9NQVRSSVhfQUxQSEFfQklBUyc6IDB4ODBCQiwKKyAgJ0NPTE9SX1RBQkxFJzogMHg4MEQwLAor
ICAnUE9TVF9DT05WT0xVVElPTl9DT0xPUl9UQUJMRSc6IDB4ODBEMSwKKyAgJ1BPU1RfQ09MT1Jf
TUFUUklYX0NPTE9SX1RBQkxFJzogMHg4MEQyLAorICAnUFJPWFlfQ09MT1JfVEFCTEUnOiAweDgw
RDMsCisgICdQUk9YWV9QT1NUX0NPTlZPTFVUSU9OX0NPTE9SX1RBQkxFJzogMHg4MEQ0LAorICAn
UFJPWFlfUE9TVF9DT0xPUl9NQVRSSVhfQ09MT1JfVEFCTEUnOiAweDgwRDUsCisgICdDT0xPUl9U
QUJMRV9TQ0FMRSc6IDB4ODBENiwKKyAgJ0NPTE9SX1RBQkxFX0JJQVMnOiAweDgwRDcsCisgICdD
T0xPUl9UQUJMRV9GT1JNQVQnOiAweDgwRDgsCisgICdDT0xPUl9UQUJMRV9XSURUSCc6IDB4ODBE
OSwKKyAgJ0NPTE9SX1RBQkxFX1JFRF9TSVpFJzogMHg4MERBLAorICAnQ09MT1JfVEFCTEVfR1JF
RU5fU0laRSc6IDB4ODBEQiwKKyAgJ0NPTE9SX1RBQkxFX0JMVUVfU0laRSc6IDB4ODBEQywKKyAg
J0NPTE9SX1RBQkxFX0FMUEhBX1NJWkUnOiAweDgwREQsCisgICdDT0xPUl9UQUJMRV9MVU1JTkFO
Q0VfU0laRSc6IDB4ODBERSwKKyAgJ0NPTE9SX1RBQkxFX0lOVEVOU0lUWV9TSVpFJzogMHg4MERG
LAorICAnSUdOT1JFX0JPUkRFUic6IDB4ODE1MCwKKyAgJ0NPTlNUQU5UX0JPUkRFUic6IDB4ODE1
MSwKKyAgJ1dSQVBfQk9SREVSJzogMHg4MTUyLAorICAnUkVQTElDQVRFX0JPUkRFUic6IDB4ODE1
MywKKyAgJ0NPTlZPTFVUSU9OX0JPUkRFUl9DT0xPUic6IDB4ODE1NCwKKyAgJ1ZFUlRFWF9BVFRS
SUJfQVJSQVlfRElWSVNPUl9BUkInOiAweDg4RkUsCisgICdNQVBfUkVBRF9CSVQnOiAweDAwMDEs
CisgICdNQVBfV1JJVEVfQklUJzogMHgwMDAyLAorICAnTUFQX0lOVkFMSURBVEVfUkFOR0VfQklU
JzogMHgwMDA0LAorICAnTUFQX0lOVkFMSURBVEVfQlVGRkVSX0JJVCc6IDB4MDAwOCwKKyAgJ01B
UF9GTFVTSF9FWFBMSUNJVF9CSVQnOiAweDAwMTAsCisgICdNQVBfVU5TWU5DSFJPTklaRURfQklU
JzogMHgwMDIwLAorICAnTUFUUklYX1BBTEVUVEVfQVJCJzogMHg4ODQwLAorICAnTUFYX01BVFJJ
WF9QQUxFVFRFX1NUQUNLX0RFUFRIX0FSQic6IDB4ODg0MSwKKyAgJ01BWF9QQUxFVFRFX01BVFJJ
Q0VTX0FSQic6IDB4ODg0MiwKKyAgJ0NVUlJFTlRfUEFMRVRURV9NQVRSSVhfQVJCJzogMHg4ODQz
LAorICAnTUFUUklYX0lOREVYX0FSUkFZX0FSQic6IDB4ODg0NCwKKyAgJ0NVUlJFTlRfTUFUUklY
X0lOREVYX0FSQic6IDB4ODg0NSwKKyAgJ01BVFJJWF9JTkRFWF9BUlJBWV9TSVpFX0FSQic6IDB4
ODg0NiwKKyAgJ01BVFJJWF9JTkRFWF9BUlJBWV9UWVBFX0FSQic6IDB4ODg0NywKKyAgJ01BVFJJ
WF9JTkRFWF9BUlJBWV9TVFJJREVfQVJCJzogMHg4ODQ4LAorICAnTUFUUklYX0lOREVYX0FSUkFZ
X1BPSU5URVJfQVJCJzogMHg4ODQ5LAorICAnTVVMVElTQU1QTEVfQVJCJzogMHg4MDlELAorICAn
U0FNUExFX0FMUEhBX1RPX0NPVkVSQUdFX0FSQic6IDB4ODA5RSwKKyAgJ1NBTVBMRV9BTFBIQV9U
T19PTkVfQVJCJzogMHg4MDlGLAorICAnU0FNUExFX0NPVkVSQUdFX0FSQic6IDB4ODBBMCwKKyAg
J1NBTVBMRV9CVUZGRVJTX0FSQic6IDB4ODBBOCwKKyAgJ1NBTVBMRVNfQVJCJzogMHg4MEE5LAor
ICAnU0FNUExFX0NPVkVSQUdFX1ZBTFVFX0FSQic6IDB4ODBBQSwKKyAgJ1NBTVBMRV9DT1ZFUkFH
RV9JTlZFUlRfQVJCJzogMHg4MEFCLAorICAnTVVMVElTQU1QTEVfQklUX0FSQic6IDB4MjAwMDAw
MDAsCisgICdURVhUVVJFMF9BUkInOiAweDg0QzAsCisgICdURVhUVVJFMV9BUkInOiAweDg0QzEs
CisgICdURVhUVVJFMl9BUkInOiAweDg0QzIsCisgICdURVhUVVJFM19BUkInOiAweDg0QzMsCisg
ICdURVhUVVJFNF9BUkInOiAweDg0QzQsCisgICdURVhUVVJFNV9BUkInOiAweDg0QzUsCisgICdU
RVhUVVJFNl9BUkInOiAweDg0QzYsCisgICdURVhUVVJFN19BUkInOiAweDg0QzcsCisgICdURVhU
VVJFOF9BUkInOiAweDg0QzgsCisgICdURVhUVVJFOV9BUkInOiAweDg0QzksCisgICdURVhUVVJF
MTBfQVJCJzogMHg4NENBLAorICAnVEVYVFVSRTExX0FSQic6IDB4ODRDQiwKKyAgJ1RFWFRVUkUx
Ml9BUkInOiAweDg0Q0MsCisgICdURVhUVVJFMTNfQVJCJzogMHg4NENELAorICAnVEVYVFVSRTE0
X0FSQic6IDB4ODRDRSwKKyAgJ1RFWFRVUkUxNV9BUkInOiAweDg0Q0YsCisgICdURVhUVVJFMTZf
QVJCJzogMHg4NEQwLAorICAnVEVYVFVSRTE3X0FSQic6IDB4ODREMSwKKyAgJ1RFWFRVUkUxOF9B
UkInOiAweDg0RDIsCisgICdURVhUVVJFMTlfQVJCJzogMHg4NEQzLAorICAnVEVYVFVSRTIwX0FS
Qic6IDB4ODRENCwKKyAgJ1RFWFRVUkUyMV9BUkInOiAweDg0RDUsCisgICdURVhUVVJFMjJfQVJC
JzogMHg4NEQ2LAorICAnVEVYVFVSRTIzX0FSQic6IDB4ODRENywKKyAgJ1RFWFRVUkUyNF9BUkIn
OiAweDg0RDgsCisgICdURVhUVVJFMjVfQVJCJzogMHg4NEQ5LAorICAnVEVYVFVSRTI2X0FSQic6
IDB4ODREQSwKKyAgJ1RFWFRVUkUyN19BUkInOiAweDg0REIsCisgICdURVhUVVJFMjhfQVJCJzog
MHg4NERDLAorICAnVEVYVFVSRTI5X0FSQic6IDB4ODRERCwKKyAgJ1RFWFRVUkUzMF9BUkInOiAw
eDg0REUsCisgICdURVhUVVJFMzFfQVJCJzogMHg4NERGLAorICAnQUNUSVZFX1RFWFRVUkVfQVJC
JzogMHg4NEUwLAorICAnQ0xJRU5UX0FDVElWRV9URVhUVVJFX0FSQic6IDB4ODRFMSwKKyAgJ01B
WF9URVhUVVJFX1VOSVRTX0FSQic6IDB4ODRFMiwKKyAgJ1FVRVJZX0NPVU5URVJfQklUU19BUkIn
OiAweDg4NjQsCisgICdDVVJSRU5UX1FVRVJZX0FSQic6IDB4ODg2NSwKKyAgJ1FVRVJZX1JFU1VM
VF9BUkInOiAweDg4NjYsCisgICdRVUVSWV9SRVNVTFRfQVZBSUxBQkxFX0FSQic6IDB4ODg2NywK
KyAgJ1NBTVBMRVNfUEFTU0VEX0FSQic6IDB4ODkxNCwKKyAgJ1BJWEVMX1BBQ0tfQlVGRkVSX0FS
Qic6IDB4ODhFQiwKKyAgJ1BJWEVMX1VOUEFDS19CVUZGRVJfQVJCJzogMHg4OEVDLAorICAnUElY
RUxfUEFDS19CVUZGRVJfQklORElOR19BUkInOiAweDg4RUQsCisgICdQSVhFTF9VTlBBQ0tfQlVG
RkVSX0JJTkRJTkdfQVJCJzogMHg4OEVGLAorICAnUE9JTlRfU0laRV9NSU5fQVJCJzogMHg4MTI2
LAorICAnUE9JTlRfU0laRV9NQVhfQVJCJzogMHg4MTI3LAorICAnUE9JTlRfRkFERV9USFJFU0hP
TERfU0laRV9BUkInOiAweDgxMjgsCisgICdQT0lOVF9ESVNUQU5DRV9BVFRFTlVBVElPTl9BUkIn
OiAweDgxMjksCisgICdQT0lOVF9TUFJJVEVfQVJCJzogMHg4ODYxLAorICAnQ09PUkRfUkVQTEFD
RV9BUkInOiAweDg4NjIsCisgICdQUk9HUkFNX09CSkVDVF9BUkInOiAweDhCNDAsCisgICdTSEFE
RVJfT0JKRUNUX0FSQic6IDB4OEI0OCwKKyAgJ09CSkVDVF9UWVBFX0FSQic6IDB4OEI0RSwKKyAg
J09CSkVDVF9TVUJUWVBFX0FSQic6IDB4OEI0RiwKKyAgJ0ZMT0FUX1ZFQzJfQVJCJzogMHg4QjUw
LAorICAnRkxPQVRfVkVDM19BUkInOiAweDhCNTEsCisgICdGTE9BVF9WRUM0X0FSQic6IDB4OEI1
MiwKKyAgJ0lOVF9WRUMyX0FSQic6IDB4OEI1MywKKyAgJ0lOVF9WRUMzX0FSQic6IDB4OEI1NCwK
KyAgJ0lOVF9WRUM0X0FSQic6IDB4OEI1NSwKKyAgJ0JPT0xfQVJCJzogMHg4QjU2LAorICAnQk9P
TF9WRUMyX0FSQic6IDB4OEI1NywKKyAgJ0JPT0xfVkVDM19BUkInOiAweDhCNTgsCisgICdCT09M
X1ZFQzRfQVJCJzogMHg4QjU5LAorICAnRkxPQVRfTUFUMl9BUkInOiAweDhCNUEsCisgICdGTE9B
VF9NQVQzX0FSQic6IDB4OEI1QiwKKyAgJ0ZMT0FUX01BVDRfQVJCJzogMHg4QjVDLAorICAnU0FN
UExFUl8xRF9BUkInOiAweDhCNUQsCisgICdTQU1QTEVSXzJEX0FSQic6IDB4OEI1RSwKKyAgJ1NB
TVBMRVJfM0RfQVJCJzogMHg4QjVGLAorICAnU0FNUExFUl9DVUJFX0FSQic6IDB4OEI2MCwKKyAg
J1NBTVBMRVJfMURfU0hBRE9XX0FSQic6IDB4OEI2MSwKKyAgJ1NBTVBMRVJfMkRfU0hBRE9XX0FS
Qic6IDB4OEI2MiwKKyAgJ1NBTVBMRVJfMkRfUkVDVF9BUkInOiAweDhCNjMsCisgICdTQU1QTEVS
XzJEX1JFQ1RfU0hBRE9XX0FSQic6IDB4OEI2NCwKKyAgJ09CSkVDVF9ERUxFVEVfU1RBVFVTX0FS
Qic6IDB4OEI4MCwKKyAgJ09CSkVDVF9DT01QSUxFX1NUQVRVU19BUkInOiAweDhCODEsCisgICdP
QkpFQ1RfTElOS19TVEFUVVNfQVJCJzogMHg4QjgyLAorICAnT0JKRUNUX1ZBTElEQVRFX1NUQVRV
U19BUkInOiAweDhCODMsCisgICdPQkpFQ1RfSU5GT19MT0dfTEVOR1RIX0FSQic6IDB4OEI4NCwK
KyAgJ09CSkVDVF9BVFRBQ0hFRF9PQkpFQ1RTX0FSQic6IDB4OEI4NSwKKyAgJ09CSkVDVF9BQ1RJ
VkVfVU5JRk9STVNfQVJCJzogMHg4Qjg2LAorICAnT0JKRUNUX0FDVElWRV9VTklGT1JNX01BWF9M
RU5HVEhfQVJCJzogMHg4Qjg3LAorICAnT0JKRUNUX1NIQURFUl9TT1VSQ0VfTEVOR1RIX0FSQic6
IDB4OEI4OCwKKyAgJ1NIQURJTkdfTEFOR1VBR0VfVkVSU0lPTl9BUkInOiAweDhCOEMsCisgICdU
RVhUVVJFX0NPTVBBUkVfTU9ERV9BUkInOiAweDg4NEMsCisgICdURVhUVVJFX0NPTVBBUkVfRlVO
Q19BUkInOiAweDg4NEQsCisgICdDT01QQVJFX1JfVE9fVEVYVFVSRV9BUkInOiAweDg4NEUsCisg
ICdURVhUVVJFX0NPTVBBUkVfRkFJTF9WQUxVRV9BUkInOiAweDgwQkYsCisgICdDTEFNUF9UT19C
T1JERVJfQVJCJzogMHg4MTJELAorICAnVEVYVFVSRV9CVUZGRVJfQVJCJzogMHg4QzJBLAorICAn
TUFYX1RFWFRVUkVfQlVGRkVSX1NJWkVfQVJCJzogMHg4QzJCLAorICAnVEVYVFVSRV9CSU5ESU5H
X0JVRkZFUl9BUkInOiAweDhDMkMsCisgICdURVhUVVJFX0JVRkZFUl9EQVRBX1NUT1JFX0JJTkRJ
TkdfQVJCJzogMHg4QzJELAorICAnVEVYVFVSRV9CVUZGRVJfRk9STUFUX0FSQic6IDB4OEMyRSwK
KyAgJ0NPTVBSRVNTRURfQUxQSEFfQVJCJzogMHg4NEU5LAorICAnQ09NUFJFU1NFRF9MVU1JTkFO
Q0VfQVJCJzogMHg4NEVBLAorICAnQ09NUFJFU1NFRF9MVU1JTkFOQ0VfQUxQSEFfQVJCJzogMHg4
NEVCLAorICAnQ09NUFJFU1NFRF9JTlRFTlNJVFlfQVJCJzogMHg4NEVDLAorICAnQ09NUFJFU1NF
RF9SR0JfQVJCJzogMHg4NEVELAorICAnQ09NUFJFU1NFRF9SR0JBX0FSQic6IDB4ODRFRSwKKyAg
J1RFWFRVUkVfQ09NUFJFU1NJT05fSElOVF9BUkInOiAweDg0RUYsCisgICdURVhUVVJFX0NPTVBS
RVNTRURfSU1BR0VfU0laRV9BUkInOiAweDg2QTAsCisgICdURVhUVVJFX0NPTVBSRVNTRURfQVJC
JzogMHg4NkExLAorICAnTlVNX0NPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTX0FSQic6IDB4ODZB
MiwKKyAgJ0NPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTX0FSQic6IDB4ODZBMywKKyAgJ0NPTVBS
RVNTRURfUkVEX1JHVEMxJzogMHg4REJCLAorICAnQ09NUFJFU1NFRF9TSUdORURfUkVEX1JHVEMx
JzogMHg4REJDLAorICAnQ09NUFJFU1NFRF9SR19SR1RDMic6IDB4OERCRCwKKyAgJ0NPTVBSRVNT
RURfU0lHTkVEX1JHX1JHVEMyJzogMHg4REJFLAorICAnTk9STUFMX01BUF9BUkInOiAweDg1MTEs
CisgICdSRUZMRUNUSU9OX01BUF9BUkInOiAweDg1MTIsCisgICdURVhUVVJFX0NVQkVfTUFQX0FS
Qic6IDB4ODUxMywKKyAgJ1RFWFRVUkVfQklORElOR19DVUJFX01BUF9BUkInOiAweDg1MTQsCisg
ICdURVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1hfQVJCJzogMHg4NTE1LAorICAnVEVYVFVSRV9D
VUJFX01BUF9ORUdBVElWRV9YX0FSQic6IDB4ODUxNiwKKyAgJ1RFWFRVUkVfQ1VCRV9NQVBfUE9T
SVRJVkVfWV9BUkInOiAweDg1MTcsCisgICdURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1lfQVJC
JzogMHg4NTE4LAorICAnVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9aX0FSQic6IDB4ODUxOSwK
KyAgJ1RFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWl9BUkInOiAweDg1MUEsCisgICdQUk9YWV9U
RVhUVVJFX0NVQkVfTUFQX0FSQic6IDB4ODUxQiwKKyAgJ01BWF9DVUJFX01BUF9URVhUVVJFX1NJ
WkVfQVJCJzogMHg4NTFDLAorICAnU1VCVFJBQ1RfQVJCJzogMHg4NEU3LAorICAnQ09NQklORV9B
UkInOiAweDg1NzAsCisgICdDT01CSU5FX1JHQl9BUkInOiAweDg1NzEsCisgICdDT01CSU5FX0FM
UEhBX0FSQic6IDB4ODU3MiwKKyAgJ1JHQl9TQ0FMRV9BUkInOiAweDg1NzMsCisgICdBRERfU0lH
TkVEX0FSQic6IDB4ODU3NCwKKyAgJ0lOVEVSUE9MQVRFX0FSQic6IDB4ODU3NSwKKyAgJ0NPTlNU
QU5UX0FSQic6IDB4ODU3NiwKKyAgJ1BSSU1BUllfQ09MT1JfQVJCJzogMHg4NTc3LAorICAnUFJF
VklPVVNfQVJCJzogMHg4NTc4LAorICAnU09VUkNFMF9SR0JfQVJCJzogMHg4NTgwLAorICAnU09V
UkNFMV9SR0JfQVJCJzogMHg4NTgxLAorICAnU09VUkNFMl9SR0JfQVJCJzogMHg4NTgyLAorICAn
U09VUkNFMF9BTFBIQV9BUkInOiAweDg1ODgsCisgICdTT1VSQ0UxX0FMUEhBX0FSQic6IDB4ODU4
OSwKKyAgJ1NPVVJDRTJfQUxQSEFfQVJCJzogMHg4NThBLAorICAnT1BFUkFORDBfUkdCX0FSQic6
IDB4ODU5MCwKKyAgJ09QRVJBTkQxX1JHQl9BUkInOiAweDg1OTEsCisgICdPUEVSQU5EMl9SR0Jf
QVJCJzogMHg4NTkyLAorICAnT1BFUkFORDBfQUxQSEFfQVJCJzogMHg4NTk4LAorICAnT1BFUkFO
RDFfQUxQSEFfQVJCJzogMHg4NTk5LAorICAnT1BFUkFORDJfQUxQSEFfQVJCJzogMHg4NTlBLAor
ICAnRE9UM19SR0JfQVJCJzogMHg4NkFFLAorICAnRE9UM19SR0JBX0FSQic6IDB4ODZBRiwKKyAg
J1JHQkEzMkZfQVJCJzogMHg4ODE0LAorICAnUkdCMzJGX0FSQic6IDB4ODgxNSwKKyAgJ0FMUEhB
MzJGX0FSQic6IDB4ODgxNiwKKyAgJ0lOVEVOU0lUWTMyRl9BUkInOiAweDg4MTcsCisgICdMVU1J
TkFOQ0UzMkZfQVJCJzogMHg4ODE4LAorICAnTFVNSU5BTkNFX0FMUEhBMzJGX0FSQic6IDB4ODgx
OSwKKyAgJ1JHQkExNkZfQVJCJzogMHg4ODFBLAorICAnUkdCMTZGX0FSQic6IDB4ODgxQiwKKyAg
J0FMUEhBMTZGX0FSQic6IDB4ODgxQywKKyAgJ0lOVEVOU0lUWTE2Rl9BUkInOiAweDg4MUQsCisg
ICdMVU1JTkFOQ0UxNkZfQVJCJzogMHg4ODFFLAorICAnTFVNSU5BTkNFX0FMUEhBMTZGX0FSQic6
IDB4ODgxRiwKKyAgJ1RFWFRVUkVfUkVEX1RZUEVfQVJCJzogMHg4QzEwLAorICAnVEVYVFVSRV9H
UkVFTl9UWVBFX0FSQic6IDB4OEMxMSwKKyAgJ1RFWFRVUkVfQkxVRV9UWVBFX0FSQic6IDB4OEMx
MiwKKyAgJ1RFWFRVUkVfQUxQSEFfVFlQRV9BUkInOiAweDhDMTMsCisgICdURVhUVVJFX0xVTUlO
QU5DRV9UWVBFX0FSQic6IDB4OEMxNCwKKyAgJ1RFWFRVUkVfSU5URU5TSVRZX1RZUEVfQVJCJzog
MHg4QzE1LAorICAnVEVYVFVSRV9ERVBUSF9UWVBFX0FSQic6IDB4OEMxNiwKKyAgJ1VOU0lHTkVE
X05PUk1BTElaRURfQVJCJzogMHg4QzE3LAorICAnTUlSUk9SRURfUkVQRUFUX0FSQic6IDB4ODM3
MCwKKyAgJ1RFWFRVUkVfUkVDVEFOR0xFX0FSQic6IDB4ODRGNSwKKyAgJ1RFWFRVUkVfQklORElO
R19SRUNUQU5HTEVfQVJCJzogMHg4NEY2LAorICAnUFJPWFlfVEVYVFVSRV9SRUNUQU5HTEVfQVJC
JzogMHg4NEY3LAorICAnTUFYX1JFQ1RBTkdMRV9URVhUVVJFX1NJWkVfQVJCJzogMHg4NEY4LAor
ICAnU0FNUExFUl8yRF9SRUNUX0FSQic6IDB4OEI2MywKKyAgJ1NBTVBMRVJfMkRfUkVDVF9TSEFE
T1dfQVJCJzogMHg4QjY0LAorICAnUkVEJzogMHgxOTAzLAorICAnUkcnOiAweDgyMjcsCisgICdS
R19JTlRFR0VSJzogMHg4MjI4LAorICAnUjgnOiAweDgyMjksCisgICdSMTYnOiAweDgyMkEsCisg
ICdSRzgnOiAweDgyMkIsCisgICdSRzE2JzogMHg4MjJDLAorICAnUjE2Ric6IDB4ODIyRCwKKyAg
J1IzMkYnOiAweDgyMkUsCisgICdSRzE2Ric6IDB4ODIyRiwKKyAgJ1JHMzJGJzogMHg4MjMwLAor
ICAnUjhJJzogMHg4MjMxLAorICAnUjhVSSc6IDB4ODIzMiwKKyAgJ1IxNkknOiAweDgyMzMsCisg
ICdSMTZVSSc6IDB4ODIzNCwKKyAgJ1IzMkknOiAweDgyMzUsCisgICdSMzJVSSc6IDB4ODIzNiwK
KyAgJ1JHOEknOiAweDgyMzcsCisgICdSRzhVSSc6IDB4ODIzOCwKKyAgJ1JHMTZJJzogMHg4MjM5
LAorICAnUkcxNlVJJzogMHg4MjNBLAorICAnUkczMkknOiAweDgyM0IsCisgICdSRzMyVUknOiAw
eDgyM0MsCisgICdUUkFOU1BPU0VfTU9ERUxWSUVXX01BVFJJWF9BUkInOiAweDg0RTMsCisgICdU
UkFOU1BPU0VfUFJPSkVDVElPTl9NQVRSSVhfQVJCJzogMHg4NEU0LAorICAnVFJBTlNQT1NFX1RF
WFRVUkVfTUFUUklYX0FSQic6IDB4ODRFNSwKKyAgJ1RSQU5TUE9TRV9DT0xPUl9NQVRSSVhfQVJC
JzogMHg4NEU2LAorICAnVkVSVEVYX0FSUkFZX0JJTkRJTkcnOiAweDg1QjUsCisgICdNT0RFTFZJ
RVcwX0FSQic6IDB4MTcwMCwKKyAgJ01PREVMVklFVzFfQVJCJzogMHg4NTBBLAorICAnTUFYX1ZF
UlRFWF9VTklUU19BUkInOiAweDg2QTQsCisgICdBQ1RJVkVfVkVSVEVYX1VOSVRTX0FSQic6IDB4
ODZBNSwKKyAgJ1dFSUdIVF9TVU1fVU5JVFlfQVJCJzogMHg4NkE2LAorICAnVkVSVEVYX0JMRU5E
X0FSQic6IDB4ODZBNywKKyAgJ0NVUlJFTlRfV0VJR0hUX0FSQic6IDB4ODZBOCwKKyAgJ1dFSUdI
VF9BUlJBWV9UWVBFX0FSQic6IDB4ODZBOSwKKyAgJ1dFSUdIVF9BUlJBWV9TVFJJREVfQVJCJzog
MHg4NkFBLAorICAnV0VJR0hUX0FSUkFZX1NJWkVfQVJCJzogMHg4NkFCLAorICAnV0VJR0hUX0FS
UkFZX1BPSU5URVJfQVJCJzogMHg4NkFDLAorICAnV0VJR0hUX0FSUkFZX0FSQic6IDB4ODZBRCwK
KyAgJ01PREVMVklFVzJfQVJCJzogMHg4NzIyLAorICAnTU9ERUxWSUVXM19BUkInOiAweDg3MjMs
CisgICdNT0RFTFZJRVc0X0FSQic6IDB4ODcyNCwKKyAgJ01PREVMVklFVzVfQVJCJzogMHg4NzI1
LAorICAnTU9ERUxWSUVXNl9BUkInOiAweDg3MjYsCisgICdNT0RFTFZJRVc3X0FSQic6IDB4ODcy
NywKKyAgJ01PREVMVklFVzhfQVJCJzogMHg4NzI4LAorICAnTU9ERUxWSUVXOV9BUkInOiAweDg3
MjksCisgICdNT0RFTFZJRVcxMF9BUkInOiAweDg3MkEsCisgICdNT0RFTFZJRVcxMV9BUkInOiAw
eDg3MkIsCisgICdNT0RFTFZJRVcxMl9BUkInOiAweDg3MkMsCisgICdNT0RFTFZJRVcxM19BUkIn
OiAweDg3MkQsCisgICdNT0RFTFZJRVcxNF9BUkInOiAweDg3MkUsCisgICdNT0RFTFZJRVcxNV9B
UkInOiAweDg3MkYsCisgICdNT0RFTFZJRVcxNl9BUkInOiAweDg3MzAsCisgICdNT0RFTFZJRVcx
N19BUkInOiAweDg3MzEsCisgICdNT0RFTFZJRVcxOF9BUkInOiAweDg3MzIsCisgICdNT0RFTFZJ
RVcxOV9BUkInOiAweDg3MzMsCisgICdNT0RFTFZJRVcyMF9BUkInOiAweDg3MzQsCisgICdNT0RF
TFZJRVcyMV9BUkInOiAweDg3MzUsCisgICdNT0RFTFZJRVcyMl9BUkInOiAweDg3MzYsCisgICdN
T0RFTFZJRVcyM19BUkInOiAweDg3MzcsCisgICdNT0RFTFZJRVcyNF9BUkInOiAweDg3MzgsCisg
ICdNT0RFTFZJRVcyNV9BUkInOiAweDg3MzksCisgICdNT0RFTFZJRVcyNl9BUkInOiAweDg3M0Es
CisgICdNT0RFTFZJRVcyN19BUkInOiAweDg3M0IsCisgICdNT0RFTFZJRVcyOF9BUkInOiAweDg3
M0MsCisgICdNT0RFTFZJRVcyOV9BUkInOiAweDg3M0QsCisgICdNT0RFTFZJRVczMF9BUkInOiAw
eDg3M0UsCisgICdNT0RFTFZJRVczMV9BUkInOiAweDg3M0YsCisgICdCVUZGRVJfU0laRV9BUkIn
OiAweDg3NjQsCisgICdCVUZGRVJfVVNBR0VfQVJCJzogMHg4NzY1LAorICAnQVJSQVlfQlVGRkVS
X0FSQic6IDB4ODg5MiwKKyAgJ0VMRU1FTlRfQVJSQVlfQlVGRkVSX0FSQic6IDB4ODg5MywKKyAg
J0FSUkFZX0JVRkZFUl9CSU5ESU5HX0FSQic6IDB4ODg5NCwKKyAgJ0VMRU1FTlRfQVJSQVlfQlVG
RkVSX0JJTkRJTkdfQVJCJzogMHg4ODk1LAorICAnVkVSVEVYX0FSUkFZX0JVRkZFUl9CSU5ESU5H
X0FSQic6IDB4ODg5NiwKKyAgJ05PUk1BTF9BUlJBWV9CVUZGRVJfQklORElOR19BUkInOiAweDg4
OTcsCisgICdDT0xPUl9BUlJBWV9CVUZGRVJfQklORElOR19BUkInOiAweDg4OTgsCisgICdJTkRF
WF9BUlJBWV9CVUZGRVJfQklORElOR19BUkInOiAweDg4OTksCisgICdURVhUVVJFX0NPT1JEX0FS
UkFZX0JVRkZFUl9CSU5ESU5HX0FSQic6IDB4ODg5QSwKKyAgJ0VER0VfRkxBR19BUlJBWV9CVUZG
RVJfQklORElOR19BUkInOiAweDg4OUIsCisgICdTRUNPTkRBUllfQ09MT1JfQVJSQVlfQlVGRkVS
X0JJTkRJTkdfQVJCJzogMHg4ODlDLAorICAnRk9HX0NPT1JESU5BVEVfQVJSQVlfQlVGRkVSX0JJ
TkRJTkdfQVJCJzogMHg4ODlELAorICAnV0VJR0hUX0FSUkFZX0JVRkZFUl9CSU5ESU5HX0FSQic6
IDB4ODg5RSwKKyAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJTkRJTkdfQVJCJzogMHg4
ODlGLAorICAnUkVBRF9PTkxZX0FSQic6IDB4ODhCOCwKKyAgJ1dSSVRFX09OTFlfQVJCJzogMHg4
OEI5LAorICAnUkVBRF9XUklURV9BUkInOiAweDg4QkEsCisgICdCVUZGRVJfQUNDRVNTX0FSQic6
IDB4ODhCQiwKKyAgJ0JVRkZFUl9NQVBQRURfQVJCJzogMHg4OEJDLAorICAnQlVGRkVSX01BUF9Q
T0lOVEVSX0FSQic6IDB4ODhCRCwKKyAgJ1NUUkVBTV9EUkFXX0FSQic6IDB4ODhFMCwKKyAgJ1NU
UkVBTV9SRUFEX0FSQic6IDB4ODhFMSwKKyAgJ1NUUkVBTV9DT1BZX0FSQic6IDB4ODhFMiwKKyAg
J1NUQVRJQ19EUkFXX0FSQic6IDB4ODhFNCwKKyAgJ1NUQVRJQ19SRUFEX0FSQic6IDB4ODhFNSwK
KyAgJ1NUQVRJQ19DT1BZX0FSQic6IDB4ODhFNiwKKyAgJ0RZTkFNSUNfRFJBV19BUkInOiAweDg4
RTgsCisgICdEWU5BTUlDX1JFQURfQVJCJzogMHg4OEU5LAorICAnRFlOQU1JQ19DT1BZX0FSQic6
IDB4ODhFQSwKKyAgJ0NPTE9SX1NVTV9BUkInOiAweDg0NTgsCisgICdWRVJURVhfUFJPR1JBTV9B
UkInOiAweDg2MjAsCisgICdWRVJURVhfQVRUUklCX0FSUkFZX0VOQUJMRURfQVJCJzogMHg4NjIy
LAorICAnVkVSVEVYX0FUVFJJQl9BUlJBWV9TSVpFX0FSQic6IDB4ODYyMywKKyAgJ1ZFUlRFWF9B
VFRSSUJfQVJSQVlfU1RSSURFX0FSQic6IDB4ODYyNCwKKyAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVlf
VFlQRV9BUkInOiAweDg2MjUsCisgICdDVVJSRU5UX1ZFUlRFWF9BVFRSSUJfQVJCJzogMHg4NjI2
LAorICAnUFJPR1JBTV9MRU5HVEhfQVJCJzogMHg4NjI3LAorICAnUFJPR1JBTV9TVFJJTkdfQVJC
JzogMHg4NjI4LAorICAnTUFYX1BST0dSQU1fTUFUUklYX1NUQUNLX0RFUFRIX0FSQic6IDB4ODYy
RSwKKyAgJ01BWF9QUk9HUkFNX01BVFJJQ0VTX0FSQic6IDB4ODYyRiwKKyAgJ0NVUlJFTlRfTUFU
UklYX1NUQUNLX0RFUFRIX0FSQic6IDB4ODY0MCwKKyAgJ0NVUlJFTlRfTUFUUklYX0FSQic6IDB4
ODY0MSwKKyAgJ1ZFUlRFWF9QUk9HUkFNX1BPSU5UX1NJWkVfQVJCJzogMHg4NjQyLAorICAnVkVS
VEVYX1BST0dSQU1fVFdPX1NJREVfQVJCJzogMHg4NjQzLAorICAnVkVSVEVYX0FUVFJJQl9BUlJB
WV9QT0lOVEVSX0FSQic6IDB4ODY0NSwKKyAgJ1BST0dSQU1fRVJST1JfUE9TSVRJT05fQVJCJzog
MHg4NjRCLAorICAnUFJPR1JBTV9CSU5ESU5HX0FSQic6IDB4ODY3NywKKyAgJ01BWF9WRVJURVhf
QVRUUklCU19BUkInOiAweDg4NjksCisgICdWRVJURVhfQVRUUklCX0FSUkFZX05PUk1BTElaRURf
QVJCJzogMHg4ODZBLAorICAnUFJPR1JBTV9FUlJPUl9TVFJJTkdfQVJCJzogMHg4ODc0LAorICAn
UFJPR1JBTV9GT1JNQVRfQVNDSUlfQVJCJzogMHg4ODc1LAorICAnUFJPR1JBTV9GT1JNQVRfQVJC
JzogMHg4ODc2LAorICAnUFJPR1JBTV9JTlNUUlVDVElPTlNfQVJCJzogMHg4OEEwLAorICAnTUFY
X1BST0dSQU1fSU5TVFJVQ1RJT05TX0FSQic6IDB4ODhBMSwKKyAgJ1BST0dSQU1fTkFUSVZFX0lO
U1RSVUNUSU9OU19BUkInOiAweDg4QTIsCisgICdNQVhfUFJPR1JBTV9OQVRJVkVfSU5TVFJVQ1RJ
T05TX0FSQic6IDB4ODhBMywKKyAgJ1BST0dSQU1fVEVNUE9SQVJJRVNfQVJCJzogMHg4OEE0LAor
ICAnTUFYX1BST0dSQU1fVEVNUE9SQVJJRVNfQVJCJzogMHg4OEE1LAorICAnUFJPR1JBTV9OQVRJ
VkVfVEVNUE9SQVJJRVNfQVJCJzogMHg4OEE2LAorICAnTUFYX1BST0dSQU1fTkFUSVZFX1RFTVBP
UkFSSUVTX0FSQic6IDB4ODhBNywKKyAgJ1BST0dSQU1fUEFSQU1FVEVSU19BUkInOiAweDg4QTgs
CisgICdNQVhfUFJPR1JBTV9QQVJBTUVURVJTX0FSQic6IDB4ODhBOSwKKyAgJ1BST0dSQU1fTkFU
SVZFX1BBUkFNRVRFUlNfQVJCJzogMHg4OEFBLAorICAnTUFYX1BST0dSQU1fTkFUSVZFX1BBUkFN
RVRFUlNfQVJCJzogMHg4OEFCLAorICAnUFJPR1JBTV9BVFRSSUJTX0FSQic6IDB4ODhBQywKKyAg
J01BWF9QUk9HUkFNX0FUVFJJQlNfQVJCJzogMHg4OEFELAorICAnUFJPR1JBTV9OQVRJVkVfQVRU
UklCU19BUkInOiAweDg4QUUsCisgICdNQVhfUFJPR1JBTV9OQVRJVkVfQVRUUklCU19BUkInOiAw
eDg4QUYsCisgICdQUk9HUkFNX0FERFJFU1NfUkVHSVNURVJTX0FSQic6IDB4ODhCMCwKKyAgJ01B
WF9QUk9HUkFNX0FERFJFU1NfUkVHSVNURVJTX0FSQic6IDB4ODhCMSwKKyAgJ1BST0dSQU1fTkFU
SVZFX0FERFJFU1NfUkVHSVNURVJTX0FSQic6IDB4ODhCMiwKKyAgJ01BWF9QUk9HUkFNX05BVElW
RV9BRERSRVNTX1JFR0lTVEVSU19BUkInOiAweDg4QjMsCisgICdNQVhfUFJPR1JBTV9MT0NBTF9Q
QVJBTUVURVJTX0FSQic6IDB4ODhCNCwKKyAgJ01BWF9QUk9HUkFNX0VOVl9QQVJBTUVURVJTX0FS
Qic6IDB4ODhCNSwKKyAgJ1BST0dSQU1fVU5ERVJfTkFUSVZFX0xJTUlUU19BUkInOiAweDg4QjYs
CisgICdUUkFOU1BPU0VfQ1VSUkVOVF9NQVRSSVhfQVJCJzogMHg4OEI3LAorICAnTUFUUklYMF9B
UkInOiAweDg4QzAsCisgICdNQVRSSVgxX0FSQic6IDB4ODhDMSwKKyAgJ01BVFJJWDJfQVJCJzog
MHg4OEMyLAorICAnTUFUUklYM19BUkInOiAweDg4QzMsCisgICdNQVRSSVg0X0FSQic6IDB4ODhD
NCwKKyAgJ01BVFJJWDVfQVJCJzogMHg4OEM1LAorICAnTUFUUklYNl9BUkInOiAweDg4QzYsCisg
ICdNQVRSSVg3X0FSQic6IDB4ODhDNywKKyAgJ01BVFJJWDhfQVJCJzogMHg4OEM4LAorICAnTUFU
UklYOV9BUkInOiAweDg4QzksCisgICdNQVRSSVgxMF9BUkInOiAweDg4Q0EsCisgICdNQVRSSVgx
MV9BUkInOiAweDg4Q0IsCisgICdNQVRSSVgxMl9BUkInOiAweDg4Q0MsCisgICdNQVRSSVgxM19B
UkInOiAweDg4Q0QsCisgICdNQVRSSVgxNF9BUkInOiAweDg4Q0UsCisgICdNQVRSSVgxNV9BUkIn
OiAweDg4Q0YsCisgICdNQVRSSVgxNl9BUkInOiAweDg4RDAsCisgICdNQVRSSVgxN19BUkInOiAw
eDg4RDEsCisgICdNQVRSSVgxOF9BUkInOiAweDg4RDIsCisgICdNQVRSSVgxOV9BUkInOiAweDg4
RDMsCisgICdNQVRSSVgyMF9BUkInOiAweDg4RDQsCisgICdNQVRSSVgyMV9BUkInOiAweDg4RDUs
CisgICdNQVRSSVgyMl9BUkInOiAweDg4RDYsCisgICdNQVRSSVgyM19BUkInOiAweDg4RDcsCisg
ICdNQVRSSVgyNF9BUkInOiAweDg4RDgsCisgICdNQVRSSVgyNV9BUkInOiAweDg4RDksCisgICdN
QVRSSVgyNl9BUkInOiAweDg4REEsCisgICdNQVRSSVgyN19BUkInOiAweDg4REIsCisgICdNQVRS
SVgyOF9BUkInOiAweDg4REMsCisgICdNQVRSSVgyOV9BUkInOiAweDg4REQsCisgICdNQVRSSVgz
MF9BUkInOiAweDg4REUsCisgICdNQVRSSVgzMV9BUkInOiAweDg4REYsCisgICdWRVJURVhfU0hB
REVSX0FSQic6IDB4OEIzMSwKKyAgJ01BWF9WRVJURVhfVU5JRk9STV9DT01QT05FTlRTX0FSQic6
IDB4OEI0QSwKKyAgJ01BWF9WQVJZSU5HX0ZMT0FUU19BUkInOiAweDhCNEIsCisgICdNQVhfVkVS
VEVYX1RFWFRVUkVfSU1BR0VfVU5JVFNfQVJCJzogMHg4QjRDLAorICAnTUFYX0NPTUJJTkVEX1RF
WFRVUkVfSU1BR0VfVU5JVFNfQVJCJzogMHg4QjRELAorICAnT0JKRUNUX0FDVElWRV9BVFRSSUJV
VEVTX0FSQic6IDB4OEI4OSwKKyAgJ09CSkVDVF9BQ1RJVkVfQVRUUklCVVRFX01BWF9MRU5HVEhf
QVJCJzogMHg4QjhBLAorICAnVEVYVFVSRV9QT0lOVF9NT0RFX0FUSVgnOiAweDYwQjAsCisgICdU
RVhUVVJFX1BPSU5UX09ORV9DT09SRF9BVElYJzogMHg2MEIxLAorICAnVEVYVFVSRV9QT0lOVF9T
UFJJVEVfQVRJWCc6IDB4NjBCMiwKKyAgJ1BPSU5UX1NQUklURV9DVUxMX01PREVfQVRJWCc6IDB4
NjBCMywKKyAgJ1BPSU5UX1NQUklURV9DVUxMX0NFTlRFUl9BVElYJzogMHg2MEI0LAorICAnUE9J
TlRfU1BSSVRFX0NVTExfQ0xJUF9BVElYJzogMHg2MEI1LAorICAnTU9EVUxBVEVfQUREX0FUSVgn
OiAweDg3NDQsCisgICdNT0RVTEFURV9TSUdORURfQUREX0FUSVgnOiAweDg3NDUsCisgICdNT0RV
TEFURV9TVUJUUkFDVF9BVElYJzogMHg4NzQ2LAorICAnU0VDT05EQVJZX0NPTE9SX0FUSVgnOiAw
eDg3NDcsCisgICdURVhUVVJFX09VVFBVVF9SR0JfQVRJWCc6IDB4ODc0OCwKKyAgJ1RFWFRVUkVf
T1VUUFVUX0FMUEhBX0FUSVgnOiAweDg3NDksCisgICdPVVRQVVRfUE9JTlRfU0laRV9BVElYJzog
MHg2MTBFLAorICAnTUFYX0RSQVdfQlVGRkVSU19BVEknOiAweDg4MjQsCisgICdEUkFXX0JVRkZF
UjBfQVRJJzogMHg4ODI1LAorICAnRFJBV19CVUZGRVIxX0FUSSc6IDB4ODgyNiwKKyAgJ0RSQVdf
QlVGRkVSMl9BVEknOiAweDg4MjcsCisgICdEUkFXX0JVRkZFUjNfQVRJJzogMHg4ODI4LAorICAn
RFJBV19CVUZGRVI0X0FUSSc6IDB4ODgyOSwKKyAgJ0RSQVdfQlVGRkVSNV9BVEknOiAweDg4MkEs
CisgICdEUkFXX0JVRkZFUjZfQVRJJzogMHg4ODJCLAorICAnRFJBV19CVUZGRVI3X0FUSSc6IDB4
ODgyQywKKyAgJ0RSQVdfQlVGRkVSOF9BVEknOiAweDg4MkQsCisgICdEUkFXX0JVRkZFUjlfQVRJ
JzogMHg4ODJFLAorICAnRFJBV19CVUZGRVIxMF9BVEknOiAweDg4MkYsCisgICdEUkFXX0JVRkZF
UjExX0FUSSc6IDB4ODgzMCwKKyAgJ0RSQVdfQlVGRkVSMTJfQVRJJzogMHg4ODMxLAorICAnRFJB
V19CVUZGRVIxM19BVEknOiAweDg4MzIsCisgICdEUkFXX0JVRkZFUjE0X0FUSSc6IDB4ODgzMywK
KyAgJ0RSQVdfQlVGRkVSMTVfQVRJJzogMHg4ODM0LAorICAnRUxFTUVOVF9BUlJBWV9BVEknOiAw
eDg3NjgsCisgICdFTEVNRU5UX0FSUkFZX1RZUEVfQVRJJzogMHg4NzY5LAorICAnRUxFTUVOVF9B
UlJBWV9QT0lOVEVSX0FUSSc6IDB4ODc2QSwKKyAgJ0JVTVBfUk9UX01BVFJJWF9BVEknOiAweDg3
NzUsCisgICdCVU1QX1JPVF9NQVRSSVhfU0laRV9BVEknOiAweDg3NzYsCisgICdCVU1QX05VTV9U
RVhfVU5JVFNfQVRJJzogMHg4Nzc3LAorICAnQlVNUF9URVhfVU5JVFNfQVRJJzogMHg4Nzc4LAor
ICAnRFVEVl9BVEknOiAweDg3NzksCisgICdEVThEVjhfQVRJJzogMHg4NzdBLAorICAnQlVNUF9F
TlZNQVBfQVRJJzogMHg4NzdCLAorICAnQlVNUF9UQVJHRVRfQVRJJzogMHg4NzdDLAorICAnUkVE
X0JJVF9BVEknOiAweDAwMDAwMDAxLAorICAnMlhfQklUX0FUSSc6IDB4MDAwMDAwMDEsCisgICc0
WF9CSVRfQVRJJzogMHgwMDAwMDAwMiwKKyAgJ0dSRUVOX0JJVF9BVEknOiAweDAwMDAwMDAyLAor
ICAnQ09NUF9CSVRfQVRJJzogMHgwMDAwMDAwMiwKKyAgJ0JMVUVfQklUX0FUSSc6IDB4MDAwMDAw
MDQsCisgICc4WF9CSVRfQVRJJzogMHgwMDAwMDAwNCwKKyAgJ05FR0FURV9CSVRfQVRJJzogMHgw
MDAwMDAwNCwKKyAgJ0JJQVNfQklUX0FUSSc6IDB4MDAwMDAwMDgsCisgICdIQUxGX0JJVF9BVEkn
OiAweDAwMDAwMDA4LAorICAnUVVBUlRFUl9CSVRfQVRJJzogMHgwMDAwMDAxMCwKKyAgJ0VJR0hU
SF9CSVRfQVRJJzogMHgwMDAwMDAyMCwKKyAgJ1NBVFVSQVRFX0JJVF9BVEknOiAweDAwMDAwMDQw
LAorICAnRlJBR01FTlRfU0hBREVSX0FUSSc6IDB4ODkyMCwKKyAgJ1JFR18wX0FUSSc6IDB4ODky
MSwKKyAgJ1JFR18xX0FUSSc6IDB4ODkyMiwKKyAgJ1JFR18yX0FUSSc6IDB4ODkyMywKKyAgJ1JF
R18zX0FUSSc6IDB4ODkyNCwKKyAgJ1JFR180X0FUSSc6IDB4ODkyNSwKKyAgJ1JFR181X0FUSSc6
IDB4ODkyNiwKKyAgJ0NPTl8wX0FUSSc6IDB4ODk0MSwKKyAgJ0NPTl8xX0FUSSc6IDB4ODk0MiwK
KyAgJ0NPTl8yX0FUSSc6IDB4ODk0MywKKyAgJ0NPTl8zX0FUSSc6IDB4ODk0NCwKKyAgJ0NPTl80
X0FUSSc6IDB4ODk0NSwKKyAgJ0NPTl81X0FUSSc6IDB4ODk0NiwKKyAgJ0NPTl82X0FUSSc6IDB4
ODk0NywKKyAgJ0NPTl83X0FUSSc6IDB4ODk0OCwKKyAgJ01PVl9BVEknOiAweDg5NjEsCisgICdB
RERfQVRJJzogMHg4OTYzLAorICAnTVVMX0FUSSc6IDB4ODk2NCwKKyAgJ1NVQl9BVEknOiAweDg5
NjUsCisgICdET1QzX0FUSSc6IDB4ODk2NiwKKyAgJ0RPVDRfQVRJJzogMHg4OTY3LAorICAnTUFE
X0FUSSc6IDB4ODk2OCwKKyAgJ0xFUlBfQVRJJzogMHg4OTY5LAorICAnQ05EX0FUSSc6IDB4ODk2
QSwKKyAgJ0NORDBfQVRJJzogMHg4OTZCLAorICAnRE9UMl9BRERfQVRJJzogMHg4OTZDLAorICAn
U0VDT05EQVJZX0lOVEVSUE9MQVRPUl9BVEknOiAweDg5NkQsCisgICdOVU1fRlJBR01FTlRfUkVH
SVNURVJTX0FUSSc6IDB4ODk2RSwKKyAgJ05VTV9GUkFHTUVOVF9DT05TVEFOVFNfQVRJJzogMHg4
OTZGLAorICAnTlVNX1BBU1NFU19BVEknOiAweDg5NzAsCisgICdOVU1fSU5TVFJVQ1RJT05TX1BF
Ul9QQVNTX0FUSSc6IDB4ODk3MSwKKyAgJ05VTV9JTlNUUlVDVElPTlNfVE9UQUxfQVRJJzogMHg4
OTcyLAorICAnTlVNX0lOUFVUX0lOVEVSUE9MQVRPUl9DT01QT05FTlRTX0FUSSc6IDB4ODk3MywK
KyAgJ05VTV9MT09QQkFDS19DT01QT05FTlRTX0FUSSc6IDB4ODk3NCwKKyAgJ0NPTE9SX0FMUEhB
X1BBSVJJTkdfQVRJJzogMHg4OTc1LAorICAnU1dJWlpMRV9TVFJfQVRJJzogMHg4OTc2LAorICAn
U1dJWlpMRV9TVFFfQVRJJzogMHg4OTc3LAorICAnU1dJWlpMRV9TVFJfRFJfQVRJJzogMHg4OTc4
LAorICAnU1dJWlpMRV9TVFFfRFFfQVRJJzogMHg4OTc5LAorICAnU1dJWlpMRV9TVFJRX0FUSSc6
IDB4ODk3QSwKKyAgJ1NXSVpaTEVfU1RSUV9EUV9BVEknOiAweDg5N0IsCisgICdQTl9UUklBTkdM
RVNfQVRJJzogMHg4N0YwLAorICAnTUFYX1BOX1RSSUFOR0xFU19URVNTRUxBVElPTl9MRVZFTF9B
VEknOiAweDg3RjEsCisgICdQTl9UUklBTkdMRVNfUE9JTlRfTU9ERV9BVEknOiAweDg3RjIsCisg
ICdQTl9UUklBTkdMRVNfTk9STUFMX01PREVfQVRJJzogMHg4N0YzLAorICAnUE5fVFJJQU5HTEVT
X1RFU1NFTEFUSU9OX0xFVkVMX0FUSSc6IDB4ODdGNCwKKyAgJ1BOX1RSSUFOR0xFU19QT0lOVF9N
T0RFX0xJTkVBUl9BVEknOiAweDg3RjUsCisgICdQTl9UUklBTkdMRVNfUE9JTlRfTU9ERV9DVUJJ
Q19BVEknOiAweDg3RjYsCisgICdQTl9UUklBTkdMRVNfTk9STUFMX01PREVfTElORUFSX0FUSSc6
IDB4ODdGNywKKyAgJ1BOX1RSSUFOR0xFU19OT1JNQUxfTU9ERV9RVUFEUkFUSUNfQVRJJzogMHg4
N0Y4LAorICAnU1RFTkNJTF9CQUNLX0ZVTkNfQVRJJzogMHg4ODAwLAorICAnU1RFTkNJTF9CQUNL
X0ZBSUxfQVRJJzogMHg4ODAxLAorICAnU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfRkFJTF9BVEkn
OiAweDg4MDIsCisgICdTVEVOQ0lMX0JBQ0tfUEFTU19ERVBUSF9QQVNTX0FUSSc6IDB4ODgwMywK
KyAgJ1RFWFRfRlJBR01FTlRfU0hBREVSX0FUSSc6IDB4ODIwMCwKKyAgJ0NPTVBSRVNTRURfTFVN
SU5BTkNFX0FMUEhBXzNEQ19BVEknOiAweDg4MzcsCisgICdNT0RVTEFURV9BRERfQVRJJzogMHg4
NzQ0LAorICAnTU9EVUxBVEVfU0lHTkVEX0FERF9BVEknOiAweDg3NDUsCisgICdNT0RVTEFURV9T
VUJUUkFDVF9BVEknOiAweDg3NDYsCisgICdSR0JBX0ZMT0FUMzJfQVRJJzogMHg4ODE0LAorICAn
UkdCX0ZMT0FUMzJfQVRJJzogMHg4ODE1LAorICAnQUxQSEFfRkxPQVQzMl9BVEknOiAweDg4MTYs
CisgICdJTlRFTlNJVFlfRkxPQVQzMl9BVEknOiAweDg4MTcsCisgICdMVU1JTkFOQ0VfRkxPQVQz
Ml9BVEknOiAweDg4MTgsCisgICdMVU1JTkFOQ0VfQUxQSEFfRkxPQVQzMl9BVEknOiAweDg4MTks
CisgICdSR0JBX0ZMT0FUMTZfQVRJJzogMHg4ODFBLAorICAnUkdCX0ZMT0FUMTZfQVRJJzogMHg4
ODFCLAorICAnQUxQSEFfRkxPQVQxNl9BVEknOiAweDg4MUMsCisgICdJTlRFTlNJVFlfRkxPQVQx
Nl9BVEknOiAweDg4MUQsCisgICdMVU1JTkFOQ0VfRkxPQVQxNl9BVEknOiAweDg4MUUsCisgICdM
VU1JTkFOQ0VfQUxQSEFfRkxPQVQxNl9BVEknOiAweDg4MUYsCisgICdNSVJST1JfQ0xBTVBfQVRJ
JzogMHg4NzQyLAorICAnTUlSUk9SX0NMQU1QX1RPX0VER0VfQVRJJzogMHg4NzQzLAorICAnU1RB
VElDX0FUSSc6IDB4ODc2MCwKKyAgJ0RZTkFNSUNfQVRJJzogMHg4NzYxLAorICAnUFJFU0VSVkVf
QVRJJzogMHg4NzYyLAorICAnRElTQ0FSRF9BVEknOiAweDg3NjMsCisgICdPQkpFQ1RfQlVGRkVS
X1NJWkVfQVRJJzogMHg4NzY0LAorICAnT0JKRUNUX0JVRkZFUl9VU0FHRV9BVEknOiAweDg3NjUs
CisgICdBUlJBWV9PQkpFQ1RfQlVGRkVSX0FUSSc6IDB4ODc2NiwKKyAgJ0FSUkFZX09CSkVDVF9P
RkZTRVRfQVRJJzogMHg4NzY3LAorICAnTUFYX1ZFUlRFWF9TVFJFQU1TX0FUSSc6IDB4ODc2QiwK
KyAgJ1ZFUlRFWF9TT1VSQ0VfQVRJJzogMHg4NzZDLAorICAnVkVSVEVYX1NUUkVBTTBfQVRJJzog
MHg4NzZELAorICAnVkVSVEVYX1NUUkVBTTFfQVRJJzogMHg4NzZFLAorICAnVkVSVEVYX1NUUkVB
TTJfQVRJJzogMHg4NzZGLAorICAnVkVSVEVYX1NUUkVBTTNfQVRJJzogMHg4NzcwLAorICAnVkVS
VEVYX1NUUkVBTTRfQVRJJzogMHg4NzcxLAorICAnVkVSVEVYX1NUUkVBTTVfQVRJJzogMHg4Nzcy
LAorICAnVkVSVEVYX1NUUkVBTTZfQVRJJzogMHg4NzczLAorICAnVkVSVEVYX1NUUkVBTTdfQVRJ
JzogMHg4Nzc0LAorICAnNDIyX0VYVCc6IDB4ODBDQywKKyAgJzQyMl9SRVZfRVhUJzogMHg4MENE
LAorICAnNDIyX0FWRVJBR0VfRVhUJzogMHg4MENFLAorICAnNDIyX1JFVl9BVkVSQUdFX0VYVCc6
IDB4ODBDRiwKKyAgJ0NHX1ZFUlRFWF9TSEFERVJfRVhUJzogMHg4OTBFLAorICAnQ0dfRlJBR01F
TlRfU0hBREVSX0VYVCc6IDB4ODkwRiwKKyAgJ0FCR1JfRVhUJzogMHg4MDAwLAorICAnQkdSX0VY
VCc6IDB4ODBFMCwKKyAgJ0JHUkFfRVhUJzogMHg4MEUxLAorICAnTUFYX1ZFUlRFWF9CSU5EQUJM
RV9VTklGT1JNU19FWFQnOiAweDhERTIsCisgICdNQVhfRlJBR01FTlRfQklOREFCTEVfVU5JRk9S
TVNfRVhUJzogMHg4REUzLAorICAnTUFYX0dFT01FVFJZX0JJTkRBQkxFX1VOSUZPUk1TX0VYVCc6
IDB4OERFNCwKKyAgJ01BWF9CSU5EQUJMRV9VTklGT1JNX1NJWkVfRVhUJzogMHg4REVELAorICAn
VU5JRk9STV9CVUZGRVJfRVhUJzogMHg4REVFLAorICAnVU5JRk9STV9CVUZGRVJfQklORElOR19F
WFQnOiAweDhERUYsCisgICdDT05TVEFOVF9DT0xPUl9FWFQnOiAweDgwMDEsCisgICdPTkVfTUlO
VVNfQ09OU1RBTlRfQ09MT1JfRVhUJzogMHg4MDAyLAorICAnQ09OU1RBTlRfQUxQSEFfRVhUJzog
MHg4MDAzLAorICAnT05FX01JTlVTX0NPTlNUQU5UX0FMUEhBX0VYVCc6IDB4ODAwNCwKKyAgJ0JM
RU5EX0NPTE9SX0VYVCc6IDB4ODAwNSwKKyAgJ0JMRU5EX0VRVUFUSU9OX1JHQl9FWFQnOiAweDgw
MDksCisgICdCTEVORF9FUVVBVElPTl9BTFBIQV9FWFQnOiAweDg4M0QsCisgICdCTEVORF9EU1Rf
UkdCX0VYVCc6IDB4ODBDOCwKKyAgJ0JMRU5EX1NSQ19SR0JfRVhUJzogMHg4MEM5LAorICAnQkxF
TkRfRFNUX0FMUEhBX0VYVCc6IDB4ODBDQSwKKyAgJ0JMRU5EX1NSQ19BTFBIQV9FWFQnOiAweDgw
Q0IsCisgICdGVU5DX0FERF9FWFQnOiAweDgwMDYsCisgICdNSU5fRVhUJzogMHg4MDA3LAorICAn
TUFYX0VYVCc6IDB4ODAwOCwKKyAgJ0JMRU5EX0VRVUFUSU9OX0VYVCc6IDB4ODAwOSwKKyAgJ0ZV
TkNfU1VCVFJBQ1RfRVhUJzogMHg4MDBBLAorICAnRlVOQ19SRVZFUlNFX1NVQlRSQUNUX0VYVCc6
IDB4ODAwQiwKKyAgJ0NMSVBfVk9MVU1FX0NMSVBQSU5HX0hJTlRfRVhUJzogMHg4MEYwLAorICAn
Q01ZS19FWFQnOiAweDgwMEMsCisgICdDTVlLQV9FWFQnOiAweDgwMEQsCisgICdQQUNLX0NNWUtf
SElOVF9FWFQnOiAweDgwMEUsCisgICdVTlBBQ0tfQ01ZS19ISU5UX0VYVCc6IDB4ODAwRiwKKyAg
J0FSUkFZX0VMRU1FTlRfTE9DS19GSVJTVF9FWFQnOiAweDgxQTgsCisgICdBUlJBWV9FTEVNRU5U
X0xPQ0tfQ09VTlRfRVhUJzogMHg4MUE5LAorICAnQ09OVk9MVVRJT05fMURfRVhUJzogMHg4MDEw
LAorICAnQ09OVk9MVVRJT05fMkRfRVhUJzogMHg4MDExLAorICAnU0VQQVJBQkxFXzJEX0VYVCc6
IDB4ODAxMiwKKyAgJ0NPTlZPTFVUSU9OX0JPUkRFUl9NT0RFX0VYVCc6IDB4ODAxMywKKyAgJ0NP
TlZPTFVUSU9OX0ZJTFRFUl9TQ0FMRV9FWFQnOiAweDgwMTQsCisgICdDT05WT0xVVElPTl9GSUxU
RVJfQklBU19FWFQnOiAweDgwMTUsCisgICdSRURVQ0VfRVhUJzogMHg4MDE2LAorICAnQ09OVk9M
VVRJT05fRk9STUFUX0VYVCc6IDB4ODAxNywKKyAgJ0NPTlZPTFVUSU9OX1dJRFRIX0VYVCc6IDB4
ODAxOCwKKyAgJ0NPTlZPTFVUSU9OX0hFSUdIVF9FWFQnOiAweDgwMTksCisgICdNQVhfQ09OVk9M
VVRJT05fV0lEVEhfRVhUJzogMHg4MDFBLAorICAnTUFYX0NPTlZPTFVUSU9OX0hFSUdIVF9FWFQn
OiAweDgwMUIsCisgICdQT1NUX0NPTlZPTFVUSU9OX1JFRF9TQ0FMRV9FWFQnOiAweDgwMUMsCisg
ICdQT1NUX0NPTlZPTFVUSU9OX0dSRUVOX1NDQUxFX0VYVCc6IDB4ODAxRCwKKyAgJ1BPU1RfQ09O
Vk9MVVRJT05fQkxVRV9TQ0FMRV9FWFQnOiAweDgwMUUsCisgICdQT1NUX0NPTlZPTFVUSU9OX0FM
UEhBX1NDQUxFX0VYVCc6IDB4ODAxRiwKKyAgJ1BPU1RfQ09OVk9MVVRJT05fUkVEX0JJQVNfRVhU
JzogMHg4MDIwLAorICAnUE9TVF9DT05WT0xVVElPTl9HUkVFTl9CSUFTX0VYVCc6IDB4ODAyMSwK
KyAgJ1BPU1RfQ09OVk9MVVRJT05fQkxVRV9CSUFTX0VYVCc6IDB4ODAyMiwKKyAgJ1BPU1RfQ09O
Vk9MVVRJT05fQUxQSEFfQklBU19FWFQnOiAweDgwMjMsCisgICdUQU5HRU5UX0FSUkFZX0VYVCc6
IDB4ODQzOSwKKyAgJ0JJTk9STUFMX0FSUkFZX0VYVCc6IDB4ODQzQSwKKyAgJ0NVUlJFTlRfVEFO
R0VOVF9FWFQnOiAweDg0M0IsCisgICdDVVJSRU5UX0JJTk9STUFMX0VYVCc6IDB4ODQzQywKKyAg
J1RBTkdFTlRfQVJSQVlfVFlQRV9FWFQnOiAweDg0M0UsCisgICdUQU5HRU5UX0FSUkFZX1NUUklE
RV9FWFQnOiAweDg0M0YsCisgICdCSU5PUk1BTF9BUlJBWV9UWVBFX0VYVCc6IDB4ODQ0MCwKKyAg
J0JJTk9STUFMX0FSUkFZX1NUUklERV9FWFQnOiAweDg0NDEsCisgICdUQU5HRU5UX0FSUkFZX1BP
SU5URVJfRVhUJzogMHg4NDQyLAorICAnQklOT1JNQUxfQVJSQVlfUE9JTlRFUl9FWFQnOiAweDg0
NDMsCisgICdNQVAxX1RBTkdFTlRfRVhUJzogMHg4NDQ0LAorICAnTUFQMl9UQU5HRU5UX0VYVCc6
IDB4ODQ0NSwKKyAgJ01BUDFfQklOT1JNQUxfRVhUJzogMHg4NDQ2LAorICAnTUFQMl9CSU5PUk1B
TF9FWFQnOiAweDg0NDcsCisgICdERVBUSF9CT1VORFNfVEVTVF9FWFQnOiAweDg4OTAsCisgICdE
RVBUSF9CT1VORFNfRVhUJzogMHg4ODkxLAorICAnUFJPR1JBTV9NQVRSSVhfRVhUJzogMHg4RTJE
LAorICAnVFJBTlNQT1NFX1BST0dSQU1fTUFUUklYX0VYVCc6IDB4OEUyRSwKKyAgJ1BST0dSQU1f
TUFUUklYX1NUQUNLX0RFUFRIX0VYVCc6IDB4OEUyRiwKKyAgJ01BWF9FTEVNRU5UU19WRVJUSUNF
Uyc6IDB4ODBFOCwKKyAgJ01BWF9FTEVNRU5UU19JTkRJQ0VTJzogMHg4MEU5LAorICAnRk9HX0NP
T1JESU5BVEVfU09VUkNFX0VYVCc6IDB4ODQ1MCwKKyAgJ0ZPR19DT09SRElOQVRFX0VYVCc6IDB4
ODQ1MSwKKyAgJ0ZSQUdNRU5UX0RFUFRIX0VYVCc6IDB4ODQ1MiwKKyAgJ0NVUlJFTlRfRk9HX0NP
T1JESU5BVEVfRVhUJzogMHg4NDUzLAorICAnRk9HX0NPT1JESU5BVEVfQVJSQVlfVFlQRV9FWFQn
OiAweDg0NTQsCisgICdGT0dfQ09PUkRJTkFURV9BUlJBWV9TVFJJREVfRVhUJzogMHg4NDU1LAor
ICAnRk9HX0NPT1JESU5BVEVfQVJSQVlfUE9JTlRFUl9FWFQnOiAweDg0NTYsCisgICdGT0dfQ09P
UkRJTkFURV9BUlJBWV9FWFQnOiAweDg0NTcsCisgICdGUkFHTUVOVF9MSUdIVElOR19FWFQnOiAw
eDg0MDAsCisgICdGUkFHTUVOVF9DT0xPUl9NQVRFUklBTF9FWFQnOiAweDg0MDEsCisgICdGUkFH
TUVOVF9DT0xPUl9NQVRFUklBTF9GQUNFX0VYVCc6IDB4ODQwMiwKKyAgJ0ZSQUdNRU5UX0NPTE9S
X01BVEVSSUFMX1BBUkFNRVRFUl9FWFQnOiAweDg0MDMsCisgICdNQVhfRlJBR01FTlRfTElHSFRT
X0VYVCc6IDB4ODQwNCwKKyAgJ01BWF9BQ1RJVkVfTElHSFRTX0VYVCc6IDB4ODQwNSwKKyAgJ0NV
UlJFTlRfUkFTVEVSX05PUk1BTF9FWFQnOiAweDg0MDYsCisgICdMSUdIVF9FTlZfTU9ERV9FWFQn
OiAweDg0MDcsCisgICdGUkFHTUVOVF9MSUdIVF9NT0RFTF9MT0NBTF9WSUVXRVJfRVhUJzogMHg4
NDA4LAorICAnRlJBR01FTlRfTElHSFRfTU9ERUxfVFdPX1NJREVfRVhUJzogMHg4NDA5LAorICAn
RlJBR01FTlRfTElHSFRfTU9ERUxfQU1CSUVOVF9FWFQnOiAweDg0MEEsCisgICdGUkFHTUVOVF9M
SUdIVF9NT0RFTF9OT1JNQUxfSU5URVJQT0xBVElPTl9FWFQnOiAweDg0MEIsCisgICdGUkFHTUVO
VF9MSUdIVDBfRVhUJzogMHg4NDBDLAorICAnRlJBR01FTlRfTElHSFQ3X0VYVCc6IDB4ODQxMywK
KyAgJ0RSQVdfRlJBTUVCVUZGRVJfQklORElOR19FWFQnOiAweDhDQTYsCisgICdSRUFEX0ZSQU1F
QlVGRkVSX0VYVCc6IDB4OENBOCwKKyAgJ0RSQVdfRlJBTUVCVUZGRVJfRVhUJzogMHg4Q0E5LAor
ICAnUkVBRF9GUkFNRUJVRkZFUl9CSU5ESU5HX0VYVCc6IDB4OENBQSwKKyAgJ1JFTkRFUkJVRkZF
Ul9TQU1QTEVTX0VYVCc6IDB4OENBQiwKKyAgJ0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTVVMVElT
QU1QTEVfRVhUJzogMHg4RDU2LAorICAnTUFYX1NBTVBMRVNfRVhUJzogMHg4RDU3LAorICAnSU5W
QUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT05fRVhUJzogMHgwNTA2LAorICAnTUFYX1JFTkRFUkJV
RkZFUl9TSVpFX0VYVCc6IDB4ODRFOCwKKyAgJ0ZSQU1FQlVGRkVSX0JJTkRJTkdfRVhUJzogMHg4
Q0E2LAorICAnUkVOREVSQlVGRkVSX0JJTkRJTkdfRVhUJzogMHg4Q0E3LAorICAnRlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRV9FWFQnOiAweDhDRDAsCisgICdGUkFNRUJVRkZFUl9B
VFRBQ0hNRU5UX09CSkVDVF9OQU1FX0VYVCc6IDB4OENEMSwKKyAgJ0ZSQU1FQlVGRkVSX0FUVEFD
SE1FTlRfVEVYVFVSRV9MRVZFTF9FWFQnOiAweDhDRDIsCisgICdGUkFNRUJVRkZFUl9BVFRBQ0hN
RU5UX1RFWFRVUkVfQ1VCRV9NQVBfRkFDRV9FWFQnOiAweDhDRDMsCisgICdGUkFNRUJVRkZFUl9B
VFRBQ0hNRU5UX1RFWFRVUkVfM0RfWk9GRlNFVF9FWFQnOiAweDhDRDQsCisgICdGUkFNRUJVRkZF
Ul9DT01QTEVURV9FWFQnOiAweDhDRDUsCisgICdGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFD
SE1FTlRfRVhUJzogMHg4Q0Q2LAorICAnRlJBTUVCVUZGRVJfSU5DT01QTEVURV9NSVNTSU5HX0FU
VEFDSE1FTlRfRVhUJzogMHg4Q0Q3LAorICAnRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJ
T05TX0VYVCc6IDB4OENEOSwKKyAgJ0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRk9STUFUU19FWFQn
OiAweDhDREEsCisgICdGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RSQVdfQlVGRkVSX0VYVCc6IDB4
OENEQiwKKyAgJ0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfUkVBRF9CVUZGRVJfRVhUJzogMHg4Q0RD
LAorICAnRlJBTUVCVUZGRVJfVU5TVVBQT1JURURfRVhUJzogMHg4Q0RELAorICAnTUFYX0NPTE9S
X0FUVEFDSE1FTlRTX0VYVCc6IDB4OENERiwKKyAgJ0NPTE9SX0FUVEFDSE1FTlQwX0VYVCc6IDB4
OENFMCwKKyAgJ0NPTE9SX0FUVEFDSE1FTlQxX0VYVCc6IDB4OENFMSwKKyAgJ0NPTE9SX0FUVEFD
SE1FTlQyX0VYVCc6IDB4OENFMiwKKyAgJ0NPTE9SX0FUVEFDSE1FTlQzX0VYVCc6IDB4OENFMywK
KyAgJ0NPTE9SX0FUVEFDSE1FTlQ0X0VYVCc6IDB4OENFNCwKKyAgJ0NPTE9SX0FUVEFDSE1FTlQ1
X0VYVCc6IDB4OENFNSwKKyAgJ0NPTE9SX0FUVEFDSE1FTlQ2X0VYVCc6IDB4OENFNiwKKyAgJ0NP
TE9SX0FUVEFDSE1FTlQ3X0VYVCc6IDB4OENFNywKKyAgJ0NPTE9SX0FUVEFDSE1FTlQ4X0VYVCc6
IDB4OENFOCwKKyAgJ0NPTE9SX0FUVEFDSE1FTlQ5X0VYVCc6IDB4OENFOSwKKyAgJ0NPTE9SX0FU
VEFDSE1FTlQxMF9FWFQnOiAweDhDRUEsCisgICdDT0xPUl9BVFRBQ0hNRU5UMTFfRVhUJzogMHg4
Q0VCLAorICAnQ09MT1JfQVRUQUNITUVOVDEyX0VYVCc6IDB4OENFQywKKyAgJ0NPTE9SX0FUVEFD
SE1FTlQxM19FWFQnOiAweDhDRUQsCisgICdDT0xPUl9BVFRBQ0hNRU5UMTRfRVhUJzogMHg4Q0VF
LAorICAnQ09MT1JfQVRUQUNITUVOVDE1X0VYVCc6IDB4OENFRiwKKyAgJ0RFUFRIX0FUVEFDSE1F
TlRfRVhUJzogMHg4RDAwLAorICAnU1RFTkNJTF9BVFRBQ0hNRU5UX0VYVCc6IDB4OEQyMCwKKyAg
J0ZSQU1FQlVGRkVSX0VYVCc6IDB4OEQ0MCwKKyAgJ1JFTkRFUkJVRkZFUl9FWFQnOiAweDhENDEs
CisgICdSRU5ERVJCVUZGRVJfV0lEVEhfRVhUJzogMHg4RDQyLAorICAnUkVOREVSQlVGRkVSX0hF
SUdIVF9FWFQnOiAweDhENDMsCisgICdSRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUX0VYVCc6
IDB4OEQ0NCwKKyAgJ1NURU5DSUxfSU5ERVgxX0VYVCc6IDB4OEQ0NiwKKyAgJ1NURU5DSUxfSU5E
RVg0X0VYVCc6IDB4OEQ0NywKKyAgJ1NURU5DSUxfSU5ERVg4X0VYVCc6IDB4OEQ0OCwKKyAgJ1NU
RU5DSUxfSU5ERVgxNl9FWFQnOiAweDhENDksCisgICdSRU5ERVJCVUZGRVJfUkVEX1NJWkVfRVhU
JzogMHg4RDUwLAorICAnUkVOREVSQlVGRkVSX0dSRUVOX1NJWkVfRVhUJzogMHg4RDUxLAorICAn
UkVOREVSQlVGRkVSX0JMVUVfU0laRV9FWFQnOiAweDhENTIsCisgICdSRU5ERVJCVUZGRVJfQUxQ
SEFfU0laRV9FWFQnOiAweDhENTMsCisgICdSRU5ERVJCVUZGRVJfREVQVEhfU0laRV9FWFQnOiAw
eDhENTQsCisgICdSRU5ERVJCVUZGRVJfU1RFTkNJTF9TSVpFX0VYVCc6IDB4OEQ1NSwKKyAgJ0ZS
QU1FQlVGRkVSX1NSR0JfRVhUJzogMHg4REI5LAorICAnRlJBTUVCVUZGRVJfU1JHQl9DQVBBQkxF
X0VYVCc6IDB4OERCQSwKKyAgJ0xJTkVTX0FESkFDRU5DWV9FWFQnOiAweEEsCisgICdMSU5FX1NU
UklQX0FESkFDRU5DWV9FWFQnOiAweEIsCisgICdUUklBTkdMRVNfQURKQUNFTkNZX0VYVCc6IDB4
QywKKyAgJ1RSSUFOR0xFX1NUUklQX0FESkFDRU5DWV9FWFQnOiAweEQsCisgICdQUk9HUkFNX1BP
SU5UX1NJWkVfRVhUJzogMHg4NjQyLAorICAnTUFYX1ZBUllJTkdfQ09NUE9ORU5UU19FWFQnOiAw
eDhCNEIsCisgICdNQVhfR0VPTUVUUllfVEVYVFVSRV9JTUFHRV9VTklUU19FWFQnOiAweDhDMjks
CisgICdGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEFZRVJfRVhUJzogMHg4Q0Q0LAor
ICAnRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9MQVlFUkVEX0VYVCc6IDB4OERBNywKKyAgJ0ZSQU1F
QlVGRkVSX0lOQ09NUExFVEVfTEFZRVJfVEFSR0VUU19FWFQnOiAweDhEQTgsCisgICdGUkFNRUJV
RkZFUl9JTkNPTVBMRVRFX0xBWUVSX0NPVU5UX0VYVCc6IDB4OERBOSwKKyAgJ0dFT01FVFJZX1NI
QURFUl9FWFQnOiAweDhERDksCisgICdHRU9NRVRSWV9WRVJUSUNFU19PVVRfRVhUJzogMHg4RERB
LAorICAnR0VPTUVUUllfSU5QVVRfVFlQRV9FWFQnOiAweDhEREIsCisgICdHRU9NRVRSWV9PVVRQ
VVRfVFlQRV9FWFQnOiAweDhEREMsCisgICdNQVhfR0VPTUVUUllfVkFSWUlOR19DT01QT05FTlRT
X0VYVCc6IDB4OERERCwKKyAgJ01BWF9WRVJURVhfVkFSWUlOR19DT01QT05FTlRTX0VYVCc6IDB4
OERERSwKKyAgJ01BWF9HRU9NRVRSWV9VTklGT1JNX0NPTVBPTkVOVFNfRVhUJzogMHg4RERGLAor
ICAnTUFYX0dFT01FVFJZX09VVFBVVF9WRVJUSUNFU19FWFQnOiAweDhERTAsCisgICdNQVhfR0VP
TUVUUllfVE9UQUxfT1VUUFVUX0NPTVBPTkVOVFNfRVhUJzogMHg4REUxLAorICAnVkVSVEVYX0FU
VFJJQl9BUlJBWV9JTlRFR0VSX0VYVCc6IDB4ODhGRCwKKyAgJ1NBTVBMRVJfMURfQVJSQVlfRVhU
JzogMHg4REMwLAorICAnU0FNUExFUl8yRF9BUlJBWV9FWFQnOiAweDhEQzEsCisgICdTQU1QTEVS
X0JVRkZFUl9FWFQnOiAweDhEQzIsCisgICdTQU1QTEVSXzFEX0FSUkFZX1NIQURPV19FWFQnOiAw
eDhEQzMsCisgICdTQU1QTEVSXzJEX0FSUkFZX1NIQURPV19FWFQnOiAweDhEQzQsCisgICdTQU1Q
TEVSX0NVQkVfU0hBRE9XX0VYVCc6IDB4OERDNSwKKyAgJ1VOU0lHTkVEX0lOVF9WRUMyX0VYVCc6
IDB4OERDNiwKKyAgJ1VOU0lHTkVEX0lOVF9WRUMzX0VYVCc6IDB4OERDNywKKyAgJ1VOU0lHTkVE
X0lOVF9WRUM0X0VYVCc6IDB4OERDOCwKKyAgJ0lOVF9TQU1QTEVSXzFEX0VYVCc6IDB4OERDOSwK
KyAgJ0lOVF9TQU1QTEVSXzJEX0VYVCc6IDB4OERDQSwKKyAgJ0lOVF9TQU1QTEVSXzNEX0VYVCc6
IDB4OERDQiwKKyAgJ0lOVF9TQU1QTEVSX0NVQkVfRVhUJzogMHg4RENDLAorICAnSU5UX1NBTVBM
RVJfMkRfUkVDVF9FWFQnOiAweDhEQ0QsCisgICdJTlRfU0FNUExFUl8xRF9BUlJBWV9FWFQnOiAw
eDhEQ0UsCisgICdJTlRfU0FNUExFUl8yRF9BUlJBWV9FWFQnOiAweDhEQ0YsCisgICdJTlRfU0FN
UExFUl9CVUZGRVJfRVhUJzogMHg4REQwLAorICAnVU5TSUdORURfSU5UX1NBTVBMRVJfMURfRVhU
JzogMHg4REQxLAorICAnVU5TSUdORURfSU5UX1NBTVBMRVJfMkRfRVhUJzogMHg4REQyLAorICAn
VU5TSUdORURfSU5UX1NBTVBMRVJfM0RfRVhUJzogMHg4REQzLAorICAnVU5TSUdORURfSU5UX1NB
TVBMRVJfQ1VCRV9FWFQnOiAweDhERDQsCisgICdVTlNJR05FRF9JTlRfU0FNUExFUl8yRF9SRUNU
X0VYVCc6IDB4OERENSwKKyAgJ1VOU0lHTkVEX0lOVF9TQU1QTEVSXzFEX0FSUkFZX0VYVCc6IDB4
OERENiwKKyAgJ1VOU0lHTkVEX0lOVF9TQU1QTEVSXzJEX0FSUkFZX0VYVCc6IDB4OERENywKKyAg
J1VOU0lHTkVEX0lOVF9TQU1QTEVSX0JVRkZFUl9FWFQnOiAweDhERDgsCisgICdISVNUT0dSQU1f
RVhUJzogMHg4MDI0LAorICAnUFJPWFlfSElTVE9HUkFNX0VYVCc6IDB4ODAyNSwKKyAgJ0hJU1RP
R1JBTV9XSURUSF9FWFQnOiAweDgwMjYsCisgICdISVNUT0dSQU1fRk9STUFUX0VYVCc6IDB4ODAy
NywKKyAgJ0hJU1RPR1JBTV9SRURfU0laRV9FWFQnOiAweDgwMjgsCisgICdISVNUT0dSQU1fR1JF
RU5fU0laRV9FWFQnOiAweDgwMjksCisgICdISVNUT0dSQU1fQkxVRV9TSVpFX0VYVCc6IDB4ODAy
QSwKKyAgJ0hJU1RPR1JBTV9BTFBIQV9TSVpFX0VYVCc6IDB4ODAyQiwKKyAgJ0hJU1RPR1JBTV9M
VU1JTkFOQ0VfU0laRV9FWFQnOiAweDgwMkMsCisgICdISVNUT0dSQU1fU0lOS19FWFQnOiAweDgw
MkQsCisgICdNSU5NQVhfRVhUJzogMHg4MDJFLAorICAnTUlOTUFYX0ZPUk1BVF9FWFQnOiAweDgw
MkYsCisgICdNSU5NQVhfU0lOS19FWFQnOiAweDgwMzAsCisgICdGUkFHTUVOVF9NQVRFUklBTF9F
WFQnOiAweDgzNDksCisgICdGUkFHTUVOVF9OT1JNQUxfRVhUJzogMHg4MzRBLAorICAnRlJBR01F
TlRfQ09MT1JfRVhUJzogMHg4MzRDLAorICAnQVRURU5VQVRJT05fRVhUJzogMHg4MzRELAorICAn
U0hBRE9XX0FUVEVOVUFUSU9OX0VYVCc6IDB4ODM0RSwKKyAgJ1RFWFRVUkVfQVBQTElDQVRJT05f
TU9ERV9FWFQnOiAweDgzNEYsCisgICdURVhUVVJFX0xJR0hUX0VYVCc6IDB4ODM1MCwKKyAgJ1RF
WFRVUkVfTUFURVJJQUxfRkFDRV9FWFQnOiAweDgzNTEsCisgICdURVhUVVJFX01BVEVSSUFMX1BB
UkFNRVRFUl9FWFQnOiAweDgzNTIsCisgICdGUkFHTUVOVF9ERVBUSF9FWFQnOiAweDg0NTIsCisg
ICdNVUxUSVNBTVBMRV9FWFQnOiAweDgwOUQsCisgICdTQU1QTEVfQUxQSEFfVE9fTUFTS19FWFQn
OiAweDgwOUUsCisgICdTQU1QTEVfQUxQSEFfVE9fT05FX0VYVCc6IDB4ODA5RiwKKyAgJ1NBTVBM
RV9NQVNLX0VYVCc6IDB4ODBBMCwKKyAgJzFQQVNTX0VYVCc6IDB4ODBBMSwKKyAgJzJQQVNTXzBf
RVhUJzogMHg4MEEyLAorICAnMlBBU1NfMV9FWFQnOiAweDgwQTMsCisgICc0UEFTU18wX0VYVCc6
IDB4ODBBNCwKKyAgJzRQQVNTXzFfRVhUJzogMHg4MEE1LAorICAnNFBBU1NfMl9FWFQnOiAweDgw
QTYsCisgICc0UEFTU18zX0VYVCc6IDB4ODBBNywKKyAgJ1NBTVBMRV9CVUZGRVJTX0VYVCc6IDB4
ODBBOCwKKyAgJ1NBTVBMRVNfRVhUJzogMHg4MEE5LAorICAnU0FNUExFX01BU0tfVkFMVUVfRVhU
JzogMHg4MEFBLAorICAnU0FNUExFX01BU0tfSU5WRVJUX0VYVCc6IDB4ODBBQiwKKyAgJ1NBTVBM
RV9QQVRURVJOX0VYVCc6IDB4ODBBQywKKyAgJ01VTFRJU0FNUExFX0JJVF9FWFQnOiAweDIwMDAw
MDAwLAorICAnREVQVEhfU1RFTkNJTF9FWFQnOiAweDg0RjksCisgICdVTlNJR05FRF9JTlRfMjRf
OF9FWFQnOiAweDg0RkEsCisgICdERVBUSDI0X1NURU5DSUw4X0VYVCc6IDB4ODhGMCwKKyAgJ1RF
WFRVUkVfU1RFTkNJTF9TSVpFX0VYVCc6IDB4ODhGMSwKKyAgJ1IxMUZfRzExRl9CMTBGX0VYVCc6
IDB4OEMzQSwKKyAgJ1VOU0lHTkVEX0lOVF8xMEZfMTFGXzExRl9SRVZfRVhUJzogMHg4QzNCLAor
ICAnUkdCQV9TSUdORURfQ09NUE9ORU5UU19FWFQnOiAweDhDM0MsCisgICdVTlNJR05FRF9CWVRF
XzNfM18yX0VYVCc6IDB4ODAzMiwKKyAgJ1VOU0lHTkVEX1NIT1JUXzRfNF80XzRfRVhUJzogMHg4
MDMzLAorICAnVU5TSUdORURfU0hPUlRfNV81XzVfMV9FWFQnOiAweDgwMzQsCisgICdVTlNJR05F
RF9JTlRfOF84XzhfOF9FWFQnOiAweDgwMzUsCisgICdVTlNJR05FRF9JTlRfMTBfMTBfMTBfMl9F
WFQnOiAweDgwMzYsCisgICdURVhUVVJFXzFEJzogMHgwREUwLAorICAnVEVYVFVSRV8yRCc6IDB4
MERFMSwKKyAgJ1BST1hZX1RFWFRVUkVfMUQnOiAweDgwNjMsCisgICdQUk9YWV9URVhUVVJFXzJE
JzogMHg4MDY0LAorICAnVEVYVFVSRV8zRF9FWFQnOiAweDgwNkYsCisgICdQUk9YWV9URVhUVVJF
XzNEX0VYVCc6IDB4ODA3MCwKKyAgJ0NPTE9SX1RBQkxFX0ZPUk1BVF9FWFQnOiAweDgwRDgsCisg
ICdDT0xPUl9UQUJMRV9XSURUSF9FWFQnOiAweDgwRDksCisgICdDT0xPUl9UQUJMRV9SRURfU0la
RV9FWFQnOiAweDgwREEsCisgICdDT0xPUl9UQUJMRV9HUkVFTl9TSVpFX0VYVCc6IDB4ODBEQiwK
KyAgJ0NPTE9SX1RBQkxFX0JMVUVfU0laRV9FWFQnOiAweDgwREMsCisgICdDT0xPUl9UQUJMRV9B
TFBIQV9TSVpFX0VYVCc6IDB4ODBERCwKKyAgJ0NPTE9SX1RBQkxFX0xVTUlOQU5DRV9TSVpFX0VY
VCc6IDB4ODBERSwKKyAgJ0NPTE9SX1RBQkxFX0lOVEVOU0lUWV9TSVpFX0VYVCc6IDB4ODBERiwK
KyAgJ0NPTE9SX0lOREVYMV9FWFQnOiAweDgwRTIsCisgICdDT0xPUl9JTkRFWDJfRVhUJzogMHg4
MEUzLAorICAnQ09MT1JfSU5ERVg0X0VYVCc6IDB4ODBFNCwKKyAgJ0NPTE9SX0lOREVYOF9FWFQn
OiAweDgwRTUsCisgICdDT0xPUl9JTkRFWDEyX0VYVCc6IDB4ODBFNiwKKyAgJ0NPTE9SX0lOREVY
MTZfRVhUJzogMHg4MEU3LAorICAnVEVYVFVSRV9JTkRFWF9TSVpFX0VYVCc6IDB4ODBFRCwKKyAg
J1RFWFRVUkVfQ1VCRV9NQVBfQVJCJzogMHg4NTEzLAorICAnUFJPWFlfVEVYVFVSRV9DVUJFX01B
UF9BUkInOiAweDg1MUIsCisgICdQSVhFTF9QQUNLX0JVRkZFUl9FWFQnOiAweDg4RUIsCisgICdQ
SVhFTF9VTlBBQ0tfQlVGRkVSX0VYVCc6IDB4ODhFQywKKyAgJ1BJWEVMX1BBQ0tfQlVGRkVSX0JJ
TkRJTkdfRVhUJzogMHg4OEVELAorICAnUElYRUxfVU5QQUNLX0JVRkZFUl9CSU5ESU5HX0VYVCc6
IDB4ODhFRiwKKyAgJ1BJWEVMX1RSQU5TRk9STV8yRF9FWFQnOiAweDgzMzAsCisgICdQSVhFTF9N
QUdfRklMVEVSX0VYVCc6IDB4ODMzMSwKKyAgJ1BJWEVMX01JTl9GSUxURVJfRVhUJzogMHg4MzMy
LAorICAnUElYRUxfQ1VCSUNfV0VJR0hUX0VYVCc6IDB4ODMzMywKKyAgJ0NVQklDX0VYVCc6IDB4
ODMzNCwKKyAgJ0FWRVJBR0VfRVhUJzogMHg4MzM1LAorICAnUElYRUxfVFJBTlNGT1JNXzJEX1NU
QUNLX0RFUFRIX0VYVCc6IDB4ODMzNiwKKyAgJ01BWF9QSVhFTF9UUkFOU0ZPUk1fMkRfU1RBQ0tf
REVQVEhfRVhUJzogMHg4MzM3LAorICAnUElYRUxfVFJBTlNGT1JNXzJEX01BVFJJWF9FWFQnOiAw
eDgzMzgsCisgICdQT0lOVF9TSVpFX01JTl9FWFQnOiAweDgxMjYsCisgICdQT0lOVF9TSVpFX01B
WF9FWFQnOiAweDgxMjcsCisgICdQT0lOVF9GQURFX1RIUkVTSE9MRF9TSVpFX0VYVCc6IDB4ODEy
OCwKKyAgJ0RJU1RBTkNFX0FUVEVOVUFUSU9OX0VYVCc6IDB4ODEyOSwKKyAgJ1BPTFlHT05fT0ZG
U0VUX0VYVCc6IDB4ODAzNywKKyAgJ1BPTFlHT05fT0ZGU0VUX0ZBQ1RPUl9FWFQnOiAweDgwMzgs
CisgICdQT0xZR09OX09GRlNFVF9CSUFTX0VYVCc6IDB4ODAzOSwKKyAgJ1JFU0NBTEVfTk9STUFM
X0VYVCc6IDB4ODAzQSwKKyAgJ0NPTE9SX1NVTV9FWFQnOiAweDg0NTgsCisgICdDVVJSRU5UX1NF
Q09OREFSWV9DT0xPUl9FWFQnOiAweDg0NTksCisgICdTRUNPTkRBUllfQ09MT1JfQVJSQVlfU0la
RV9FWFQnOiAweDg0NUEsCisgICdTRUNPTkRBUllfQ09MT1JfQVJSQVlfVFlQRV9FWFQnOiAweDg0
NUIsCisgICdTRUNPTkRBUllfQ09MT1JfQVJSQVlfU1RSSURFX0VYVCc6IDB4ODQ1QywKKyAgJ1NF
Q09OREFSWV9DT0xPUl9BUlJBWV9QT0lOVEVSX0VYVCc6IDB4ODQ1RCwKKyAgJ1NFQ09OREFSWV9D
T0xPUl9BUlJBWV9FWFQnOiAweDg0NUUsCisgICdMSUdIVF9NT0RFTF9DT0xPUl9DT05UUk9MX0VY
VCc6IDB4ODFGOCwKKyAgJ1NJTkdMRV9DT0xPUl9FWFQnOiAweDgxRjksCisgICdTRVBBUkFURV9T
UEVDVUxBUl9DT0xPUl9FWFQnOiAweDgxRkEsCisgICdTSEFSRURfVEVYVFVSRV9QQUxFVFRFX0VY
VCc6IDB4ODFGQiwKKyAgJ1NURU5DSUxfVEFHX0JJVFNfRVhUJzogMHg4OEYyLAorICAnU1RFTkNJ
TF9DTEVBUl9UQUdfVkFMVUVfRVhUJzogMHg4OEYzLAorICAnU1RFTkNJTF9URVNUX1RXT19TSURF
X0VYVCc6IDB4ODkxMCwKKyAgJ0FDVElWRV9TVEVOQ0lMX0ZBQ0VfRVhUJzogMHg4OTExLAorICAn
SU5DUl9XUkFQX0VYVCc6IDB4ODUwNywKKyAgJ0RFQ1JfV1JBUF9FWFQnOiAweDg1MDgsCisgICdB
TFBIQTRfRVhUJzogMHg4MDNCLAorICAnQUxQSEE4X0VYVCc6IDB4ODAzQywKKyAgJ0FMUEhBMTJf
RVhUJzogMHg4MDNELAorICAnQUxQSEExNl9FWFQnOiAweDgwM0UsCisgICdMVU1JTkFOQ0U0X0VY
VCc6IDB4ODAzRiwKKyAgJ0xVTUlOQU5DRThfRVhUJzogMHg4MDQwLAorICAnTFVNSU5BTkNFMTJf
RVhUJzogMHg4MDQxLAorICAnTFVNSU5BTkNFMTZfRVhUJzogMHg4MDQyLAorICAnTFVNSU5BTkNF
NF9BTFBIQTRfRVhUJzogMHg4MDQzLAorICAnTFVNSU5BTkNFNl9BTFBIQTJfRVhUJzogMHg4MDQ0
LAorICAnTFVNSU5BTkNFOF9BTFBIQThfRVhUJzogMHg4MDQ1LAorICAnTFVNSU5BTkNFMTJfQUxQ
SEE0X0VYVCc6IDB4ODA0NiwKKyAgJ0xVTUlOQU5DRTEyX0FMUEhBMTJfRVhUJzogMHg4MDQ3LAor
ICAnTFVNSU5BTkNFMTZfQUxQSEExNl9FWFQnOiAweDgwNDgsCisgICdJTlRFTlNJVFlfRVhUJzog
MHg4MDQ5LAorICAnSU5URU5TSVRZNF9FWFQnOiAweDgwNEEsCisgICdJTlRFTlNJVFk4X0VYVCc6
IDB4ODA0QiwKKyAgJ0lOVEVOU0lUWTEyX0VYVCc6IDB4ODA0QywKKyAgJ0lOVEVOU0lUWTE2X0VY
VCc6IDB4ODA0RCwKKyAgJ1JHQjJfRVhUJzogMHg4MDRFLAorICAnUkdCNF9FWFQnOiAweDgwNEYs
CisgICdSR0I1X0VYVCc6IDB4ODA1MCwKKyAgJ1JHQjhfRVhUJzogMHg4MDUxLAorICAnUkdCMTBf
RVhUJzogMHg4MDUyLAorICAnUkdCMTJfRVhUJzogMHg4MDUzLAorICAnUkdCMTZfRVhUJzogMHg4
MDU0LAorICAnUkdCQTJfRVhUJzogMHg4MDU1LAorICAnUkdCQTRfRVhUJzogMHg4MDU2LAorICAn
UkdCNV9BMV9FWFQnOiAweDgwNTcsCisgICdSR0JBOF9FWFQnOiAweDgwNTgsCisgICdSR0IxMF9B
Ml9FWFQnOiAweDgwNTksCisgICdSR0JBMTJfRVhUJzogMHg4MDVBLAorICAnUkdCQTE2X0VYVCc6
IDB4ODA1QiwKKyAgJ1RFWFRVUkVfUkVEX1NJWkVfRVhUJzogMHg4MDVDLAorICAnVEVYVFVSRV9H
UkVFTl9TSVpFX0VYVCc6IDB4ODA1RCwKKyAgJ1RFWFRVUkVfQkxVRV9TSVpFX0VYVCc6IDB4ODA1
RSwKKyAgJ1RFWFRVUkVfQUxQSEFfU0laRV9FWFQnOiAweDgwNUYsCisgICdURVhUVVJFX0xVTUlO
QU5DRV9TSVpFX0VYVCc6IDB4ODA2MCwKKyAgJ1RFWFRVUkVfSU5URU5TSVRZX1NJWkVfRVhUJzog
MHg4MDYxLAorICAnUkVQTEFDRV9FWFQnOiAweDgwNjIsCisgICdQUk9YWV9URVhUVVJFXzFEX0VY
VCc6IDB4ODA2MywKKyAgJ1BST1hZX1RFWFRVUkVfMkRfRVhUJzogMHg4MDY0LAorICAnUEFDS19T
S0lQX0lNQUdFU19FWFQnOiAweDgwNkIsCisgICdQQUNLX0lNQUdFX0hFSUdIVF9FWFQnOiAweDgw
NkMsCisgICdVTlBBQ0tfU0tJUF9JTUFHRVNfRVhUJzogMHg4MDZELAorICAnVU5QQUNLX0lNQUdF
X0hFSUdIVF9FWFQnOiAweDgwNkUsCisgICdURVhUVVJFXzNEX0VYVCc6IDB4ODA2RiwKKyAgJ1BS
T1hZX1RFWFRVUkVfM0RfRVhUJzogMHg4MDcwLAorICAnVEVYVFVSRV9ERVBUSF9FWFQnOiAweDgw
NzEsCisgICdURVhUVVJFX1dSQVBfUl9FWFQnOiAweDgwNzIsCisgICdNQVhfM0RfVEVYVFVSRV9T
SVpFX0VYVCc6IDB4ODA3MywKKyAgJ0NPTVBBUkVfUkVGX0RFUFRIX1RPX1RFWFRVUkVfRVhUJzog
MHg4ODRFLAorICAnTUFYX0FSUkFZX1RFWFRVUkVfTEFZRVJTX0VYVCc6IDB4ODhGRiwKKyAgJ1RF
WFRVUkVfMURfQVJSQVlfRVhUJzogMHg4QzE4LAorICAnUFJPWFlfVEVYVFVSRV8xRF9BUlJBWV9F
WFQnOiAweDhDMTksCisgICdURVhUVVJFXzJEX0FSUkFZX0VYVCc6IDB4OEMxQSwKKyAgJ1BST1hZ
X1RFWFRVUkVfMkRfQVJSQVlfRVhUJzogMHg4QzFCLAorICAnVEVYVFVSRV9CSU5ESU5HXzFEX0FS
UkFZX0VYVCc6IDB4OEMxQywKKyAgJ1RFWFRVUkVfQklORElOR18yRF9BUlJBWV9FWFQnOiAweDhD
MUQsCisgICdURVhUVVJFX0JVRkZFUl9FWFQnOiAweDhDMkEsCisgICdNQVhfVEVYVFVSRV9CVUZG
RVJfU0laRV9FWFQnOiAweDhDMkIsCisgICdURVhUVVJFX0JJTkRJTkdfQlVGRkVSX0VYVCc6IDB4
OEMyQywKKyAgJ1RFWFRVUkVfQlVGRkVSX0RBVEFfU1RPUkVfQklORElOR19FWFQnOiAweDhDMkQs
CisgICdURVhUVVJFX0JVRkZFUl9GT1JNQVRfRVhUJzogMHg4QzJFLAorICAnQ09NUFJFU1NFRF9S
R0JfUzNUQ19EWFQxX0VYVCc6IDB4ODNGMCwKKyAgJ0NPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDFf
RVhUJzogMHg4M0YxLAorICAnQ09NUFJFU1NFRF9MVU1JTkFOQ0VfTEFUQzFfRVhUJzogMHg4Qzcw
LAorICAnQ09NUFJFU1NFRF9TSUdORURfTFVNSU5BTkNFX0xBVEMxX0VYVCc6IDB4OEM3MSwKKyAg
J0NPTVBSRVNTRURfTFVNSU5BTkNFX0FMUEhBX0xBVEMyX0VYVCc6IDB4OEM3MiwKKyAgJ0NPTVBS
RVNTRURfU0lHTkVEX0xVTUlOQU5DRV9BTFBIQV9MQVRDMl9FWFQnOiAweDhDNzMsCisgICdDT01Q
UkVTU0VEX1JFRF9SR1RDMV9FWFQnOiAweDhEQkIsCisgICdDT01QUkVTU0VEX1NJR05FRF9SRURf
UkdUQzFfRVhUJzogMHg4REJDLAorICAnQ09NUFJFU1NFRF9SRURfR1JFRU5fUkdUQzJfRVhUJzog
MHg4REJELAorICAnQ09NUFJFU1NFRF9TSUdORURfUkVEX0dSRUVOX1JHVEMyX0VYVCc6IDB4OERC
RSwKKyAgJ0NPTVBSRVNTRURfUkdCX1MzVENfRFhUMV9FWFQnOiAweDgzRjAsCisgICdDT01QUkVT
U0VEX1JHQkFfUzNUQ19EWFQxX0VYVCc6IDB4ODNGMSwKKyAgJ0NPTVBSRVNTRURfUkdCQV9TM1RD
X0RYVDNfRVhUJzogMHg4M0YyLAorICAnQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUNV9FWFQnOiAw
eDgzRjMsCisgICdOT1JNQUxfTUFQX0VYVCc6IDB4ODUxMSwKKyAgJ1JFRkxFQ1RJT05fTUFQX0VY
VCc6IDB4ODUxMiwKKyAgJ1RFWFRVUkVfQ1VCRV9NQVBfRVhUJzogMHg4NTEzLAorICAnVEVYVFVS
RV9CSU5ESU5HX0NVQkVfTUFQX0VYVCc6IDB4ODUxNCwKKyAgJ1RFWFRVUkVfQ1VCRV9NQVBfUE9T
SVRJVkVfWF9FWFQnOiAweDg1MTUsCisgICdURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1hfRVhU
JzogMHg4NTE2LAorICAnVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9ZX0VYVCc6IDB4ODUxNywK
KyAgJ1RFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWV9FWFQnOiAweDg1MTgsCisgICdURVhUVVJF
X0NVQkVfTUFQX1BPU0lUSVZFX1pfRVhUJzogMHg4NTE5LAorICAnVEVYVFVSRV9DVUJFX01BUF9O
RUdBVElWRV9aX0VYVCc6IDB4ODUxQSwKKyAgJ1BST1hZX1RFWFRVUkVfQ1VCRV9NQVBfRVhUJzog
MHg4NTFCLAorICAnTUFYX0NVQkVfTUFQX1RFWFRVUkVfU0laRV9FWFQnOiAweDg1MUMsCisgICdD
TEFNUF9UT19FREdFX0VYVCc6IDB4ODEyRiwKKyAgJ0NPTUJJTkVfRVhUJzogMHg4NTcwLAorICAn
Q09NQklORV9SR0JfRVhUJzogMHg4NTcxLAorICAnQ09NQklORV9BTFBIQV9FWFQnOiAweDg1NzIs
CisgICdSR0JfU0NBTEVfRVhUJzogMHg4NTczLAorICAnQUREX1NJR05FRF9FWFQnOiAweDg1NzQs
CisgICdJTlRFUlBPTEFURV9FWFQnOiAweDg1NzUsCisgICdDT05TVEFOVF9FWFQnOiAweDg1NzYs
CisgICdQUklNQVJZX0NPTE9SX0VYVCc6IDB4ODU3NywKKyAgJ1BSRVZJT1VTX0VYVCc6IDB4ODU3
OCwKKyAgJ1NPVVJDRTBfUkdCX0VYVCc6IDB4ODU4MCwKKyAgJ1NPVVJDRTFfUkdCX0VYVCc6IDB4
ODU4MSwKKyAgJ1NPVVJDRTJfUkdCX0VYVCc6IDB4ODU4MiwKKyAgJ1NPVVJDRTBfQUxQSEFfRVhU
JzogMHg4NTg4LAorICAnU09VUkNFMV9BTFBIQV9FWFQnOiAweDg1ODksCisgICdTT1VSQ0UyX0FM
UEhBX0VYVCc6IDB4ODU4QSwKKyAgJ09QRVJBTkQwX1JHQl9FWFQnOiAweDg1OTAsCisgICdPUEVS
QU5EMV9SR0JfRVhUJzogMHg4NTkxLAorICAnT1BFUkFORDJfUkdCX0VYVCc6IDB4ODU5MiwKKyAg
J09QRVJBTkQwX0FMUEhBX0VYVCc6IDB4ODU5OCwKKyAgJ09QRVJBTkQxX0FMUEhBX0VYVCc6IDB4
ODU5OSwKKyAgJ09QRVJBTkQyX0FMUEhBX0VYVCc6IDB4ODU5QSwKKyAgJ0RPVDNfUkdCX0VYVCc6
IDB4ODc0MCwKKyAgJ0RPVDNfUkdCQV9FWFQnOiAweDg3NDEsCisgICdURVhUVVJFX01BWF9BTklT
T1RST1BZX0VYVCc6IDB4ODRGRSwKKyAgJ01BWF9URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCc6
IDB4ODRGRiwKKyAgJ1JHQkEzMlVJX0VYVCc6IDB4OEQ3MCwKKyAgJ1JHQjMyVUlfRVhUJzogMHg4
RDcxLAorICAnQUxQSEEzMlVJX0VYVCc6IDB4OEQ3MiwKKyAgJ0lOVEVOU0lUWTMyVUlfRVhUJzog
MHg4RDczLAorICAnTFVNSU5BTkNFMzJVSV9FWFQnOiAweDhENzQsCisgICdMVU1JTkFOQ0VfQUxQ
SEEzMlVJX0VYVCc6IDB4OEQ3NSwKKyAgJ1JHQkExNlVJX0VYVCc6IDB4OEQ3NiwKKyAgJ1JHQjE2
VUlfRVhUJzogMHg4RDc3LAorICAnQUxQSEExNlVJX0VYVCc6IDB4OEQ3OCwKKyAgJ0lOVEVOU0lU
WTE2VUlfRVhUJzogMHg4RDc5LAorICAnTFVNSU5BTkNFMTZVSV9FWFQnOiAweDhEN0EsCisgICdM
VU1JTkFOQ0VfQUxQSEExNlVJX0VYVCc6IDB4OEQ3QiwKKyAgJ1JHQkE4VUlfRVhUJzogMHg4RDdD
LAorICAnUkdCOFVJX0VYVCc6IDB4OEQ3RCwKKyAgJ0FMUEhBOFVJX0VYVCc6IDB4OEQ3RSwKKyAg
J0lOVEVOU0lUWThVSV9FWFQnOiAweDhEN0YsCisgICdMVU1JTkFOQ0U4VUlfRVhUJzogMHg4RDgw
LAorICAnTFVNSU5BTkNFX0FMUEhBOFVJX0VYVCc6IDB4OEQ4MSwKKyAgJ1JHQkEzMklfRVhUJzog
MHg4RDgyLAorICAnUkdCMzJJX0VYVCc6IDB4OEQ4MywKKyAgJ0FMUEhBMzJJX0VYVCc6IDB4OEQ4
NCwKKyAgJ0lOVEVOU0lUWTMySV9FWFQnOiAweDhEODUsCisgICdMVU1JTkFOQ0UzMklfRVhUJzog
MHg4RDg2LAorICAnTFVNSU5BTkNFX0FMUEhBMzJJX0VYVCc6IDB4OEQ4NywKKyAgJ1JHQkExNklf
RVhUJzogMHg4RDg4LAorICAnUkdCMTZJX0VYVCc6IDB4OEQ4OSwKKyAgJ0FMUEhBMTZJX0VYVCc6
IDB4OEQ4QSwKKyAgJ0lOVEVOU0lUWTE2SV9FWFQnOiAweDhEOEIsCisgICdMVU1JTkFOQ0UxNklf
RVhUJzogMHg4RDhDLAorICAnTFVNSU5BTkNFX0FMUEhBMTZJX0VYVCc6IDB4OEQ4RCwKKyAgJ1JH
QkE4SV9FWFQnOiAweDhEOEUsCisgICdSR0I4SV9FWFQnOiAweDhEOEYsCisgICdBTFBIQThJX0VY
VCc6IDB4OEQ5MCwKKyAgJ0lOVEVOU0lUWThJX0VYVCc6IDB4OEQ5MSwKKyAgJ0xVTUlOQU5DRThJ
X0VYVCc6IDB4OEQ5MiwKKyAgJ0xVTUlOQU5DRV9BTFBIQThJX0VYVCc6IDB4OEQ5MywKKyAgJ1JF
RF9JTlRFR0VSX0VYVCc6IDB4OEQ5NCwKKyAgJ0dSRUVOX0lOVEVHRVJfRVhUJzogMHg4RDk1LAor
ICAnQkxVRV9JTlRFR0VSX0VYVCc6IDB4OEQ5NiwKKyAgJ0FMUEhBX0lOVEVHRVJfRVhUJzogMHg4
RDk3LAorICAnUkdCX0lOVEVHRVJfRVhUJzogMHg4RDk4LAorICAnUkdCQV9JTlRFR0VSX0VYVCc6
IDB4OEQ5OSwKKyAgJ0JHUl9JTlRFR0VSX0VYVCc6IDB4OEQ5QSwKKyAgJ0JHUkFfSU5URUdFUl9F
WFQnOiAweDhEOUIsCisgICdMVU1JTkFOQ0VfSU5URUdFUl9FWFQnOiAweDhEOUMsCisgICdMVU1J
TkFOQ0VfQUxQSEFfSU5URUdFUl9FWFQnOiAweDhEOUQsCisgICdSR0JBX0lOVEVHRVJfTU9ERV9F
WFQnOiAweDhEOUUsCisgICdNQVhfVEVYVFVSRV9MT0RfQklBU19FWFQnOiAweDg0RkQsCisgICdU
RVhUVVJFX0ZJTFRFUl9DT05UUk9MX0VYVCc6IDB4ODUwMCwKKyAgJ1RFWFRVUkVfTE9EX0JJQVNf
RVhUJzogMHg4NTAxLAorICAnTUlSUk9SX0NMQU1QX0VYVCc6IDB4ODc0MiwKKyAgJ01JUlJPUl9D
TEFNUF9UT19FREdFX0VYVCc6IDB4ODc0MywKKyAgJ01JUlJPUl9DTEFNUF9UT19CT1JERVJfRVhU
JzogMHg4OTEyLAorICAnVEVYVFVSRV9QUklPUklUWV9FWFQnOiAweDgwNjYsCisgICdURVhUVVJF
X1JFU0lERU5UX0VYVCc6IDB4ODA2NywKKyAgJ1RFWFRVUkVfMURfQklORElOR19FWFQnOiAweDgw
NjgsCisgICdURVhUVVJFXzJEX0JJTkRJTkdfRVhUJzogMHg4MDY5LAorICAnVEVYVFVSRV8zRF9C
SU5ESU5HX0VYVCc6IDB4ODA2QSwKKyAgJ1BFUlRVUkJfRVhUJzogMHg4NUFFLAorICAnVEVYVFVS
RV9OT1JNQUxfRVhUJzogMHg4NUFGLAorICAnVEVYVFVSRV9SRUNUQU5HTEVfRVhUJzogMHg4NEY1
LAorICAnVEVYVFVSRV9CSU5ESU5HX1JFQ1RBTkdMRV9FWFQnOiAweDg0RjYsCisgICdQUk9YWV9U
RVhUVVJFX1JFQ1RBTkdMRV9FWFQnOiAweDg0RjcsCisgICdNQVhfUkVDVEFOR0xFX1RFWFRVUkVf
U0laRV9FWFQnOiAweDg0RjgsCisgICdTUkdCX0VYVCc6IDB4OEM0MCwKKyAgJ1NSR0I4X0VYVCc6
IDB4OEM0MSwKKyAgJ1NSR0JfQUxQSEFfRVhUJzogMHg4QzQyLAorICAnU1JHQjhfQUxQSEE4X0VY
VCc6IDB4OEM0MywKKyAgJ1NMVU1JTkFOQ0VfQUxQSEFfRVhUJzogMHg4QzQ0LAorICAnU0xVTUlO
QU5DRThfQUxQSEE4X0VYVCc6IDB4OEM0NSwKKyAgJ1NMVU1JTkFOQ0VfRVhUJzogMHg4QzQ2LAor
ICAnU0xVTUlOQU5DRThfRVhUJzogMHg4QzQ3LAorICAnQ09NUFJFU1NFRF9TUkdCX0VYVCc6IDB4
OEM0OCwKKyAgJ0NPTVBSRVNTRURfU1JHQl9BTFBIQV9FWFQnOiAweDhDNDksCisgICdDT01QUkVT
U0VEX1NMVU1JTkFOQ0VfRVhUJzogMHg4QzRBLAorICAnQ09NUFJFU1NFRF9TTFVNSU5BTkNFX0FM
UEhBX0VYVCc6IDB4OEM0QiwKKyAgJ0NPTVBSRVNTRURfU1JHQl9TM1RDX0RYVDFfRVhUJzogMHg4
QzRDLAorICAnQ09NUFJFU1NFRF9TUkdCX0FMUEhBX1MzVENfRFhUMV9FWFQnOiAweDhDNEQsCisg
ICdDT01QUkVTU0VEX1NSR0JfQUxQSEFfUzNUQ19EWFQzX0VYVCc6IDB4OEM0RSwKKyAgJ0NPTVBS
RVNTRURfU1JHQl9BTFBIQV9TM1RDX0RYVDVfRVhUJzogMHg4QzRGLAorICAnUkdCOV9FNV9FWFQn
OiAweDhDM0QsCisgICdVTlNJR05FRF9JTlRfNV85XzlfOV9SRVZfRVhUJzogMHg4QzNFLAorICAn
VEVYVFVSRV9TSEFSRURfU0laRV9FWFQnOiAweDhDM0YsCisgICdURVhUVVJFX1NXSVpaTEVfUl9F
WFQnOiAweDhFNDIsCisgICdURVhUVVJFX1NXSVpaTEVfR19FWFQnOiAweDhFNDMsCisgICdURVhU
VVJFX1NXSVpaTEVfQl9FWFQnOiAweDhFNDQsCisgICdURVhUVVJFX1NXSVpaTEVfQV9FWFQnOiAw
eDhFNDUsCisgICdURVhUVVJFX1NXSVpaTEVfUkdCQV9FWFQnOiAweDhFNDYsCisgICdUSU1FX0VM
QVBTRURfRVhUJzogMHg4OEJGLAorICAnVFJBTlNGT1JNX0ZFRURCQUNLX1ZBUllJTkdfTUFYX0xF
TkdUSF9FWFQnOiAweDhDNzYsCisgICdUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX01PREVfRVhU
JzogMHg4QzdGLAorICAnTUFYX1RSQU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9DT01QT05FTlRT
X0VYVCc6IDB4OEM4MCwKKyAgJ1RSQU5TRk9STV9GRUVEQkFDS19WQVJZSU5HU19FWFQnOiAweDhD
ODMsCisgICdUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX1NUQVJUX0VYVCc6IDB4OEM4NCwKKyAg
J1RSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU0laRV9FWFQnOiAweDhDODUsCisgICdQUklNSVRJ
VkVTX0dFTkVSQVRFRF9FWFQnOiAweDhDODcsCisgICdUUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlU
SVZFU19XUklUVEVOX0VYVCc6IDB4OEM4OCwKKyAgJ1JBU1RFUklaRVJfRElTQ0FSRF9FWFQnOiAw
eDhDODksCisgICdNQVhfVFJBTlNGT1JNX0ZFRURCQUNLX0lOVEVSTEVBVkVEX0NPTVBPTkVOVFNf
RVhUJzogMHg4QzhBLAorICAnTUFYX1RSQU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9BVFRSSUJT
X0VYVCc6IDB4OEM4QiwKKyAgJ0lOVEVSTEVBVkVEX0FUVFJJQlNfRVhUJzogMHg4QzhDLAorICAn
U0VQQVJBVEVfQVRUUklCU19FWFQnOiAweDhDOEQsCisgICdUUkFOU0ZPUk1fRkVFREJBQ0tfQlVG
RkVSX0VYVCc6IDB4OEM4RSwKKyAgJ1RSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElOR19F
WFQnOiAweDhDOEYsCisgICdET1VCTEVfRVhUJzogMHgxNDBBLAorICAnVkVSVEVYX0FSUkFZX0VY
VCc6IDB4ODA3NCwKKyAgJ05PUk1BTF9BUlJBWV9FWFQnOiAweDgwNzUsCisgICdDT0xPUl9BUlJB
WV9FWFQnOiAweDgwNzYsCisgICdJTkRFWF9BUlJBWV9FWFQnOiAweDgwNzcsCisgICdURVhUVVJF
X0NPT1JEX0FSUkFZX0VYVCc6IDB4ODA3OCwKKyAgJ0VER0VfRkxBR19BUlJBWV9FWFQnOiAweDgw
NzksCisgICdWRVJURVhfQVJSQVlfU0laRV9FWFQnOiAweDgwN0EsCisgICdWRVJURVhfQVJSQVlf
VFlQRV9FWFQnOiAweDgwN0IsCisgICdWRVJURVhfQVJSQVlfU1RSSURFX0VYVCc6IDB4ODA3QywK
KyAgJ1ZFUlRFWF9BUlJBWV9DT1VOVF9FWFQnOiAweDgwN0QsCisgICdOT1JNQUxfQVJSQVlfVFlQ
RV9FWFQnOiAweDgwN0UsCisgICdOT1JNQUxfQVJSQVlfU1RSSURFX0VYVCc6IDB4ODA3RiwKKyAg
J05PUk1BTF9BUlJBWV9DT1VOVF9FWFQnOiAweDgwODAsCisgICdDT0xPUl9BUlJBWV9TSVpFX0VY
VCc6IDB4ODA4MSwKKyAgJ0NPTE9SX0FSUkFZX1RZUEVfRVhUJzogMHg4MDgyLAorICAnQ09MT1Jf
QVJSQVlfU1RSSURFX0VYVCc6IDB4ODA4MywKKyAgJ0NPTE9SX0FSUkFZX0NPVU5UX0VYVCc6IDB4
ODA4NCwKKyAgJ0lOREVYX0FSUkFZX1RZUEVfRVhUJzogMHg4MDg1LAorICAnSU5ERVhfQVJSQVlf
U1RSSURFX0VYVCc6IDB4ODA4NiwKKyAgJ0lOREVYX0FSUkFZX0NPVU5UX0VYVCc6IDB4ODA4NywK
KyAgJ1RFWFRVUkVfQ09PUkRfQVJSQVlfU0laRV9FWFQnOiAweDgwODgsCisgICdURVhUVVJFX0NP
T1JEX0FSUkFZX1RZUEVfRVhUJzogMHg4MDg5LAorICAnVEVYVFVSRV9DT09SRF9BUlJBWV9TVFJJ
REVfRVhUJzogMHg4MDhBLAorICAnVEVYVFVSRV9DT09SRF9BUlJBWV9DT1VOVF9FWFQnOiAweDgw
OEIsCisgICdFREdFX0ZMQUdfQVJSQVlfU1RSSURFX0VYVCc6IDB4ODA4QywKKyAgJ0VER0VfRkxB
R19BUlJBWV9DT1VOVF9FWFQnOiAweDgwOEQsCisgICdWRVJURVhfQVJSQVlfUE9JTlRFUl9FWFQn
OiAweDgwOEUsCisgICdOT1JNQUxfQVJSQVlfUE9JTlRFUl9FWFQnOiAweDgwOEYsCisgICdDT0xP
Ul9BUlJBWV9QT0lOVEVSX0VYVCc6IDB4ODA5MCwKKyAgJ0lOREVYX0FSUkFZX1BPSU5URVJfRVhU
JzogMHg4MDkxLAorICAnVEVYVFVSRV9DT09SRF9BUlJBWV9QT0lOVEVSX0VYVCc6IDB4ODA5MiwK
KyAgJ0VER0VfRkxBR19BUlJBWV9QT0lOVEVSX0VYVCc6IDB4ODA5MywKKyAgJ0JHUkEnOiAweDgw
RTEsCisgICdWRVJURVhfU0hBREVSX0VYVCc6IDB4ODc4MCwKKyAgJ1ZFUlRFWF9TSEFERVJfQklO
RElOR19FWFQnOiAweDg3ODEsCisgICdPUF9JTkRFWF9FWFQnOiAweDg3ODIsCisgICdPUF9ORUdB
VEVfRVhUJzogMHg4NzgzLAorICAnT1BfRE9UM19FWFQnOiAweDg3ODQsCisgICdPUF9ET1Q0X0VY
VCc6IDB4ODc4NSwKKyAgJ09QX01VTF9FWFQnOiAweDg3ODYsCisgICdPUF9BRERfRVhUJzogMHg4
Nzg3LAorICAnT1BfTUFERF9FWFQnOiAweDg3ODgsCisgICdPUF9GUkFDX0VYVCc6IDB4ODc4OSwK
KyAgJ09QX01BWF9FWFQnOiAweDg3OEEsCisgICdPUF9NSU5fRVhUJzogMHg4NzhCLAorICAnT1Bf
U0VUX0dFX0VYVCc6IDB4ODc4QywKKyAgJ09QX1NFVF9MVF9FWFQnOiAweDg3OEQsCisgICdPUF9D
TEFNUF9FWFQnOiAweDg3OEUsCisgICdPUF9GTE9PUl9FWFQnOiAweDg3OEYsCisgICdPUF9ST1VO
RF9FWFQnOiAweDg3OTAsCisgICdPUF9FWFBfQkFTRV8yX0VYVCc6IDB4ODc5MSwKKyAgJ09QX0xP
R19CQVNFXzJfRVhUJzogMHg4NzkyLAorICAnT1BfUE9XRVJfRVhUJzogMHg4NzkzLAorICAnT1Bf
UkVDSVBfRVhUJzogMHg4Nzk0LAorICAnT1BfUkVDSVBfU1FSVF9FWFQnOiAweDg3OTUsCisgICdP
UF9TVUJfRVhUJzogMHg4Nzk2LAorICAnT1BfQ1JPU1NfUFJPRFVDVF9FWFQnOiAweDg3OTcsCisg
ICdPUF9NVUxUSVBMWV9NQVRSSVhfRVhUJzogMHg4Nzk4LAorICAnT1BfTU9WX0VYVCc6IDB4ODc5
OSwKKyAgJ09VVFBVVF9WRVJURVhfRVhUJzogMHg4NzlBLAorICAnT1VUUFVUX0NPTE9SMF9FWFQn
OiAweDg3OUIsCisgICdPVVRQVVRfQ09MT1IxX0VYVCc6IDB4ODc5QywKKyAgJ09VVFBVVF9URVhU
VVJFX0NPT1JEMF9FWFQnOiAweDg3OUQsCisgICdPVVRQVVRfVEVYVFVSRV9DT09SRDFfRVhUJzog
MHg4NzlFLAorICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQyX0VYVCc6IDB4ODc5RiwKKyAgJ09VVFBV
VF9URVhUVVJFX0NPT1JEM19FWFQnOiAweDg3QTAsCisgICdPVVRQVVRfVEVYVFVSRV9DT09SRDRf
RVhUJzogMHg4N0ExLAorICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQ1X0VYVCc6IDB4ODdBMiwKKyAg
J09VVFBVVF9URVhUVVJFX0NPT1JENl9FWFQnOiAweDg3QTMsCisgICdPVVRQVVRfVEVYVFVSRV9D
T09SRDdfRVhUJzogMHg4N0E0LAorICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQ4X0VYVCc6IDB4ODdB
NSwKKyAgJ09VVFBVVF9URVhUVVJFX0NPT1JEOV9FWFQnOiAweDg3QTYsCisgICdPVVRQVVRfVEVY
VFVSRV9DT09SRDEwX0VYVCc6IDB4ODdBNywKKyAgJ09VVFBVVF9URVhUVVJFX0NPT1JEMTFfRVhU
JzogMHg4N0E4LAorICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQxMl9FWFQnOiAweDg3QTksCisgICdP
VVRQVVRfVEVYVFVSRV9DT09SRDEzX0VYVCc6IDB4ODdBQSwKKyAgJ09VVFBVVF9URVhUVVJFX0NP
T1JEMTRfRVhUJzogMHg4N0FCLAorICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQxNV9FWFQnOiAweDg3
QUMsCisgICdPVVRQVVRfVEVYVFVSRV9DT09SRDE2X0VYVCc6IDB4ODdBRCwKKyAgJ09VVFBVVF9U
RVhUVVJFX0NPT1JEMTdfRVhUJzogMHg4N0FFLAorICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQxOF9F
WFQnOiAweDg3QUYsCisgICdPVVRQVVRfVEVYVFVSRV9DT09SRDE5X0VYVCc6IDB4ODdCMCwKKyAg
J09VVFBVVF9URVhUVVJFX0NPT1JEMjBfRVhUJzogMHg4N0IxLAorICAnT1VUUFVUX1RFWFRVUkVf
Q09PUkQyMV9FWFQnOiAweDg3QjIsCisgICdPVVRQVVRfVEVYVFVSRV9DT09SRDIyX0VYVCc6IDB4
ODdCMywKKyAgJ09VVFBVVF9URVhUVVJFX0NPT1JEMjNfRVhUJzogMHg4N0I0LAorICAnT1VUUFVU
X1RFWFRVUkVfQ09PUkQyNF9FWFQnOiAweDg3QjUsCisgICdPVVRQVVRfVEVYVFVSRV9DT09SRDI1
X0VYVCc6IDB4ODdCNiwKKyAgJ09VVFBVVF9URVhUVVJFX0NPT1JEMjZfRVhUJzogMHg4N0I3LAor
ICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQyN19FWFQnOiAweDg3QjgsCisgICdPVVRQVVRfVEVYVFVS
RV9DT09SRDI4X0VYVCc6IDB4ODdCOSwKKyAgJ09VVFBVVF9URVhUVVJFX0NPT1JEMjlfRVhUJzog
MHg4N0JBLAorICAnT1VUUFVUX1RFWFRVUkVfQ09PUkQzMF9FWFQnOiAweDg3QkIsCisgICdPVVRQ
VVRfVEVYVFVSRV9DT09SRDMxX0VYVCc6IDB4ODdCQywKKyAgJ09VVFBVVF9GT0dfRVhUJzogMHg4
N0JELAorICAnU0NBTEFSX0VYVCc6IDB4ODdCRSwKKyAgJ1ZFQ1RPUl9FWFQnOiAweDg3QkYsCisg
ICdNQVRSSVhfRVhUJzogMHg4N0MwLAorICAnVkFSSUFOVF9FWFQnOiAweDg3QzEsCisgICdJTlZB
UklBTlRfRVhUJzogMHg4N0MyLAorICAnTE9DQUxfQ09OU1RBTlRfRVhUJzogMHg4N0MzLAorICAn
TE9DQUxfRVhUJzogMHg4N0M0LAorICAnTUFYX1ZFUlRFWF9TSEFERVJfSU5TVFJVQ1RJT05TX0VY
VCc6IDB4ODdDNSwKKyAgJ01BWF9WRVJURVhfU0hBREVSX1ZBUklBTlRTX0VYVCc6IDB4ODdDNiwK
KyAgJ01BWF9WRVJURVhfU0hBREVSX0lOVkFSSUFOVFNfRVhUJzogMHg4N0M3LAorICAnTUFYX1ZF
UlRFWF9TSEFERVJfTE9DQUxfQ09OU1RBTlRTX0VYVCc6IDB4ODdDOCwKKyAgJ01BWF9WRVJURVhf
U0hBREVSX0xPQ0FMU19FWFQnOiAweDg3QzksCisgICdNQVhfT1BUSU1JWkVEX1ZFUlRFWF9TSEFE
RVJfSU5TVFJVQ1RJT05TX0VYVCc6IDB4ODdDQSwKKyAgJ01BWF9PUFRJTUlaRURfVkVSVEVYX1NI
QURFUl9WQVJJQU5UU19FWFQnOiAweDg3Q0IsCisgICdNQVhfT1BUSU1JWkVEX1ZFUlRFWF9TSEFE
RVJfSU5WQVJJQU5UU19FWFQnOiAweDg3Q0MsCisgICdNQVhfT1BUSU1JWkVEX1ZFUlRFWF9TSEFE
RVJfTE9DQUxfQ09OU1RBTlRTX0VYVCc6IDB4ODdDRCwKKyAgJ01BWF9PUFRJTUlaRURfVkVSVEVY
X1NIQURFUl9MT0NBTFNfRVhUJzogMHg4N0NFLAorICAnVkVSVEVYX1NIQURFUl9JTlNUUlVDVElP
TlNfRVhUJzogMHg4N0NGLAorICAnVkVSVEVYX1NIQURFUl9WQVJJQU5UU19FWFQnOiAweDg3RDAs
CisgICdWRVJURVhfU0hBREVSX0lOVkFSSUFOVFNfRVhUJzogMHg4N0QxLAorICAnVkVSVEVYX1NI
QURFUl9MT0NBTF9DT05TVEFOVFNfRVhUJzogMHg4N0QyLAorICAnVkVSVEVYX1NIQURFUl9MT0NB
TFNfRVhUJzogMHg4N0QzLAorICAnVkVSVEVYX1NIQURFUl9PUFRJTUlaRURfRVhUJzogMHg4N0Q0
LAorICAnWF9FWFQnOiAweDg3RDUsCisgICdZX0VYVCc6IDB4ODdENiwKKyAgJ1pfRVhUJzogMHg4
N0Q3LAorICAnV19FWFQnOiAweDg3RDgsCisgICdORUdBVElWRV9YX0VYVCc6IDB4ODdEOSwKKyAg
J05FR0FUSVZFX1lfRVhUJzogMHg4N0RBLAorICAnTkVHQVRJVkVfWl9FWFQnOiAweDg3REIsCisg
ICdORUdBVElWRV9XX0VYVCc6IDB4ODdEQywKKyAgJ1pFUk9fRVhUJzogMHg4N0RELAorICAnT05F
X0VYVCc6IDB4ODdERSwKKyAgJ05FR0FUSVZFX09ORV9FWFQnOiAweDg3REYsCisgICdOT1JNQUxJ
WkVEX1JBTkdFX0VYVCc6IDB4ODdFMCwKKyAgJ0ZVTExfUkFOR0VfRVhUJzogMHg4N0UxLAorICAn
Q1VSUkVOVF9WRVJURVhfRVhUJzogMHg4N0UyLAorICAnTVZQX01BVFJJWF9FWFQnOiAweDg3RTMs
CisgICdWQVJJQU5UX1ZBTFVFX0VYVCc6IDB4ODdFNCwKKyAgJ1ZBUklBTlRfREFUQVRZUEVfRVhU
JzogMHg4N0U1LAorICAnVkFSSUFOVF9BUlJBWV9TVFJJREVfRVhUJzogMHg4N0U2LAorICAnVkFS
SUFOVF9BUlJBWV9UWVBFX0VYVCc6IDB4ODdFNywKKyAgJ1ZBUklBTlRfQVJSQVlfRVhUJzogMHg4
N0U4LAorICAnVkFSSUFOVF9BUlJBWV9QT0lOVEVSX0VYVCc6IDB4ODdFOSwKKyAgJ0lOVkFSSUFO
VF9WQUxVRV9FWFQnOiAweDg3RUEsCisgICdJTlZBUklBTlRfREFUQVRZUEVfRVhUJzogMHg4N0VC
LAorICAnTE9DQUxfQ09OU1RBTlRfVkFMVUVfRVhUJzogMHg4N0VDLAorICAnTE9DQUxfQ09OU1RB
TlRfREFUQVRZUEVfRVhUJzogMHg4N0VELAorICAnTU9ERUxWSUVXMF9TVEFDS19ERVBUSF9FWFQn
OiAweDBCQTMsCisgICdNT0RFTFZJRVcwX01BVFJJWF9FWFQnOiAweDBCQTYsCisgICdNT0RFTFZJ
RVcwX0VYVCc6IDB4MTcwMCwKKyAgJ01PREVMVklFVzFfU1RBQ0tfREVQVEhfRVhUJzogMHg4NTAy
LAorICAnTU9ERUxWSUVXMV9NQVRSSVhfRVhUJzogMHg4NTA2LAorICAnVkVSVEVYX1dFSUdIVElO
R19FWFQnOiAweDg1MDksCisgICdNT0RFTFZJRVcxX0VYVCc6IDB4ODUwQSwKKyAgJ0NVUlJFTlRf
VkVSVEVYX1dFSUdIVF9FWFQnOiAweDg1MEIsCisgICdWRVJURVhfV0VJR0hUX0FSUkFZX0VYVCc6
IDB4ODUwQywKKyAgJ1ZFUlRFWF9XRUlHSFRfQVJSQVlfU0laRV9FWFQnOiAweDg1MEQsCisgICdW
RVJURVhfV0VJR0hUX0FSUkFZX1RZUEVfRVhUJzogMHg4NTBFLAorICAnVkVSVEVYX1dFSUdIVF9B
UlJBWV9TVFJJREVfRVhUJzogMHg4NTBGLAorICAnVkVSVEVYX1dFSUdIVF9BUlJBWV9QT0lOVEVS
X0VYVCc6IDB4ODUxMCwKKyAgJ09DQ0xVU0lPTl9URVNUX0hQJzogMHg4MTY1LAorICAnT0NDTFVT
SU9OX1RFU1RfUkVTVUxUX0hQJzogMHg4MTY2LAorICAnTUlSUk9SRURfUkVQRUFUX0lCTSc6IDB4
ODM3MCwKKyAgJ1JFRF9NSU5fQ0xBTVBfSU5HUic6IDB4ODU2MCwKKyAgJ0dSRUVOX01JTl9DTEFN
UF9JTkdSJzogMHg4NTYxLAorICAnQkxVRV9NSU5fQ0xBTVBfSU5HUic6IDB4ODU2MiwKKyAgJ0FM
UEhBX01JTl9DTEFNUF9JTkdSJzogMHg4NTYzLAorICAnUkVEX01BWF9DTEFNUF9JTkdSJzogMHg4
NTY0LAorICAnR1JFRU5fTUFYX0NMQU1QX0lOR1InOiAweDg1NjUsCisgICdCTFVFX01BWF9DTEFN
UF9JTkdSJzogMHg4NTY2LAorICAnQUxQSEFfTUFYX0NMQU1QX0lOR1InOiAweDg1NjcsCisgICdJ
TlRFUkxBQ0VfUkVBRF9JTkdSJzogMHg4NTY4LAorICAnUEFSQUxMRUxfQVJSQVlTX0lOVEVMJzog
MHg4M0Y0LAorICAnVkVSVEVYX0FSUkFZX1BBUkFMTEVMX1BPSU5URVJTX0lOVEVMJzogMHg4M0Y1
LAorICAnTk9STUFMX0FSUkFZX1BBUkFMTEVMX1BPSU5URVJTX0lOVEVMJzogMHg4M0Y2LAorICAn
Q09MT1JfQVJSQVlfUEFSQUxMRUxfUE9JTlRFUlNfSU5URUwnOiAweDgzRjcsCisgICdURVhUVVJF
X0NPT1JEX0FSUkFZX1BBUkFMTEVMX1BPSU5URVJTX0lOVEVMJzogMHg4M0Y4LAorICAnS1RYX0ZS
T05UX1JFR0lPTic6IDB4MCwKKyAgJ0tUWF9CQUNLX1JFR0lPTic6IDB4MSwKKyAgJ0tUWF9aX1JF
R0lPTic6IDB4MiwKKyAgJ0tUWF9TVEVOQ0lMX1JFR0lPTic6IDB4MywKKyAgJ1RFWFRVUkVfMURf
U1RBQ0tfTUVTQVgnOiAweDg3NTksCisgICdURVhUVVJFXzJEX1NUQUNLX01FU0FYJzogMHg4NzVB
LAorICAnUFJPWFlfVEVYVFVSRV8xRF9TVEFDS19NRVNBWCc6IDB4ODc1QiwKKyAgJ1BST1hZX1RF
WFRVUkVfMkRfU1RBQ0tfTUVTQVgnOiAweDg3NUMsCisgICdURVhUVVJFXzFEX1NUQUNLX0JJTkRJ
TkdfTUVTQVgnOiAweDg3NUQsCisgICdURVhUVVJFXzJEX1NUQUNLX0JJTkRJTkdfTUVTQVgnOiAw
eDg3NUUsCisgICdQQUNLX0lOVkVSVF9NRVNBJzogMHg4NzU4LAorICAnVU5TSUdORURfU0hPUlRf
OF84X01FU0EnOiAweDg1QkEsCisgICdVTlNJR05FRF9TSE9SVF84XzhfUkVWX01FU0EnOiAweDg1
QkIsCisgICdZQ0JDUl9NRVNBJzogMHg4NzU3LAorICAnUVVFUllfV0FJVF9OVic6IDB4OEUxMywK
KyAgJ1FVRVJZX05PX1dBSVRfTlYnOiAweDhFMTQsCisgICdRVUVSWV9CWV9SRUdJT05fV0FJVF9O
Vic6IDB4OEUxNSwKKyAgJ1FVRVJZX0JZX1JFR0lPTl9OT19XQUlUX05WJzogMHg4RTE2LAorICAn
REVQVEhfU1RFTkNJTF9UT19SR0JBX05WJzogMHg4ODZFLAorICAnREVQVEhfU1RFTkNJTF9UT19C
R1JBX05WJzogMHg4ODZGLAorICAnREVQVEhfQ09NUE9ORU5UMzJGX05WJzogMHg4REFCLAorICAn
REVQVEgzMkZfU1RFTkNJTDhfTlYnOiAweDhEQUMsCisgICdGTE9BVF8zMl9VTlNJR05FRF9JTlRf
MjRfOF9SRVZfTlYnOiAweDhEQUQsCisgICdERVBUSF9CVUZGRVJfRkxPQVRfTU9ERV9OVic6IDB4
OERBRiwKKyAgJ0RFUFRIX0NMQU1QX05WJzogMHg4NjRGLAorICAnU0FNUExFX0NPVU5UX0JJVFNf
TlYnOiAweDg4NjQsCisgICdDVVJSRU5UX1NBTVBMRV9DT1VOVF9RVUVSWV9OVic6IDB4ODg2NSwK
KyAgJ1FVRVJZX1JFU1VMVF9OVic6IDB4ODg2NiwKKyAgJ1FVRVJZX1JFU1VMVF9BVkFJTEFCTEVf
TlYnOiAweDg4NjcsCisgICdTQU1QTEVfQ09VTlRfTlYnOiAweDg5MTQsCisgICdFVkFMXzJEX05W
JzogMHg4NkMwLAorICAnRVZBTF9UUklBTkdVTEFSXzJEX05WJzogMHg4NkMxLAorICAnTUFQX1RF
U1NFTExBVElPTl9OVic6IDB4ODZDMiwKKyAgJ01BUF9BVFRSSUJfVV9PUkRFUl9OVic6IDB4ODZD
MywKKyAgJ01BUF9BVFRSSUJfVl9PUkRFUl9OVic6IDB4ODZDNCwKKyAgJ0VWQUxfRlJBQ1RJT05B
TF9URVNTRUxMQVRJT05fTlYnOiAweDg2QzUsCisgICdFVkFMX1ZFUlRFWF9BVFRSSUIwX05WJzog
MHg4NkM2LAorICAnRVZBTF9WRVJURVhfQVRUUklCMV9OVic6IDB4ODZDNywKKyAgJ0VWQUxfVkVS
VEVYX0FUVFJJQjJfTlYnOiAweDg2QzgsCisgICdFVkFMX1ZFUlRFWF9BVFRSSUIzX05WJzogMHg4
NkM5LAorICAnRVZBTF9WRVJURVhfQVRUUklCNF9OVic6IDB4ODZDQSwKKyAgJ0VWQUxfVkVSVEVY
X0FUVFJJQjVfTlYnOiAweDg2Q0IsCisgICdFVkFMX1ZFUlRFWF9BVFRSSUI2X05WJzogMHg4NkND
LAorICAnRVZBTF9WRVJURVhfQVRUUklCN19OVic6IDB4ODZDRCwKKyAgJ0VWQUxfVkVSVEVYX0FU
VFJJQjhfTlYnOiAweDg2Q0UsCisgICdFVkFMX1ZFUlRFWF9BVFRSSUI5X05WJzogMHg4NkNGLAor
ICAnRVZBTF9WRVJURVhfQVRUUklCMTBfTlYnOiAweDg2RDAsCisgICdFVkFMX1ZFUlRFWF9BVFRS
SUIxMV9OVic6IDB4ODZEMSwKKyAgJ0VWQUxfVkVSVEVYX0FUVFJJQjEyX05WJzogMHg4NkQyLAor
ICAnRVZBTF9WRVJURVhfQVRUUklCMTNfTlYnOiAweDg2RDMsCisgICdFVkFMX1ZFUlRFWF9BVFRS
SUIxNF9OVic6IDB4ODZENCwKKyAgJ0VWQUxfVkVSVEVYX0FUVFJJQjE1X05WJzogMHg4NkQ1LAor
ICAnTUFYX01BUF9URVNTRUxMQVRJT05fTlYnOiAweDg2RDYsCisgICdNQVhfUkFUSU9OQUxfRVZB
TF9PUkRFUl9OVic6IDB4ODZENywKKyAgJ1NBTVBMRV9QT1NJVElPTl9OVic6IDB4OEU1MCwKKyAg
J1NBTVBMRV9NQVNLX05WJzogMHg4RTUxLAorICAnU0FNUExFX01BU0tfVkFMVUVfTlYnOiAweDhF
NTIsCisgICdURVhUVVJFX0JJTkRJTkdfUkVOREVSQlVGRkVSX05WJzogMHg4RTUzLAorICAnVEVY
VFVSRV9SRU5ERVJCVUZGRVJfREFUQV9TVE9SRV9CSU5ESU5HX05WJzogMHg4RTU0LAorICAnVEVY
VFVSRV9SRU5ERVJCVUZGRVJfTlYnOiAweDhFNTUsCisgICdTQU1QTEVSX1JFTkRFUkJVRkZFUl9O
Vic6IDB4OEU1NiwKKyAgJ0lOVF9TQU1QTEVSX1JFTkRFUkJVRkZFUl9OVic6IDB4OEU1NywKKyAg
J1VOU0lHTkVEX0lOVF9TQU1QTEVSX1JFTkRFUkJVRkZFUl9OVic6IDB4OEU1OCwKKyAgJ01BWF9T
QU1QTEVfTUFTS19XT1JEU19OVic6IDB4OEU1OSwKKyAgJ0FMTF9DT01QTEVURURfTlYnOiAweDg0
RjIsCisgICdGRU5DRV9TVEFUVVNfTlYnOiAweDg0RjMsCisgICdGRU5DRV9DT05ESVRJT05fTlYn
OiAweDg0RjQsCisgICdGTE9BVF9SX05WJzogMHg4ODgwLAorICAnRkxPQVRfUkdfTlYnOiAweDg4
ODEsCisgICdGTE9BVF9SR0JfTlYnOiAweDg4ODIsCisgICdGTE9BVF9SR0JBX05WJzogMHg4ODgz
LAorICAnRkxPQVRfUjE2X05WJzogMHg4ODg0LAorICAnRkxPQVRfUjMyX05WJzogMHg4ODg1LAor
ICAnRkxPQVRfUkcxNl9OVic6IDB4ODg4NiwKKyAgJ0ZMT0FUX1JHMzJfTlYnOiAweDg4ODcsCisg
ICdGTE9BVF9SR0IxNl9OVic6IDB4ODg4OCwKKyAgJ0ZMT0FUX1JHQjMyX05WJzogMHg4ODg5LAor
ICAnRkxPQVRfUkdCQTE2X05WJzogMHg4ODhBLAorICAnRkxPQVRfUkdCQTMyX05WJzogMHg4ODhC
LAorICAnVEVYVFVSRV9GTE9BVF9DT01QT05FTlRTX05WJzogMHg4ODhDLAorICAnRkxPQVRfQ0xF
QVJfQ09MT1JfVkFMVUVfTlYnOiAweDg4OEQsCisgICdGTE9BVF9SR0JBX01PREVfTlYnOiAweDg4
OEUsCisgICdGT0dfRElTVEFOQ0VfTU9ERV9OVic6IDB4ODU1QSwKKyAgJ0VZRV9SQURJQUxfTlYn
OiAweDg1NUIsCisgICdFWUVfUExBTkVfQUJTT0xVVEVfTlYnOiAweDg1NUMsCisgICdNQVhfRlJB
R01FTlRfUFJPR1JBTV9MT0NBTF9QQVJBTUVURVJTX05WJzogMHg4ODY4LAorICAnRlJBR01FTlRf
UFJPR1JBTV9OVic6IDB4ODg3MCwKKyAgJ01BWF9URVhUVVJFX0NPT1JEU19OVic6IDB4ODg3MSwK
KyAgJ01BWF9URVhUVVJFX0lNQUdFX1VOSVRTX05WJzogMHg4ODcyLAorICAnRlJBR01FTlRfUFJP
R1JBTV9CSU5ESU5HX05WJzogMHg4ODczLAorICAnUFJPR1JBTV9FUlJPUl9TVFJJTkdfTlYnOiAw
eDg4NzQsCisgICdNQVhfUFJPR1JBTV9FWEVDX0lOU1RSVUNUSU9OU19OVic6IDB4ODhGNCwKKyAg
J01BWF9QUk9HUkFNX0NBTExfREVQVEhfTlYnOiAweDg4RjUsCisgICdNQVhfUFJPR1JBTV9JRl9E
RVBUSF9OVic6IDB4ODhGNiwKKyAgJ01BWF9QUk9HUkFNX0xPT1BfREVQVEhfTlYnOiAweDg4Rjcs
CisgICdNQVhfUFJPR1JBTV9MT09QX0NPVU5UX05WJzogMHg4OEY4LAorICAnUkVOREVSQlVGRkVS
X0NPVkVSQUdFX1NBTVBMRVNfTlYnOiAweDhDQUIsCisgICdSRU5ERVJCVUZGRVJfQ09MT1JfU0FN
UExFU19OVic6IDB4OEUxMCwKKyAgJ01BWF9NVUxUSVNBTVBMRV9DT1ZFUkFHRV9NT0RFU19OVic6
IDB4OEUxMSwKKyAgJ01VTFRJU0FNUExFX0NPVkVSQUdFX01PREVTX05WJzogMHg4RTEyLAorICAn
R0VPTUVUUllfUFJPR1JBTV9OVic6IDB4OEMyNiwKKyAgJ01BWF9QUk9HUkFNX09VVFBVVF9WRVJU
SUNFU19OVic6IDB4OEMyNywKKyAgJ01BWF9QUk9HUkFNX1RPVEFMX09VVFBVVF9DT01QT05FTlRT
X05WJzogMHg4QzI4LAorICAnTUlOX1BST0dSQU1fVEVYRUxfT0ZGU0VUX05WJzogMHg4OTA0LAor
ICAnTUFYX1BST0dSQU1fVEVYRUxfT0ZGU0VUX05WJzogMHg4OTA1LAorICAnUFJPR1JBTV9BVFRS
SUJfQ09NUE9ORU5UU19OVic6IDB4ODkwNiwKKyAgJ1BST0dSQU1fUkVTVUxUX0NPTVBPTkVOVFNf
TlYnOiAweDg5MDcsCisgICdNQVhfUFJPR1JBTV9BVFRSSUJfQ09NUE9ORU5UU19OVic6IDB4ODkw
OCwKKyAgJ01BWF9QUk9HUkFNX1JFU1VMVF9DT01QT05FTlRTX05WJzogMHg4OTA5LAorICAnTUFY
X1BST0dSQU1fR0VORVJJQ19BVFRSSUJTX05WJzogMHg4REE1LAorICAnTUFYX1BST0dSQU1fR0VO
RVJJQ19SRVNVTFRTX05WJzogMHg4REE2LAorICAnSEFMRl9GTE9BVF9OVic6IDB4MTQwQiwKKyAg
J01BWF9TSElOSU5FU1NfTlYnOiAweDg1MDQsCisgICdNQVhfU1BPVF9FWFBPTkVOVF9OVic6IDB4
ODUwNSwKKyAgJ01VTFRJU0FNUExFX0ZJTFRFUl9ISU5UX05WJzogMHg4NTM0LAorICAnUElYRUxf
Q09VTlRFUl9CSVRTX05WJzogMHg4ODY0LAorICAnQ1VSUkVOVF9PQ0NMVVNJT05fUVVFUllfSURf
TlYnOiAweDg4NjUsCisgICdQSVhFTF9DT1VOVF9OVic6IDB4ODg2NiwKKyAgJ1BJWEVMX0NPVU5U
X0FWQUlMQUJMRV9OVic6IDB4ODg2NywKKyAgJ0RFUFRIX1NURU5DSUxfTlYnOiAweDg0RjksCisg
ICdVTlNJR05FRF9JTlRfMjRfOF9OVic6IDB4ODRGQSwKKyAgJ01BWF9QUk9HUkFNX1BBUkFNRVRF
Ul9CVUZGRVJfQklORElOR1NfTlYnOiAweDhEQTAsCisgICdNQVhfUFJPR1JBTV9QQVJBTUVURVJf
QlVGRkVSX1NJWkVfTlYnOiAweDhEQTEsCisgICdWRVJURVhfUFJPR1JBTV9QQVJBTUVURVJfQlVG
RkVSX05WJzogMHg4REEyLAorICAnR0VPTUVUUllfUFJPR1JBTV9QQVJBTUVURVJfQlVGRkVSX05W
JzogMHg4REEzLAorICAnRlJBR01FTlRfUFJPR1JBTV9QQVJBTUVURVJfQlVGRkVSX05WJzogMHg4
REE0LAorICAnV1JJVEVfUElYRUxfREFUQV9SQU5HRV9OVic6IDB4ODg3OCwKKyAgJ1JFQURfUElY
RUxfREFUQV9SQU5HRV9OVic6IDB4ODg3OSwKKyAgJ1dSSVRFX1BJWEVMX0RBVEFfUkFOR0VfTEVO
R1RIX05WJzogMHg4ODdBLAorICAnUkVBRF9QSVhFTF9EQVRBX1JBTkdFX0xFTkdUSF9OVic6IDB4
ODg3QiwKKyAgJ1dSSVRFX1BJWEVMX0RBVEFfUkFOR0VfUE9JTlRFUl9OVic6IDB4ODg3QywKKyAg
J1JFQURfUElYRUxfREFUQV9SQU5HRV9QT0lOVEVSX05WJzogMHg4ODdELAorICAnUE9JTlRfU1BS
SVRFX05WJzogMHg4ODYxLAorICAnQ09PUkRfUkVQTEFDRV9OVic6IDB4ODg2MiwKKyAgJ1BPSU5U
X1NQUklURV9SX01PREVfTlYnOiAweDg4NjMsCisgICdGUkFNRV9OVic6IDB4OEUyNiwKKyAgJ0ZJ
RUxEU19OVic6IDB4OEUyNywKKyAgJ0NVUlJFTlRfVElNRV9OVic6IDB4OEUyOCwKKyAgJ05VTV9G
SUxMX1NUUkVBTVNfTlYnOiAweDhFMjksCisgICdQUkVTRU5UX1RJTUVfTlYnOiAweDhFMkEsCisg
ICdQUkVTRU5UX0RVUkFUSU9OX05WJzogMHg4RTJCLAorICAnUFJJTUlUSVZFX1JFU1RBUlRfTlYn
OiAweDg1NTgsCisgICdQUklNSVRJVkVfUkVTVEFSVF9JTkRFWF9OVic6IDB4ODU1OSwKKyAgJ1JF
R0lTVEVSX0NPTUJJTkVSU19OVic6IDB4ODUyMiwKKyAgJ1ZBUklBQkxFX0FfTlYnOiAweDg1MjMs
CisgICdWQVJJQUJMRV9CX05WJzogMHg4NTI0LAorICAnVkFSSUFCTEVfQ19OVic6IDB4ODUyNSwK
KyAgJ1ZBUklBQkxFX0RfTlYnOiAweDg1MjYsCisgICdWQVJJQUJMRV9FX05WJzogMHg4NTI3LAor
ICAnVkFSSUFCTEVfRl9OVic6IDB4ODUyOCwKKyAgJ1ZBUklBQkxFX0dfTlYnOiAweDg1MjksCisg
ICdDT05TVEFOVF9DT0xPUjBfTlYnOiAweDg1MkEsCisgICdDT05TVEFOVF9DT0xPUjFfTlYnOiAw
eDg1MkIsCisgICdQUklNQVJZX0NPTE9SX05WJzogMHg4NTJDLAorICAnU0VDT05EQVJZX0NPTE9S
X05WJzogMHg4NTJELAorICAnU1BBUkUwX05WJzogMHg4NTJFLAorICAnU1BBUkUxX05WJzogMHg4
NTJGLAorICAnRElTQ0FSRF9OVic6IDB4ODUzMCwKKyAgJ0VfVElNRVNfRl9OVic6IDB4ODUzMSwK
KyAgJ1NQQVJFMF9QTFVTX1NFQ09OREFSWV9DT0xPUl9OVic6IDB4ODUzMiwKKyAgJ1VOU0lHTkVE
X0lERU5USVRZX05WJzogMHg4NTM2LAorICAnVU5TSUdORURfSU5WRVJUX05WJzogMHg4NTM3LAor
ICAnRVhQQU5EX05PUk1BTF9OVic6IDB4ODUzOCwKKyAgJ0VYUEFORF9ORUdBVEVfTlYnOiAweDg1
MzksCisgICdIQUxGX0JJQVNfTk9STUFMX05WJzogMHg4NTNBLAorICAnSEFMRl9CSUFTX05FR0FU
RV9OVic6IDB4ODUzQiwKKyAgJ1NJR05FRF9JREVOVElUWV9OVic6IDB4ODUzQywKKyAgJ1NJR05F
RF9ORUdBVEVfTlYnOiAweDg1M0QsCisgICdTQ0FMRV9CWV9UV09fTlYnOiAweDg1M0UsCisgICdT
Q0FMRV9CWV9GT1VSX05WJzogMHg4NTNGLAorICAnU0NBTEVfQllfT05FX0hBTEZfTlYnOiAweDg1
NDAsCisgICdCSUFTX0JZX05FR0FUSVZFX09ORV9IQUxGX05WJzogMHg4NTQxLAorICAnQ09NQklO
RVJfSU5QVVRfTlYnOiAweDg1NDIsCisgICdDT01CSU5FUl9NQVBQSU5HX05WJzogMHg4NTQzLAor
ICAnQ09NQklORVJfQ09NUE9ORU5UX1VTQUdFX05WJzogMHg4NTQ0LAorICAnQ09NQklORVJfQUJf
RE9UX1BST0RVQ1RfTlYnOiAweDg1NDUsCisgICdDT01CSU5FUl9DRF9ET1RfUFJPRFVDVF9OVic6
IDB4ODU0NiwKKyAgJ0NPTUJJTkVSX01VWF9TVU1fTlYnOiAweDg1NDcsCisgICdDT01CSU5FUl9T
Q0FMRV9OVic6IDB4ODU0OCwKKyAgJ0NPTUJJTkVSX0JJQVNfTlYnOiAweDg1NDksCisgICdDT01C
SU5FUl9BQl9PVVRQVVRfTlYnOiAweDg1NEEsCisgICdDT01CSU5FUl9DRF9PVVRQVVRfTlYnOiAw
eDg1NEIsCisgICdDT01CSU5FUl9TVU1fT1VUUFVUX05WJzogMHg4NTRDLAorICAnTUFYX0dFTkVS
QUxfQ09NQklORVJTX05WJzogMHg4NTRELAorICAnTlVNX0dFTkVSQUxfQ09NQklORVJTX05WJzog
MHg4NTRFLAorICAnQ09MT1JfU1VNX0NMQU1QX05WJzogMHg4NTRGLAorICAnQ09NQklORVIwX05W
JzogMHg4NTUwLAorICAnQ09NQklORVIxX05WJzogMHg4NTUxLAorICAnQ09NQklORVIyX05WJzog
MHg4NTUyLAorICAnQ09NQklORVIzX05WJzogMHg4NTUzLAorICAnQ09NQklORVI0X05WJzogMHg4
NTU0LAorICAnQ09NQklORVI1X05WJzogMHg4NTU1LAorICAnQ09NQklORVI2X05WJzogMHg4NTU2
LAorICAnQ09NQklORVI3X05WJzogMHg4NTU3LAorICAnUEVSX1NUQUdFX0NPTlNUQU5UU19OVic6
IDB4ODUzNSwKKyAgJ0VNQk9TU19MSUdIVF9OVic6IDB4ODU1RCwKKyAgJ0VNQk9TU19DT05TVEFO
VF9OVic6IDB4ODU1RSwKKyAgJ0VNQk9TU19NQVBfTlYnOiAweDg1NUYsCisgICdOT1JNQUxfTUFQ
X05WJzogMHg4NTExLAorICAnUkVGTEVDVElPTl9NQVBfTlYnOiAweDg1MTIsCisgICdDT01CSU5F
NF9OVic6IDB4ODUwMywKKyAgJ1NPVVJDRTNfUkdCX05WJzogMHg4NTgzLAorICAnU09VUkNFM19B
TFBIQV9OVic6IDB4ODU4QiwKKyAgJ09QRVJBTkQzX1JHQl9OVic6IDB4ODU5MywKKyAgJ09QRVJB
TkQzX0FMUEhBX05WJzogMHg4NTlCLAorICAnVEVYVFVSRV9VTlNJR05FRF9SRU1BUF9NT0RFX05W
JzogMHg4ODhGLAorICAnVEVYVFVSRV9SRUNUQU5HTEVfTlYnOiAweDg0RjUsCisgICdURVhUVVJF
X0JJTkRJTkdfUkVDVEFOR0xFX05WJzogMHg4NEY2LAorICAnUFJPWFlfVEVYVFVSRV9SRUNUQU5H
TEVfTlYnOiAweDg0RjcsCisgICdNQVhfUkVDVEFOR0xFX1RFWFRVUkVfU0laRV9OVic6IDB4ODRG
OCwKKyAgJ09GRlNFVF9URVhUVVJFX1JFQ1RBTkdMRV9OVic6IDB4ODY0QywKKyAgJ09GRlNFVF9U
RVhUVVJFX1JFQ1RBTkdMRV9TQ0FMRV9OVic6IDB4ODY0RCwKKyAgJ0RPVF9QUk9EVUNUX1RFWFRV
UkVfUkVDVEFOR0xFX05WJzogMHg4NjRFLAorICAnUkdCQV9VTlNJR05FRF9ET1RfUFJPRFVDVF9N
QVBQSU5HX05WJzogMHg4NkQ5LAorICAnVU5TSUdORURfSU5UX1M4X1M4XzhfOF9OVic6IDB4ODZE
QSwKKyAgJ1VOU0lHTkVEX0lOVF84XzhfUzhfUzhfUkVWX05WJzogMHg4NkRCLAorICAnRFNEVF9N
QUdfSU5URU5TSVRZX05WJzogMHg4NkRDLAorICAnU0hBREVSX0NPTlNJU1RFTlRfTlYnOiAweDg2
REQsCisgICdURVhUVVJFX1NIQURFUl9OVic6IDB4ODZERSwKKyAgJ1NIQURFUl9PUEVSQVRJT05f
TlYnOiAweDg2REYsCisgICdDVUxMX01PREVTX05WJzogMHg4NkUwLAorICAnT0ZGU0VUX1RFWFRV
UkVfMkRfTUFUUklYX05WJzogMHg4NkUxLAorICAnT0ZGU0VUX1RFWFRVUkVfTUFUUklYX05WJzog
MHg4NkUxLAorICAnT0ZGU0VUX1RFWFRVUkVfMkRfU0NBTEVfTlYnOiAweDg2RTIsCisgICdPRkZT
RVRfVEVYVFVSRV9TQ0FMRV9OVic6IDB4ODZFMiwKKyAgJ09GRlNFVF9URVhUVVJFX0JJQVNfTlYn
OiAweDg2RTMsCisgICdPRkZTRVRfVEVYVFVSRV8yRF9CSUFTX05WJzogMHg4NkUzLAorICAnUFJF
VklPVVNfVEVYVFVSRV9JTlBVVF9OVic6IDB4ODZFNCwKKyAgJ0NPTlNUX0VZRV9OVic6IDB4ODZF
NSwKKyAgJ1BBU1NfVEhST1VHSF9OVic6IDB4ODZFNiwKKyAgJ0NVTExfRlJBR01FTlRfTlYnOiAw
eDg2RTcsCisgICdPRkZTRVRfVEVYVFVSRV8yRF9OVic6IDB4ODZFOCwKKyAgJ0RFUEVOREVOVF9B
Ul9URVhUVVJFXzJEX05WJzogMHg4NkU5LAorICAnREVQRU5ERU5UX0dCX1RFWFRVUkVfMkRfTlYn
OiAweDg2RUEsCisgICdET1RfUFJPRFVDVF9OVic6IDB4ODZFQywKKyAgJ0RPVF9QUk9EVUNUX0RF
UFRIX1JFUExBQ0VfTlYnOiAweDg2RUQsCisgICdET1RfUFJPRFVDVF9URVhUVVJFXzJEX05WJzog
MHg4NkVFLAorICAnRE9UX1BST0RVQ1RfVEVYVFVSRV9DVUJFX01BUF9OVic6IDB4ODZGMCwKKyAg
J0RPVF9QUk9EVUNUX0RJRkZVU0VfQ1VCRV9NQVBfTlYnOiAweDg2RjEsCisgICdET1RfUFJPRFVD
VF9SRUZMRUNUX0NVQkVfTUFQX05WJzogMHg4NkYyLAorICAnRE9UX1BST0RVQ1RfQ09OU1RfRVlF
X1JFRkxFQ1RfQ1VCRV9NQVBfTlYnOiAweDg2RjMsCisgICdISUxPX05WJzogMHg4NkY0LAorICAn
RFNEVF9OVic6IDB4ODZGNSwKKyAgJ0RTRFRfTUFHX05WJzogMHg4NkY2LAorICAnRFNEVF9NQUdf
VklCX05WJzogMHg4NkY3LAorICAnSElMTzE2X05WJzogMHg4NkY4LAorICAnU0lHTkVEX0hJTE9f
TlYnOiAweDg2RjksCisgICdTSUdORURfSElMTzE2X05WJzogMHg4NkZBLAorICAnU0lHTkVEX1JH
QkFfTlYnOiAweDg2RkIsCisgICdTSUdORURfUkdCQThfTlYnOiAweDg2RkMsCisgICdTSUdORURf
UkdCX05WJzogMHg4NkZFLAorICAnU0lHTkVEX1JHQjhfTlYnOiAweDg2RkYsCisgICdTSUdORURf
TFVNSU5BTkNFX05WJzogMHg4NzAxLAorICAnU0lHTkVEX0xVTUlOQU5DRThfTlYnOiAweDg3MDIs
CisgICdTSUdORURfTFVNSU5BTkNFX0FMUEhBX05WJzogMHg4NzAzLAorICAnU0lHTkVEX0xVTUlO
QU5DRThfQUxQSEE4X05WJzogMHg4NzA0LAorICAnU0lHTkVEX0FMUEhBX05WJzogMHg4NzA1LAor
ICAnU0lHTkVEX0FMUEhBOF9OVic6IDB4ODcwNiwKKyAgJ1NJR05FRF9JTlRFTlNJVFlfTlYnOiAw
eDg3MDcsCisgICdTSUdORURfSU5URU5TSVRZOF9OVic6IDB4ODcwOCwKKyAgJ0RTRFQ4X05WJzog
MHg4NzA5LAorICAnRFNEVDhfTUFHOF9OVic6IDB4ODcwQSwKKyAgJ0RTRFQ4X01BRzhfSU5URU5T
SVRZOF9OVic6IDB4ODcwQiwKKyAgJ1NJR05FRF9SR0JfVU5TSUdORURfQUxQSEFfTlYnOiAweDg3
MEMsCisgICdTSUdORURfUkdCOF9VTlNJR05FRF9BTFBIQThfTlYnOiAweDg3MEQsCisgICdISV9T
Q0FMRV9OVic6IDB4ODcwRSwKKyAgJ0xPX1NDQUxFX05WJzogMHg4NzBGLAorICAnRFNfU0NBTEVf
TlYnOiAweDg3MTAsCisgICdEVF9TQ0FMRV9OVic6IDB4ODcxMSwKKyAgJ01BR05JVFVERV9TQ0FM
RV9OVic6IDB4ODcxMiwKKyAgJ1ZJQlJBTkNFX1NDQUxFX05WJzogMHg4NzEzLAorICAnSElfQklB
U19OVic6IDB4ODcxNCwKKyAgJ0xPX0JJQVNfTlYnOiAweDg3MTUsCisgICdEU19CSUFTX05WJzog
MHg4NzE2LAorICAnRFRfQklBU19OVic6IDB4ODcxNywKKyAgJ01BR05JVFVERV9CSUFTX05WJzog
MHg4NzE4LAorICAnVklCUkFOQ0VfQklBU19OVic6IDB4ODcxOSwKKyAgJ1RFWFRVUkVfQk9SREVS
X1ZBTFVFU19OVic6IDB4ODcxQSwKKyAgJ1RFWFRVUkVfSElfU0laRV9OVic6IDB4ODcxQiwKKyAg
J1RFWFRVUkVfTE9fU0laRV9OVic6IDB4ODcxQywKKyAgJ1RFWFRVUkVfRFNfU0laRV9OVic6IDB4
ODcxRCwKKyAgJ1RFWFRVUkVfRFRfU0laRV9OVic6IDB4ODcxRSwKKyAgJ1RFWFRVUkVfTUFHX1NJ
WkVfTlYnOiAweDg3MUYsCisgICdVTlNJR05FRF9JTlRfUzhfUzhfOF84X05WJzogMHg4NkRBLAor
ICAnVU5TSUdORURfSU5UXzhfOF9TOF9TOF9SRVZfTlYnOiAweDg2REIsCisgICdEU0RUX01BR19J
TlRFTlNJVFlfTlYnOiAweDg2REMsCisgICdET1RfUFJPRFVDVF9URVhUVVJFXzNEX05WJzogMHg4
NkVGLAorICAnSElMT19OVic6IDB4ODZGNCwKKyAgJ0RTRFRfTlYnOiAweDg2RjUsCisgICdEU0RU
X01BR19OVic6IDB4ODZGNiwKKyAgJ0RTRFRfTUFHX1ZJQl9OVic6IDB4ODZGNywKKyAgJ0hJTE8x
Nl9OVic6IDB4ODZGOCwKKyAgJ1NJR05FRF9ISUxPX05WJzogMHg4NkY5LAorICAnU0lHTkVEX0hJ
TE8xNl9OVic6IDB4ODZGQSwKKyAgJ1NJR05FRF9SR0JBX05WJzogMHg4NkZCLAorICAnU0lHTkVE
X1JHQkE4X05WJzogMHg4NkZDLAorICAnU0lHTkVEX1JHQl9OVic6IDB4ODZGRSwKKyAgJ1NJR05F
RF9SR0I4X05WJzogMHg4NkZGLAorICAnU0lHTkVEX0xVTUlOQU5DRV9OVic6IDB4ODcwMSwKKyAg
J1NJR05FRF9MVU1JTkFOQ0U4X05WJzogMHg4NzAyLAorICAnU0lHTkVEX0xVTUlOQU5DRV9BTFBI
QV9OVic6IDB4ODcwMywKKyAgJ1NJR05FRF9MVU1JTkFOQ0U4X0FMUEhBOF9OVic6IDB4ODcwNCwK
KyAgJ1NJR05FRF9BTFBIQV9OVic6IDB4ODcwNSwKKyAgJ1NJR05FRF9BTFBIQThfTlYnOiAweDg3
MDYsCisgICdTSUdORURfSU5URU5TSVRZX05WJzogMHg4NzA3LAorICAnU0lHTkVEX0lOVEVOU0lU
WThfTlYnOiAweDg3MDgsCisgICdEU0RUOF9OVic6IDB4ODcwOSwKKyAgJ0RTRFQ4X01BRzhfTlYn
OiAweDg3MEEsCisgICdEU0RUOF9NQUc4X0lOVEVOU0lUWThfTlYnOiAweDg3MEIsCisgICdTSUdO
RURfUkdCX1VOU0lHTkVEX0FMUEhBX05WJzogMHg4NzBDLAorICAnU0lHTkVEX1JHQjhfVU5TSUdO
RURfQUxQSEE4X05WJzogMHg4NzBELAorICAnT0ZGU0VUX1BST0pFQ1RJVkVfVEVYVFVSRV8yRF9O
Vic6IDB4ODg1MCwKKyAgJ09GRlNFVF9QUk9KRUNUSVZFX1RFWFRVUkVfMkRfU0NBTEVfTlYnOiAw
eDg4NTEsCisgICdPRkZTRVRfUFJPSkVDVElWRV9URVhUVVJFX1JFQ1RBTkdMRV9OVic6IDB4ODg1
MiwKKyAgJ09GRlNFVF9QUk9KRUNUSVZFX1RFWFRVUkVfUkVDVEFOR0xFX1NDQUxFX05WJzogMHg4
ODUzLAorICAnT0ZGU0VUX0hJTE9fVEVYVFVSRV8yRF9OVic6IDB4ODg1NCwKKyAgJ09GRlNFVF9I
SUxPX1RFWFRVUkVfUkVDVEFOR0xFX05WJzogMHg4ODU1LAorICAnT0ZGU0VUX0hJTE9fUFJPSkVD
VElWRV9URVhUVVJFXzJEX05WJzogMHg4ODU2LAorICAnT0ZGU0VUX0hJTE9fUFJPSkVDVElWRV9U
RVhUVVJFX1JFQ1RBTkdMRV9OVic6IDB4ODg1NywKKyAgJ0RFUEVOREVOVF9ISUxPX1RFWFRVUkVf
MkRfTlYnOiAweDg4NTgsCisgICdERVBFTkRFTlRfUkdCX1RFWFRVUkVfM0RfTlYnOiAweDg4NTks
CisgICdERVBFTkRFTlRfUkdCX1RFWFRVUkVfQ1VCRV9NQVBfTlYnOiAweDg4NUEsCisgICdET1Rf
UFJPRFVDVF9QQVNTX1RIUk9VR0hfTlYnOiAweDg4NUIsCisgICdET1RfUFJPRFVDVF9URVhUVVJF
XzFEX05WJzogMHg4ODVDLAorICAnRE9UX1BST0RVQ1RfQUZGSU5FX0RFUFRIX1JFUExBQ0VfTlYn
OiAweDg4NUQsCisgICdISUxPOF9OVic6IDB4ODg1RSwKKyAgJ1NJR05FRF9ISUxPOF9OVic6IDB4
ODg1RiwKKyAgJ0ZPUkNFX0JMVUVfVE9fT05FX05WJzogMHg4ODYwLAorICAnQkFDS19QUklNQVJZ
X0NPTE9SX05WJzogMHg4Qzc3LAorICAnQkFDS19TRUNPTkRBUllfQ09MT1JfTlYnOiAweDhDNzgs
CisgICdURVhUVVJFX0NPT1JEX05WJzogMHg4Qzc5LAorICAnQ0xJUF9ESVNUQU5DRV9OVic6IDB4
OEM3QSwKKyAgJ1ZFUlRFWF9JRF9OVic6IDB4OEM3QiwKKyAgJ1BSSU1JVElWRV9JRF9OVic6IDB4
OEM3QywKKyAgJ0dFTkVSSUNfQVRUUklCX05WJzogMHg4QzdELAorICAnVFJBTlNGT1JNX0ZFRURC
QUNLX0FUVFJJQlNfTlYnOiAweDhDN0UsCisgICdUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX01P
REVfTlYnOiAweDhDN0YsCisgICdNQVhfVFJBTlNGT1JNX0ZFRURCQUNLX1NFUEFSQVRFX0NPTVBP
TkVOVFNfTlYnOiAweDhDODAsCisgICdBQ1RJVkVfVkFSWUlOR1NfTlYnOiAweDhDODEsCisgICdB
Q1RJVkVfVkFSWUlOR19NQVhfTEVOR1RIX05WJzogMHg4QzgyLAorICAnVFJBTlNGT1JNX0ZFRURC
QUNLX1ZBUllJTkdTX05WJzogMHg4QzgzLAorICAnVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9T
VEFSVF9OVic6IDB4OEM4NCwKKyAgJ1RSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU0laRV9OVic6
IDB4OEM4NSwKKyAgJ1RSQU5TRk9STV9GRUVEQkFDS19SRUNPUkRfTlYnOiAweDhDODYsCisgICdQ
UklNSVRJVkVTX0dFTkVSQVRFRF9OVic6IDB4OEM4NywKKyAgJ1RSQU5TRk9STV9GRUVEQkFDS19Q
UklNSVRJVkVTX1dSSVRURU5fTlYnOiAweDhDODgsCisgICdSQVNURVJJWkVSX0RJU0NBUkRfTlYn
OiAweDhDODksCisgICdNQVhfVFJBTlNGT1JNX0ZFRURCQUNLX0lOVEVSTEVBVkVEX0NPTVBPTkVO
VFNfTlYnOiAweDhDOEEsCisgICdNQVhfVFJBTlNGT1JNX0ZFRURCQUNLX1NFUEFSQVRFX0FUVFJJ
QlNfTlYnOiAweDhDOEIsCisgICdJTlRFUkxFQVZFRF9BVFRSSUJTX05WJzogMHg4QzhDLAorICAn
U0VQQVJBVEVfQVRUUklCU19OVic6IDB4OEM4RCwKKyAgJ1RSQU5TRk9STV9GRUVEQkFDS19CVUZG
RVJfTlYnOiAweDhDOEUsCisgICdUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkdfTlYn
OiAweDhDOEYsCisgICdWRVJURVhfQVJSQVlfUkFOR0VfTlYnOiAweDg1MUQsCisgICdWRVJURVhf
QVJSQVlfUkFOR0VfTEVOR1RIX05WJzogMHg4NTFFLAorICAnVkVSVEVYX0FSUkFZX1JBTkdFX1ZB
TElEX05WJzogMHg4NTFGLAorICAnTUFYX1ZFUlRFWF9BUlJBWV9SQU5HRV9FTEVNRU5UX05WJzog
MHg4NTIwLAorICAnVkVSVEVYX0FSUkFZX1JBTkdFX1BPSU5URVJfTlYnOiAweDg1MjEsCisgICdW
RVJURVhfQVJSQVlfUkFOR0VfV0lUSE9VVF9GTFVTSF9OVic6IDB4ODUzMywKKyAgJ1ZFUlRFWF9Q
Uk9HUkFNX05WJzogMHg4NjIwLAorICAnVkVSVEVYX1NUQVRFX1BST0dSQU1fTlYnOiAweDg2MjEs
CisgICdBVFRSSUJfQVJSQVlfU0laRV9OVic6IDB4ODYyMywKKyAgJ0FUVFJJQl9BUlJBWV9TVFJJ
REVfTlYnOiAweDg2MjQsCisgICdBVFRSSUJfQVJSQVlfVFlQRV9OVic6IDB4ODYyNSwKKyAgJ0NV
UlJFTlRfQVRUUklCX05WJzogMHg4NjI2LAorICAnUFJPR1JBTV9MRU5HVEhfTlYnOiAweDg2Mjcs
CisgICdQUk9HUkFNX1NUUklOR19OVic6IDB4ODYyOCwKKyAgJ01PREVMVklFV19QUk9KRUNUSU9O
X05WJzogMHg4NjI5LAorICAnSURFTlRJVFlfTlYnOiAweDg2MkEsCisgICdJTlZFUlNFX05WJzog
MHg4NjJCLAorICAnVFJBTlNQT1NFX05WJzogMHg4NjJDLAorICAnSU5WRVJTRV9UUkFOU1BPU0Vf
TlYnOiAweDg2MkQsCisgICdNQVhfVFJBQ0tfTUFUUklYX1NUQUNLX0RFUFRIX05WJzogMHg4NjJF
LAorICAnTUFYX1RSQUNLX01BVFJJQ0VTX05WJzogMHg4NjJGLAorICAnTUFUUklYMF9OVic6IDB4
ODYzMCwKKyAgJ01BVFJJWDFfTlYnOiAweDg2MzEsCisgICdNQVRSSVgyX05WJzogMHg4NjMyLAor
ICAnTUFUUklYM19OVic6IDB4ODYzMywKKyAgJ01BVFJJWDRfTlYnOiAweDg2MzQsCisgICdNQVRS
SVg1X05WJzogMHg4NjM1LAorICAnTUFUUklYNl9OVic6IDB4ODYzNiwKKyAgJ01BVFJJWDdfTlYn
OiAweDg2MzcsCisgICdDVVJSRU5UX01BVFJJWF9TVEFDS19ERVBUSF9OVic6IDB4ODY0MCwKKyAg
J0NVUlJFTlRfTUFUUklYX05WJzogMHg4NjQxLAorICAnVkVSVEVYX1BST0dSQU1fUE9JTlRfU0la
RV9OVic6IDB4ODY0MiwKKyAgJ1ZFUlRFWF9QUk9HUkFNX1RXT19TSURFX05WJzogMHg4NjQzLAor
ICAnUFJPR1JBTV9QQVJBTUVURVJfTlYnOiAweDg2NDQsCisgICdBVFRSSUJfQVJSQVlfUE9JTlRF
Ul9OVic6IDB4ODY0NSwKKyAgJ1BST0dSQU1fVEFSR0VUX05WJzogMHg4NjQ2LAorICAnUFJPR1JB
TV9SRVNJREVOVF9OVic6IDB4ODY0NywKKyAgJ1RSQUNLX01BVFJJWF9OVic6IDB4ODY0OCwKKyAg
J1RSQUNLX01BVFJJWF9UUkFOU0ZPUk1fTlYnOiAweDg2NDksCisgICdWRVJURVhfUFJPR1JBTV9C
SU5ESU5HX05WJzogMHg4NjRBLAorICAnUFJPR1JBTV9FUlJPUl9QT1NJVElPTl9OVic6IDB4ODY0
QiwKKyAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVkwX05WJzogMHg4NjUwLAorICAnVkVSVEVYX0FUVFJJ
Ql9BUlJBWTFfTlYnOiAweDg2NTEsCisgICdWRVJURVhfQVRUUklCX0FSUkFZMl9OVic6IDB4ODY1
MiwKKyAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVkzX05WJzogMHg4NjUzLAorICAnVkVSVEVYX0FUVFJJ
Ql9BUlJBWTRfTlYnOiAweDg2NTQsCisgICdWRVJURVhfQVRUUklCX0FSUkFZNV9OVic6IDB4ODY1
NSwKKyAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVk2X05WJzogMHg4NjU2LAorICAnVkVSVEVYX0FUVFJJ
Ql9BUlJBWTdfTlYnOiAweDg2NTcsCisgICdWRVJURVhfQVRUUklCX0FSUkFZOF9OVic6IDB4ODY1
OCwKKyAgJ1ZFUlRFWF9BVFRSSUJfQVJSQVk5X05WJzogMHg4NjU5LAorICAnVkVSVEVYX0FUVFJJ
Ql9BUlJBWTEwX05WJzogMHg4NjVBLAorICAnVkVSVEVYX0FUVFJJQl9BUlJBWTExX05WJzogMHg4
NjVCLAorICAnVkVSVEVYX0FUVFJJQl9BUlJBWTEyX05WJzogMHg4NjVDLAorICAnVkVSVEVYX0FU
VFJJQl9BUlJBWTEzX05WJzogMHg4NjVELAorICAnVkVSVEVYX0FUVFJJQl9BUlJBWTE0X05WJzog
MHg4NjVFLAorICAnVkVSVEVYX0FUVFJJQl9BUlJBWTE1X05WJzogMHg4NjVGLAorICAnTUFQMV9W
RVJURVhfQVRUUklCMF80X05WJzogMHg4NjYwLAorICAnTUFQMV9WRVJURVhfQVRUUklCMV80X05W
JzogMHg4NjYxLAorICAnTUFQMV9WRVJURVhfQVRUUklCMl80X05WJzogMHg4NjYyLAorICAnTUFQ
MV9WRVJURVhfQVRUUklCM180X05WJzogMHg4NjYzLAorICAnTUFQMV9WRVJURVhfQVRUUklCNF80
X05WJzogMHg4NjY0LAorICAnTUFQMV9WRVJURVhfQVRUUklCNV80X05WJzogMHg4NjY1LAorICAn
TUFQMV9WRVJURVhfQVRUUklCNl80X05WJzogMHg4NjY2LAorICAnTUFQMV9WRVJURVhfQVRUUklC
N180X05WJzogMHg4NjY3LAorICAnTUFQMV9WRVJURVhfQVRUUklCOF80X05WJzogMHg4NjY4LAor
ICAnTUFQMV9WRVJURVhfQVRUUklCOV80X05WJzogMHg4NjY5LAorICAnTUFQMV9WRVJURVhfQVRU
UklCMTBfNF9OVic6IDB4ODY2QSwKKyAgJ01BUDFfVkVSVEVYX0FUVFJJQjExXzRfTlYnOiAweDg2
NkIsCisgICdNQVAxX1ZFUlRFWF9BVFRSSUIxMl80X05WJzogMHg4NjZDLAorICAnTUFQMV9WRVJU
RVhfQVRUUklCMTNfNF9OVic6IDB4ODY2RCwKKyAgJ01BUDFfVkVSVEVYX0FUVFJJQjE0XzRfTlYn
OiAweDg2NkUsCisgICdNQVAxX1ZFUlRFWF9BVFRSSUIxNV80X05WJzogMHg4NjZGLAorICAnTUFQ
Ml9WRVJURVhfQVRUUklCMF80X05WJzogMHg4NjcwLAorICAnTUFQMl9WRVJURVhfQVRUUklCMV80
X05WJzogMHg4NjcxLAorICAnTUFQMl9WRVJURVhfQVRUUklCMl80X05WJzogMHg4NjcyLAorICAn
TUFQMl9WRVJURVhfQVRUUklCM180X05WJzogMHg4NjczLAorICAnTUFQMl9WRVJURVhfQVRUUklC
NF80X05WJzogMHg4Njc0LAorICAnTUFQMl9WRVJURVhfQVRUUklCNV80X05WJzogMHg4Njc1LAor
ICAnTUFQMl9WRVJURVhfQVRUUklCNl80X05WJzogMHg4Njc2LAorICAnTUFQMl9WRVJURVhfQVRU
UklCN180X05WJzogMHg4Njc3LAorICAnTUFQMl9WRVJURVhfQVRUUklCOF80X05WJzogMHg4Njc4
LAorICAnTUFQMl9WRVJURVhfQVRUUklCOV80X05WJzogMHg4Njc5LAorICAnTUFQMl9WRVJURVhf
QVRUUklCMTBfNF9OVic6IDB4ODY3QSwKKyAgJ01BUDJfVkVSVEVYX0FUVFJJQjExXzRfTlYnOiAw
eDg2N0IsCisgICdNQVAyX1ZFUlRFWF9BVFRSSUIxMl80X05WJzogMHg4NjdDLAorICAnTUFQMl9W
RVJURVhfQVRUUklCMTNfNF9OVic6IDB4ODY3RCwKKyAgJ01BUDJfVkVSVEVYX0FUVFJJQjE0XzRf
TlYnOiAweDg2N0UsCisgICdNQVAyX1ZFUlRFWF9BVFRSSUIxNV80X05WJzogMHg4NjdGLAorICAn
TUFYX1BST0dSQU1fRVhFQ19JTlNUUlVDVElPTlNfTlYnOiAweDg4RjQsCisgICdNQVhfUFJPR1JB
TV9DQUxMX0RFUFRIX05WJzogMHg4OEY1LAorICAnTUFYX1ZFUlRFWF9URVhUVVJFX0lNQUdFX1VO
SVRTX0FSQic6IDB4OEI0QywKKyAgJ0JZVEUnOiAweDE0MDAsCisgICdQQUxFVFRFNF9SR0I4X09F
Uyc6IDB4OEI5MCwKKyAgJ1BBTEVUVEU0X1JHQkE4X09FUyc6IDB4OEI5MSwKKyAgJ1BBTEVUVEU0
X1I1X0c2X0I1X09FUyc6IDB4OEI5MiwKKyAgJ1BBTEVUVEU0X1JHQkE0X09FUyc6IDB4OEI5MywK
KyAgJ1BBTEVUVEU0X1JHQjVfQTFfT0VTJzogMHg4Qjk0LAorICAnUEFMRVRURThfUkdCOF9PRVMn
OiAweDhCOTUsCisgICdQQUxFVFRFOF9SR0JBOF9PRVMnOiAweDhCOTYsCisgICdQQUxFVFRFOF9S
NV9HNl9CNV9PRVMnOiAweDhCOTcsCisgICdQQUxFVFRFOF9SR0JBNF9PRVMnOiAweDhCOTgsCisg
ICdQQUxFVFRFOF9SR0I1X0ExX09FUyc6IDB4OEI5OSwKKyAgJ0lNUExFTUVOVEFUSU9OX0NPTE9S
X1JFQURfVFlQRV9PRVMnOiAweDhCOUEsCisgICdJTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFEX0ZP
Uk1BVF9PRVMnOiAweDhCOUIsCisgICdJTlRFUkxBQ0VfT01MJzogMHg4OTgwLAorICAnSU5URVJM
QUNFX1JFQURfT01MJzogMHg4OTgxLAorICAnUEFDS19SRVNBTVBMRV9PTUwnOiAweDg5ODQsCisg
ICdVTlBBQ0tfUkVTQU1QTEVfT01MJzogMHg4OTg1LAorICAnUkVTQU1QTEVfUkVQTElDQVRFX09N
TCc6IDB4ODk4NiwKKyAgJ1JFU0FNUExFX1pFUk9fRklMTF9PTUwnOiAweDg5ODcsCisgICdSRVNB
TVBMRV9BVkVSQUdFX09NTCc6IDB4ODk4OCwKKyAgJ1JFU0FNUExFX0RFQ0lNQVRFX09NTCc6IDB4
ODk4OSwKKyAgJ0ZPUk1BVF9TVUJTQU1QTEVfMjRfMjRfT01MJzogMHg4OTgyLAorICAnRk9STUFU
X1NVQlNBTVBMRV8yNDRfMjQ0X09NTCc6IDB4ODk4MywKKyAgJ1ZFUlRFWDIzX0JJVF9QR0knOiAw
eDAwMDAwMDA0LAorICAnVkVSVEVYNF9CSVRfUEdJJzogMHgwMDAwMDAwOCwKKyAgJ0NPTE9SM19C
SVRfUEdJJzogMHgwMDAxMDAwMCwKKyAgJ0NPTE9SNF9CSVRfUEdJJzogMHgwMDAyMDAwMCwKKyAg
J0VER0VGTEFHX0JJVF9QR0knOiAweDAwMDQwMDAwLAorICAnSU5ERVhfQklUX1BHSSc6IDB4MDAw
ODAwMDAsCisgICdNQVRfQU1CSUVOVF9CSVRfUEdJJzogMHgwMDEwMDAwMCwKKyAgJ01BVF9BTUJJ
RU5UX0FORF9ESUZGVVNFX0JJVF9QR0knOiAweDAwMjAwMDAwLAorICAnTUFUX0RJRkZVU0VfQklU
X1BHSSc6IDB4MDA0MDAwMDAsCisgICdNQVRfRU1JU1NJT05fQklUX1BHSSc6IDB4MDA4MDAwMDAs
CisgICdNQVRfQ09MT1JfSU5ERVhFU19CSVRfUEdJJzogMHgwMTAwMDAwMCwKKyAgJ01BVF9TSElO
SU5FU1NfQklUX1BHSSc6IDB4MDIwMDAwMDAsCisgICdNQVRfU1BFQ1VMQVJfQklUX1BHSSc6IDB4
MDQwMDAwMDAsCisgICdOT1JNQUxfQklUX1BHSSc6IDB4MDgwMDAwMDAsCisgICdURVhDT09SRDFf
QklUX1BHSSc6IDB4MTAwMDAwMDAsCisgICdURVhDT09SRDJfQklUX1BHSSc6IDB4MjAwMDAwMDAs
CisgICdURVhDT09SRDNfQklUX1BHSSc6IDB4NDAwMDAwMDAsCisgICdURVhDT09SRDRfQklUX1BH
SSc6IDB4ODAwMDAwMDAsCisgICdTQ1JFRU5fQ09PUkRJTkFURVNfUkVORCc6IDB4ODQ5MCwKKyAg
J0lOVkVSVEVEX1NDUkVFTl9XX1JFTkQnOiAweDg0OTEsCisgICdSR0JfUzNUQyc6IDB4ODNBMCwK
KyAgJ1JHQjRfUzNUQyc6IDB4ODNBMSwKKyAgJ1JHQkFfUzNUQyc6IDB4ODNBMiwKKyAgJ1JHQkE0
X1MzVEMnOiAweDgzQTMsCisgICdSR0JBX0RYVDVfUzNUQyc6IDB4ODNBNCwKKyAgJ1JHQkE0X0RY
VDVfUzNUQyc6IDB4ODNBNSwKKyAgJ0VYVEVOREVEX1JBTkdFX1NHSVMnOiAweDg1QTUsCisgICdN
SU5fUkVEX1NHSVMnOiAweDg1QTYsCisgICdNQVhfUkVEX1NHSVMnOiAweDg1QTcsCisgICdNSU5f
R1JFRU5fU0dJUyc6IDB4ODVBOCwKKyAgJ01BWF9HUkVFTl9TR0lTJzogMHg4NUE5LAorICAnTUlO
X0JMVUVfU0dJUyc6IDB4ODVBQSwKKyAgJ01BWF9CTFVFX1NHSVMnOiAweDg1QUIsCisgICdNSU5f
QUxQSEFfU0dJUyc6IDB4ODVBQywKKyAgJ01BWF9BTFBIQV9TR0lTJzogMHg4NUFELAorICAnR0VO
RVJBVEVfTUlQTUFQX1NHSVMnOiAweDgxOTEsCisgICdHRU5FUkFURV9NSVBNQVBfSElOVF9TR0lT
JzogMHg4MTkyLAorICAnTVVMVElTQU1QTEVfU0dJUyc6IDB4ODA5RCwKKyAgJ1NBTVBMRV9BTFBI
QV9UT19NQVNLX1NHSVMnOiAweDgwOUUsCisgICdTQU1QTEVfQUxQSEFfVE9fT05FX1NHSVMnOiAw
eDgwOUYsCisgICdTQU1QTEVfTUFTS19TR0lTJzogMHg4MEEwLAorICAnMVBBU1NfU0dJUyc6IDB4
ODBBMSwKKyAgJzJQQVNTXzBfU0dJUyc6IDB4ODBBMiwKKyAgJzJQQVNTXzFfU0dJUyc6IDB4ODBB
MywKKyAgJzRQQVNTXzBfU0dJUyc6IDB4ODBBNCwKKyAgJzRQQVNTXzFfU0dJUyc6IDB4ODBBNSwK
KyAgJzRQQVNTXzJfU0dJUyc6IDB4ODBBNiwKKyAgJzRQQVNTXzNfU0dJUyc6IDB4ODBBNywKKyAg
J1NBTVBMRV9CVUZGRVJTX1NHSVMnOiAweDgwQTgsCisgICdTQU1QTEVTX1NHSVMnOiAweDgwQTks
CisgICdTQU1QTEVfTUFTS19WQUxVRV9TR0lTJzogMHg4MEFBLAorICAnU0FNUExFX01BU0tfSU5W
RVJUX1NHSVMnOiAweDgwQUIsCisgICdTQU1QTEVfUEFUVEVSTl9TR0lTJzogMHg4MEFDLAorICAn
TVVMVElTQU1QTEVfQklUX0VYVCc6IDB4MjAwMDAwMDAsCisgICdFWUVfRElTVEFOQ0VfVE9fUE9J
TlRfU0dJUyc6IDB4ODFGMCwKKyAgJ09CSkVDVF9ESVNUQU5DRV9UT19QT0lOVF9TR0lTJzogMHg4
MUYxLAorICAnRVlFX0RJU1RBTkNFX1RPX0xJTkVfU0dJUyc6IDB4ODFGMiwKKyAgJ09CSkVDVF9E
SVNUQU5DRV9UT19MSU5FX1NHSVMnOiAweDgxRjMsCisgICdFWUVfUE9JTlRfU0dJUyc6IDB4ODFG
NCwKKyAgJ09CSkVDVF9QT0lOVF9TR0lTJzogMHg4MUY1LAorICAnRVlFX0xJTkVfU0dJUyc6IDB4
ODFGNiwKKyAgJ09CSkVDVF9MSU5FX1NHSVMnOiAweDgxRjcsCisgICdDTEFNUF9UT19CT1JERVJf
U0dJUyc6IDB4ODEyRCwKKyAgJ0NMQU1QX1RPX0VER0VfU0dJUyc6IDB4ODEyRiwKKyAgJ1RFWFRV
UkVfTUlOX0xPRF9TR0lTJzogMHg4MTNBLAorICAnVEVYVFVSRV9NQVhfTE9EX1NHSVMnOiAweDgx
M0IsCisgICdURVhUVVJFX0JBU0VfTEVWRUxfU0dJUyc6IDB4ODEzQywKKyAgJ1RFWFRVUkVfTUFY
X0xFVkVMX1NHSVMnOiAweDgxM0QsCisgICdBU1lOQ19NQVJLRVJfU0dJWCc6IDB4ODMyOSwKKyAg
J0FTWU5DX0hJU1RPR1JBTV9TR0lYJzogMHg4MzJDLAorICAnTUFYX0FTWU5DX0hJU1RPR1JBTV9T
R0lYJzogMHg4MzJELAorICAnQVNZTkNfVEVYX0lNQUdFX1NHSVgnOiAweDgzNUMsCisgICdBU1lO
Q19EUkFXX1BJWEVMU19TR0lYJzogMHg4MzVELAorICAnQVNZTkNfUkVBRF9QSVhFTFNfU0dJWCc6
IDB4ODM1RSwKKyAgJ01BWF9BU1lOQ19URVhfSU1BR0VfU0dJWCc6IDB4ODM1RiwKKyAgJ01BWF9B
U1lOQ19EUkFXX1BJWEVMU19TR0lYJzogMHg4MzYwLAorICAnTUFYX0FTWU5DX1JFQURfUElYRUxT
X1NHSVgnOiAweDgzNjEsCisgICdBTFBIQV9NSU5fU0dJWCc6IDB4ODMyMCwKKyAgJ0FMUEhBX01B
WF9TR0lYJzogMHg4MzIxLAorICAnQ09OVk9MVVRJT05fSElOVF9TR0lYJzogMHg4MzE2LAorICAn
REVQVEhfQ09NUE9ORU5UMTZfU0dJWCc6IDB4ODFBNSwKKyAgJ0RFUFRIX0NPTVBPTkVOVDI0X1NH
SVgnOiAweDgxQTYsCisgICdERVBUSF9DT01QT05FTlQzMl9TR0lYJzogMHg4MUE3LAorICAnRk9H
X09GRlNFVF9TR0lYJzogMHg4MTk4LAorICAnRk9HX09GRlNFVF9WQUxVRV9TR0lYJzogMHg4MTk5
LAorICAnSU5URVJMQUNFX1NHSVgnOiAweDgwOTQsCisgICdQQUNLX1JFU0FNUExFX1NHSVgnOiAw
eDg0MkUsCisgICdVTlBBQ0tfUkVTQU1QTEVfU0dJWCc6IDB4ODQyRiwKKyAgJ1JFU0FNUExFX0RF
Q0lNQVRFX1NHSVgnOiAweDg0MzAsCisgICdSRVNBTVBMRV9SRVBMSUNBVEVfU0dJWCc6IDB4ODQz
MywKKyAgJ1JFU0FNUExFX1pFUk9fRklMTF9TR0lYJzogMHg4NDM0LAorICAnVEVYVFVSRV9DT01Q
QVJFX1NHSVgnOiAweDgxOUEsCisgICdURVhUVVJFX0NPTVBBUkVfT1BFUkFUT1JfU0dJWCc6IDB4
ODE5QiwKKyAgJ1RFWFRVUkVfTEVRVUFMX1JfU0dJWCc6IDB4ODE5QywKKyAgJ1RFWFRVUkVfR0VR
VUFMX1JfU0dJWCc6IDB4ODE5RCwKKyAgJ1NIQURPV19BTUJJRU5UX1NHSVgnOiAweDgwQkYsCisg
ICdURVhUVVJFX01BWF9DTEFNUF9TX1NHSVgnOiAweDgzNjksCisgICdURVhUVVJFX01BWF9DTEFN
UF9UX1NHSVgnOiAweDgzNkEsCisgICdURVhUVVJFX01BWF9DTEFNUF9SX1NHSVgnOiAweDgzNkIs
CisgICdURVhUVVJFX01VTFRJX0JVRkZFUl9ISU5UX1NHSVgnOiAweDgxMkUsCisgICdSR0JfU0lH
TkVEX1NHSVgnOiAweDg1RTAsCisgICdSR0JBX1NJR05FRF9TR0lYJzogMHg4NUUxLAorICAnQUxQ
SEFfU0lHTkVEX1NHSVgnOiAweDg1RTIsCisgICdMVU1JTkFOQ0VfU0lHTkVEX1NHSVgnOiAweDg1
RTMsCisgICdJTlRFTlNJVFlfU0lHTkVEX1NHSVgnOiAweDg1RTQsCisgICdMVU1JTkFOQ0VfQUxQ
SEFfU0lHTkVEX1NHSVgnOiAweDg1RTUsCisgICdSR0IxNl9TSUdORURfU0dJWCc6IDB4ODVFNiwK
KyAgJ1JHQkExNl9TSUdORURfU0dJWCc6IDB4ODVFNywKKyAgJ0FMUEhBMTZfU0lHTkVEX1NHSVgn
OiAweDg1RTgsCisgICdMVU1JTkFOQ0UxNl9TSUdORURfU0dJWCc6IDB4ODVFOSwKKyAgJ0lOVEVO
U0lUWTE2X1NJR05FRF9TR0lYJzogMHg4NUVBLAorICAnTFVNSU5BTkNFMTZfQUxQSEExNl9TSUdO
RURfU0dJWCc6IDB4ODVFQiwKKyAgJ1JHQl9FWFRFTkRFRF9SQU5HRV9TR0lYJzogMHg4NUVDLAor
ICAnUkdCQV9FWFRFTkRFRF9SQU5HRV9TR0lYJzogMHg4NUVELAorICAnQUxQSEFfRVhURU5ERURf
UkFOR0VfU0dJWCc6IDB4ODVFRSwKKyAgJ0xVTUlOQU5DRV9FWFRFTkRFRF9SQU5HRV9TR0lYJzog
MHg4NUVGLAorICAnSU5URU5TSVRZX0VYVEVOREVEX1JBTkdFX1NHSVgnOiAweDg1RjAsCisgICdM
VU1JTkFOQ0VfQUxQSEFfRVhURU5ERURfUkFOR0VfU0dJWCc6IDB4ODVGMSwKKyAgJ1JHQjE2X0VY
VEVOREVEX1JBTkdFX1NHSVgnOiAweDg1RjIsCisgICdSR0JBMTZfRVhURU5ERURfUkFOR0VfU0dJ
WCc6IDB4ODVGMywKKyAgJ0FMUEhBMTZfRVhURU5ERURfUkFOR0VfU0dJWCc6IDB4ODVGNCwKKyAg
J0xVTUlOQU5DRTE2X0VYVEVOREVEX1JBTkdFX1NHSVgnOiAweDg1RjUsCisgICdJTlRFTlNJVFkx
Nl9FWFRFTkRFRF9SQU5HRV9TR0lYJzogMHg4NUY2LAorICAnTFVNSU5BTkNFMTZfQUxQSEExNl9F
WFRFTkRFRF9SQU5HRV9TR0lYJzogMHg4NUY3LAorICAnTUlOX0xVTUlOQU5DRV9TR0lTJzogMHg4
NUY4LAorICAnTUFYX0xVTUlOQU5DRV9TR0lTJzogMHg4NUY5LAorICAnTUlOX0lOVEVOU0lUWV9T
R0lTJzogMHg4NUZBLAorICAnTUFYX0lOVEVOU0lUWV9TR0lTJzogMHg4NUZCLAorICAnUE9TVF9U
RVhUVVJFX0ZJTFRFUl9CSUFTX1NHSVgnOiAweDgxNzksCisgICdQT1NUX1RFWFRVUkVfRklMVEVS
X1NDQUxFX1NHSVgnOiAweDgxN0EsCisgICdQT1NUX1RFWFRVUkVfRklMVEVSX0JJQVNfUkFOR0Vf
U0dJWCc6IDB4ODE3QiwKKyAgJ1BPU1RfVEVYVFVSRV9GSUxURVJfU0NBTEVfUkFOR0VfU0dJWCc6
IDB4ODE3QywKKyAgJ1ZFUlRFWF9QUkVDTElQX1NHSVgnOiAweDgzRUUsCisgICdWRVJURVhfUFJF
Q0xJUF9ISU5UX1NHSVgnOiAweDgzRUYsCisgICdWRVJURVhfUFJFQ0xJUF9TR0lYJzogMHg4M0VF
LAorICAnVkVSVEVYX1BSRUNMSVBfSElOVF9TR0lYJzogMHg4M0VGLAorICAnQ09MT1JfTUFUUklY
X1NHSSc6IDB4ODBCMSwKKyAgJ0NPTE9SX01BVFJJWF9TVEFDS19ERVBUSF9TR0knOiAweDgwQjIs
CisgICdNQVhfQ09MT1JfTUFUUklYX1NUQUNLX0RFUFRIX1NHSSc6IDB4ODBCMywKKyAgJ1BPU1Rf
Q09MT1JfTUFUUklYX1JFRF9TQ0FMRV9TR0knOiAweDgwQjQsCisgICdQT1NUX0NPTE9SX01BVFJJ
WF9HUkVFTl9TQ0FMRV9TR0knOiAweDgwQjUsCisgICdQT1NUX0NPTE9SX01BVFJJWF9CTFVFX1ND
QUxFX1NHSSc6IDB4ODBCNiwKKyAgJ1BPU1RfQ09MT1JfTUFUUklYX0FMUEhBX1NDQUxFX1NHSSc6
IDB4ODBCNywKKyAgJ1BPU1RfQ09MT1JfTUFUUklYX1JFRF9CSUFTX1NHSSc6IDB4ODBCOCwKKyAg
J1BPU1RfQ09MT1JfTUFUUklYX0dSRUVOX0JJQVNfU0dJJzogMHg4MEI5LAorICAnUE9TVF9DT0xP
Ul9NQVRSSVhfQkxVRV9CSUFTX1NHSSc6IDB4ODBCQSwKKyAgJ1BPU1RfQ09MT1JfTUFUUklYX0FM
UEhBX0JJQVNfU0dJJzogMHg4MEJCLAorICAnQ09MT1JfVEFCTEVfU0dJJzogMHg4MEQwLAorICAn
UE9TVF9DT05WT0xVVElPTl9DT0xPUl9UQUJMRV9TR0knOiAweDgwRDEsCisgICdQT1NUX0NPTE9S
X01BVFJJWF9DT0xPUl9UQUJMRV9TR0knOiAweDgwRDIsCisgICdQUk9YWV9DT0xPUl9UQUJMRV9T
R0knOiAweDgwRDMsCisgICdQUk9YWV9QT1NUX0NPTlZPTFVUSU9OX0NPTE9SX1RBQkxFX1NHSSc6
IDB4ODBENCwKKyAgJ1BST1hZX1BPU1RfQ09MT1JfTUFUUklYX0NPTE9SX1RBQkxFX1NHSSc6IDB4
ODBENSwKKyAgJ0NPTE9SX1RBQkxFX1NDQUxFX1NHSSc6IDB4ODBENiwKKyAgJ0NPTE9SX1RBQkxF
X0JJQVNfU0dJJzogMHg4MEQ3LAorICAnQ09MT1JfVEFCTEVfRk9STUFUX1NHSSc6IDB4ODBEOCwK
KyAgJ0NPTE9SX1RBQkxFX1dJRFRIX1NHSSc6IDB4ODBEOSwKKyAgJ0NPTE9SX1RBQkxFX1JFRF9T
SVpFX1NHSSc6IDB4ODBEQSwKKyAgJ0NPTE9SX1RBQkxFX0dSRUVOX1NJWkVfU0dJJzogMHg4MERC
LAorICAnQ09MT1JfVEFCTEVfQkxVRV9TSVpFX1NHSSc6IDB4ODBEQywKKyAgJ0NPTE9SX1RBQkxF
X0FMUEhBX1NJWkVfU0dJJzogMHg4MERELAorICAnQ09MT1JfVEFCTEVfTFVNSU5BTkNFX1NJWkVf
U0dJJzogMHg4MERFLAorICAnQ09MT1JfVEFCTEVfSU5URU5TSVRZX1NJWkVfU0dJJzogMHg4MERG
LAorICAnVEVYVFVSRV9DT0xPUl9UQUJMRV9TR0knOiAweDgwQkMsCisgICdQUk9YWV9URVhUVVJF
X0NPTE9SX1RBQkxFX1NHSSc6IDB4ODBCRCwKKyAgJ1VOUEFDS19DT05TVEFOVF9EQVRBX1NVTlgn
OiAweDgxRDUsCisgICdURVhUVVJFX0NPTlNUQU5UX0RBVEFfU1VOWCc6IDB4ODFENiwKKyAgJ1dS
QVBfQk9SREVSX1NVTic6IDB4ODFENCwKKyAgJ0dMT0JBTF9BTFBIQV9TVU4nOiAweDgxRDksCisg
ICdHTE9CQUxfQUxQSEFfRkFDVE9SX1NVTic6IDB4ODFEQSwKKyAgJ1FVQURfTUVTSF9TVU4nOiAw
eDg2MTQsCisgICdUUklBTkdMRV9NRVNIX1NVTic6IDB4ODYxNSwKKyAgJ1NMSUNFX0FDQ1VNX1NV
Tic6IDB4ODVDQywKKyAgJ1JFU1RBUlRfU1VOJzogMHgwMSwKKyAgJ1JFUExBQ0VfTUlERExFX1NV
Tic6IDB4MDIsCisgICdSRVBMQUNFX09MREVTVF9TVU4nOiAweDAzLAorICAnVFJJQU5HTEVfTElT
VF9TVU4nOiAweDgxRDcsCisgICdSRVBMQUNFTUVOVF9DT0RFX1NVTic6IDB4ODFEOCwKKyAgJ1JF
UExBQ0VNRU5UX0NPREVfQVJSQVlfU1VOJzogMHg4NUMwLAorICAnUkVQTEFDRU1FTlRfQ09ERV9B
UlJBWV9UWVBFX1NVTic6IDB4ODVDMSwKKyAgJ1JFUExBQ0VNRU5UX0NPREVfQVJSQVlfU1RSSURF
X1NVTic6IDB4ODVDMiwKKyAgJ1JFUExBQ0VNRU5UX0NPREVfQVJSQVlfUE9JTlRFUl9TVU4nOiAw
eDg1QzMsCisgICdSMVVJX1YzRl9TVU4nOiAweDg1QzQsCisgICdSMVVJX0M0VUJfVjNGX1NVTic6
IDB4ODVDNSwKKyAgJ1IxVUlfQzNGX1YzRl9TVU4nOiAweDg1QzYsCisgICdSMVVJX04zRl9WM0Zf
U1VOJzogMHg4NUM3LAorICAnUjFVSV9DNEZfTjNGX1YzRl9TVU4nOiAweDg1QzgsCisgICdSMVVJ
X1QyRl9WM0ZfU1VOJzogMHg4NUM5LAorICAnUjFVSV9UMkZfTjNGX1YzRl9TVU4nOiAweDg1Q0Es
CisgICdSMVVJX1QyRl9DNEZfTjNGX1YzRl9TVU4nOiAweDg1Q0IsCisgICdQSE9OR19XSU4nOiAw
eDgwRUEsCisgICdQSE9OR19ISU5UX1dJTic6IDB4ODBFQiwKKyAgJ0ZPR19TUEVDVUxBUl9URVhU
VVJFX1dJTic6IDB4ODBFQworfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMgYi9MYXlvdXRU
ZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZkNWE0MGZlMmZiNjczOWNjMWU0MmI4ZTRkMDlkMTJiYTdmZTky
NzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xf
dGVzdF9maWxlcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzCkBAIC0wLDAgKzEsMjYgQEAKKy8q
CisqKiBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBl
cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u
IG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQg
ZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhl
IE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGlt
aXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwK
KyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0
ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBh
cmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz
c2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3Rh
bnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFS
RSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQ
UkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U
SUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9S
UyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFH
RVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwK
KyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNU
SU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJ
TiBUSEUgTUFURVJJQUxTLgorKi8KKworc2hvdWxkQmVUcnVlKCJzdWNjZXNzZnVsbHlQYXJzZWQi
KTsKK2RlYnVnKCc8YnIgLz48c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBDT01QTEVURTwvc3Bhbj4n
KTsKK25vdGlmeUZpbmlzaGVkVG9IYXJuZXNzKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyBi
L0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTM0MWZiYWIyNWM4YWNiM2QwOTRkNTQ2OWY2NDMy
MWQ3NGRhZGRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzCkBAIC0wLDAgKzEsNDg4
IEBACisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoq
CisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55
IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3Nv
Y2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFs
IGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRo
b3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1
Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2Yg
dGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRl
cmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz
IHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9y
IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVS
SUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwK
KyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg
V0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlN
LCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O
VFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4g
Q09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVB
TElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKyhmdW5jdGlvbigpIHsKKyAgdmFyIHRlc3RI
YXJuZXNzSW5pdGlhbGl6ZWQgPSBmYWxzZTsKKworICB2YXIgaW5pdE5vbktocm9ub3NGcmFtZXdv
cmsgPSBmdW5jdGlvbih3YWl0VW50aWxEb25lKSB7CisgICAgaWYgKHRlc3RIYXJuZXNzSW5pdGlh
bGl6ZWQpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgdGVzdEhhcm5lc3NJbml0aWFsaXpl
ZCA9IHRydWU7CisKKyAgICAvKiAtLSBwbGFmb3JtIHNwZWNpZmljIGNvZGUgLS0gKi8KKworICAg
IC8vIFdlYktpdCBTcGVjaWZpYyBjb2RlLiBBZGQgeW91ciBjb2RlIGhlcmUuCisgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyICYmICF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAg
IHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciA9IHdpbmRvdy50ZXN0UnVubmVyOworICAgIH0K
KworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0V2ViR0xFbmFibGVkIiwgIjEi
KTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpIHsKKyAgICAgIC8vIFRoZSBXZWJLaXQgdGVzdGluZyBzeXN0ZW0gY29tcGFyZXMg
Y29uc29sZSBvdXRwdXQuCisgICAgICAvLyBCZWNhdXNlIHRoZSBvdXRwdXQgb2YgdGhlIFdlYkdM
IFRlc3RzIGlzIEdQVSBkZXBlbmRlbnQKKyAgICAgIC8vIHdlIHR1cm4gb2ZmIGNvbnNvbGUgbWVz
c2FnZXMuCisgICAgICB3aW5kb3cuY29uc29sZS5sb2cgPSBmdW5jdGlvbigpIHsgfTsKKyAgICAg
IHdpbmRvdy5jb25zb2xlLmVycm9yID0gZnVuY3Rpb24oKSB7IH07CisgICAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldHRpbmdzLnNldFdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZChmYWxzZSk7CisK
KyAgICAgIC8vIFJBRiBkb2Vzbid0IHdvcmsgaW4gTGF5b3V0VGVzdHMuIERpc2FibGUgaXQgc28g
dGhlIHRlc3RzIHdpbGwKKyAgICAgIC8vIHVzZSBzZXRUaW1lb3V0IGluc3RlYWQuCisgICAgICB3
aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gdW5kZWZpbmVkOworICAgICAgd2luZG93Lndl
YmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZSA9IHVuZGVmaW5lZDsKKyAgICB9CisKKyAgICAvKiAt
LSBlbmQgcGxhdGZvcm0gc3BlY2lmaWMgY29kZSAtLSovCisgIH0KKworICB0aGlzLmluaXRUZXN0
aW5nSGFybmVzc1dhaXRVbnRpbERvbmUgPSBmdW5jdGlvbigpIHsKKyAgICBpbml0Tm9uS2hyb25v
c0ZyYW1ld29yayh0cnVlKTsKKyAgfQorCisgIHRoaXMuaW5pdFRlc3RpbmdIYXJuZXNzID0gZnVu
Y3Rpb24oKSB7CisgICAgaW5pdE5vbktocm9ub3NGcmFtZXdvcmsoZmFsc2UpOworICB9Cit9KCkp
OworCitmdW5jdGlvbiBub25LaHJvbm9zRnJhbWV3b3JrTm90aWZ5RG9uZSgpIHsKKyAgLy8gV2Vi
S2l0IFNwZWNpZmljIGNvZGUuIEFkZCB5b3VyIGNvZGUgaGVyZS4KKyAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKKyAgfQorfQorCitmdW5jdGlvbiByZXBvcnRUZXN0UmVzdWx0c1RvSGFybmVzcyhzdWNjZXNz
LCBtc2cpIHsKKyAgaWYgKHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0SGFybmVzcykgeworICAgIHdp
bmRvdy5wYXJlbnQud2ViZ2xUZXN0SGFybmVzcy5yZXBvcnRSZXN1bHRzKHdpbmRvdy5sb2NhdGlv
bi5wYXRobmFtZSwgc3VjY2VzcywgbXNnKTsKKyAgfQorfQorCitmdW5jdGlvbiBub3RpZnlGaW5p
c2hlZFRvSGFybmVzcygpIHsKKyAgaWYgKHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0SGFybmVzcykg
eworICAgIHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0SGFybmVzcy5ub3RpZnlGaW5pc2hlZCh3aW5k
b3cubG9jYXRpb24ucGF0aG5hbWUpOworICB9Cit9CisKK2Z1bmN0aW9uIGRlc2NyaXB0aW9uKG1z
ZykKK3sKKyAgICBpbml0VGVzdGluZ0hhcm5lc3MoKTsKKyAgICBpZiAobXNnID09PSB1bmRlZmlu
ZWQpIHsKKyAgICAgIG1zZyA9IGRvY3VtZW50LnRpdGxlOworICAgIH0KKyAgICAvLyBGb3IgTVNJ
RSA2IGNvbXBhdGliaWxpdHkKKyAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InNwYW4iKTsKKyAgICBzcGFuLmlubmVySFRNTCA9ICc8cD4nICsgbXNnICsgJzwvcD48cD5PbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIjxzcGFuIGNsYXNzPSJwYXNzIj5QQVNT
PC9zcGFuPiIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICI8c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBD
T01QTEVURTwvc3Bhbj4iLjwvcD4nOworICAgIHZhciBkZXNjcmlwdGlvbiA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpOworICAgIGlmIChkZXNjcmlwdGlvbi5maXJzdENo
aWxkKQorICAgICAgICBkZXNjcmlwdGlvbi5yZXBsYWNlQ2hpbGQoc3BhbiwgZGVzY3JpcHRpb24u
Zmlyc3RDaGlsZCk7CisgICAgZWxzZQorICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZChz
cGFuKTsKK30KKworZnVuY3Rpb24gZGVidWcobXNnKQoreworICAgIHZhciBzcGFuID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b25zb2xlIikuYXBwZW5kQ2hpbGQoc3Bhbik7IC8vIGluc2VydCBpdCBmaXJzdCBzbyBYSFRNTCBr
bm93cyB0aGUgbmFtZXNwYWNlCisgICAgc3Bhbi5pbm5lckhUTUwgPSBtc2cgKyAnPGJyIC8+JzsK
K30KKworZnVuY3Rpb24gZXNjYXBlSFRNTCh0ZXh0KQoreworICAgIHJldHVybiB0ZXh0LnJlcGxh
Y2UoLyYvZywgIiZhbXA7IikucmVwbGFjZSgvPC9nLCAiJmx0OyIpOworfQorCitmdW5jdGlvbiB0
ZXN0UGFzc2VkKG1zZykKK3sKKyAgICByZXBvcnRUZXN0UmVzdWx0c1RvSGFybmVzcyh0cnVlLCBt
c2cpOworICAgIGRlYnVnKCc8c3Bhbj48c3BhbiBjbGFzcz0icGFzcyI+UEFTUzwvc3Bhbj4gJyAr
IGVzY2FwZUhUTUwobXNnKSArICc8L3NwYW4+Jyk7Cit9CisKK2Z1bmN0aW9uIHRlc3RGYWlsZWQo
bXNnKQoreworICAgIHJlcG9ydFRlc3RSZXN1bHRzVG9IYXJuZXNzKGZhbHNlLCBtc2cpOworICAg
IGRlYnVnKCc8c3Bhbj48c3BhbiBjbGFzcz0iZmFpbCI+RkFJTDwvc3Bhbj4gJyArIGVzY2FwZUhU
TUwobXNnKSArICc8L3NwYW4+Jyk7Cit9CisKK2Z1bmN0aW9uIGFyZUFycmF5c0VxdWFsKF9hLCBf
YikKK3sKKyAgICB0cnkgeworICAgICAgICBpZiAoX2EubGVuZ3RoICE9PSBfYi5sZW5ndGgpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgX2Eu
bGVuZ3RoOyBpKyspCisgICAgICAgICAgICBpZiAoX2FbaV0gIT09IF9iW2ldKQorICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGNhdGNoIChleCkgeworICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiBpc01pbnVzWmVy
byhuKQoreworICAgIC8vIHRoZSBvbmx5IHdheSB0byB0ZWxsIDAgZnJvbSAtMCBpbiBKUyBpcyB0
aGUgZmFjdCB0aGF0IDEvLTAgaXMKKyAgICAvLyAtSW5maW5pdHkgaW5zdGVhZCBvZiBJbmZpbml0
eQorICAgIHJldHVybiBuID09PSAwICYmIDEvbiA8IDA7Cit9CisKK2Z1bmN0aW9uIGlzUmVzdWx0
Q29ycmVjdChfYWN0dWFsLCBfZXhwZWN0ZWQpCit7CisgICAgaWYgKF9leHBlY3RlZCA9PT0gMCkK
KyAgICAgICAgcmV0dXJuIF9hY3R1YWwgPT09IF9leHBlY3RlZCAmJiAoMS9fYWN0dWFsKSA9PT0g
KDEvX2V4cGVjdGVkKTsKKyAgICBpZiAoX2FjdHVhbCA9PT0gX2V4cGVjdGVkKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICBpZiAodHlwZW9mKF9leHBlY3RlZCkgPT0gIm51bWJlciIgJiYgaXNO
YU4oX2V4cGVjdGVkKSkKKyAgICAgICAgcmV0dXJuIHR5cGVvZihfYWN0dWFsKSA9PSAibnVtYmVy
IiAmJiBpc05hTihfYWN0dWFsKTsKKyAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5j
YWxsKF9leHBlY3RlZCkgPT0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFtdKSkKKyAg
ICAgICAgcmV0dXJuIGFyZUFycmF5c0VxdWFsKF9hY3R1YWwsIF9leHBlY3RlZCk7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCitmdW5jdGlvbiBzdHJpbmdpZnkodikKK3sKKyAgICBpZiAodiA9PT0g
MCAmJiAxL3YgPCAwKQorICAgICAgICByZXR1cm4gIi0wIjsKKyAgICBlbHNlIHJldHVybiAiIiAr
IHY7Cit9CisKK2Z1bmN0aW9uIGV2YWxBbmRMb2coX2EpCit7CisgIGlmICh0eXBlb2YgX2EgIT0g
InN0cmluZyIpCisgICAgZGVidWcoIldBUk46IHRyeUFuZExvZygpIGV4cGVjdHMgYSBzdHJpbmcg
YXJndW1lbnQiKTsKKworICAvLyBMb2cgZmlyc3QgaW4gY2FzZSB0aGluZ3MgZ28gaG9ycmlibHkg
d3Jvbmcgb3IgdGhpcyBjYXVzZXMgYSBzeW5jIGV2ZW50LgorICBkZWJ1ZyhfYSk7CisKKyAgdmFy
IF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAg
ICB0ZXN0RmFpbGVkKF9hICsgIiB0aHJldyBleGNlcHRpb24gIiArIGUpOworICB9CisgIHJldHVy
biBfYXY7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlKF9hLCBfYiwgcXVpZXQpCit7CisgICAgaWYg
KHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIpCisgICAgICAg
IGRlYnVnKCJXQVJOOiBzaG91bGRCZSgpIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOworICAg
IHZhciBleGNlcHRpb247CisgICAgdmFyIF9hdjsKKyAgICB0cnkgeworICAgICAgICBfYXYgPSBl
dmFsKF9hKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAg
fQorICAgIHZhciBfYnYgPSBldmFsKF9iKTsKKworICAgIGlmIChleGNlcHRpb24pCisgICAgICAg
IHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSAiICsgX2J2ICsgIi4gVGhyZXcgZXhjZXB0aW9u
ICIgKyBleGNlcHRpb24pOworICAgIGVsc2UgaWYgKGlzUmVzdWx0Q29ycmVjdChfYXYsIF9idikp
IHsKKyAgICAgICAgaWYgKCFxdWlldCkgeworICAgICAgICAgICAgdGVzdFBhc3NlZChfYSArICIg
aXMgIiArIF9iKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAodHlwZW9mKF9hdikgPT0gdHlw
ZW9mKF9idikpCisgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSAiICsgX2J2ICsg
Ii4gV2FzICIgKyBzdHJpbmdpZnkoX2F2KSArICIuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0
RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgIiArIF9idiArICIgKG9mIHR5cGUgIiArIHR5cGVvZiBf
YnYgKyAiKS4gV2FzICIgKyBfYXYgKyAiIChvZiB0eXBlICIgKyB0eXBlb2YgX2F2ICsgIikuIik7
Cit9CisKK2Z1bmN0aW9uIHNob3VsZE5vdEJlKF9hLCBfYiwgcXVpZXQpCit7CisgICAgaWYgKHR5
cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIpCisgICAgICAgIGRl
YnVnKCJXQVJOOiBzaG91bGROb3RCZSgpIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOworICAg
IHZhciBleGNlcHRpb247CisgICAgdmFyIF9hdjsKKyAgICB0cnkgeworICAgICAgICBfYXYgPSBl
dmFsKF9hKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAg
fQorICAgIHZhciBfYnYgPSBldmFsKF9iKTsKKworICAgIGlmIChleGNlcHRpb24pCisgICAgICAg
IHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBub3QgYmUgIiArIF9idiArICIuIFRocmV3IGV4Y2Vw
dGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgICBlbHNlIGlmICghaXNSZXN1bHRDb3JyZWN0KF9hdiwg
X2J2KSkgeworICAgICAgICBpZiAoIXF1aWV0KSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKF9h
ICsgIiBpcyBub3QgIiArIF9iKTsKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAgICAgICB0ZXN0
RmFpbGVkKF9hICsgIiBzaG91bGQgbm90IGJlICIgKyBfYnYgKyAiLiIpOworfQorCitmdW5jdGlv
biBzaG91bGRCZVRydWUoX2EpIHsgc2hvdWxkQmUoX2EsICJ0cnVlIik7IH0KK2Z1bmN0aW9uIHNo
b3VsZEJlRmFsc2UoX2EpIHsgc2hvdWxkQmUoX2EsICJmYWxzZSIpOyB9CitmdW5jdGlvbiBzaG91
bGRCZU5hTihfYSkgeyBzaG91bGRCZShfYSwgIk5hTiIpOyB9CitmdW5jdGlvbiBzaG91bGRCZU51
bGwoX2EpIHsgc2hvdWxkQmUoX2EsICJudWxsIik7IH0KKworZnVuY3Rpb24gc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKGEsIGIpCit7CisgIHZhciB1bmV2YWxlZFN0cmluZyA9ICciJyArIGIucmVwbGFj
ZSgvIi9nLCAiXCIiKSArICciJzsKKyAgc2hvdWxkQmUoYSwgdW5ldmFsZWRTdHJpbmcpOworfQor
CitmdW5jdGlvbiBzaG91bGRFdmFsdWF0ZVRvKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgLy8gQSBn
ZW5lcmFsLXB1cnBvc2UgY29tcGFyYXRvci4gICdhY3R1YWwnIHNob3VsZCBiZSBhIHN0cmluZyB0
byBiZQorICAvLyBldmFsdWF0ZWQsIGFzIGZvciBzaG91bGRCZSgpLiAnZXhwZWN0ZWQnIG1heSBi
ZSBhbnkgdHlwZSBhbmQgd2lsbCBiZQorICAvLyB1c2VkIHdpdGhvdXQgYmVpbmcgZXZhbCdlZC4K
KyAgaWYgKGV4cGVjdGVkID09IG51bGwpIHsKKyAgICAvLyBEbyB0aGlzIGJlZm9yZSB0aGUgb2Jq
ZWN0IHRlc3QsIHNpbmNlIG51bGwgaXMgb2YgdHlwZSAnb2JqZWN0Jy4KKyAgICBzaG91bGRCZU51
bGwoYWN0dWFsKTsKKyAgfSBlbHNlIGlmICh0eXBlb2YgZXhwZWN0ZWQgPT0gInVuZGVmaW5lZCIp
IHsKKyAgICBzaG91bGRCZVVuZGVmaW5lZChhY3R1YWwpOworICB9IGVsc2UgaWYgKHR5cGVvZiBl
eHBlY3RlZCA9PSAiZnVuY3Rpb24iKSB7CisgICAgLy8gQWxsIHRoaXMgZnVzcyBpcyB0byBhdm9p
ZCB0aGUgc3RyaW5nLWFyZyB3YXJuaW5nIGZyb20gc2hvdWxkQmUoKS4KKyAgICB0cnkgeworICAg
ICAgYWN0dWFsVmFsdWUgPSBldmFsKGFjdHVhbCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAg
dGVzdEZhaWxlZCgiRXZhbHVhdGluZyAiICsgYWN0dWFsICsgIjogVGhyZXcgZXhjZXB0aW9uICIg
KyBlKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgc2hvdWxkQmUoIiciICsgYWN0dWFsVmFs
dWUudG9TdHJpbmcoKS5yZXBsYWNlKC9cbi9nLCAiIikgKyAiJyIsCisgICAgICAgICAgICAgIici
ICsgZXhwZWN0ZWQudG9TdHJpbmcoKS5yZXBsYWNlKC9cbi9nLCAiIikgKyAiJyIpOworICB9IGVs
c2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9PSAib2JqZWN0IikgeworICAgIHNob3VsZEJlVHJ1ZShh
Y3R1YWwgKyAiID09ICciICsgZXhwZWN0ZWQgKyAiJyIpOworICB9IGVsc2UgaWYgKHR5cGVvZiBl
eHBlY3RlZCA9PSAic3RyaW5nIikgeworICAgIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpOwor
ICB9IGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZCA9PSAiYm9vbGVhbiIpIHsKKyAgICBzaG91bGRC
ZSgidHlwZW9mICIgKyBhY3R1YWwsICInYm9vbGVhbiciKTsKKyAgICBpZiAoZXhwZWN0ZWQpCisg
ICAgICBzaG91bGRCZVRydWUoYWN0dWFsKTsKKyAgICBlbHNlCisgICAgICBzaG91bGRCZUZhbHNl
KGFjdHVhbCk7CisgIH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJudW1iZXIiKSB7Cisg
ICAgc2hvdWxkQmUoYWN0dWFsLCBzdHJpbmdpZnkoZXhwZWN0ZWQpKTsKKyAgfSBlbHNlIHsKKyAg
ICBkZWJ1ZyhleHBlY3RlZCArICIgaXMgdW5rbm93biB0eXBlICIgKyB0eXBlb2YgZXhwZWN0ZWQp
OworICAgIHNob3VsZEJlVHJ1ZShhY3R1YWwsICInIiAgK2V4cGVjdGVkLnRvU3RyaW5nKCkgKyAi
JyIpOworICB9Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlTm9uWmVybyhfYSkKK3sKKyAgdmFyIGV4
Y2VwdGlvbjsKKyAgdmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0g
Y2F0Y2ggKGUpIHsKKyAgICAgZXhjZXB0aW9uID0gZTsKKyAgfQorCisgIGlmIChleGNlcHRpb24p
CisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIG5vbi16ZXJvLiBUaHJldyBleGNlcHRp
b24gIiArIGV4Y2VwdGlvbik7CisgIGVsc2UgaWYgKF9hdiAhPSAwKQorICAgIHRlc3RQYXNzZWQo
X2EgKyAiIGlzIG5vbi16ZXJvLiIpOworICBlbHNlCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hv
dWxkIGJlIG5vbi16ZXJvLiBXYXMgIiArIF9hdik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlTm9u
TnVsbChfYSkKK3sKKyAgdmFyIGV4Y2VwdGlvbjsKKyAgdmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAg
X2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICAgZXhjZXB0aW9uID0gZTsKKyAg
fQorCisgIGlmIChleGNlcHRpb24pCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIG5v
bi1udWxsLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgIGVsc2UgaWYgKF9hdiAh
PSBudWxsKQorICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIG5vbi1udWxsLiIpOworICBlbHNlCisg
ICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIG5vbi1udWxsLiBXYXMgIiArIF9hdik7Cit9
CisKK2Z1bmN0aW9uIHNob3VsZEJlVW5kZWZpbmVkKF9hKQoreworICB2YXIgZXhjZXB0aW9uOwor
ICB2YXIgX2F2OworICB0cnkgeworICAgICBfYXYgPSBldmFsKF9hKTsKKyAgfSBjYXRjaCAoZSkg
eworICAgICBleGNlcHRpb24gPSBlOworICB9CisKKyAgaWYgKGV4Y2VwdGlvbikKKyAgICB0ZXN0
RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgdW5kZWZpbmVkLiBUaHJldyBleGNlcHRpb24gIiArIGV4
Y2VwdGlvbik7CisgIGVsc2UgaWYgKHR5cGVvZiBfYXYgPT0gInVuZGVmaW5lZCIpCisgICAgdGVz
dFBhc3NlZChfYSArICIgaXMgdW5kZWZpbmVkLiIpOworICBlbHNlCisgICAgdGVzdEZhaWxlZChf
YSArICIgc2hvdWxkIGJlIHVuZGVmaW5lZC4gV2FzICIgKyBfYXYpOworfQorCitmdW5jdGlvbiBz
aG91bGRCZURlZmluZWQoX2EpCit7CisgIHZhciBleGNlcHRpb247CisgIHZhciBfYXY7CisgIHRy
eSB7CisgICAgIF9hdiA9IGV2YWwoX2EpOworICB9IGNhdGNoIChlKSB7CisgICAgIGV4Y2VwdGlv
biA9IGU7CisgIH0KKworICBpZiAoZXhjZXB0aW9uKQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNo
b3VsZCBiZSBkZWZpbmVkLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbik7CisgIGVsc2Ug
aWYgKF9hdiAhPT0gdW5kZWZpbmVkKQorICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIGRlZmluZWQu
Iik7CisgIGVsc2UKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgZGVmaW5lZC4gV2Fz
ICIgKyBfYXYpOworfQorCitmdW5jdGlvbiBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbChfYSwg
X2IpIHsKKyAgICBpZiAodHlwZW9mIF9hICE9ICJzdHJpbmciIHx8IHR5cGVvZiBfYiAhPSAic3Ry
aW5nIikKKyAgICAgICAgZGVidWcoIldBUk46IHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsIGV4
cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOworCisgICAgdmFyIGV4Y2VwdGlvbjsKKyAgICB2YXIg
X2F2OworICAgIHRyeSB7CisgICAgICAgIF9hdiA9IGV2YWwoX2EpOworICAgIH0gY2F0Y2ggKGUp
IHsKKyAgICAgICAgZXhjZXB0aW9uID0gZTsKKyAgICB9CisgICAgdmFyIF9idiA9IGV2YWwoX2Ip
OworCisgICAgaWYgKGV4Y2VwdGlvbikKKyAgICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxk
IGJlID49ICIgKyBfYiArICIuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgICBl
bHNlIGlmICh0eXBlb2YgX2F2ID09ICJ1bmRlZmluZWQiIHx8IF9hdiA8IF9idikKKyAgICAgICAg
dGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlID49ICIgKyBfYiArICIuIFdhcyAiICsgX2F2ICsg
IiAob2YgdHlwZSAiICsgdHlwZW9mIF9hdiArICIpLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVz
dFBhc3NlZChfYSArICIgaXMgPj0gIiArIF9iKTsKK30KKworZnVuY3Rpb24gZXhwZWN0VHJ1ZSh2
LCBtc2cpIHsKKyAgaWYgKHYpIHsKKyAgICB0ZXN0UGFzc2VkKG1zZyk7CisgIH0gZWxzZSB7Cisg
ICAgdGVzdEZhaWxlZChtc2cpOworICB9Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KF9hLCBf
ZSkKK3sKKyAgdmFyIGV4Y2VwdGlvbjsKKyAgdmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0g
ZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICAgZXhjZXB0aW9uID0gZTsKKyAgfQorCisg
IHZhciBfZXY7CisgIGlmIChfZSkKKyAgICAgIF9ldiA9ICBldmFsKF9lKTsKKworICBpZiAoZXhj
ZXB0aW9uKSB7CisgICAgaWYgKHR5cGVvZiBfZSA9PSAidW5kZWZpbmVkIiB8fCBleGNlcHRpb24g
PT0gX2V2KQorICAgICAgdGVzdFBhc3NlZChfYSArICIgdGhyZXcgZXhjZXB0aW9uICIgKyBleGNl
cHRpb24gKyAiLiIpOworICAgIGVsc2UKKyAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCB0
aHJvdyAiICsgKHR5cGVvZiBfZSA9PSAidW5kZWZpbmVkIiA/ICJhbiBleGNlcHRpb24iIDogX2V2
KSArICIuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uICsgIi4iKTsKKyAgfSBlbHNlIGlm
ICh0eXBlb2YgX2F2ID09ICJ1bmRlZmluZWQiKQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3Vs
ZCB0aHJvdyAiICsgKHR5cGVvZiBfZSA9PSAidW5kZWZpbmVkIiA/ICJhbiBleGNlcHRpb24iIDog
X2V2KSArICIuIFdhcyB1bmRlZmluZWQuIik7CisgIGVsc2UKKyAgICB0ZXN0RmFpbGVkKF9hICsg
IiBzaG91bGQgdGhyb3cgIiArICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0
aW9uIiA6IF9ldikgKyAiLiBXYXMgIiArIF9hdiArICIuIik7Cit9CisKK2Z1bmN0aW9uIHNob3Vs
ZEJlVHlwZShfYSwgX3R5cGUpIHsKKwl2YXIgZXhjZXB0aW9uOworCXZhciBfYXY7CisJdHJ5IHsK
KwkJX2F2ID0gZXZhbChfYSk7CisJfSBjYXRjaCAoZSkgeworCQlleGNlcHRpb24gPSBlOworCX0K
KworCXZhciBfdHlwZXYgPSBldmFsKF90eXBlKTsKKworCWlmIChfYXYgaW5zdGFuY2VvZiBfdHlw
ZXYpIHsKKwkJdGVzdFBhc3NlZChfYSArICIgaXMgYW4gaW5zdGFuY2Ugb2YgIiArIF90eXBlKTsK
Kwl9IGVsc2UgeworCQl0ZXN0RmFpbGVkKF9hICsgIiBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgIiAr
IF90eXBlKTsKKwl9Cit9CisKK2Z1bmN0aW9uIGFzc2VydE1zZyhhc3NlcnRpb24sIG1zZykgewor
ICAgIGlmIChhc3NlcnRpb24pIHsKKyAgICAgICAgdGVzdFBhc3NlZChtc2cpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIHRlc3RGYWlsZWQobXNnKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGdjKCkg
eworICAgIGlmICh3aW5kb3cuR0NDb250cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy5HQ0NvbnRy
b2xsZXIuY29sbGVjdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHdpbmRv
dy5vcGVyYSAmJiB3aW5kb3cub3BlcmEuY29sbGVjdCkgeworICAgICAgICB3aW5kb3cub3BlcmEu
Y29sbGVjdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdHJ5IHsKKyAgICAgICAg
d2luZG93LlF1ZXJ5SW50ZXJmYWNlKENvbXBvbmVudHMuaW50ZXJmYWNlcy5uc0lJbnRlcmZhY2VS
ZXF1ZXN0b3IpCisgICAgICAgICAgICAgIC5nZXRJbnRlcmZhY2UoQ29tcG9uZW50cy5pbnRlcmZh
Y2VzLm5zSURPTVdpbmRvd1V0aWxzKQorICAgICAgICAgICAgICAuZ2FyYmFnZUNvbGxlY3QoKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0gY2F0Y2goZSkge30KKworICAgIGZ1bmN0aW9uIGdjUmVj
KG4pIHsKKyAgICAgICAgaWYgKG4gPCAxKQorICAgICAgICAgICAgcmV0dXJuIHt9OworICAgICAg
ICB2YXIgdGVtcCA9IHtpOiAiYWIiICsgaSArIChpIC8gMTAwMDAwKX07CisgICAgICAgIHRlbXAg
Kz0gImZvbyI7CisgICAgICAgIGdjUmVjKG4tMSk7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDsgaSsrKQorICAgICAgICBnY1JlYygxMCk7Cit9CisKK2Z1bmN0aW9uIGZpbmlz
aFRlc3QoKSB7CisgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgIHZhciBlcGlsb2d1ZSA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOworICBlcGlsb2d1ZS5vbmxvYWQgPSBm
dW5jdGlvbigpIHsKKyAgICBpZiAod2luZG93Lm5vbktocm9ub3NGcmFtZXdvcmtOb3RpZnlEb25l
KSB7CisgICAgICB3aW5kb3cubm9uS2hyb25vc0ZyYW1ld29ya05vdGlmeURvbmUoKTsKKyAgICB9
CisgIH07CisKKyAgdmFyIGJhc2VQYXRoID0gIiI7CisgIHZhciBleHBlY3RlZEJhc2UgPSAianMt
dGVzdC1wcmUuanMiOworICB2YXIgc2NyaXB0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdO
YW1lKCdzY3JpcHQnKTsKKyAgZm9yICh2YXIgc2NyaXB0LCBpID0gMDsgc2NyaXB0ID0gc2NyaXB0
c1tpXTsgaSsrKSB7CisgICAgdmFyIHNyYyA9IHNjcmlwdC5zcmM7CisgICAgdmFyIGwgPSBzcmMu
bGVuZ3RoOworICAgIGlmIChzcmMuc3Vic3RyKGwgLSBleHBlY3RlZEJhc2UubGVuZ3RoKSA9PSBl
eHBlY3RlZEJhc2UpIHsKKyAgICAgIGJhc2VQYXRoID0gc3JjLnN1YnN0cigwLCBsIC0gZXhwZWN0
ZWRCYXNlLmxlbmd0aCk7CisgICAgICBicmVhazsKKyAgICB9CisgIH0KKyAgZXBpbG9ndWUuc3Jj
ID0gYmFzZVBhdGggKyAianMtdGVzdC1wb3N0LmpzIjsKKyAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChlcGlsb2d1ZSk7Cit9CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyBiL0xheW91
dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMTIxNDdjYTQzMjg5NTQ2OGFhMjc0OWU0Y2E0NDM2Y2Nl
ZWU4NWFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzCkBAIC0wLDAgKzEsMTIg
QEAKKy5wYXNzIHsKKyAgICBmb250LXdlaWdodDogYm9sZDsKKyAgICBjb2xvcjogZ3JlZW47Cit9
CisuZmFpbCB7CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgY29sb3I6IHJlZDsKK30KKyNj
b25zb2xlIHsKKyAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CisgICAgZm9udC1mYW1pbHk6IG1v
bm9zcGFjZTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL3Jlc291cmNlcy90ZXN0LWV2YWwuanMgYi9MYXlvdXRUZXN0cy93ZWJnbC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvdGVzdC1ldmFsLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJkODYzMjM5ZTkyN2VhNTI3ZDFjNjlmOGE1MjI3MmY3YTlkNjZiNDAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNv
dXJjZXMvdGVzdC1ldmFsLmpzCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisqKiBDb3B5cmlnaHQgKGMp
IDIwMTIgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5
IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBj
b3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxl
cyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0
IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRz
IHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1
YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoq
IHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRv
IHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhl
IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwg
YmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2Yg
dGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMi
LCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJ
TkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFO
VEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5H
RU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9M
REVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklM
SVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJX
SVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBN
QVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgor
Ki8KKy8qKgorICogQ2FsbHMgZXZhbC4KKyAqCisgKiBUaGlzIGlzIGhlcmUgc28gb3RoZXIgbW9k
dWxlcyBjYW4gdXNlICJ1c2Ugc3RyaWN0IjoKKyAqLworVGVzdEV2YWwgPSBmdW5jdGlvbihzdHIp
IHsKKyAgcmV0dXJuIGV2YWwoc3RyKTsKK307CisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2VzL3dlYmdsLWxvZ28ucG5n
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvcmVzb3VyY2Vz
L3dlYmdsLWxvZ28ucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmYmEwZjc2MGYxM2UzYzM4OWQ5NWE5N2ExNjdj
MmY2ZTNiODNjMDQKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDExMDIwCnpjbWMobDx5SVVEa2Mw
O1k4R0xYRUYyT0NoTGtSOHgyNnVPdDtPPj9MZzFhLWc0ZWwwI3k5UmZjO0k/O1BWKXNZKQp6X1gy
ZkpvJGpoPVJiPzNyKUROZnQwMDJXeVIjTlJoaFd6aDxrcDl+LUs9QTgtQWE8QTFjMns/QGJvVmxH
d0Ulb0oKemNRVW8wbHlmayN2UVY9eUc1MjtFdUBEOVRuNXlMQEtXbHRqSXJUP0xCaH5VYT9gKCMp
YENLZXBha29wKVNXQ0JDCnokUEx3WlkkMktuOEFzTEMhUW9QZFVCSGJIIWgxZyZVUTBaRDNuc2sm
RSZWfDBPLW4xUmglPGNnYElIRXFsWmMlWQp6X0hsS15zJVk5O2Rac2Q/JUN7dS1fI0UxSGAhKSs8
WjVwWjxgSSV+NWRkXyEkbDU/KT5gMWRCKT9hbDRILTFlTHcKel5Db2o2T2JqdkxDVX0jTjBgenxs
VXBGMkkyNzxnM3wzUEpPZXozPkZMVmNUY3ZRKzVqbHg3eSp5NHMkSWtgaXNVCnpSSV9GeVB2WF9V
VzR2fnxlazlMfS1xNiNCMm1hTUlRJCpqNj8lY24xNGtSYV8kbUs3P2k0QSlZJFo0PHReTzZ6Pwp6
QUUlUTFvenU1JjsjRyU+TCpyUkR3XlB5Nl9PN2I8cz4ldjg2Nlk+fHsoWWRvemRpQldhSTNkSlpK
K0hJcysxYFkKemF4RGt9Sz9xTnsjTEhXTTxae3hORkFAbCRPYz17OXEoXndEY1Z+OHNlLSFsZXZY
fWpHU2tvLWFjUklPWktkQlQ+CnpUNXV8VlNpRXw+SnhQeF5JYVotdD9qNGM0RTYqWDwpV0N5Ym5m
Vy1IaFdKO3VYVTV+OW8/Z3tgQHw/V2hJfGJaNQp6QkNjPCZFc3h8MysmNEVpKUBGYX10Z2lkPDNl
SSZaRkU+ZHYjYSNKaF5xMSY+cmxFbClWaUI8SyZZUSRJWllNanQKekdgdy1nVFZoNXxJKENwe1Fv
SHImP1ArWnBGPllwMCowTng+NCpOSkJNcGAhQVEwMEVBaGEyMWFLOHZfUkJ5Z0pCCnpONXRPUElu
eiktX2J2eztjOXBANjBlPW1ATEhiOVJSJkhecSlhVVluPmc+YjYwU1FyeCZaPjRIenVeb1hzKEJh
cAp6MilRM3wlUEJpfXR8alNRRkByMkhKI2lKMjRkUTwmO2VyUUFobyNlMiZZWktFdiMkNTZmZEtH
dDM9flNrPjk4YDAKenoocXZmIWR9ZHYkMDdgTng0eW94S3Q2Rm0wdzAwQktaUz47JU18UUtxVSVU
KXQwPDlLPGpfdD0kP3Y5Vz9UI1ZYCnppRTIldyE9SGJtN2AhaHVyQk1NfTtCQCFyV2dKKil1Xnxf
LUFjfU9FTSpiOEwwTkJCRT4hb15jMjtLMWpoVldJTwp6QkdlcDFHZUZLPXQqUmBCRTt7UDdjbFcm
OW01RHtPdz5Ud0AmZjVzMXtUYyt1KlJDOCFwNWZlbz15b2hKWk14PUsKejYpPXB8ciU3PDNFMT1X
e1okMDZPV1hYYGRnfn0wUzJLbzBaKDx8QHpJLV42MCk4MUJQKF5UcmFydVQrbTM0Ynp4CnpEbyVo
bDxiLVVzJWhGN0pjSEZDVGhmSGh1VV9UPnY2UTF+Q1V4Um5GV1Veb1QoUWQkeUZmXzYjQlVFWXgm
S1htWAp6Z2c3NTlhbjUhbjF0d2BhaW93SF5gfV83RTMlWUJVUmlvKz5HMHJ3TnNUcDhWT315RVVR
YXxrdTg0d2g8JWBkYnQKektpXyUoZz5VXn5Wcm9GciFST3UpMkI7VjRscylgWWFtaFlHWkVfUmko
dCpSRDZ7N2BRcGhjYjtuKS14Jl4oJWtNCnpnWEgrNnJvRnZ6Q3BIcV9CNlZXdilrSkRKVDhTUW49
VlpacjFxfjhjI091UXZmKUJRY054bUAzS2syXmYmZDYrXgp6b2ZIfGk/NSMkXz9eOT0hczJKXjNg
Xkl+SyQqbko7TUFuaCZqRT9DY21ySysze2h6P2wkNComVSNAcjFUey1OSm4Kek5jP09Xdit1PVAr
cExubXVMM2B1K3JWaW1oPE0wZkFUcUV5KnRWVVk9ajI9c1c5JTVnTU98IWhfIUU2dS1AeXxGCnpj
UXx0cXAmfCVzWCtkNn1Ofl96Pzd5dEc0dThmckNURlF1QEsxaE1PKWg9Z25gTkpHWXZRfkFkUFVG
Q1hjbjNFKAp6NUBSSS14clg5Ky0jeCVvb0dERDR1PHVAM0VZelM1ZW1XYEshK057fnspNy1TQ2R5
SkRAaEVWa0ZvOEo+d3ErJTEKenUjVXI9JWtnJUNkZ2t9fmwwUG57Km9eYkYkdVRCR0YrfTg9KWN5
VkE3dihrWVhJYCpJemlwSiZFLUAmPk0mSVFmCno5QyozO1hMeVMtckV2KDRxTmxuU1dTK2lqWVcx
ME1aej47cEJ8fmxecG1LUkUxPEs3cEpQU3dzRyVKelQwSlQrZwp6NiV9UDF4U0d3djhrNiVEWDVH
X1B7JHBkUSF4KUFeb0wxTnx7QlJ+IXgjNWpDeHhJfXlqYUpCazJRWjFqayRUWEAKentoRDBEcTt5
aVk8MHFCMDxJZGkyUiprZ2tENjZQcTJickNIQGB4U34oYzxJVmN2V1pZQ1Eoblc1d2M8KDJxZFNK
CnpVQnM5aClWTVhjT31VTXY3JT4tQWA1UEZCMCZvWVBaSEhaJF9zbz0xSnp6dH4jMjUjPHVvPkBf
Nn0lYW9HVSV4Owp6YndIeihiVmpeKlJ2aWQ7N0J6M2QrZWI1PlNZbF5gMnwyamtfd1dvN3orVkFI
YUV0OClJKldXVHBeMEwkXnMlUTIKejhreXNvRChLVTF7UF81Yj1VfGY7WiZDdHluWTEjWlJYcms1
bUwxUVF2cntIQztIdnVSJHR6TCNBTldLanVFcWNYCnpVfGNnJmw5Mj8+NVVHYXQxMF94Y3NySVQ3
WE5BIyY2PiltNCp3bVhoI0V0YWp6UipATEI3b2N1KW90UVY3fGdeMwp6bkl6K3c8JGI/VSlfUG04
ZEVJe08/X1hUa2gxX201XllVJFk4WnE1XnBGVkolV19wanAhfktrXmZ8aCRQVEtWe04Kekt+SS13
LUwxZDEmYCRMciFVSUhlS1piS2VLc0BnOXB5el9yZDtNfj1Zcnc0fVVTajtkei01OTNaZld5Yzw0
JSpXCnorM0sjSilnfVpFT088V19ZeEEhdjwrZlZCT2Rodzhxa2plem1DJmE8dnlAeGIlZ0ZBYSlo
cihfU0w5b0thbiVpYwp6JT1aUEU7Rm1nTmEkfm1+ezduVWZwaTJNO3RLXypYQ0M2T3w3PmxmfjY4
VEwzb0l9eUl0IzZwVXdYPmwjR0pDPiYKemk0QVopNHxBc007Zl41JnVtRVlCVGUhN282d0xVPlUh
QUZ0Rll2Yz5ObEhwTDA/ZkZkcmo1JDBVWExkcEFIQGNGCnpXamdING9LaU9XUmdJKUVRa3RPMHNn
Nz0waUtNU3ZTUEk4SmBJP21GNDNeIXsxbVF4NF9YUjdSZCM/VUdsc35+fgp6PjdTTHtXR2gmYE8l
fVNYU0J1fUV1N0J8P3c+JFZNNGFiZW8oZzN4ZGNlaXorQVBWLSYtI0V3X0lYfHp2ZUFVYWQKelJX
bnczPU44c20wfFZhUHg3KXYlP0BfbkNtMmhBa0RgPHhkU3lIYFNtdU1VKF4hd2Y9aHh0KERRO081
NWwtYiYqCnpSPT5NOVRmRH5xOHR2U0NlRVhSKUNzU3l6O00+bGJBd1JEO0YqIV95QyRqPW1CdCRJ
XyolfEIzdkkqQ1ZgV1Z1aQp6NW4tKVN5Zl5IWlooUGMxcl4hWkBNRlk1JCR9MUBQTmh6KnJkcD5D
Njs+d1d2OUdVTUlWQnh7TkdRei0oNXcye3MKeng7bn1OJnZ4TCVNcmtaenJefGc3ZHkkc1E5eFNk
P3orNUswWCt5PWlwKjchNEhnP2NHV0dANzxkfGcqRmxMSyVxCnorcG9AI3J1WkwwKlZqcEFtbiht
eT1raV5NYyVDfXRHN0B5X0dPRGlSWGkyaCNuX2xJIzNrcihmXmJTY0lHX2Mkcgp6M0A0bSpKNll+
eV8xeHRLe0BBUUA1PG5ZYVJ8N1kwc0V6eUQ9ck91MUtoe31Yd055el9RKEkrVm0hRDhZeTVWUjQK
enUxQz97aDNqQXVYRWxuPj5NP2NJPzgwUkszSmE0d3RebVN3YjFoKmlKR1ZRJE9LK1YyUlkyK2A3
VHhVQkRxPmxBCnpkO3pVMT1RTk9VfDZFd0lRNC1BXl4+RV5mJVZmbUQySGNrby09Qz0mek8kSFpe
eTI1UlVFcWRPQj0mZFVmYzYjRAp6NFFLYCs8RkJ2RzFhJFEycCohJl9jazUlYE9LbVkxZVo3PlUp
Mk1XNzBJfX05aWw1MGNjXnlmMVVwWnJHQFJjQXMKemNwPjhkZGQ4JUp3OShuezdkN01FSmV5JUYm
RyZiX0AzU3xQUDdiPyVjNzVEaDtpUlB6JEpxOXg4OCRmRWhraElfCnp6QjkxPHB3dWtPKmFhPzdr
OSNLLSM2Z0VWKGFGc3w2VElXUnMjeXs8JFFhYVJaKGAoMjNBcFZMYE8mZ2hjPWJTbQp6QHY9Kj1w
IVpudTh6RG8yOX5Jd2R2eWUmZzVfTzE7dGk8a2BqLVZxP3FiVDNoXmVWVmFZclpNcDklZWhrcH0h
cm0KejlAbVh2Ui11a0I0bD9OJDFvUkhuP2N9VEsjYXItPF9tfEdmQDFmSUtnT2ZzYjsmYUAtI2BK
eUl4eCN0Pnk/ZXRGCnpXd3VuVUN2Y0ZsOXJ1Y3YmPlQkfD4oaz54Snx3ZkBJZzNJTGF3WmtMJGo7
Nl8/WShrZ0A/PmxVdUw2UyN4fFNMTwp6PzF2TlhYYktDeCU1SDhiOSRvY1RLY0VHVENuaih2I21M
cHhORihyJlQ4Nmc/ZFVFe3VfN3I/ezxmSSVkTnVvd0sKemRMd3NaNCZiaVh4dzdrU15TU2tFWGxW
RjJDQiotWiNoR3JeSE1tc013SiotX0pQd3NEeHwjal4qR1F6KCYxJlFhCnpgXlIyWUxqYmo/diYx
WT9INGA0Jm1mQUxGU3twazJwcTU4MWxYe35QTGVje0sqM15LIVJRZFZMdCYlTzltVzE0Kwp6ZXRj
WEw/PFd8IV9fcVNUMVYoX3hBSysrUE04cSRRQ0Z6aUBSREgwUzh6cjlxKiErSGRNKldqeWZ3e019
Tyh1NSoKekdtWilGa2AtSyVVUn5QPXBVd2lTb3tTOU5EakolLVM2eGV4X2RfWnRfJXt5c2ZUPXhC
OUBwantrZmNGY2crTkRjCnplX2VKPVJMXzs3cjxLejlraGJXJVJYMTZ6Znl+akorNDhCdChIS3tC
T2wjfVIhKHYhfXMrVVkqWU17fWQ/bCUqKgp6ZG9qeDhxWnVEbVktYHYyck5FY2dnQyMjczloZm84
JFY3Vm1BfH1YT2wjI048dTBMVyFpQnhuPUFaJW9vWjQ7MGIKelY9NyFednE5MmE4T2czYjl+aFR6
TmsmQj5WR3UhNl5aUUZtPDZtS2ZQaHd9KXBKN14lcm1CVjhfOzkmSnc8WXF9CnpOPXB7RmlkeVhh
YUpJRk5uX1BYeEJhUnFJVDNaakpFS0N8RSNuN0t7MEYmQWQ5VTU1JU1kZjhKRXUxa05jMUR6SAp6
YC0hXmd3WjZYN3I4eTBvP1NeVlM9UlphRGI8aHxBJCFuJnk7NjBRdFo3Q083OU5nSGJ3KmRoczNs
fWBNd15idGkKeishe0NtSiokeTgpQGhOWmE7d0I+KCElRT1LcSppYEh5X2M5NX5KaDs5SFNVOEhm
Zj9DPEh6MHIoWn5LZUA5XjdPCnolKlBDNVk5PUtLZjc8JFVCJm8teCFfQ2N+YE88X0wqYjxAeUFZ
c29rP0hCbnpTZCk2TmN3bFVTekt6Njx0K0JUVwp6e3o4dzR1KSRxdmFWLVkhWVM5VV5acWV6ZHZL
KCteYTJIOC0pfXF2Smt4dlY7cFdIV1hrKiZLYT4xZC15ZXk1ZEsKemhYfG9xSHNyR216RTx2SEJA
aFRWaTxfKl92JHd+SUFhWnFCblQ4eGExbEZQSDNId1RYWklRU2B2KChmMClAUkp7Cnp1UmZONUh5
RkN6IWhDIzs8NWlgNStjZVo0eHJtOTBsP284UTBXSnxAZjU5WStkPTg7WW9RQm19bGJzTikjO2da
cAp6JElQdG9EIXpHUzFwLWlPPz5XcGlIal9tSTNrIzlMalErSXFJWHMyVVomMXt4NVllU1haPCMy
T3RiZzNnNElQTm4KeiZYUCV4WXFlP3pZdDJCIWBGMj1xX3hwM3U4RUJTSjdyKD5MSSkoRUBlVFl5
ZEUtczhDQllgQnBYLTtnQSltRFA7CnpqKUhpTyRabXBFKFBITmxVTSY/SCRkaUBeSkxrdUJ0Y1F3
RDJyTztkYjZfeUZgfiVASVJRUkQtSEJAJl9wY1FyRwp6UHI0KiM7WHM2NW9COF9Bd2hXfiRCMUZA
WkNHcl44ZmMpZ1lAVTdHYT8+K2soJDRgYSRsdGpvYTZ5flNUQWQ5WngKenotTipCSkBLVnBrdklj
YVgweU9jPHNuQjY1b1RQXnRqKHI0ZjRxJUFxcWZAPUNsK3Y/VClaQ3NvPTV9Yjdsa1RKCnpDS1B4
IWxobEhqeXRMNlhIR0tmX214UDg1SyEjajxrU0V6JipZS1hYeT1WfGhNRzElISYtTXJ2Zno0JTtV
WEJFOwp6aXc7Qj0lUlRWKD9GOWMyV0sxPmJqdEJJR2E9UzN5JX0lZFV8TT5NIzRVekN8NXQ9VUMj
RjY9b2opcXFucygrLWoKemRhaTg8WTEwMnl7fUlaTmtOKXpPVCEzeTtwOW15UHZJeSlWMDxGYjZE
V3pGR1BMbH08UWN3XmJkZDNYJG1XayRTCnpMS05lTzJIeUpqZ2s/dWtaRlNTUHc3UDRga0dQVHls
Y242RVQkYVZtUGh8a1Q3d3VtfT0kU1o3IyZkZV5aPHZZbwp6VDJWRzl6Q0FiZndnNjVTbHt4Tklv
TFohYEg8ckZ4eFo2U2xmPzJCK0Q/MSNXXn1rOWRYNihOe0BFUGcwZW8rKVkKejtlVnhjPHtBd3Zx
ZHlDXnYlVlI3MzhybTRCQFVgO3VkYz5HdXhXcWBMNWVqRjc1X0lXYCM5R0UyM0dLMkFsUGJMCnpo
VFRSYkxpNjMrPXN6emdtJn41N3orakdtOz9BZ0BHJlY2Sk1LbCl7ME8xcn5KZ2kyRV9GVXVWaHxt
UlVCJWUmIQp6Q2d1eXZjdEFiV19IQ3JLbUJJcEokNE89QlBXYGVzMTsmNzBeYlF7ITxPYjFOSlRy
ZHdAfmZgOSRgR2UzMVQmNWcKem5ORDttP3ppVE1ad2kmTm9gfH1oQShZKFMtV0VVaFUzcWY8cjsl
WlVkeD5GSjw4PktOdURqR1JnSX5oSDVHTChyCno0TilWeWZMOV5uWEo3NV9EeG45bV5FfH1UPXZp
KWtfPTY8NkY5cEB7ISE7fjkhbVliUypiYj5YWXIrTjRjQyFBJQp6aWtBdUpFU0l1endDdEVgJXJz
MytHIXl1KFBTdDIyLVY3RCNqIzk/THM8Rj1hel4ydXZHK2RiSXp5WXY3IVJedkAKeiFmRFE2VHBM
QkEyYDhnb0RDIWtfIWJ9IyRYJlFrJiopb3QyKXIkPnF1NE48OGRtRmh1PjR1NXFjSnBgfmYtfmlk
Cno8cl52QmZBQn1oSV9HQFRxSVNfckVwZDErdT9oSGFAYVVxJHBUTWA4ZUFaUzZeTCNFVERNPUtO
TnhhNzBCbSQ9Ygp6c2ppNW0yKThhNVp1NiVXMHkqTXh0Y2FoNXdfO3Q8JXltKl5zUUo9TFJkUHw5
PnZCNk00V2ZsTFkoREY1IXQmaGgKej9FYFd3MDJ5MjFoLWRebXhve2F0R3Q0UF8pdVkqKWp2QV9k
XkRgZXVuK01GKFA7KSF6YStUUiVtbjNsbkNiTTAkCnp7X0BMfXlidSVyM0UzJF5hKEk0aDI3PWFa
UTZST2JifGJ0cStzZ2pqQUI/Y2s5VCZnXiNNTnphXmF8WDslWV9NVQp6IyllVlV2WCsybmNVN1dq
WEphcHNDPSFYKUNwcyNoRDJnY3lJQVFQOGJ8TDc9bWVJeDA8MUZqV1BCWnolMkBVaHQKekFUQ2pQ
K01vNGF3Oyl3cyFIS3BNNEphKTBDU2pINmQ4WE0hYW8/cXlsYU03Y3NEZGs8JDFHN35ENXc5UHxB
R3B7CnpqUk14Vkg0VkBfYTI9KGdnbjZNfCpedjRZNzQ0b1JDZFU4Qk9SbihzO1UhdnN4bCMpVEhm
JHw7YFo3YXtjZmwrSwp6ZEsrXlo4S0doO2IpZ3Nse2BaNjUqd2hzTEw8Ynp+WGMmfkdxJDY8X295
USp4RiVnLXIzWDk+WDlDYiRSKTI1NSoKejY0VEphQi1ILXd7S3sxYXF2cXo0cStDQjE3MnNfeDA7
el5rKU9Va3ctMjF1RnFVYlZ3MFNLfEBTKzAtMFU/b1hMCnpxZkxHcHM8bURwRElJbVkpJWhpLW8k
cztpNEZhVHdwST5ASEk5ZHBLO245JkQ0ZVBlNkpzS01MbCg1akp0ZEwmTAp6dkY9KVNEPEB9JTd9
aCYzOUVTcTEleHNwJm1MZCR8VVhSYFEzR29ZNDVYSE92RzVoQFJfTWMzSy11VGI8S21EJD8Kenso
Y0M8Oz1CeyVHY3wmR0JhQSQ9WHJIUX1XPkd7KU1HWXU1ajZsPTYoSUdtbV9YXjNDbT8oa2paZF5L
V2gmPkx1Cnp8N2ozaHpTUTAxVllrZDZ1b3AlJGRobSNnakxHOFg8bXRIeVhebHxCcnxadCshRyY7
KipMSGxEQkZPNjVVNWdNPAp6ZmZVKH05YFBmdSV5X3xuWCNFXkBpfTstJSlRQjVhR2YlTW5Fd3RM
SlFOQV9CRipucGA/Ql4oQHFnMDVqOzYheE4KemwyPG1eaihRMHoxeG5+eDs3eXc/eHtSR3pRP31V
MUpJVyFDZkQya0hNRl5kK2x6UFBYdXhBbTM8R1VkO09OMiktCnpsOHt8MF4tJm41UDJJX1F6aHpm
IXp+NmFiKXNFV3E4Q3BraWRyOHpHM0BWUTJDUU8hRXh+Y2diXj91Ri1UamlMRAp6cSVkWSM3PTdH
dThJSlphUjstSGFeYXVOYUJyd1pVQFJ7dCR5ciM4aypJeEoxNSNoOHM0Z1AkMClYOXpjbV8pKE8K
eiMpNE5pMV5aZDMrS2MlbSU2eypMTDtmYE0hRzZFczhqJW5Wby1mZmpnVjJ2Tm9IYFZCVW52I3Vp
YT9xcD07JCt9CnooR29mKDFESnVYOCNBRUlQSSkkPUliNERTY2hENEpNUD1VfmhycFA5OVBTTHVT
U2M0bE1TUloxd2BVSiFiWmUqbQp6QF9qXjhOc28rKXp8NU83bjsjZWtzfWNCTlpUclcoamtKWkJi
VTRXODRTK2tQQ0JGcWQ3VHtWK0pmeTNEVVF9PyEKej9LIXxZZEJiKyNMRygtdzBuVXVUQDlQWio9
OFQ8NFVZQ1U8IytROz5gTHpqXmVYY2BuSyUjQyQwRHFkODR4e1M0CnpRYmxmV1AqMmxCJVRgJHdV
VHBtNik2K0oqdT1GPV5oRXgrMnI+e3owU3VpIVN5XjE7biFZPjRGQ0YjLUFhQk8qTwp6bCMwSylw
Y3hFVzRuTCliWlNuezlQfHlIPD5ta3M5R3xeSEk8aDB2ZyN0JG1oNXFnXi01KTNXaWFKP2coTyMw
VW0KemwhdFNqMmBqenVHS1VhbUskTVJxRnR7YG0tPWE4VkI+OXwpO0JXTWxTOUFlKUlDfGxGJnB9
KGtabmRyYlQyezJBCnpJfVlBMTRPOFZXWT5kZHZ6STRTfWUlPkxkZ0FoOTNmXnUtazRtUzVfezF2
OHg3VFAycWM2eiQlO1MkclRWV19NYAp6eHl5WmBqQG98MXBlZH14XnR6dilFaHZTOXhqc1c/Pjs2
YXxMXndXNiM5cGkkJmJQNVBOKkxRUDtJUmVLMzVrdlcKelV8RjFIamN3fVNmK0J2Jm9pa1hCJmRW
ciZQcyZ9KV4xSDYjSXJIblZLcDY0KHljPkF9emNTdkJGRGh6X2k9TzRqCnpDR2Q1WXNqNUZIQzxA
Nnlaemo1MXAlK052MzVfVCZRb29Wfj17aWM4TlZ8Iz4+TkpPZUBRcFZfTEdIcUlkJHhvMQp6KUI7
KH1OKVM3QzZhLVA/cUd2S2YxTFMpXiMoKzAjJWxFUihRYD4pPkpAdThwMERDcV4qY35AYkF0bDls
NVJWUnoKejFkYkJudShLcmZASUcxa3tZMzlVUEN4KHZWNW5vKlQ3VyspZj4hKX44VWxVPi1AYyV+
RnNPWFJfP0VsYGdfM0I+CnpFdkYyPjwjPXA2YWY5VD1pUC1Ra2Rsd0JTUT8hQkZ5NWZEM3wyU1pz
RHA1NStxSj9jISUoTnhrRDVnNjtHPyFNKAp6UmE2VnFoUEQ3bXJ2ditCaCZHKEtuXzBDVWdPVlRQ
dlNpcX1pKmhnfUlafUxFJFp6X1dDbmpkMTRvbkhCYGQlI2IKelIwZVZ5eno/VldsO1kkRUx8VlY/
ZiN9TFQrWk8pR0cjaHVraXJFVEZoe2skcT43PXtYamJYakdvR05eQENaS1p7CnpteUFIWDI/PjJD
eXhBb3stUF9SXmRqUUU5KVJPUzdHO0o7PV41cmNyYEpVWVReeFpwPzAwYENmKCRRUD54fUJjcAp6
LTcmNEdIVXhyYGdRaWpeLT8jcmxwSH1Vb0A3SEdXODQ/UHNvNmNDcFA+PmRfKyomJj1qN2FYZkFf
Y085a25XdVkKemcyWGRzcyFsMzB1d2AhYWx9RnE2e2FxTDA4d0BzJDNwKCZ+Uz1SZEJ4RFYoZ18j
QSRMRF5fVEpTaHVLXzZgeFc4CnolI35ZSDVJI3JRXmxgNkZJYnRBWkpicDVEeV5LdWk8S2MpcyFE
UHskJSohLTFNKFNIfjN9akBOVz9MZ15lP25jcAp6e2w9azxWZlYkeGRZaUZmc1lkcXZHUldkcG19
VmV3QFJQPFEwaSU9ST43UD5LY0k/R1JWP2M9UT1aN0AtKVU/c1AKentSIUdzNHZPMmhfMERgNGpR
JDg4S31hRGhhNmpkeWYkT3pObUh+cmdofDZzMmxCZnxAKyVnYWg/JGM5aiohJCFCCnomQFY8eyU2
PiVycWFjV25MRVA0NCQ+b2xDTzYjZlUlVTloLXpwalpPdWx0QUkrQ0FJNSpncDwqI2xwZj4zXlpU
Qwp6VzFiTCkjaFhXaDlPYVhSUiZRazkpSllXKjMzRiV8REM3dDc8PTtaVTsrRiV+TFJDQ30xR3wm
P1BmOFZ8O31hIUcKejwjU1A5cF43I2hecVh1Kk8oP0VeKlYhX2BfeEl4eURHVCVmYHpqdEI5bWR7
Y3Z+Jks1THIjXkpUTVM+ckA3TCpNCnphYzJ5ZmN3LWpoJG9QOSQtVGpZSystdGkkUmFLezgqKXRT
VUVHcFhBLWYqM0spZjAhPytneD4ob0h6cE9eQXJGQQp6YDw4aTEyPX1ufV42d3RUMUcqR2NnI1At
V29iOHVxRk87ankhSCtvN0RAO0tuLTl5fD84LSRvKntPUk1Pd3loPHYKeldBSjJvOCMxQD5AbVko
ej13SGxzYzBOP0NeeSs7bXRkXmUwVkZjdDBoWUA8djdMeTg+R3JUZn45Zm13JkAjRXFhCno/LT9K
I0FNKVEocG5oRz8qQjBpYThGMjYxbmUjQitwNTdTSnhYbit0NUZtcDxpVj5eZkU8QCEwVk5fTUUy
MDlKSwp6KUdVX0hYOFdvJD9vMU4zPEVCX2RtOGtqUGJ8OVZ+R0pmeSo0eEszM3FUNldxO1N1Vngh
cVNfYjV8XylqKDx7PDwKem9MVHxpXiotZEBKSGB9JG5pTHliR085N05DI2g3PStibC1sTCNkT0Jt
VlYhTmZ4TkNIK25rVGYzI2BzZVpNeDRkCnooKGBpalJfQTE8d0goQ2dwTmtZeSkqakVXIWt3VGFr
dSl6WlpsR3hLMEYkOHl6XiooelUocClVKztqbSFMelopYAp6NmxXUGUqN2VjUz5xcC1XYUA0O2B6
YiRlMWFqKyVyVGs1cCF5Sil9PHAtdn1IOyZpIVVyU2pJakY0RVlUPWI9MmAKemdwXm9OKVpIM0Yp
TiRGczxgeGctSzc8Tkk3JSR1MzgzJE5Oe1IkMyRqM0IxIVYyYWE3RD0yZyUlcX17dXt1Y3JtCnpR
VV9oQUNKV2BETWRvZ18pP1M5UCM+YnorYT4oIVkybn4mR1g9aCZGcztlZz41PW5JZ18oWVpNd3Vq
WG1RTDxUWgp6eG9gfkdTXkFXTWQjdnNkO1JEa3ElJDM9S0BKZXBIN3VNJEgwP2RUcEhrTktDQlMh
PiNoQUE/PDk+PEErc08jNUwKenomUVR7PHNzMihVIXk2OWhnNT1DdDt6JnhLRnA7JXVJI1BMRnUt
eWdBKng2RyZKR0V6WHRvTWhDWlNeJj1rWEVSCnpRJnkhbHp3Uik3WHY3IXsyclFSUFdVNF5Uc3RC
QlhZe3RlUVlnQ3hfS1Q8Mk5aaXNDcUk0ZUV1eyhORHc2KH0hbQp6Pl44VylFQE43RUB0MVhnZWpL
ZTltRGd8SXZjRn5EbyNwTmtuZTNwITFEYTh5UnZvUk11PUtwPCFnejFRSUl1ZCgKekg9dFkxS3xm
UVNEPm5OM1p8I2xaRUFxRiNlRDRWXjdwZWpjX1dUeVI9Yj1VdCN8aHV5MEQ9IU1EJlMzPzNYXnl+
Cnptb0JEQzh6VUdBaTckMmopWjNPe1M0KTAqeHdrckdLR0h7OHJlLW9yUkg9eWVlP01gfFpHJFd5
I1lST0dCd3d8Nwp6JmM1N2soI0Y+PHkoVTAmeTdIVHdlSHlBYTh2TSs2R3d7WClpfnFuQ2A0KkYk
WTFGcmA2fl82YWJkO1ApND5gdHMKem8waDtpcj9lKVR1QnV6USl1bU9GZjdhYkptMVl7dUQ9JlR8
TEs+b3gqbGl+Kj9SN3JyRE9YKG8rVnhvQEFaPiZ9CnpHY2ZSUTR7emE0bjsoe3MlKXUodEo8alVM
KVU8SUU8YyQyM2B6OzZuVVE1YlUqfXZJWCFeN058JU4laU1aNlpvZwp6RjYoaHhQbiElfWlXIzwm
PH5kVzVQLTlhSitFVntANHpsNU9sVHA3dVZGTT8kWVE5LU9iNFUrQmVVdGZgTCViWjUKemteTTFv
LShKS3VYPztCM2d2PlN1P3NGWClEd28+KXh+dlM4IyMyak9UVzc8NntPQlg9SE1ZQXZ7UUFsTjd8
JFpuCnpLSkReKHZwUFUrZzRERUlicVJQVjJXbEFTPXhhV0ZAfnk2fT9zOVJvd0RqPyVSaWh2eWlP
bko+V2wwQ2luPFM8aAp6OHRTdmVlJEYxeTdEWFFBQGtjYntZdiN9LXgmQVpwYX4meDdPKTglfjhg
c2p9NVBSYUg5ZkBqfW0oZUxiNDFjPWcKemkyOV4zQj1mTWc9dXlncGBXbH1fX1IpOUpZVT1ESWJM
dk97JWpoYWReKD5ndWR4N1UkTWo5SWQpPCV0dShNd30+CnpVO3xWWU02QUdLXz5sYFZod1MpdWUp
M2crUiRAez8mZyk0ckVyVSkqc1VlVnAjZnI+cWRgVEl7aXBZYzZjezJVPwp6cHg0KlpCMnZNZ3JM
TUd7JUYodTZTK2J6JChkN0VrZ0dPUWR6ZWFFXmh+SnlxK3Z9SGtjJE89MXo5dmltUUJYODkKempn
QTUhKDBoS215UUpiUDY1OVhoRz1UVGVfdVhkUzFAakQ+PDMqV0toO013eyE2cXYrUj5Ndj1FTjgt
VjRSSDtqCnphJnBxU3h+NWZyWT1YcX1iNHo2NCg5JVdVbnNFSChRd2IhbHN0T3E7Rzh8LV48N15H
VnoyVFRvYmpiWnUxbmhabAp6blQ3QGFjZF49czZsanxqKEkoTFJ6Tk4jVWN7USo1TXR3NVZfbU11
R0JpQ0tNQ2UzWFdxMmxrcUElUz83elQzKWUKejB6ZCN9Z1UwKzZyMHMyKGYmbmpwSzFoekN3JUNk
PD5KJGFzTk1BND09dU1tWks2KyQmd1g4ZGdHT0Q8Kns0bD05CnpwQWF1NllsY0o0WFRaVDlUYW5Z
KUBUb0s4aGYkPGwkNF9sZVVKVnppPWxyMlcmNFFNS3FmSGN7NzNeO0g+bGpYNwp6amtvQTR0R1gr
WS0kVFBVfEZMKnxvb1FnbSFxQyFsaHtrUSRFN2okJmJBYTdQR3Jwa1BuJGlPWFZeWD54Wmd8U20K
emJsMjFyOEokNmclWVQ+RURhVz1qKHkhdTFvRmtUaDU9WSRKVWVDVnc2Z1MwSCFHU1llYXVgcj5D
OSo+PTZIVXBqCnptR1RvY2lIeUBWTzxxenthJlZBRVdaVTYwYFZPKW17OT9AJjY0O28lISRYMS1O
RXwpekFYWnt+SSReRC1xdkFFRwp6QXY5fCltfCohWmlLdkxvKEI3SkxPJEk7Tm8xV1VhN3g/cmBa
UiVkNm9oeDl3I19oPiM+eld2cmw4UDA0K2VCPXsKejdDekBNdzItbmk5bWFWWVhgY0E2OVU/I0ZT
cSU/MG18QndlYj4+cHQ1KG5td2dgSVlQQSo9UklyQXR3Xntzen5ACnpfKyRrJlBrYE1FTWBrYExJ
PSQyQ3hxSUR9PzJScylUcVpEVVJoalpGRjRYJWJfVWBuNCUjcHwpd1ZlRjg+bHBLSwp6R3JvSz9k
cExtRHY4PTFsZ0g3UD8/empPWTlSQW1jPjB7RmVhYXJpRUklYEhDLVFKdUVZV082WSFKP3pkPV9e
JGIKelJXfjw2TnxDfnd2JHRxPmVtVSVwSnFJPTFRITw3MW5SamUkcnwjUkBPMEsrNHZKKiglZ3o7
RDg7I19UVEkza1NZCnpnOVVTKjR4VH1nZXc4WnxZVUh4X2RiY0BVT0JUJEtkYSZHJlJtRT18MUhy
SGowejZJaUB9ZHpIOWdpViQlWVpfKwp6V14yUzdmOTdWfFpQaXZiK31zU1hqeTZCQT5qenpDRXJK
aiM7YWYmeCtRUmFzWVVHOXQzcTtwQiQ4b1hULWt6bD8Kenpxa0xvIUNFQVVqajA8NUwoV2RtTEkw
NEU3UyZOJHZZKnAqXntgaDt7UjRUUT1qXz4rR3JnMlhWPXlrZCRvWiRFCnp4Q2pUSVI+bH0qcjM2
Mno8IURkIWs+JlReaEp+JWNTVk45TTRLQ1N4UilUV3ZKJFFtSzFfO1lJVEo4Wi1UdklWTAp6cnBZ
VyQyOF9RS2RyLTBnelNXUSQmWDNDZjtKOGNhTXAkYiZvMmhDemRIMiU+VnpiSktrVHlBUG8zV2g3
VjBZe3cKekc/dD51K1JJIUN7QTtZMUlYY2cpJn12WTNIayRHZ3J2aUlYdVlkV0pVKm1WZCt6RyZz
OE5YPnAxVnNqMUZpcXBsCnpacyV3el9vdVRUSXJVdWlgdWcmcF4oTCVNRnlpdk5PKVptVCp7TGkz
MWtVMmQoZFI0O1VjeD4qbW1lSDg7cHc/VQp6WTJeYyo8UHNPUSoyYkI3eD1UY3I4cWY2Pl9JZ0Bg
elYhTmlKNWRzNEUwMiUpUkdNMFBkaE1kKi1DVmoxZSNoRkoKeiVrSEtvVGo1OEZtZmNvfTBYRjFx
eDhkeDVUbGhIZz8yOWFSZXU+Rk9hPnF+UUJxNj07Xn4+Q1JWZm1kMy1qJitSCnowPiMhJW1+QFI/
TUVjRzNDNjw0V1dPdyghQGJGQkk5WChCIUl5QDZiU2RiTVg1fXB0S1loLWBgdDQ8dGtPQFh4cAp6
MThlUDZldCFzTmEzTG4xJU01RStle256V3dgbHdmY2k7c0lZWUBzZHtZKTc0WlBDajYrPVRsSGJa
PHFrUWNzSD8Kenl+JUc1a3BTYys+X3tDVjtybkA+dzBXRnZqd3YyX0VDMTYhPGwocW9veXlIbFdC
NUMqczdaLW8kRGBzI0lxPm1iCnoteyt7d0s8KHwlP3ZuUUY9SUxxRDxpeGw/VlQjRnhmKXN4RCp4
OWQhT3RsSEQ0P2BReyQ0QDx+bCRUYyhjelhzOAp6Z1FuJXNAKWlXSXVaQzl0ZDZeOyExXnQ8a2hk
Kl40NklwYkpvI1l+eDdtSENCQTErOCgjQlRMajRJdEdFVzV3WlUKek1UX1pHMHVjakR3TENvUWZ6
RV85TjhDeFZqd2JZY1UralJaZDdaU2ghXn1eY2hHZGsjVnQ8VCEhdnomWmBoUTJICnpWKllhZlMh
M3IkeCZ4TTwkYGE+dzBZdkV2YTxpJXZmc2lBIUdGeVl7Rz5ATjNSNFRQeUFaQno4TzFuMXx4Iz45
cAp6PWhObG9QSHtfai1RSGhFR093cTc2Kn11aTxPeHN7Jm8kPElPKDZkSipRJHJGd1V8eTdTTW96
dUFONCFjKmxZPygKekcpaFchdGJHTFExUE5CVmtvP0pxZ34manBNKVR7VVdzLSUrTmZNK0p0XnhN
ekZjbytkcSN0IXpfcDAlIXM4JmFFCnoqVGhVPmZoZCRrQmpZVHQ2dHdPKntLMEcmUn1xTTl6OF5G
I2R0b35RNkc5RXBtRGY1fUopY1okMjl7Q0ZjR0t0awp6OGluMVA8OHV3JEwjdlY5KzxTJGBudUpq
bClLaklHbXFFMClecUlPIWJzKzNELWJIRUVVbVVYMHNSVkh7dSokSGoKekkxRkFzSnVSRng5RmdF
KU42Wk5JV0lwXiVXIXY3andFfiR3PGZYfW1za01vJmxZLShkdFpoR0pUM1p0KE5FZyFZCnpWYEdU
WiZ8fEFCdmRJYntrRT5YZms0QG1fJChgQCpPYHhmUVJtJWM2NG4rU1hJJEJQSkNEKHo/biFLZks8
azlMKgp6ZnFKbVUwV3ZFQSkyWTRybHpCV2RRdjNDa05qQH42VGB9cWBFQSpZWVlFemVrdVM0V0xF
OytaYCpMPTZRXkYtfXcKendyTEZ0P04+fXYlTF5YfGx2MTRvVU8lal5ZaFYxUkxHITI4ZVM4YVhS
ZzB6JDBmNiVKZThGNG9aWlNXeyVXVWgzCnpLdCpNMDREXnk4QD9AIXJSTnolX0hpP2ZDUiN4bTQ3
dHRiaUBRVDZie190fX1jKG91fllWWntIZVBtMXRGJCVMaAp6M3lVUD13K3BtaSFgNHttKTR3b0gx
YFliNiRefHNVP0FkcSo0Yk1iVHEmeTFFPFk1MGVreHlmZjZValRMIUFgX3gKekhNMUR5SDhRQCVe
PjxvRV5MWSNxNnNoR1VyaCVwdHslKl5yV1c1WWxXfUxnVTBBZjReZjI0cHQma2o9eUg2VENVCnpj
Zm4pUWkpZH4ma0EkS0ZSdEVYSG8+bT1xUW5aPDdqdU4lRFkpISlRdzZKPm5Ke0p2O2skVWtRMDVn
MHh6RWIwdAp6UjgyQitvKk1yKSoyQ0M4KkcqaWdFLUJiRnVwNnhNVSh9MXMkYXJ1MWo1N0pxUylQ
LTFfWE9OSnJUI2ArI18kKEkKekxMWEp0ez4wSz1BPVJQQXVHV0VkSHtHRn55Mz5uRkVXeD9VVlUh
YTRHfExEZUZncG56eCRaajBeNnhtKnt4ISkpCno+R2NXdEp6RmgjWFBBRk9oPDJ9bU9SZWpCUWF1
R0ElXkwkKCNMMHYqWWgwWjx4Zy1JbDR3YGE8ITN0Xis2Zmp6Mwp6K2RHeksjUW15a1F1c1h+K2Rt
bnF6OXIzdU18dDNEPFpiZTZAKjRzRS0+WFhlLTt8alZRcEM4WG0kWVdEXnU9cHAKel5uMVBEIXZh
aFd6SHt4RkNyYTtRZHdrQGVnQWkoZj5ZTm4rTVUtMXR5PiEmTjwlQWFOZTt0Pj85cnJtfDlvKXpn
CnpCJEgyYlFpKUFFbTdOTUJ3cm04I0hUKG97KSNCNFk+SlJ9Y1BJWmE2bypedW5iJmArO0VKfUhQ
cjBDcUJPWnJZTAp6QHZiQTNPP0U4czFSfG5IOGZBJklBPnFDc3Y1JGdlKUV5Sm1pWTx7e3huKlR9
T2tEJjVORk5+dXNBITB4ZE1JO3AKenozeVExWiU2YVJGRFFRLTJla2FwekImOUprMnVlWWZMfj84
TyUhTT1tUmBpUl9kOEBLdTRnVGdzOFJvJVUqbm81CnpHNXQ/bl5YMHstN3RZcmZMWGorMmEkODwz
NTF8fTc8RWJSYDkjJWo/Km5+RERzNGZGPUYjcTl6TV5GQHZpZ1VXJAp6alhYa1Y4VihkNmtSZy1S
Tmd1fCpffVlfZDxKdTtiTFZTNlhFLVZyLTxnKSpuSlZ9WiU+MGl1YlF0fDNQKjtUbmkKeiQxQ1dA
OCEraDcpUjxxSHBrUGNRT30hfGdsezBYczE1WVlOOX1PUHF5QkoxX0lCUkVIYk1ofCVAfnkwWiUt
I35LCnpOfSlYcVRnS1FON1kwK2I9UEp2NkJTT2otOThxUiVBQjMqVypuQGJ4SH0+QUFhcGFIPEtn
eCZ5QyE4cyp6STZrRAphMDMlKnM/NEtSO2NLXzh8MGRpOHhsR1BIJUFeIXV0ZWBOanUKCmxpdGVy
YWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL3Jlc291cmNlcy93ZWJnbC10ZXN0LWhhcm5lc3MuanMgYi9MYXlv
dXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvd2ViZ2wt
dGVzdC1oYXJuZXNzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4NWY1M2FjMjdmNzUxOTE3OWZkNzcyZWQ2OWJh
M2I4Zjc3YmVjN2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9yZXNvdXJjZXMvd2ViZ2wtdGVzdC1oYXJuZXNzLmpzCkBAIC0w
LDAgKzEsNTgzIEBACisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBLaHJvbm9zIEdyb3Vw
IEluYy4KKyoqCisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJn
ZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFu
ZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1hdGVyaWFscyIp
LCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5n
CisqKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwg
bWVyZ2UsIHB1Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBj
b3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29ucyB0byB3aG9t
IHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworKiogdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl
IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqKiBpbiBhbGwg
Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMuCisqKgorKiog
VEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBB
TlkgS0lORCwKKyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRF
RCBUTyBUSEUgV0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJ
T04gT0YgQ09OVFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQg
T0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRIRSBVU0UgT1Ig
T1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy8vIFRoaXMgaXMgYSB0ZXN0
IGhhcm5lc3MgZm9yIHJ1bm5pbmcgamF2YXNjcmlwdCB0ZXN0cyBpbiB0aGUgYnJvd3Nlci4KKy8v
IFRoZSBvbmx5IGlkZW50aWZpZXIgZXhwb3NlZCBieSB0aGlzIGhhcm5lc3MgaXMgV2ViR0xUZXN0
SGFybmVzc01vZHVsZS4KKy8vCisvLyBUbyB1c2UgaXQgbWFrZSBhbiBIVE1MIHBhZ2Ugd2l0aCBh
biBpZnJhbWUuIFRoZW4gY2FsbCB0aGUgaGFybmVzcyBsaWtlIHRoaXMKKy8vCisvLyAgICBmdW5j
dGlvbiByZXBvcnRSZXN1bHRzKHR5cGUsIG1zZywgc3VjY2VzcykgeworLy8gICAgICAuLi4KKy8v
ICAgICAgcmV0dXJuIHRydWU7CisvLyAgICB9CisvLworLy8gICAgdmFyIGZpbGVMaXN0VVJMID0g
JzAwX3Rlc3RfbGlzdC50eHQnOworLy8gICAgdmFyIHRlc3RIYXJuZXNzID0gbmV3IFdlYkdMVGVz
dEhhcm5lc3NNb2R1bGUuVGVzdEhhcm5lc3MoCisvLyAgICAgICAgaWZyYW1lLAorLy8gICAgICAg
IGZpbGVMaXN0VVJMLAorLy8gICAgICAgIHJlcG9ydFJlc3VsdHMsCisvLyAgICAgICAgb3B0aW9u
cyk7CisvLworLy8gVGhlIGhhcm5lc3Mgd2lsbCBsb2FkIHRoZSBmaWxlTGlzdFVSTCBhbmQgcGFy
c2UgaXQgZm9yIHRoZSBVUkxzLCBvbmUgVVJMCisvLyBwZXIgbGluZSBwcmVjZWRlZCBieSBvcHRp
b25zLCBzZWUgYmVsb3cuIFVSTHMgc2hvdWxkIGJlIG9uIHRoZSBzYW1lIGRvbWFpbgorLy8gYW5k
IGF0IHRoZSAgc2FtZSBmb2xkZXIgbGV2ZWwgb3IgYmVsb3cgdGhlIG1haW4gaHRtbCBmaWxlLiAg
SWYgYW55IFVSTCBlbmRzCisvLyBpbiAudHh0IGl0IHdpbGwgYmUgcGFyc2VkIGFzIHdlbGwgc28g
eW91IGNhbiBuZXN0IC50eHQgZmlsZXMuIFVSTHMgaW5zaWRlIGEKKy8vIC50eHQgZmlsZSBzaG91
bGQgYmUgcmVsYXRpdmUgdG8gdGhhdCB0ZXh0IGZpbGUuCisvLworLy8gRHVyaW5nIHN0YXJ0dXAs
IGZvciBlYWNoIHBhZ2UgZm91bmQgdGhlIHJlcG9ydEZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIHdp
dGgKKy8vIFdlYkdMVGVzdEhhcm5lc3NNb2R1bGUuVGVzdEhhcm5lc3MucmVwb3J0VHlwZS5BRERf
UEFHRSBhbmQgbXNnIHdpbGwgYmUKKy8vIHRoZSBVUkwgb2YgdGhlIHRlc3QuCisvLworLy8gRWFj
aCB0ZXN0IGlzIHJlcXVpcmVkIHRvIGNhbGwgdGVzdEhhcm5lc3MucmVwb3J0UmVzdWx0cy4gVGhp
cyBpcyBtb3N0IGVhc2lseQorLy8gYWNjb21wbGlzaGVkIGJ5IHN0b3JpbmcgdGhhdCB2YWx1ZSBv
biB0aGUgbWFpbiB3aW5kb3cgd2l0aAorLy8KKy8vICAgICB3aW5kb3cud2ViZ2xUZXN0SGFybmVz
cyA9IHRlc3RIYXJuZXNzCisvLworLy8gYW5kIHRoZW4gYWRkaW5nIHRoZXNlIHRvIGZ1bmN0aW9u
cyB0byB5b3VyIHRlc3RzLgorLy8KKy8vICAgICBmdW5jdGlvbiByZXBvcnRUZXN0UmVzdWx0c1Rv
SGFybmVzcyhzdWNjZXNzLCBtc2cpIHsKKy8vICAgICAgIGlmICh3aW5kb3cucGFyZW50LndlYmds
VGVzdEhhcm5lc3MpIHsKKy8vICAgICAgICAgd2luZG93LnBhcmVudC53ZWJnbFRlc3RIYXJuZXNz
LnJlcG9ydFJlc3VsdHMoc3VjY2VzcywgbXNnKTsKKy8vICAgICAgIH0KKy8vICAgICB9CisvLwor
Ly8gICAgIGZ1bmN0aW9uIG5vdGlmeUZpbmlzaGVkVG9IYXJuZXNzKCkgeworLy8gICAgICAgaWYg
KHdpbmRvdy5wYXJlbnQud2ViZ2xUZXN0SGFybmVzcykgeworLy8gICAgICAgICB3aW5kb3cucGFy
ZW50LndlYmdsVGVzdEhhcm5lc3Mubm90aWZ5RmluaXNoZWQoKTsKKy8vICAgICAgIH0KKy8vICAg
ICB9CisvLworLy8gVGhpcyB3YXkgeW91ciB0ZXN0cyB3aWxsIHN0aWxsIHJ1biB3aXRob3V0IHRo
ZSBoYXJuZXNzIGFuZCB5b3UgY2FuIHVzZQorLy8gYW55IHRlc3RpbmcgZnJhbWV3b3JrIHlvdSB3
YW50LgorLy8KKy8vIEVhY2ggdGVzdCBzaG91bGQgY2FsbCByZXBvcnRUZXN0UmVzdWx0c1RvSGFy
bmVzcyB3aXRoIHRydWUgZm9yIHN1Y2Nlc3MgaWYgaXQKKy8vIHN1Y2NlZWRlZCBhbmQgZmFsc2Ug
aWYgaXQgZmFpbCBmb2xsb3dlZCBhbmQgYW55IG1lc3NhZ2UgaXQgd2FudHMgdG8KKy8vIGFzc29j
aWF0ZSB3aXRoIHRoZSB0ZXN0LiBJZiB5b3VyIHRlc3RpbmcgZnJhbWV3b3JrIHN1cHBvcnRzIGNo
ZWNraW5nIGZvcgorLy8gdGltZW91dCB5b3UgY2FuIGNhbGwgaXQgd2l0aCBzdWNjZXNzIGVxdWFs
IHRvIHVuZGVmaW5lZCBpbiB0aGF0IGNhc2UuCisvLworLy8gVG8gcnVuIHRoZSB0ZXN0cywgY2Fs
bCB0ZXN0SGFybmVzcy5ydW5UZXN0cyhvcHRpb25zKTsKKy8vCisvLyBGb3IgZWFjaCB0ZXN0IHJ1
biwgYmVmb3JlIHRoZSBwYWdlIGlzIGxvYWRlZCB0aGUgcmVwb3J0RnVuY3Rpb24gd2lsbCBiZQor
Ly8gY2FsbGVkIHdpdGggV2ViR0xUZXN0SGFybmVzc01vZHVsZS5UZXN0SGFybmVzcy5yZXBvcnRU
eXBlLlNUQVJUX1BBR0UgYW5kIG1zZworLy8gd2lsbCBiZSB0aGUgVVJMIG9mIHRoZSB0ZXN0LiBZ
b3UgbWF5IHJldHVybiBmYWxzZSBpZiB5b3Ugd2FudCB0aGUgdGVzdCB0byBiZQorLy8gc2tpcHBl
ZC4KKy8vCisvLyBGb3IgZWFjaCB0ZXN0IGNvbXBsZXRlZCB0aGUgcmVwb3J0RnVuY3Rpb24gd2ls
bCBiZSBjYWxsZWQgd2l0aAorLy8gd2l0aCBXZWJHTFRlc3RIYXJuZXNzTW9kdWxlLlRlc3RIYXJu
ZXNzLnJlcG9ydFR5cGUuVEVTVF9SRVNVTFQsCisvLyBzdWNjZXNzID0gdHJ1ZSBvbiBzdWNjZXNz
LCBmYWxzZSBvbiBmYWlsdXJlLCB1bmRlZmluZWQgb24gdGltZW91dAorLy8gYW5kIG1zZyBpcyBh
bnkgbWVzc2FnZSB0aGUgdGVzdCBjaG9vc2UgdG8gcGFzcyBvbi4KKy8vCisvLyBXaGVuIGFsbCB0
aGUgdGVzdHMgb24gdGhlIHBhZ2UgaGF2ZSBmaW5pc2hlZCB5b3VyIHBhZ2UgbXVzdCBjYWxsCisv
LyBub3RpZnlGaW5pc2hlZFRvSGFybmVzcy4gIElmIG5vdGlmeUZpbmlzaGVkVG9IYXJuZXNzIGlz
IG5vdCBjYWxsZWQKKy8vIHRoZSBoYXJuZXNzIHdpbGwgYXNzdW1lIHRoZSB0ZXN0IHRpbWVkIG91
dC4KKy8vCisvLyBXaGVuIGFsbCB0aGUgdGVzdHMgb24gYSBwYWdlIGhhdmUgZmluaXNoZWQgT1Ig
dGhlIHBhZ2UgYXMgdGltZWQgb3V0IHRoZQorLy8gcmVwb3J0RnVuY3Rpb24gd2lsbCBiZSBjYWxs
ZWQgd2l0aAorLy8gV2ViR0xUZXN0SGFybmVzc01vZHVsZS5UZXN0SGFybmVzcy5yZXBvcnRUeXBl
LkZJTklTSF9QQUdFCisvLyB3aGVyZSBzdWNjZXNzID0gdHJ1ZSBpZiB0aGUgcGFnZSBoYXMgY29t
cGxldGVkIG9yIHVuZGVmaW5lZCBpZiB0aGUgcGFnZSB0aW1lZAorLy8gb3V0LgorLy8KKy8vIEZp
bmFsbHksIHdoZW4gYWxsIHRoZSB0ZXN0cyBoYXZlIGNvbXBsZXRlZCB0aGUgcmVwb3J0RnVuY3Rp
b24gd2lsbCBiZSBjYWxsZWQKKy8vIHdpdGggV2ViR0xUZXN0SGFybmVzc01vZHVsZS5UZXN0SGFy
bmVzcy5yZXBvcnRUeXBlLkZJTklTSEVEX0FMTF9URVNUUy4KKy8vCisvLyBIYXJuZXNzIE9wdGlv
bnMKKy8vCisvLyBUaGVzZSBhcmUgcGFzc2VkIGluIHRvIHRoZSBUZXN0SGFybmVzcyBhcyBhIEph
dmFTY3JpcHQgb2JqZWN0CisvLworLy8gdmVyc2lvbjogKHJlcXVpcmVkISkKKy8vCisvLyAgICAg
U3BlY2lmaWVzIGEgdmVyc2lvbiB1c2VkIHRvIGZpbHRlciB0ZXN0cy4gVGVzdHMgbWFya2VkIGFz
IHJlcXVpcmluZworLy8gICAgIGEgdmVyc2lvbiBncmVhdGVyIHRoYW4gdGhpcyB2ZXJzaW9uIHdp
bGwgbm90IGJlIGluY2x1ZGVkLgorLy8KKy8vICAgICBleGFtcGxlOiBuZXcgVGVzdEhhcm5lc3Mo
Li4uLiwge3ZlcnNpb246ICIzLjEuMiJ9KTsKKy8vCisvLyBtaW5WZXJzaW9uOgorLy8KKy8vICAg
ICBTcGVjaWZpZXMgdGhlIG1pbmltdW0gdmVyc2lvbiBhIHRlc3QgbXVzdCByZXF1aXJlIHRvIGJl
IGluY2x1ZGVkLgorLy8gICAgIFRoaXMgYmFzaWNhbGx5IGZsaXBzIHRoZSBmaWx0ZXIgc28gdGhh
dCBvbmx5IHRlc3RzIG1hcmtlZCB3aXRoCisvLyAgICAgLS1taW4tdmVyc2lvbiB3aWxsIGJlIGlu
Y2x1ZGVkIGlmIHRoZXkgYXJlIGF0IHRoaXMgbWluVmVyc2lvbiBvcgorLy8gICAgIGdyZWF0ZXIu
CisvLworLy8gICAgIGV4YW1wbGU6IG5ldyBUZXN0SGFybmVzcyguLi4uLCB7bWluVmVyc2lvbjog
IjIuMy4xIn0pOworLy8KKy8vIGZhc3Q6CisvLworLy8gICAgIFNwZWNpZmllcyB0byBza2lwIGFu
eSB0ZXN0cyBtYXJrZWQgYXMgc2xvdy4KKy8vCisvLyAgICAgZXhhbXBsZTogbmV3IFRlc3RIYXJu
ZXNzKC4uLiwge2Zhc3Q6IHRydWV9KTsKKy8vCisvLyBUZXN0IE9wdGlvbnM6CisvLworLy8gQW55
IHRlc3QgVVJMIG9yIC50eHQgZmlsZSBjYW4gYmUgcHJlZml4ZWQgYnkgdGhlIGZvbGxvd2luZyBv
cHRpb25zCisvLworLy8gbWluLXZlcnNpb246CisvLworLy8gICAgIFNldHMgdGhlIG1pbmltdW0g
dmVyc2lvbiByZXF1aXJlcyB0byBpbmNsdWRlIHRoaXMgdGVzdC4gQSB2ZXJzaW9uIGlzCisvLyAg
ICAgcGFzc2VkIGludG8gdGhlIGhhcm5lc3Mgb3B0aW9ucy4gQW55IHRlc3QgbWFya2VkIGFzIHJl
cXVpcmluZyBhCisvLyAgICAgbWluLXZlcnNpb24gZ3JlYXRlciB0aGFuIHRoZSB2ZXJzaW9uIHBh
c3NlZCB0byB0aGUgaGFybmVzcyBpcyBza2lwcGVkLgorLy8gICAgIFRoaXMgYWxsb3dzIHlvdSB0
byBhZGQgbmV3IHRlc3RzIHRvIGEgc3VpdGUgb2YgdGVzdHMgZm9yIGEgZnV0dXJlCisvLyAgICAg
dmVyc2lvbiBvZiB0aGUgc3VpdGUgd2l0aG91dCBpbmNsdWRpbmcgdGhlIHRlc3QgaW4gdGhlIGN1
cnJlbnQgdmVyc2lvbi4KKy8vICAgICBJZiBubyAtbWluLXZlcnNpb24gaXMgc3BlY2lmaWVkIGl0
IGlzIGluaGVyaWl0ZWQgZnJvbSB0aGUgLnR4dCBmaWxlCisvLyAgICAgaW5jbHVkaW5nIGl0LiBU
aGUgZGVmYXVsdCBpcyAxLjAuMAorLy8KKy8vICAgICBleGFtcGxlOiAgLS1taW4tdmVyc2lvbiAy
LjEuMyBzb21ldGVzdC5odG1sCisvLworLy8gc2xvdzoKKy8vCisvLyAgICAgTWFya3MgYSB0ZXN0
IGFzIHNsb3cuIFNsb3cgdGVzdHMgY2FuIGJlIHNraXBwZWQgYnkgcGFzc2luZyBmYXN0T25seTog
dHJ1ZQorLy8gICAgIHRvIHRoZSBUZXN0SGFybmVzcy4gT2YgY291cnNlIHlvdSBuZWVkIHRvIHBh
c3MgYWxsIHRlc3RzIGJ1dCBzb21ldGltZXMKKy8vICAgICB5b3UnZCBsaWtlIHRvIHRlc3QgcXVp
Y2tseSBhbmQgcnVuIG9ubHkgdGhlIGZhc3Qgc3Vic2V0IG9mIHRlc3RzLgorLy8KKy8vICAgICBl
eGFtcGxlOiAgLS1zbG93IHNvbWUtdGVzdC10aGF0LXRha2VzLTItbWlucy5odG1sCisvLworCitX
ZWJHTFRlc3RIYXJuZXNzTW9kdWxlID0gZnVuY3Rpb24oKSB7CisKKy8qKgorICogV3JhcHBlZCBs
b2dnaW5nIGZ1bmN0aW9uLgorICovCit2YXIgbG9nID0gZnVuY3Rpb24obXNnKSB7CisgIGlmICh3
aW5kb3cuY29uc29sZSAmJiB3aW5kb3cuY29uc29sZS5sb2cpIHsKKyAgICB3aW5kb3cuY29uc29s
ZS5sb2cobXNnKTsKKyAgfQorfTsKKworLyoqCisgKiBMb2FkcyB0ZXh0IGZyb20gYW4gZXh0ZXJu
YWwgZmlsZS4gVGhpcyBmdW5jdGlvbiBpcyBzeW5jaHJvbm91cy4KKyAqIEBwYXJhbSB7c3RyaW5n
fSB1cmwgVGhlIHVybCBvZiB0aGUgZXh0ZXJuYWwgZmlsZS4KKyAqIEBwYXJhbSB7IWZ1bmN0aW9u
KGJvb2wsIHN0cmluZyk6IHZvaWR9IGNhbGxiYWNrIHRoYXQgaXMgc2VudCBhIGJvb2wgZm9yCisg
KiAgICAgc3VjY2VzcyBhbmQgdGhlIHN0cmluZy4KKyAqLwordmFyIGxvYWRUZXh0RmlsZUFzeW5j
aHJvbm91cyA9IGZ1bmN0aW9uKHVybCwgY2FsbGJhY2spIHsKKyAgbG9nICgibG9hZGluZzogIiAr
IHVybCk7CisgIHZhciBlcnJvciA9ICdsb2FkVGV4dEZpbGVTeW5jaHJvbm91cyBmYWlsZWQgdG8g
bG9hZCB1cmwgIicgKyB1cmwgKyAnIic7CisgIHZhciByZXF1ZXN0OworICBpZiAod2luZG93LlhN
TEh0dHBSZXF1ZXN0KSB7CisgICAgcmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAg
IGlmIChyZXF1ZXN0Lm92ZXJyaWRlTWltZVR5cGUpIHsKKyAgICAgIHJlcXVlc3Qub3ZlcnJpZGVN
aW1lVHlwZSgndGV4dC9wbGFpbicpOworICAgIH0KKyAgfSBlbHNlIHsKKyAgICB0aHJvdyAnWE1M
SHR0cFJlcXVlc3QgaXMgZGlzYWJsZWQnOworICB9CisgIHRyeSB7CisgICAgcmVxdWVzdC5vcGVu
KCdHRVQnLCB1cmwsIHRydWUpOworICAgIHJlcXVlc3Qub25yZWFkeXN0YXRlY2hhbmdlID0gZnVu
Y3Rpb24oKSB7CisgICAgICBpZiAocmVxdWVzdC5yZWFkeVN0YXRlID09IDQpIHsKKyAgICAgICAg
dmFyIHRleHQgPSAnJzsKKyAgICAgICAgLy8gSFRUUCByZXBvcnRzIHN1Y2Nlc3Mgd2l0aCBhIDIw
MCBzdGF0dXMuIFRoZSBmaWxlIHByb3RvY29sIHJlcG9ydHMKKyAgICAgICAgLy8gc3VjY2VzcyB3
aXRoIHplcm8uIEhUVFAgZG9lcyBub3QgdXNlIHplcm8gYXMgYSBzdGF0dXMgY29kZSAodGhleQor
ICAgICAgICAvLyBzdGFydCBhdCAxMDApLgorICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5t
b3ppbGxhLm9yZy9Fbi9Vc2luZ19YTUxIdHRwUmVxdWVzdAorICAgICAgICB2YXIgc3VjY2VzcyA9
IHJlcXVlc3Quc3RhdHVzID09IDIwMCB8fCByZXF1ZXN0LnN0YXR1cyA9PSAwOworICAgICAgICBp
ZiAoc3VjY2VzcykgeworICAgICAgICAgIHRleHQgPSByZXF1ZXN0LnJlc3BvbnNlVGV4dDsKKyAg
ICAgICAgfQorICAgICAgICBsb2coImxvYWRlZDogIiArIHVybCk7CisgICAgICAgIGNhbGxiYWNr
KHN1Y2Nlc3MsIHRleHQpOworICAgICAgfQorICAgIH07CisgICAgcmVxdWVzdC5zZW5kKG51bGwp
OworICB9IGNhdGNoIChlKSB7CisgICAgbG9nKCJmYWlsZWQgdG8gbG9hZDogIiArIHVybCk7Cisg
ICAgY2FsbGJhY2soZmFsc2UsICcnKTsKKyAgfQorfTsKKworLyoqCisgKiBDb21wYXJlIHZlcnNp
b24gc3RyaW5ncy4KKyAqLwordmFyIGdyZWF0ZXJUaGFuT3JFcXVhbFRvVmVyc2lvbiA9IGZ1bmN0
aW9uKGhhdmUsIHdhbnQpIHsKKyAgaGF2ZSA9IGhhdmUuc3BsaXQoIiAiKVswXS5zcGxpdCgiLiIp
OworICB3YW50ID0gd2FudC5zcGxpdCgiICIpWzBdLnNwbGl0KCIuIik7CisKKyAgLy9oYXZlIDEu
Mi4zICAgd2FudCAgMS4xCisgIC8vaGF2ZSAxLjEuMSAgIHdhbnQgIDEuMQorICAvL2hhdmUgMS4w
LjkgICB3YW50ICAxLjEKKyAgLy9oYXZlIDEuMSAgICAgd2FudCAgMS4xLjEKKworICBmb3IgKHZh
ciBpaSA9IDA7IGlpIDwgd2FudC5sZW5ndGg7ICsraWkpIHsKKyAgICB2YXIgd2FudE51bSA9IHBh
cnNlSW50KHdhbnRbaWldKTsKKyAgICB2YXIgaGF2ZU51bSA9IGhhdmVbaWldID8gcGFyc2VJbnQo
aGF2ZVtpaV0pIDogMAorICAgIGlmIChoYXZlTnVtIDwgd2FudE51bSkgeworICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KKyAgfQorICByZXR1cm4gdHJ1ZTsKK307CisKKy8qKgorICogUmVhZHMg
YSBmaWxlLCByZWN1cnNpdmVseSBhZGRpbmcgZmlsZXMgcmVmZXJlbmNlZCBpbnNpZGUuCisgKgor
ICogRWFjaCBsaW5lIG9mIFVSTCBpcyBwYXJzZWQsIGNvbW1lbnRzIHN0YXJ0aW5nIHdpdGggJyMn
IG9yICc7JworICogb3IgJy8vJyBhcmUgc3RyaXBwZWQuCisgKgorICogYXJndW1lbnRzIGJlZ2lu
bmluZyB3aXRoIC0tIGFyZSBleHRyYWN0ZWQKKyAqCisgKiBsaW5lcyB0aGF0IGVuZCBpbiAudHh0
IGFyZSByZWN1cnNpdmVseSBzY2FubmVkIGZvciBtb3JlIGZpbGVzCisgKiBvdGhlciBsaW5lcyBh
cmUgYWRkZWQgdG8gdGhlIGxpc3Qgb2YgZmlsZXMuCisgKgorICogQHBhcmFtIHtzdHJpbmd9IHVy
bCBUaGUgdXJsIG9mIHRoZSBmaWxlIHRvIHJlYWQuCisgKiBAcGFyYW0ge3ZvaWQgZnVuY3Rpb24o
Ym9vbGVhbiwgIUFycmF5LjxzdHJpbmc+KX0gY2FsbGJhY2suCisgKiAgICAgIENhbGxiYWNrIHRo
YXQgaXMgY2FsbGVkIHdpdGggdHJ1ZSBmb3Igc3VjY2VzcyBhbmQgYW4KKyAqICAgICAgYXJyYXkg
b2YgZmlsZW5hbWVzLgorICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMuIE9wdGlvbmFsIG9wdGlv
bnMKKyAqCisgKiBPcHRpb25zOgorICogICAgdmVyc2lvbjoge3N0cmluZ30gVGhlIHZlcnNpb24g
b2YgdGhlIGNvbmZvcm1hbmNlIHRlc3QuCisgKiAgICBUZXN0cyB3aXRoIHRoZSBhcmd1bWVudCAt
LW1pbi12ZXJzaW9uIDx2ZXJzaW9uPiB3aWxsCisgKiAgICBiZSBpZ25vcmVkIHZlcnNpb24gaXMg
bGVzcyB0aGVuIDx2ZXJzaW9uPgorICoKKyAqLwordmFyIGdldEZpbGVMaXN0ID0gZnVuY3Rpb24o
dXJsLCBjYWxsYmFjaywgb3B0aW9ucykgeworICB2YXIgZmlsZXMgPSBbXTsKKworICB2YXIgY29w
eU9iamVjdCA9IGZ1bmN0aW9uKG9iaikgeworICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3Ry
aW5naWZ5KG9iaikpOworICB9OworCisgIHZhciB0b0NhbWVsQ2FzZSA9IGZ1bmN0aW9uKHN0cikg
eworICAgIHJldHVybiBzdHIucmVwbGFjZSgvLShbYS16XSkvZywgZnVuY3Rpb24gKGcpIHsgcmV0
dXJuIGdbMV0udG9VcHBlckNhc2UoKSB9KTsKKyAgfTsKKworICB2YXIgZ2xvYmFsT3B0aW9ucyA9
IGNvcHlPYmplY3Qob3B0aW9ucyk7CisgIGdsb2JhbE9wdGlvbnMuZGVmYXVsdFZlcnNpb24gPSAi
MS4wIjsKKworICB2YXIgZ2V0RmlsZUxpc3RJbXBsID0gZnVuY3Rpb24ocHJlZml4LCBsaW5lLCBs
aW5lTnVtLCBoaWVyYXJjaGljYWxPcHRpb25zLCBjYWxsYmFjaykgeworICAgIHZhciBmaWxlcyA9
IFtdOworCisgICAgdmFyIGFyZ3MgPSBsaW5lLnNwbGl0KC9ccysvKTsKKyAgICB2YXIgbm9uT3B0
aW9ucyA9IFtdOworICAgIHZhciB1c2VUZXN0ID0gdHJ1ZTsKKyAgICB2YXIgdGVzdE9wdGlvbnMg
PSB7fTsKKyAgICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgYXJncy5sZW5ndGg7ICsramopIHsKKyAg
ICAgIHZhciBhcmcgPSBhcmdzW2pqXTsKKyAgICAgIGlmIChhcmdbMF0gPT0gJy0nKSB7CisgICAg
ICAgIGlmIChhcmdbMV0gIT0gJy0nKSB7CisgICAgICAgICAgdGhyb3cgKCJiYWQgb3B0aW9uIGF0
IGluICIgKyB1cmwgKyAiOiIgKyBsaW5lTnVtICsgIjogIiArIGFyZyk7CisgICAgICAgIH0KKyAg
ICAgICAgdmFyIG9wdGlvbiA9IGFyZy5zdWJzdHJpbmcoMik7CisgICAgICAgIHN3aXRjaCAob3B0
aW9uKSB7CisgICAgICAgICAgLy8gbm8gYXJndW1lbnQgb3B0aW9ucy4KKyAgICAgICAgICBjYXNl
ICdzbG93JzoKKyAgICAgICAgICAgIHRlc3RPcHRpb25zW3RvQ2FtZWxDYXNlKG9wdGlvbildID0g
dHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIC8vIG9uZSBhcmd1bWVudCBvcHRp
b25zLgorICAgICAgICAgIGNhc2UgJ21pbi12ZXJzaW9uJzoKKyAgICAgICAgICAgICsramo7Cisg
ICAgICAgICAgICB0ZXN0T3B0aW9uc1t0b0NhbWVsQ2FzZShvcHRpb24pXSA9IGFyZ3NbampdOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93
ICgiYmFkIHVua25vd24gb3B0aW9uICciICsgb3B0aW9uICsgIicgYXQgaW4gIiArIHVybCArICI6
IiArIGxpbmVOdW0gKyAiOiAiICsgYXJnKTsKKyAgICAgICAgfQorICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgbm9uT3B0aW9ucy5wdXNoKGFyZyk7CisgICAgICB9CisgICAgfQorICAgIHZhciB1cmwg
PSBwcmVmaXggKyBub25PcHRpb25zLmpvaW4oIiAiKTsKKworICAgIGlmICh1cmwuc3Vic3RyKHVy
bC5sZW5ndGggLSA0KSAhPSAnLnR4dCcpIHsKKyAgICAgIHZhciBtaW5WZXJzaW9uID0gdGVzdE9w
dGlvbnMubWluVmVyc2lvbjsKKyAgICAgIGlmICghbWluVmVyc2lvbikgeworICAgICAgICBtaW5W
ZXJzaW9uID0gaGllcmFyY2hpY2FsT3B0aW9ucy5kZWZhdWx0VmVyc2lvbjsKKyAgICAgIH0KKyAg
ICAgIHZhciBzbG93ID0gdGVzdE9wdGlvbnMuc2xvdzsKKyAgICAgIGlmICghc2xvdykgeworICAg
ICAgICBzbG93ID0gaGllcmFyY2hpY2FsT3B0aW9ucy5kZWZhdWx0U2xvdzsKKyAgICAgIH0KKwor
ICAgICAgaWYgKGdsb2JhbE9wdGlvbnMuZmFzdCAmJiBzbG93KSB7CisgICAgICAgIHVzZVRlc3Qg
PSBmYWxzZTsKKyAgICAgIH0gZWxzZSBpZiAoZ2xvYmFsT3B0aW9ucy5taW5WZXJzaW9uKSB7Cisg
ICAgICAgIHVzZVRlc3QgPSBncmVhdGVyVGhhbk9yRXF1YWxUb1ZlcnNpb24obWluVmVyc2lvbiwg
Z2xvYmFsT3B0aW9ucy5taW5WZXJzaW9uKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHVzZVRl
c3QgPSBncmVhdGVyVGhhbk9yRXF1YWxUb1ZlcnNpb24oZ2xvYmFsT3B0aW9ucy52ZXJzaW9uLCBt
aW5WZXJzaW9uKTsKKyAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIXVzZVRlc3QpIHsKKyAgICAg
IGNhbGxiYWNrKHRydWUsIFtdKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAodXJs
LnN1YnN0cih1cmwubGVuZ3RoIC0gNCkgPT0gJy50eHQnKSB7CisgICAgICAvLyBJZiBhIHZlcnNp
b24gd2FzIGV4cGxpY2l0eSBzcGVjaWZpZWQgcGFzcyBpdCBkb3duLgorICAgICAgaWYgKHRlc3RP
cHRpb25zLm1pblZlcnNpb24pIHsKKyAgICAgICAgaGllcmFyY2hpY2FsT3B0aW9ucy5kZWZhdWx0
VmVyc2lvbiA9IHRlc3RPcHRpb25zLm1pblZlcnNpb247CisgICAgICB9CisgICAgICBpZiAodGVz
dE9wdGlvbnMuc2xvdykgeworICAgICAgICBoaWVyYXJjaGljYWxPcHRpb25zLmRlZmF1bHRTbG93
ID0gdGVzdE9wdGlvbnMuc2xvdzsKKyAgICAgIH0KKyAgICAgIGxvYWRUZXh0RmlsZUFzeW5jaHJv
bm91cyh1cmwsIGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4gZnVuY3Rpb24oc3VjY2Vzcywg
dGV4dCkgeworICAgICAgICAgIGlmICghc3VjY2VzcykgeworICAgICAgICAgICAgY2FsbGJhY2so
ZmFsc2UsICcnKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICB9CisgICAgICAgICAg
dmFyIGxpbmVzID0gdGV4dC5zcGxpdCgnXG4nKTsKKyAgICAgICAgICB2YXIgcHJlZml4ID0gJyc7
CisgICAgICAgICAgdmFyIGxhc3RTbGFzaCA9IHVybC5sYXN0SW5kZXhPZignLycpOworICAgICAg
ICAgIGlmIChsYXN0U2xhc2ggPj0gMCkgeworICAgICAgICAgICAgcHJlZml4ID0gdXJsLnN1YnN0
cigwLCBsYXN0U2xhc2ggKyAxKTsKKyAgICAgICAgICB9CisgICAgICAgICAgdmFyIGZhaWwgPSBm
YWxzZTsKKyAgICAgICAgICB2YXIgY291bnQgPSAxOworICAgICAgICAgIHZhciBpbmRleCA9IDA7
CisgICAgICAgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IGxpbmVzLmxlbmd0aDsgKytpaSkgewor
ICAgICAgICAgICAgdmFyIHN0ciA9IGxpbmVzW2lpXS5yZXBsYWNlKC9eXHNccyovLCAnJykucmVw
bGFjZSgvXHNccyokLywgJycpOworICAgICAgICAgICAgaWYgKHN0ci5sZW5ndGggPiA0ICYmCisg
ICAgICAgICAgICAgICAgc3RyWzBdICE9ICcjJyAmJgorICAgICAgICAgICAgICAgIHN0clswXSAh
PSAiOyIgJiYKKyAgICAgICAgICAgICAgICBzdHIuc3Vic3RyKDAsIDIpICE9ICIvLyIpIHsKKyAg
ICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgICAgICAgZ2V0RmlsZUxpc3RJbXBsKHByZWZp
eCwgc3RyLCBpaSArIDEsIGNvcHlPYmplY3QoaGllcmFyY2hpY2FsT3B0aW9ucyksIGZ1bmN0aW9u
KGluZGV4KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN1Y2Nlc3MsIG5ld19m
aWxlcykgeworICAgICAgICAgICAgICAgICAgLy9sb2coImdvdCBmaWxlczogIiArIG5ld19maWxl
cy5sZW5ndGgpOworICAgICAgICAgICAgICAgICAgaWYgKHN1Y2Nlc3MpIHsKKyAgICAgICAgICAg
ICAgICAgICAgZmlsZXNbaW5kZXhdID0gbmV3X2ZpbGVzOworICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgZmluaXNoKHN1Y2Nlc3MpOworICAgICAgICAgICAgICAgIH07Cisg
ICAgICAgICAgICAgIH0oaW5kZXgrKykpOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAg
ICAgICAgICBmaW5pc2godHJ1ZSk7CisKKyAgICAgICAgICBmdW5jdGlvbiBmaW5pc2goc3VjY2Vz
cykgeworICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7CisgICAgICAgICAgICAgIGZhaWwgPSB0
cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLS1jb3VudDsKKyAgICAgICAgICAgIC8v
bG9nKCJjb3VudDogIiArIGNvdW50KTsKKyAgICAgICAgICAgIGlmICghY291bnQpIHsKKyAgICAg
ICAgICAgICAgY2FsbGJhY2soIWZhaWwsIGZpbGVzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICAgIH0oKSk7CisgICAgfSBlbHNlIHsKKyAgICAgIGZpbGVzLnB1
c2godXJsKTsKKyAgICAgIGNhbGxiYWNrKHRydWUsIGZpbGVzKTsKKyAgICB9CisgIH07CisKKyAg
Z2V0RmlsZUxpc3RJbXBsKCcnLCB1cmwsIDEsIGdsb2JhbE9wdGlvbnMsIGZ1bmN0aW9uKHN1Y2Nl
c3MsIGZpbGVzKSB7CisgICAgLy8gZmxhdHRlbgorICAgIHZhciBmbGF0ID0gW107CisgICAgZmxh
dHRlbihmaWxlcyk7CisgICAgZnVuY3Rpb24gZmxhdHRlbihmaWxlcykgeworICAgICAgZm9yICh2
YXIgaWkgPSAwOyBpaSA8IGZpbGVzLmxlbmd0aDsgKytpaSkgeworICAgICAgICB2YXIgdmFsdWUg
PSBmaWxlc1tpaV07CisgICAgICAgIGlmICh0eXBlb2YodmFsdWUpID09ICJzdHJpbmciKSB7Cisg
ICAgICAgICAgZmxhdC5wdXNoKHZhbHVlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBm
bGF0dGVuKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKyAgICBjYWxsYmFjayhz
dWNjZXNzLCBmbGF0KTsKKyAgfSk7Cit9OworCit2YXIgRmlsdGVyVVJMID0gKGZ1bmN0aW9uKCkg
eworICB2YXIgcHJlZml4ID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lOworICBwcmVmaXggPSBw
cmVmaXguc3Vic3RyaW5nKDAsIHByZWZpeC5sYXN0SW5kZXhPZigiLyIpICsgMSk7CisgIHJldHVy
biBmdW5jdGlvbih1cmwpIHsKKyAgICBpZiAodXJsLnN1YnN0cmluZygwLCBwcmVmaXgubGVuZ3Ro
KSA9PSBwcmVmaXgpIHsKKyAgICAgIHVybCA9IHVybC5zdWJzdHJpbmcocHJlZml4Lmxlbmd0aCk7
CisgICAgfQorICAgIHJldHVybiB1cmw7CisgIH07Cit9KCkpOworCit2YXIgVGVzdEZpbGUgPSBm
dW5jdGlvbih1cmwpIHsKKyAgdGhpcy51cmwgPSB1cmw7Cit9OworCit2YXIgVGVzdCA9IGZ1bmN0
aW9uKGZpbGUpIHsKKyAgdGhpcy5maWxlID0gZmlsZTsKK307CisKK3ZhciBUZXN0SGFybmVzcyA9
IGZ1bmN0aW9uKGlmcmFtZSwgZmlsZWxpc3RVcmwsIHJlcG9ydEZ1bmMsIG9wdGlvbnMpIHsKKyAg
dGhpcy53aW5kb3cgPSB3aW5kb3c7CisgIHRoaXMuaWZyYW1lcyA9IGlmcmFtZS5sZW5ndGggPyBp
ZnJhbWUgOiBbaWZyYW1lXTsKKyAgdGhpcy5yZXBvcnRGdW5jID0gcmVwb3J0RnVuYzsKKyAgdGhp
cy50aW1lb3V0RGVsYXkgPSAyMDAwMDsKKyAgdGhpcy5maWxlcyA9IFtdOworCisgIHZhciB0aGF0
ID0gdGhpczsKKyAgZ2V0RmlsZUxpc3QoZmlsZWxpc3RVcmwsIGZ1bmN0aW9uKCkgeworICAgIHJl
dHVybiBmdW5jdGlvbihzdWNjZXNzLCBmaWxlcykgeworICAgICAgdGhhdC5hZGRGaWxlc18oc3Vj
Y2VzcywgZmlsZXMpOworICAgIH07CisgIH0oKSwgb3B0aW9ucyk7CisKK307CisKK1Rlc3RIYXJu
ZXNzLnJlcG9ydFR5cGUgPSB7CisgIEFERF9QQUdFOiAxLAorICBSRUFEWTogMiwKKyAgU1RBUlRf
UEFHRTogMywKKyAgVEVTVF9SRVNVTFQ6IDQsCisgIEZJTklTSF9QQUdFOiA1LAorICBGSU5JU0hF
RF9BTExfVEVTVFM6IDYKK307CisKK1Rlc3RIYXJuZXNzLnByb3RvdHlwZS5hZGRGaWxlc18gPSBm
dW5jdGlvbihzdWNjZXNzLCBmaWxlcykgeworICBpZiAoIXN1Y2Nlc3MpIHsKKyAgICB0aGlzLnJl
cG9ydEZ1bmMoCisgICAgICAgIFRlc3RIYXJuZXNzLnJlcG9ydFR5cGUuRklOSVNIRURfQUxMX1RF
U1RTLAorICAgICAgICAnJywKKyAgICAgICAgJ1VuYWJsZSB0byBsb2FkIHRlc3RzLiBBcmUgeW91
IHJ1bm5pbmcgbG9jYWxseT9cbicgKworICAgICAgICAnWW91IG5lZWQgdG8gcnVuIGZyb20gYSBz
ZXJ2ZXIgb3IgY29uZmlndXJlIHlvdXJcbicgKworICAgICAgICAnYnJvd3NlciB0byBhbGxvdyBh
Y2Nlc3MgdG8gbG9jYWwgZmlsZXMgKG5vdCByZWNvbW1lbmRlZCkuXG5cbicgKworICAgICAgICAn
Tm90ZTogQW4gZWFzeSB3YXkgdG8gcnVuIGZyb20gYSBzZXJ2ZXI6XG5cbicgKworICAgICAgICAn
XHRjZCBwYXRoX3RvX3Rlc3RzXG4nICsKKyAgICAgICAgJ1x0cHl0aG9uIC1tIFNpbXBsZUhUVFBT
ZXJ2ZXJcblxuJyArCisgICAgICAgICd0aGVuIHBvaW50IHlvdXIgYnJvd3NlciB0byAnICsKKyAg
ICAgICAgICAnPGEgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3dlYmdsLWNvbmZvcm1hbmNl
LXRlc3RzLmh0bWwiPicgKworICAgICAgICAgICdodHRwOi8vbG9jYWxob3N0OjgwMDAvd2ViZ2wt
Y29uZm9ybWFuY2UtdGVzdHMuaHRtbDwvYT4nLAorICAgICAgICBmYWxzZSkKKyAgICByZXR1cm47
CisgIH0KKyAgbG9nKCJ0b3RhbCBmaWxlczogIiArIGZpbGVzLmxlbmd0aCk7CisgIGZvciAodmFy
IGlpID0gMDsgaWkgPCBmaWxlcy5sZW5ndGg7ICsraWkpIHsKKyAgICBsb2coIiIgKyBpaSArICI6
ICIgKyBmaWxlc1tpaV0pOworICAgIHRoaXMuZmlsZXMucHVzaChuZXcgVGVzdEZpbGUoZmlsZXNb
aWldKSk7CisgICAgdGhpcy5yZXBvcnRGdW5jKFRlc3RIYXJuZXNzLnJlcG9ydFR5cGUuQUREX1BB
R0UsICcnLCBmaWxlc1tpaV0sIHVuZGVmaW5lZCk7CisgIH0KKyAgdGhpcy5yZXBvcnRGdW5jKFRl
c3RIYXJuZXNzLnJlcG9ydFR5cGUuUkVBRFksICcnLCB1bmRlZmluZWQsIHVuZGVmaW5lZCk7Cit9
CisKK1Rlc3RIYXJuZXNzLnByb3RvdHlwZS5ydW5UZXN0cyA9IGZ1bmN0aW9uKG9wdF9vcHRpb25z
KSB7CisgIHZhciBvcHRpb25zID0gb3B0X29wdGlvbnMgfHwgeyB9OworICBvcHRpb25zLnN0YXJ0
ID0gb3B0aW9ucy5zdGFydCB8fCAwOworICBvcHRpb25zLmNvdW50ID0gb3B0aW9ucy5jb3VudCB8
fCB0aGlzLmZpbGVzLmxlbmd0aDsKKworICB0aGlzLmlkbGVJRnJhbWVzID0gdGhpcy5pZnJhbWVz
LnNsaWNlKDApOworICB0aGlzLnJ1bm5pbmdUZXN0cyA9IHt9OworICB2YXIgdGVzdHNUb1J1biA9
IFtdOworICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgb3B0aW9ucy5jb3VudDsgKytpaSkgeworICAg
IHRlc3RzVG9SdW4ucHVzaChpaSArIG9wdGlvbnMuc3RhcnQpOworICB9CisgIHRoaXMubnVtVGVz
dHNSZW1haW5pbmcgPSBvcHRpb25zLmNvdW50OworICB0aGlzLnRlc3RzVG9SdW4gPSB0ZXN0c1Rv
UnVuOworICB0aGlzLnN0YXJ0TmV4dFRlc3QoKTsKK307CisKK1Rlc3RIYXJuZXNzLnByb3RvdHlw
ZS5zZXRUaW1lb3V0ID0gZnVuY3Rpb24odGVzdCkgeworICB2YXIgdGhhdCA9IHRoaXM7CisgIHRl
c3QudGltZW91dElkID0gdGhpcy53aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAg
IHRoYXQudGltZW91dCh0ZXN0KTsKKyAgICB9LCB0aGlzLnRpbWVvdXREZWxheSk7Cit9OworCitU
ZXN0SGFybmVzcy5wcm90b3R5cGUuY2xlYXJUaW1lb3V0ID0gZnVuY3Rpb24odGVzdCkgeworICB0
aGlzLndpbmRvdy5jbGVhclRpbWVvdXQodGVzdC50aW1lb3V0SWQpOworfTsKKworVGVzdEhhcm5l
c3MucHJvdG90eXBlLnN0YXJ0TmV4dFRlc3QgPSBmdW5jdGlvbigpIHsKKyAgaWYgKHRoaXMubnVt
VGVzdHNSZW1haW5pbmcgPT0gMCkgeworICAgIGxvZygiZG9uZSIpOworICAgIHRoaXMucmVwb3J0
RnVuYyhUZXN0SGFybmVzcy5yZXBvcnRUeXBlLkZJTklTSEVEX0FMTF9URVNUUywKKyAgICAgICAg
ICAgICAgICAgICAgJycsICcnLCB0cnVlKTsKKyAgfSBlbHNlIHsKKyAgICB3aGlsZSAodGhpcy50
ZXN0c1RvUnVuLmxlbmd0aCA+IDAgJiYgdGhpcy5pZGxlSUZyYW1lcy5sZW5ndGggPiAwKSB7Cisg
ICAgICB2YXIgdGVzdElkID0gdGhpcy50ZXN0c1RvUnVuLnNoaWZ0KCk7CisgICAgICB2YXIgaWZy
YW1lID0gdGhpcy5pZGxlSUZyYW1lcy5zaGlmdCgpOworICAgICAgdGhpcy5zdGFydFRlc3QoaWZy
YW1lLCB0aGlzLmZpbGVzW3Rlc3RJZF0pOworICAgIH0KKyAgfQorfTsKKworVGVzdEhhcm5lc3Mu
cHJvdG90eXBlLnN0YXJ0VGVzdCA9IGZ1bmN0aW9uKGlmcmFtZSwgdGVzdEZpbGUpIHsKKyAgdmFy
IHRlc3QgPSB7CisgICAgaWZyYW1lOiBpZnJhbWUsCisgICAgdGVzdEZpbGU6IHRlc3RGaWxlCisg
IH07CisgIHZhciB1cmwgPSB0ZXN0RmlsZS51cmw7CisgIHRoaXMucnVubmluZ1Rlc3RzW3VybF0g
PSB0ZXN0OworICBsb2coImxvYWRpbmc6ICIgKyB1cmwpOworICBpZiAodGhpcy5yZXBvcnRGdW5j
KFRlc3RIYXJuZXNzLnJlcG9ydFR5cGUuU1RBUlRfUEFHRSwgdXJsLCB1cmwsIHVuZGVmaW5lZCkp
IHsKKyAgICBpZnJhbWUuc3JjID0gdXJsOworICAgIHRoaXMuc2V0VGltZW91dCh0ZXN0KTsKKyAg
fSBlbHNlIHsKKyAgICB0aGlzLnJlcG9ydFJlc3VsdHModXJsLCBmYWxzZSwgInNraXBwZWQiKTsK
KyAgICB0aGlzLm5vdGlmeUZpbmlzaGVkKHVybCk7CisgIH0KK307CisKK1Rlc3RIYXJuZXNzLnBy
b3RvdHlwZS5nZXRUZXN0ID0gZnVuY3Rpb24odXJsKSB7CisgIHZhciB0ZXN0ID0gdGhpcy5ydW5u
aW5nVGVzdHNbRmlsdGVyVVJMKHVybCldOworICBpZiAoIXRlc3QpIHsKKyAgICB0aHJvdygidW5r
bm93biB0ZXN0OiIgKyB1cmwpOworICB9CisgIHJldHVybiB0ZXN0OworfTsKKworVGVzdEhhcm5l
c3MucHJvdG90eXBlLnJlcG9ydFJlc3VsdHMgPSBmdW5jdGlvbih1cmwsIHN1Y2Nlc3MsIG1zZykg
eworICB1cmwgPSBGaWx0ZXJVUkwodXJsKTsKKyAgdmFyIHRlc3QgPSB0aGlzLmdldFRlc3QodXJs
KTsKKyAgdGhpcy5jbGVhclRpbWVvdXQodGVzdCk7CisgIGxvZyhzdWNjZXNzID8gIlBBU1MiIDog
IkZBSUwiLCBtc2cpOworICB0aGlzLnJlcG9ydEZ1bmMoVGVzdEhhcm5lc3MucmVwb3J0VHlwZS5U
RVNUX1JFU1VMVCwgdXJsLCBtc2csIHN1Y2Nlc3MpOworICAvLyBGb3IgZWFjaCByZXN1bHQgd2Ug
Z2V0LCByZXNldCB0aGUgdGltZW91dAorICB0aGlzLnNldFRpbWVvdXQodGVzdCk7Cit9OworCitU
ZXN0SGFybmVzcy5wcm90b3R5cGUuZGVxdWVUZXN0ID0gZnVuY3Rpb24odGVzdCkgeworICB0aGlz
LmNsZWFyVGltZW91dCh0ZXN0KTsKKyAgdGhpcy5pZGxlSUZyYW1lcy5wdXNoKHRlc3QuaWZyYW1l
KTsKKyAgZGVsZXRlIHRoaXMucnVubmluZ1Rlc3RzW3Rlc3QudGVzdEZpbGUudXJsXTsKKyAgLS10
aGlzLm51bVRlc3RzUmVtYWluaW5nOworfQorCitUZXN0SGFybmVzcy5wcm90b3R5cGUubm90aWZ5
RmluaXNoZWQgPSBmdW5jdGlvbih1cmwpIHsKKyAgdXJsID0gRmlsdGVyVVJMKHVybCk7CisgIHZh
ciB0ZXN0ID0gdGhpcy5nZXRUZXN0KHVybCk7CisgIGxvZyh1cmwgKyAiOiBmaW5pc2hlZCIpOwor
ICB0aGlzLmRlcXVlVGVzdCh0ZXN0KTsKKyAgdGhpcy5yZXBvcnRGdW5jKFRlc3RIYXJuZXNzLnJl
cG9ydFR5cGUuRklOSVNIX1BBR0UsIHVybCwgdXJsLCB0cnVlKTsKKyAgdGhpcy5zdGFydE5leHRU
ZXN0KCk7Cit9OworCitUZXN0SGFybmVzcy5wcm90b3R5cGUudGltZW91dCA9IGZ1bmN0aW9uKHRl
c3QpIHsKKyAgdGhpcy5kZXF1ZVRlc3QodGVzdCk7CisgIHZhciB1cmwgPSB0ZXN0LnRlc3RGaWxl
LnVybDsKKyAgbG9nKHVybCArICI6IHRpbWVvdXQiKTsKKyAgdGhpcy5yZXBvcnRGdW5jKFRlc3RI
YXJuZXNzLnJlcG9ydFR5cGUuRklOSVNIX1BBR0UsIHVybCwgdXJsLCB1bmRlZmluZWQpOworICB0
aGlzLnN0YXJ0TmV4dFRlc3QoKTsKK307CisKK1Rlc3RIYXJuZXNzLnByb3RvdHlwZS5zZXRUaW1l
b3V0RGVsYXkgPSBmdW5jdGlvbih4KSB7CisgIHRoaXMudGltZW91dERlbGF5ID0geDsKK307CisK
K3JldHVybiB7CisgICAgJ1Rlc3RIYXJuZXNzJzogVGVzdEhhcm5lc3MKKyAgfTsKKworfSgpOwor
CisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmtpdC13ZWJn
bC10ZXN0LWhhcm5lc3MuanMgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Via2l0LXdl
YmdsLXRlc3QtaGFybmVzcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YTgzZjdhYjAzMDhlNzNmOTE0NTkzNzM0
M2RjN2U5MDdhYWMyNjVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmtpdC13ZWJnbC10ZXN0LWhhcm5lc3MuanMKQEAgLTAsMCArMSw1NiBAQAorInVz
ZSBzdHJpY3QiOworKGZ1bmN0aW9uKCkgeworICB2YXIgbnVtRmFpbHVyZXMgPSAwOworCisgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lciAmJiAhd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyID0gd2luZG93LnRlc3RSdW5uZXI7CisgIH0K
KworICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRXZWJHTEVuYWJsZWQiLCAiMSIpOwor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKKyAgICAvLyBUdXJuIG9mZiBjb25zb2xlIG1lc3Nh
Z2VzIGJlY2F1c2UgZm9yIHRoZSBXZWJHTCB0ZXN0cyB0aGV5IGFyZQorICAgIC8vIEdQVSBjYXBh
YmlsaXR5IGRlcGVuZGVudC4KKyAgICB3aW5kb3cuY29uc29sZS5sb2cgPSBmdW5jdGlvbigpIHsg
fTsKKyAgICB3aW5kb3cuY29uc29sZS5lcnJvciA9IGZ1bmN0aW9uKCkgeyB9OworICB9CisKKwor
ICBpZiAod2luZG93LmludGVybmFscykgeworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0V2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkKGZhbHNlKTsKKyAgfQorCisgIHZhciBsb2cg
PSBmdW5jdGlvbihtc2csIGNvbG9yKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOworICAgIGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZShtc2cpKTsKKyAgICBpZiAoY29sb3IpIHsKKyAgICAgIGRpdi5zdHlsZS5jb2xvciA9IGNvbG9y
OworICAgIH0KKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuYXBwZW5kQ2hp
bGQoZGl2KTsKKyAgfTsKKworICB3aW5kb3cud2ViZ2xUZXN0SGFybmVzcyA9IHsKKyAgICByZXBv
cnRSZXN1bHRzOiBmdW5jdGlvbih1cmwsIHN1Y2Nlc3MsIG1zZykgeworICAgICAgaWYgKCFzdWNj
ZXNzKSB7CisgICAgICAgICsrbnVtRmFpbHVyZXM7CisgICAgICB9CisgICAgfSwKKworICAgIG5v
dGlmeUZpbmlzaGVkOiBmdW5jdGlvbih1cmwpIHsKKyAgICAgIHZhciBpZnJhbWUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiaWZyYW1lIik7CisgICAgICBpZnJhbWUuaW5uZXJIVE1MID0gIiI7
CisgICAgICBpZiAobnVtRmFpbHVyZXMgPiAwKSB7CisgICAgICAgIGxvZygiRkFJTCIsICJyZWQi
KTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGxvZygiUEFTUyIsICJncmVlbiIpOworICAgICAg
fQorCisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgIH0KKyAgICB9LAorICB9Cit9
KCkpOworCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>